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,277 @@
1
+ import { getjQuery, typeCheckConfig, 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 BSDropdown from '../bootstrap/mdb-prefix/dropdown';
6
+
7
+ /**
8
+ * ------------------------------------------------------------------------
9
+ * Constants
10
+ * ------------------------------------------------------------------------
11
+ */
12
+
13
+ const NAME = 'dropdown';
14
+ const DATA_KEY = `mdb.${NAME}`;
15
+ const EVENT_KEY = `.${DATA_KEY}`;
16
+
17
+ const SELECTOR_EXPAND = '[data-mdb-toggle="dropdown"]';
18
+
19
+ const Default = {
20
+ offset: [0, 2],
21
+ flip: true,
22
+ boundary: 'clippingParents',
23
+ reference: 'toggle',
24
+ display: 'dynamic',
25
+ popperConfig: null,
26
+ dropdownAnimation: 'on',
27
+ };
28
+
29
+ const DefaultType = {
30
+ offset: '(array|string|function)',
31
+ flip: 'boolean',
32
+ boundary: '(string|element)',
33
+ reference: '(string|element|object)',
34
+ display: 'string',
35
+ popperConfig: '(null|object|function)',
36
+ dropdownAnimation: 'string',
37
+ };
38
+
39
+ const EVENT_HIDE = 'hide.bs.dropdown';
40
+ const EVENT_HIDDEN = 'hidden.bs.dropdown';
41
+ const EVENT_SHOW = 'show.bs.dropdown';
42
+ const EVENT_SHOWN = 'shown.bs.dropdown';
43
+
44
+ const EVENT_HIDE_MDB = `hide${EVENT_KEY}`;
45
+ const EVENT_HIDDEN_MDB = `hidden${EVENT_KEY}`;
46
+ const EVENT_SHOW_MDB = `show${EVENT_KEY}`;
47
+ const EVENT_SHOWN_MDB = `shown${EVENT_KEY}`;
48
+
49
+ const ANIMATION_CLASS = 'animation';
50
+ const ANIMATION_SHOW_CLASS = 'fade-in';
51
+ const ANIMATION_HIDE_CLASS = 'fade-out';
52
+
53
+ class Dropdown extends BSDropdown {
54
+ constructor(element, data) {
55
+ super(element, data);
56
+ this._config = this._getConfig(data);
57
+ this._menuStyle = '';
58
+ this._popperPlacement = '';
59
+ this._mdbPopperConfig = '';
60
+
61
+ //* prevents dropdown close issue when system animation is turned off
62
+ const isPrefersReducedMotionSet = window.matchMedia('(prefers-reduced-motion: reduce)').matches;
63
+
64
+ if (this._config.dropdownAnimation === 'on' && !isPrefersReducedMotionSet) {
65
+ this._init();
66
+ }
67
+ }
68
+
69
+ dispose() {
70
+ EventHandler.off(this._element, EVENT_SHOW);
71
+ EventHandler.off(this._parent, EVENT_SHOWN);
72
+ EventHandler.off(this._parent, EVENT_HIDE);
73
+ EventHandler.off(this._parent, EVENT_HIDDEN);
74
+ super.dispose();
75
+ }
76
+
77
+ // Getters
78
+ static get NAME() {
79
+ return NAME;
80
+ }
81
+
82
+ // Private
83
+ _init() {
84
+ this._bindShowEvent();
85
+ this._bindShownEvent();
86
+ this._bindHideEvent();
87
+ this._bindHiddenEvent();
88
+ }
89
+
90
+ _getConfig(options) {
91
+ const config = {
92
+ ...Default,
93
+ ...Manipulator.getDataAttributes(this._element),
94
+ ...options,
95
+ };
96
+ typeCheckConfig(NAME, config, DefaultType);
97
+ return config;
98
+ }
99
+
100
+ _getOffset() {
101
+ const { offset } = this._config;
102
+
103
+ if (typeof offset === 'string') {
104
+ return offset.split(',').map((val) => Number.parseInt(val, 10));
105
+ }
106
+
107
+ if (typeof offset === 'function') {
108
+ return (popperData) => offset(popperData, this._element);
109
+ }
110
+
111
+ return offset;
112
+ }
113
+
114
+ _getPopperConfig() {
115
+ const popperConfig = {
116
+ placement: this._getPlacement(),
117
+ modifiers: [
118
+ {
119
+ name: 'preventOverflow',
120
+ options: {
121
+ altBoundary: this._config.flip,
122
+ boundary: this._config.boundary,
123
+ },
124
+ },
125
+ {
126
+ name: 'offset',
127
+ options: {
128
+ offset: this._getOffset(),
129
+ },
130
+ },
131
+ ],
132
+ };
133
+
134
+ // Disable Popper if we have a static display
135
+ if (this._config.display === 'static') {
136
+ popperConfig.modifiers = [
137
+ {
138
+ name: 'applyStyles',
139
+ enabled: false,
140
+ },
141
+ ];
142
+ }
143
+
144
+ return {
145
+ ...popperConfig,
146
+ /* eslint no-extra-parens: "off" */
147
+ ...(typeof this._config.popperConfig === 'function'
148
+ ? this._config.popperConfig(popperConfig)
149
+ : this._config.popperConfig),
150
+ };
151
+ }
152
+
153
+ _bindShowEvent() {
154
+ EventHandler.on(this._element, EVENT_SHOW, (e) => {
155
+ const showEvent = EventHandler.trigger(this._element, EVENT_SHOW_MDB, {
156
+ relatedTarget: e.relatedTarget,
157
+ });
158
+
159
+ if (showEvent.defaultPrevented) {
160
+ e.preventDefault();
161
+ return;
162
+ }
163
+
164
+ this._dropdownAnimationStart('show');
165
+ });
166
+ }
167
+
168
+ _bindShownEvent() {
169
+ EventHandler.on(this._parent, EVENT_SHOWN, (e) => {
170
+ const shownEvent = EventHandler.trigger(this._parent, EVENT_SHOWN_MDB, {
171
+ relatedTarget: e.relatedTarget,
172
+ });
173
+
174
+ if (shownEvent.defaultPrevented) {
175
+ e.preventDefault();
176
+ return;
177
+ }
178
+ });
179
+ }
180
+
181
+ _bindHideEvent() {
182
+ EventHandler.on(this._parent, EVENT_HIDE, (e) => {
183
+ const hideEvent = EventHandler.trigger(this._parent, EVENT_HIDE_MDB, {
184
+ relatedTarget: e.relatedTarget,
185
+ });
186
+
187
+ if (hideEvent.defaultPrevented) {
188
+ e.preventDefault();
189
+ return;
190
+ }
191
+
192
+ this._menuStyle = this._menu.style.cssText;
193
+ this._popperPlacement = this._menu.getAttribute('data-popper-placement');
194
+ this._mdbPopperConfig = this._menu.getAttribute('data-mdb-popper');
195
+ });
196
+ }
197
+
198
+ _bindHiddenEvent() {
199
+ EventHandler.on(this._parent, EVENT_HIDDEN, (e) => {
200
+ const hiddenEvent = EventHandler.trigger(this._parent, EVENT_HIDDEN_MDB, {
201
+ relatedTarget: e.relatedTarget,
202
+ });
203
+
204
+ if (hiddenEvent.defaultPrevented) {
205
+ e.preventDefault();
206
+ return;
207
+ }
208
+
209
+ if (this._config.display !== 'static' && this._menuStyle !== '') {
210
+ this._menu.style.cssText = this._menuStyle;
211
+ }
212
+
213
+ this._menu.setAttribute('data-popper-placement', this._popperPlacement);
214
+ this._menu.setAttribute('data-mdb-popper', this._mdbPopperConfig);
215
+
216
+ this._dropdownAnimationStart('hide');
217
+ });
218
+ }
219
+
220
+ _dropdownAnimationStart(action) {
221
+ switch (action) {
222
+ case 'show':
223
+ this._menu.classList.add(ANIMATION_CLASS, ANIMATION_SHOW_CLASS);
224
+ this._menu.classList.remove(ANIMATION_HIDE_CLASS);
225
+ break;
226
+ default:
227
+ // hide
228
+ this._menu.classList.add(ANIMATION_CLASS, ANIMATION_HIDE_CLASS);
229
+ this._menu.classList.remove(ANIMATION_SHOW_CLASS);
230
+ break;
231
+ }
232
+
233
+ this._bindAnimationEnd();
234
+ }
235
+
236
+ _bindAnimationEnd() {
237
+ EventHandler.one(this._menu, 'animationend', () => {
238
+ this._menu.classList.remove(ANIMATION_CLASS, ANIMATION_HIDE_CLASS, ANIMATION_SHOW_CLASS);
239
+ });
240
+ }
241
+ }
242
+
243
+ /**
244
+ * ------------------------------------------------------------------------
245
+ * Data Api implementation - auto initialization
246
+ * ------------------------------------------------------------------------
247
+ */
248
+
249
+ SelectorEngine.find(SELECTOR_EXPAND).forEach((el) => {
250
+ let instance = Dropdown.getInstance(el);
251
+ if (!instance) {
252
+ instance = new Dropdown(el);
253
+ }
254
+ });
255
+
256
+ /**
257
+ * ------------------------------------------------------------------------
258
+ * jQuery
259
+ * ------------------------------------------------------------------------
260
+ * add .rating to jQuery only if jQuery is present
261
+ */
262
+
263
+ onDOMContentLoaded(() => {
264
+ const $ = getjQuery();
265
+
266
+ if ($) {
267
+ const JQUERY_NO_CONFLICT = $.fn[NAME];
268
+ $.fn[NAME] = Dropdown.jQueryInterface;
269
+ $.fn[NAME].Constructor = Dropdown;
270
+ $.fn[NAME].noConflict = () => {
271
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
272
+ return Dropdown.jQueryInterface;
273
+ };
274
+ }
275
+ });
276
+
277
+ export default Dropdown;
@@ -0,0 +1,443 @@
1
+ import { element, getjQuery, 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
+ import 'detect-autofill';
7
+
8
+ /**
9
+ * ------------------------------------------------------------------------
10
+ * Constants
11
+ * ------------------------------------------------------------------------
12
+ */
13
+
14
+ const NAME = 'input';
15
+ const DATA_KEY = 'mdb.input';
16
+ const CLASSNAME_WRAPPER = 'form-outline';
17
+ const CLASSNAME_ACTIVE = 'active';
18
+ const CLASSNAME_NOTCH = 'form-notch';
19
+ const CLASSNAME_NOTCH_LEADING = 'form-notch-leading';
20
+ const CLASSNAME_NOTCH_MIDDLE = 'form-notch-middle';
21
+ const CLASSNAME_NOTCH_TRAILING = 'form-notch-trailing';
22
+ const CLASSNAME_PLACEHOLDER_ACTIVE = 'placeholder-active';
23
+ const CLASSNAME_HELPER = 'form-helper';
24
+ const CLASSNAME_COUNTER = 'form-counter';
25
+
26
+ const SELECTOR_OUTLINE_INPUT = `.${CLASSNAME_WRAPPER} input`;
27
+ const SELECTOR_OUTLINE_TEXTAREA = `.${CLASSNAME_WRAPPER} textarea`;
28
+ const SELECTOR_NOTCH = `.${CLASSNAME_NOTCH}`;
29
+ const SELECTOR_NOTCH_LEADING = `.${CLASSNAME_NOTCH_LEADING}`;
30
+ const SELECTOR_NOTCH_MIDDLE = `.${CLASSNAME_NOTCH_MIDDLE}`;
31
+ const SELECTOR_HELPER = `.${CLASSNAME_HELPER}`;
32
+
33
+ /**
34
+ * ------------------------------------------------------------------------
35
+ * Class Definition
36
+ * ------------------------------------------------------------------------
37
+ */
38
+
39
+ class Input {
40
+ constructor(element) {
41
+ this._element = element;
42
+ this._label = null;
43
+ this._labelWidth = 0;
44
+ this._labelMarginLeft = 0;
45
+ this._notchLeading = null;
46
+ this._notchMiddle = null;
47
+ this._notchTrailing = null;
48
+ this._initiated = false;
49
+ this._helper = null;
50
+ this._counter = false;
51
+ this._counterElement = null;
52
+ this._maxLength = 0;
53
+ this._leadingIcon = null;
54
+ if (this._element) {
55
+ Data.setData(element, DATA_KEY, this);
56
+ this.init();
57
+ }
58
+ }
59
+
60
+ // Getters
61
+ static get NAME() {
62
+ return NAME;
63
+ }
64
+
65
+ get input() {
66
+ const inputElement =
67
+ SelectorEngine.findOne('input', this._element) ||
68
+ SelectorEngine.findOne('textarea', this._element);
69
+ return inputElement;
70
+ }
71
+
72
+ // Public
73
+ init() {
74
+ if (this._initiated) {
75
+ return;
76
+ }
77
+ this._getLabelData();
78
+ this._applyDivs();
79
+ this._applyNotch();
80
+ this._activate();
81
+ this._getHelper();
82
+ this._getCounter();
83
+ this._initiated = true;
84
+ }
85
+
86
+ update() {
87
+ this._getLabelData();
88
+ this._getNotchData();
89
+ this._applyNotch();
90
+ this._activate();
91
+ this._getHelper();
92
+ this._getCounter();
93
+ }
94
+
95
+ forceActive() {
96
+ Manipulator.addClass(this.input, CLASSNAME_ACTIVE);
97
+ }
98
+
99
+ forceInactive() {
100
+ Manipulator.removeClass(this.input, CLASSNAME_ACTIVE);
101
+ }
102
+
103
+ dispose() {
104
+ this._removeBorder();
105
+
106
+ Data.removeData(this._element, DATA_KEY);
107
+ this._element = null;
108
+ }
109
+
110
+ // Private
111
+
112
+ /*
113
+ _getIcons() {
114
+ this._leadingIcon = SelectorEngine.findOne('i.leading', this._element);
115
+
116
+ if (this._leadingIcon !== null) {
117
+ this._applyLeadingIcon();
118
+ }
119
+ }
120
+
121
+ _applyLeadingIcon() {
122
+ this._label.innerHTML = ` ${this._label.innerHTML}`;
123
+ this._label.insertBefore(this._leadingIcon, this._label.firstChild);
124
+ }
125
+ */
126
+
127
+ _getLabelData() {
128
+ this._label = SelectorEngine.findOne('label', this._element);
129
+ if (this._label === null) {
130
+ this._showPlaceholder();
131
+ } else {
132
+ this._getLabelWidth();
133
+ this._getLabelPositionInInputGroup();
134
+ this._toggleDefaultDatePlaceholder();
135
+ }
136
+ }
137
+
138
+ _getHelper() {
139
+ this._helper = SelectorEngine.findOne(SELECTOR_HELPER, this._element);
140
+ }
141
+
142
+ _getCounter() {
143
+ this._counter = Manipulator.getDataAttribute(this.input, 'showcounter');
144
+ if (this._counter) {
145
+ this._maxLength = this.input.maxLength;
146
+ this._showCounter();
147
+ }
148
+ }
149
+
150
+ _showCounter() {
151
+ const counters = SelectorEngine.find('.form-counter', this._element);
152
+ if (counters.length > 0) {
153
+ return;
154
+ }
155
+ this._counterElement = document.createElement('div');
156
+ Manipulator.addClass(this._counterElement, CLASSNAME_COUNTER);
157
+ const actualLength = this.input.value.length;
158
+ this._counterElement.innerHTML = `${actualLength} / ${this._maxLength}`;
159
+ this._helper.appendChild(this._counterElement);
160
+ this._bindCounter();
161
+ }
162
+
163
+ _bindCounter() {
164
+ EventHandler.on(this.input, 'input', () => {
165
+ const actualLength = this.input.value.length;
166
+ this._counterElement.innerHTML = `${actualLength} / ${this._maxLength}`;
167
+ });
168
+ }
169
+
170
+ _toggleDefaultDatePlaceholder(input = this.input) {
171
+ const isTypeDate = input.getAttribute('type') === 'date';
172
+
173
+ if (!isTypeDate) {
174
+ return;
175
+ }
176
+
177
+ const isInputFocused = document.activeElement === input;
178
+
179
+ if (!isInputFocused && !input.value) {
180
+ input.style.opacity = 0;
181
+ } else {
182
+ input.style.opacity = 1;
183
+ }
184
+ }
185
+
186
+ _showPlaceholder() {
187
+ Manipulator.addClass(this.input, CLASSNAME_PLACEHOLDER_ACTIVE);
188
+ }
189
+
190
+ _getNotchData() {
191
+ this._notchMiddle = SelectorEngine.findOne(SELECTOR_NOTCH_MIDDLE, this._element);
192
+ this._notchLeading = SelectorEngine.findOne(SELECTOR_NOTCH_LEADING, this._element);
193
+ }
194
+
195
+ _getLabelWidth() {
196
+ this._labelWidth = this._label.clientWidth * 0.8 + 8;
197
+ }
198
+
199
+ _getLabelPositionInInputGroup() {
200
+ this._labelMarginLeft = 0;
201
+
202
+ if (!this._element.classList.contains('input-group')) return;
203
+ const input = this.input;
204
+ const prefix = SelectorEngine.prev(input, '.input-group-text')[0];
205
+ if (prefix === undefined) {
206
+ this._labelMarginLeft = 0;
207
+ } else {
208
+ this._labelMarginLeft = prefix.offsetWidth - 1;
209
+ }
210
+ }
211
+
212
+ _applyDivs() {
213
+ const allNotchWrappers = SelectorEngine.find(SELECTOR_NOTCH, this._element);
214
+ const notchWrapper = element('div');
215
+ Manipulator.addClass(notchWrapper, CLASSNAME_NOTCH);
216
+ this._notchLeading = element('div');
217
+ Manipulator.addClass(this._notchLeading, CLASSNAME_NOTCH_LEADING);
218
+ this._notchMiddle = element('div');
219
+ Manipulator.addClass(this._notchMiddle, CLASSNAME_NOTCH_MIDDLE);
220
+ this._notchTrailing = element('div');
221
+ Manipulator.addClass(this._notchTrailing, CLASSNAME_NOTCH_TRAILING);
222
+ if (allNotchWrappers.length >= 1) {
223
+ return;
224
+ }
225
+ notchWrapper.append(this._notchLeading);
226
+ notchWrapper.append(this._notchMiddle);
227
+ notchWrapper.append(this._notchTrailing);
228
+ this._element.append(notchWrapper);
229
+ }
230
+
231
+ _applyNotch() {
232
+ this._notchMiddle.style.width = `${this._labelWidth}px`;
233
+ this._notchLeading.style.width = `${this._labelMarginLeft + 9}px`;
234
+
235
+ if (this._label === null) return;
236
+ this._label.style.marginLeft = `${this._labelMarginLeft}px`;
237
+ }
238
+
239
+ _removeBorder() {
240
+ const border = SelectorEngine.findOne(SELECTOR_NOTCH, this._element);
241
+ if (border) border.remove();
242
+ }
243
+
244
+ _activate(event) {
245
+ onDOMContentLoaded(() => {
246
+ this._getElements(event);
247
+ const input = event ? event.target : this.input;
248
+
249
+ if (input.value !== '') {
250
+ Manipulator.addClass(input, CLASSNAME_ACTIVE);
251
+ }
252
+ this._toggleDefaultDatePlaceholder(input);
253
+ });
254
+ }
255
+
256
+ _getElements(event) {
257
+ if (event) {
258
+ this._element = event.target.parentNode;
259
+ this._label = SelectorEngine.findOne('label', this._element);
260
+ }
261
+
262
+ if (event && this._label) {
263
+ const prevLabelWidth = this._labelWidth;
264
+ this._getLabelData();
265
+
266
+ if (prevLabelWidth !== this._labelWidth) {
267
+ this._notchMiddle = SelectorEngine.findOne('.form-notch-middle', event.target.parentNode);
268
+ this._notchLeading = SelectorEngine.findOne(
269
+ SELECTOR_NOTCH_LEADING,
270
+ event.target.parentNode
271
+ );
272
+ this._applyNotch();
273
+ }
274
+ }
275
+ }
276
+
277
+ _deactivate(event) {
278
+ const input = event ? event.target : this.input;
279
+
280
+ if (input.value === '') {
281
+ input.classList.remove(CLASSNAME_ACTIVE);
282
+ }
283
+ this._toggleDefaultDatePlaceholder(input);
284
+ }
285
+
286
+ static activate(instance) {
287
+ return function (event) {
288
+ instance._activate(event);
289
+ };
290
+ }
291
+
292
+ static deactivate(instance) {
293
+ return function (event) {
294
+ instance._deactivate(event);
295
+ };
296
+ }
297
+
298
+ static jQueryInterface(config, options) {
299
+ return this.each(function () {
300
+ let data = Data.getData(this, DATA_KEY);
301
+ const _config = typeof config === 'object' && config;
302
+ if (!data && /dispose/.test(config)) {
303
+ return;
304
+ }
305
+ if (!data) {
306
+ data = new Input(this, _config);
307
+ }
308
+ if (typeof config === 'string') {
309
+ if (typeof data[config] === 'undefined') {
310
+ throw new TypeError(`No method named "${config}"`);
311
+ }
312
+ data[config](options);
313
+ }
314
+ });
315
+ }
316
+
317
+ static getInstance(element) {
318
+ return Data.getData(element, DATA_KEY);
319
+ }
320
+
321
+ static getOrCreateInstance(element, config = {}) {
322
+ return (
323
+ this.getInstance(element) || new this(element, typeof config === 'object' ? config : null)
324
+ );
325
+ }
326
+ }
327
+
328
+ EventHandler.on(document, 'focus', SELECTOR_OUTLINE_INPUT, Input.activate(new Input()));
329
+ EventHandler.on(document, 'input', SELECTOR_OUTLINE_INPUT, Input.activate(new Input()));
330
+ EventHandler.on(document, 'blur', SELECTOR_OUTLINE_INPUT, Input.deactivate(new Input()));
331
+
332
+ EventHandler.on(document, 'focus', SELECTOR_OUTLINE_TEXTAREA, Input.activate(new Input()));
333
+ EventHandler.on(document, 'input', SELECTOR_OUTLINE_TEXTAREA, Input.activate(new Input()));
334
+ EventHandler.on(document, 'blur', SELECTOR_OUTLINE_TEXTAREA, Input.deactivate(new Input()));
335
+
336
+ EventHandler.on(window, 'shown.bs.modal', (e) => {
337
+ SelectorEngine.find(SELECTOR_OUTLINE_INPUT, e.target).forEach((element) => {
338
+ const instance = Input.getInstance(element.parentNode);
339
+ if (!instance) {
340
+ return;
341
+ }
342
+ instance.update();
343
+ });
344
+ SelectorEngine.find(SELECTOR_OUTLINE_TEXTAREA, e.target).forEach((element) => {
345
+ const instance = Input.getInstance(element.parentNode);
346
+ if (!instance) {
347
+ return;
348
+ }
349
+ instance.update();
350
+ });
351
+ });
352
+
353
+ EventHandler.on(window, 'shown.bs.dropdown', (e) => {
354
+ const target = e.target.parentNode.querySelector('.dropdown-menu');
355
+ if (target) {
356
+ SelectorEngine.find(SELECTOR_OUTLINE_INPUT, target).forEach((element) => {
357
+ const instance = Input.getInstance(element.parentNode);
358
+ if (!instance) {
359
+ return;
360
+ }
361
+ instance.update();
362
+ });
363
+ SelectorEngine.find(SELECTOR_OUTLINE_TEXTAREA, target).forEach((element) => {
364
+ const instance = Input.getInstance(element.parentNode);
365
+ if (!instance) {
366
+ return;
367
+ }
368
+ instance.update();
369
+ });
370
+ }
371
+ });
372
+
373
+ EventHandler.on(window, 'shown.bs.tab', (e) => {
374
+ let targetId;
375
+
376
+ if (e.target.href) {
377
+ targetId = e.target.href.split('#')[1];
378
+ } else {
379
+ targetId = Manipulator.getDataAttribute(e.target, 'target').split('#')[1];
380
+ }
381
+
382
+ const target = SelectorEngine.findOne(`#${targetId}`);
383
+ SelectorEngine.find(SELECTOR_OUTLINE_INPUT, target).forEach((element) => {
384
+ const instance = Input.getInstance(element.parentNode);
385
+ if (!instance) {
386
+ return;
387
+ }
388
+ instance.update();
389
+ });
390
+ SelectorEngine.find(SELECTOR_OUTLINE_TEXTAREA, target).forEach((element) => {
391
+ const instance = Input.getInstance(element.parentNode);
392
+ if (!instance) {
393
+ return;
394
+ }
395
+ instance.update();
396
+ });
397
+ });
398
+
399
+ // auto-init
400
+ SelectorEngine.find(`.${CLASSNAME_WRAPPER}`).map((element) => new Input(element));
401
+
402
+ // form reset handler
403
+ EventHandler.on(window, 'reset', (e) => {
404
+ SelectorEngine.find(SELECTOR_OUTLINE_INPUT, e.target).forEach((element) => {
405
+ const instance = Input.getInstance(element.parentNode);
406
+ if (!instance) {
407
+ return;
408
+ }
409
+ instance.forceInactive();
410
+ });
411
+ SelectorEngine.find(SELECTOR_OUTLINE_TEXTAREA, e.target).forEach((element) => {
412
+ const instance = Input.getInstance(element.parentNode);
413
+ if (!instance) {
414
+ return;
415
+ }
416
+ instance.forceInactive();
417
+ });
418
+ });
419
+
420
+ // auto-fill
421
+ EventHandler.on(window, 'onautocomplete', (e) => {
422
+ const instance = Input.getInstance(e.target.parentNode);
423
+ if (!instance || !e.cancelable) {
424
+ return;
425
+ }
426
+ instance.forceActive();
427
+ });
428
+
429
+ onDOMContentLoaded(() => {
430
+ const $ = getjQuery();
431
+
432
+ if ($) {
433
+ const JQUERY_NO_CONFLICT = $.fn[NAME];
434
+ $.fn[NAME] = Input.jQueryInterface;
435
+ $.fn[NAME].Constructor = Input;
436
+ $.fn[NAME].noConflict = () => {
437
+ $.fn[NAME] = JQUERY_NO_CONFLICT;
438
+ return Input.jQueryInterface;
439
+ };
440
+ }
441
+ });
442
+
443
+ export default Input;