phcthemes_admin_panel_pack 0.21.0 → 0.22.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 (234) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/common/backstretch/jquery.backstretch.js +1602 -0
  3. data/app/assets/javascripts/common/bootstrap-datepicker/bootstrap-datepicker.js +2039 -0
  4. data/app/assets/javascripts/common/bootstrap-markdown/bootstrap-markdown.js +1390 -0
  5. data/app/assets/javascripts/common/bootstrap-select/bootstrap-select.js +3139 -0
  6. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-am_ET.js +46 -0
  7. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-am_ET.js.map +1 -0
  8. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-am_ET.min.js +8 -0
  9. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ar_AR.js +51 -0
  10. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ar_AR.js.map +1 -0
  11. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ar_AR.min.js +8 -0
  12. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-bg_BG.js +46 -0
  13. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-bg_BG.js.map +1 -0
  14. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-bg_BG.min.js +8 -0
  15. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-cs_CZ.js +39 -0
  16. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-cs_CZ.js.map +1 -0
  17. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-cs_CZ.min.js +8 -0
  18. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-da_DK.js +46 -0
  19. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-da_DK.js.map +1 -0
  20. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-da_DK.min.js +8 -0
  21. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-de_DE.js +46 -0
  22. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-de_DE.js.map +1 -0
  23. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-de_DE.min.js +8 -0
  24. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-en_US.js +46 -0
  25. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-en_US.js.map +1 -0
  26. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-en_US.min.js +8 -0
  27. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-es_CL.js +39 -0
  28. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-es_CL.js.map +1 -0
  29. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-es_CL.min.js +8 -0
  30. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-es_ES.js +39 -0
  31. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-es_ES.js.map +1 -0
  32. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-es_ES.min.js +8 -0
  33. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-et_EE.js +46 -0
  34. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-et_EE.js.map +1 -0
  35. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-et_EE.min.js +8 -0
  36. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-eu.js +39 -0
  37. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-eu.js.map +1 -0
  38. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-eu.min.js +8 -0
  39. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-fa_IR.js +39 -0
  40. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-fa_IR.js.map +1 -0
  41. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-fa_IR.min.js +8 -0
  42. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-fi_FI.js +46 -0
  43. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-fi_FI.js.map +1 -0
  44. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-fi_FI.min.js +8 -0
  45. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-fr_FR.js +46 -0
  46. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-fr_FR.js.map +1 -0
  47. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-fr_FR.min.js +8 -0
  48. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-hr_HR.js +46 -0
  49. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-hr_HR.js.map +1 -0
  50. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-hr_HR.min.js +8 -0
  51. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-hu_HU.js +46 -0
  52. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-hu_HU.js.map +1 -0
  53. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-hu_HU.min.js +8 -0
  54. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-id_ID.js +39 -0
  55. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-id_ID.js.map +1 -0
  56. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-id_ID.min.js +8 -0
  57. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-it_IT.js +41 -0
  58. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-it_IT.js.map +1 -0
  59. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-it_IT.min.js +8 -0
  60. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ja_JP.js +39 -0
  61. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ja_JP.js.map +1 -0
  62. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ja_JP.min.js +8 -0
  63. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-kh_KM.js +46 -0
  64. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-kh_KM.js.map +1 -0
  65. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-kh_KM.min.js +8 -0
  66. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ko_KR.js +46 -0
  67. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ko_KR.js.map +1 -0
  68. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ko_KR.min.js +8 -0
  69. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-lt_LT.js +46 -0
  70. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-lt_LT.js.map +1 -0
  71. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-lt_LT.min.js +8 -0
  72. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-lv_LV.js +46 -0
  73. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-lv_LV.js.map +1 -0
  74. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-lv_LV.min.js +8 -0
  75. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-nb_NO.js +46 -0
  76. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-nb_NO.js.map +1 -0
  77. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-nb_NO.min.js +8 -0
  78. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-nl_NL.js +39 -0
  79. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-nl_NL.js.map +1 -0
  80. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-nl_NL.min.js +8 -0
  81. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-pl_PL.js +39 -0
  82. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-pl_PL.js.map +1 -0
  83. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-pl_PL.min.js +8 -0
  84. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-pt_BR.js +39 -0
  85. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-pt_BR.js.map +1 -0
  86. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-pt_BR.min.js +8 -0
  87. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-pt_PT.js +39 -0
  88. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-pt_PT.js.map +1 -0
  89. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-pt_PT.min.js +8 -0
  90. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ro_RO.js +40 -0
  91. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ro_RO.js.map +1 -0
  92. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ro_RO.min.js +8 -0
  93. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ru_RU.js +40 -0
  94. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ru_RU.js.map +1 -0
  95. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ru_RU.min.js +8 -0
  96. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-sk_SK.js +39 -0
  97. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-sk_SK.js.map +1 -0
  98. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-sk_SK.min.js +8 -0
  99. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-sl_SI.js +44 -0
  100. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-sl_SI.js.map +1 -0
  101. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-sl_SI.min.js +8 -0
  102. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-sv_SE.js +46 -0
  103. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-sv_SE.js.map +1 -0
  104. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-sv_SE.min.js +8 -0
  105. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-tr_TR.js +46 -0
  106. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-tr_TR.js.map +1 -0
  107. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-tr_TR.min.js +8 -0
  108. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ua_UA.js +39 -0
  109. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ua_UA.js.map +1 -0
  110. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-ua_UA.min.js +8 -0
  111. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-vi_VN.js +46 -0
  112. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-vi_VN.js.map +1 -0
  113. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-vi_VN.min.js +8 -0
  114. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-zh_CN.js +39 -0
  115. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-zh_CN.js.map +1 -0
  116. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-zh_CN.min.js +8 -0
  117. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-zh_TW.js +39 -0
  118. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-zh_TW.js.map +1 -0
  119. data/app/assets/javascripts/common/bootstrap-select/i18n/defaults-zh_TW.min.js +8 -0
  120. data/app/assets/javascripts/common/bootstrap/bootstrap.bundle.js +7013 -0
  121. data/app/assets/javascripts/common/bootstrap/bootstrap.three.js +2377 -0
  122. data/app/assets/javascripts/common/chartjs/chart.js +14680 -0
  123. data/app/assets/javascripts/common/custom/custom.js +0 -0
  124. data/app/assets/javascripts/common/datatables/datatables.js +15310 -0
  125. data/app/assets/javascripts/common/daterangepicker/daterangepicker.js +1565 -0
  126. data/app/assets/javascripts/common/fastclick/fastclick.js +841 -0
  127. data/app/assets/javascripts/common/flexslider/jquery.flexslider.js +1252 -0
  128. data/app/assets/javascripts/common/greenstock/greensock.js +36 -0
  129. data/app/assets/javascripts/common/icheck/icheck.js +509 -0
  130. data/app/assets/javascripts/common/imagesloaded/imagesloaded.pkgd.js +497 -0
  131. data/app/assets/javascripts/common/isotope/isotope.pkgd.js +3563 -0
  132. data/app/assets/javascripts/common/jquery-countdown/jquery.countdown.js +246 -0
  133. data/app/assets/javascripts/common/jquery-filterizer/jquery.filterizr.min.js +1 -0
  134. data/app/assets/javascripts/common/jquery-jvectormap/jquery-jvectormap.js +44 -0
  135. data/app/assets/javascripts/common/jquery-placeholder/jquery.placeholder.js +281 -0
  136. data/app/assets/javascripts/common/jquery-slimscroll/jquery.slimscroll.js +474 -0
  137. data/app/assets/javascripts/common/jquery-sparkline/jquery.sparkline.js +3054 -0
  138. data/app/assets/javascripts/common/jquery-ui/jquery-ui.js +18706 -0
  139. data/app/assets/javascripts/common/jquery-validation/jquery.validate.js +1650 -0
  140. data/app/assets/javascripts/common/jquery/jquery-3.4.1.js +10598 -0
  141. data/app/assets/javascripts/common/jqvmap/jquery.vmap.js +1281 -0
  142. data/app/assets/javascripts/common/jqvmap/jquery.vmap.min.js +10 -0
  143. data/app/assets/javascripts/common/jqvmap/maps/continents/jquery.vmap.africa.js +2 -0
  144. data/app/assets/javascripts/common/jqvmap/maps/continents/jquery.vmap.asia.js +2 -0
  145. data/app/assets/javascripts/common/jqvmap/maps/continents/jquery.vmap.australia.js +2 -0
  146. data/app/assets/javascripts/common/jqvmap/maps/continents/jquery.vmap.europe.js +2 -0
  147. data/app/assets/javascripts/common/jqvmap/maps/continents/jquery.vmap.north-america.js +2 -0
  148. data/app/assets/javascripts/common/jqvmap/maps/continents/jquery.vmap.south-america.js +2 -0
  149. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.algeria.js +2 -0
  150. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.argentina.js +1 -0
  151. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.brazil.js +2 -0
  152. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.canada.js +2 -0
  153. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.europe.js +2 -0
  154. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.france.js +1 -0
  155. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.germany.js +2 -0
  156. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.greece.js +1 -0
  157. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.iran.js +6 -0
  158. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.iraq.js +1 -0
  159. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.russia.js +2 -0
  160. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.tunisia.js +2 -0
  161. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.turkey.js +11 -0
  162. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.usa.js +2 -0
  163. data/app/assets/javascripts/common/jqvmap/maps/jquery.vmap.world.js +2 -0
  164. data/app/assets/javascripts/common/js-cookie/js.cookie.js +165 -0
  165. data/app/assets/javascripts/common/layerslider/layerslider.kreaturamedia.jquery.js +13 -0
  166. data/app/assets/javascripts/common/layerslider/layerslider.origami.js +13 -0
  167. data/app/assets/javascripts/common/layerslider/layerslider.timeline.js +13 -0
  168. data/app/assets/javascripts/common/layerslider/layerslider.transitions.js +13 -0
  169. data/app/assets/javascripts/common/leaflet/leaflet.js +5 -0
  170. data/app/assets/javascripts/common/magnific-popup/jquery.magnific-popup.js +1860 -0
  171. data/app/assets/javascripts/common/mapbox/mapbox.js +51 -0
  172. data/app/assets/javascripts/common/metismenu/metisMenu.js +340 -0
  173. data/app/assets/javascripts/common/moderizer/modernizr.js +11 -0
  174. data/app/assets/javascripts/common/owl-carousel/owl.carousel.js +3448 -0
  175. data/app/assets/javascripts/common/pace/pace.js +935 -0
  176. data/app/assets/javascripts/common/paroller/jquery.paroller.js +228 -0
  177. data/app/assets/javascripts/common/particlejs/particles.js +1541 -0
  178. data/app/assets/javascripts/common/perfect-scrollbar/perfect-scrollbar.common.js +1318 -0
  179. data/app/assets/javascripts/common/perfect-scrollbar/perfect-scrollbar.esm.js +1316 -0
  180. data/app/assets/javascripts/common/perfect-scrollbar/perfect-scrollbar.js +1324 -0
  181. data/app/assets/javascripts/common/plyr/plyr.js +9137 -0
  182. data/app/assets/javascripts/common/rangeslider/rangeslider.js +498 -0
  183. data/app/assets/javascripts/common/retina/retina.js +100 -0
  184. data/app/assets/javascripts/common/rev-slider/extensions/revolution.extension.actions.js +386 -0
  185. data/app/assets/javascripts/common/rev-slider/extensions/revolution.extension.carousel.js +365 -0
  186. data/app/assets/javascripts/common/rev-slider/extensions/revolution.extension.kenburn.js +199 -0
  187. data/app/assets/javascripts/common/rev-slider/extensions/revolution.extension.layeranimation.js +2524 -0
  188. data/app/assets/javascripts/common/rev-slider/extensions/revolution.extension.migration.js +260 -0
  189. data/app/assets/javascripts/common/rev-slider/extensions/revolution.extension.navigation.js +1156 -0
  190. data/app/assets/javascripts/common/rev-slider/extensions/revolution.extension.parallax.js +465 -0
  191. data/app/assets/javascripts/common/rev-slider/extensions/revolution.extension.slideanims.js +1447 -0
  192. data/app/assets/javascripts/common/rev-slider/extensions/revolution.extension.video.js +1464 -0
  193. data/app/assets/javascripts/common/rev-slider/jquery.themepunch.revolution.js +3286 -0
  194. data/app/assets/javascripts/common/rev-slider/jquery.themepunch.tools.min.js +8710 -0
  195. data/app/assets/javascripts/common/scrollup/jquery.scrollUp.js +168 -0
  196. data/app/assets/javascripts/common/select2/select2.full.js +6597 -0
  197. data/app/assets/javascripts/common/selectbox/jquery.selectBox.js +1092 -0
  198. data/app/assets/javascripts/common/smooth-scroll/SmoothScroll.js +788 -0
  199. data/app/assets/javascripts/common/spectrum/spectrum.js +2323 -0
  200. data/app/assets/javascripts/common/stepper/jquery.fs.stepper.js +339 -0
  201. data/app/assets/javascripts/common/swiper/swiper.js +8124 -0
  202. data/app/assets/javascripts/common/toaster/toastr.js +476 -0
  203. data/app/assets/javascripts/common/typed/typed.js +1045 -0
  204. data/app/assets/javascripts/common/visable/jquery.visible.js +68 -0
  205. data/app/assets/javascripts/common/waypoints/jquery.waypoints.js +662 -0
  206. data/app/assets/javascripts/phcthemes_admin_panel_pack_adminlte.js +12 -0
  207. data/app/assets/javascripts/phcthemes_admin_panel_pack_basic.js +5 -0
  208. data/app/assets/javascripts/phcthemes_admin_panel_pack_boomerang.js +0 -0
  209. data/app/assets/javascripts/phcthemes_admin_panel_pack_coloradmin.js +10 -0
  210. data/app/assets/javascripts/phcthemes_admin_panel_pack_inspinia.js +10 -0
  211. data/app/assets/javascripts/phcthemes_admin_panel_pack_metronic.js +4 -0
  212. data/app/assets/javascripts/phcthemes_admin_panel_pack_quilpro.js +5 -0
  213. data/app/assets/javascripts/phcthemes_admin_panel_pack_starlight.js +5 -0
  214. data/app/assets/javascripts/themes/adminlte/custom/custom.js +0 -0
  215. data/app/assets/javascripts/themes/adminlte/theme/adminlte.js +1141 -0
  216. data/app/assets/javascripts/themes/boomerang/custom/custom.1.js +0 -0
  217. data/app/assets/javascripts/themes/boomerang/custom/custom.js +0 -0
  218. data/app/assets/javascripts/themes/coloradmin/theme/apps.js +1650 -0
  219. data/app/assets/javascripts/themes/coloradmin/theme/default.js +152 -0
  220. data/app/assets/javascripts/themes/inspinia/custom/custom.js +0 -0
  221. data/app/assets/javascripts/themes/inspinia/theme/inspinia.js +279 -0
  222. data/app/assets/javascripts/themes/metronic/theme/scripts.bundle.js +9916 -0
  223. data/app/assets/javascripts/themes/metronic/theme/vendors.bundle.js +91352 -0
  224. data/app/assets/stylesheets/phcthemes_admin_panel_pack_adminlte.scss +13 -0
  225. data/app/assets/stylesheets/phcthemes_admin_panel_pack_basic.scss +6 -0
  226. data/app/assets/stylesheets/phcthemes_admin_panel_pack_boomerang.scss +24 -0
  227. data/app/assets/stylesheets/phcthemes_admin_panel_pack_coloradmin.scss +15 -0
  228. data/app/assets/stylesheets/phcthemes_admin_panel_pack_inspinia.scss +15 -0
  229. data/app/assets/stylesheets/phcthemes_admin_panel_pack_metronic.scss +7 -0
  230. data/app/assets/stylesheets/phcthemes_admin_panel_pack_quilpro.scss +16 -0
  231. data/app/assets/stylesheets/phcthemes_admin_panel_pack_starlight.scss +12 -0
  232. data/lib/phcthemes_admin_panel_pack/engine.rb +7 -5
  233. data/lib/phcthemes_admin_panel_pack/version.rb +1 -1
  234. metadata +234 -18
