rails_modular_admin 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1416) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/list.txt +23 -0
  3. data/app/assets/javascripts/rails_modular_admin/vendor.js +60351 -60351
  4. data/app/assets/javascripts/rails_modular_admin.js +1 -0
  5. data/app/assets/node_modules/animate.css/LICENSE +21 -0
  6. data/app/assets/node_modules/animate.css/README.md +233 -0
  7. data/app/assets/node_modules/animate.css/animate-config.json +120 -0
  8. data/app/assets/node_modules/animate.css/animate.css +3494 -0
  9. data/app/assets/node_modules/animate.css/animate.min.css +11 -0
  10. data/app/assets/node_modules/animate.css/bower.json +5 -0
  11. data/app/assets/node_modules/animate.css/gulpfile.js +107 -0
  12. data/app/assets/node_modules/animate.css/package.json +54 -0
  13. data/app/assets/node_modules/animate.css/source/_base.css +8 -0
  14. data/app/assets/node_modules/animate.css/source/attention_seekers/bounce.css +30 -0
  15. data/app/assets/node_modules/animate.css/source/attention_seekers/flash.css +16 -0
  16. data/app/assets/node_modules/animate.css/source/attention_seekers/headShake.css +30 -0
  17. data/app/assets/node_modules/animate.css/source/attention_seekers/jello.css +40 -0
  18. data/app/assets/node_modules/animate.css/source/attention_seekers/pulse.css +19 -0
  19. data/app/assets/node_modules/animate.css/source/attention_seekers/rubberBand.css +33 -0
  20. data/app/assets/node_modules/animate.css/source/attention_seekers/shake.css +25 -0
  21. data/app/assets/node_modules/animate.css/source/attention_seekers/swing.css +26 -0
  22. data/app/assets/node_modules/animate.css/source/attention_seekers/tada.css +31 -0
  23. data/app/assets/node_modules/animate.css/source/attention_seekers/wobble.css +35 -0
  24. data/app/assets/node_modules/animate.css/source/bouncing_entrances/bounceIn.css +42 -0
  25. data/app/assets/node_modules/animate.css/source/bouncing_entrances/bounceInDown.css +35 -0
  26. data/app/assets/node_modules/animate.css/source/bouncing_entrances/bounceInLeft.css +35 -0
  27. data/app/assets/node_modules/animate.css/source/bouncing_entrances/bounceInRight.css +35 -0
  28. data/app/assets/node_modules/animate.css/source/bouncing_entrances/bounceInUp.css +35 -0
  29. data/app/assets/node_modules/animate.css/source/bouncing_exits/bounceOut.css +21 -0
  30. data/app/assets/node_modules/animate.css/source/bouncing_exits/bounceOutDown.css +20 -0
  31. data/app/assets/node_modules/animate.css/source/bouncing_exits/bounceOutLeft.css +15 -0
  32. data/app/assets/node_modules/animate.css/source/bouncing_exits/bounceOutRight.css +15 -0
  33. data/app/assets/node_modules/animate.css/source/bouncing_exits/bounceOutUp.css +20 -0
  34. data/app/assets/node_modules/animate.css/source/fading_entrances/fadeIn.css +13 -0
  35. data/app/assets/node_modules/animate.css/source/fading_entrances/fadeInDown.css +15 -0
  36. data/app/assets/node_modules/animate.css/source/fading_entrances/fadeInDownBig.css +15 -0
  37. data/app/assets/node_modules/animate.css/source/fading_entrances/fadeInLeft.css +15 -0
  38. data/app/assets/node_modules/animate.css/source/fading_entrances/fadeInLeftBig.css +15 -0
  39. data/app/assets/node_modules/animate.css/source/fading_entrances/fadeInRight.css +15 -0
  40. data/app/assets/node_modules/animate.css/source/fading_entrances/fadeInRightBig.css +15 -0
  41. data/app/assets/node_modules/animate.css/source/fading_entrances/fadeInUp.css +15 -0
  42. data/app/assets/node_modules/animate.css/source/fading_entrances/fadeInUpBig.css +15 -0
  43. data/app/assets/node_modules/animate.css/source/fading_exits/fadeOut.css +13 -0
  44. data/app/assets/node_modules/animate.css/source/fading_exits/fadeOutDown.css +14 -0
  45. data/app/assets/node_modules/animate.css/source/fading_exits/fadeOutDownBig.css +14 -0
  46. data/app/assets/node_modules/animate.css/source/fading_exits/fadeOutLeft.css +14 -0
  47. data/app/assets/node_modules/animate.css/source/fading_exits/fadeOutLeftBig.css +14 -0
  48. data/app/assets/node_modules/animate.css/source/fading_exits/fadeOutRight.css +14 -0
  49. data/app/assets/node_modules/animate.css/source/fading_exits/fadeOutRightBig.css +14 -0
  50. data/app/assets/node_modules/animate.css/source/fading_exits/fadeOutUp.css +14 -0
  51. data/app/assets/node_modules/animate.css/source/fading_exits/fadeOutUpBig.css +14 -0
  52. data/app/assets/node_modules/animate.css/source/flippers/flip.css +31 -0
  53. data/app/assets/node_modules/animate.css/source/flippers/flipInX.css +30 -0
  54. data/app/assets/node_modules/animate.css/source/flippers/flipInY.css +30 -0
  55. data/app/assets/node_modules/animate.css/source/flippers/flipOutX.css +21 -0
  56. data/app/assets/node_modules/animate.css/source/flippers/flipOutY.css +21 -0
  57. data/app/assets/node_modules/animate.css/source/lightspeed/lightSpeedIn.css +26 -0
  58. data/app/assets/node_modules/animate.css/source/lightspeed/lightSpeedOut.css +15 -0
  59. data/app/assets/node_modules/animate.css/source/rotating_entrances/rotateIn.css +17 -0
  60. data/app/assets/node_modules/animate.css/source/rotating_entrances/rotateInDownLeft.css +17 -0
  61. data/app/assets/node_modules/animate.css/source/rotating_entrances/rotateInDownRight.css +17 -0
  62. data/app/assets/node_modules/animate.css/source/rotating_entrances/rotateInUpLeft.css +17 -0
  63. data/app/assets/node_modules/animate.css/source/rotating_entrances/rotateInUpRight.css +17 -0
  64. data/app/assets/node_modules/animate.css/source/rotating_exits/rotateOut.css +16 -0
  65. data/app/assets/node_modules/animate.css/source/rotating_exits/rotateOutDownLeft.css +16 -0
  66. data/app/assets/node_modules/animate.css/source/rotating_exits/rotateOutDownRight.css +16 -0
  67. data/app/assets/node_modules/animate.css/source/rotating_exits/rotateOutUpLeft.css +16 -0
  68. data/app/assets/node_modules/animate.css/source/rotating_exits/rotateOutUpRight.css +16 -0
  69. data/app/assets/node_modules/animate.css/source/sliding_entrances/slideInDown.css +14 -0
  70. data/app/assets/node_modules/animate.css/source/sliding_entrances/slideInLeft.css +14 -0
  71. data/app/assets/node_modules/animate.css/source/sliding_entrances/slideInRight.css +14 -0
  72. data/app/assets/node_modules/animate.css/source/sliding_entrances/slideInUp.css +14 -0
  73. data/app/assets/node_modules/animate.css/source/sliding_exits/slideOutDown.css +14 -0
  74. data/app/assets/node_modules/animate.css/source/sliding_exits/slideOutLeft.css +14 -0
  75. data/app/assets/node_modules/animate.css/source/sliding_exits/slideOutRight.css +14 -0
  76. data/app/assets/node_modules/animate.css/source/sliding_exits/slideOutUp.css +14 -0
  77. data/app/assets/node_modules/animate.css/source/specials/hinge.css +31 -0
  78. data/app/assets/node_modules/animate.css/source/specials/jackInTheBox.css +24 -0
  79. data/app/assets/node_modules/animate.css/source/specials/rollIn.css +17 -0
  80. data/app/assets/node_modules/animate.css/source/specials/rollOut.css +16 -0
  81. data/app/assets/node_modules/animate.css/source/zooming_entrances/zoomIn.css +14 -0
  82. data/app/assets/node_modules/animate.css/source/zooming_entrances/zoomInDown.css +17 -0
  83. data/app/assets/node_modules/animate.css/source/zooming_entrances/zoomInLeft.css +17 -0
  84. data/app/assets/node_modules/animate.css/source/zooming_entrances/zoomInRight.css +17 -0
  85. data/app/assets/node_modules/animate.css/source/zooming_entrances/zoomInUp.css +17 -0
  86. data/app/assets/node_modules/animate.css/source/zooming_exits/zoomOut.css +18 -0
  87. data/app/assets/node_modules/animate.css/source/zooming_exits/zoomOutDown.css +18 -0
  88. data/app/assets/node_modules/animate.css/source/zooming_exits/zoomOutLeft.css +16 -0
  89. data/app/assets/node_modules/animate.css/source/zooming_exits/zoomOutRight.css +16 -0
  90. data/app/assets/node_modules/animate.css/source/zooming_exits/zoomOutUp.css +18 -0
  91. data/app/assets/node_modules/bootstrap/LICENSE +22 -0
  92. data/app/assets/node_modules/bootstrap/README.md +171 -0
  93. data/app/assets/node_modules/bootstrap/dist/css/bootstrap-grid.css +1912 -0
  94. data/app/assets/node_modules/bootstrap/dist/css/bootstrap-grid.css.map +1 -0
  95. data/app/assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css +7 -0
  96. data/app/assets/node_modules/bootstrap/dist/css/bootstrap-grid.min.css.map +1 -0
  97. data/app/assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css +330 -0
  98. data/app/assets/node_modules/bootstrap/dist/css/bootstrap-reboot.css.map +1 -0
  99. data/app/assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css +8 -0
  100. data/app/assets/node_modules/bootstrap/dist/css/bootstrap-reboot.min.css.map +1 -0
  101. data/app/assets/node_modules/bootstrap/dist/css/bootstrap.css +8981 -0
  102. data/app/assets/node_modules/bootstrap/dist/css/bootstrap.css.map +1 -0
  103. data/app/assets/node_modules/bootstrap/dist/css/bootstrap.min.css +7 -0
  104. data/app/assets/node_modules/bootstrap/dist/css/bootstrap.min.css.map +1 -0
  105. data/app/assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js +6444 -0
  106. data/app/assets/node_modules/bootstrap/dist/js/bootstrap.bundle.js.map +1 -0
  107. data/app/assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js +7 -0
  108. data/app/assets/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js.map +1 -0
  109. data/app/assets/node_modules/bootstrap/dist/js/bootstrap.js +3927 -0
  110. data/app/assets/node_modules/bootstrap/dist/js/bootstrap.js.map +1 -0
  111. data/app/assets/node_modules/bootstrap/dist/js/bootstrap.min.js +7 -0
  112. data/app/assets/node_modules/bootstrap/dist/js/bootstrap.min.js.map +1 -0
  113. data/app/assets/node_modules/bootstrap/js/dist/alert.js +178 -0
  114. data/app/assets/node_modules/bootstrap/js/dist/alert.js.map +1 -0
  115. data/app/assets/node_modules/bootstrap/js/dist/button.js +167 -0
  116. data/app/assets/node_modules/bootstrap/js/dist/button.js.map +1 -0
  117. data/app/assets/node_modules/bootstrap/js/dist/carousel.js +508 -0
  118. data/app/assets/node_modules/bootstrap/js/dist/carousel.js.map +1 -0
  119. data/app/assets/node_modules/bootstrap/js/dist/collapse.js +367 -0
  120. data/app/assets/node_modules/bootstrap/js/dist/collapse.js.map +1 -0
  121. data/app/assets/node_modules/bootstrap/js/dist/dropdown.js +489 -0
  122. data/app/assets/node_modules/bootstrap/js/dist/dropdown.js.map +1 -0
  123. data/app/assets/node_modules/bootstrap/js/dist/index.js +23 -0
  124. data/app/assets/node_modules/bootstrap/js/dist/index.js.map +1 -0
  125. data/app/assets/node_modules/bootstrap/js/dist/modal.js +585 -0
  126. data/app/assets/node_modules/bootstrap/js/dist/modal.js.map +1 -0
  127. data/app/assets/node_modules/bootstrap/js/dist/popover.js +206 -0
  128. data/app/assets/node_modules/bootstrap/js/dist/popover.js.map +1 -0
  129. data/app/assets/node_modules/bootstrap/js/dist/scrollspy.js +319 -0
  130. data/app/assets/node_modules/bootstrap/js/dist/scrollspy.js.map +1 -0
  131. data/app/assets/node_modules/bootstrap/js/dist/tab.js +251 -0
  132. data/app/assets/node_modules/bootstrap/js/dist/tab.js.map +1 -0
  133. data/app/assets/node_modules/bootstrap/js/dist/tooltip.js +674 -0
  134. data/app/assets/node_modules/bootstrap/js/dist/tooltip.js.map +1 -0
  135. data/app/assets/node_modules/bootstrap/js/dist/util.js +132 -0
  136. data/app/assets/node_modules/bootstrap/js/dist/util.js.map +1 -0
  137. data/app/assets/node_modules/bootstrap/js/src/alert.js +183 -0
  138. data/app/assets/node_modules/bootstrap/js/src/button.js +175 -0
  139. data/app/assets/node_modules/bootstrap/js/src/carousel.js +517 -0
  140. data/app/assets/node_modules/bootstrap/js/src/collapse.js +394 -0
  141. data/app/assets/node_modules/bootstrap/js/src/dropdown.js +487 -0
  142. data/app/assets/node_modules/bootstrap/js/src/index.js +50 -0
  143. data/app/assets/node_modules/bootstrap/js/src/modal.js +579 -0
  144. data/app/assets/node_modules/bootstrap/js/src/popover.js +188 -0
  145. data/app/assets/node_modules/bootstrap/js/src/scrollspy.js +329 -0
  146. data/app/assets/node_modules/bootstrap/js/src/tab.js +263 -0
  147. data/app/assets/node_modules/bootstrap/js/src/tooltip.js +723 -0
  148. data/app/assets/node_modules/bootstrap/js/src/util.js +153 -0
  149. data/app/assets/node_modules/bootstrap/package.json +218 -0
  150. data/app/assets/node_modules/bootstrap/scss/_alert.scss +51 -0
  151. data/app/assets/node_modules/bootstrap/scss/_badge.scss +47 -0
  152. data/app/assets/node_modules/bootstrap/scss/_breadcrumb.scss +41 -0
  153. data/app/assets/node_modules/bootstrap/scss/_button-group.scss +172 -0
  154. data/app/assets/node_modules/bootstrap/scss/_buttons.scss +144 -0
  155. data/app/assets/node_modules/bootstrap/scss/_card.scss +301 -0
  156. data/app/assets/node_modules/bootstrap/scss/_carousel.scss +236 -0
  157. data/app/assets/node_modules/bootstrap/scss/_close.scss +34 -0
  158. data/app/assets/node_modules/bootstrap/scss/_code.scss +48 -0
  159. data/app/assets/node_modules/bootstrap/scss/_custom-forms.scss +421 -0
  160. data/app/assets/node_modules/bootstrap/scss/_dropdown.scss +166 -0
  161. data/app/assets/node_modules/bootstrap/scss/_forms.scss +335 -0
  162. data/app/assets/node_modules/bootstrap/scss/_functions.scss +86 -0
  163. data/app/assets/node_modules/bootstrap/scss/_grid.scss +52 -0
  164. data/app/assets/node_modules/bootstrap/scss/_images.scss +42 -0
  165. data/app/assets/node_modules/bootstrap/scss/_input-group.scss +158 -0
  166. data/app/assets/node_modules/bootstrap/scss/_jumbotron.scss +16 -0
  167. data/app/assets/node_modules/bootstrap/scss/_list-group.scss +115 -0
  168. data/app/assets/node_modules/bootstrap/scss/_media.scss +8 -0
  169. data/app/assets/node_modules/bootstrap/scss/_mixins.scss +41 -0
  170. data/app/assets/node_modules/bootstrap/scss/_modal.scss +168 -0
  171. data/app/assets/node_modules/bootstrap/scss/_nav.scss +118 -0
  172. data/app/assets/node_modules/bootstrap/scss/_navbar.scss +299 -0
  173. data/app/assets/node_modules/bootstrap/scss/_pagination.scss +78 -0
  174. data/app/assets/node_modules/bootstrap/scss/_popover.scss +183 -0
  175. data/app/assets/node_modules/bootstrap/scss/_print.scss +141 -0
  176. data/app/assets/node_modules/bootstrap/scss/_progress.scss +34 -0
  177. data/app/assets/node_modules/bootstrap/scss/_reboot.scss +480 -0
  178. data/app/assets/node_modules/bootstrap/scss/_root.scss +19 -0
  179. data/app/assets/node_modules/bootstrap/scss/_tables.scss +188 -0
  180. data/app/assets/node_modules/bootstrap/scss/_tooltip.scss +115 -0
  181. data/app/assets/node_modules/bootstrap/scss/_transitions.scss +22 -0
  182. data/app/assets/node_modules/bootstrap/scss/_type.scss +125 -0
  183. data/app/assets/node_modules/bootstrap/scss/_utilities.scss +15 -0
  184. data/app/assets/node_modules/bootstrap/scss/_variables.scss +929 -0
  185. data/app/assets/node_modules/bootstrap/scss/bootstrap-grid.scss +32 -0
  186. data/app/assets/node_modules/bootstrap/scss/bootstrap-reboot.scss +12 -0
  187. data/app/assets/node_modules/bootstrap/scss/bootstrap.scss +42 -0
  188. data/app/assets/node_modules/bootstrap/scss/mixins/_alert.scss +13 -0
  189. data/app/assets/node_modules/bootstrap/scss/mixins/_background-variant.scss +21 -0
  190. data/app/assets/node_modules/bootstrap/scss/mixins/_badge.scss +12 -0
  191. data/app/assets/node_modules/bootstrap/scss/mixins/_border-radius.scss +35 -0
  192. data/app/assets/node_modules/bootstrap/scss/mixins/_box-shadow.scss +5 -0
  193. data/app/assets/node_modules/bootstrap/scss/mixins/_breakpoints.scss +123 -0
  194. data/app/assets/node_modules/bootstrap/scss/mixins/_buttons.scss +109 -0
  195. data/app/assets/node_modules/bootstrap/scss/mixins/_caret.scss +66 -0
  196. data/app/assets/node_modules/bootstrap/scss/mixins/_clearfix.scss +7 -0
  197. data/app/assets/node_modules/bootstrap/scss/mixins/_float.scss +11 -0
  198. data/app/assets/node_modules/bootstrap/scss/mixins/_forms.scss +147 -0
  199. data/app/assets/node_modules/bootstrap/scss/mixins/_gradients.scss +45 -0
  200. data/app/assets/node_modules/bootstrap/scss/mixins/_grid-framework.scss +67 -0
  201. data/app/assets/node_modules/bootstrap/scss/mixins/_grid.scss +52 -0
  202. data/app/assets/node_modules/bootstrap/scss/mixins/_hover.scss +37 -0
  203. data/app/assets/node_modules/bootstrap/scss/mixins/_image.scss +36 -0
  204. data/app/assets/node_modules/bootstrap/scss/mixins/_list-group.scss +21 -0
  205. data/app/assets/node_modules/bootstrap/scss/mixins/_lists.scss +7 -0
  206. data/app/assets/node_modules/bootstrap/scss/mixins/_nav-divider.scss +10 -0
  207. data/app/assets/node_modules/bootstrap/scss/mixins/_pagination.scss +22 -0
  208. data/app/assets/node_modules/bootstrap/scss/mixins/_reset-text.scss +17 -0
  209. data/app/assets/node_modules/bootstrap/scss/mixins/_resize.scss +6 -0
  210. data/app/assets/node_modules/bootstrap/scss/mixins/_screen-reader.scss +33 -0
  211. data/app/assets/node_modules/bootstrap/scss/mixins/_size.scss +6 -0
  212. data/app/assets/node_modules/bootstrap/scss/mixins/_table-row.scss +30 -0
  213. data/app/assets/node_modules/bootstrap/scss/mixins/_text-emphasis.scss +14 -0
  214. data/app/assets/node_modules/bootstrap/scss/mixins/_text-hide.scss +13 -0
  215. data/app/assets/node_modules/bootstrap/scss/mixins/_text-truncate.scss +8 -0
  216. data/app/assets/node_modules/bootstrap/scss/mixins/_transition.scss +13 -0
  217. data/app/assets/node_modules/bootstrap/scss/mixins/_visibility.scss +7 -0
  218. data/app/assets/node_modules/bootstrap/scss/utilities/_align.scss +8 -0
  219. data/app/assets/node_modules/bootstrap/scss/utilities/_background.scss +19 -0
  220. data/app/assets/node_modules/bootstrap/scss/utilities/_borders.scss +59 -0
  221. data/app/assets/node_modules/bootstrap/scss/utilities/_clearfix.scss +3 -0
  222. data/app/assets/node_modules/bootstrap/scss/utilities/_display.scss +38 -0
  223. data/app/assets/node_modules/bootstrap/scss/utilities/_embed.scss +52 -0
  224. data/app/assets/node_modules/bootstrap/scss/utilities/_flex.scss +51 -0
  225. data/app/assets/node_modules/bootstrap/scss/utilities/_float.scss +9 -0
  226. data/app/assets/node_modules/bootstrap/scss/utilities/_position.scss +37 -0
  227. data/app/assets/node_modules/bootstrap/scss/utilities/_screenreaders.scss +11 -0
  228. data/app/assets/node_modules/bootstrap/scss/utilities/_shadows.scss +6 -0
  229. data/app/assets/node_modules/bootstrap/scss/utilities/_sizing.scss +12 -0
  230. data/app/assets/node_modules/bootstrap/scss/utilities/_spacing.scss +51 -0
  231. data/app/assets/node_modules/bootstrap/scss/utilities/_text.scss +58 -0
  232. data/app/assets/node_modules/bootstrap/scss/utilities/_visibility.scss +11 -0
  233. data/app/assets/node_modules/clone/LICENSE +18 -0
  234. data/app/assets/node_modules/clone/README.md +178 -0
  235. data/app/assets/node_modules/clone/clone.iml +10 -0
  236. data/app/assets/node_modules/clone/clone.js +251 -0
  237. data/app/assets/node_modules/clone/package.json +56 -0
  238. data/app/assets/node_modules/deep-equal/LICENSE +18 -0
  239. data/app/assets/node_modules/deep-equal/example/cmp.js +11 -0
  240. data/app/assets/node_modules/deep-equal/index.js +94 -0
  241. data/app/assets/node_modules/deep-equal/lib/is_arguments.js +20 -0
  242. data/app/assets/node_modules/deep-equal/lib/keys.js +9 -0
  243. data/app/assets/node_modules/deep-equal/package.json +58 -0
  244. data/app/assets/node_modules/deep-equal/readme.markdown +61 -0
  245. data/app/assets/node_modules/deep-equal/test/cmp.js +95 -0
  246. data/app/assets/node_modules/dropzone/CONTRIBUTING.md +6 -0
  247. data/app/assets/node_modules/dropzone/LICENSE +12 -0
  248. data/app/assets/node_modules/dropzone/README.md +36 -0
  249. data/app/assets/node_modules/dropzone/bower.json +16 -0
  250. data/app/assets/node_modules/dropzone/component.json +10 -0
  251. data/app/assets/node_modules/dropzone/composer.json +18 -0
  252. data/app/assets/node_modules/dropzone/dist/basic.css +39 -0
  253. data/app/assets/node_modules/dropzone/dist/dropzone-amd-module.js +3541 -0
  254. data/app/assets/node_modules/dropzone/dist/dropzone.css +388 -0
  255. data/app/assets/node_modules/dropzone/dist/dropzone.js +3526 -0
  256. data/app/assets/node_modules/dropzone/dist/min/basic.min.css +1 -0
  257. data/app/assets/node_modules/dropzone/dist/min/dropzone-amd-module.min.js +2 -0
  258. data/app/assets/node_modules/dropzone/dist/min/dropzone.min.css +1 -0
  259. data/app/assets/node_modules/dropzone/dist/min/dropzone.min.js +2 -0
  260. data/app/assets/node_modules/dropzone/dist/readme.md +10 -0
  261. data/app/assets/node_modules/dropzone/index.js +1 -0
  262. data/app/assets/node_modules/dropzone/package.json +40 -0
  263. data/app/assets/node_modules/eve-raphael/LICENSE +202 -0
  264. data/app/assets/node_modules/eve-raphael/README.md +5 -0
  265. data/app/assets/node_modules/eve-raphael/bower.json +17 -0
  266. data/app/assets/node_modules/eve-raphael/component.json +13 -0
  267. data/app/assets/node_modules/eve-raphael/e.html +66 -0
  268. data/app/assets/node_modules/eve-raphael/eve.js +426 -0
  269. data/app/assets/node_modules/eve-raphael/package.json +15 -0
  270. data/app/assets/node_modules/eventemitter3/LICENSE +21 -0
  271. data/app/assets/node_modules/eventemitter3/README.md +105 -0
  272. data/app/assets/node_modules/eventemitter3/index.d.ts +50 -0
  273. data/app/assets/node_modules/eventemitter3/index.js +311 -0
  274. data/app/assets/node_modules/eventemitter3/package.json +51 -0
  275. data/app/assets/node_modules/eventemitter3/umd/eventemitter3.min.js +1 -0
  276. data/app/assets/node_modules/extend/CHANGELOG.md +77 -0
  277. data/app/assets/node_modules/extend/LICENSE +23 -0
  278. data/app/assets/node_modules/extend/README.md +81 -0
  279. data/app/assets/node_modules/extend/component.json +32 -0
  280. data/app/assets/node_modules/extend/index.js +86 -0
  281. data/app/assets/node_modules/extend/package.json +43 -0
  282. data/app/assets/node_modules/fast-diff/README.md +24 -0
  283. data/app/assets/node_modules/fast-diff/diff.js +738 -0
  284. data/app/assets/node_modules/fast-diff/package.json +24 -0
  285. data/app/assets/node_modules/fast-diff/test.js +91 -0
  286. data/app/assets/node_modules/jquery/AUTHORS.txt +313 -0
  287. data/app/assets/node_modules/jquery/LICENSE.txt +36 -0
  288. data/app/assets/node_modules/jquery/README.md +67 -0
  289. data/app/assets/node_modules/jquery/bower.json +14 -0
  290. data/app/assets/node_modules/jquery/dist/core.js +399 -0
  291. data/app/assets/node_modules/jquery/dist/jquery.js +10364 -0
  292. data/app/assets/node_modules/jquery/dist/jquery.min.js +2 -0
  293. data/app/assets/node_modules/jquery/dist/jquery.min.map +1 -0
  294. data/app/assets/node_modules/jquery/dist/jquery.slim.js +8269 -0
  295. data/app/assets/node_modules/jquery/dist/jquery.slim.min.js +2 -0
  296. data/app/assets/node_modules/jquery/dist/jquery.slim.min.map +1 -0
  297. data/app/assets/node_modules/jquery/external/sizzle/LICENSE.txt +36 -0
  298. data/app/assets/node_modules/jquery/external/sizzle/dist/sizzle.js +2272 -0
  299. data/app/assets/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  300. data/app/assets/node_modules/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  301. data/app/assets/node_modules/jquery/package.json +108 -0
  302. data/app/assets/node_modules/jquery/src/ajax/jsonp.js +103 -0
  303. data/app/assets/node_modules/jquery/src/ajax/load.js +77 -0
  304. data/app/assets/node_modules/jquery/src/ajax/parseXML.js +30 -0
  305. data/app/assets/node_modules/jquery/src/ajax/script.js +77 -0
  306. data/app/assets/node_modules/jquery/src/ajax/var/location.js +5 -0
  307. data/app/assets/node_modules/jquery/src/ajax/var/nonce.js +5 -0
  308. data/app/assets/node_modules/jquery/src/ajax/var/rquery.js +5 -0
  309. data/app/assets/node_modules/jquery/src/ajax/xhr.js +170 -0
  310. data/app/assets/node_modules/jquery/src/ajax.js +856 -0
  311. data/app/assets/node_modules/jquery/src/attributes/attr.js +141 -0
  312. data/app/assets/node_modules/jquery/src/attributes/classes.js +186 -0
  313. data/app/assets/node_modules/jquery/src/attributes/prop.js +143 -0
  314. data/app/assets/node_modules/jquery/src/attributes/support.js +33 -0
  315. data/app/assets/node_modules/jquery/src/attributes/val.js +191 -0
  316. data/app/assets/node_modules/jquery/src/attributes.js +13 -0
  317. data/app/assets/node_modules/jquery/src/callbacks.js +236 -0
  318. data/app/assets/node_modules/jquery/src/core/DOMEval.js +30 -0
  319. data/app/assets/node_modules/jquery/src/core/access.js +72 -0
  320. data/app/assets/node_modules/jquery/src/core/camelCase.js +23 -0
  321. data/app/assets/node_modules/jquery/src/core/init.js +129 -0
  322. data/app/assets/node_modules/jquery/src/core/nodeName.js +13 -0
  323. data/app/assets/node_modules/jquery/src/core/parseHTML.js +65 -0
  324. data/app/assets/node_modules/jquery/src/core/ready-no-deferred.js +97 -0
  325. data/app/assets/node_modules/jquery/src/core/ready.js +86 -0
  326. data/app/assets/node_modules/jquery/src/core/readyException.js +13 -0
  327. data/app/assets/node_modules/jquery/src/core/stripAndCollapse.js +14 -0
  328. data/app/assets/node_modules/jquery/src/core/support.js +20 -0
  329. data/app/assets/node_modules/jquery/src/core/toType.js +20 -0
  330. data/app/assets/node_modules/jquery/src/core/var/rsingleTag.js +6 -0
  331. data/app/assets/node_modules/jquery/src/core.js +399 -0
  332. data/app/assets/node_modules/jquery/src/css/addGetHookIf.js +26 -0
  333. data/app/assets/node_modules/jquery/src/css/adjustCSS.js +73 -0
  334. data/app/assets/node_modules/jquery/src/css/curCSS.js +65 -0
  335. data/app/assets/node_modules/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  336. data/app/assets/node_modules/jquery/src/css/showHide.js +105 -0
  337. data/app/assets/node_modules/jquery/src/css/support.js +102 -0
  338. data/app/assets/node_modules/jquery/src/css/var/cssExpand.js +5 -0
  339. data/app/assets/node_modules/jquery/src/css/var/getStyles.js +17 -0
  340. data/app/assets/node_modules/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  341. data/app/assets/node_modules/jquery/src/css/var/rboxStyle.js +7 -0
  342. data/app/assets/node_modules/jquery/src/css/var/rnumnonpx.js +7 -0
  343. data/app/assets/node_modules/jquery/src/css/var/swap.js +26 -0
  344. data/app/assets/node_modules/jquery/src/css.js +481 -0
  345. data/app/assets/node_modules/jquery/src/data/Data.js +162 -0
  346. data/app/assets/node_modules/jquery/src/data/var/acceptData.js +19 -0
  347. data/app/assets/node_modules/jquery/src/data/var/dataPriv.js +7 -0
  348. data/app/assets/node_modules/jquery/src/data/var/dataUser.js +7 -0
  349. data/app/assets/node_modules/jquery/src/data.js +180 -0
  350. data/app/assets/node_modules/jquery/src/deferred/exceptionHook.js +21 -0
  351. data/app/assets/node_modules/jquery/src/deferred.js +399 -0
  352. data/app/assets/node_modules/jquery/src/deprecated.js +98 -0
  353. data/app/assets/node_modules/jquery/src/dimensions.js +57 -0
  354. data/app/assets/node_modules/jquery/src/effects/Tween.js +123 -0
  355. data/app/assets/node_modules/jquery/src/effects/animatedSelector.js +15 -0
  356. data/app/assets/node_modules/jquery/src/effects.js +702 -0
  357. data/app/assets/node_modules/jquery/src/event/ajax.js +22 -0
  358. data/app/assets/node_modules/jquery/src/event/alias.js +29 -0
  359. data/app/assets/node_modules/jquery/src/event/focusin.js +55 -0
  360. data/app/assets/node_modules/jquery/src/event/support.js +11 -0
  361. data/app/assets/node_modules/jquery/src/event/trigger.js +199 -0
  362. data/app/assets/node_modules/jquery/src/event.js +748 -0
  363. data/app/assets/node_modules/jquery/src/exports/amd.js +26 -0
  364. data/app/assets/node_modules/jquery/src/exports/global.js +34 -0
  365. data/app/assets/node_modules/jquery/src/jquery.js +40 -0
  366. data/app/assets/node_modules/jquery/src/manipulation/_evalUrl.js +23 -0
  367. data/app/assets/node_modules/jquery/src/manipulation/buildFragment.js +105 -0
  368. data/app/assets/node_modules/jquery/src/manipulation/getAll.js +32 -0
  369. data/app/assets/node_modules/jquery/src/manipulation/setGlobalEval.js +22 -0
  370. data/app/assets/node_modules/jquery/src/manipulation/support.js +35 -0
  371. data/app/assets/node_modules/jquery/src/manipulation/var/rcheckableType.js +5 -0
  372. data/app/assets/node_modules/jquery/src/manipulation/var/rscriptType.js +5 -0
  373. data/app/assets/node_modules/jquery/src/manipulation/var/rtagName.js +5 -0
  374. data/app/assets/node_modules/jquery/src/manipulation/wrapMap.js +29 -0
  375. data/app/assets/node_modules/jquery/src/manipulation.js +486 -0
  376. data/app/assets/node_modules/jquery/src/offset.js +233 -0
  377. data/app/assets/node_modules/jquery/src/queue/delay.js +24 -0
  378. data/app/assets/node_modules/jquery/src/queue.js +145 -0
  379. data/app/assets/node_modules/jquery/src/selector-native.js +237 -0
  380. data/app/assets/node_modules/jquery/src/selector-sizzle.js +19 -0
  381. data/app/assets/node_modules/jquery/src/selector.js +3 -0
  382. data/app/assets/node_modules/jquery/src/serialize.js +132 -0
  383. data/app/assets/node_modules/jquery/src/traversing/findFilter.js +97 -0
  384. data/app/assets/node_modules/jquery/src/traversing/var/dir.js +22 -0
  385. data/app/assets/node_modules/jquery/src/traversing/var/rneedsContext.js +8 -0
  386. data/app/assets/node_modules/jquery/src/traversing/var/siblings.js +17 -0
  387. data/app/assets/node_modules/jquery/src/traversing.js +191 -0
  388. data/app/assets/node_modules/jquery/src/var/ObjectFunctionString.js +7 -0
  389. data/app/assets/node_modules/jquery/src/var/arr.js +5 -0
  390. data/app/assets/node_modules/jquery/src/var/class2type.js +6 -0
  391. data/app/assets/node_modules/jquery/src/var/concat.js +7 -0
  392. data/app/assets/node_modules/jquery/src/var/document.js +5 -0
  393. data/app/assets/node_modules/jquery/src/var/documentElement.js +7 -0
  394. data/app/assets/node_modules/jquery/src/var/fnToString.js +7 -0
  395. data/app/assets/node_modules/jquery/src/var/getProto.js +5 -0
  396. data/app/assets/node_modules/jquery/src/var/hasOwn.js +7 -0
  397. data/app/assets/node_modules/jquery/src/var/indexOf.js +7 -0
  398. data/app/assets/node_modules/jquery/src/var/isFunction.js +13 -0
  399. data/app/assets/node_modules/jquery/src/var/isWindow.js +8 -0
  400. data/app/assets/node_modules/jquery/src/var/pnum.js +5 -0
  401. data/app/assets/node_modules/jquery/src/var/push.js +7 -0
  402. data/app/assets/node_modules/jquery/src/var/rcssNum.js +9 -0
  403. data/app/assets/node_modules/jquery/src/var/rnothtmlwhite.js +8 -0
  404. data/app/assets/node_modules/jquery/src/var/slice.js +7 -0
  405. data/app/assets/node_modules/jquery/src/var/support.js +6 -0
  406. data/app/assets/node_modules/jquery/src/var/toString.js +7 -0
  407. data/app/assets/node_modules/jquery/src/wrap.js +78 -0
  408. data/app/assets/node_modules/jquery-flot/API.md +1498 -0
  409. data/app/assets/node_modules/jquery-flot/CONTRIBUTING.md +98 -0
  410. data/app/assets/node_modules/jquery-flot/FAQ.md +75 -0
  411. data/app/assets/node_modules/jquery-flot/LICENSE.txt +22 -0
  412. data/app/assets/node_modules/jquery-flot/Makefile +12 -0
  413. data/app/assets/node_modules/jquery-flot/NEWS.md +1026 -0
  414. data/app/assets/node_modules/jquery-flot/PLUGINS.md +143 -0
  415. data/app/assets/node_modules/jquery-flot/README.md +110 -0
  416. data/app/assets/node_modules/jquery-flot/component.json +8 -0
  417. data/app/assets/node_modules/jquery-flot/examples/ajax/data-eu-gdp-growth-1.json +4 -0
  418. data/app/assets/node_modules/jquery-flot/examples/ajax/data-eu-gdp-growth-2.json +4 -0
  419. data/app/assets/node_modules/jquery-flot/examples/ajax/data-eu-gdp-growth-3.json +4 -0
  420. data/app/assets/node_modules/jquery-flot/examples/ajax/data-eu-gdp-growth-4.json +4 -0
  421. data/app/assets/node_modules/jquery-flot/examples/ajax/data-eu-gdp-growth-5.json +4 -0
  422. data/app/assets/node_modules/jquery-flot/examples/ajax/data-eu-gdp-growth.json +4 -0
  423. data/app/assets/node_modules/jquery-flot/examples/ajax/data-japan-gdp-growth.json +4 -0
  424. data/app/assets/node_modules/jquery-flot/examples/ajax/data-usa-gdp-growth.json +4 -0
  425. data/app/assets/node_modules/jquery-flot/examples/ajax/index.html +173 -0
  426. data/app/assets/node_modules/jquery-flot/examples/annotating/index.html +87 -0
  427. data/app/assets/node_modules/jquery-flot/examples/axes-interacting/index.html +97 -0
  428. data/app/assets/node_modules/jquery-flot/examples/axes-multiple/index.html +77 -0
  429. data/app/assets/node_modules/jquery-flot/examples/axes-time/index.html +137 -0
  430. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/date.js +893 -0
  431. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/index.html +114 -0
  432. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/africa +1181 -0
  433. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/antarctica +413 -0
  434. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/asia +2717 -0
  435. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/australasia +1719 -0
  436. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/backward +117 -0
  437. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/etcetera +81 -0
  438. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/europe +2856 -0
  439. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/factory +10 -0
  440. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/iso3166.tab +276 -0
  441. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/leapseconds +100 -0
  442. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/northamerica +3235 -0
  443. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/pacificnew +28 -0
  444. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/solar87 +390 -0
  445. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/solar88 +390 -0
  446. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/solar89 +395 -0
  447. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/southamerica +1711 -0
  448. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/systemv +38 -0
  449. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/yearistype.sh +38 -0
  450. data/app/assets/node_modules/jquery-flot/examples/axes-time-zones/tz/zone.tab +441 -0
  451. data/app/assets/node_modules/jquery-flot/examples/background.png +0 -0
  452. data/app/assets/node_modules/jquery-flot/examples/basic-options/index.html +91 -0
  453. data/app/assets/node_modules/jquery-flot/examples/basic-usage/index.html +57 -0
  454. data/app/assets/node_modules/jquery-flot/examples/canvas/index.html +75 -0
  455. data/app/assets/node_modules/jquery-flot/examples/categories/index.html +64 -0
  456. data/app/assets/node_modules/jquery-flot/examples/examples.css +97 -0
  457. data/app/assets/node_modules/jquery-flot/examples/image/hs-2004-27-a-large-web.jpg +0 -0
  458. data/app/assets/node_modules/jquery-flot/examples/image/index.html +69 -0
  459. data/app/assets/node_modules/jquery-flot/examples/index.html +80 -0
  460. data/app/assets/node_modules/jquery-flot/examples/interacting/index.html +118 -0
  461. data/app/assets/node_modules/jquery-flot/examples/navigate/arrow-down.gif +0 -0
  462. data/app/assets/node_modules/jquery-flot/examples/navigate/arrow-left.gif +0 -0
  463. data/app/assets/node_modules/jquery-flot/examples/navigate/arrow-right.gif +0 -0
  464. data/app/assets/node_modules/jquery-flot/examples/navigate/arrow-up.gif +0 -0
  465. data/app/assets/node_modules/jquery-flot/examples/navigate/index.html +153 -0
  466. data/app/assets/node_modules/jquery-flot/examples/percentiles/index.html +79 -0
  467. data/app/assets/node_modules/jquery-flot/examples/realtime/index.html +122 -0
  468. data/app/assets/node_modules/jquery-flot/examples/resize/index.html +76 -0
  469. data/app/assets/node_modules/jquery-flot/examples/selection/index.html +152 -0
  470. data/app/assets/node_modules/jquery-flot/examples/series-errorbars/index.html +150 -0
  471. data/app/assets/node_modules/jquery-flot/examples/series-pie/index.html +818 -0
  472. data/app/assets/node_modules/jquery-flot/examples/series-toggle/index.html +121 -0
  473. data/app/assets/node_modules/jquery-flot/examples/series-types/index.html +90 -0
  474. data/app/assets/node_modules/jquery-flot/examples/shared/jquery-ui/jquery-ui.min.css +6 -0
  475. data/app/assets/node_modules/jquery-flot/examples/stacking/index.html +107 -0
  476. data/app/assets/node_modules/jquery-flot/examples/symbols/index.html +76 -0
  477. data/app/assets/node_modules/jquery-flot/examples/threshold/index.html +76 -0
  478. data/app/assets/node_modules/jquery-flot/examples/tracking/index.html +135 -0
  479. data/app/assets/node_modules/jquery-flot/examples/visitors/index.html +147 -0
  480. data/app/assets/node_modules/jquery-flot/examples/zooming/index.html +144 -0
  481. data/app/assets/node_modules/jquery-flot/excanvas.js +1428 -0
  482. data/app/assets/node_modules/jquery-flot/excanvas.min.js +1 -0
  483. data/app/assets/node_modules/jquery-flot/flot.jquery.json +27 -0
  484. data/app/assets/node_modules/jquery-flot/jquery.colorhelpers.js +180 -0
  485. data/app/assets/node_modules/jquery-flot/jquery.flot.canvas.js +345 -0
  486. data/app/assets/node_modules/jquery-flot/jquery.flot.categories.js +190 -0
  487. data/app/assets/node_modules/jquery-flot/jquery.flot.crosshair.js +176 -0
  488. data/app/assets/node_modules/jquery-flot/jquery.flot.errorbars.js +353 -0
  489. data/app/assets/node_modules/jquery-flot/jquery.flot.fillbetween.js +226 -0
  490. data/app/assets/node_modules/jquery-flot/jquery.flot.image.js +241 -0
  491. data/app/assets/node_modules/jquery-flot/jquery.flot.js +3168 -0
  492. data/app/assets/node_modules/jquery-flot/jquery.flot.navigate.js +346 -0
  493. data/app/assets/node_modules/jquery-flot/jquery.flot.pie.js +820 -0
  494. data/app/assets/node_modules/jquery-flot/jquery.flot.resize.js +59 -0
  495. data/app/assets/node_modules/jquery-flot/jquery.flot.selection.js +360 -0
  496. data/app/assets/node_modules/jquery-flot/jquery.flot.stack.js +188 -0
  497. data/app/assets/node_modules/jquery-flot/jquery.flot.symbol.js +71 -0
  498. data/app/assets/node_modules/jquery-flot/jquery.flot.threshold.js +142 -0
  499. data/app/assets/node_modules/jquery-flot/jquery.flot.time.js +432 -0
  500. data/app/assets/node_modules/jquery-flot/jquery.js +9472 -0
  501. data/app/assets/node_modules/jquery-flot/package.json +11 -0
  502. data/app/assets/node_modules/jquery-sparkline/Changelog.txt +324 -0
  503. data/app/assets/node_modules/jquery-sparkline/README.md +19 -0
  504. data/app/assets/node_modules/jquery-sparkline/build.js +13 -0
  505. data/app/assets/node_modules/jquery-sparkline/jquery.sparkline.js +3068 -0
  506. data/app/assets/node_modules/jquery-sparkline/jquery.sparkline.min.js +2 -0
  507. data/app/assets/node_modules/jquery-sparkline/package.json +32 -0
  508. data/app/assets/node_modules/jquery-sparkline/src/base.js +415 -0
  509. data/app/assets/node_modules/jquery-sparkline/src/chart-bar.js +256 -0
  510. data/app/assets/node_modules/jquery-sparkline/src/chart-box.js +186 -0
  511. data/app/assets/node_modules/jquery-sparkline/src/chart-bullet.js +131 -0
  512. data/app/assets/node_modules/jquery-sparkline/src/chart-discrete.js +66 -0
  513. data/app/assets/node_modules/jquery-sparkline/src/chart-line.js +350 -0
  514. data/app/assets/node_modules/jquery-sparkline/src/chart-pie.js +117 -0
  515. data/app/assets/node_modules/jquery-sparkline/src/chart-tristate.js +98 -0
  516. data/app/assets/node_modules/jquery-sparkline/src/defaults.js +156 -0
  517. data/app/assets/node_modules/jquery-sparkline/src/footer.js +1 -0
  518. data/app/assets/node_modules/jquery-sparkline/src/header.js +222 -0
  519. data/app/assets/node_modules/jquery-sparkline/src/interact.js +247 -0
  520. data/app/assets/node_modules/jquery-sparkline/src/rangemap.js +39 -0
  521. data/app/assets/node_modules/jquery-sparkline/src/simpledraw.js +55 -0
  522. data/app/assets/node_modules/jquery-sparkline/src/utils.js +224 -0
  523. data/app/assets/node_modules/jquery-sparkline/src/vcanvas-base.js +147 -0
  524. data/app/assets/node_modules/jquery-sparkline/src/vcanvas-canvas.js +193 -0
  525. data/app/assets/node_modules/jquery-sparkline/src/vcanvas-vml.js +165 -0
  526. data/app/assets/node_modules/jquery-touchswipe/LICENSE +24 -0
  527. data/app/assets/node_modules/jquery-touchswipe/README.md +81 -0
  528. data/app/assets/node_modules/jquery-touchswipe/bower.json +8 -0
  529. data/app/assets/node_modules/jquery-touchswipe/demos/Any_finger_swipe.html +49 -0
  530. data/app/assets/node_modules/jquery-touchswipe/demos/Basic_swipe.html +48 -0
  531. data/app/assets/node_modules/jquery-touchswipe/demos/Enable_and_destroy.html +95 -0
  532. data/app/assets/node_modules/jquery-touchswipe/demos/Excluded_children.html +82 -0
  533. data/app/assets/node_modules/jquery-touchswipe/demos/Finger_swipe.html +61 -0
  534. data/app/assets/node_modules/jquery-touchswipe/demos/Handlers_and_events.html +128 -0
  535. data/app/assets/node_modules/jquery-touchswipe/demos/Hold.html +61 -0
  536. data/app/assets/node_modules/jquery-touchswipe/demos/Image_gallery_example.html +148 -0
  537. data/app/assets/node_modules/jquery-touchswipe/demos/Options.html +90 -0
  538. data/app/assets/node_modules/jquery-touchswipe/demos/Page_scrolling.html +109 -0
  539. data/app/assets/node_modules/jquery-touchswipe/demos/Page_zoom.html +50 -0
  540. data/app/assets/node_modules/jquery-touchswipe/demos/Pinch.html +57 -0
  541. data/app/assets/node_modules/jquery-touchswipe/demos/Pinch_and_Swipe.html +81 -0
  542. data/app/assets/node_modules/jquery-touchswipe/demos/Pinch_status.html +51 -0
  543. data/app/assets/node_modules/jquery-touchswipe/demos/Single_swipe.html +51 -0
  544. data/app/assets/node_modules/jquery-touchswipe/demos/Stop_propegation.html +57 -0
  545. data/app/assets/node_modules/jquery-touchswipe/demos/Swipe_status.html +82 -0
  546. data/app/assets/node_modules/jquery-touchswipe/demos/Tap_vs_swipe.html +114 -0
  547. data/app/assets/node_modules/jquery-touchswipe/demos/Thresholds.html +109 -0
  548. data/app/assets/node_modules/jquery-touchswipe/demos/Trigger_handlers.html +158 -0
  549. data/app/assets/node_modules/jquery-touchswipe/demos/css/main.css +110 -0
  550. data/app/assets/node_modules/jquery-touchswipe/demos/index.html +74 -0
  551. data/app/assets/node_modules/jquery-touchswipe/demos/js/jquery.ui.ipad.js +223 -0
  552. data/app/assets/node_modules/jquery-touchswipe/demos/js/main.js +240 -0
  553. data/app/assets/node_modules/jquery-touchswipe/demos/tutorials.json +22 -0
  554. data/app/assets/node_modules/jquery-touchswipe/docs/$.fn.html +188 -0
  555. data/app/assets/node_modules/jquery-touchswipe/docs/$.fn.swipe.defaults.html +1174 -0
  556. data/app/assets/node_modules/jquery-touchswipe/docs/$.fn.swipe.directions.html +311 -0
  557. data/app/assets/node_modules/jquery-touchswipe/docs/$.fn.swipe.fingers.html +319 -0
  558. data/app/assets/node_modules/jquery-touchswipe/docs/$.fn.swipe.html +4205 -0
  559. data/app/assets/node_modules/jquery-touchswipe/docs/$.fn.swipe.pageScroll.html +272 -0
  560. data/app/assets/node_modules/jquery-touchswipe/docs/$.fn.swipe.phases.html +265 -0
  561. data/app/assets/node_modules/jquery-touchswipe/docs/$.html +186 -0
  562. data/app/assets/node_modules/jquery-touchswipe/docs/css/main.css +110 -0
  563. data/app/assets/node_modules/jquery-touchswipe/docs/index.html +101 -0
  564. data/app/assets/node_modules/jquery-touchswipe/docs/jquery.touchSwipe.js.html +2168 -0
  565. data/app/assets/node_modules/jquery-touchswipe/docs/js/jquery.ui.ipad.js +223 -0
  566. data/app/assets/node_modules/jquery-touchswipe/docs/js/main.js +85 -0
  567. data/app/assets/node_modules/jquery-touchswipe/docs/scripts/linenumber.js +25 -0
  568. data/app/assets/node_modules/jquery-touchswipe/docs/scripts/prettify/Apache-License-2.0.txt +202 -0
  569. data/app/assets/node_modules/jquery-touchswipe/docs/scripts/prettify/lang-css.js +2 -0
  570. data/app/assets/node_modules/jquery-touchswipe/docs/scripts/prettify/prettify.js +28 -0
  571. data/app/assets/node_modules/jquery-touchswipe/docs/styles/jsdoc.css +625 -0
  572. data/app/assets/node_modules/jquery-touchswipe/docs/styles/prettify.css +79 -0
  573. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Any_finger_swipe.html +108 -0
  574. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Basic_swipe.html +107 -0
  575. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Enable_and_destroy.html +154 -0
  576. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Excluded_children.html +141 -0
  577. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Finger_swipe.html +120 -0
  578. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Handlers_and_events.html +187 -0
  579. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Hold.html +120 -0
  580. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Image_gallery_example.html +207 -0
  581. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Options.html +149 -0
  582. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Page_scrolling.html +168 -0
  583. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Page_zoom.html +109 -0
  584. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Pinch.html +116 -0
  585. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Pinch_and_Swipe.html +140 -0
  586. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Pinch_status.html +110 -0
  587. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Single_swipe.html +110 -0
  588. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Stop_propegation.html +116 -0
  589. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Swipe_status.html +141 -0
  590. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Tap_vs_swipe.html +173 -0
  591. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Thresholds.html +168 -0
  592. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-Trigger_handlers.html +217 -0
  593. data/app/assets/node_modules/jquery-touchswipe/docs/tutorial-index_.html +133 -0
  594. data/app/assets/node_modules/jquery-touchswipe/jquery.touchSwipe.js +2109 -0
  595. data/app/assets/node_modules/jquery-touchswipe/jquery.touchSwipe.min.js +14 -0
  596. data/app/assets/node_modules/jquery-touchswipe/package.json +47 -0
  597. data/app/assets/node_modules/jquery-validation/LICENSE.md +22 -0
  598. data/app/assets/node_modules/jquery-validation/README.md +76 -0
  599. data/app/assets/node_modules/jquery-validation/changelog.md +639 -0
  600. data/app/assets/node_modules/jquery-validation/dist/additional-methods.js +1158 -0
  601. data/app/assets/node_modules/jquery-validation/dist/jquery.validate.js +1601 -0
  602. data/app/assets/node_modules/jquery-validation/dist/jquery.validate.min.js +4 -0
  603. data/app/assets/node_modules/jquery-validation/dist/localization/messages_ar.js +35 -0
  604. data/app/assets/node_modules/jquery-validation/dist/localization/messages_az.js +35 -0
  605. data/app/assets/node_modules/jquery-validation/dist/localization/messages_bg.js +35 -0
  606. data/app/assets/node_modules/jquery-validation/dist/localization/messages_bn_BD.js +35 -0
  607. data/app/assets/node_modules/jquery-validation/dist/localization/messages_ca.js +35 -0
  608. data/app/assets/node_modules/jquery-validation/dist/localization/messages_cs.js +35 -0
  609. data/app/assets/node_modules/jquery-validation/dist/localization/messages_da.js +32 -0
  610. data/app/assets/node_modules/jquery-validation/dist/localization/messages_de.js +32 -0
  611. data/app/assets/node_modules/jquery-validation/dist/localization/messages_el.js +35 -0
  612. data/app/assets/node_modules/jquery-validation/dist/localization/messages_es.js +38 -0
  613. data/app/assets/node_modules/jquery-validation/dist/localization/messages_es_AR.js +39 -0
  614. data/app/assets/node_modules/jquery-validation/dist/localization/messages_es_PE.js +39 -0
  615. data/app/assets/node_modules/jquery-validation/dist/localization/messages_et.js +33 -0
  616. data/app/assets/node_modules/jquery-validation/dist/localization/messages_eu.js +35 -0
  617. data/app/assets/node_modules/jquery-validation/dist/localization/messages_fa.js +38 -0
  618. data/app/assets/node_modules/jquery-validation/dist/localization/messages_fi.js +33 -0
  619. data/app/assets/node_modules/jquery-validation/dist/localization/messages_fr.js +63 -0
  620. data/app/assets/node_modules/jquery-validation/dist/localization/messages_ge.js +35 -0
  621. data/app/assets/node_modules/jquery-validation/dist/localization/messages_gl.js +40 -0
  622. data/app/assets/node_modules/jquery-validation/dist/localization/messages_he.js +35 -0
  623. data/app/assets/node_modules/jquery-validation/dist/localization/messages_hr.js +35 -0
  624. data/app/assets/node_modules/jquery-validation/dist/localization/messages_hu.js +35 -0
  625. data/app/assets/node_modules/jquery-validation/dist/localization/messages_hy_AM.js +35 -0
  626. data/app/assets/node_modules/jquery-validation/dist/localization/messages_id.js +34 -0
  627. data/app/assets/node_modules/jquery-validation/dist/localization/messages_is.js +33 -0
  628. data/app/assets/node_modules/jquery-validation/dist/localization/messages_it.js +39 -0
  629. data/app/assets/node_modules/jquery-validation/dist/localization/messages_ja.js +36 -0
  630. data/app/assets/node_modules/jquery-validation/dist/localization/messages_ka.js +35 -0
  631. data/app/assets/node_modules/jquery-validation/dist/localization/messages_kk.js +35 -0
  632. data/app/assets/node_modules/jquery-validation/dist/localization/messages_ko.js +35 -0
  633. data/app/assets/node_modules/jquery-validation/dist/localization/messages_lt.js +35 -0
  634. data/app/assets/node_modules/jquery-validation/dist/localization/messages_lv.js +35 -0
  635. data/app/assets/node_modules/jquery-validation/dist/localization/messages_mk.js +35 -0
  636. data/app/assets/node_modules/jquery-validation/dist/localization/messages_my.js +35 -0
  637. data/app/assets/node_modules/jquery-validation/dist/localization/messages_nl.js +46 -0
  638. data/app/assets/node_modules/jquery-validation/dist/localization/messages_no.js +36 -0
  639. data/app/assets/node_modules/jquery-validation/dist/localization/messages_pl.js +37 -0
  640. data/app/assets/node_modules/jquery-validation/dist/localization/messages_pt_BR.js +88 -0
  641. data/app/assets/node_modules/jquery-validation/dist/localization/messages_pt_PT.js +39 -0
  642. data/app/assets/node_modules/jquery-validation/dist/localization/messages_ro.js +35 -0
  643. data/app/assets/node_modules/jquery-validation/dist/localization/messages_ru.js +35 -0
  644. data/app/assets/node_modules/jquery-validation/dist/localization/messages_sd.js +35 -0
  645. data/app/assets/node_modules/jquery-validation/dist/localization/messages_si.js +35 -0
  646. data/app/assets/node_modules/jquery-validation/dist/localization/messages_sk.js +32 -0
  647. data/app/assets/node_modules/jquery-validation/dist/localization/messages_sl.js +35 -0
  648. data/app/assets/node_modules/jquery-validation/dist/localization/messages_sr.js +35 -0
  649. data/app/assets/node_modules/jquery-validation/dist/localization/messages_sr_lat.js +35 -0
  650. data/app/assets/node_modules/jquery-validation/dist/localization/messages_sv.js +33 -0
  651. data/app/assets/node_modules/jquery-validation/dist/localization/messages_th.js +35 -0
  652. data/app/assets/node_modules/jquery-validation/dist/localization/messages_tj.js +35 -0
  653. data/app/assets/node_modules/jquery-validation/dist/localization/messages_tr.js +36 -0
  654. data/app/assets/node_modules/jquery-validation/dist/localization/messages_uk.js +35 -0
  655. data/app/assets/node_modules/jquery-validation/dist/localization/messages_ur.js +35 -0
  656. data/app/assets/node_modules/jquery-validation/dist/localization/messages_vi.js +35 -0
  657. data/app/assets/node_modules/jquery-validation/dist/localization/messages_zh.js +35 -0
  658. data/app/assets/node_modules/jquery-validation/dist/localization/messages_zh_TW.js +36 -0
  659. data/app/assets/node_modules/jquery-validation/dist/localization/methods_de.js +24 -0
  660. data/app/assets/node_modules/jquery-validation/dist/localization/methods_es_CL.js +24 -0
  661. data/app/assets/node_modules/jquery-validation/dist/localization/methods_fi.js +24 -0
  662. data/app/assets/node_modules/jquery-validation/dist/localization/methods_nl.js +24 -0
  663. data/app/assets/node_modules/jquery-validation/dist/localization/methods_pt.js +21 -0
  664. data/app/assets/node_modules/jquery-validation/package.json +61 -0
  665. data/app/assets/node_modules/jquery.browser/Gruntfile.js +62 -0
  666. data/app/assets/node_modules/jquery.browser/MIT-LICENSE.txt +21 -0
  667. data/app/assets/node_modules/jquery.browser/README.md +117 -0
  668. data/app/assets/node_modules/jquery.browser/bower.json +13 -0
  669. data/app/assets/node_modules/jquery.browser/browser.jquery.json +37 -0
  670. data/app/assets/node_modules/jquery.browser/dist/jquery.browser.js +193 -0
  671. data/app/assets/node_modules/jquery.browser/dist/jquery.browser.min.js +14 -0
  672. data/app/assets/node_modules/jquery.browser/package.json +30 -0
  673. data/app/assets/node_modules/jquery.browser/test/casperserver.js +257 -0
  674. data/app/assets/node_modules/jquery.browser/test/index.html +13 -0
  675. data/app/assets/node_modules/jquery.browser/test/src/jquery-1.10.2.min.js +6 -0
  676. data/app/assets/node_modules/jquery.browser/test/src/require/test.js +21 -0
  677. data/app/assets/node_modules/jquery.browser/test/test.js +962 -0
  678. data/app/assets/node_modules/jquery.flot.tooltip/CONTRIBUTING.md +9 -0
  679. data/app/assets/node_modules/jquery.flot.tooltip/Gruntfile.js +72 -0
  680. data/app/assets/node_modules/jquery.flot.tooltip/README.md +267 -0
  681. data/app/assets/node_modules/jquery.flot.tooltip/bower.json +13 -0
  682. data/app/assets/node_modules/jquery.flot.tooltip/examples/basic.html +45 -0
  683. data/app/assets/node_modules/jquery.flot.tooltip/examples/curved-lines.html +59 -0
  684. data/app/assets/node_modules/jquery.flot.tooltip/examples/custom-label-text.html +114 -0
  685. data/app/assets/node_modules/jquery.flot.tooltip/examples/custom_ticks.html +78 -0
  686. data/app/assets/node_modules/jquery.flot.tooltip/examples/dollar_in_tickformatter.html +68 -0
  687. data/app/assets/node_modules/jquery.flot.tooltip/examples/index.html +36 -0
  688. data/app/assets/node_modules/jquery.flot.tooltip/examples/js/curvedLines.js +483 -0
  689. data/app/assets/node_modules/jquery.flot.tooltip/examples/js/excanvas.min.js +1 -0
  690. data/app/assets/node_modules/jquery.flot.tooltip/examples/js/jquery.flot.js +3168 -0
  691. data/app/assets/node_modules/jquery.flot.tooltip/examples/js/jquery.flot.pie.js +820 -0
  692. data/app/assets/node_modules/jquery.flot.tooltip/examples/js/jquery.flot.stack.js +184 -0
  693. data/app/assets/node_modules/jquery.flot.tooltip/examples/js/jquery.flot.threshold.js +142 -0
  694. data/app/assets/node_modules/jquery.flot.tooltip/examples/js/jquery.flot.time.js +432 -0
  695. data/app/assets/node_modules/jquery.flot.tooltip/examples/many_series.html +78 -0
  696. data/app/assets/node_modules/jquery.flot.tooltip/examples/multiple-axes.html +78 -0
  697. data/app/assets/node_modules/jquery.flot.tooltip/examples/pie.html +87 -0
  698. data/app/assets/node_modules/jquery.flot.tooltip/examples/real_data.html +133 -0
  699. data/app/assets/node_modules/jquery.flot.tooltip/examples/stacking.html +97 -0
  700. data/app/assets/node_modules/jquery.flot.tooltip/examples/threshold.html +97 -0
  701. data/app/assets/node_modules/jquery.flot.tooltip/examples/time_bars.html +77 -0
  702. data/app/assets/node_modules/jquery.flot.tooltip/examples/two_chars.html +63 -0
  703. data/app/assets/node_modules/jquery.flot.tooltip/js/jquery.flot.tooltip.js +606 -0
  704. data/app/assets/node_modules/jquery.flot.tooltip/js/jquery.flot.tooltip.min.js +12 -0
  705. data/app/assets/node_modules/jquery.flot.tooltip/js/jquery.flot.tooltip.source.js +595 -0
  706. data/app/assets/node_modules/jquery.flot.tooltip/package.json +37 -0
  707. data/app/assets/node_modules/jqvmap/CHANGELOG.md +118 -0
  708. data/app/assets/node_modules/jqvmap/CONTRIBUTING.md +118 -0
  709. data/app/assets/node_modules/jqvmap/LICENSE +43 -0
  710. data/app/assets/node_modules/jqvmap/README.md +495 -0
  711. data/app/assets/node_modules/jqvmap/REGIONS.md +405 -0
  712. data/app/assets/node_modules/jqvmap/bower.json +32 -0
  713. data/app/assets/node_modules/jqvmap/create/README.md +207 -0
  714. data/app/assets/node_modules/jqvmap/create/config/continent.json +64 -0
  715. data/app/assets/node_modules/jqvmap/create/config/new-york.json +16 -0
  716. data/app/assets/node_modules/jqvmap/create/config/syria.json +16 -0
  717. data/app/assets/node_modules/jqvmap/create/jqvmap.py +573 -0
  718. data/app/assets/node_modules/jqvmap/dist/jquery.vmap.js +1281 -0
  719. data/app/assets/node_modules/jqvmap/dist/jquery.vmap.min.js +10 -0
  720. data/app/assets/node_modules/jqvmap/dist/jqvmap.css +50 -0
  721. data/app/assets/node_modules/jqvmap/dist/jqvmap.min.css +1 -0
  722. data/app/assets/node_modules/jqvmap/dist/maps/continents/jquery.vmap.africa.js +2 -0
  723. data/app/assets/node_modules/jqvmap/dist/maps/continents/jquery.vmap.asia.js +2 -0
  724. data/app/assets/node_modules/jqvmap/dist/maps/continents/jquery.vmap.australia.js +2 -0
  725. data/app/assets/node_modules/jqvmap/dist/maps/continents/jquery.vmap.europe.js +2 -0
  726. data/app/assets/node_modules/jqvmap/dist/maps/continents/jquery.vmap.north-america.js +2 -0
  727. data/app/assets/node_modules/jqvmap/dist/maps/continents/jquery.vmap.south-america.js +2 -0
  728. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.algeria.js +2 -0
  729. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.argentina.js +1 -0
  730. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.brazil.js +2 -0
  731. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.canada.js +2 -0
  732. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.europe.js +2 -0
  733. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.france.js +1 -0
  734. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.germany.js +2 -0
  735. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.greece.js +1 -0
  736. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.iran.js +6 -0
  737. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.iraq.js +1 -0
  738. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.russia.js +2 -0
  739. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.tunisia.js +2 -0
  740. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.turkey.js +11 -0
  741. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.usa.js +2 -0
  742. data/app/assets/node_modules/jqvmap/dist/maps/jquery.vmap.world.js +2 -0
  743. data/app/assets/node_modules/jqvmap/examples/algeria.html +27 -0
  744. data/app/assets/node_modules/jqvmap/examples/argentina.html +33 -0
  745. data/app/assets/node_modules/jqvmap/examples/brazil.html +33 -0
  746. data/app/assets/node_modules/jqvmap/examples/continents.html +172 -0
  747. data/app/assets/node_modules/jqvmap/examples/europe.html +27 -0
  748. data/app/assets/node_modules/jqvmap/examples/france.html +27 -0
  749. data/app/assets/node_modules/jqvmap/examples/germany.html +33 -0
  750. data/app/assets/node_modules/jqvmap/examples/greece.html +33 -0
  751. data/app/assets/node_modules/jqvmap/examples/images/background.png +0 -0
  752. data/app/assets/node_modules/jqvmap/examples/images/flag.png +0 -0
  753. data/app/assets/node_modules/jqvmap/examples/images/globe.png +0 -0
  754. data/app/assets/node_modules/jqvmap/examples/images/marker/black.png +0 -0
  755. data/app/assets/node_modules/jqvmap/examples/images/marker/blue.png +0 -0
  756. data/app/assets/node_modules/jqvmap/examples/images/marker/green.png +0 -0
  757. data/app/assets/node_modules/jqvmap/examples/images/marker/grey.png +0 -0
  758. data/app/assets/node_modules/jqvmap/examples/images/marker/orange.png +0 -0
  759. data/app/assets/node_modules/jqvmap/examples/images/marker/purple.png +0 -0
  760. data/app/assets/node_modules/jqvmap/examples/images/marker/red.png +0 -0
  761. data/app/assets/node_modules/jqvmap/examples/images/marker/white.png +0 -0
  762. data/app/assets/node_modules/jqvmap/examples/images/marker/yellow.png +0 -0
  763. data/app/assets/node_modules/jqvmap/examples/images/thumb.jpg +0 -0
  764. data/app/assets/node_modules/jqvmap/examples/images/tip.png +0 -0
  765. data/app/assets/node_modules/jqvmap/examples/inactive_regions.html +62 -0
  766. data/app/assets/node_modules/jqvmap/examples/iran.html +44 -0
  767. data/app/assets/node_modules/jqvmap/examples/iraq.html +44 -0
  768. data/app/assets/node_modules/jqvmap/examples/js/jquery.vmap.sampledata.js +1 -0
  769. data/app/assets/node_modules/jqvmap/examples/labels.html +146 -0
  770. data/app/assets/node_modules/jqvmap/examples/mobile.html +59 -0
  771. data/app/assets/node_modules/jqvmap/examples/multi.html +29 -0
  772. data/app/assets/node_modules/jqvmap/examples/pins.html +236 -0
  773. data/app/assets/node_modules/jqvmap/examples/pins_custom.html +127 -0
  774. data/app/assets/node_modules/jqvmap/examples/responsive.html +45 -0
  775. data/app/assets/node_modules/jqvmap/examples/russia.html +33 -0
  776. data/app/assets/node_modules/jqvmap/examples/touch_detect.html +46 -0
  777. data/app/assets/node_modules/jqvmap/examples/tunisia.html +33 -0
  778. data/app/assets/node_modules/jqvmap/examples/turkey.html +26 -0
  779. data/app/assets/node_modules/jqvmap/examples/usa.html +37 -0
  780. data/app/assets/node_modules/jqvmap/examples/world.html +35 -0
  781. data/app/assets/node_modules/jqvmap/grunt/bump.js +22 -0
  782. data/app/assets/node_modules/jqvmap/grunt/changelog.js +14 -0
  783. data/app/assets/node_modules/jqvmap/grunt/clean.js +5 -0
  784. data/app/assets/node_modules/jqvmap/grunt/concat.js +23 -0
  785. data/app/assets/node_modules/jqvmap/grunt/index.js +2 -0
  786. data/app/assets/node_modules/jqvmap/grunt/qunit.js +3 -0
  787. data/app/assets/node_modules/jqvmap/grunt/shell.js +6 -0
  788. data/app/assets/node_modules/jqvmap/grunt/uglify.js +19 -0
  789. data/app/assets/node_modules/jqvmap/gruntfile.js +21 -0
  790. data/app/assets/node_modules/jqvmap/node_modules/jquery/AUTHORS.txt +217 -0
  791. data/app/assets/node_modules/jqvmap/node_modules/jquery/CONTRIBUTING.md +214 -0
  792. data/app/assets/node_modules/jqvmap/node_modules/jquery/MIT-LICENSE.txt +21 -0
  793. data/app/assets/node_modules/jqvmap/node_modules/jquery/README.md +368 -0
  794. data/app/assets/node_modules/jqvmap/node_modules/jquery/bower.json +28 -0
  795. data/app/assets/node_modules/jqvmap/node_modules/jquery/dist/jquery.js +10351 -0
  796. data/app/assets/node_modules/jqvmap/node_modules/jquery/dist/jquery.min.js +6 -0
  797. data/app/assets/node_modules/jqvmap/node_modules/jquery/dist/jquery.min.map +1 -0
  798. data/app/assets/node_modules/jqvmap/node_modules/jquery/package.json +54 -0
  799. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/ajax/jsonp.js +89 -0
  800. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/ajax/load.js +75 -0
  801. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/ajax/parseJSON.js +51 -0
  802. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/ajax/parseXML.js +31 -0
  803. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/ajax/script.js +93 -0
  804. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/ajax/var/nonce.js +5 -0
  805. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/ajax/var/rquery.js +3 -0
  806. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/ajax/xhr.js +197 -0
  807. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/ajax.js +801 -0
  808. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/attributes/attr.js +271 -0
  809. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/attributes/classes.js +157 -0
  810. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/attributes/prop.js +134 -0
  811. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/attributes/support.js +62 -0
  812. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/attributes/val.js +178 -0
  813. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/attributes.js +11 -0
  814. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/callbacks.js +205 -0
  815. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/core/access.js +60 -0
  816. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/core/init.js +132 -0
  817. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/core/parseHTML.js +39 -0
  818. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/core/ready.js +152 -0
  819. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/core/var/rsingleTag.js +4 -0
  820. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/core.js +540 -0
  821. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/addGetHookIf.js +32 -0
  822. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/curCSS.js +124 -0
  823. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/defaultDisplay.js +69 -0
  824. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/hiddenVisibleSelectors.js +20 -0
  825. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/support.js +151 -0
  826. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/swap.js +28 -0
  827. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/var/cssExpand.js +3 -0
  828. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/var/isHidden.js +13 -0
  829. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/var/rmargin.js +3 -0
  830. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css/var/rnumnonpx.js +5 -0
  831. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/css.js +504 -0
  832. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/data/accepts.js +21 -0
  833. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/data/support.js +25 -0
  834. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/data.js +335 -0
  835. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/deferred.js +150 -0
  836. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/deprecated.js +13 -0
  837. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/dimensions.js +50 -0
  838. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/effects/Tween.js +114 -0
  839. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/effects/animatedSelector.js +13 -0
  840. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/effects/support.js +55 -0
  841. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/effects.js +656 -0
  842. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/event/ajax.js +13 -0
  843. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/event/alias.js +39 -0
  844. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/event/support.js +26 -0
  845. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/event.js +1037 -0
  846. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/exports/amd.js +24 -0
  847. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/exports/global.js +32 -0
  848. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/intro.js +44 -0
  849. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/jquery.js +38 -0
  850. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/manipulation/_evalUrl.js +18 -0
  851. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/manipulation/support.js +76 -0
  852. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/manipulation/var/rcheckableType.js +3 -0
  853. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/manipulation.js +744 -0
  854. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/offset.js +211 -0
  855. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/outro.js +1 -0
  856. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/queue/delay.js +22 -0
  857. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/queue.js +142 -0
  858. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/selector-sizzle.js +14 -0
  859. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/selector.js +1 -0
  860. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/serialize.js +110 -0
  861. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/dist/sizzle.js +2067 -0
  862. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  863. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  864. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/test/data/empty.js +0 -0
  865. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/test/data/mixed_sort.html +22 -0
  866. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/test/data/testinit.js +136 -0
  867. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/test/index.html +242 -0
  868. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/test/jquery.js +9597 -0
  869. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/test/unit/extending.js +95 -0
  870. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/test/unit/selector.js +1149 -0
  871. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/sizzle/test/unit/utilities.js +169 -0
  872. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/support.js +58 -0
  873. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/traversing/findFilter.js +100 -0
  874. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/traversing/var/rneedsContext.js +6 -0
  875. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/traversing.js +200 -0
  876. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/class2type.js +4 -0
  877. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/concat.js +5 -0
  878. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/deletedIds.js +3 -0
  879. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/hasOwn.js +5 -0
  880. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/indexOf.js +5 -0
  881. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/pnum.js +3 -0
  882. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/push.js +5 -0
  883. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/rnotwhite.js +3 -0
  884. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/slice.js +5 -0
  885. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/strundefined.js +3 -0
  886. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/support.js +4 -0
  887. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/var/toString.js +5 -0
  888. data/app/assets/node_modules/jqvmap/node_modules/jquery/src/wrap.js +76 -0
  889. data/app/assets/node_modules/jqvmap/package.json +45 -0
  890. data/app/assets/node_modules/jqvmap/src/Base.js +80 -0
  891. data/app/assets/node_modules/jqvmap/src/ColorScale/arrayToRgb.js +9 -0
  892. data/app/assets/node_modules/jqvmap/src/ColorScale/getColor.js +41 -0
  893. data/app/assets/node_modules/jqvmap/src/ColorScale/rgbToArray.js +4 -0
  894. data/app/assets/node_modules/jqvmap/src/ColorScale/setColors.js +6 -0
  895. data/app/assets/node_modules/jqvmap/src/ColorScale/setMax.js +8 -0
  896. data/app/assets/node_modules/jqvmap/src/ColorScale/setMin.js +9 -0
  897. data/app/assets/node_modules/jqvmap/src/ColorScale/setNormalizeFunction.js +13 -0
  898. data/app/assets/node_modules/jqvmap/src/ColorScale/vectorAdd.js +7 -0
  899. data/app/assets/node_modules/jqvmap/src/ColorScale/vectorLength.js +7 -0
  900. data/app/assets/node_modules/jqvmap/src/ColorScale/vectorMult.js +7 -0
  901. data/app/assets/node_modules/jqvmap/src/ColorScale/vectorSubtract.js +7 -0
  902. data/app/assets/node_modules/jqvmap/src/ColorScale/vectorToNum.js +7 -0
  903. data/app/assets/node_modules/jqvmap/src/ColorScale.js +18 -0
  904. data/app/assets/node_modules/jqvmap/src/JQVMap/applyTransform.js +31 -0
  905. data/app/assets/node_modules/jqvmap/src/JQVMap/bindZoomButtons.js +9 -0
  906. data/app/assets/node_modules/jqvmap/src/JQVMap/deselect.js +18 -0
  907. data/app/assets/node_modules/jqvmap/src/JQVMap/getCountryId.js +3 -0
  908. data/app/assets/node_modules/jqvmap/src/JQVMap/getPin.js +4 -0
  909. data/app/assets/node_modules/jqvmap/src/JQVMap/getPinId.js +3 -0
  910. data/app/assets/node_modules/jqvmap/src/JQVMap/getPins.js +11 -0
  911. data/app/assets/node_modules/jqvmap/src/JQVMap/highlight.js +12 -0
  912. data/app/assets/node_modules/jqvmap/src/JQVMap/isSelected.js +3 -0
  913. data/app/assets/node_modules/jqvmap/src/JQVMap/makeDraggable.js +159 -0
  914. data/app/assets/node_modules/jqvmap/src/JQVMap/placePins.js +46 -0
  915. data/app/assets/node_modules/jqvmap/src/JQVMap/positionPins.js +19 -0
  916. data/app/assets/node_modules/jqvmap/src/JQVMap/removePin.js +4 -0
  917. data/app/assets/node_modules/jqvmap/src/JQVMap/removePins.js +3 -0
  918. data/app/assets/node_modules/jqvmap/src/JQVMap/reset.js +9 -0
  919. data/app/assets/node_modules/jqvmap/src/JQVMap/resize.js +13 -0
  920. data/app/assets/node_modules/jqvmap/src/JQVMap/select.js +18 -0
  921. data/app/assets/node_modules/jqvmap/src/JQVMap/selectIndex.js +9 -0
  922. data/app/assets/node_modules/jqvmap/src/JQVMap/setBackgroundColor.js +3 -0
  923. data/app/assets/node_modules/jqvmap/src/JQVMap/setColors.js +15 -0
  924. data/app/assets/node_modules/jqvmap/src/JQVMap/setNormalizeFunction.js +7 -0
  925. data/app/assets/node_modules/jqvmap/src/JQVMap/setScale.js +4 -0
  926. data/app/assets/node_modules/jqvmap/src/JQVMap/setScaleColors.js +7 -0
  927. data/app/assets/node_modules/jqvmap/src/JQVMap/setValues.js +36 -0
  928. data/app/assets/node_modules/jqvmap/src/JQVMap/unhighlight.js +8 -0
  929. data/app/assets/node_modules/jqvmap/src/JQVMap/zoomIn.js +17 -0
  930. data/app/assets/node_modules/jqvmap/src/JQVMap/zoomOut.js +17 -0
  931. data/app/assets/node_modules/jqvmap/src/JQVMap.js +243 -0
  932. data/app/assets/node_modules/jqvmap/src/VectorCanvas/applyTransformParams.js +8 -0
  933. data/app/assets/node_modules/jqvmap/src/VectorCanvas/createGroup.js +19 -0
  934. data/app/assets/node_modules/jqvmap/src/VectorCanvas/createPath.js +75 -0
  935. data/app/assets/node_modules/jqvmap/src/VectorCanvas/pathSvgToVml.js +103 -0
  936. data/app/assets/node_modules/jqvmap/src/VectorCanvas/setSize.js +24 -0
  937. data/app/assets/node_modules/jqvmap/src/VectorCanvas.js +42 -0
  938. data/app/assets/node_modules/jqvmap/tests/index.html +32 -0
  939. data/app/assets/node_modules/jqvmap/tests/qunit/qunit.css +291 -0
  940. data/app/assets/node_modules/jqvmap/tests/qunit/qunit.js +3828 -0
  941. data/app/assets/node_modules/jqvmap/tests/tests.js +422 -0
  942. data/app/assets/node_modules/metismenu/LICENSE +20 -0
  943. data/app/assets/node_modules/metismenu/README.md +361 -0
  944. data/app/assets/node_modules/metismenu/changelog.md +22 -0
  945. data/app/assets/node_modules/metismenu/dist/cjs/index.js +327 -0
  946. data/app/assets/node_modules/metismenu/dist/metisMenu.css +132 -0
  947. data/app/assets/node_modules/metismenu/dist/metisMenu.css.map +1 -0
  948. data/app/assets/node_modules/metismenu/dist/metisMenu.js +332 -0
  949. data/app/assets/node_modules/metismenu/dist/metisMenu.js.map +1 -0
  950. data/app/assets/node_modules/metismenu/dist/metisMenu.min.css +9 -0
  951. data/app/assets/node_modules/metismenu/dist/metisMenu.min.css.map +1 -0
  952. data/app/assets/node_modules/metismenu/dist/metisMenu.min.js +10 -0
  953. data/app/assets/node_modules/metismenu/dist/metisMenu.min.js.map +1 -0
  954. data/app/assets/node_modules/metismenu/dist/modules/index.js +323 -0
  955. data/app/assets/node_modules/metismenu/package.json +122 -0
  956. data/app/assets/node_modules/metismenu/src/index.js +260 -0
  957. data/app/assets/node_modules/metismenu/src/metisMenu.css +116 -0
  958. data/app/assets/node_modules/metismenu/src/util.js +61 -0
  959. data/app/assets/node_modules/metismenu/types/metismenu.d.ts +25 -0
  960. data/app/assets/node_modules/morris.js/Gruntfile.js +90 -0
  961. data/app/assets/node_modules/morris.js/README.md +234 -0
  962. data/app/assets/node_modules/morris.js/bower.json +20 -0
  963. data/app/assets/node_modules/morris.js/bower.travis.json +20 -0
  964. data/app/assets/node_modules/morris.js/examples/_template.html +18 -0
  965. data/app/assets/node_modules/morris.js/examples/area-as-line.html +31 -0
  966. data/app/assets/node_modules/morris.js/examples/area.html +34 -0
  967. data/app/assets/node_modules/morris.js/examples/bar-colors.html +44 -0
  968. data/app/assets/node_modules/morris.js/examples/bar-no-axes.html +31 -0
  969. data/app/assets/node_modules/morris.js/examples/bar.html +32 -0
  970. data/app/assets/node_modules/morris.js/examples/days.html +37 -0
  971. data/app/assets/node_modules/morris.js/examples/decimal-custom-hover.html +37 -0
  972. data/app/assets/node_modules/morris.js/examples/diagonal-xlabels-bar.html +38 -0
  973. data/app/assets/node_modules/morris.js/examples/diagonal-xlabels.html +38 -0
  974. data/app/assets/node_modules/morris.js/examples/donut-colors.html +38 -0
  975. data/app/assets/node_modules/morris.js/examples/donut-formatter.html +27 -0
  976. data/app/assets/node_modules/morris.js/examples/donut.html +29 -0
  977. data/app/assets/node_modules/morris.js/examples/dst.html +30 -0
  978. data/app/assets/node_modules/morris.js/examples/events.html +57 -0
  979. data/app/assets/node_modules/morris.js/examples/goals.html +33 -0
  980. data/app/assets/node_modules/morris.js/examples/lib/example.css +13 -0
  981. data/app/assets/node_modules/morris.js/examples/lib/example.js +4 -0
  982. data/app/assets/node_modules/morris.js/examples/months-no-smooth.html +38 -0
  983. data/app/assets/node_modules/morris.js/examples/negative.html +36 -0
  984. data/app/assets/node_modules/morris.js/examples/no-grid.html +38 -0
  985. data/app/assets/node_modules/morris.js/examples/non-continuous.html +42 -0
  986. data/app/assets/node_modules/morris.js/examples/non-date.html +37 -0
  987. data/app/assets/node_modules/morris.js/examples/quarters.html +54 -0
  988. data/app/assets/node_modules/morris.js/examples/resize.html +42 -0
  989. data/app/assets/node_modules/morris.js/examples/stacked_bars.html +31 -0
  990. data/app/assets/node_modules/morris.js/examples/timestamps.html +38 -0
  991. data/app/assets/node_modules/morris.js/examples/updating.html +49 -0
  992. data/app/assets/node_modules/morris.js/examples/weeks.html +53 -0
  993. data/app/assets/node_modules/morris.js/examples/years.html +37 -0
  994. data/app/assets/node_modules/morris.js/less/morris.core.less +27 -0
  995. data/app/assets/node_modules/morris.js/lib/morris.area.coffee +66 -0
  996. data/app/assets/node_modules/morris.js/lib/morris.bar.coffee +208 -0
  997. data/app/assets/node_modules/morris.js/lib/morris.coffee +43 -0
  998. data/app/assets/node_modules/morris.js/lib/morris.donut.coffee +213 -0
  999. data/app/assets/node_modules/morris.js/lib/morris.grid.coffee +499 -0
  1000. data/app/assets/node_modules/morris.js/lib/morris.hover.coffee +44 -0
  1001. data/app/assets/node_modules/morris.js/lib/morris.line.coffee +405 -0
  1002. data/app/assets/node_modules/morris.js/morris.css +2 -0
  1003. data/app/assets/node_modules/morris.js/morris.js +1892 -0
  1004. data/app/assets/node_modules/morris.js/morris.min.js +7 -0
  1005. data/app/assets/node_modules/morris.js/package.json +36 -0
  1006. data/app/assets/node_modules/morris.js/spec/lib/area/area_spec.coffee +60 -0
  1007. data/app/assets/node_modules/morris.js/spec/lib/bar/bar_spec.coffee +127 -0
  1008. data/app/assets/node_modules/morris.js/spec/lib/bar/colours.coffee +36 -0
  1009. data/app/assets/node_modules/morris.js/spec/lib/commas_spec.coffee +38 -0
  1010. data/app/assets/node_modules/morris.js/spec/lib/donut/donut_spec.coffee +76 -0
  1011. data/app/assets/node_modules/morris.js/spec/lib/grid/auto_grid_lines_spec.coffee +25 -0
  1012. data/app/assets/node_modules/morris.js/spec/lib/grid/set_data_spec.coffee +208 -0
  1013. data/app/assets/node_modules/morris.js/spec/lib/grid/y_label_format_spec.coffee +15 -0
  1014. data/app/assets/node_modules/morris.js/spec/lib/hover_spec.coffee +64 -0
  1015. data/app/assets/node_modules/morris.js/spec/lib/label_series_spec.coffee +186 -0
  1016. data/app/assets/node_modules/morris.js/spec/lib/line/line_spec.coffee +211 -0
  1017. data/app/assets/node_modules/morris.js/spec/lib/pad_spec.coffee +17 -0
  1018. data/app/assets/node_modules/morris.js/spec/lib/parse_time_spec.coffee +35 -0
  1019. data/app/assets/node_modules/morris.js/spec/specs.html +34 -0
  1020. data/app/assets/node_modules/morris.js/spec/support/placeholder.coffee +6 -0
  1021. data/app/assets/node_modules/morris.js/spec/viz/examples.js +56 -0
  1022. data/app/assets/node_modules/morris.js/spec/viz/exemplary/area0.png +0 -0
  1023. data/app/assets/node_modules/morris.js/spec/viz/exemplary/bar0.png +0 -0
  1024. data/app/assets/node_modules/morris.js/spec/viz/exemplary/line0.png +0 -0
  1025. data/app/assets/node_modules/morris.js/spec/viz/exemplary/stacked_bar0.png +0 -0
  1026. data/app/assets/node_modules/morris.js/spec/viz/run.sh +32 -0
  1027. data/app/assets/node_modules/morris.js/spec/viz/test.html +34 -0
  1028. data/app/assets/node_modules/morris.js/spec/viz/visual_specs.js +66 -0
  1029. data/app/assets/node_modules/nprogress/History.md +110 -0
  1030. data/app/assets/node_modules/nprogress/License.md +19 -0
  1031. data/app/assets/node_modules/nprogress/Notes.md +25 -0
  1032. data/app/assets/node_modules/nprogress/Readme.md +197 -0
  1033. data/app/assets/node_modules/nprogress/bower.json +27 -0
  1034. data/app/assets/node_modules/nprogress/component.json +19 -0
  1035. data/app/assets/node_modules/nprogress/nprogress.css +74 -0
  1036. data/app/assets/node_modules/nprogress/nprogress.js +476 -0
  1037. data/app/assets/node_modules/nprogress/package.json +47 -0
  1038. data/app/assets/node_modules/nprogress/test/component.html +26 -0
  1039. data/app/assets/node_modules/nprogress/test/test.js +175 -0
  1040. data/app/assets/node_modules/parchment/LICENSE +29 -0
  1041. data/app/assets/node_modules/parchment/README.md +274 -0
  1042. data/app/assets/node_modules/parchment/dist/parchment.js +1749 -0
  1043. data/app/assets/node_modules/parchment/dist/parchment.js.map +1 -0
  1044. data/app/assets/node_modules/parchment/dist/src/attributor/attributor.d.ts +17 -0
  1045. data/app/assets/node_modules/parchment/dist/src/attributor/class.d.ts +8 -0
  1046. data/app/assets/node_modules/parchment/dist/src/attributor/store.d.ts +15 -0
  1047. data/app/assets/node_modules/parchment/dist/src/attributor/style.d.ts +8 -0
  1048. data/app/assets/node_modules/parchment/dist/src/blot/abstract/blot.d.ts +63 -0
  1049. data/app/assets/node_modules/parchment/dist/src/blot/abstract/container.d.ts +40 -0
  1050. data/app/assets/node_modules/parchment/dist/src/blot/abstract/format.d.ts +18 -0
  1051. data/app/assets/node_modules/parchment/dist/src/blot/abstract/leaf.d.ts +11 -0
  1052. data/app/assets/node_modules/parchment/dist/src/blot/abstract/parent.d.ts +41 -0
  1053. data/app/assets/node_modules/parchment/dist/src/blot/abstract/shadow.d.ts +38 -0
  1054. data/app/assets/node_modules/parchment/dist/src/blot/block.d.ts +15 -0
  1055. data/app/assets/node_modules/parchment/dist/src/blot/embed.d.ts +11 -0
  1056. data/app/assets/node_modules/parchment/dist/src/blot/inline.d.ts +14 -0
  1057. data/app/assets/node_modules/parchment/dist/src/blot/scroll.d.ts +24 -0
  1058. data/app/assets/node_modules/parchment/dist/src/blot/text.d.ts +26 -0
  1059. data/app/assets/node_modules/parchment/dist/src/collection/linked-list.d.ts +19 -0
  1060. data/app/assets/node_modules/parchment/dist/src/collection/linked-node.d.ts +6 -0
  1061. data/app/assets/node_modules/parchment/dist/src/parchment.d.ts +35 -0
  1062. data/app/assets/node_modules/parchment/dist/src/registry.d.ts +31 -0
  1063. data/app/assets/node_modules/parchment/package.json +44 -0
  1064. data/app/assets/node_modules/parchment/src/attributor/attributor.ts +61 -0
  1065. data/app/assets/node_modules/parchment/src/attributor/class.ts +44 -0
  1066. data/app/assets/node_modules/parchment/src/attributor/store.ts +73 -0
  1067. data/app/assets/node_modules/parchment/src/attributor/style.ts +44 -0
  1068. data/app/assets/node_modules/parchment/src/blot/abstract/blot.ts +58 -0
  1069. data/app/assets/node_modules/parchment/src/blot/abstract/container.ts +268 -0
  1070. data/app/assets/node_modules/parchment/src/blot/abstract/format.ts +71 -0
  1071. data/app/assets/node_modules/parchment/src/blot/abstract/leaf.ts +33 -0
  1072. data/app/assets/node_modules/parchment/src/blot/abstract/shadow.ts +174 -0
  1073. data/app/assets/node_modules/parchment/src/blot/block.ts +53 -0
  1074. data/app/assets/node_modules/parchment/src/blot/embed.ts +29 -0
  1075. data/app/assets/node_modules/parchment/src/blot/inline.ts +64 -0
  1076. data/app/assets/node_modules/parchment/src/blot/scroll.ts +166 -0
  1077. data/app/assets/node_modules/parchment/src/blot/text.ts +93 -0
  1078. data/app/assets/node_modules/parchment/src/collection/linked-list.ts +143 -0
  1079. data/app/assets/node_modules/parchment/src/collection/linked-node.ts +8 -0
  1080. data/app/assets/node_modules/parchment/src/parchment.ts +46 -0
  1081. data/app/assets/node_modules/parchment/src/registry.ts +133 -0
  1082. data/app/assets/node_modules/parchment/tsconfig.json +9 -0
  1083. data/app/assets/node_modules/popper.js/README.md +219 -0
  1084. data/app/assets/node_modules/popper.js/dist/esm/popper-utils.js +1093 -0
  1085. data/app/assets/node_modules/popper.js/dist/esm/popper-utils.js.map +1 -0
  1086. data/app/assets/node_modules/popper.js/dist/esm/popper-utils.min.js +5 -0
  1087. data/app/assets/node_modules/popper.js/dist/esm/popper-utils.min.js.map +1 -0
  1088. data/app/assets/node_modules/popper.js/dist/esm/popper.js +2520 -0
  1089. data/app/assets/node_modules/popper.js/dist/esm/popper.js.map +1 -0
  1090. data/app/assets/node_modules/popper.js/dist/esm/popper.min.js +5 -0
  1091. data/app/assets/node_modules/popper.js/dist/esm/popper.min.js.map +1 -0
  1092. data/app/assets/node_modules/popper.js/dist/popper-utils.js +1042 -0
  1093. data/app/assets/node_modules/popper.js/dist/popper-utils.js.map +1 -0
  1094. data/app/assets/node_modules/popper.js/dist/popper-utils.min.js +5 -0
  1095. data/app/assets/node_modules/popper.js/dist/popper-utils.min.js.map +1 -0
  1096. data/app/assets/node_modules/popper.js/dist/popper.js +2372 -0
  1097. data/app/assets/node_modules/popper.js/dist/popper.js.map +1 -0
  1098. data/app/assets/node_modules/popper.js/dist/popper.min.js +5 -0
  1099. data/app/assets/node_modules/popper.js/dist/popper.min.js.map +1 -0
  1100. data/app/assets/node_modules/popper.js/dist/umd/popper-utils.js +1131 -0
  1101. data/app/assets/node_modules/popper.js/dist/umd/popper-utils.js.map +1 -0
  1102. data/app/assets/node_modules/popper.js/dist/umd/popper-utils.min.js +5 -0
  1103. data/app/assets/node_modules/popper.js/dist/umd/popper-utils.min.js.map +1 -0
  1104. data/app/assets/node_modules/popper.js/dist/umd/popper.js +2528 -0
  1105. data/app/assets/node_modules/popper.js/dist/umd/popper.js.map +1 -0
  1106. data/app/assets/node_modules/popper.js/dist/umd/popper.min.js +5 -0
  1107. data/app/assets/node_modules/popper.js/dist/umd/popper.min.js.map +1 -0
  1108. data/app/assets/node_modules/popper.js/index.d.ts +159 -0
  1109. data/app/assets/node_modules/popper.js/package.json +54 -0
  1110. data/app/assets/node_modules/quill/CHANGELOG.md +734 -0
  1111. data/app/assets/node_modules/quill/LICENSE +30 -0
  1112. data/app/assets/node_modules/quill/README.md +109 -0
  1113. data/app/assets/node_modules/quill/assets/base.styl +304 -0
  1114. data/app/assets/node_modules/quill/assets/bubble/toolbar.styl +14 -0
  1115. data/app/assets/node_modules/quill/assets/bubble/tooltip.styl +49 -0
  1116. data/app/assets/node_modules/quill/assets/bubble.styl +45 -0
  1117. data/app/assets/node_modules/quill/assets/core.styl +183 -0
  1118. data/app/assets/node_modules/quill/assets/favicon.png +0 -0
  1119. data/app/assets/node_modules/quill/assets/icons/align-center.svg +5 -0
  1120. data/app/assets/node_modules/quill/assets/icons/align-justify.svg +5 -0
  1121. data/app/assets/node_modules/quill/assets/icons/align-left.svg +5 -0
  1122. data/app/assets/node_modules/quill/assets/icons/align-right.svg +5 -0
  1123. data/app/assets/node_modules/quill/assets/icons/attachment.svg +3 -0
  1124. data/app/assets/node_modules/quill/assets/icons/audio.svg +5 -0
  1125. data/app/assets/node_modules/quill/assets/icons/authorship.svg +5 -0
  1126. data/app/assets/node_modules/quill/assets/icons/background.svg +52 -0
  1127. data/app/assets/node_modules/quill/assets/icons/blockquote.svg +6 -0
  1128. data/app/assets/node_modules/quill/assets/icons/bold.svg +4 -0
  1129. data/app/assets/node_modules/quill/assets/icons/clean.svg +7 -0
  1130. data/app/assets/node_modules/quill/assets/icons/code.svg +5 -0
  1131. data/app/assets/node_modules/quill/assets/icons/color.svg +5 -0
  1132. data/app/assets/node_modules/quill/assets/icons/comment.svg +3 -0
  1133. data/app/assets/node_modules/quill/assets/icons/direction-ltr.svg +7 -0
  1134. data/app/assets/node_modules/quill/assets/icons/direction-rtl.svg +7 -0
  1135. data/app/assets/node_modules/quill/assets/icons/dropdown.svg +4 -0
  1136. data/app/assets/node_modules/quill/assets/icons/embed.svg +3 -0
  1137. data/app/assets/node_modules/quill/assets/icons/emoji.svg +6 -0
  1138. data/app/assets/node_modules/quill/assets/icons/float-center.svg +5 -0
  1139. data/app/assets/node_modules/quill/assets/icons/float-full.svg +5 -0
  1140. data/app/assets/node_modules/quill/assets/icons/float-left.svg +7 -0
  1141. data/app/assets/node_modules/quill/assets/icons/float-right.svg +7 -0
  1142. data/app/assets/node_modules/quill/assets/icons/font.svg +5 -0
  1143. data/app/assets/node_modules/quill/assets/icons/formula.svg +5 -0
  1144. data/app/assets/node_modules/quill/assets/icons/hashtag.svg +6 -0
  1145. data/app/assets/node_modules/quill/assets/icons/header-2.svg +3 -0
  1146. data/app/assets/node_modules/quill/assets/icons/header-3.svg +3 -0
  1147. data/app/assets/node_modules/quill/assets/icons/header-4.svg +3 -0
  1148. data/app/assets/node_modules/quill/assets/icons/header-5.svg +3 -0
  1149. data/app/assets/node_modules/quill/assets/icons/header-6.svg +3 -0
  1150. data/app/assets/node_modules/quill/assets/icons/header.svg +3 -0
  1151. data/app/assets/node_modules/quill/assets/icons/horizontal-rule.svg +4 -0
  1152. data/app/assets/node_modules/quill/assets/icons/image.svg +5 -0
  1153. data/app/assets/node_modules/quill/assets/icons/indent.svg +6 -0
  1154. data/app/assets/node_modules/quill/assets/icons/italic.svg +5 -0
  1155. data/app/assets/node_modules/quill/assets/icons/link.svg +5 -0
  1156. data/app/assets/node_modules/quill/assets/icons/list-bullet.svg +8 -0
  1157. data/app/assets/node_modules/quill/assets/icons/list-check.svg +8 -0
  1158. data/app/assets/node_modules/quill/assets/icons/list-ordered.svg +9 -0
  1159. data/app/assets/node_modules/quill/assets/icons/map.svg +5 -0
  1160. data/app/assets/node_modules/quill/assets/icons/mention.svg +4 -0
  1161. data/app/assets/node_modules/quill/assets/icons/more.svg +3 -0
  1162. data/app/assets/node_modules/quill/assets/icons/outdent.svg +6 -0
  1163. data/app/assets/node_modules/quill/assets/icons/redo.svg +4 -0
  1164. data/app/assets/node_modules/quill/assets/icons/size-decrease.svg +5 -0
  1165. data/app/assets/node_modules/quill/assets/icons/size-increase.svg +6 -0
  1166. data/app/assets/node_modules/quill/assets/icons/size.svg +6 -0
  1167. data/app/assets/node_modules/quill/assets/icons/spacing.svg +9 -0
  1168. data/app/assets/node_modules/quill/assets/icons/speech.svg +6 -0
  1169. data/app/assets/node_modules/quill/assets/icons/strike.svg +5 -0
  1170. data/app/assets/node_modules/quill/assets/icons/subscript.svg +4 -0
  1171. data/app/assets/node_modules/quill/assets/icons/superscript.svg +4 -0
  1172. data/app/assets/node_modules/quill/assets/icons/table-border-all.svg +5 -0
  1173. data/app/assets/node_modules/quill/assets/icons/table-border-bottom.svg +28 -0
  1174. data/app/assets/node_modules/quill/assets/icons/table-border-left.svg +28 -0
  1175. data/app/assets/node_modules/quill/assets/icons/table-border-none.svg +25 -0
  1176. data/app/assets/node_modules/quill/assets/icons/table-border-outside.svg +35 -0
  1177. data/app/assets/node_modules/quill/assets/icons/table-border-right.svg +28 -0
  1178. data/app/assets/node_modules/quill/assets/icons/table-border-top.svg +28 -0
  1179. data/app/assets/node_modules/quill/assets/icons/table-delete-cells.svg +13 -0
  1180. data/app/assets/node_modules/quill/assets/icons/table-delete-columns.svg +8 -0
  1181. data/app/assets/node_modules/quill/assets/icons/table-delete-rows.svg +9 -0
  1182. data/app/assets/node_modules/quill/assets/icons/table-insert-cells.svg +13 -0
  1183. data/app/assets/node_modules/quill/assets/icons/table-insert-columns.svg +8 -0
  1184. data/app/assets/node_modules/quill/assets/icons/table-insert-rows.svg +9 -0
  1185. data/app/assets/node_modules/quill/assets/icons/table-merge-cells.svg +4 -0
  1186. data/app/assets/node_modules/quill/assets/icons/table-unmerge-cells.svg +7 -0
  1187. data/app/assets/node_modules/quill/assets/icons/table.svg +11 -0
  1188. data/app/assets/node_modules/quill/assets/icons/underline.svg +4 -0
  1189. data/app/assets/node_modules/quill/assets/icons/undo.svg +4 -0
  1190. data/app/assets/node_modules/quill/assets/icons/video.svg +14 -0
  1191. data/app/assets/node_modules/quill/assets/snow/toolbar.styl +26 -0
  1192. data/app/assets/node_modules/quill/assets/snow/tooltip.styl +53 -0
  1193. data/app/assets/node_modules/quill/assets/snow.styl +18 -0
  1194. data/app/assets/node_modules/quill/blots/block.js +174 -0
  1195. data/app/assets/node_modules/quill/blots/break.js +29 -0
  1196. data/app/assets/node_modules/quill/blots/container.js +9 -0
  1197. data/app/assets/node_modules/quill/blots/cursor.js +116 -0
  1198. data/app/assets/node_modules/quill/blots/embed.js +79 -0
  1199. data/app/assets/node_modules/quill/blots/inline.js +50 -0
  1200. data/app/assets/node_modules/quill/blots/scroll.js +173 -0
  1201. data/app/assets/node_modules/quill/blots/text.js +5 -0
  1202. data/app/assets/node_modules/quill/core/editor.js +267 -0
  1203. data/app/assets/node_modules/quill/core/emitter.js +63 -0
  1204. data/app/assets/node_modules/quill/core/logger.js +22 -0
  1205. data/app/assets/node_modules/quill/core/module.js +10 -0
  1206. data/app/assets/node_modules/quill/core/polyfill.js +63 -0
  1207. data/app/assets/node_modules/quill/core/quill.js +506 -0
  1208. data/app/assets/node_modules/quill/core/selection.js +355 -0
  1209. data/app/assets/node_modules/quill/core/theme.js +30 -0
  1210. data/app/assets/node_modules/quill/core.js +36 -0
  1211. data/app/assets/node_modules/quill/dist/quill.bubble.css +952 -0
  1212. data/app/assets/node_modules/quill/dist/quill.core.css +397 -0
  1213. data/app/assets/node_modules/quill/dist/quill.core.js +8522 -0
  1214. data/app/assets/node_modules/quill/dist/quill.js +11489 -0
  1215. data/app/assets/node_modules/quill/dist/quill.min.js +8 -0
  1216. data/app/assets/node_modules/quill/dist/quill.min.js.map +1 -0
  1217. data/app/assets/node_modules/quill/dist/quill.snow.css +945 -0
  1218. data/app/assets/node_modules/quill/formats/align.js +12 -0
  1219. data/app/assets/node_modules/quill/formats/background.js +11 -0
  1220. data/app/assets/node_modules/quill/formats/blockquote.js +9 -0
  1221. data/app/assets/node_modules/quill/formats/bold.js +22 -0
  1222. data/app/assets/node_modules/quill/formats/code.js +118 -0
  1223. data/app/assets/node_modules/quill/formats/color.js +21 -0
  1224. data/app/assets/node_modules/quill/formats/direction.js +12 -0
  1225. data/app/assets/node_modules/quill/formats/font.js +18 -0
  1226. data/app/assets/node_modules/quill/formats/header.js +13 -0
  1227. data/app/assets/node_modules/quill/formats/image.js +57 -0
  1228. data/app/assets/node_modules/quill/formats/indent.js +31 -0
  1229. data/app/assets/node_modules/quill/formats/italic.js +7 -0
  1230. data/app/assets/node_modules/quill/formats/link.js +41 -0
  1231. data/app/assets/node_modules/quill/formats/list.js +130 -0
  1232. data/app/assets/node_modules/quill/formats/script.js +23 -0
  1233. data/app/assets/node_modules/quill/formats/size.js +12 -0
  1234. data/app/assets/node_modules/quill/formats/strike.js +7 -0
  1235. data/app/assets/node_modules/quill/formats/underline.js +7 -0
  1236. data/app/assets/node_modules/quill/formats/video.js +53 -0
  1237. data/app/assets/node_modules/quill/modules/clipboard.js +358 -0
  1238. data/app/assets/node_modules/quill/modules/formula.js +42 -0
  1239. data/app/assets/node_modules/quill/modules/history.js +120 -0
  1240. data/app/assets/node_modules/quill/modules/keyboard.js +494 -0
  1241. data/app/assets/node_modules/quill/modules/syntax.js +81 -0
  1242. data/app/assets/node_modules/quill/modules/toolbar.js +261 -0
  1243. data/app/assets/node_modules/quill/package.json +99 -0
  1244. data/app/assets/node_modules/quill/quill.js +104 -0
  1245. data/app/assets/node_modules/quill/themes/base.js +264 -0
  1246. data/app/assets/node_modules/quill/themes/bubble.js +111 -0
  1247. data/app/assets/node_modules/quill/themes/snow.js +120 -0
  1248. data/app/assets/node_modules/quill/ui/color-picker.js +35 -0
  1249. data/app/assets/node_modules/quill/ui/icon-picker.js +23 -0
  1250. data/app/assets/node_modules/quill/ui/icons.js +49 -0
  1251. data/app/assets/node_modules/quill/ui/picker.js +186 -0
  1252. data/app/assets/node_modules/quill/ui/tooltip.js +53 -0
  1253. data/app/assets/node_modules/quill-delta/CHANGELOG.md +48 -0
  1254. data/app/assets/node_modules/quill-delta/LICENSE +21 -0
  1255. data/app/assets/node_modules/quill-delta/README.md +639 -0
  1256. data/app/assets/node_modules/quill-delta/lib/delta.js +325 -0
  1257. data/app/assets/node_modules/quill-delta/lib/op.js +139 -0
  1258. data/app/assets/node_modules/quill-delta/package.json +40 -0
  1259. data/app/assets/node_modules/raphael/CONTRIBUTING.md +22 -0
  1260. data/app/assets/node_modules/raphael/Gruntfile.js +72 -0
  1261. data/app/assets/node_modules/raphael/README.md +75 -0
  1262. data/app/assets/node_modules/raphael/bower.json +31 -0
  1263. data/app/assets/node_modules/raphael/dev/banner.txt +8 -0
  1264. data/app/assets/node_modules/raphael/dev/raphael.amd.js +5 -0
  1265. data/app/assets/node_modules/raphael/dev/raphael.core.js +5405 -0
  1266. data/app/assets/node_modules/raphael/dev/raphael.svg.js +1424 -0
  1267. data/app/assets/node_modules/raphael/dev/raphael.vml.js +999 -0
  1268. data/app/assets/node_modules/raphael/dev/raphaelTest.html +39 -0
  1269. data/app/assets/node_modules/raphael/dev/test/index.html +31 -0
  1270. data/app/assets/node_modules/raphael/dev/test/svg/dom.js +317 -0
  1271. data/app/assets/node_modules/raphael/dev/test/vml/dom.js +5 -0
  1272. data/app/assets/node_modules/raphael/history.md +155 -0
  1273. data/app/assets/node_modules/raphael/license.txt +21 -0
  1274. data/app/assets/node_modules/raphael/package.json +47 -0
  1275. data/app/assets/node_modules/raphael/raphael.js +8353 -0
  1276. data/app/assets/node_modules/raphael/raphael.min.js +3 -0
  1277. data/app/assets/node_modules/raphael/raphael.no-deps.js +7927 -0
  1278. data/app/assets/node_modules/raphael/raphael.no-deps.min.js +3 -0
  1279. data/app/assets/node_modules/raphael/webpack.config.js +64 -0
  1280. data/app/assets/node_modules/raphael/yarn.lock +2012 -0
  1281. data/app/assets/node_modules/responsive-toolkit/CHANGELOG.md +70 -0
  1282. data/app/assets/node_modules/responsive-toolkit/LICENSE +21 -0
  1283. data/app/assets/node_modules/responsive-toolkit/README.md +155 -0
  1284. data/app/assets/node_modules/responsive-toolkit/bower.json +22 -0
  1285. data/app/assets/node_modules/responsive-toolkit/demos/bootstrap/index.html +53 -0
  1286. data/app/assets/node_modules/responsive-toolkit/demos/bootstrap/main.js +42 -0
  1287. data/app/assets/node_modules/responsive-toolkit/demos/bootstrap/style.css +109 -0
  1288. data/app/assets/node_modules/responsive-toolkit/demos/custom/index.html +23 -0
  1289. data/app/assets/node_modules/responsive-toolkit/demos/custom/main.js +36 -0
  1290. data/app/assets/node_modules/responsive-toolkit/demos/custom/style.css +19 -0
  1291. data/app/assets/node_modules/responsive-toolkit/demos/foundation/index.html +25 -0
  1292. data/app/assets/node_modules/responsive-toolkit/demos/foundation/main.js +28 -0
  1293. data/app/assets/node_modules/responsive-toolkit/demos/foundation/style.css +3 -0
  1294. data/app/assets/node_modules/responsive-toolkit/dist/bootstrap-toolkit-1.5.0.js +49 -0
  1295. data/app/assets/node_modules/responsive-toolkit/dist/bootstrap-toolkit-1.5.0.min.js +8 -0
  1296. data/app/assets/node_modules/responsive-toolkit/dist/bootstrap-toolkit.js +238 -0
  1297. data/app/assets/node_modules/responsive-toolkit/dist/bootstrap-toolkit.min.js +8 -0
  1298. data/app/assets/node_modules/responsive-toolkit/gulpfile.js +38 -0
  1299. data/app/assets/node_modules/responsive-toolkit/package.json +28 -0
  1300. data/app/assets/node_modules/responsive-toolkit/src/bootstrap-toolkit.js +238 -0
  1301. data/app/assets/node_modules/sortablejs/README.md +636 -0
  1302. data/app/assets/node_modules/sortablejs/Sortable.js +1540 -0
  1303. data/app/assets/node_modules/sortablejs/Sortable.min.js +2 -0
  1304. data/app/assets/node_modules/sortablejs/package.json +48 -0
  1305. data/app/assets/node_modules/tether/CHANGELOG.md +13 -0
  1306. data/app/assets/node_modules/tether/CONTRIBUTING.md +59 -0
  1307. data/app/assets/node_modules/tether/LICENSE +8 -0
  1308. data/app/assets/node_modules/tether/README.md +116 -0
  1309. data/app/assets/node_modules/tether/bower.json +26 -0
  1310. data/app/assets/node_modules/tether/component.json +22 -0
  1311. data/app/assets/node_modules/tether/dist/css/tether-theme-arrows-dark.css +150 -0
  1312. data/app/assets/node_modules/tether/dist/css/tether-theme-arrows-dark.min.css +1 -0
  1313. data/app/assets/node_modules/tether/dist/css/tether-theme-arrows.css +153 -0
  1314. data/app/assets/node_modules/tether/dist/css/tether-theme-arrows.min.css +1 -0
  1315. data/app/assets/node_modules/tether/dist/css/tether-theme-basic.css +21 -0
  1316. data/app/assets/node_modules/tether/dist/css/tether-theme-basic.min.css +1 -0
  1317. data/app/assets/node_modules/tether/dist/css/tether.css +8 -0
  1318. data/app/assets/node_modules/tether/dist/css/tether.min.css +1 -0
  1319. data/app/assets/node_modules/tether/dist/js/tether.js +1813 -0
  1320. data/app/assets/node_modules/tether/dist/js/tether.min.js +1 -0
  1321. data/app/assets/node_modules/tether/docs/1-Overview/1-why_you_should_use_tether.md +43 -0
  1322. data/app/assets/node_modules/tether/docs/1-Overview/2-repositioning.md +46 -0
  1323. data/app/assets/node_modules/tether/docs/1-Overview/3-why_we_dont_support_IE_8.md +47 -0
  1324. data/app/assets/node_modules/tether/docs/2-Examples/1-list_of_examples.md +27 -0
  1325. data/app/assets/node_modules/tether/docs/2-Examples/2-projects_using_tether.md +45 -0
  1326. data/app/assets/node_modules/tether/docs/3-Advanced/1-embedding_tether.md +9 -0
  1327. data/app/assets/node_modules/tether/docs/3-Advanced/2-extending_tether.md +54 -0
  1328. data/app/assets/node_modules/tether/docs/coffee/intro.coffee +113 -0
  1329. data/app/assets/node_modules/tether/docs/css/intro.css +218 -0
  1330. data/app/assets/node_modules/tether/docs/intro.md +591 -0
  1331. data/app/assets/node_modules/tether/docs/js/intro.js +117 -0
  1332. data/app/assets/node_modules/tether/docs/js/markAttachment.js +51 -0
  1333. data/app/assets/node_modules/tether/docs/sass/intro.sass +233 -0
  1334. data/app/assets/node_modules/tether/docs/welcome/browser-demo.html +76 -0
  1335. data/app/assets/node_modules/tether/docs/welcome/coffee/welcome.coffee +212 -0
  1336. data/app/assets/node_modules/tether/docs/welcome/css/browser-demo.css +86 -0
  1337. data/app/assets/node_modules/tether/docs/welcome/css/prism.css +2 -0
  1338. data/app/assets/node_modules/tether/docs/welcome/css/welcome.css +247 -0
  1339. data/app/assets/node_modules/tether/docs/welcome/index.html +226 -0
  1340. data/app/assets/node_modules/tether/docs/welcome/js/drop.js +239 -0
  1341. data/app/assets/node_modules/tether/docs/welcome/js/jquery.js +9597 -0
  1342. data/app/assets/node_modules/tether/docs/welcome/js/log.js +134 -0
  1343. data/app/assets/node_modules/tether/docs/welcome/js/tether-v0.1.3.js +2 -0
  1344. data/app/assets/node_modules/tether/docs/welcome/js/welcome.js +193 -0
  1345. data/app/assets/node_modules/tether/docs/welcome/sass/_inline-block.sass +6 -0
  1346. data/app/assets/node_modules/tether/docs/welcome/sass/browser-demo.sass +93 -0
  1347. data/app/assets/node_modules/tether/docs/welcome/sass/welcome.sass +285 -0
  1348. data/app/assets/node_modules/tether/examples/chosen/chosen-sprite.png +0 -0
  1349. data/app/assets/node_modules/tether/examples/chosen/chosen-sprite@2x.png +0 -0
  1350. data/app/assets/node_modules/tether/examples/chosen/chosen.css +430 -0
  1351. data/app/assets/node_modules/tether/examples/chosen/chosen.js +1166 -0
  1352. data/app/assets/node_modules/tether/examples/chosen/index.html +110 -0
  1353. data/app/assets/node_modules/tether/examples/common/css/style.css +48 -0
  1354. data/app/assets/node_modules/tether/examples/content-visible/index.html +64 -0
  1355. data/app/assets/node_modules/tether/examples/dolls/dolls.css +18 -0
  1356. data/app/assets/node_modules/tether/examples/dolls/dolls.js +83 -0
  1357. data/app/assets/node_modules/tether/examples/dolls/index.html +7 -0
  1358. data/app/assets/node_modules/tether/examples/element-scroll/index.html +499 -0
  1359. data/app/assets/node_modules/tether/examples/enable-disable/index.html +37 -0
  1360. data/app/assets/node_modules/tether/examples/facebook/facebook.css +86 -0
  1361. data/app/assets/node_modules/tether/examples/facebook/index.html +209 -0
  1362. data/app/assets/node_modules/tether/examples/out-of-bounds/index.html +38 -0
  1363. data/app/assets/node_modules/tether/examples/pin/index.html +30 -0
  1364. data/app/assets/node_modules/tether/examples/resources/css/base.css +10 -0
  1365. data/app/assets/node_modules/tether/examples/resources/js/jquery.js +9597 -0
  1366. data/app/assets/node_modules/tether/examples/resources/js/log.js +134 -0
  1367. data/app/assets/node_modules/tether/examples/scroll/index.html +922 -0
  1368. data/app/assets/node_modules/tether/examples/simple/index.html +30 -0
  1369. data/app/assets/node_modules/tether/examples/testbed/index.html +36 -0
  1370. data/app/assets/node_modules/tether/examples/tooltip/index.html +86 -0
  1371. data/app/assets/node_modules/tether/examples/viewport/colors.css +145 -0
  1372. data/app/assets/node_modules/tether/examples/viewport/index.html +70 -0
  1373. data/app/assets/node_modules/tether/gulpfile.js +97 -0
  1374. data/app/assets/node_modules/tether/package.json +40 -0
  1375. data/app/assets/node_modules/tether/src/css/helpers/_tether-theme-arrows.sass +192 -0
  1376. data/app/assets/node_modules/tether/src/css/helpers/_tether-theme-basic.sass +14 -0
  1377. data/app/assets/node_modules/tether/src/css/helpers/_tether.sass +12 -0
  1378. data/app/assets/node_modules/tether/src/css/mixins/_inline-block.sass +6 -0
  1379. data/app/assets/node_modules/tether/src/css/mixins/_pie-clearfix.sass +7 -0
  1380. data/app/assets/node_modules/tether/src/css/tether-theme-arrows-dark.sass +12 -0
  1381. data/app/assets/node_modules/tether/src/css/tether-theme-arrows.sass +12 -0
  1382. data/app/assets/node_modules/tether/src/css/tether-theme-basic.sass +10 -0
  1383. data/app/assets/node_modules/tether/src/css/tether.sass +5 -0
  1384. data/app/assets/node_modules/tether/src/js/abutment.js +61 -0
  1385. data/app/assets/node_modules/tether/src/js/constraint.js +366 -0
  1386. data/app/assets/node_modules/tether/src/js/markAttachment.js +46 -0
  1387. data/app/assets/node_modules/tether/src/js/shift.js +32 -0
  1388. data/app/assets/node_modules/tether/src/js/tether.js +811 -0
  1389. data/app/assets/node_modules/tether/src/js/utils.js +370 -0
  1390. data/app/assets/node_modules/tinycolor2/Gruntfile.js +59 -0
  1391. data/app/assets/node_modules/tinycolor2/LICENSE +20 -0
  1392. data/app/assets/node_modules/tinycolor2/README.md +469 -0
  1393. data/app/assets/node_modules/tinycolor2/bower.json +9 -0
  1394. data/app/assets/node_modules/tinycolor2/demo/demo.css +23 -0
  1395. data/app/assets/node_modules/tinycolor2/demo/jquery-1.9.1.js +9597 -0
  1396. data/app/assets/node_modules/tinycolor2/dist/tinycolor-min.js +4 -0
  1397. data/app/assets/node_modules/tinycolor2/docs/docco.css +192 -0
  1398. data/app/assets/node_modules/tinycolor2/docs/tinycolor.html +1023 -0
  1399. data/app/assets/node_modules/tinycolor2/index.html +207 -0
  1400. data/app/assets/node_modules/tinycolor2/package.json +31 -0
  1401. data/app/assets/node_modules/tinycolor2/test/index.html +19 -0
  1402. data/app/assets/node_modules/tinycolor2/test/qunit.css +244 -0
  1403. data/app/assets/node_modules/tinycolor2/test/qunit.js +2152 -0
  1404. data/app/assets/node_modules/tinycolor2/test/test.js +791 -0
  1405. data/app/assets/node_modules/tinycolor2/tinycolor.js +1195 -0
  1406. data/app/assets/stylesheets/rails_modular_admin/application.scss +2 -3
  1407. data/app/assets/stylesheets/rails_modular_admin.scss +0 -1
  1408. data/config/initializers/assets.rb +4 -29
  1409. data/lib/rails_modular_admin/engine.rb +30 -2
  1410. data/lib/rails_modular_admin/version.rb +1 -1
  1411. metadata +1419 -8
  1412. data/app/controllers/rails_modular_admin/application_controller.rb +0 -5
  1413. data/app/helpers/rails_modular_admin/application_helper.rb +0 -4
  1414. data/app/jobs/rails_modular_admin/application_job.rb +0 -4
  1415. data/app/mailers/rails_modular_admin/application_mailer.rb +0 -6
  1416. data/app/models/rails_modular_admin/application_record.rb +0 -5
