jekyll-rubin-collab-theme 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (389) hide show
  1. checksums.yaml +4 -4
  2. data/_third_party/mdb-ui-kit/.gitignore +1 -0
  3. data/_third_party/mdb-ui-kit/LICENSE +21 -0
  4. data/_third_party/mdb-ui-kit/README.md +551 -0
  5. data/_third_party/mdb-ui-kit/README.txt +8 -0
  6. data/_third_party/mdb-ui-kit/css/mdb.dark.min.css +23 -0
  7. data/_third_party/mdb-ui-kit/css/mdb.dark.min.css.map +1 -0
  8. data/_third_party/mdb-ui-kit/css/mdb.dark.rtl.min.css +10 -0
  9. data/_third_party/mdb-ui-kit/css/mdb.dark.rtl.min.css.map +1 -0
  10. data/_third_party/mdb-ui-kit/css/mdb.min.css +40 -0
  11. data/_third_party/mdb-ui-kit/css/mdb.min.css.map +1 -0
  12. data/_third_party/mdb-ui-kit/css/mdb.rtl.min.css +10 -0
  13. data/_third_party/mdb-ui-kit/css/mdb.rtl.min.css.map +1 -0
  14. data/_third_party/mdb-ui-kit/img/mdb-favicon.ico +0 -0
  15. data/_third_party/mdb-ui-kit/index.html +52 -0
  16. data/_third_party/mdb-ui-kit/js/mdb.min.js +20 -0
  17. data/_third_party/mdb-ui-kit/js/mdb.min.js.map +1 -0
  18. data/_third_party/mdb-ui-kit/license.txt +153 -0
  19. data/_third_party/mdb-ui-kit/package.json +9 -0
  20. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/alert.js +112 -0
  21. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/alert.js.map +1 -0
  22. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/base-component.js +113 -0
  23. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/base-component.js.map +1 -0
  24. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/button.js +91 -0
  25. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/button.js.map +1 -0
  26. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/carousel.js +515 -0
  27. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/carousel.js.map +1 -0
  28. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/collapse.js +341 -0
  29. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/collapse.js.map +1 -0
  30. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/data.js +73 -0
  31. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/data.js.map +1 -0
  32. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/event-handler.js +346 -0
  33. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/event-handler.js.map +1 -0
  34. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/manipulator.js +89 -0
  35. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/manipulator.js.map +1 -0
  36. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/selector-engine.js +101 -0
  37. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dom/selector-engine.js.map +1 -0
  38. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dropdown.js +556 -0
  39. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/dropdown.js.map +1 -0
  40. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/modal.js +452 -0
  41. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/modal.js.map +1 -0
  42. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/offcanvas.js +344 -0
  43. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/offcanvas.js.map +1 -0
  44. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/popover.js +108 -0
  45. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/popover.js.map +1 -0
  46. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/scrollspy.js +340 -0
  47. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/scrollspy.js.map +1 -0
  48. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/tab.js +355 -0
  49. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/tab.js.map +1 -0
  50. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/toast.js +256 -0
  51. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/toast.js.map +1 -0
  52. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/tooltip.js +749 -0
  53. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/tooltip.js.map +1 -0
  54. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/backdrop.js +169 -0
  55. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/backdrop.js.map +1 -0
  56. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/component-functions.js +59 -0
  57. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/component-functions.js.map +1 -0
  58. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/config.js +90 -0
  59. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/config.js.map +1 -0
  60. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/focustrap.js +139 -0
  61. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/focustrap.js.map +1 -0
  62. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/index.js +350 -0
  63. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/index.js.map +1 -0
  64. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/sanitizer.js +142 -0
  65. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/sanitizer.js.map +1 -0
  66. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/scrollbar.js +157 -0
  67. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/scrollbar.js.map +1 -0
  68. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/swipe.js +173 -0
  69. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/swipe.js.map +1 -0
  70. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/template-factory.js +193 -0
  71. data/_third_party/mdb-ui-kit/src/js/bootstrap/dist/util/template-factory.js.map +1 -0
  72. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/alert.js +87 -0
  73. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/base-component.js +87 -0
  74. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/button.js +72 -0
  75. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/carousel.js +482 -0
  76. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/collapse.js +308 -0
  77. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dom/data.js +59 -0
  78. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dom/event-handler.js +333 -0
  79. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dom/manipulator.js +73 -0
  80. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dom/selector-engine.js +85 -0
  81. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/dropdown.js +477 -0
  82. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/modal.js +379 -0
  83. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/offcanvas.js +278 -0
  84. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/popover.js +98 -0
  85. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/scrollspy.js +312 -0
  86. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/tab.js +320 -0
  87. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/toast.js +225 -0
  88. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/tooltip.js +657 -0
  89. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/backdrop.js +149 -0
  90. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/component-functions.js +32 -0
  91. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/config.js +66 -0
  92. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/focustrap.js +119 -0
  93. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/index.js +342 -0
  94. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/sanitizer.js +122 -0
  95. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/scrollbar.js +126 -0
  96. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/swipe.js +148 -0
  97. data/_third_party/mdb-ui-kit/src/js/bootstrap/mdb-prefix/util/template-factory.js +162 -0
  98. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/alert.js +87 -0
  99. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/base-component.js +87 -0
  100. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/button.js +72 -0
  101. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/carousel.js +482 -0
  102. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/collapse.js +308 -0
  103. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dom/data.js +59 -0
  104. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dom/event-handler.js +333 -0
  105. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dom/manipulator.js +73 -0
  106. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dom/selector-engine.js +85 -0
  107. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/dropdown.js +477 -0
  108. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/modal.js +377 -0
  109. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/offcanvas.js +278 -0
  110. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/popover.js +98 -0
  111. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/scrollspy.js +301 -0
  112. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/tab.js +320 -0
  113. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/toast.js +225 -0
  114. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/tooltip.js +657 -0
  115. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/backdrop.js +149 -0
  116. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/component-functions.js +32 -0
  117. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/config.js +66 -0
  118. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/focustrap.js +119 -0
  119. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/index.js +342 -0
  120. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/sanitizer.js +122 -0
  121. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/scrollbar.js +126 -0
  122. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/swipe.js +148 -0
  123. data/_third_party/mdb-ui-kit/src/js/bootstrap/src/util/template-factory.js +162 -0
  124. data/_third_party/mdb-ui-kit/src/js/free/alert.js +95 -0
  125. data/_third_party/mdb-ui-kit/src/js/free/button.js +258 -0
  126. data/_third_party/mdb-ui-kit/src/js/free/carousel.js +107 -0
  127. data/_third_party/mdb-ui-kit/src/js/free/collapse.js +115 -0
  128. data/_third_party/mdb-ui-kit/src/js/free/dropdown.js +277 -0
  129. data/_third_party/mdb-ui-kit/src/js/free/input.js +443 -0
  130. data/_third_party/mdb-ui-kit/src/js/free/modal.js +129 -0
  131. data/_third_party/mdb-ui-kit/src/js/free/popover.js +126 -0
  132. data/_third_party/mdb-ui-kit/src/js/free/range.js +162 -0
  133. data/_third_party/mdb-ui-kit/src/js/free/ripple.js +463 -0
  134. data/_third_party/mdb-ui-kit/src/js/free/scrollspy.js +166 -0
  135. data/_third_party/mdb-ui-kit/src/js/free/tab.js +170 -0
  136. data/_third_party/mdb-ui-kit/src/js/free/toast.js +116 -0
  137. data/_third_party/mdb-ui-kit/src/js/free/tooltip.js +126 -0
  138. data/_third_party/mdb-ui-kit/src/js/mdb/dom/data.js +67 -0
  139. data/_third_party/mdb-ui-kit/src/js/mdb/dom/event-handler.js +355 -0
  140. data/_third_party/mdb-ui-kit/src/js/mdb/dom/manipulator.js +118 -0
  141. data/_third_party/mdb-ui-kit/src/js/mdb/dom/selector-engine.js +84 -0
  142. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/click-rail.js +30 -0
  143. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/drag-thumb.js +98 -0
  144. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/keyboard.js +147 -0
  145. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/mouse-wheel.js +158 -0
  146. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/handlers/touch.js +212 -0
  147. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/index.js +236 -0
  148. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/class-names.js +47 -0
  149. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/css.js +16 -0
  150. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/dom.js +36 -0
  151. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/event-manager.js +78 -0
  152. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/lib/util.js +39 -0
  153. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/process-scroll-diff.js +65 -0
  154. data/_third_party/mdb-ui-kit/src/js/mdb/perfect-scrollbar/update-geometry.js +154 -0
  155. data/_third_party/mdb-ui-kit/src/js/mdb/util/focusTrap.js +97 -0
  156. data/_third_party/mdb-ui-kit/src/js/mdb/util/index.js +242 -0
  157. data/_third_party/mdb-ui-kit/src/js/mdb/util/keycodes.js +40 -0
  158. data/_third_party/mdb-ui-kit/src/js/mdb/util/sanitizer.js +130 -0
  159. data/_third_party/mdb-ui-kit/src/js/mdb/util/scrollbar.js +83 -0
  160. data/_third_party/mdb-ui-kit/src/js/mdb/util/stack.js +105 -0
  161. data/_third_party/mdb-ui-kit/src/js/mdb/util/touch/index.js +47 -0
  162. data/_third_party/mdb-ui-kit/src/js/mdb/util/touch/swipe.js +81 -0
  163. data/_third_party/mdb-ui-kit/src/js/mdb/util/touch/touchUtil.js +24 -0
  164. data/_third_party/mdb-ui-kit/src/js/mdb.free.js +36 -0
  165. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_accordion.scss +153 -0
  166. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_alert.scss +69 -0
  167. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_badge.scss +38 -0
  168. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_breadcrumb.scss +43 -0
  169. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_button-group.scss +143 -0
  170. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_buttons.scss +214 -0
  171. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_card.scss +248 -0
  172. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_carousel.scss +231 -0
  173. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_close.scss +40 -0
  174. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_containers.scss +41 -0
  175. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_dropdown.scss +247 -0
  176. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_forms.scss +9 -0
  177. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_functions.scss +355 -0
  178. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_grid.scss +32 -0
  179. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_helpers.scss +10 -0
  180. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_images.scss +41 -0
  181. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_list-group.scss +198 -0
  182. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_maps.scss +54 -0
  183. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_mixins.scss +43 -0
  184. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_modal.scss +247 -0
  185. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_nav.scss +173 -0
  186. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_navbar.scss +274 -0
  187. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_offcanvas.scss +153 -0
  188. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_pagination.scss +118 -0
  189. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_placeholders.scss +56 -0
  190. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_popover.scss +210 -0
  191. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_progress.scss +61 -0
  192. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_reboot.scss +590 -0
  193. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_root.scss +73 -0
  194. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_spinners.scss +88 -0
  195. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_tables.scss +161 -0
  196. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_toasts.scss +78 -0
  197. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_tooltip.scss +126 -0
  198. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_transitions.scss +27 -0
  199. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_type.scss +104 -0
  200. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_utilities.scss +747 -0
  201. data/_third_party/mdb-ui-kit/src/scss/bootstrap/_variables.scss +1631 -0
  202. data/_third_party/mdb-ui-kit/src/scss/bootstrap/bootstrap-grid.scss +64 -0
  203. data/_third_party/mdb-ui-kit/src/scss/bootstrap/bootstrap-reboot.scss +9 -0
  204. data/_third_party/mdb-ui-kit/src/scss/bootstrap/bootstrap-utilities.scss +18 -0
  205. data/_third_party/mdb-ui-kit/src/scss/bootstrap/bootstrap.scss +50 -0
  206. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_floating-labels.scss +75 -0
  207. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-check.scss +176 -0
  208. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-control.scss +198 -0
  209. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-range.scss +95 -0
  210. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-select.scss +75 -0
  211. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_form-text.scss +11 -0
  212. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_input-group.scss +135 -0
  213. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_labels.scss +36 -0
  214. data/_third_party/mdb-ui-kit/src/scss/bootstrap/forms/_validation.scss +12 -0
  215. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_clearfix.scss +3 -0
  216. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_color-bg.scss +11 -0
  217. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_colored-links.scss +16 -0
  218. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_position.scss +36 -0
  219. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_ratio.scss +26 -0
  220. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_stacks.scss +15 -0
  221. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_stretched-link.scss +15 -0
  222. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_text-truncation.scss +7 -0
  223. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_visually-hidden.scss +8 -0
  224. data/_third_party/mdb-ui-kit/src/scss/bootstrap/helpers/_vr.scss +8 -0
  225. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_alert.scss +15 -0
  226. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_backdrop.scss +18 -0
  227. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_banner.scss +8 -0
  228. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_border-radius.scss +77 -0
  229. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_box-shadow.scss +18 -0
  230. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_breakpoints.scss +131 -0
  231. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_buttons.scss +90 -0
  232. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_caret.scss +64 -0
  233. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_clearfix.scss +9 -0
  234. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_color-scheme.scss +7 -0
  235. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_container.scss +15 -0
  236. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_deprecate.scss +10 -0
  237. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_forms.scss +153 -0
  238. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_gradients.scss +80 -0
  239. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_grid.scss +169 -0
  240. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_image.scss +16 -0
  241. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_list-group.scss +24 -0
  242. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_lists.scss +7 -0
  243. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_pagination.scss +10 -0
  244. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_reset-text.scss +17 -0
  245. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_resize.scss +6 -0
  246. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_table-variants.scss +24 -0
  247. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_text-truncate.scss +8 -0
  248. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_transition.scss +26 -0
  249. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_utilities.scss +112 -0
  250. data/_third_party/mdb-ui-kit/src/scss/bootstrap/mixins/_visually-hidden.scss +29 -0
  251. data/_third_party/mdb-ui-kit/src/scss/bootstrap/utilities/_api.scss +49 -0
  252. data/_third_party/mdb-ui-kit/src/scss/bootstrap/vendor/_rfs.scss +351 -0
  253. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_accordion.scss +153 -0
  254. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_alert.scss +69 -0
  255. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_badge.scss +38 -0
  256. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_breadcrumb.scss +43 -0
  257. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_button-group.scss +143 -0
  258. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_buttons.scss +214 -0
  259. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_card.scss +248 -0
  260. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_carousel.scss +231 -0
  261. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_close.scss +40 -0
  262. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_containers.scss +41 -0
  263. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_dropdown.scss +247 -0
  264. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_forms.scss +9 -0
  265. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_functions.scss +355 -0
  266. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_grid.scss +32 -0
  267. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_helpers.scss +10 -0
  268. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_images.scss +41 -0
  269. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_list-group.scss +198 -0
  270. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_maps.scss +54 -0
  271. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_mixins.scss +43 -0
  272. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_modal.scss +247 -0
  273. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_nav.scss +173 -0
  274. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_navbar.scss +274 -0
  275. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_offcanvas.scss +153 -0
  276. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_pagination.scss +118 -0
  277. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_placeholders.scss +56 -0
  278. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_popover.scss +210 -0
  279. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_progress.scss +61 -0
  280. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_reboot.scss +590 -0
  281. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_root.scss +73 -0
  282. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_spinners.scss +88 -0
  283. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_tables.scss +161 -0
  284. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_toasts.scss +78 -0
  285. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_tooltip.scss +126 -0
  286. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_transitions.scss +27 -0
  287. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_type.scss +104 -0
  288. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_utilities.scss +747 -0
  289. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/_variables.scss +1631 -0
  290. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/bootstrap-grid.scss +64 -0
  291. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/bootstrap-reboot.scss +9 -0
  292. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/bootstrap-utilities.scss +18 -0
  293. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/bootstrap.scss +50 -0
  294. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_floating-labels.scss +75 -0
  295. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-check.scss +176 -0
  296. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-control.scss +198 -0
  297. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-range.scss +95 -0
  298. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-select.scss +75 -0
  299. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_form-text.scss +11 -0
  300. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_input-group.scss +135 -0
  301. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_labels.scss +36 -0
  302. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/forms/_validation.scss +12 -0
  303. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_clearfix.scss +3 -0
  304. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_color-bg.scss +11 -0
  305. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_colored-links.scss +16 -0
  306. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_position.scss +36 -0
  307. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_ratio.scss +26 -0
  308. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_stacks.scss +15 -0
  309. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_stretched-link.scss +15 -0
  310. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_text-truncation.scss +7 -0
  311. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_visually-hidden.scss +8 -0
  312. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/helpers/_vr.scss +8 -0
  313. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_alert.scss +15 -0
  314. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_backdrop.scss +18 -0
  315. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_banner.scss +8 -0
  316. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_border-radius.scss +77 -0
  317. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_box-shadow.scss +18 -0
  318. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_breakpoints.scss +131 -0
  319. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_buttons.scss +90 -0
  320. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_caret.scss +64 -0
  321. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_clearfix.scss +9 -0
  322. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_color-scheme.scss +7 -0
  323. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_container.scss +15 -0
  324. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_deprecate.scss +10 -0
  325. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_forms.scss +153 -0
  326. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_gradients.scss +80 -0
  327. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_grid.scss +169 -0
  328. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_image.scss +15 -0
  329. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_list-group.scss +24 -0
  330. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_lists.scss +7 -0
  331. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_pagination.scss +10 -0
  332. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_reset-text.scss +17 -0
  333. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_resize.scss +6 -0
  334. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_table-variants.scss +24 -0
  335. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_text-truncate.scss +8 -0
  336. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_transition.scss +26 -0
  337. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_utilities.scss +112 -0
  338. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/mixins/_visually-hidden.scss +29 -0
  339. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/utilities/_api.scss +49 -0
  340. data/_third_party/mdb-ui-kit/src/scss/bootstrap-rtl-fix/vendor/_rfs.scss +351 -0
  341. data/_third_party/mdb-ui-kit/src/scss/custom/_styles.scss +1 -0
  342. data/_third_party/mdb-ui-kit/src/scss/custom/_variables.scss +1 -0
  343. data/_third_party/mdb-ui-kit/src/scss/free/_accordion.scss +52 -0
  344. data/_third_party/mdb-ui-kit/src/scss/free/_alert.scss +39 -0
  345. data/_third_party/mdb-ui-kit/src/scss/free/_badge.scss +51 -0
  346. data/_third_party/mdb-ui-kit/src/scss/free/_breadcrumb.scss +35 -0
  347. data/_third_party/mdb-ui-kit/src/scss/free/_button-group.scss +100 -0
  348. data/_third_party/mdb-ui-kit/src/scss/free/_buttons.scss +609 -0
  349. data/_third_party/mdb-ui-kit/src/scss/free/_card.scss +53 -0
  350. data/_third_party/mdb-ui-kit/src/scss/free/_carousel.scss +31 -0
  351. data/_third_party/mdb-ui-kit/src/scss/free/_close.scss +10 -0
  352. data/_third_party/mdb-ui-kit/src/scss/free/_colors.scss +11 -0
  353. data/_third_party/mdb-ui-kit/src/scss/free/_deprecated.scss +32 -0
  354. data/_third_party/mdb-ui-kit/src/scss/free/_dropdown.scss +148 -0
  355. data/_third_party/mdb-ui-kit/src/scss/free/_flag.scss +1046 -0
  356. data/_third_party/mdb-ui-kit/src/scss/free/_functions.scss +18 -0
  357. data/_third_party/mdb-ui-kit/src/scss/free/_images.scss +87 -0
  358. data/_third_party/mdb-ui-kit/src/scss/free/_list-group.scss +68 -0
  359. data/_third_party/mdb-ui-kit/src/scss/free/_mixins.scss +8 -0
  360. data/_third_party/mdb-ui-kit/src/scss/free/_modal.scss +12 -0
  361. data/_third_party/mdb-ui-kit/src/scss/free/_nav.scss +100 -0
  362. data/_third_party/mdb-ui-kit/src/scss/free/_navbar.scss +50 -0
  363. data/_third_party/mdb-ui-kit/src/scss/free/_pagination.scss +99 -0
  364. data/_third_party/mdb-ui-kit/src/scss/free/_popover.scss +18 -0
  365. data/_third_party/mdb-ui-kit/src/scss/free/_progress.scss +6 -0
  366. data/_third_party/mdb-ui-kit/src/scss/free/_range.scss +58 -0
  367. data/_third_party/mdb-ui-kit/src/scss/free/_reboot.scss +66 -0
  368. data/_third_party/mdb-ui-kit/src/scss/free/_ripple.scss +51 -0
  369. data/_third_party/mdb-ui-kit/src/scss/free/_root.scss +8 -0
  370. data/_third_party/mdb-ui-kit/src/scss/free/_scrollspy.scss +49 -0
  371. data/_third_party/mdb-ui-kit/src/scss/free/_shadows.scss +1 -0
  372. data/_third_party/mdb-ui-kit/src/scss/free/_tables.scss +45 -0
  373. data/_third_party/mdb-ui-kit/src/scss/free/_toasts.scss +52 -0
  374. data/_third_party/mdb-ui-kit/src/scss/free/_tooltip.scss +17 -0
  375. data/_third_party/mdb-ui-kit/src/scss/free/_type.scss +27 -0
  376. data/_third_party/mdb-ui-kit/src/scss/free/_utilities.scss +216 -0
  377. data/_third_party/mdb-ui-kit/src/scss/free/_variables.scss +1875 -0
  378. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-check.scss +262 -0
  379. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-control.scss +244 -0
  380. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-file.scss +12 -0
  381. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-range.scss +48 -0
  382. data/_third_party/mdb-ui-kit/src/scss/free/forms/_form-select.scss +19 -0
  383. data/_third_party/mdb-ui-kit/src/scss/free/forms/_input-group.scss +127 -0
  384. data/_third_party/mdb-ui-kit/src/scss/free/forms/_validation.scss +266 -0
  385. data/_third_party/mdb-ui-kit/src/scss/free/mixins/_buttons.scss +60 -0
  386. data/_third_party/mdb-ui-kit/src/scss/free/mixins/_ripple.scss +28 -0
  387. data/_third_party/mdb-ui-kit/src/scss/free/mixins/_table-variants.scss +9 -0
  388. data/_third_party/mdb-ui-kit/src/scss/mdb.free.scss +103 -0
  389. metadata +388 -1