@@ -0,0 +1,788 @@
1
+ //
2
+ // SmoothScroll for websites v1.4.9 (Balazs Galambosi)
3
+ // http://www.smoothscroll.net/
4
+ //
5
+ // Licensed under the terms of the MIT license.
6
+ //
7
+ // You may use it in your theme if you credit me.
8
+ // It is also free to use on any individual website.
9
+ //
10
+ // Exception:
11
+ // The only restriction is to not publish any
12
+ // extension for browsers or native application
13
+ // without getting a written permission first.
14
+ //
15
+
16
+ (function () {
17
+
18
+ // Scroll Variables (tweakable)
19
+ var defaultOptions = {
20
+
21
+ // Scrolling Core
22
+ frameRate : 150, // [Hz]
23
+ animationTime : 400, // [ms]
24
+ stepSize : 100, // [px]
25
+
26
+ // Pulse (less tweakable)
27
+ // ratio of "tail" to "acceleration"
28
+ pulseAlgorithm : true,
29
+ pulseScale : 4,
30
+ pulseNormalize : 1,
31
+
32
+ // Acceleration
33
+ accelerationDelta : 50, // 50
34
+ accelerationMax : 3, // 3
35
+
36
+ // Keyboard Settings
37
+ keyboardSupport : true, // option
38
+ arrowScroll : 50, // [px]
39
+
40
+ // Other
41
+ fixedBackground : true,
42
+ excluded : ''
43
+ };
44
+
45
+ var options = defaultOptions;
46
+
47
+
48
+ // Other Variables
49
+ var isExcluded = false;
50
+ var isFrame = false;
51
+ var direction = { x: 0, y: 0 };
52
+ var initDone = false;
53
+ var root = document.documentElement;
54
+ var activeElement;
55
+ var observer;
56
+ var refreshSize;
57
+ var deltaBuffer = [];
58
+ var deltaBufferTimer;
59
+ var isMac = /^Mac/.test(navigator.platform);
60
+
61
+ var key = { left: 37, up: 38, right: 39, down: 40, spacebar: 32,
62
+ pageup: 33, pagedown: 34, end: 35, home: 36 };
63
+ var arrowKeys = { 37: 1, 38: 1, 39: 1, 40: 1 };
64
+
65
+ /***********************************************
66
+ * INITIALIZE
67
+ ***********************************************/
68
+
69
+ /**
70
+ * Tests if smooth scrolling is allowed. Shuts down everything if not.
71
+ */
72
+ function initTest() {
73
+ if (options.keyboardSupport) {
74
+ addEvent('keydown', keydown);
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Sets up scrolls array, determines if frames are involved.
80
+ */
81
+ function init() {
82
+
83
+ if (initDone || !document.body) return;
84
+
85
+ initDone = true;
86
+
87
+ var body = document.body;
88
+ var html = document.documentElement;
89
+ var windowHeight = window.innerHeight;
90
+ var scrollHeight = body.scrollHeight;
91
+
92
+ // check compat mode for root element
93
+ root = (document.compatMode.indexOf('CSS') >= 0) ? html : body;
94
+ activeElement = body;
95
+
96
+ initTest();
97
+
98
+ // Checks if this script is running in a frame
99
+ if (top != self) {
100
+ isFrame = true;
101
+ }
102
+
103
+ /**
104
+ * Safari 10 fixed it, Chrome fixed it in v45:
105
+ * This fixes a bug where the areas left and right to
106
+ * the content does not trigger the onmousewheel event
107
+ * on some pages. e.g.: html, body { height: 100% }
108
+ */
109
+ else if (isOldSafari &&
110
+ scrollHeight > windowHeight &&
111
+ (body.offsetHeight <= windowHeight ||
112
+ html.offsetHeight <= windowHeight)) {
113
+
114
+ var fullPageElem = document.createElement('div');
115
+ fullPageElem.style.cssText = 'position:absolute; z-index:-10000; ' +
116
+ 'top:0; left:0; right:0; height:' +
117
+ root.scrollHeight + 'px';
118
+ document.body.appendChild(fullPageElem);
119
+
120
+ // DOM changed (throttled) to fix height
121
+ var pendingRefresh;
122
+ refreshSize = function () {
123
+ if (pendingRefresh) return; // could also be: clearTimeout(pendingRefresh);
124
+ pendingRefresh = setTimeout(function () {
125
+ if (isExcluded) return; // could be running after cleanup
126
+ fullPageElem.style.height = '0';
127
+ fullPageElem.style.height = root.scrollHeight + 'px';
128
+ pendingRefresh = null;
129
+ }, 500); // act rarely to stay fast
130
+ };
131
+
132
+ setTimeout(refreshSize, 10);
133
+
134
+ addEvent('resize', refreshSize);
135
+
136
+ // TODO: attributeFilter?
137
+ var config = {
138
+ attributes: true,
139
+ childList: true,
140
+ characterData: false
141
+ // subtree: true
142
+ };
143
+
144
+ observer = new MutationObserver(refreshSize);
145
+ observer.observe(body, config);
146
+
147
+ if (root.offsetHeight <= windowHeight) {
148
+ var clearfix = document.createElement('div');
149
+ clearfix.style.clear = 'both';
150
+ body.appendChild(clearfix);
151
+ }
152
+ }
153
+
154
+ // disable fixed background
155
+ if (!options.fixedBackground && !isExcluded) {
156
+ body.style.backgroundAttachment = 'scroll';
157
+ html.style.backgroundAttachment = 'scroll';
158
+ }
159
+ }
160
+
161
+ /**
162
+ * Removes event listeners and other traces left on the page.
163
+ */
164
+ function cleanup() {
165
+ observer && observer.disconnect();
166
+ removeEvent(wheelEvent, wheel);
167
+ removeEvent('mousedown', mousedown);
168
+ removeEvent('keydown', keydown);
169
+ removeEvent('resize', refreshSize);
170
+ removeEvent('load', init);
171
+ }
172
+
173
+
174
+ /************************************************
175
+ * SCROLLING
176
+ ************************************************/
177
+
178
+ var que = [];
179
+ var pending = false;
180
+ var lastScroll = Date.now();
181
+
182
+ /**
183
+ * Pushes scroll actions to the scrolling queue.
184
+ */
185
+ function scrollArray(elem, left, top) {
186
+
187
+ directionCheck(left, top);
188
+
189
+ if (options.accelerationMax != 1) {
190
+ var now = Date.now();
191
+ var elapsed = now - lastScroll;
192
+ if (elapsed < options.accelerationDelta) {
193
+ var factor = (1 + (50 / elapsed)) / 2;
194
+ if (factor > 1) {
195
+ factor = Math.min(factor, options.accelerationMax);
196
+ left *= factor;
197
+ top *= factor;
198
+ }
199
+ }
200
+ lastScroll = Date.now();
201
+ }
202
+
203
+ // push a scroll command
204
+ que.push({
205
+ x: left,
206
+ y: top,
207
+ lastX: (left < 0) ? 0.99 : -0.99,
208
+ lastY: (top < 0) ? 0.99 : -0.99,
209
+ start: Date.now()
210
+ });
211
+
212
+ // don't act if there's a pending queue
213
+ if (pending) {
214
+ return;
215
+ }
216
+
217
+ var scrollRoot = getScrollRoot();
218
+ var isWindowScroll = (elem === scrollRoot || elem === document.body);
219
+
220
+ // if we haven't already fixed the behavior,
221
+ // and it needs fixing for this sesh
222
+ if (elem.$scrollBehavior == null && isScrollBehaviorSmooth(elem)) {
223
+ elem.$scrollBehavior = elem.style.scrollBehavior;
224
+ elem.style.scrollBehavior = 'auto';
225
+ }
226
+
227
+ var step = function (time) {
228
+
229
+ var now = Date.now();
230
+ var scrollX = 0;
231
+ var scrollY = 0;
232
+
233
+ for (var i = 0; i < que.length; i++) {
234
+
235
+ var item = que[i];
236
+ var elapsed = now - item.start;
237
+ var finished = (elapsed >= options.animationTime);
238
+
239
+ // scroll position: [0, 1]
240
+ var position = (finished) ? 1 : elapsed / options.animationTime;
241
+
242
+ // easing [optional]
243
+ if (options.pulseAlgorithm) {
244
+ position = pulse(position);
245
+ }
246
+
247
+ // only need the difference
248
+ var x = (item.x * position - item.lastX) >> 0;
249
+ var y = (item.y * position - item.lastY) >> 0;
250
+
251
+ // add this to the total scrolling
252
+ scrollX += x;
253
+ scrollY += y;
254
+
255
+ // update last values
256
+ item.lastX += x;
257
+ item.lastY += y;
258
+
259
+ // delete and step back if it's over
260
+ if (finished) {
261
+ que.splice(i, 1); i--;
262
+ }
263
+ }
264
+
265
+ // scroll left and top
266
+ if (isWindowScroll) {
267
+ window.scrollBy(scrollX, scrollY);
268
+ }
269
+ else {
270
+ if (scrollX) elem.scrollLeft += scrollX;
271
+ if (scrollY) elem.scrollTop += scrollY;
272
+ }
273
+
274
+ // clean up if there's nothing left to do
275
+ if (!left && !top) {
276
+ que = [];
277
+ }
278
+
279
+ if (que.length) {
280
+ requestFrame(step, elem, (1000 / options.frameRate + 1));
281
+ } else {
282
+ pending = false;
283
+ // restore default behavior at the end of scrolling sesh
284
+ if (elem.$scrollBehavior != null) {
285
+ elem.style.scrollBehavior = elem.$scrollBehavior;
286
+ elem.$scrollBehavior = null;
287
+ }
288
+ }
289
+ };
290
+
291
+ // start a new queue of actions
292
+ requestFrame(step, elem, 0);
293
+ pending = true;
294
+ }
295
+
296
+
297
+ /***********************************************
298
+ * EVENTS
299
+ ***********************************************/
300
+
301
+ /**
302
+ * Mouse wheel handler.
303
+ * @param {Object} event
304
+ */
305
+ function wheel(event) {
306
+
307
+ if (!initDone) {
308
+ init();
309
+ }
310
+
311
+ var target = event.target;
312
+
313
+ // leave early if default action is prevented
314
+ // or it's a zooming event with CTRL
315
+ if (event.defaultPrevented || event.ctrlKey) {
316
+ return true;
317
+ }
318
+
319
+ // leave embedded content alone (flash & pdf)
320
+ if (isNodeName(activeElement, 'embed') ||
321
+ (isNodeName(target, 'embed') && /\.pdf/i.test(target.src)) ||
322
+ isNodeName(activeElement, 'object') ||
323
+ target.shadowRoot) {
324
+ return true;
325
+ }
326
+
327
+ var deltaX = -event.wheelDeltaX || event.deltaX || 0;
328
+ var deltaY = -event.wheelDeltaY || event.deltaY || 0;
329
+
330
+ if (isMac) {
331
+ if (event.wheelDeltaX && isDivisible(event.wheelDeltaX, 120)) {
332
+ deltaX = -120 * (event.wheelDeltaX / Math.abs(event.wheelDeltaX));
333
+ }
334
+ if (event.wheelDeltaY && isDivisible(event.wheelDeltaY, 120)) {
335
+ deltaY = -120 * (event.wheelDeltaY / Math.abs(event.wheelDeltaY));
336
+ }
337
+ }
338
+
339
+ // use wheelDelta if deltaX/Y is not available
340
+ if (!deltaX && !deltaY) {
341
+ deltaY = -event.wheelDelta || 0;
342
+ }
343
+
344
+ // line based scrolling (Firefox mostly)
345
+ if (event.deltaMode === 1) {
346
+ deltaX *= 40;
347
+ deltaY *= 40;
348
+ }
349
+
350
+ var overflowing = overflowingAncestor(target);
351
+
352
+ // nothing to do if there's no element that's scrollable
353
+ if (!overflowing) {
354
+ // except Chrome iframes seem to eat wheel events, which we need to
355
+ // propagate up, if the iframe has nothing overflowing to scroll
356
+ if (isFrame && isChrome) {
357
+ // change target to iframe element itself for the parent frame
358
+ Object.defineProperty(event, "target", {value: window.frameElement});
359
+ return parent.wheel(event);
360
+ }
361
+ return true;
362
+ }
363
+
364
+ // check if it's a touchpad scroll that should be ignored
365
+ if (isTouchpad(deltaY)) {
366
+ return true;
367
+ }
368
+
369
+ // scale by step size
370
+ // delta is 120 most of the time
371
+ // synaptics seems to send 1 sometimes
372
+ if (Math.abs(deltaX) > 1.2) {
373
+ deltaX *= options.stepSize / 120;
374
+ }
375
+ if (Math.abs(deltaY) > 1.2) {
376
+ deltaY *= options.stepSize / 120;
377
+ }
378
+
379
+ scrollArray(overflowing, deltaX, deltaY);
380
+ event.preventDefault();
381
+ scheduleClearCache();
382
+ }
383
+
384
+ /**
385
+ * Keydown event handler.
386
+ * @param {Object} event
387
+ */
388
+ function keydown(event) {
389
+
390
+ var target = event.target;
391
+ var modifier = event.ctrlKey || event.altKey || event.metaKey ||
392
+ (event.shiftKey && event.keyCode !== key.spacebar);
393
+
394
+ // our own tracked active element could've been removed from the DOM
395
+ if (!document.body.contains(activeElement)) {
396
+ activeElement = document.activeElement;
397
+ }
398
+
399
+ // do nothing if user is editing text
400
+ // or using a modifier key (except shift)
401
+ // or in a dropdown
402
+ // or inside interactive elements
403
+ var inputNodeNames = /^(textarea|select|embed|object)$/i;
404
+ var buttonTypes = /^(button|submit|radio|checkbox|file|color|image)$/i;
405
+ if ( event.defaultPrevented ||
406
+ inputNodeNames.test(target.nodeName) ||
407
+ isNodeName(target, 'input') && !buttonTypes.test(target.type) ||
408
+ isNodeName(activeElement, 'video') ||
409
+ isInsideYoutubeVideo(event) ||
410
+ target.isContentEditable ||
411
+ modifier ) {
412
+ return true;
413
+ }
414
+
415
+ // [spacebar] should trigger button press, leave it alone
416
+ if ((isNodeName(target, 'button') ||
417
+ isNodeName(target, 'input') && buttonTypes.test(target.type)) &&
418
+ event.keyCode === key.spacebar) {
419
+ return true;
420
+ }
421
+
422
+ // [arrwow keys] on radio buttons should be left alone
423
+ if (isNodeName(target, 'input') && target.type == 'radio' &&
424
+ arrowKeys[event.keyCode]) {
425
+ return true;
426
+ }
427
+
428
+ var shift, x = 0, y = 0;
429
+ var overflowing = overflowingAncestor(activeElement);
430
+
431
+ if (!overflowing) {
432
+ // Chrome iframes seem to eat key events, which we need to
433
+ // propagate up, if the iframe has nothing overflowing to scroll
434
+ return (isFrame && isChrome) ? parent.keydown(event) : true;
435
+ }
436
+
437
+ var clientHeight = overflowing.clientHeight;
438
+
439
+ if (overflowing == document.body) {
440
+ clientHeight = window.innerHeight;
441
+ }
442
+
443
+ switch (event.keyCode) {
444
+ case key.up:
445
+ y = -options.arrowScroll;
446
+ break;
447
+ case key.down:
448
+ y = options.arrowScroll;
449
+ break;
450
+ case key.spacebar: // (+ shift)
451
+ shift = event.shiftKey ? 1 : -1;
452
+ y = -shift * clientHeight * 0.9;
453
+ break;
454
+ case key.pageup:
455
+ y = -clientHeight * 0.9;
456
+ break;
457
+ case key.pagedown:
458
+ y = clientHeight * 0.9;
459
+ break;
460
+ case key.home:
461
+ if (overflowing == document.body && document.scrollingElement)
462
+ overflowing = document.scrollingElement;
463
+ y = -overflowing.scrollTop;
464
+ break;
465
+ case key.end:
466
+ var scroll = overflowing.scrollHeight - overflowing.scrollTop;
467
+ var scrollRemaining = scroll - clientHeight;
468
+ y = (scrollRemaining > 0) ? scrollRemaining + 10 : 0;
469
+ break;
470
+ case key.left:
471
+ x = -options.arrowScroll;
472
+ break;
473
+ case key.right:
474
+ x = options.arrowScroll;
475
+ break;
476
+ default:
477
+ return true; // a key we don't care about
478
+ }
479
+
480
+ scrollArray(overflowing, x, y);
481
+ event.preventDefault();
482
+ scheduleClearCache();
483
+ }
484
+
485
+ /**
486
+ * Mousedown event only for updating activeElement
487
+ */
488
+ function mousedown(event) {
489
+ activeElement = event.target;
490
+ }
491
+
492
+
493
+ /***********************************************
494
+ * OVERFLOW
495
+ ***********************************************/
496
+
497
+ var uniqueID = (function () {
498
+ var i = 0;
499
+ return function (el) {
500
+ return el.uniqueID || (el.uniqueID = i++);
501
+ };
502
+ })();
503
+
504
+ var cacheX = {}; // cleared out after a scrolling session
505
+ var cacheY = {}; // cleared out after a scrolling session
506
+ var clearCacheTimer;
507
+ var smoothBehaviorForElement = {};
508
+
509
+ //setInterval(function () { cache = {}; }, 10 * 1000);
510
+
511
+ function scheduleClearCache() {
512
+ clearTimeout(clearCacheTimer);
513
+ clearCacheTimer = setInterval(function () {
514
+ cacheX = cacheY = smoothBehaviorForElement = {};
515
+ }, 1*1000);
516
+ }
517
+
518
+ function setCache(elems, overflowing, x) {
519
+ var cache = x ? cacheX : cacheY;
520
+ for (var i = elems.length; i--;)
521
+ cache[uniqueID(elems[i])] = overflowing;
522
+ return overflowing;
523
+ }
524
+
525
+ function getCache(el, x) {
526
+ return (x ? cacheX : cacheY)[uniqueID(el)];
527
+ }
528
+
529
+ // (body) (root)
530
+ // | hidden | visible | scroll | auto |
531
+ // hidden | no | no | YES | YES |
532
+ // visible | no | YES | YES | YES |
533
+ // scroll | no | YES | YES | YES |
534
+ // auto | no | YES | YES | YES |
535
+
536
+ function overflowingAncestor(el) {
537
+ var elems = [];
538
+ var body = document.body;
539
+ var rootScrollHeight = root.scrollHeight;
540
+ do {
541
+ var cached = getCache(el, false);
542
+ if (cached) {
543
+ return setCache(elems, cached);
544
+ }
545
+ elems.push(el);
546
+ if (rootScrollHeight === el.scrollHeight) {
547
+ var topOverflowsNotHidden = overflowNotHidden(root) && overflowNotHidden(body);
548
+ var isOverflowCSS = topOverflowsNotHidden || overflowAutoOrScroll(root);
549
+ if (isFrame && isContentOverflowing(root) ||
550
+ !isFrame && isOverflowCSS) {
551
+ return setCache(elems, getScrollRoot());
552
+ }
553
+ } else if (isContentOverflowing(el) && overflowAutoOrScroll(el)) {
554
+ return setCache(elems, el);
555
+ }
556
+ } while ((el = el.parentElement));
557
+ }
558
+
559
+ function isContentOverflowing(el) {
560
+ return (el.clientHeight + 10 < el.scrollHeight);
561
+ }
562
+
563
+ // typically for <body> and <html>
564
+ function overflowNotHidden(el) {
565
+ var overflow = getComputedStyle(el, '').getPropertyValue('overflow-y');
566
+ return (overflow !== 'hidden');
567
+ }
568
+
569
+ // for all other elements
570
+ function overflowAutoOrScroll(el) {
571
+ var overflow = getComputedStyle(el, '').getPropertyValue('overflow-y');
572
+ return (overflow === 'scroll' || overflow === 'auto');
573
+ }
574
+
575
+ // for all other elements
576
+ function isScrollBehaviorSmooth(el) {
577
+ var id = uniqueID(el);
578
+ if (smoothBehaviorForElement[id] == null) {
579
+ var scrollBehavior = getComputedStyle(el, '')['scroll-behavior'];
580
+ smoothBehaviorForElement[id] = ('smooth' == scrollBehavior);
581
+ }
582
+ return smoothBehaviorForElement[id];
583
+ }
584
+
585
+
586
+ /***********************************************
587
+ * HELPERS
588
+ ***********************************************/
589
+
590
+ function addEvent(type, fn, arg) {
591
+ window.addEventListener(type, fn, arg || false);
592
+ }
593
+
594
+ function removeEvent(type, fn, arg) {
595
+ window.removeEventListener(type, fn, arg || false);
596
+ }
597
+
598
+ function isNodeName(el, tag) {
599
+ return el && (el.nodeName||'').toLowerCase() === tag.toLowerCase();
600
+ }
601
+
602
+ function directionCheck(x, y) {
603
+ x = (x > 0) ? 1 : -1;
604
+ y = (y > 0) ? 1 : -1;
605
+ if (direction.x !== x || direction.y !== y) {
606
+ direction.x = x;
607
+ direction.y = y;
608
+ que = [];
609
+ lastScroll = 0;
610
+ }
611
+ }
612
+
613
+ if (window.localStorage && localStorage.SS_deltaBuffer) {
614
+ try { // #46 Safari throws in private browsing for localStorage
615
+ deltaBuffer = localStorage.SS_deltaBuffer.split(',');
616
+ } catch (e) { }
617
+ }
618
+
619
+ function isTouchpad(deltaY) {
620
+ if (!deltaY) return;
621
+ if (!deltaBuffer.length) {
622
+ deltaBuffer = [deltaY, deltaY, deltaY];
623
+ }
624
+ deltaY = Math.abs(deltaY);
625
+ deltaBuffer.push(deltaY);
626
+ deltaBuffer.shift();
627
+ clearTimeout(deltaBufferTimer);
628
+ deltaBufferTimer = setTimeout(function () {
629
+ try { // #46 Safari throws in private browsing for localStorage
630
+ localStorage.SS_deltaBuffer = deltaBuffer.join(',');
631
+ } catch (e) { }
632
+ }, 1000);
633
+ var dpiScaledWheelDelta = deltaY > 120 && allDeltasDivisableBy(deltaY); // win64
634
+ return !allDeltasDivisableBy(120) && !allDeltasDivisableBy(100) && !dpiScaledWheelDelta;
635
+ }
636
+
637
+ function isDivisible(n, divisor) {
638
+ return (Math.floor(n / divisor) == n / divisor);
639
+ }
640
+
641
+ function allDeltasDivisableBy(divisor) {
642
+ return (isDivisible(deltaBuffer[0], divisor) &&
643
+ isDivisible(deltaBuffer[1], divisor) &&
644
+ isDivisible(deltaBuffer[2], divisor));
645
+ }
646
+
647
+ function isInsideYoutubeVideo(event) {
648
+ var elem = event.target;
649
+ var isControl = false;
650
+ if (document.URL.indexOf ('www.youtube.com/watch') != -1) {
651
+ do {
652
+ isControl = (elem.classList &&
653
+ elem.classList.contains('html5-video-controls'));
654
+ if (isControl) break;
655
+ } while ((elem = elem.parentNode));
656
+ }
657
+ return isControl;
658
+ }
659
+
660
+ var requestFrame = (function () {
661
+ return (window.requestAnimationFrame ||
662
+ window.webkitRequestAnimationFrame ||
663
+ window.mozRequestAnimationFrame ||
664
+ function (callback, element, delay) {
665
+ window.setTimeout(callback, delay || (1000/60));
666
+ });
667
+ })();
668
+
669
+ var MutationObserver = (window.MutationObserver ||
670
+ window.WebKitMutationObserver ||
671
+ window.MozMutationObserver);
672
+
673
+ var getScrollRoot = (function() {
674
+ var SCROLL_ROOT = document.scrollingElement;
675
+ return function() {
676
+ if (!SCROLL_ROOT) {
677
+ var dummy = document.createElement('div');
678
+ dummy.style.cssText = 'height:10000px;width:1px;';
679
+ document.body.appendChild(dummy);
680
+ var bodyScrollTop = document.body.scrollTop;
681
+ var docElScrollTop = document.documentElement.scrollTop;
682
+ window.scrollBy(0, 3);
683
+ if (document.body.scrollTop != bodyScrollTop)
684
+ (SCROLL_ROOT = document.body);
685
+ else
686
+ (SCROLL_ROOT = document.documentElement);
687
+ window.scrollBy(0, -3);
688
+ document.body.removeChild(dummy);
689
+ }
690
+ return SCROLL_ROOT;
691
+ };
692
+ })();
693
+
694
+
695
+ /***********************************************
696
+ * PULSE (by Michael Herf)
697
+ ***********************************************/
698
+
699
+ /**
700
+ * Viscous fluid with a pulse for part and decay for the rest.
701
+ * - Applies a fixed force over an interval (a damped acceleration), and
702
+ * - Lets the exponential bleed away the velocity over a longer interval
703
+ * - Michael Herf, http://stereopsis.com/stopping/
704
+ */
705
+ function pulse_(x) {
706
+ var val, start, expx;
707
+ // test
708
+ x = x * options.pulseScale;
709
+ if (x < 1) { // acceleartion
710
+ val = x - (1 - Math.exp(-x));
711
+ } else { // tail
712
+ // the previous animation ended here:
713
+ start = Math.exp(-1);
714
+ // simple viscous drag
715
+ x -= 1;
716
+ expx = 1 - Math.exp(-x);
717
+ val = start + (expx * (1 - start));
718
+ }
719
+ return val * options.pulseNormalize;
720
+ }
721
+
722
+ function pulse(x) {
723
+ if (x >= 1) return 1;
724
+ if (x <= 0) return 0;
725
+
726
+ if (options.pulseNormalize == 1) {
727
+ options.pulseNormalize /= pulse_(1);
728
+ }
729
+ return pulse_(x);
730
+ }
731
+
732
+
733
+ /***********************************************
734
+ * FIRST RUN
735
+ ***********************************************/
736
+
737
+ var userAgent = window.navigator.userAgent;
738
+ var isEdge = /Edge/.test(userAgent); // thank you MS
739
+ var isChrome = /chrome/i.test(userAgent) && !isEdge;
740
+ var isSafari = /safari/i.test(userAgent) && !isEdge;
741
+ var isMobile = /mobile/i.test(userAgent);
742
+ var isIEWin7 = /Windows NT 6.1/i.test(userAgent) && /rv:11/i.test(userAgent);
743
+ var isOldSafari = isSafari && (/Version\/8/i.test(userAgent) || /Version\/9/i.test(userAgent));
744
+ var isEnabledForBrowser = (isChrome || isSafari || isIEWin7) && !isMobile;
745
+
746
+ var supportsPassive = false;
747
+ try {
748
+ window.addEventListener("test", null, Object.defineProperty({}, 'passive', {
749
+ get: function () {
750
+ supportsPassive = true;
751
+ }
752
+ }));
753
+ } catch(e) {}
754
+
755
+ var wheelOpt = supportsPassive ? { passive: false } : false;
756
+ var wheelEvent = 'onwheel' in document.createElement('div') ? 'wheel' : 'mousewheel';
757
+
758
+ if (wheelEvent && isEnabledForBrowser) {
759
+ addEvent(wheelEvent, wheel, wheelOpt);
760
+ addEvent('mousedown', mousedown);
761
+ addEvent('load', init);
762
+ }
763
+
764
+
765
+ /***********************************************
766
+ * PUBLIC INTERFACE
767
+ ***********************************************/
768
+
769
+ function SmoothScroll(optionsToSet) {
770
+ for (var key in optionsToSet)
771
+ if (defaultOptions.hasOwnProperty(key))
772
+ options[key] = optionsToSet[key];
773
+ }
774
+ SmoothScroll.destroy = cleanup;
775
+
776
+ if (window.SmoothScrollOptions) // async API
777
+ SmoothScroll(window.SmoothScrollOptions);
778
+
779
+ if (typeof define === 'function' && define.amd)
780
+ define(function() {
781
+ return SmoothScroll;
782
+ });
783
+ else if ('object' == typeof exports)
784
+ module.exports = SmoothScroll;
785
+ else
786
+ window.SmoothScroll = SmoothScroll;
787
+
788
+ })();