@@ -0,0 +1,2372 @@
1
+ /**!
2
+ * @fileOverview Kickass library to create and place poppers near their reference elements.
3
+ * @version 1.14.3
4
+ * @license
5
+ * Copyright (c) 2016 Federico Zivolo and contributors
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in all
15
+ * copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ * SOFTWARE.
24
+ */
25
+ var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
26
+
27
+ const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];
28
+ let timeoutDuration = 0;
29
+ for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {
30
+ if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {
31
+ timeoutDuration = 1;
32
+ break;
33
+ }
34
+ }
35
+
36
+ function microtaskDebounce(fn) {
37
+ let called = false;
38
+ return () => {
39
+ if (called) {
40
+ return;
41
+ }
42
+ called = true;
43
+ window.Promise.resolve().then(() => {
44
+ called = false;
45
+ fn();
46
+ });
47
+ };
48
+ }
49
+
50
+ function taskDebounce(fn) {
51
+ let scheduled = false;
52
+ return () => {
53
+ if (!scheduled) {
54
+ scheduled = true;
55
+ setTimeout(() => {
56
+ scheduled = false;
57
+ fn();
58
+ }, timeoutDuration);
59
+ }
60
+ };
61
+ }
62
+
63
+ const supportsMicroTasks = isBrowser && window.Promise;
64
+
65
+ /**
66
+ * Create a debounced version of a method, that's asynchronously deferred
67
+ * but called in the minimum time possible.
68
+ *
69
+ * @method
70
+ * @memberof Popper.Utils
71
+ * @argument {Function} fn
72
+ * @returns {Function}
73
+ */
74
+ var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;
75
+
76
+ /**
77
+ * Check if the given variable is a function
78
+ * @method
79
+ * @memberof Popper.Utils
80
+ * @argument {Any} functionToCheck - variable to check
81
+ * @returns {Boolean} answer to: is a function?
82
+ */
83
+ function isFunction(functionToCheck) {
84
+ const getType = {};
85
+ return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
86
+ }
87
+
88
+ /**
89
+ * Get CSS computed property of the given element
90
+ * @method
91
+ * @memberof Popper.Utils
92
+ * @argument {Eement} element
93
+ * @argument {String} property
94
+ */
95
+ function getStyleComputedProperty(element, property) {
96
+ if (element.nodeType !== 1) {
97
+ return [];
98
+ }
99
+ // NOTE: 1 DOM access here
100
+ const css = getComputedStyle(element, null);
101
+ return property ? css[property] : css;
102
+ }
103
+
104
+ /**
105
+ * Returns the parentNode or the host of the element
106
+ * @method
107
+ * @memberof Popper.Utils
108
+ * @argument {Element} element
109
+ * @returns {Element} parent
110
+ */
111
+ function getParentNode(element) {
112
+ if (element.nodeName === 'HTML') {
113
+ return element;
114
+ }
115
+ return element.parentNode || element.host;
116
+ }
117
+
118
+ /**
119
+ * Returns the scrolling parent of the given element
120
+ * @method
121
+ * @memberof Popper.Utils
122
+ * @argument {Element} element
123
+ * @returns {Element} scroll parent
124
+ */
125
+ function getScrollParent(element) {
126
+ // Return body, `getScroll` will take care to get the correct `scrollTop` from it
127
+ if (!element) {
128
+ return document.body;
129
+ }
130
+
131
+ switch (element.nodeName) {
132
+ case 'HTML':
133
+ case 'BODY':
134
+ return element.ownerDocument.body;
135
+ case '#document':
136
+ return element.body;
137
+ }
138
+
139
+ // Firefox want us to check `-x` and `-y` variations as well
140
+ const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);
141
+ if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {
142
+ return element;
143
+ }
144
+
145
+ return getScrollParent(getParentNode(element));
146
+ }
147
+
148
+ const isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);
149
+ const isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);
150
+
151
+ /**
152
+ * Determines if the browser is Internet Explorer
153
+ * @method
154
+ * @memberof Popper.Utils
155
+ * @param {Number} version to check
156
+ * @returns {Boolean} isIE
157
+ */
158
+ function isIE(version) {
159
+ if (version === 11) {
160
+ return isIE11;
161
+ }
162
+ if (version === 10) {
163
+ return isIE10;
164
+ }
165
+ return isIE11 || isIE10;
166
+ }
167
+
168
+ /**
169
+ * Returns the offset parent of the given element
170
+ * @method
171
+ * @memberof Popper.Utils
172
+ * @argument {Element} element
173
+ * @returns {Element} offset parent
174
+ */
175
+ function getOffsetParent(element) {
176
+ if (!element) {
177
+ return document.documentElement;
178
+ }
179
+
180
+ const noOffsetParent = isIE(10) ? document.body : null;
181
+
182
+ // NOTE: 1 DOM access here
183
+ let offsetParent = element.offsetParent;
184
+ // Skip hidden elements which don't have an offsetParent
185
+ while (offsetParent === noOffsetParent && element.nextElementSibling) {
186
+ offsetParent = (element = element.nextElementSibling).offsetParent;
187
+ }
188
+
189
+ const nodeName = offsetParent && offsetParent.nodeName;
190
+
191
+ if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {
192
+ return element ? element.ownerDocument.documentElement : document.documentElement;
193
+ }
194
+
195
+ // .offsetParent will return the closest TD or TABLE in case
196
+ // no offsetParent is present, I hate this job...
197
+ if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {
198
+ return getOffsetParent(offsetParent);
199
+ }
200
+
201
+ return offsetParent;
202
+ }
203
+
204
+ function isOffsetContainer(element) {
205
+ const { nodeName } = element;
206
+ if (nodeName === 'BODY') {
207
+ return false;
208
+ }
209
+ return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;
210
+ }
211
+
212
+ /**
213
+ * Finds the root node (document, shadowDOM root) of the given element
214
+ * @method
215
+ * @memberof Popper.Utils
216
+ * @argument {Element} node
217
+ * @returns {Element} root node
218
+ */
219
+ function getRoot(node) {
220
+ if (node.parentNode !== null) {
221
+ return getRoot(node.parentNode);
222
+ }
223
+
224
+ return node;
225
+ }
226
+
227
+ /**
228
+ * Finds the offset parent common to the two provided nodes
229
+ * @method
230
+ * @memberof Popper.Utils
231
+ * @argument {Element} element1
232
+ * @argument {Element} element2
233
+ * @returns {Element} common offset parent
234
+ */
235
+ function findCommonOffsetParent(element1, element2) {
236
+ // This check is needed to avoid errors in case one of the elements isn't defined for any reason
237
+ if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {
238
+ return document.documentElement;
239
+ }
240
+
241
+ // Here we make sure to give as "start" the element that comes first in the DOM
242
+ const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;
243
+ const start = order ? element1 : element2;
244
+ const end = order ? element2 : element1;
245
+
246
+ // Get common ancestor container
247
+ const range = document.createRange();
248
+ range.setStart(start, 0);
249
+ range.setEnd(end, 0);
250
+ const { commonAncestorContainer } = range;
251
+
252
+ // Both nodes are inside #document
253
+ if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {
254
+ if (isOffsetContainer(commonAncestorContainer)) {
255
+ return commonAncestorContainer;
256
+ }
257
+
258
+ return getOffsetParent(commonAncestorContainer);
259
+ }
260
+
261
+ // one of the nodes is inside shadowDOM, find which one
262
+ const element1root = getRoot(element1);
263
+ if (element1root.host) {
264
+ return findCommonOffsetParent(element1root.host, element2);
265
+ } else {
266
+ return findCommonOffsetParent(element1, getRoot(element2).host);
267
+ }
268
+ }
269
+
270
+ /**
271
+ * Gets the scroll value of the given element in the given side (top and left)
272
+ * @method
273
+ * @memberof Popper.Utils
274
+ * @argument {Element} element
275
+ * @argument {String} side `top` or `left`
276
+ * @returns {number} amount of scrolled pixels
277
+ */
278
+ function getScroll(element, side = 'top') {
279
+ const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';
280
+ const nodeName = element.nodeName;
281
+
282
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
283
+ const html = element.ownerDocument.documentElement;
284
+ const scrollingElement = element.ownerDocument.scrollingElement || html;
285
+ return scrollingElement[upperSide];
286
+ }
287
+
288
+ return element[upperSide];
289
+ }
290
+
291
+ /*
292
+ * Sum or subtract the element scroll values (left and top) from a given rect object
293
+ * @method
294
+ * @memberof Popper.Utils
295
+ * @param {Object} rect - Rect object you want to change
296
+ * @param {HTMLElement} element - The element from the function reads the scroll values
297
+ * @param {Boolean} subtract - set to true if you want to subtract the scroll values
298
+ * @return {Object} rect - The modifier rect object
299
+ */
300
+ function includeScroll(rect, element, subtract = false) {
301
+ const scrollTop = getScroll(element, 'top');
302
+ const scrollLeft = getScroll(element, 'left');
303
+ const modifier = subtract ? -1 : 1;
304
+ rect.top += scrollTop * modifier;
305
+ rect.bottom += scrollTop * modifier;
306
+ rect.left += scrollLeft * modifier;
307
+ rect.right += scrollLeft * modifier;
308
+ return rect;
309
+ }
310
+
311
+ /*
312
+ * Helper to detect borders of a given element
313
+ * @method
314
+ * @memberof Popper.Utils
315
+ * @param {CSSStyleDeclaration} styles
316
+ * Result of `getStyleComputedProperty` on the given element
317
+ * @param {String} axis - `x` or `y`
318
+ * @return {number} borders - The borders size of the given axis
319
+ */
320
+
321
+ function getBordersSize(styles, axis) {
322
+ const sideA = axis === 'x' ? 'Left' : 'Top';
323
+ const sideB = sideA === 'Left' ? 'Right' : 'Bottom';
324
+
325
+ return parseFloat(styles[`border${sideA}Width`], 10) + parseFloat(styles[`border${sideB}Width`], 10);
326
+ }
327
+
328
+ function getSize(axis, body, html, computedStyle) {
329
+ return Math.max(body[`offset${axis}`], body[`scroll${axis}`], html[`client${axis}`], html[`offset${axis}`], html[`scroll${axis}`], isIE(10) ? html[`offset${axis}`] + computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`] + computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`] : 0);
330
+ }
331
+
332
+ function getWindowSizes() {
333
+ const body = document.body;
334
+ const html = document.documentElement;
335
+ const computedStyle = isIE(10) && getComputedStyle(html);
336
+
337
+ return {
338
+ height: getSize('Height', body, html, computedStyle),
339
+ width: getSize('Width', body, html, computedStyle)
340
+ };
341
+ }
342
+
343
+ var _extends = Object.assign || function (target) {
344
+ for (var i = 1; i < arguments.length; i++) {
345
+ var source = arguments[i];
346
+
347
+ for (var key in source) {
348
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
349
+ target[key] = source[key];
350
+ }
351
+ }
352
+ }
353
+
354
+ return target;
355
+ };
356
+
357
+ /**
358
+ * Given element offsets, generate an output similar to getBoundingClientRect
359
+ * @method
360
+ * @memberof Popper.Utils
361
+ * @argument {Object} offsets
362
+ * @returns {Object} ClientRect like output
363
+ */
364
+ function getClientRect(offsets) {
365
+ return _extends({}, offsets, {
366
+ right: offsets.left + offsets.width,
367
+ bottom: offsets.top + offsets.height
368
+ });
369
+ }
370
+
371
+ /**
372
+ * Get bounding client rect of given element
373
+ * @method
374
+ * @memberof Popper.Utils
375
+ * @param {HTMLElement} element
376
+ * @return {Object} client rect
377
+ */
378
+ function getBoundingClientRect(element) {
379
+ let rect = {};
380
+
381
+ // IE10 10 FIX: Please, don't ask, the element isn't
382
+ // considered in DOM in some circumstances...
383
+ // This isn't reproducible in IE10 compatibility mode of IE11
384
+ try {
385
+ if (isIE(10)) {
386
+ rect = element.getBoundingClientRect();
387
+ const scrollTop = getScroll(element, 'top');
388
+ const scrollLeft = getScroll(element, 'left');
389
+ rect.top += scrollTop;
390
+ rect.left += scrollLeft;
391
+ rect.bottom += scrollTop;
392
+ rect.right += scrollLeft;
393
+ } else {
394
+ rect = element.getBoundingClientRect();
395
+ }
396
+ } catch (e) {}
397
+
398
+ const result = {
399
+ left: rect.left,
400
+ top: rect.top,
401
+ width: rect.right - rect.left,
402
+ height: rect.bottom - rect.top
403
+ };
404
+
405
+ // subtract scrollbar size from sizes
406
+ const sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};
407
+ const width = sizes.width || element.clientWidth || result.right - result.left;
408
+ const height = sizes.height || element.clientHeight || result.bottom - result.top;
409
+
410
+ let horizScrollbar = element.offsetWidth - width;
411
+ let vertScrollbar = element.offsetHeight - height;
412
+
413
+ // if an hypothetical scrollbar is detected, we must be sure it's not a `border`
414
+ // we make this check conditional for performance reasons
415
+ if (horizScrollbar || vertScrollbar) {
416
+ const styles = getStyleComputedProperty(element);
417
+ horizScrollbar -= getBordersSize(styles, 'x');
418
+ vertScrollbar -= getBordersSize(styles, 'y');
419
+
420
+ result.width -= horizScrollbar;
421
+ result.height -= vertScrollbar;
422
+ }
423
+
424
+ return getClientRect(result);
425
+ }
426
+
427
+ function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {
428
+ const isIE10 = isIE(10);
429
+ const isHTML = parent.nodeName === 'HTML';
430
+ const childrenRect = getBoundingClientRect(children);
431
+ const parentRect = getBoundingClientRect(parent);
432
+ const scrollParent = getScrollParent(children);
433
+
434
+ const styles = getStyleComputedProperty(parent);
435
+ const borderTopWidth = parseFloat(styles.borderTopWidth, 10);
436
+ const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);
437
+
438
+ // In cases where the parent is fixed, we must ignore negative scroll in offset calc
439
+ if (fixedPosition && parent.nodeName === 'HTML') {
440
+ parentRect.top = Math.max(parentRect.top, 0);
441
+ parentRect.left = Math.max(parentRect.left, 0);
442
+ }
443
+ let offsets = getClientRect({
444
+ top: childrenRect.top - parentRect.top - borderTopWidth,
445
+ left: childrenRect.left - parentRect.left - borderLeftWidth,
446
+ width: childrenRect.width,
447
+ height: childrenRect.height
448
+ });
449
+ offsets.marginTop = 0;
450
+ offsets.marginLeft = 0;
451
+
452
+ // Subtract margins of documentElement in case it's being used as parent
453
+ // we do this only on HTML because it's the only element that behaves
454
+ // differently when margins are applied to it. The margins are included in
455
+ // the box of the documentElement, in the other cases not.
456
+ if (!isIE10 && isHTML) {
457
+ const marginTop = parseFloat(styles.marginTop, 10);
458
+ const marginLeft = parseFloat(styles.marginLeft, 10);
459
+
460
+ offsets.top -= borderTopWidth - marginTop;
461
+ offsets.bottom -= borderTopWidth - marginTop;
462
+ offsets.left -= borderLeftWidth - marginLeft;
463
+ offsets.right -= borderLeftWidth - marginLeft;
464
+
465
+ // Attach marginTop and marginLeft because in some circumstances we may need them
466
+ offsets.marginTop = marginTop;
467
+ offsets.marginLeft = marginLeft;
468
+ }
469
+
470
+ if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {
471
+ offsets = includeScroll(offsets, parent);
472
+ }
473
+
474
+ return offsets;
475
+ }
476
+
477
+ function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {
478
+ const html = element.ownerDocument.documentElement;
479
+ const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);
480
+ const width = Math.max(html.clientWidth, window.innerWidth || 0);
481
+ const height = Math.max(html.clientHeight, window.innerHeight || 0);
482
+
483
+ const scrollTop = !excludeScroll ? getScroll(html) : 0;
484
+ const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;
485
+
486
+ const offset = {
487
+ top: scrollTop - relativeOffset.top + relativeOffset.marginTop,
488
+ left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,
489
+ width,
490
+ height
491
+ };
492
+
493
+ return getClientRect(offset);
494
+ }
495
+
496
+ /**
497
+ * Check if the given element is fixed or is inside a fixed parent
498
+ * @method
499
+ * @memberof Popper.Utils
500
+ * @argument {Element} element
501
+ * @argument {Element} customContainer
502
+ * @returns {Boolean} answer to "isFixed?"
503
+ */
504
+ function isFixed(element) {
505
+ const nodeName = element.nodeName;
506
+ if (nodeName === 'BODY' || nodeName === 'HTML') {
507
+ return false;
508
+ }
509
+ if (getStyleComputedProperty(element, 'position') === 'fixed') {
510
+ return true;
511
+ }
512
+ return isFixed(getParentNode(element));
513
+ }
514
+
515
+ /**
516
+ * Finds the first parent of an element that has a transformed property defined
517
+ * @method
518
+ * @memberof Popper.Utils
519
+ * @argument {Element} element
520
+ * @returns {Element} first transformed parent or documentElement
521
+ */
522
+
523
+ function getFixedPositionOffsetParent(element) {
524
+ // This check is needed to avoid errors in case one of the elements isn't defined for any reason
525
+ if (!element || !element.parentElement || isIE()) {
526
+ return document.documentElement;
527
+ }
528
+ let el = element.parentElement;
529
+ while (el && getStyleComputedProperty(el, 'transform') === 'none') {
530
+ el = el.parentElement;
531
+ }
532
+ return el || document.documentElement;
533
+ }
534
+
535
+ /**
536
+ * Computed the boundaries limits and return them
537
+ * @method
538
+ * @memberof Popper.Utils
539
+ * @param {HTMLElement} popper
540
+ * @param {HTMLElement} reference
541
+ * @param {number} padding
542
+ * @param {HTMLElement} boundariesElement - Element used to define the boundaries
543
+ * @param {Boolean} fixedPosition - Is in fixed position mode
544
+ * @returns {Object} Coordinates of the boundaries
545
+ */
546
+ function getBoundaries(popper, reference, padding, boundariesElement, fixedPosition = false) {
547
+ // NOTE: 1 DOM access here
548
+
549
+ let boundaries = { top: 0, left: 0 };
550
+ const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
551
+
552
+ // Handle viewport case
553
+ if (boundariesElement === 'viewport') {
554
+ boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);
555
+ } else {
556
+ // Handle other cases based on DOM element used as boundaries
557
+ let boundariesNode;
558
+ if (boundariesElement === 'scrollParent') {
559
+ boundariesNode = getScrollParent(getParentNode(reference));
560
+ if (boundariesNode.nodeName === 'BODY') {
561
+ boundariesNode = popper.ownerDocument.documentElement;
562
+ }
563
+ } else if (boundariesElement === 'window') {
564
+ boundariesNode = popper.ownerDocument.documentElement;
565
+ } else {
566
+ boundariesNode = boundariesElement;
567
+ }
568
+
569
+ const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);
570
+
571
+ // In case of HTML, we need a different computation
572
+ if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {
573
+ const { height, width } = getWindowSizes();
574
+ boundaries.top += offsets.top - offsets.marginTop;
575
+ boundaries.bottom = height + offsets.top;
576
+ boundaries.left += offsets.left - offsets.marginLeft;
577
+ boundaries.right = width + offsets.left;
578
+ } else {
579
+ // for all the other DOM elements, this one is good
580
+ boundaries = offsets;
581
+ }
582
+ }
583
+
584
+ // Add paddings
585
+ boundaries.left += padding;
586
+ boundaries.top += padding;
587
+ boundaries.right -= padding;
588
+ boundaries.bottom -= padding;
589
+
590
+ return boundaries;
591
+ }
592
+
593
+ function getArea({ width, height }) {
594
+ return width * height;
595
+ }
596
+
597
+ /**
598
+ * Utility used to transform the `auto` placement to the placement with more
599
+ * available space.
600
+ * @method
601
+ * @memberof Popper.Utils
602
+ * @argument {Object} data - The data object generated by update method
603
+ * @argument {Object} options - Modifiers configuration and options
604
+ * @returns {Object} The data object, properly modified
605
+ */
606
+ function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement, padding = 0) {
607
+ if (placement.indexOf('auto') === -1) {
608
+ return placement;
609
+ }
610
+
611
+ const boundaries = getBoundaries(popper, reference, padding, boundariesElement);
612
+
613
+ const rects = {
614
+ top: {
615
+ width: boundaries.width,
616
+ height: refRect.top - boundaries.top
617
+ },
618
+ right: {
619
+ width: boundaries.right - refRect.right,
620
+ height: boundaries.height
621
+ },
622
+ bottom: {
623
+ width: boundaries.width,
624
+ height: boundaries.bottom - refRect.bottom
625
+ },
626
+ left: {
627
+ width: refRect.left - boundaries.left,
628
+ height: boundaries.height
629
+ }
630
+ };
631
+
632
+ const sortedAreas = Object.keys(rects).map(key => _extends({
633
+ key
634
+ }, rects[key], {
635
+ area: getArea(rects[key])
636
+ })).sort((a, b) => b.area - a.area);
637
+
638
+ const filteredAreas = sortedAreas.filter(({ width, height }) => width >= popper.clientWidth && height >= popper.clientHeight);
639
+
640
+ const computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;
641
+
642
+ const variation = placement.split('-')[1];
643
+
644
+ return computedPlacement + (variation ? `-${variation}` : '');
645
+ }
646
+
647
+ /**
648
+ * Get offsets to the reference element
649
+ * @method
650
+ * @memberof Popper.Utils
651
+ * @param {Object} state
652
+ * @param {Element} popper - the popper element
653
+ * @param {Element} reference - the reference element (the popper will be relative to this)
654
+ * @param {Element} fixedPosition - is in fixed position mode
655
+ * @returns {Object} An object containing the offsets which will be applied to the popper
656
+ */
657
+ function getReferenceOffsets(state, popper, reference, fixedPosition = null) {
658
+ const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);
659
+ return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);
660
+ }
661
+
662
+ /**
663
+ * Get the outer sizes of the given element (offset size + margins)
664
+ * @method
665
+ * @memberof Popper.Utils
666
+ * @argument {Element} element
667
+ * @returns {Object} object containing width and height properties
668
+ */
669
+ function getOuterSizes(element) {
670
+ const styles = getComputedStyle(element);
671
+ const x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);
672
+ const y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);
673
+ const result = {
674
+ width: element.offsetWidth + y,
675
+ height: element.offsetHeight + x
676
+ };
677
+ return result;
678
+ }
679
+
680
+ /**
681
+ * Get the opposite placement of the given one
682
+ * @method
683
+ * @memberof Popper.Utils
684
+ * @argument {String} placement
685
+ * @returns {String} flipped placement
686
+ */
687
+ function getOppositePlacement(placement) {
688
+ const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };
689
+ return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);
690
+ }
691
+
692
+ /**
693
+ * Get offsets to the popper
694
+ * @method
695
+ * @memberof Popper.Utils
696
+ * @param {Object} position - CSS position the Popper will get applied
697
+ * @param {HTMLElement} popper - the popper element
698
+ * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)
699
+ * @param {String} placement - one of the valid placement options
700
+ * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper
701
+ */
702
+ function getPopperOffsets(popper, referenceOffsets, placement) {
703
+ placement = placement.split('-')[0];
704
+
705
+ // Get popper node sizes
706
+ const popperRect = getOuterSizes(popper);
707
+
708
+ // Add position, width and height to our offsets object
709
+ const popperOffsets = {
710
+ width: popperRect.width,
711
+ height: popperRect.height
712
+ };
713
+
714
+ // depending by the popper placement we have to compute its offsets slightly differently
715
+ const isHoriz = ['right', 'left'].indexOf(placement) !== -1;
716
+ const mainSide = isHoriz ? 'top' : 'left';
717
+ const secondarySide = isHoriz ? 'left' : 'top';
718
+ const measurement = isHoriz ? 'height' : 'width';
719
+ const secondaryMeasurement = !isHoriz ? 'height' : 'width';
720
+
721
+ popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;
722
+ if (placement === secondarySide) {
723
+ popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];
724
+ } else {
725
+ popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];
726
+ }
727
+
728
+ return popperOffsets;
729
+ }
730
+
731
+ /**
732
+ * Mimics the `find` method of Array
733
+ * @method
734
+ * @memberof Popper.Utils
735
+ * @argument {Array} arr
736
+ * @argument prop
737
+ * @argument value
738
+ * @returns index or -1
739
+ */
740
+ function find(arr, check) {
741
+ // use native find if supported
742
+ if (Array.prototype.find) {
743
+ return arr.find(check);
744
+ }
745
+
746
+ // use `filter` to obtain the same behavior of `find`
747
+ return arr.filter(check)[0];
748
+ }
749
+
750
+ /**
751
+ * Return the index of the matching object
752
+ * @method
753
+ * @memberof Popper.Utils
754
+ * @argument {Array} arr
755
+ * @argument prop
756
+ * @argument value
757
+ * @returns index or -1
758
+ */
759
+ function findIndex(arr, prop, value) {
760
+ // use native findIndex if supported
761
+ if (Array.prototype.findIndex) {
762
+ return arr.findIndex(cur => cur[prop] === value);
763
+ }
764
+
765
+ // use `find` + `indexOf` if `findIndex` isn't supported
766
+ const match = find(arr, obj => obj[prop] === value);
767
+ return arr.indexOf(match);
768
+ }
769
+
770
+ /**
771
+ * Loop trough the list of modifiers and run them in order,
772
+ * each of them will then edit the data object.
773
+ * @method
774
+ * @memberof Popper.Utils
775
+ * @param {dataObject} data
776
+ * @param {Array} modifiers
777
+ * @param {String} ends - Optional modifier name used as stopper
778
+ * @returns {dataObject}
779
+ */
780
+ function runModifiers(modifiers, data, ends) {
781
+ const modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));
782
+
783
+ modifiersToRun.forEach(modifier => {
784
+ if (modifier['function']) {
785
+ // eslint-disable-line dot-notation
786
+ console.warn('`modifier.function` is deprecated, use `modifier.fn`!');
787
+ }
788
+ const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation
789
+ if (modifier.enabled && isFunction(fn)) {
790
+ // Add properties to offsets to make them a complete clientRect object
791
+ // we do this before each modifier to make sure the previous one doesn't
792
+ // mess with these values
793
+ data.offsets.popper = getClientRect(data.offsets.popper);
794
+ data.offsets.reference = getClientRect(data.offsets.reference);
795
+
796
+ data = fn(data, modifier);
797
+ }
798
+ });
799
+
800
+ return data;
801
+ }
802
+
803
+ /**
804
+ * Updates the position of the popper, computing the new offsets and applying
805
+ * the new style.<br />
806
+ * Prefer `scheduleUpdate` over `update` because of performance reasons.
807
+ * @method
808
+ * @memberof Popper
809
+ */
810
+ function update() {
811
+ // if popper is destroyed, don't perform any further update
812
+ if (this.state.isDestroyed) {
813
+ return;
814
+ }
815
+
816
+ let data = {
817
+ instance: this,
818
+ styles: {},
819
+ arrowStyles: {},
820
+ attributes: {},
821
+ flipped: false,
822
+ offsets: {}
823
+ };
824
+
825
+ // compute reference element offsets
826
+ data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);
827
+
828
+ // compute auto placement, store placement inside the data object,
829
+ // modifiers will be able to edit `placement` if needed
830
+ // and refer to originalPlacement to know the original value
831
+ data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);
832
+
833
+ // store the computed placement inside `originalPlacement`
834
+ data.originalPlacement = data.placement;
835
+
836
+ data.positionFixed = this.options.positionFixed;
837
+
838
+ // compute the popper offsets
839
+ data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);
840
+
841
+ data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';
842
+
843
+ // run the modifiers
844
+ data = runModifiers(this.modifiers, data);
845
+
846
+ // the first `update` will call `onCreate` callback
847
+ // the other ones will call `onUpdate` callback
848
+ if (!this.state.isCreated) {
849
+ this.state.isCreated = true;
850
+ this.options.onCreate(data);
851
+ } else {
852
+ this.options.onUpdate(data);
853
+ }
854
+ }
855
+
856
+ /**
857
+ * Helper used to know if the given modifier is enabled.
858
+ * @method
859
+ * @memberof Popper.Utils
860
+ * @returns {Boolean}
861
+ */
862
+ function isModifierEnabled(modifiers, modifierName) {
863
+ return modifiers.some(({ name, enabled }) => enabled && name === modifierName);
864
+ }
865
+
866
+ /**
867
+ * Get the prefixed supported property name
868
+ * @method
869
+ * @memberof Popper.Utils
870
+ * @argument {String} property (camelCase)
871
+ * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)
872
+ */
873
+ function getSupportedPropertyName(property) {
874
+ const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];
875
+ const upperProp = property.charAt(0).toUpperCase() + property.slice(1);
876
+
877
+ for (let i = 0; i < prefixes.length; i++) {
878
+ const prefix = prefixes[i];
879
+ const toCheck = prefix ? `${prefix}${upperProp}` : property;
880
+ if (typeof document.body.style[toCheck] !== 'undefined') {
881
+ return toCheck;
882
+ }
883
+ }
884
+ return null;
885
+ }
886
+
887
+ /**
888
+ * Destroy the popper
889
+ * @method
890
+ * @memberof Popper
891
+ */
892
+ function destroy() {
893
+ this.state.isDestroyed = true;
894
+
895
+ // touch DOM only if `applyStyle` modifier is enabled
896
+ if (isModifierEnabled(this.modifiers, 'applyStyle')) {
897
+ this.popper.removeAttribute('x-placement');
898
+ this.popper.style.position = '';
899
+ this.popper.style.top = '';
900
+ this.popper.style.left = '';
901
+ this.popper.style.right = '';
902
+ this.popper.style.bottom = '';
903
+ this.popper.style.willChange = '';
904
+ this.popper.style[getSupportedPropertyName('transform')] = '';
905
+ }
906
+
907
+ this.disableEventListeners();
908
+
909
+ // remove the popper if user explicity asked for the deletion on destroy
910
+ // do not use `remove` because IE11 doesn't support it
911
+ if (this.options.removeOnDestroy) {
912
+ this.popper.parentNode.removeChild(this.popper);
913
+ }
914
+ return this;
915
+ }
916
+
917
+ /**
918
+ * Get the window associated with the element
919
+ * @argument {Element} element
920
+ * @returns {Window}
921
+ */
922
+ function getWindow(element) {
923
+ const ownerDocument = element.ownerDocument;
924
+ return ownerDocument ? ownerDocument.defaultView : window;
925
+ }
926
+
927
+ function attachToScrollParents(scrollParent, event, callback, scrollParents) {
928
+ const isBody = scrollParent.nodeName === 'BODY';
929
+ const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;
930
+ target.addEventListener(event, callback, { passive: true });
931
+
932
+ if (!isBody) {
933
+ attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);
934
+ }
935
+ scrollParents.push(target);
936
+ }
937
+
938
+ /**
939
+ * Setup needed event listeners used to update the popper position
940
+ * @method
941
+ * @memberof Popper.Utils
942
+ * @private
943
+ */
944
+ function setupEventListeners(reference, options, state, updateBound) {
945
+ // Resize event listener on window
946
+ state.updateBound = updateBound;
947
+ getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });
948
+
949
+ // Scroll event listener on scroll parents
950
+ const scrollElement = getScrollParent(reference);
951
+ attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);
952
+ state.scrollElement = scrollElement;
953
+ state.eventsEnabled = true;
954
+
955
+ return state;
956
+ }
957
+
958
+ /**
959
+ * It will add resize/scroll events and start recalculating
960
+ * position of the popper element when they are triggered.
961
+ * @method
962
+ * @memberof Popper
963
+ */
964
+ function enableEventListeners() {
965
+ if (!this.state.eventsEnabled) {
966
+ this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);
967
+ }
968
+ }
969
+
970
+ /**
971
+ * Remove event listeners used to update the popper position
972
+ * @method
973
+ * @memberof Popper.Utils
974
+ * @private
975
+ */
976
+ function removeEventListeners(reference, state) {
977
+ // Remove resize event listener on window
978
+ getWindow(reference).removeEventListener('resize', state.updateBound);
979
+
980
+ // Remove scroll event listener on scroll parents
981
+ state.scrollParents.forEach(target => {
982
+ target.removeEventListener('scroll', state.updateBound);
983
+ });
984
+
985
+ // Reset state
986
+ state.updateBound = null;
987
+ state.scrollParents = [];
988
+ state.scrollElement = null;
989
+ state.eventsEnabled = false;
990
+ return state;
991
+ }
992
+
993
+ /**
994
+ * It will remove resize/scroll events and won't recalculate popper position
995
+ * when they are triggered. It also won't trigger onUpdate callback anymore,
996
+ * unless you call `update` method manually.
997
+ * @method
998
+ * @memberof Popper
999
+ */
1000
+ function disableEventListeners() {
1001
+ if (this.state.eventsEnabled) {
1002
+ cancelAnimationFrame(this.scheduleUpdate);
1003
+ this.state = removeEventListeners(this.reference, this.state);
1004
+ }
1005
+ }
1006
+
1007
+ /**
1008
+ * Tells if a given input is a number
1009
+ * @method
1010
+ * @memberof Popper.Utils
1011
+ * @param {*} input to check
1012
+ * @return {Boolean}
1013
+ */
1014
+ function isNumeric(n) {
1015
+ return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);
1016
+ }
1017
+
1018
+ /**
1019
+ * Set the style to the given popper
1020
+ * @method
1021
+ * @memberof Popper.Utils
1022
+ * @argument {Element} element - Element to apply the style to
1023
+ * @argument {Object} styles
1024
+ * Object with a list of properties and values which will be applied to the element
1025
+ */
1026
+ function setStyles(element, styles) {
1027
+ Object.keys(styles).forEach(prop => {
1028
+ let unit = '';
1029
+ // add unit if the value is numeric and is one of the following
1030
+ if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {
1031
+ unit = 'px';
1032
+ }
1033
+ element.style[prop] = styles[prop] + unit;
1034
+ });
1035
+ }
1036
+
1037
+ /**
1038
+ * Set the attributes to the given popper
1039
+ * @method
1040
+ * @memberof Popper.Utils
1041
+ * @argument {Element} element - Element to apply the attributes to
1042
+ * @argument {Object} styles
1043
+ * Object with a list of properties and values which will be applied to the element
1044
+ */
1045
+ function setAttributes(element, attributes) {
1046
+ Object.keys(attributes).forEach(function (prop) {
1047
+ const value = attributes[prop];
1048
+ if (value !== false) {
1049
+ element.setAttribute(prop, attributes[prop]);
1050
+ } else {
1051
+ element.removeAttribute(prop);
1052
+ }
1053
+ });
1054
+ }
1055
+
1056
+ /**
1057
+ * @function
1058
+ * @memberof Modifiers
1059
+ * @argument {Object} data - The data object generated by `update` method
1060
+ * @argument {Object} data.styles - List of style properties - values to apply to popper element
1061
+ * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element
1062
+ * @argument {Object} options - Modifiers configuration and options
1063
+ * @returns {Object} The same data object
1064
+ */
1065
+ function applyStyle(data) {
1066
+ // any property present in `data.styles` will be applied to the popper,
1067
+ // in this way we can make the 3rd party modifiers add custom styles to it
1068
+ // Be aware, modifiers could override the properties defined in the previous
1069
+ // lines of this modifier!
1070
+ setStyles(data.instance.popper, data.styles);
1071
+
1072
+ // any property present in `data.attributes` will be applied to the popper,
1073
+ // they will be set as HTML attributes of the element
1074
+ setAttributes(data.instance.popper, data.attributes);
1075
+
1076
+ // if arrowElement is defined and arrowStyles has some properties
1077
+ if (data.arrowElement && Object.keys(data.arrowStyles).length) {
1078
+ setStyles(data.arrowElement, data.arrowStyles);
1079
+ }
1080
+
1081
+ return data;
1082
+ }
1083
+
1084
+ /**
1085
+ * Set the x-placement attribute before everything else because it could be used
1086
+ * to add margins to the popper margins needs to be calculated to get the
1087
+ * correct popper offsets.
1088
+ * @method
1089
+ * @memberof Popper.modifiers
1090
+ * @param {HTMLElement} reference - The reference element used to position the popper
1091
+ * @param {HTMLElement} popper - The HTML element used as popper
1092
+ * @param {Object} options - Popper.js options
1093
+ */
1094
+ function applyStyleOnLoad(reference, popper, options, modifierOptions, state) {
1095
+ // compute reference element offsets
1096
+ const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);
1097
+
1098
+ // compute auto placement, store placement inside the data object,
1099
+ // modifiers will be able to edit `placement` if needed
1100
+ // and refer to originalPlacement to know the original value
1101
+ const placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);
1102
+
1103
+ popper.setAttribute('x-placement', placement);
1104
+
1105
+ // Apply `position` to popper before anything else because
1106
+ // without the position applied we can't guarantee correct computations
1107
+ setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });
1108
+
1109
+ return options;
1110
+ }
1111
+
1112
+ /**
1113
+ * @function
1114
+ * @memberof Modifiers
1115
+ * @argument {Object} data - The data object generated by `update` method
1116
+ * @argument {Object} options - Modifiers configuration and options
1117
+ * @returns {Object} The data object, properly modified
1118
+ */
1119
+ function computeStyle(data, options) {
1120
+ const { x, y } = options;
1121
+ const { popper } = data.offsets;
1122
+
1123
+ // Remove this legacy support in Popper.js v2
1124
+ const legacyGpuAccelerationOption = find(data.instance.modifiers, modifier => modifier.name === 'applyStyle').gpuAcceleration;
1125
+ if (legacyGpuAccelerationOption !== undefined) {
1126
+ console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');
1127
+ }
1128
+ const gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;
1129
+
1130
+ const offsetParent = getOffsetParent(data.instance.popper);
1131
+ const offsetParentRect = getBoundingClientRect(offsetParent);
1132
+
1133
+ // Styles
1134
+ const styles = {
1135
+ position: popper.position
1136
+ };
1137
+
1138
+ // Avoid blurry text by using full pixel integers.
1139
+ // For pixel-perfect positioning, top/bottom prefers rounded
1140
+ // values, while left/right prefers floored values.
1141
+ const offsets = {
1142
+ left: Math.floor(popper.left),
1143
+ top: Math.round(popper.top),
1144
+ bottom: Math.round(popper.bottom),
1145
+ right: Math.floor(popper.right)
1146
+ };
1147
+
1148
+ const sideA = x === 'bottom' ? 'top' : 'bottom';
1149
+ const sideB = y === 'right' ? 'left' : 'right';
1150
+
1151
+ // if gpuAcceleration is set to `true` and transform is supported,
1152
+ // we use `translate3d` to apply the position to the popper we
1153
+ // automatically use the supported prefixed version if needed
1154
+ const prefixedProperty = getSupportedPropertyName('transform');
1155
+
1156
+ // now, let's make a step back and look at this code closely (wtf?)
1157
+ // If the content of the popper grows once it's been positioned, it
1158
+ // may happen that the popper gets misplaced because of the new content
1159
+ // overflowing its reference element
1160
+ // To avoid this problem, we provide two options (x and y), which allow
1161
+ // the consumer to define the offset origin.
1162
+ // If we position a popper on top of a reference element, we can set
1163
+ // `x` to `top` to make the popper grow towards its top instead of
1164
+ // its bottom.
1165
+ let left, top;
1166
+ if (sideA === 'bottom') {
1167
+ top = -offsetParentRect.height + offsets.bottom;
1168
+ } else {
1169
+ top = offsets.top;
1170
+ }
1171
+ if (sideB === 'right') {
1172
+ left = -offsetParentRect.width + offsets.right;
1173
+ } else {
1174
+ left = offsets.left;
1175
+ }
1176
+ if (gpuAcceleration && prefixedProperty) {
1177
+ styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;
1178
+ styles[sideA] = 0;
1179
+ styles[sideB] = 0;
1180
+ styles.willChange = 'transform';
1181
+ } else {
1182
+ // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties
1183
+ const invertTop = sideA === 'bottom' ? -1 : 1;
1184
+ const invertLeft = sideB === 'right' ? -1 : 1;
1185
+ styles[sideA] = top * invertTop;
1186
+ styles[sideB] = left * invertLeft;
1187
+ styles.willChange = `${sideA}, ${sideB}`;
1188
+ }
1189
+
1190
+ // Attributes
1191
+ const attributes = {
1192
+ 'x-placement': data.placement
1193
+ };
1194
+
1195
+ // Update `data` attributes, styles and arrowStyles
1196
+ data.attributes = _extends({}, attributes, data.attributes);
1197
+ data.styles = _extends({}, styles, data.styles);
1198
+ data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);
1199
+
1200
+ return data;
1201
+ }
1202
+
1203
+ /**
1204
+ * Helper used to know if the given modifier depends from another one.<br />
1205
+ * It checks if the needed modifier is listed and enabled.
1206
+ * @method
1207
+ * @memberof Popper.Utils
1208
+ * @param {Array} modifiers - list of modifiers
1209
+ * @param {String} requestingName - name of requesting modifier
1210
+ * @param {String} requestedName - name of requested modifier
1211
+ * @returns {Boolean}
1212
+ */
1213
+ function isModifierRequired(modifiers, requestingName, requestedName) {
1214
+ const requesting = find(modifiers, ({ name }) => name === requestingName);
1215
+
1216
+ const isRequired = !!requesting && modifiers.some(modifier => {
1217
+ return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;
1218
+ });
1219
+
1220
+ if (!isRequired) {
1221
+ const requesting = `\`${requestingName}\``;
1222
+ const requested = `\`${requestedName}\``;
1223
+ console.warn(`${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`);
1224
+ }
1225
+ return isRequired;
1226
+ }
1227
+
1228
+ /**
1229
+ * @function
1230
+ * @memberof Modifiers
1231
+ * @argument {Object} data - The data object generated by update method
1232
+ * @argument {Object} options - Modifiers configuration and options
1233
+ * @returns {Object} The data object, properly modified
1234
+ */
1235
+ function arrow(data, options) {
1236
+ // arrow depends on keepTogether in order to work
1237
+ if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {
1238
+ return data;
1239
+ }
1240
+
1241
+ let arrowElement = options.element;
1242
+
1243
+ // if arrowElement is a string, suppose it's a CSS selector
1244
+ if (typeof arrowElement === 'string') {
1245
+ arrowElement = data.instance.popper.querySelector(arrowElement);
1246
+
1247
+ // if arrowElement is not found, don't run the modifier
1248
+ if (!arrowElement) {
1249
+ return data;
1250
+ }
1251
+ } else {
1252
+ // if the arrowElement isn't a query selector we must check that the
1253
+ // provided DOM node is child of its popper node
1254
+ if (!data.instance.popper.contains(arrowElement)) {
1255
+ console.warn('WARNING: `arrow.element` must be child of its popper element!');
1256
+ return data;
1257
+ }
1258
+ }
1259
+
1260
+ const placement = data.placement.split('-')[0];
1261
+ const { popper, reference } = data.offsets;
1262
+ const isVertical = ['left', 'right'].indexOf(placement) !== -1;
1263
+
1264
+ const len = isVertical ? 'height' : 'width';
1265
+ const sideCapitalized = isVertical ? 'Top' : 'Left';
1266
+ const side = sideCapitalized.toLowerCase();
1267
+ const altSide = isVertical ? 'left' : 'top';
1268
+ const opSide = isVertical ? 'bottom' : 'right';
1269
+ const arrowElementSize = getOuterSizes(arrowElement)[len];
1270
+
1271
+ //
1272
+ // extends keepTogether behavior making sure the popper and its
1273
+ // reference have enough pixels in conjuction
1274
+ //
1275
+
1276
+ // top/left side
1277
+ if (reference[opSide] - arrowElementSize < popper[side]) {
1278
+ data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);
1279
+ }
1280
+ // bottom/right side
1281
+ if (reference[side] + arrowElementSize > popper[opSide]) {
1282
+ data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];
1283
+ }
1284
+ data.offsets.popper = getClientRect(data.offsets.popper);
1285
+
1286
+ // compute center of the popper
1287
+ const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;
1288
+
1289
+ // Compute the sideValue using the updated popper offsets
1290
+ // take popper margin in account because we don't have this info available
1291
+ const css = getStyleComputedProperty(data.instance.popper);
1292
+ const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);
1293
+ const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);
1294
+ let sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;
1295
+
1296
+ // prevent arrowElement from being placed not contiguously to its popper
1297
+ sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);
1298
+
1299
+ data.arrowElement = arrowElement;
1300
+ data.offsets.arrow = {
1301
+ [side]: Math.round(sideValue),
1302
+ [altSide]: '' // make sure to unset any eventual altSide value from the DOM node
1303
+ };
1304
+
1305
+ return data;
1306
+ }
1307
+
1308
+ /**
1309
+ * Get the opposite placement variation of the given one
1310
+ * @method
1311
+ * @memberof Popper.Utils
1312
+ * @argument {String} placement variation
1313
+ * @returns {String} flipped placement variation
1314
+ */
1315
+ function getOppositeVariation(variation) {
1316
+ if (variation === 'end') {
1317
+ return 'start';
1318
+ } else if (variation === 'start') {
1319
+ return 'end';
1320
+ }
1321
+ return variation;
1322
+ }
1323
+
1324
+ /**
1325
+ * List of accepted placements to use as values of the `placement` option.<br />
1326
+ * Valid placements are:
1327
+ * - `auto`
1328
+ * - `top`
1329
+ * - `right`
1330
+ * - `bottom`
1331
+ * - `left`
1332
+ *
1333
+ * Each placement can have a variation from this list:
1334
+ * - `-start`
1335
+ * - `-end`
1336
+ *
1337
+ * Variations are interpreted easily if you think of them as the left to right
1338
+ * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`
1339
+ * is right.<br />
1340
+ * Vertically (`left` and `right`), `start` is top and `end` is bottom.
1341
+ *
1342
+ * Some valid examples are:
1343
+ * - `top-end` (on top of reference, right aligned)
1344
+ * - `right-start` (on right of reference, top aligned)
1345
+ * - `bottom` (on bottom, centered)
1346
+ * - `auto-right` (on the side with more space available, alignment depends by placement)
1347
+ *
1348
+ * @static
1349
+ * @type {Array}
1350
+ * @enum {String}
1351
+ * @readonly
1352
+ * @method placements
1353
+ * @memberof Popper
1354
+ */
1355
+ var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];
1356
+
1357
+ // Get rid of `auto` `auto-start` and `auto-end`
1358
+ const validPlacements = placements.slice(3);
1359
+
1360
+ /**
1361
+ * Given an initial placement, returns all the subsequent placements
1362
+ * clockwise (or counter-clockwise).
1363
+ *
1364
+ * @method
1365
+ * @memberof Popper.Utils
1366
+ * @argument {String} placement - A valid placement (it accepts variations)
1367
+ * @argument {Boolean} counter - Set to true to walk the placements counterclockwise
1368
+ * @returns {Array} placements including their variations
1369
+ */
1370
+ function clockwise(placement, counter = false) {
1371
+ const index = validPlacements.indexOf(placement);
1372
+ const arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));
1373
+ return counter ? arr.reverse() : arr;
1374
+ }
1375
+
1376
+ const BEHAVIORS = {
1377
+ FLIP: 'flip',
1378
+ CLOCKWISE: 'clockwise',
1379
+ COUNTERCLOCKWISE: 'counterclockwise'
1380
+ };
1381
+
1382
+ /**
1383
+ * @function
1384
+ * @memberof Modifiers
1385
+ * @argument {Object} data - The data object generated by update method
1386
+ * @argument {Object} options - Modifiers configuration and options
1387
+ * @returns {Object} The data object, properly modified
1388
+ */
1389
+ function flip(data, options) {
1390
+ // if `inner` modifier is enabled, we can't use the `flip` modifier
1391
+ if (isModifierEnabled(data.instance.modifiers, 'inner')) {
1392
+ return data;
1393
+ }
1394
+
1395
+ if (data.flipped && data.placement === data.originalPlacement) {
1396
+ // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides
1397
+ return data;
1398
+ }
1399
+
1400
+ const boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);
1401
+
1402
+ let placement = data.placement.split('-')[0];
1403
+ let placementOpposite = getOppositePlacement(placement);
1404
+ let variation = data.placement.split('-')[1] || '';
1405
+
1406
+ let flipOrder = [];
1407
+
1408
+ switch (options.behavior) {
1409
+ case BEHAVIORS.FLIP:
1410
+ flipOrder = [placement, placementOpposite];
1411
+ break;
1412
+ case BEHAVIORS.CLOCKWISE:
1413
+ flipOrder = clockwise(placement);
1414
+ break;
1415
+ case BEHAVIORS.COUNTERCLOCKWISE:
1416
+ flipOrder = clockwise(placement, true);
1417
+ break;
1418
+ default:
1419
+ flipOrder = options.behavior;
1420
+ }
1421
+
1422
+ flipOrder.forEach((step, index) => {
1423
+ if (placement !== step || flipOrder.length === index + 1) {
1424
+ return data;
1425
+ }
1426
+
1427
+ placement = data.placement.split('-')[0];
1428
+ placementOpposite = getOppositePlacement(placement);
1429
+
1430
+ const popperOffsets = data.offsets.popper;
1431
+ const refOffsets = data.offsets.reference;
1432
+
1433
+ // using floor because the reference offsets may contain decimals we are not going to consider here
1434
+ const floor = Math.floor;
1435
+ const overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);
1436
+
1437
+ const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);
1438
+ const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);
1439
+ const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);
1440
+ const overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);
1441
+
1442
+ const overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;
1443
+
1444
+ // flip the variation if required
1445
+ const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
1446
+ const flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);
1447
+
1448
+ if (overlapsRef || overflowsBoundaries || flippedVariation) {
1449
+ // this boolean to detect any flip loop
1450
+ data.flipped = true;
1451
+
1452
+ if (overlapsRef || overflowsBoundaries) {
1453
+ placement = flipOrder[index + 1];
1454
+ }
1455
+
1456
+ if (flippedVariation) {
1457
+ variation = getOppositeVariation(variation);
1458
+ }
1459
+
1460
+ data.placement = placement + (variation ? '-' + variation : '');
1461
+
1462
+ // this object contains `position`, we want to preserve it along with
1463
+ // any additional property we may add in the future
1464
+ data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));
1465
+
1466
+ data = runModifiers(data.instance.modifiers, data, 'flip');
1467
+ }
1468
+ });
1469
+ return data;
1470
+ }
1471
+
1472
+ /**
1473
+ * @function
1474
+ * @memberof Modifiers
1475
+ * @argument {Object} data - The data object generated by update method
1476
+ * @argument {Object} options - Modifiers configuration and options
1477
+ * @returns {Object} The data object, properly modified
1478
+ */
1479
+ function keepTogether(data) {
1480
+ const { popper, reference } = data.offsets;
1481
+ const placement = data.placement.split('-')[0];
1482
+ const floor = Math.floor;
1483
+ const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;
1484
+ const side = isVertical ? 'right' : 'bottom';
1485
+ const opSide = isVertical ? 'left' : 'top';
1486
+ const measurement = isVertical ? 'width' : 'height';
1487
+
1488
+ if (popper[side] < floor(reference[opSide])) {
1489
+ data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];
1490
+ }
1491
+ if (popper[opSide] > floor(reference[side])) {
1492
+ data.offsets.popper[opSide] = floor(reference[side]);
1493
+ }
1494
+
1495
+ return data;
1496
+ }
1497
+
1498
+ /**
1499
+ * Converts a string containing value + unit into a px value number
1500
+ * @function
1501
+ * @memberof {modifiers~offset}
1502
+ * @private
1503
+ * @argument {String} str - Value + unit string
1504
+ * @argument {String} measurement - `height` or `width`
1505
+ * @argument {Object} popperOffsets
1506
+ * @argument {Object} referenceOffsets
1507
+ * @returns {Number|String}
1508
+ * Value in pixels, or original string if no values were extracted
1509
+ */
1510
+ function toValue(str, measurement, popperOffsets, referenceOffsets) {
1511
+ // separate value from unit
1512
+ const split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/);
1513
+ const value = +split[1];
1514
+ const unit = split[2];
1515
+
1516
+ // If it's not a number it's an operator, I guess
1517
+ if (!value) {
1518
+ return str;
1519
+ }
1520
+
1521
+ if (unit.indexOf('%') === 0) {
1522
+ let element;
1523
+ switch (unit) {
1524
+ case '%p':
1525
+ element = popperOffsets;
1526
+ break;
1527
+ case '%':
1528
+ case '%r':
1529
+ default:
1530
+ element = referenceOffsets;
1531
+ }
1532
+
1533
+ const rect = getClientRect(element);
1534
+ return rect[measurement] / 100 * value;
1535
+ } else if (unit === 'vh' || unit === 'vw') {
1536
+ // if is a vh or vw, we calculate the size based on the viewport
1537
+ let size;
1538
+ if (unit === 'vh') {
1539
+ size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
1540
+ } else {
1541
+ size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
1542
+ }
1543
+ return size / 100 * value;
1544
+ } else {
1545
+ // if is an explicit pixel unit, we get rid of the unit and keep the value
1546
+ // if is an implicit unit, it's px, and we return just the value
1547
+ return value;
1548
+ }
1549
+ }
1550
+
1551
+ /**
1552
+ * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.
1553
+ * @function
1554
+ * @memberof {modifiers~offset}
1555
+ * @private
1556
+ * @argument {String} offset
1557
+ * @argument {Object} popperOffsets
1558
+ * @argument {Object} referenceOffsets
1559
+ * @argument {String} basePlacement
1560
+ * @returns {Array} a two cells array with x and y offsets in numbers
1561
+ */
1562
+ function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {
1563
+ const offsets = [0, 0];
1564
+
1565
+ // Use height if placement is left or right and index is 0 otherwise use width
1566
+ // in this way the first offset will use an axis and the second one
1567
+ // will use the other one
1568
+ const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;
1569
+
1570
+ // Split the offset string to obtain a list of values and operands
1571
+ // The regex addresses values with the plus or minus sign in front (+10, -20, etc)
1572
+ const fragments = offset.split(/(\+|\-)/).map(frag => frag.trim());
1573
+
1574
+ // Detect if the offset string contains a pair of values or a single one
1575
+ // they could be separated by comma or space
1576
+ const divider = fragments.indexOf(find(fragments, frag => frag.search(/,|\s/) !== -1));
1577
+
1578
+ if (fragments[divider] && fragments[divider].indexOf(',') === -1) {
1579
+ console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');
1580
+ }
1581
+
1582
+ // If divider is found, we divide the list of values and operands to divide
1583
+ // them by ofset X and Y.
1584
+ const splitRegex = /\s*,\s*|\s+/;
1585
+ let ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];
1586
+
1587
+ // Convert the values with units to absolute pixels to allow our computations
1588
+ ops = ops.map((op, index) => {
1589
+ // Most of the units rely on the orientation of the popper
1590
+ const measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';
1591
+ let mergeWithPrevious = false;
1592
+ return op
1593
+ // This aggregates any `+` or `-` sign that aren't considered operators
1594
+ // e.g.: 10 + +5 => [10, +, +5]
1595
+ .reduce((a, b) => {
1596
+ if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {
1597
+ a[a.length - 1] = b;
1598
+ mergeWithPrevious = true;
1599
+ return a;
1600
+ } else if (mergeWithPrevious) {
1601
+ a[a.length - 1] += b;
1602
+ mergeWithPrevious = false;
1603
+ return a;
1604
+ } else {
1605
+ return a.concat(b);
1606
+ }
1607
+ }, [])
1608
+ // Here we convert the string values into number values (in px)
1609
+ .map(str => toValue(str, measurement, popperOffsets, referenceOffsets));
1610
+ });
1611
+
1612
+ // Loop trough the offsets arrays and execute the operations
1613
+ ops.forEach((op, index) => {
1614
+ op.forEach((frag, index2) => {
1615
+ if (isNumeric(frag)) {
1616
+ offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);
1617
+ }
1618
+ });
1619
+ });
1620
+ return offsets;
1621
+ }
1622
+
1623
+ /**
1624
+ * @function
1625
+ * @memberof Modifiers
1626
+ * @argument {Object} data - The data object generated by update method
1627
+ * @argument {Object} options - Modifiers configuration and options
1628
+ * @argument {Number|String} options.offset=0
1629
+ * The offset value as described in the modifier description
1630
+ * @returns {Object} The data object, properly modified
1631
+ */
1632
+ function offset(data, { offset }) {
1633
+ const { placement, offsets: { popper, reference } } = data;
1634
+ const basePlacement = placement.split('-')[0];
1635
+
1636
+ let offsets;
1637
+ if (isNumeric(+offset)) {
1638
+ offsets = [+offset, 0];
1639
+ } else {
1640
+ offsets = parseOffset(offset, popper, reference, basePlacement);
1641
+ }
1642
+
1643
+ if (basePlacement === 'left') {
1644
+ popper.top += offsets[0];
1645
+ popper.left -= offsets[1];
1646
+ } else if (basePlacement === 'right') {
1647
+ popper.top += offsets[0];
1648
+ popper.left += offsets[1];
1649
+ } else if (basePlacement === 'top') {
1650
+ popper.left += offsets[0];
1651
+ popper.top -= offsets[1];
1652
+ } else if (basePlacement === 'bottom') {
1653
+ popper.left += offsets[0];
1654
+ popper.top += offsets[1];
1655
+ }
1656
+
1657
+ data.popper = popper;
1658
+ return data;
1659
+ }
1660
+
1661
+ /**
1662
+ * @function
1663
+ * @memberof Modifiers
1664
+ * @argument {Object} data - The data object generated by `update` method
1665
+ * @argument {Object} options - Modifiers configuration and options
1666
+ * @returns {Object} The data object, properly modified
1667
+ */
1668
+ function preventOverflow(data, options) {
1669
+ let boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);
1670
+
1671
+ // If offsetParent is the reference element, we really want to
1672
+ // go one step up and use the next offsetParent as reference to
1673
+ // avoid to make this modifier completely useless and look like broken
1674
+ if (data.instance.reference === boundariesElement) {
1675
+ boundariesElement = getOffsetParent(boundariesElement);
1676
+ }
1677
+
1678
+ // NOTE: DOM access here
1679
+ // resets the popper's position so that the document size can be calculated excluding
1680
+ // the size of the popper element itself
1681
+ const transformProp = getSupportedPropertyName('transform');
1682
+ const popperStyles = data.instance.popper.style; // assignment to help minification
1683
+ const { top, left, [transformProp]: transform } = popperStyles;
1684
+ popperStyles.top = '';
1685
+ popperStyles.left = '';
1686
+ popperStyles[transformProp] = '';
1687
+
1688
+ const boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);
1689
+
1690
+ // NOTE: DOM access here
1691
+ // restores the original style properties after the offsets have been computed
1692
+ popperStyles.top = top;
1693
+ popperStyles.left = left;
1694
+ popperStyles[transformProp] = transform;
1695
+
1696
+ options.boundaries = boundaries;
1697
+
1698
+ const order = options.priority;
1699
+ let popper = data.offsets.popper;
1700
+
1701
+ const check = {
1702
+ primary(placement) {
1703
+ let value = popper[placement];
1704
+ if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {
1705
+ value = Math.max(popper[placement], boundaries[placement]);
1706
+ }
1707
+ return { [placement]: value };
1708
+ },
1709
+ secondary(placement) {
1710
+ const mainSide = placement === 'right' ? 'left' : 'top';
1711
+ let value = popper[mainSide];
1712
+ if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {
1713
+ value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));
1714
+ }
1715
+ return { [mainSide]: value };
1716
+ }
1717
+ };
1718
+
1719
+ order.forEach(placement => {
1720
+ const side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';
1721
+ popper = _extends({}, popper, check[side](placement));
1722
+ });
1723
+
1724
+ data.offsets.popper = popper;
1725
+
1726
+ return data;
1727
+ }
1728
+
1729
+ /**
1730
+ * @function
1731
+ * @memberof Modifiers
1732
+ * @argument {Object} data - The data object generated by `update` method
1733
+ * @argument {Object} options - Modifiers configuration and options
1734
+ * @returns {Object} The data object, properly modified
1735
+ */
1736
+ function shift(data) {
1737
+ const placement = data.placement;
1738
+ const basePlacement = placement.split('-')[0];
1739
+ const shiftvariation = placement.split('-')[1];
1740
+
1741
+ // if shift shiftvariation is specified, run the modifier
1742
+ if (shiftvariation) {
1743
+ const { reference, popper } = data.offsets;
1744
+ const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;
1745
+ const side = isVertical ? 'left' : 'top';
1746
+ const measurement = isVertical ? 'width' : 'height';
1747
+
1748
+ const shiftOffsets = {
1749
+ start: { [side]: reference[side] },
1750
+ end: {
1751
+ [side]: reference[side] + reference[measurement] - popper[measurement]
1752
+ }
1753
+ };
1754
+
1755
+ data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);
1756
+ }
1757
+
1758
+ return data;
1759
+ }
1760
+
1761
+ /**
1762
+ * @function
1763
+ * @memberof Modifiers
1764
+ * @argument {Object} data - The data object generated by update method
1765
+ * @argument {Object} options - Modifiers configuration and options
1766
+ * @returns {Object} The data object, properly modified
1767
+ */
1768
+ function hide(data) {
1769
+ if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {
1770
+ return data;
1771
+ }
1772
+
1773
+ const refRect = data.offsets.reference;
1774
+ const bound = find(data.instance.modifiers, modifier => modifier.name === 'preventOverflow').boundaries;
1775
+
1776
+ if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {
1777
+ // Avoid unnecessary DOM access if visibility hasn't changed
1778
+ if (data.hide === true) {
1779
+ return data;
1780
+ }
1781
+
1782
+ data.hide = true;
1783
+ data.attributes['x-out-of-boundaries'] = '';
1784
+ } else {
1785
+ // Avoid unnecessary DOM access if visibility hasn't changed
1786
+ if (data.hide === false) {
1787
+ return data;
1788
+ }
1789
+
1790
+ data.hide = false;
1791
+ data.attributes['x-out-of-boundaries'] = false;
1792
+ }
1793
+
1794
+ return data;
1795
+ }
1796
+
1797
+ /**
1798
+ * @function
1799
+ * @memberof Modifiers
1800
+ * @argument {Object} data - The data object generated by `update` method
1801
+ * @argument {Object} options - Modifiers configuration and options
1802
+ * @returns {Object} The data object, properly modified
1803
+ */
1804
+ function inner(data) {
1805
+ const placement = data.placement;
1806
+ const basePlacement = placement.split('-')[0];
1807
+ const { popper, reference } = data.offsets;
1808
+ const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;
1809
+
1810
+ const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;
1811
+
1812
+ popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);
1813
+
1814
+ data.placement = getOppositePlacement(placement);
1815
+ data.offsets.popper = getClientRect(popper);
1816
+
1817
+ return data;
1818
+ }
1819
+
1820
+ /**
1821
+ * Modifier function, each modifier can have a function of this type assigned
1822
+ * to its `fn` property.<br />
1823
+ * These functions will be called on each update, this means that you must
1824
+ * make sure they are performant enough to avoid performance bottlenecks.
1825
+ *
1826
+ * @function ModifierFn
1827
+ * @argument {dataObject} data - The data object generated by `update` method
1828
+ * @argument {Object} options - Modifiers configuration and options
1829
+ * @returns {dataObject} The data object, properly modified
1830
+ */
1831
+
1832
+ /**
1833
+ * Modifiers are plugins used to alter the behavior of your poppers.<br />
1834
+ * Popper.js uses a set of 9 modifiers to provide all the basic functionalities
1835
+ * needed by the library.
1836
+ *
1837
+ * Usually you don't want to override the `order`, `fn` and `onLoad` props.
1838
+ * All the other properties are configurations that could be tweaked.
1839
+ * @namespace modifiers
1840
+ */
1841
+ var modifiers = {
1842
+ /**
1843
+ * Modifier used to shift the popper on the start or end of its reference
1844
+ * element.<br />
1845
+ * It will read the variation of the `placement` property.<br />
1846
+ * It can be one either `-end` or `-start`.
1847
+ * @memberof modifiers
1848
+ * @inner
1849
+ */
1850
+ shift: {
1851
+ /** @prop {number} order=100 - Index used to define the order of execution */
1852
+ order: 100,
1853
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
1854
+ enabled: true,
1855
+ /** @prop {ModifierFn} */
1856
+ fn: shift
1857
+ },
1858
+
1859
+ /**
1860
+ * The `offset` modifier can shift your popper on both its axis.
1861
+ *
1862
+ * It accepts the following units:
1863
+ * - `px` or unitless, interpreted as pixels
1864
+ * - `%` or `%r`, percentage relative to the length of the reference element
1865
+ * - `%p`, percentage relative to the length of the popper element
1866
+ * - `vw`, CSS viewport width unit
1867
+ * - `vh`, CSS viewport height unit
1868
+ *
1869
+ * For length is intended the main axis relative to the placement of the popper.<br />
1870
+ * This means that if the placement is `top` or `bottom`, the length will be the
1871
+ * `width`. In case of `left` or `right`, it will be the height.
1872
+ *
1873
+ * You can provide a single value (as `Number` or `String`), or a pair of values
1874
+ * as `String` divided by a comma or one (or more) white spaces.<br />
1875
+ * The latter is a deprecated method because it leads to confusion and will be
1876
+ * removed in v2.<br />
1877
+ * Additionally, it accepts additions and subtractions between different units.
1878
+ * Note that multiplications and divisions aren't supported.
1879
+ *
1880
+ * Valid examples are:
1881
+ * ```
1882
+ * 10
1883
+ * '10%'
1884
+ * '10, 10'
1885
+ * '10%, 10'
1886
+ * '10 + 10%'
1887
+ * '10 - 5vh + 3%'
1888
+ * '-10px + 5vh, 5px - 6%'
1889
+ * ```
1890
+ * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap
1891
+ * > with their reference element, unfortunately, you will have to disable the `flip` modifier.
1892
+ * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)
1893
+ *
1894
+ * @memberof modifiers
1895
+ * @inner
1896
+ */
1897
+ offset: {
1898
+ /** @prop {number} order=200 - Index used to define the order of execution */
1899
+ order: 200,
1900
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
1901
+ enabled: true,
1902
+ /** @prop {ModifierFn} */
1903
+ fn: offset,
1904
+ /** @prop {Number|String} offset=0
1905
+ * The offset value as described in the modifier description
1906
+ */
1907
+ offset: 0
1908
+ },
1909
+
1910
+ /**
1911
+ * Modifier used to prevent the popper from being positioned outside the boundary.
1912
+ *
1913
+ * An scenario exists where the reference itself is not within the boundaries.<br />
1914
+ * We can say it has "escaped the boundaries" — or just "escaped".<br />
1915
+ * In this case we need to decide whether the popper should either:
1916
+ *
1917
+ * - detach from the reference and remain "trapped" in the boundaries, or
1918
+ * - if it should ignore the boundary and "escape with its reference"
1919
+ *
1920
+ * When `escapeWithReference` is set to`true` and reference is completely
1921
+ * outside its boundaries, the popper will overflow (or completely leave)
1922
+ * the boundaries in order to remain attached to the edge of the reference.
1923
+ *
1924
+ * @memberof modifiers
1925
+ * @inner
1926
+ */
1927
+ preventOverflow: {
1928
+ /** @prop {number} order=300 - Index used to define the order of execution */
1929
+ order: 300,
1930
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
1931
+ enabled: true,
1932
+ /** @prop {ModifierFn} */
1933
+ fn: preventOverflow,
1934
+ /**
1935
+ * @prop {Array} [priority=['left','right','top','bottom']]
1936
+ * Popper will try to prevent overflow following these priorities by default,
1937
+ * then, it could overflow on the left and on top of the `boundariesElement`
1938
+ */
1939
+ priority: ['left', 'right', 'top', 'bottom'],
1940
+ /**
1941
+ * @prop {number} padding=5
1942
+ * Amount of pixel used to define a minimum distance between the boundaries
1943
+ * and the popper this makes sure the popper has always a little padding
1944
+ * between the edges of its container
1945
+ */
1946
+ padding: 5,
1947
+ /**
1948
+ * @prop {String|HTMLElement} boundariesElement='scrollParent'
1949
+ * Boundaries used by the modifier, can be `scrollParent`, `window`,
1950
+ * `viewport` or any DOM element.
1951
+ */
1952
+ boundariesElement: 'scrollParent'
1953
+ },
1954
+
1955
+ /**
1956
+ * Modifier used to make sure the reference and its popper stay near eachothers
1957
+ * without leaving any gap between the two. Expecially useful when the arrow is
1958
+ * enabled and you want to assure it to point to its reference element.
1959
+ * It cares only about the first axis, you can still have poppers with margin
1960
+ * between the popper and its reference element.
1961
+ * @memberof modifiers
1962
+ * @inner
1963
+ */
1964
+ keepTogether: {
1965
+ /** @prop {number} order=400 - Index used to define the order of execution */
1966
+ order: 400,
1967
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
1968
+ enabled: true,
1969
+ /** @prop {ModifierFn} */
1970
+ fn: keepTogether
1971
+ },
1972
+
1973
+ /**
1974
+ * This modifier is used to move the `arrowElement` of the popper to make
1975
+ * sure it is positioned between the reference element and its popper element.
1976
+ * It will read the outer size of the `arrowElement` node to detect how many
1977
+ * pixels of conjuction are needed.
1978
+ *
1979
+ * It has no effect if no `arrowElement` is provided.
1980
+ * @memberof modifiers
1981
+ * @inner
1982
+ */
1983
+ arrow: {
1984
+ /** @prop {number} order=500 - Index used to define the order of execution */
1985
+ order: 500,
1986
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
1987
+ enabled: true,
1988
+ /** @prop {ModifierFn} */
1989
+ fn: arrow,
1990
+ /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */
1991
+ element: '[x-arrow]'
1992
+ },
1993
+
1994
+ /**
1995
+ * Modifier used to flip the popper's placement when it starts to overlap its
1996
+ * reference element.
1997
+ *
1998
+ * Requires the `preventOverflow` modifier before it in order to work.
1999
+ *
2000
+ * **NOTE:** this modifier will interrupt the current update cycle and will
2001
+ * restart it if it detects the need to flip the placement.
2002
+ * @memberof modifiers
2003
+ * @inner
2004
+ */
2005
+ flip: {
2006
+ /** @prop {number} order=600 - Index used to define the order of execution */
2007
+ order: 600,
2008
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2009
+ enabled: true,
2010
+ /** @prop {ModifierFn} */
2011
+ fn: flip,
2012
+ /**
2013
+ * @prop {String|Array} behavior='flip'
2014
+ * The behavior used to change the popper's placement. It can be one of
2015
+ * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid
2016
+ * placements (with optional variations).
2017
+ */
2018
+ behavior: 'flip',
2019
+ /**
2020
+ * @prop {number} padding=5
2021
+ * The popper will flip if it hits the edges of the `boundariesElement`
2022
+ */
2023
+ padding: 5,
2024
+ /**
2025
+ * @prop {String|HTMLElement} boundariesElement='viewport'
2026
+ * The element which will define the boundaries of the popper position,
2027
+ * the popper will never be placed outside of the defined boundaries
2028
+ * (except if keepTogether is enabled)
2029
+ */
2030
+ boundariesElement: 'viewport'
2031
+ },
2032
+
2033
+ /**
2034
+ * Modifier used to make the popper flow toward the inner of the reference element.
2035
+ * By default, when this modifier is disabled, the popper will be placed outside
2036
+ * the reference element.
2037
+ * @memberof modifiers
2038
+ * @inner
2039
+ */
2040
+ inner: {
2041
+ /** @prop {number} order=700 - Index used to define the order of execution */
2042
+ order: 700,
2043
+ /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */
2044
+ enabled: false,
2045
+ /** @prop {ModifierFn} */
2046
+ fn: inner
2047
+ },
2048
+
2049
+ /**
2050
+ * Modifier used to hide the popper when its reference element is outside of the
2051
+ * popper boundaries. It will set a `x-out-of-boundaries` attribute which can
2052
+ * be used to hide with a CSS selector the popper when its reference is
2053
+ * out of boundaries.
2054
+ *
2055
+ * Requires the `preventOverflow` modifier before it in order to work.
2056
+ * @memberof modifiers
2057
+ * @inner
2058
+ */
2059
+ hide: {
2060
+ /** @prop {number} order=800 - Index used to define the order of execution */
2061
+ order: 800,
2062
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2063
+ enabled: true,
2064
+ /** @prop {ModifierFn} */
2065
+ fn: hide
2066
+ },
2067
+
2068
+ /**
2069
+ * Computes the style that will be applied to the popper element to gets
2070
+ * properly positioned.
2071
+ *
2072
+ * Note that this modifier will not touch the DOM, it just prepares the styles
2073
+ * so that `applyStyle` modifier can apply it. This separation is useful
2074
+ * in case you need to replace `applyStyle` with a custom implementation.
2075
+ *
2076
+ * This modifier has `850` as `order` value to maintain backward compatibility
2077
+ * with previous versions of Popper.js. Expect the modifiers ordering method
2078
+ * to change in future major versions of the library.
2079
+ *
2080
+ * @memberof modifiers
2081
+ * @inner
2082
+ */
2083
+ computeStyle: {
2084
+ /** @prop {number} order=850 - Index used to define the order of execution */
2085
+ order: 850,
2086
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2087
+ enabled: true,
2088
+ /** @prop {ModifierFn} */
2089
+ fn: computeStyle,
2090
+ /**
2091
+ * @prop {Boolean} gpuAcceleration=true
2092
+ * If true, it uses the CSS 3d transformation to position the popper.
2093
+ * Otherwise, it will use the `top` and `left` properties.
2094
+ */
2095
+ gpuAcceleration: true,
2096
+ /**
2097
+ * @prop {string} [x='bottom']
2098
+ * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.
2099
+ * Change this if your popper should grow in a direction different from `bottom`
2100
+ */
2101
+ x: 'bottom',
2102
+ /**
2103
+ * @prop {string} [x='left']
2104
+ * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.
2105
+ * Change this if your popper should grow in a direction different from `right`
2106
+ */
2107
+ y: 'right'
2108
+ },
2109
+
2110
+ /**
2111
+ * Applies the computed styles to the popper element.
2112
+ *
2113
+ * All the DOM manipulations are limited to this modifier. This is useful in case
2114
+ * you want to integrate Popper.js inside a framework or view library and you
2115
+ * want to delegate all the DOM manipulations to it.
2116
+ *
2117
+ * Note that if you disable this modifier, you must make sure the popper element
2118
+ * has its position set to `absolute` before Popper.js can do its work!
2119
+ *
2120
+ * Just disable this modifier and define you own to achieve the desired effect.
2121
+ *
2122
+ * @memberof modifiers
2123
+ * @inner
2124
+ */
2125
+ applyStyle: {
2126
+ /** @prop {number} order=900 - Index used to define the order of execution */
2127
+ order: 900,
2128
+ /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */
2129
+ enabled: true,
2130
+ /** @prop {ModifierFn} */
2131
+ fn: applyStyle,
2132
+ /** @prop {Function} */
2133
+ onLoad: applyStyleOnLoad,
2134
+ /**
2135
+ * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier
2136
+ * @prop {Boolean} gpuAcceleration=true
2137
+ * If true, it uses the CSS 3d transformation to position the popper.
2138
+ * Otherwise, it will use the `top` and `left` properties.
2139
+ */
2140
+ gpuAcceleration: undefined
2141
+ }
2142
+ };
2143
+
2144
+ /**
2145
+ * The `dataObject` is an object containing all the informations used by Popper.js
2146
+ * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.
2147
+ * @name dataObject
2148
+ * @property {Object} data.instance The Popper.js instance
2149
+ * @property {String} data.placement Placement applied to popper
2150
+ * @property {String} data.originalPlacement Placement originally defined on init
2151
+ * @property {Boolean} data.flipped True if popper has been flipped by flip modifier
2152
+ * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.
2153
+ * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier
2154
+ * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)
2155
+ * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)
2156
+ * @property {Object} data.boundaries Offsets of the popper boundaries
2157
+ * @property {Object} data.offsets The measurements of popper, reference and arrow elements.
2158
+ * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values
2159
+ * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values
2160
+ * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0
2161
+ */
2162
+
2163
+ /**
2164
+ * Default options provided to Popper.js constructor.<br />
2165
+ * These can be overriden using the `options` argument of Popper.js.<br />
2166
+ * To override an option, simply pass as 3rd argument an object with the same
2167
+ * structure of this object, example:
2168
+ * ```
2169
+ * new Popper(ref, pop, {
2170
+ * modifiers: {
2171
+ * preventOverflow: { enabled: false }
2172
+ * }
2173
+ * })
2174
+ * ```
2175
+ * @type {Object}
2176
+ * @static
2177
+ * @memberof Popper
2178
+ */
2179
+ var Defaults = {
2180
+ /**
2181
+ * Popper's placement
2182
+ * @prop {Popper.placements} placement='bottom'
2183
+ */
2184
+ placement: 'bottom',
2185
+
2186
+ /**
2187
+ * Set this to true if you want popper to position it self in 'fixed' mode
2188
+ * @prop {Boolean} positionFixed=false
2189
+ */
2190
+ positionFixed: false,
2191
+
2192
+ /**
2193
+ * Whether events (resize, scroll) are initially enabled
2194
+ * @prop {Boolean} eventsEnabled=true
2195
+ */
2196
+ eventsEnabled: true,
2197
+
2198
+ /**
2199
+ * Set to true if you want to automatically remove the popper when
2200
+ * you call the `destroy` method.
2201
+ * @prop {Boolean} removeOnDestroy=false
2202
+ */
2203
+ removeOnDestroy: false,
2204
+
2205
+ /**
2206
+ * Callback called when the popper is created.<br />
2207
+ * By default, is set to no-op.<br />
2208
+ * Access Popper.js instance with `data.instance`.
2209
+ * @prop {onCreate}
2210
+ */
2211
+ onCreate: () => {},
2212
+
2213
+ /**
2214
+ * Callback called when the popper is updated, this callback is not called
2215
+ * on the initialization/creation of the popper, but only on subsequent
2216
+ * updates.<br />
2217
+ * By default, is set to no-op.<br />
2218
+ * Access Popper.js instance with `data.instance`.
2219
+ * @prop {onUpdate}
2220
+ */
2221
+ onUpdate: () => {},
2222
+
2223
+ /**
2224
+ * List of modifiers used to modify the offsets before they are applied to the popper.
2225
+ * They provide most of the functionalities of Popper.js
2226
+ * @prop {modifiers}
2227
+ */
2228
+ modifiers
2229
+ };
2230
+
2231
+ /**
2232
+ * @callback onCreate
2233
+ * @param {dataObject} data
2234
+ */
2235
+
2236
+ /**
2237
+ * @callback onUpdate
2238
+ * @param {dataObject} data
2239
+ */
2240
+
2241
+ // Utils
2242
+ // Methods
2243
+ class Popper {
2244
+ /**
2245
+ * Create a new Popper.js instance
2246
+ * @class Popper
2247
+ * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper
2248
+ * @param {HTMLElement} popper - The HTML element used as popper.
2249
+ * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)
2250
+ * @return {Object} instance - The generated Popper.js instance
2251
+ */
2252
+ constructor(reference, popper, options = {}) {
2253
+ this.scheduleUpdate = () => requestAnimationFrame(this.update);
2254
+
2255
+ // make update() debounced, so that it only runs at most once-per-tick
2256
+ this.update = debounce(this.update.bind(this));
2257
+
2258
+ // with {} we create a new object with the options inside it
2259
+ this.options = _extends({}, Popper.Defaults, options);
2260
+
2261
+ // init state
2262
+ this.state = {
2263
+ isDestroyed: false,
2264
+ isCreated: false,
2265
+ scrollParents: []
2266
+ };
2267
+
2268
+ // get reference and popper elements (allow jQuery wrappers)
2269
+ this.reference = reference && reference.jquery ? reference[0] : reference;
2270
+ this.popper = popper && popper.jquery ? popper[0] : popper;
2271
+
2272
+ // Deep merge modifiers options
2273
+ this.options.modifiers = {};
2274
+ Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(name => {
2275
+ this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});
2276
+ });
2277
+
2278
+ // Refactoring modifiers' list (Object => Array)
2279
+ this.modifiers = Object.keys(this.options.modifiers).map(name => _extends({
2280
+ name
2281
+ }, this.options.modifiers[name]))
2282
+ // sort the modifiers by order
2283
+ .sort((a, b) => a.order - b.order);
2284
+
2285
+ // modifiers have the ability to execute arbitrary code when Popper.js get inited
2286
+ // such code is executed in the same order of its modifier
2287
+ // they could add new properties to their options configuration
2288
+ // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!
2289
+ this.modifiers.forEach(modifierOptions => {
2290
+ if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {
2291
+ modifierOptions.onLoad(this.reference, this.popper, this.options, modifierOptions, this.state);
2292
+ }
2293
+ });
2294
+
2295
+ // fire the first update to position the popper in the right place
2296
+ this.update();
2297
+
2298
+ const eventsEnabled = this.options.eventsEnabled;
2299
+ if (eventsEnabled) {
2300
+ // setup event listeners, they will take care of update the position in specific situations
2301
+ this.enableEventListeners();
2302
+ }
2303
+
2304
+ this.state.eventsEnabled = eventsEnabled;
2305
+ }
2306
+
2307
+ // We can't use class properties because they don't get listed in the
2308
+ // class prototype and break stuff like Sinon stubs
2309
+ update() {
2310
+ return update.call(this);
2311
+ }
2312
+ destroy() {
2313
+ return destroy.call(this);
2314
+ }
2315
+ enableEventListeners() {
2316
+ return enableEventListeners.call(this);
2317
+ }
2318
+ disableEventListeners() {
2319
+ return disableEventListeners.call(this);
2320
+ }
2321
+
2322
+ /**
2323
+ * Schedule an update, it will run on the next UI update available
2324
+ * @method scheduleUpdate
2325
+ * @memberof Popper
2326
+ */
2327
+
2328
+
2329
+ /**
2330
+ * Collection of utilities useful when writing custom modifiers.
2331
+ * Starting from version 1.7, this method is available only if you
2332
+ * include `popper-utils.js` before `popper.js`.
2333
+ *
2334
+ * **DEPRECATION**: This way to access PopperUtils is deprecated
2335
+ * and will be removed in v2! Use the PopperUtils module directly instead.
2336
+ * Due to the high instability of the methods contained in Utils, we can't
2337
+ * guarantee them to follow semver. Use them at your own risk!
2338
+ * @static
2339
+ * @private
2340
+ * @type {Object}
2341
+ * @deprecated since version 1.8
2342
+ * @member Utils
2343
+ * @memberof Popper
2344
+ */
2345
+ }
2346
+
2347
+ /**
2348
+ * The `referenceObject` is an object that provides an interface compatible with Popper.js
2349
+ * and lets you use it as replacement of a real DOM node.<br />
2350
+ * You can use this method to position a popper relatively to a set of coordinates
2351
+ * in case you don't have a DOM node to use as reference.
2352
+ *
2353
+ * ```
2354
+ * new Popper(referenceObject, popperNode);
2355
+ * ```
2356
+ *
2357
+ * NB: This feature isn't supported in Internet Explorer 10
2358
+ * @name referenceObject
2359
+ * @property {Function} data.getBoundingClientRect
2360
+ * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.
2361
+ * @property {number} data.clientWidth
2362
+ * An ES6 getter that will return the width of the virtual reference element.
2363
+ * @property {number} data.clientHeight
2364
+ * An ES6 getter that will return the height of the virtual reference element.
2365
+ */
2366
+
2367
+ Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;
2368
+ Popper.placements = placements;
2369
+ Popper.Defaults = Defaults;
2370
+
2371
+ export default Popper;
2372
+ //# sourceMappingURL=popper.js.map