@@ -0,0 +1,463 @@
1
+ import { element, getjQuery, typeCheckConfig, onDOMContentLoaded } from '../mdb/util/index';
2
+ import Data from '../mdb/dom/data';
3
+ import EventHandler from '../mdb/dom/event-handler';
4
+ import Manipulator from '../mdb/dom/manipulator';
5
+ import SelectorEngine from '../mdb/dom/selector-engine';
6
+
7
+ /**
8
+ * ------------------------------------------------------------------------
9
+ * Constants
10
+ * ------------------------------------------------------------------------
11
+ */
12
+
13
+ const NAME = 'ripple';
14
+ const DATA_KEY = 'mdb.ripple';
15
+ const CLASSNAME_RIPPLE = 'ripple-surface';
16
+ const CLASSNAME_RIPPLE_WAVE = 'ripple-wave';
17
+ const CLASSNAME_RIPPLE_WRAPPER = 'input-wrapper';
18
+ const SELECTOR_COMPONENT = ['.btn', '.ripple'];
19
+
20
+ const CLASSNAME_UNBOUND = 'ripple-surface-unbound';
21
+ const GRADIENT =
22
+ 'rgba({{color}}, 0.2) 0, rgba({{color}}, 0.3) 40%, rgba({{color}}, 0.4) 50%, rgba({{color}}, 0.5) 60%, rgba({{color}}, 0) 70%';
23
+ const DEFAULT_RIPPLE_COLOR = [0, 0, 0];
24
+ const BOOTSTRAP_COLORS = [
25
+ 'primary',
26
+ 'secondary',
27
+ 'success',
28
+ 'danger',
29
+ 'warning',
30
+ 'info',
31
+ 'light',
32
+ 'dark',
33
+ ];
34
+
35
+ // Sets value when run opacity transition
36
+ // Hide element after 50% (0.5) time of animation and finish on 100%
37
+ const TRANSITION_BREAK_OPACITY = 0.5;
38
+
39
+ const Default = {
40
+ rippleCentered: false,
41
+ rippleColor: '',
42
+ rippleDuration: '500ms',
43
+ rippleRadius: 0,
44
+ rippleUnbound: false,
45
+ };
46
+
47
+ const DefaultType = {
48
+ rippleCentered: 'boolean',
49
+ rippleColor: 'string',
50
+ rippleDuration: 'string',
51
+ rippleRadius: 'number',
52
+ rippleUnbound: 'boolean',
53
+ };
54
+
55
+ /**
56
+ * ------------------------------------------------------------------------
57
+ * Class Definition
58
+ * ------------------------------------------------------------------------
59
+ */
60
+
61
+ class Ripple {
62
+ constructor(element, options) {
63
+ this._element = element;
64
+ this._options = this._getConfig(options);
65
+
66
+ if (this._element) {
67
+ Data.setData(element, DATA_KEY, this);
68
+ Manipulator.addClass(this._element, CLASSNAME_RIPPLE);
69
+ }
70
+
71
+ this._clickHandler = this._createRipple.bind(this);
72
+ this._rippleTimer = null;
73
+ this._isMinWidthSet = false;
74
+ this._rippleInSpan = false;
75
+
76
+ this.init();
77
+ }
78
+
79
+ // Getters
80
+
81
+ static get NAME() {
82
+ return NAME;
83
+ }
84
+
85
+ // Public
86
+
87
+ init() {
88
+ this._addClickEvent(this._element);
89
+ }
90
+
91
+ dispose() {
92
+ Data.removeData(this._element, DATA_KEY);
93
+ EventHandler.off(this._element, 'click', this._clickHandler);
94
+ this._element = null;
95
+ this._options = null;
96
+ }
97
+
98
+ // Private
99
+
100
+ _autoInit(event) {
101
+ SELECTOR_COMPONENT.forEach((selector) => {
102
+ const target = SelectorEngine.closest(event.target, selector);
103
+ if (target) {
104
+ this._element = SelectorEngine.closest(event.target, selector);
105
+ }
106
+ });
107
+
108
+ this._options = this._getConfig();
109
+
110
+ if (this._element.tagName.toLowerCase() === 'input') {
111
+ const parent = this._element.parentNode;
112
+
113
+ this._rippleInSpan = true;
114
+
115
+ if (parent.tagName.toLowerCase() === 'span' && parent.classList.contains(CLASSNAME_RIPPLE)) {
116
+ this._element = parent;
117
+ } else {
118
+ const shadow = getComputedStyle(this._element).boxShadow;
119
+ const btn = this._element;
120
+ const wrapper = document.createElement('span');
121
+
122
+ if (btn.classList.contains('btn-block')) {
123
+ wrapper.style.display = 'block';
124
+ }
125
+
126
+ EventHandler.one(wrapper, 'mouseup', (e) => {
127
+ // prevent submit on click other than LMB, ripple still triggered, but submit is blocked
128
+ if (e.button === 0) {
129
+ btn.click();
130
+ }
131
+ });
132
+
133
+ wrapper.classList.add(CLASSNAME_RIPPLE, CLASSNAME_RIPPLE_WRAPPER);
134
+
135
+ Manipulator.addStyle(wrapper, {
136
+ border: 0,
137
+ 'box-shadow': shadow,
138
+ });
139
+
140
+ // Put element as child
141
+ parent.replaceChild(wrapper, this._element);
142
+ wrapper.appendChild(this._element);
143
+ this._element = wrapper;
144
+ }
145
+ this._element.focus();
146
+ }
147
+
148
+ if (!this._element.style.minWidth) {
149
+ Manipulator.style(this._element, { 'min-width': `${getComputedStyle(this._element).width}` });
150
+ this._isMinWidthSet = true;
151
+ }
152
+
153
+ Manipulator.addClass(this._element, CLASSNAME_RIPPLE);
154
+ this._createRipple(event);
155
+ }
156
+
157
+ _addClickEvent(target) {
158
+ EventHandler.on(target, 'mousedown', this._clickHandler);
159
+ }
160
+
161
+ _getEventLayer(event) {
162
+ const x = Math.round(event.clientX - event.target.getBoundingClientRect().x);
163
+ const y = Math.round(event.clientY - event.target.getBoundingClientRect().y);
164
+ return { layerX: x, layerY: y };
165
+ }
166
+
167
+ _createRipple(event) {
168
+ if (!Manipulator.hasClass(this._element, CLASSNAME_RIPPLE)) {
169
+ Manipulator.addClass(this._element, CLASSNAME_RIPPLE);
170
+ }
171
+
172
+ const { layerX, layerY } = this._getEventLayer(event);
173
+ const offsetX = layerX;
174
+ const offsetY = layerY;
175
+ const height = this._element.offsetHeight;
176
+ const width = this._element.offsetWidth;
177
+ const duration = this._durationToMsNumber(this._options.rippleDuration);
178
+ const diameterOptions = {
179
+ offsetX: this._options.rippleCentered ? height / 2 : offsetX,
180
+ offsetY: this._options.rippleCentered ? width / 2 : offsetY,
181
+ height,
182
+ width,
183
+ };
184
+ const diameter = this._getDiameter(diameterOptions);
185
+ const radiusValue = this._options.rippleRadius || diameter / 2;
186
+
187
+ const opacity = {
188
+ delay: duration * TRANSITION_BREAK_OPACITY,
189
+ duration: duration - duration * TRANSITION_BREAK_OPACITY,
190
+ };
191
+
192
+ const styles = {
193
+ left: this._options.rippleCentered
194
+ ? `${width / 2 - radiusValue}px`
195
+ : `${offsetX - radiusValue}px`,
196
+ top: this._options.rippleCentered
197
+ ? `${height / 2 - radiusValue}px`
198
+ : `${offsetY - radiusValue}px`,
199
+ height: `${this._options.rippleRadius * 2 || diameter}px`,
200
+ width: `${this._options.rippleRadius * 2 || diameter}px`,
201
+ transitionDelay: `0s, ${opacity.delay}ms`,
202
+ transitionDuration: `${duration}ms, ${opacity.duration}ms`,
203
+ };
204
+
205
+ const rippleHTML = element('div');
206
+
207
+ this._createHTMLRipple({ wrapper: this._element, ripple: rippleHTML, styles });
208
+ this._removeHTMLRipple({ ripple: rippleHTML, duration });
209
+ }
210
+
211
+ _createHTMLRipple({ wrapper, ripple, styles }) {
212
+ Object.keys(styles).forEach((property) => (ripple.style[property] = styles[property]));
213
+ ripple.classList.add(CLASSNAME_RIPPLE_WAVE);
214
+ if (this._options.rippleColor !== '') {
215
+ this._removeOldColorClasses(wrapper);
216
+ this._addColor(ripple, wrapper);
217
+ }
218
+
219
+ this._toggleUnbound(wrapper);
220
+ this._appendRipple(ripple, wrapper);
221
+ }
222
+
223
+ _removeHTMLRipple({ ripple, duration }) {
224
+ if (this._rippleTimer) {
225
+ clearTimeout(this._rippleTimer);
226
+ this._rippleTimer = null;
227
+ }
228
+ this._rippleTimer = setTimeout(() => {
229
+ if (ripple) {
230
+ ripple.remove();
231
+ if (this._element) {
232
+ SelectorEngine.find(`.${CLASSNAME_RIPPLE_WAVE}`, this._element).forEach((rippleEl) => {
233
+ rippleEl.remove();
234
+ });
235
+ if (this._isMinWidthSet) {
236
+ Manipulator.style(this._element, { 'min-width': '' });
237
+ this._isMinWidthSet = false;
238
+ }
239
+ if (this._rippleInSpan && this._element.classList.contains(CLASSNAME_RIPPLE_WRAPPER)) {
240
+ this._removeWrapperSpan();
241
+ } else {
242
+ Manipulator.removeClass(this._element, CLASSNAME_RIPPLE);
243
+ }
244
+ }
245
+ }
246
+ }, duration);
247
+ }
248
+
249
+ _removeWrapperSpan() {
250
+ const child = this._element.firstChild;
251
+
252
+ this._element.replaceWith(child);
253
+ this._element = child;
254
+ this._element.focus();
255
+ this._rippleInSpan = false;
256
+ }
257
+
258
+ _durationToMsNumber(time) {
259
+ return Number(time.replace('ms', '').replace('s', '000'));
260
+ }
261
+
262
+ _getConfig(config = {}) {
263
+ const dataAttributes = Manipulator.getDataAttributes(this._element);
264
+
265
+ config = {
266
+ ...Default,
267
+ ...dataAttributes,
268
+ ...config,
269
+ };
270
+
271
+ typeCheckConfig(NAME, config, DefaultType);
272
+ return config;
273
+ }
274
+
275
+ _getDiameter({ offsetX, offsetY, height, width }) {
276
+ const top = offsetY <= height / 2;
277
+ const left = offsetX <= width / 2;
278
+ const pythagorean = (sideA, sideB) => Math.sqrt(sideA ** 2 + sideB ** 2);
279
+
280
+ const positionCenter = offsetY === height / 2 && offsetX === width / 2;
281
+ // mouse position on the quadrants of the coordinate system
282
+ const quadrant = {
283
+ first: top === true && left === false,
284
+ second: top === true && left === true,
285
+ third: top === false && left === true,
286
+ fourth: top === false && left === false,
287
+ };
288
+
289
+ const getCorner = {
290
+ topLeft: pythagorean(offsetX, offsetY),
291
+ topRight: pythagorean(width - offsetX, offsetY),
292
+ bottomLeft: pythagorean(offsetX, height - offsetY),
293
+ bottomRight: pythagorean(width - offsetX, height - offsetY),
294
+ };
295
+
296
+ let diameter = 0;
297
+
298
+ if (positionCenter || quadrant.fourth) {
299
+ diameter = getCorner.topLeft;
300
+ } else if (quadrant.third) {
301
+ diameter = getCorner.topRight;
302
+ } else if (quadrant.second) {
303
+ diameter = getCorner.bottomRight;
304
+ } else if (quadrant.first) {
305
+ diameter = getCorner.bottomLeft;
306
+ }
307
+ return diameter * 2;
308
+ }
309
+
310
+ _appendRipple(target, parent) {
311
+ const FIX_ADD_RIPPLE_EFFECT = 50; // delay for active animations
312
+ parent.appendChild(target);
313
+ setTimeout(() => {
314
+ Manipulator.addClass(target, 'active');
315
+ }, FIX_ADD_RIPPLE_EFFECT);
316
+ }
317
+
318
+ _toggleUnbound(target) {
319
+ if (this._options.rippleUnbound === true) {
320
+ Manipulator.addClass(target, CLASSNAME_UNBOUND);
321
+ } else {
322
+ target.classList.remove(CLASSNAME_UNBOUND);
323
+ }
324
+ }
325
+
326
+ _addColor(target, parent) {
327
+ const IS_BOOTSTRAP_COLOR = BOOTSTRAP_COLORS.find(
328
+ (color) => color === this._options.rippleColor.toLowerCase()
329
+ );
330
+
331
+ if (IS_BOOTSTRAP_COLOR) {
332
+ Manipulator.addClass(
333
+ parent,
334
+ `${CLASSNAME_RIPPLE}-${this._options.rippleColor.toLowerCase()}`
335
+ );
336
+ } else {
337
+ const rgbValue = this._colorToRGB(this._options.rippleColor).join(',');
338
+ const gradientImage = GRADIENT.split('{{color}}').join(`${rgbValue}`);
339
+ target.style.backgroundImage = `radial-gradient(circle, ${gradientImage})`;
340
+ }
341
+ }
342
+
343
+ _removeOldColorClasses(target) {
344
+ const REGEXP_CLASS_COLOR = new RegExp(`${CLASSNAME_RIPPLE}-[a-z]+`, 'gi');
345
+ const PARENT_CLASSS_COLOR = target.classList.value.match(REGEXP_CLASS_COLOR) || [];
346
+ PARENT_CLASSS_COLOR.forEach((className) => {
347
+ target.classList.remove(className);
348
+ });
349
+ }
350
+
351
+ _colorToRGB(color) {
352
+ function hexToRgb(color) {
353
+ const HEX_COLOR_LENGTH = 7;
354
+ const IS_SHORT_HEX = color.length < HEX_COLOR_LENGTH;
355
+ if (IS_SHORT_HEX) {
356
+ color = `#${color[1]}${color[1]}${color[2]}${color[2]}${color[3]}${color[3]}`;
357
+ }
358
+ return [
359
+ parseInt(color.substr(1, 2), 16),
360
+ parseInt(color.substr(3, 2), 16),
361
+ parseInt(color.substr(5, 2), 16),
362
+ ];
363
+ }
364
+
365
+ function namedColorsToRgba(color) {
366
+ const tempElem = document.body.appendChild(document.createElement('fictum'));
367
+ const flag = 'rgb(1, 2, 3)';
368
+ tempElem.style.color = flag;
369
+ if (tempElem.style.color !== flag) {
370
+ return DEFAULT_RIPPLE_COLOR;
371
+ }
372
+ tempElem.style.color = color;
373
+ if (tempElem.style.color === flag || tempElem.style.color === '') {
374
+ return DEFAULT_RIPPLE_COLOR;
375
+ } // color parse failed
376
+ color = getComputedStyle(tempElem).color;
377
+ document.body.removeChild(tempElem);
378
+ return color;
379
+ }
380
+
381
+ function rgbaToRgb(color) {
382
+ color = color.match(/[.\d]+/g).map((a) => +Number(a));
383
+ color.length = 3;
384
+ return color;
385
+ }
386
+
387
+ if (color.toLowerCase() === 'transparent') {
388
+ return DEFAULT_RIPPLE_COLOR;
389
+ }
390
+ if (color[0] === '#') {
391
+ return hexToRgb(color);
392
+ }
393
+ if (color.indexOf('rgb') === -1) {
394
+ color = namedColorsToRgba(color);
395
+ }
396
+ if (color.indexOf('rgb') === 0) {
397
+ return rgbaToRgb(color);
398
+ }
399
+
400
+ return DEFAULT_RIPPLE_COLOR;
401
+ }
402
+
403
+ // Static
404
+ static autoInitial(instance) {
405
+ return function (event) {
406
+ instance._autoInit(event);
407
+ };
408
+ }
409
+
410
+ static jQueryInterface(options) {
411
+ return this.each(function () {
412
+ const data = Data.getData(this, DATA_KEY);
413
+ if (!data) {
414
+ return new Ripple(this, options);
415
+ }
416
+
417
+ return null;
418
+ });
419
+ }
420
+
421
+ static getInstance(element) {
422
+ return Data.getData(element, DATA_KEY);
423
+ }
424
+
425
+ static getOrCreateInstance(element, config = {}) {
426
+ return (
427
+ this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)
428
+ );
429
+ }
430
+ }
431
+
432
+ /**
433
+ * ------------------------------------------------------------------------
434
+ * Data Api implementation - auto initialization
435
+ * ------------------------------------------------------------------------
436
+ */
437
+
438
+ SELECTOR_COMPONENT.forEach((selector) => {
439
+ EventHandler.one(document, 'mousedown', selector, Ripple.autoInitial(new Ripple()));
440
+ });
441
+
442
+ /**
443
+ * ------------------------------------------------------------------------
444
+ * jQuery
445
+ * ------------------------------------------------------------------------
446
+ * add .ripple to jQuery only if jQuery is present
447
+ */
448
+
449
+ onDOMContentLoaded(() => {
450
+ const $ = getjQuery();
451
+
452
+ if ($) {
453
+ const JQUERY_NO_CONFLICT = $.fn[NAME];
454
+ $.fn[NAME] = Ripple.jQueryInterface;
455
+ $.fn[NAME].Constructor = Ripple;
456
+ $.fn[NAME].noConflict = () => {
457
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
458
+ return Ripple.jQueryInterface;
459
+ };
460
+ }
461
+ });
462
+
463
+ export default Ripple;
@@ -0,0 +1,166 @@
1
+ import { getjQuery, onDOMContentLoaded } from '../mdb/util/index';
2
+ import EventHandler from '../mdb/dom/event-handler';
3
+ import SelectorEngine from '../mdb/dom/selector-engine';
4
+ import Manipulator from '../mdb/dom/manipulator';
5
+ import BSScrollSpy from '../bootstrap/mdb-prefix/scrollspy';
6
+
7
+ /**
8
+ * ------------------------------------------------------------------------
9
+ * Constants
10
+ * ------------------------------------------------------------------------
11
+ */
12
+
13
+ const NAME = 'scrollspy';
14
+ const DATA_KEY = `mdb.${NAME}`;
15
+ const EVENT_KEY = `.${DATA_KEY}`;
16
+ const DATA_API_KEY = '.data-api';
17
+
18
+ const EVENT_ACTIVATE_BS = 'activate.bs.scrollspy';
19
+ const EVENT_ACTIVATE = `activate${EVENT_KEY}`;
20
+ const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;
21
+
22
+ const CLASS_COLLAPSIBLE = 'collapsible-scrollspy';
23
+ const CLASS_ACTIVE = 'active';
24
+
25
+ const SELECTOR_LIST = 'ul';
26
+ const SELECTOR_DATA_SPY = '[data-mdb-spy="scroll"]';
27
+ const SELECTOR_ACTIVE = `.${CLASS_ACTIVE}`;
28
+ const SELECTOR_COLLAPSIBLE_SCROLLSPY = `.${CLASS_COLLAPSIBLE}`;
29
+
30
+ class ScrollSpy extends BSScrollSpy {
31
+ constructor(element, data) {
32
+ super(element, data);
33
+
34
+ this._collapsibles = [];
35
+ this._init();
36
+ }
37
+
38
+ dispose() {
39
+ EventHandler.off(this._scrollElement, EVENT_ACTIVATE_BS);
40
+
41
+ super.dispose();
42
+ }
43
+
44
+ // Getters
45
+ static get NAME() {
46
+ return NAME;
47
+ }
48
+
49
+ // Private
50
+ _init() {
51
+ this._bindActivateEvent();
52
+ this._getCollapsibles();
53
+
54
+ if (this._collapsibles.length === 0) {
55
+ return;
56
+ }
57
+
58
+ this._showSubsection();
59
+ this._hideSubsection();
60
+ }
61
+
62
+ _getHeight(element) {
63
+ return element.offsetHeight;
64
+ }
65
+
66
+ _hide(target) {
67
+ const itemsToHide = SelectorEngine.findOne(SELECTOR_LIST, target.parentNode);
68
+ itemsToHide.style.overflow = 'hidden';
69
+ itemsToHide.style.height = `${0}px`;
70
+ }
71
+
72
+ _show(target, destinedHeight) {
73
+ target.style.height = destinedHeight;
74
+ }
75
+
76
+ _getCollapsibles() {
77
+ const collapsibleElements = SelectorEngine.find(SELECTOR_COLLAPSIBLE_SCROLLSPY);
78
+
79
+ if (!collapsibleElements) {
80
+ return;
81
+ }
82
+
83
+ collapsibleElements.forEach((collapsibleElement) => {
84
+ const listParent = collapsibleElement.parentNode;
85
+ const list = SelectorEngine.findOne(SELECTOR_LIST, listParent);
86
+ const listHeight = list.offsetHeight;
87
+ this._collapsibles.push({
88
+ element: list,
89
+ relatedTarget: collapsibleElement.getAttribute('href'),
90
+ height: `${listHeight}px`,
91
+ });
92
+ });
93
+ }
94
+
95
+ _showSubsection() {
96
+ const activeElements = SelectorEngine.find(SELECTOR_ACTIVE);
97
+ const actives = activeElements.filter((active) => {
98
+ return Manipulator.hasClass(active, CLASS_COLLAPSIBLE);
99
+ });
100
+
101
+ actives.forEach((active) => {
102
+ const list = SelectorEngine.findOne(SELECTOR_LIST, active.parentNode);
103
+ const height = this._collapsibles.find((collapsible) => {
104
+ return (collapsible.relatedTarget = active.getAttribute('href'));
105
+ }).height;
106
+ this._show(list, height);
107
+ });
108
+ }
109
+
110
+ _hideSubsection() {
111
+ const unactives = SelectorEngine.find(SELECTOR_COLLAPSIBLE_SCROLLSPY).filter((collapsible) => {
112
+ return Manipulator.hasClass(collapsible, 'active') === false;
113
+ });
114
+ unactives.forEach((unactive) => {
115
+ this._hide(unactive);
116
+ });
117
+ }
118
+
119
+ _bindActivateEvent() {
120
+ EventHandler.on(this._element, EVENT_ACTIVATE_BS, (e) => {
121
+ this._showSubsection();
122
+ this._hideSubsection();
123
+ EventHandler.trigger(this._element, EVENT_ACTIVATE, {
124
+ relatedTarget: e.relatedTarget,
125
+ });
126
+ });
127
+ }
128
+ }
129
+
130
+ /**
131
+ * ------------------------------------------------------------------------
132
+ * Data Api implementation - auto initialization
133
+ * ------------------------------------------------------------------------
134
+ */
135
+
136
+ EventHandler.on(window, EVENT_LOAD_DATA_API, () => {
137
+ SelectorEngine.find(SELECTOR_DATA_SPY).forEach((el) => {
138
+ let instance = ScrollSpy.getInstance(el);
139
+ if (!instance) {
140
+ instance = new ScrollSpy(el, Manipulator.getDataAttributes(el));
141
+ }
142
+ });
143
+ });
144
+
145
+ /**
146
+ * ------------------------------------------------------------------------
147
+ * jQuery
148
+ * ------------------------------------------------------------------------
149
+ * add .rating to jQuery only if jQuery is present
150
+ */
151
+
152
+ onDOMContentLoaded(() => {
153
+ const $ = getjQuery();
154
+
155
+ if ($) {
156
+ const JQUERY_NO_CONFLICT = $.fn[NAME];
157
+ $.fn[NAME] = ScrollSpy.jQueryInterface;
158
+ $.fn[NAME].Constructor = ScrollSpy;
159
+ $.fn[NAME].noConflict = () => {
160
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
161
+ return ScrollSpy.jQueryInterface;
162
+ };
163
+ }
164
+ });
165
+
166
+ export default ScrollSpy;