patternfly-sass 0.0.0.pre.semantically.pre.released

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. checksums.yaml +7 -0
  2. data/CODE_OF_CONDUCT.md +4 -0
  3. data/LICENSE.txt +205 -0
  4. data/OPEN_SOURCE_LICENCES.txt +1366 -0
  5. data/QUICKSTART.md +210 -0
  6. data/README.md +438 -0
  7. data/dist/fonts/FontAwesome.otf +0 -0
  8. data/dist/fonts/OpenSans-Bold-webfont.eot +0 -0
  9. data/dist/fonts/OpenSans-Bold-webfont.svg +19028 -0
  10. data/dist/fonts/OpenSans-Bold-webfont.ttf +0 -0
  11. data/dist/fonts/OpenSans-Bold-webfont.woff +0 -0
  12. data/dist/fonts/OpenSans-Bold-webfont.woff2 +0 -0
  13. data/dist/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  14. data/dist/fonts/OpenSans-BoldItalic-webfont.svg +19036 -0
  15. data/dist/fonts/OpenSans-BoldItalic-webfont.ttf +0 -0
  16. data/dist/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  17. data/dist/fonts/OpenSans-BoldItalic-webfont.woff2 +0 -0
  18. data/dist/fonts/OpenSans-ExtraBold-webfont.eot +0 -0
  19. data/dist/fonts/OpenSans-ExtraBold-webfont.svg +19030 -0
  20. data/dist/fonts/OpenSans-ExtraBold-webfont.ttf +0 -0
  21. data/dist/fonts/OpenSans-ExtraBold-webfont.woff +0 -0
  22. data/dist/fonts/OpenSans-ExtraBold-webfont.woff2 +0 -0
  23. data/dist/fonts/OpenSans-ExtraBoldItalic-webfont.eot +0 -0
  24. data/dist/fonts/OpenSans-ExtraBoldItalic-webfont.svg +19036 -0
  25. data/dist/fonts/OpenSans-ExtraBoldItalic-webfont.ttf +0 -0
  26. data/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff +0 -0
  27. data/dist/fonts/OpenSans-ExtraBoldItalic-webfont.woff2 +0 -0
  28. data/dist/fonts/OpenSans-Italic-webfont.eot +0 -0
  29. data/dist/fonts/OpenSans-Italic-webfont.svg +19043 -0
  30. data/dist/fonts/OpenSans-Italic-webfont.ttf +0 -0
  31. data/dist/fonts/OpenSans-Italic-webfont.woff +0 -0
  32. data/dist/fonts/OpenSans-Italic-webfont.woff2 +0 -0
  33. data/dist/fonts/OpenSans-Light-webfont.eot +0 -0
  34. data/dist/fonts/OpenSans-Light-webfont.svg +19026 -0
  35. data/dist/fonts/OpenSans-Light-webfont.ttf +0 -0
  36. data/dist/fonts/OpenSans-Light-webfont.woff +0 -0
  37. data/dist/fonts/OpenSans-Light-webfont.woff2 +0 -0
  38. data/dist/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  39. data/dist/fonts/OpenSans-LightItalic-webfont.svg +19039 -0
  40. data/dist/fonts/OpenSans-LightItalic-webfont.ttf +0 -0
  41. data/dist/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  42. data/dist/fonts/OpenSans-LightItalic-webfont.woff2 +0 -0
  43. data/dist/fonts/OpenSans-Regular-webfont.eot +0 -0
  44. data/dist/fonts/OpenSans-Regular-webfont.svg +19030 -0
  45. data/dist/fonts/OpenSans-Regular-webfont.ttf +0 -0
  46. data/dist/fonts/OpenSans-Regular-webfont.woff +0 -0
  47. data/dist/fonts/OpenSans-Regular-webfont.woff2 +0 -0
  48. data/dist/fonts/OpenSans-Semibold-webfont.eot +0 -0
  49. data/dist/fonts/OpenSans-Semibold-webfont.svg +19030 -0
  50. data/dist/fonts/OpenSans-Semibold-webfont.ttf +0 -0
  51. data/dist/fonts/OpenSans-Semibold-webfont.woff +0 -0
  52. data/dist/fonts/OpenSans-Semibold-webfont.woff2 +0 -0
  53. data/dist/fonts/OpenSans-SemiboldItalic-webfont.eot +0 -0
  54. data/dist/fonts/OpenSans-SemiboldItalic-webfont.svg +19043 -0
  55. data/dist/fonts/OpenSans-SemiboldItalic-webfont.ttf +0 -0
  56. data/dist/fonts/OpenSans-SemiboldItalic-webfont.woff +0 -0
  57. data/dist/fonts/OpenSans-SemiboldItalic-webfont.woff2 +0 -0
  58. data/dist/fonts/PatternFlyIcons-webfont.eot +0 -0
  59. data/dist/fonts/PatternFlyIcons-webfont.svg +140 -0
  60. data/dist/fonts/PatternFlyIcons-webfont.ttf +0 -0
  61. data/dist/fonts/PatternFlyIcons-webfont.woff +0 -0
  62. data/dist/fonts/fontawesome-webfont.eot +0 -0
  63. data/dist/fonts/fontawesome-webfont.svg +2671 -0
  64. data/dist/fonts/fontawesome-webfont.ttf +0 -0
  65. data/dist/fonts/fontawesome-webfont.woff +0 -0
  66. data/dist/fonts/fontawesome-webfont.woff2 +0 -0
  67. data/dist/fonts/glyphicons-halflings-regular.eot +0 -0
  68. data/dist/fonts/glyphicons-halflings-regular.svg +288 -0
  69. data/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
  70. data/dist/fonts/glyphicons-halflings-regular.woff +0 -0
  71. data/dist/fonts/glyphicons-halflings-regular.woff2 +0 -0
  72. data/dist/img/Logo_Horizontal_Reversed.svg +49 -0
  73. data/dist/img/OpenShift-Logo-NoText.svg +51 -0
  74. data/dist/img/OpenShift-Logo-Text.svg +95 -0
  75. data/dist/img/OpenShift-logo.svg +69 -0
  76. data/dist/img/RH_Atomic-Logo-NoText.svg +53 -0
  77. data/dist/img/RH_Atomic-Logo-Text.svg +91 -0
  78. data/dist/img/RH_atomic.svg +88 -0
  79. data/dist/img/apple-touch-icon-precomposed-114.png +0 -0
  80. data/dist/img/apple-touch-icon-precomposed-144.png +0 -0
  81. data/dist/img/apple-touch-icon-precomposed-152.png +0 -0
  82. data/dist/img/apple-touch-icon-precomposed-180.png +0 -0
  83. data/dist/img/apple-touch-icon-precomposed-57.png +0 -0
  84. data/dist/img/apple-touch-icon-precomposed-72.png +0 -0
  85. data/dist/img/apple-touch-icon-precomposed-76.png +0 -0
  86. data/dist/img/bg-login-2.png +0 -0
  87. data/dist/img/bg-login.jpg +0 -0
  88. data/dist/img/bg-login.png +0 -0
  89. data/dist/img/bg-modal-about-pf.png +0 -0
  90. data/dist/img/bg-navbar-pf-alt.svg +9 -0
  91. data/dist/img/brand-alt.svg +88 -0
  92. data/dist/img/brand.svg +87 -0
  93. data/dist/img/dropbox-logo.svg +15 -0
  94. data/dist/img/facebook-logo.svg +12 -0
  95. data/dist/img/favicon.ico +0 -0
  96. data/dist/img/fedora-logo.png +0 -0
  97. data/dist/img/git-logo.svg +21 -0
  98. data/dist/img/github-logo.svg +17 -0
  99. data/dist/img/gmail.svg +23 -0
  100. data/dist/img/google-calendar.svg +26 -0
  101. data/dist/img/google-drive.svg +17 -0
  102. data/dist/img/google-logo.svg +19 -0
  103. data/dist/img/instagram-logo.png +0 -0
  104. data/dist/img/kubernetes-Logo.svg +60 -0
  105. data/dist/img/kubernetes.svg +8 -0
  106. data/dist/img/linkedin-logo.svg +13 -0
  107. data/dist/img/logo-alt.svg +18 -0
  108. data/dist/img/logo.svg +22 -0
  109. data/dist/img/open-id-logo.svg +19 -0
  110. data/dist/img/rcue-full.svg +221 -0
  111. data/dist/img/rcue.svg +92 -0
  112. data/dist/img/redhat_reverse.png +0 -0
  113. data/dist/img/skype-logo.svg +23 -0
  114. data/dist/img/spinner-inverse-lg.gif +0 -0
  115. data/dist/img/spinner-inverse-sm.gif +0 -0
  116. data/dist/img/spinner-inverse-xs.gif +0 -0
  117. data/dist/img/spinner-inverse.gif +0 -0
  118. data/dist/img/spinner-lg.gif +0 -0
  119. data/dist/img/spinner-sm.gif +0 -0
  120. data/dist/img/spinner-xs.gif +0 -0
  121. data/dist/img/spinner.gif +0 -0
  122. data/dist/img/stack-exchange-logo.svg +21 -0
  123. data/dist/img/twitter-logo.svg +19 -0
  124. data/dist/js/patternfly-functions-base.js +7 -0
  125. data/dist/js/patternfly-functions-charts.js +13 -0
  126. data/dist/js/patternfly-functions-colors.js +8 -0
  127. data/dist/js/patternfly-functions-count-chars.js +59 -0
  128. data/dist/js/patternfly-functions-data-tables.js +149 -0
  129. data/dist/js/patternfly-functions-fixed-heights.js +109 -0
  130. data/dist/js/patternfly-functions-list.js +79 -0
  131. data/dist/js/patternfly-functions-navigation.js +113 -0
  132. data/dist/js/patternfly-functions-popovers.js +37 -0
  133. data/dist/js/patternfly-functions-sidebar.js +31 -0
  134. data/dist/js/patternfly-functions-tree-grid.js +82 -0
  135. data/dist/js/patternfly-functions-vertical-nav.js +610 -0
  136. data/dist/js/patternfly-functions.js +1307 -0
  137. data/dist/js/patternfly-functions.min.js +1 -0
  138. data/dist/js/patternfly-settings-base.d.ts +9 -0
  139. data/dist/js/patternfly-settings-base.js +16 -0
  140. data/dist/js/patternfly-settings-charts.d.ts +92 -0
  141. data/dist/js/patternfly-settings-charts.js +449 -0
  142. data/dist/js/patternfly-settings-colors.d.ts +88 -0
  143. data/dist/js/patternfly-settings-colors.js +91 -0
  144. data/dist/js/patternfly-settings.d.ts +3 -0
  145. data/dist/js/patternfly-settings.js +558 -0
  146. data/dist/js/patternfly-settings.min.js +1 -0
  147. data/dist/js/patternfly.dataTables.pfColVis.js +151 -0
  148. data/dist/js/patternfly.dataTables.pfEmpty.js +253 -0
  149. data/dist/js/patternfly.dataTables.pfEmpty.min.js +1 -0
  150. data/dist/js/patternfly.dataTables.pfFilter.js +429 -0
  151. data/dist/js/patternfly.dataTables.pfFilter.min.js +1 -0
  152. data/dist/js/patternfly.dataTables.pfPagination.js +401 -0
  153. data/dist/js/patternfly.dataTables.pfPagination.min.js +1 -0
  154. data/dist/js/patternfly.dataTables.pfResize.js +214 -0
  155. data/dist/js/patternfly.dataTables.pfResize.min.js +1 -0
  156. data/dist/js/patternfly.dataTables.pfSelect.js +281 -0
  157. data/dist/js/patternfly.dataTables.pfSelect.min.js +1 -0
  158. data/dist/js/patternfly.js +1866 -0
  159. data/dist/js/patternfly.min.js +2 -0
  160. data/dist/sass/_patternfly-compass.scss +3 -0
  161. data/dist/sass/_patternfly-sprockets.scss +3 -0
  162. data/dist/sass/_patternfly.scss +147 -0
  163. data/dist/sass/patternfly/_about-modal.scss +44 -0
  164. data/dist/sass/patternfly/_accordion.scss +18 -0
  165. data/dist/sass/patternfly/_alerts.scss +44 -0
  166. data/dist/sass/patternfly/_application-launcher.scss +213 -0
  167. data/dist/sass/patternfly/_badges.scss +11 -0
  168. data/dist/sass/patternfly/_blank-slate.scss +52 -0
  169. data/dist/sass/patternfly/_bootstrap-combobox.scss +35 -0
  170. data/dist/sass/patternfly/_bootstrap-datepicker.scss +132 -0
  171. data/dist/sass/patternfly/_bootstrap-mixin-overrides.scss +33 -0
  172. data/dist/sass/patternfly/_bootstrap-select.scss +108 -0
  173. data/dist/sass/patternfly/_bootstrap-slider.scss +66 -0
  174. data/dist/sass/patternfly/_bootstrap-switch.scss +19 -0
  175. data/dist/sass/patternfly/_bootstrap-touchspin.scss +31 -0
  176. data/dist/sass/patternfly/_bootstrap-treeview.scss +89 -0
  177. data/dist/sass/patternfly/_breadcrumbs.scss +20 -0
  178. data/dist/sass/patternfly/_buttons.scss +50 -0
  179. data/dist/sass/patternfly/_card-view.scss +105 -0
  180. data/dist/sass/patternfly/_cards.scss +238 -0
  181. data/dist/sass/patternfly/_charts.scss +388 -0
  182. data/dist/sass/patternfly/_close.scss +16 -0
  183. data/dist/sass/patternfly/_color-variables.scss +85 -0
  184. data/dist/sass/patternfly/_context-selector.scss +125 -0
  185. data/dist/sass/patternfly/_datatables.scss +186 -0
  186. data/dist/sass/patternfly/_date-and-time.scss +35 -0
  187. data/dist/sass/patternfly/_dropdowns.scss +235 -0
  188. data/dist/sass/patternfly/_experimental-features.scss +48 -0
  189. data/dist/sass/patternfly/_filter.scss +42 -0
  190. data/dist/sass/patternfly/_fonts.scss +124 -0
  191. data/dist/sass/patternfly/_footer.scss +19 -0
  192. data/dist/sass/patternfly/_forms.scss +192 -0
  193. data/dist/sass/patternfly/_icons.scss +371 -0
  194. data/dist/sass/patternfly/_infotip.scss +145 -0
  195. data/dist/sass/patternfly/_labels.scss +17 -0
  196. data/dist/sass/patternfly/_layouts.scss +140 -0
  197. data/dist/sass/patternfly/_links.scss +5 -0
  198. data/dist/sass/patternfly/_list-group.scss +23 -0
  199. data/dist/sass/patternfly/_list-pf.scss +178 -0
  200. data/dist/sass/patternfly/_list-view-dnd.scss +53 -0
  201. data/dist/sass/patternfly/_list-view.scss +390 -0
  202. data/dist/sass/patternfly/_login.scss +341 -0
  203. data/dist/sass/patternfly/_mixins.scss +81 -0
  204. data/dist/sass/patternfly/_modals.scss +49 -0
  205. data/dist/sass/patternfly/_nav-vertical-alt.scss +168 -0
  206. data/dist/sass/patternfly/_navbar-alt.scss +141 -0
  207. data/dist/sass/patternfly/_navbar-vertical.scss +168 -0
  208. data/dist/sass/patternfly/_navbar.scss +579 -0
  209. data/dist/sass/patternfly/_notifications-drawer.scss +250 -0
  210. data/dist/sass/patternfly/_pager.scss +68 -0
  211. data/dist/sass/patternfly/_pagination.scss +121 -0
  212. data/dist/sass/patternfly/_panels.scss +134 -0
  213. data/dist/sass/patternfly/_popovers.scss +52 -0
  214. data/dist/sass/patternfly/_progress-bars.scss +121 -0
  215. data/dist/sass/patternfly/_rcue-about-modal.scss +45 -0
  216. data/dist/sass/patternfly/_rcue-additions.scss +11 -0
  217. data/dist/sass/patternfly/_rcue-login.scss +75 -0
  218. data/dist/sass/patternfly/_rcue-variables.scss +57 -0
  219. data/dist/sass/patternfly/_rcue.scss +6 -0
  220. data/dist/sass/patternfly/_search.scss +64 -0
  221. data/dist/sass/patternfly/_sidebar.scss +176 -0
  222. data/dist/sass/patternfly/_skip-to-content.scss +12 -0
  223. data/dist/sass/patternfly/_spinner.scss +72 -0
  224. data/dist/sass/patternfly/_syntax-highlighting.scss +36 -0
  225. data/dist/sass/patternfly/_table-view.scss +188 -0
  226. data/dist/sass/patternfly/_tables.scss +90 -0
  227. data/dist/sass/patternfly/_tabs.scss +118 -0
  228. data/dist/sass/patternfly/_time-picker.scss +98 -0
  229. data/dist/sass/patternfly/_toast.scss +75 -0
  230. data/dist/sass/patternfly/_toolbar.scss +190 -0
  231. data/dist/sass/patternfly/_tooltip.scss +15 -0
  232. data/dist/sass/patternfly/_tree-list-view.scss +83 -0
  233. data/dist/sass/patternfly/_type.scss +29 -0
  234. data/dist/sass/patternfly/_variables.scss +595 -0
  235. data/dist/sass/patternfly/_vertical-nav.scss +944 -0
  236. data/dist/sass/patternfly/_wizard.scss +665 -0
  237. data/dist/sass/patternfly/dependencies/bootstrap-combobox/combobox.scss +57 -0
  238. data/dist/sass/patternfly/dependencies/bootstrap-datepicker/datepicker.scss +242 -0
  239. data/dist/sass/patternfly/dependencies/bootstrap-datepicker/datepicker3.scss +257 -0
  240. data/dist/sass/patternfly/dependencies/bootstrap-select/bootstrap-select.scss +389 -0
  241. data/dist/sass/patternfly/dependencies/bootstrap-select/variables.scss +9 -0
  242. data/dist/sass/patternfly/dependencies/bootstrap-slider/_mixins.scss +25 -0
  243. data/dist/sass/patternfly/dependencies/bootstrap-slider/_rules.scss +246 -0
  244. data/dist/sass/patternfly/dependencies/bootstrap-slider/_variables.scss +28 -0
  245. data/dist/sass/patternfly/dependencies/bootstrap-slider/bootstrap-slider.scss +42 -0
  246. data/dist/sass/patternfly/dependencies/bootstrap-switch/bootstrap-switch.scss +195 -0
  247. data/dist/sass/patternfly/dependencies/bootstrap-switch/build.scss +3 -0
  248. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/alerts.scss +14 -0
  249. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/background-variant.scss +9 -0
  250. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/border-radius.scss +18 -0
  251. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/buttons.scss +68 -0
  252. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/center-block.scss +7 -0
  253. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/clearfix.scss +22 -0
  254. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/forms.scss +85 -0
  255. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/gradients.scss +59 -0
  256. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/grid-framework.scss +98 -0
  257. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/grid.scss +122 -0
  258. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/hide-text.scss +21 -0
  259. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/image.scss +33 -0
  260. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/labels.scss +12 -0
  261. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/list-group.scss +29 -0
  262. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/nav-divider.scss +10 -0
  263. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/nav-vertical-align.scss +9 -0
  264. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/opacity.scss +8 -0
  265. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/pagination.scss +23 -0
  266. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/panels.scss +24 -0
  267. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/progress-bar.scss +10 -0
  268. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/reset-filter.scss +8 -0
  269. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/reset-text.scss +18 -0
  270. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/resize.scss +6 -0
  271. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/responsive-visibility.scss +15 -0
  272. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/size.scss +10 -0
  273. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/tab-focus.scss +9 -0
  274. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/table-row.scss +28 -0
  275. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/text-emphasis.scss +9 -0
  276. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/text-overflow.scss +8 -0
  277. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins/vendor-prefixes.scss +227 -0
  278. data/dist/sass/patternfly/dependencies/bootstrap-switch/mixins.scss +40 -0
  279. data/dist/sass/patternfly/dependencies/bootstrap-switch/variables.scss +862 -0
  280. data/dist/sass/patternfly/dependencies/bootstrap-touchspin/_jquery.bootstrap-touchspin.scss +45 -0
  281. data/dist/sass/patternfly/dependencies/c3/_c3.scss +178 -0
  282. data/dist/sass/patternfly/dependencies/eonasdan-bootstrap-datetimepicker/_bootstrap-datetimepicker.scss +344 -0
  283. data/dist/sass/patternfly/dependencies/eonasdan-bootstrap-datetimepicker/bootstrap-datetimepicker-build.scss +16 -0
  284. data/dist/sass/rcue/_about-modal.scss +44 -0
  285. data/dist/sass/rcue/_accordion.scss +18 -0
  286. data/dist/sass/rcue/_alerts.scss +44 -0
  287. data/dist/sass/rcue/_badges.scss +11 -0
  288. data/dist/sass/rcue/_blank-slate.scss +52 -0
  289. data/dist/sass/rcue/_bootstrap-combobox.scss +35 -0
  290. data/dist/sass/rcue/_bootstrap-datepicker.scss +132 -0
  291. data/dist/sass/rcue/_bootstrap-mixin-overrides.scss +33 -0
  292. data/dist/sass/rcue/_bootstrap-select.scss +108 -0
  293. data/dist/sass/rcue/_bootstrap-slider.scss +66 -0
  294. data/dist/sass/rcue/_bootstrap-switch.scss +19 -0
  295. data/dist/sass/rcue/_bootstrap-touchspin.scss +31 -0
  296. data/dist/sass/rcue/_bootstrap-treeview.scss +89 -0
  297. data/dist/sass/rcue/_breadcrumbs.scss +20 -0
  298. data/dist/sass/rcue/_buttons.scss +50 -0
  299. data/dist/sass/rcue/_card-view.scss +105 -0
  300. data/dist/sass/rcue/_cards.scss +238 -0
  301. data/dist/sass/rcue/_charts.scss +388 -0
  302. data/dist/sass/rcue/_close.scss +16 -0
  303. data/dist/sass/rcue/_color-variables.scss +85 -0
  304. data/dist/sass/rcue/_context-selector.scss +125 -0
  305. data/dist/sass/rcue/_datatables.scss +186 -0
  306. data/dist/sass/rcue/_date-and-time.scss +35 -0
  307. data/dist/sass/rcue/_dropdowns.scss +235 -0
  308. data/dist/sass/rcue/_experimental-features.scss +48 -0
  309. data/dist/sass/rcue/_filter.scss +42 -0
  310. data/dist/sass/rcue/_fonts.scss +124 -0
  311. data/dist/sass/rcue/_footer.scss +19 -0
  312. data/dist/sass/rcue/_forms.scss +192 -0
  313. data/dist/sass/rcue/_icons.scss +371 -0
  314. data/dist/sass/rcue/_infotip.scss +145 -0
  315. data/dist/sass/rcue/_labels.scss +17 -0
  316. data/dist/sass/rcue/_layouts.scss +140 -0
  317. data/dist/sass/rcue/_links.scss +5 -0
  318. data/dist/sass/rcue/_list-group.scss +23 -0
  319. data/dist/sass/rcue/_list-pf.scss +178 -0
  320. data/dist/sass/rcue/_list-view-dnd.scss +53 -0
  321. data/dist/sass/rcue/_list-view.scss +390 -0
  322. data/dist/sass/rcue/_login.scss +341 -0
  323. data/dist/sass/rcue/_mixins.scss +81 -0
  324. data/dist/sass/rcue/_modals.scss +49 -0
  325. data/dist/sass/rcue/_nav-vertical-alt.scss +168 -0
  326. data/dist/sass/rcue/_navbar-alt.scss +141 -0
  327. data/dist/sass/rcue/_navbar-vertical.scss +168 -0
  328. data/dist/sass/rcue/_navbar.scss +579 -0
  329. data/dist/sass/rcue/_notifications-drawer.scss +250 -0
  330. data/dist/sass/rcue/_pager.scss +68 -0
  331. data/dist/sass/rcue/_pagination.scss +121 -0
  332. data/dist/sass/rcue/_panels.scss +134 -0
  333. data/dist/sass/rcue/_patternfly-additions.scss +76 -0
  334. data/dist/sass/rcue/_patternfly.scss +31 -0
  335. data/dist/sass/rcue/_popovers.scss +52 -0
  336. data/dist/sass/rcue/_progress-bars.scss +121 -0
  337. data/dist/sass/rcue/_rcue-about-modal.scss +45 -0
  338. data/dist/sass/rcue/_rcue-login.scss +75 -0
  339. data/dist/sass/rcue/_rcue-variables.scss +57 -0
  340. data/dist/sass/rcue/_search.scss +64 -0
  341. data/dist/sass/rcue/_sidebar.scss +176 -0
  342. data/dist/sass/rcue/_skip-to-content.scss +12 -0
  343. data/dist/sass/rcue/_spinner.scss +72 -0
  344. data/dist/sass/rcue/_syntax-highlighting.scss +36 -0
  345. data/dist/sass/rcue/_table-view.scss +188 -0
  346. data/dist/sass/rcue/_tables.scss +90 -0
  347. data/dist/sass/rcue/_tabs.scss +118 -0
  348. data/dist/sass/rcue/_time-picker.scss +98 -0
  349. data/dist/sass/rcue/_toast.scss +75 -0
  350. data/dist/sass/rcue/_toolbar.scss +190 -0
  351. data/dist/sass/rcue/_tooltip.scss +15 -0
  352. data/dist/sass/rcue/_tree-list-view.scss +83 -0
  353. data/dist/sass/rcue/_type.scss +29 -0
  354. data/dist/sass/rcue/_variables.scss +595 -0
  355. data/dist/sass/rcue/_vertical-nav.scss +944 -0
  356. data/dist/sass/rcue/_wizard.scss +665 -0
  357. data/lib/patternfly-sass/engine.rb +11 -0
  358. data/lib/patternfly-sass/version.rb +3 -0
  359. data/lib/patternfly-sass.rb +92 -0
  360. data/patternfly-sass.gemspec +31 -0
  361. metadata +445 -0
@@ -0,0 +1,610 @@
1
+ // Util: PatternFly Vertical Navigation
2
+ // Must have navbar-toggle in navbar-pf-vertical for expand/collapse
3
+ (function ($) {
4
+ 'use strict';
5
+
6
+ $.fn.setupVerticalNavigation = function (handleItemSelections, ignoreDrawer, userOptions) {
7
+
8
+ var options = $.extend({
9
+ hoverDelay: 500,
10
+ hideDelay: 700,
11
+ rememberOpenState: true,
12
+ storage: 'localStorage',
13
+ }, userOptions || {}),
14
+
15
+ navElement = $('.nav-pf-vertical'),
16
+ bodyContentElement = $('.container-pf-nav-pf-vertical'),
17
+ toggleNavBarButton = $('.navbar-toggle'),
18
+ handleResize = true,
19
+ explicitCollapse = false,
20
+ subDesktop = false,
21
+ storageLocation = options.storage === 'sessionStorage' ? 'sessionStorage' : 'localStorage',
22
+
23
+ inMobileState = function () {
24
+ return bodyContentElement.hasClass('hidden-nav');
25
+ },
26
+
27
+ forceResize = function (delay) {
28
+ setTimeout(function () {
29
+ $(window).trigger('resize');
30
+ }, delay);
31
+ },
32
+
33
+ showSecondaryMenu = function () {
34
+ if (inMobileState() || !subDesktop) {
35
+ navElement.addClass('secondary-visible-pf');
36
+ bodyContentElement.addClass('secondary-visible-pf');
37
+ }
38
+
39
+ // Dispatch a resize event when showing the secondary menu in non-subdesktop state to
40
+ // allow content to adjust to the secondary menu sizing
41
+ if (!subDesktop) {
42
+ forceResize(100);
43
+ }
44
+ },
45
+
46
+ hideSecondaryMenu = function () {
47
+ navElement.removeClass('secondary-visible-pf');
48
+ bodyContentElement.removeClass('secondary-visible-pf');
49
+
50
+ if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
51
+ navElement.removeClass('hover-secondary-nav-pf');
52
+ }
53
+
54
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
55
+ $(item).removeClass('mobile-nav-item-pf');
56
+ });
57
+
58
+ navElement.find('.is-hover').each(function (index, item) {
59
+ $(item).removeClass('is-hover');
60
+ });
61
+ },
62
+
63
+ hideTertiaryMenu = function () {
64
+ navElement.removeClass('tertiary-visible-pf');
65
+ bodyContentElement.removeClass('tertiary-visible-pf');
66
+
67
+ if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
68
+ navElement.removeClass('hover-tertiary-nav-pf');
69
+ }
70
+
71
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
72
+ $(item).removeClass('mobile-nav-item-pf');
73
+ });
74
+
75
+ navElement.find('.is-hover').each(function (index, item) {
76
+ $(item).removeClass('is-hover');
77
+ });
78
+ },
79
+
80
+ setActiveItem = function (item) {
81
+ // remove all .active
82
+ $('.nav-pf-vertical .list-group-item.active').removeClass('active');
83
+
84
+ // add .active to item and its parents
85
+ item.addClass('active').parents('.list-group-item').addClass('active');
86
+ },
87
+
88
+ updateSecondaryMenuDisplayAfterSelection = function () {
89
+ if (inMobileState()) {
90
+ navElement.removeClass('show-mobile-nav');
91
+ hideSecondaryMenu();
92
+ navElement.find('.mobile-nav-item-pf').each(function (index, item) {
93
+ $(item).removeClass('mobile-nav-item-pf');
94
+ });
95
+ } else {
96
+ showSecondaryMenu();
97
+ }
98
+ },
99
+
100
+ updateSecondaryCollapsedState = function (setCollapsed, collapsedItem) {
101
+ if (setCollapsed) {
102
+ collapsedItem.addClass('collapsed');
103
+ navElement.addClass('collapsed-secondary-nav-pf');
104
+ bodyContentElement.addClass('collapsed-secondary-nav-pf');
105
+ } else {
106
+ if (collapsedItem) {
107
+ collapsedItem.removeClass('collapsed');
108
+ } else {
109
+ // Remove any collapsed secondary menus
110
+ navElement.find('[data-toggle="collapse-secondary-nav"]').each(function (index, element) {
111
+ var $e = $(element);
112
+ $e.removeClass('collapsed');
113
+ });
114
+ }
115
+ navElement.removeClass('collapsed-secondary-nav-pf');
116
+ bodyContentElement.removeClass('collapsed-secondary-nav-pf');
117
+ }
118
+ },
119
+
120
+ updateTertiaryCollapsedState = function (setCollapsed, collapsedItem) {
121
+ if (setCollapsed) {
122
+ collapsedItem.addClass('collapsed');
123
+ navElement.addClass('collapsed-tertiary-nav-pf');
124
+ bodyContentElement.addClass('collapsed-tertiary-nav-pf');
125
+ updateSecondaryCollapsedState(false);
126
+ } else {
127
+ if (collapsedItem) {
128
+ collapsedItem.removeClass('collapsed');
129
+ } else {
130
+ // Remove any collapsed tertiary menus
131
+ navElement.find('[data-toggle="collapse-tertiary-nav"]').each(function (index, element) {
132
+ var $e = $(element);
133
+ $e.removeClass('collapsed');
134
+ });
135
+ }
136
+ navElement.removeClass('collapsed-tertiary-nav-pf');
137
+ bodyContentElement.removeClass('collapsed-tertiary-nav-pf');
138
+ }
139
+ },
140
+
141
+ updateMobileMenu = function (selected, secondaryItem) {
142
+ $(document).find('.list-group-item.mobile-nav-item-pf').each(function (index, item) {
143
+ $(item).removeClass('mobile-nav-item-pf');
144
+ });
145
+ $(document).find('.list-group-item.mobile-secondary-item-pf').each(function (index, item) {
146
+ $(item).removeClass('mobile-secondary-item-pf');
147
+ });
148
+ if (selected) {
149
+ selected.addClass('mobile-nav-item-pf');
150
+ if (secondaryItem) {
151
+ secondaryItem.addClass('mobile-secondary-item-pf');
152
+ navElement.removeClass('show-mobile-secondary');
153
+ navElement.addClass('show-mobile-tertiary');
154
+ } else {
155
+ navElement.addClass('show-mobile-secondary');
156
+ navElement.removeClass('show-mobile-tertiary');
157
+ }
158
+ } else {
159
+ navElement.removeClass('show-mobile-secondary');
160
+ navElement.removeClass('show-mobile-tertiary');
161
+ }
162
+ },
163
+
164
+ enterMobileState = function () {
165
+ if (!navElement.hasClass('hidden')) {
166
+ //Set the nav to being hidden
167
+ navElement.addClass('hidden');
168
+ navElement.removeClass('collapsed');
169
+
170
+ //Set the body class to the correct state
171
+ bodyContentElement.removeClass('collapsed-nav');
172
+ bodyContentElement.addClass('hidden-nav');
173
+
174
+ // Reset the collapsed states
175
+ updateSecondaryCollapsedState(false);
176
+ updateTertiaryCollapsedState(false);
177
+
178
+ explicitCollapse = false;
179
+ }
180
+ },
181
+
182
+ exitMobileState = function () {
183
+ // Always remove the hidden & peek class
184
+ navElement.removeClass('hidden show-mobile-nav');
185
+
186
+ // Set the body class back to the default
187
+ bodyContentElement.removeClass('hidden-nav');
188
+ },
189
+
190
+ checkNavState = function () {
191
+ var width = $(window).width(), makeSecondaryVisible;
192
+ if (!handleResize) {
193
+ return;
194
+ }
195
+ // Check to see if we need to enter/exit the mobile state
196
+ if (width < $.pfBreakpoints.tablet && !explicitCollapse) {
197
+ enterMobileState();
198
+ } else if (navElement.hasClass('hidden')) {
199
+ exitMobileState();
200
+ }
201
+
202
+ // Check to see if we need to enter/exit the sub desktop state
203
+ if (width < $.pfBreakpoints.desktop) {
204
+ if (!subDesktop) {
205
+ // Collapse the navigation bars when entering sub desktop mode
206
+ navElement.addClass('collapsed');
207
+ bodyContentElement.addClass('collapsed-nav');
208
+ }
209
+ if (width >= $.pfBreakpoints.tablet) {
210
+ hideSecondaryMenu();
211
+ }
212
+ subDesktop = true;
213
+ } else {
214
+ makeSecondaryVisible = subDesktop && (navElement.find('.secondary-nav-item-pf.active').length > 0);
215
+ subDesktop = false;
216
+ if (makeSecondaryVisible) {
217
+
218
+ showSecondaryMenu();
219
+ }
220
+ }
221
+
222
+ if (explicitCollapse) {
223
+ navElement.addClass('collapsed');
224
+ bodyContentElement.addClass('collapsed-nav');
225
+ } else {
226
+ navElement.removeClass('collapsed');
227
+ bodyContentElement.removeClass('collapsed-nav');
228
+ }
229
+ },
230
+
231
+ collapseMenu = function () {
232
+ //Make sure this is expanded
233
+ navElement.addClass('collapsed');
234
+ //Set the body class to the correct state
235
+ bodyContentElement.addClass('collapsed-nav');
236
+
237
+ if (subDesktop) {
238
+ hideSecondaryMenu();
239
+ }
240
+
241
+ explicitCollapse = true;
242
+ },
243
+
244
+ enableTransitions = function () {
245
+ // enable transitions only when toggleNavBarButton is clicked or window is resized
246
+ $('html').addClass('transitions');
247
+ },
248
+
249
+ expandMenu = function () {
250
+ //Make sure this is expanded
251
+ navElement.removeClass('collapsed');
252
+ //Set the body class to the correct state
253
+ bodyContentElement.removeClass('collapsed-nav');
254
+
255
+ explicitCollapse = false;
256
+
257
+ // Dispatch a resize event when showing the expanding then menu to
258
+ // allow content to adjust to the menu sizing
259
+ if (!subDesktop) {
260
+ forceResize(100);
261
+ }
262
+ },
263
+
264
+ bindMenuBehavior = function () {
265
+ toggleNavBarButton.on('click', function (e) {
266
+ var $drawer;
267
+
268
+ enableTransitions();
269
+
270
+ if (inMobileState()) {
271
+ // Toggle the mobile nav
272
+ if (navElement.hasClass('show-mobile-nav')) {
273
+ navElement.removeClass('show-mobile-nav');
274
+ } else {
275
+ // Always start at the primary menu
276
+ updateMobileMenu();
277
+ navElement.addClass('show-mobile-nav');
278
+
279
+ // If the notification drawer is shown, hide it
280
+ if (!ignoreDrawer) {
281
+ $drawer = $('.drawer-pf');
282
+ if ($drawer.length) {
283
+ $('.drawer-pf-trigger').removeClass('open');
284
+ $drawer.addClass('hide');
285
+ }
286
+ }
287
+ }
288
+ } else if (navElement.hasClass('collapsed')) {
289
+ if (options.rememberOpenState) {
290
+ window[storageLocation].setItem('patternfly-navigation-primary', 'expanded');
291
+ }
292
+ expandMenu();
293
+ } else {
294
+ if (options.rememberOpenState) {
295
+ window[storageLocation].setItem('patternfly-navigation-primary', 'collapsed');
296
+ }
297
+ collapseMenu();
298
+ }
299
+ });
300
+ },
301
+
302
+ forceHideSecondaryMenu = function () {
303
+ navElement.addClass('force-hide-secondary-nav-pf');
304
+ setTimeout(function () {
305
+ navElement.removeClass('force-hide-secondary-nav-pf');
306
+ }, 500);
307
+ },
308
+
309
+ bindMenuItemsBehavior = function (handleSelection) {
310
+ $(document).find('.nav-pf-vertical .list-group-item').each(function (index, item) {
311
+ var onClickFn,
312
+ $item = $(item),
313
+ $nav = $item.closest('[class*="nav-pf-"]');
314
+
315
+ if ($nav.hasClass('nav-pf-vertical')) {
316
+ // Set main nav active item on click or show secondary nav if it has a secondary nav bar and we are in the mobile state
317
+ onClickFn = function (event) {
318
+ var $this = $(this), $secondaryItem, $tertiaryItem, $activeItem;
319
+
320
+ if (!$this.hasClass('secondary-nav-item-pf')) {
321
+ hideSecondaryMenu();
322
+ if (inMobileState()) {
323
+ updateMobileMenu();
324
+ navElement.removeClass('show-mobile-nav');
325
+ }
326
+ if (handleSelection) {
327
+ setActiveItem($this);
328
+ // Don't process the click on the item
329
+ event.stopImmediatePropagation();
330
+ }
331
+ } else if (inMobileState()) {
332
+ updateMobileMenu($this);
333
+ } else if (handleSelection) {
334
+ $activeItem = $secondaryItem = $item.find('.nav-pf-secondary-nav > .list-group > .list-group-item').eq(0);
335
+
336
+ if ($secondaryItem.hasClass('tertiary-nav-item-pf')) {
337
+ $activeItem = $secondaryItem.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
338
+ }
339
+
340
+ setActiveItem($activeItem);
341
+ event.stopImmediatePropagation();
342
+ }
343
+ };
344
+
345
+ } else if ($nav.hasClass('nav-pf-secondary-nav')) {
346
+ // Set secondary nav active item on click or show tertiary nav if it has a tertiary nav bar and we are in the mobile state
347
+ onClickFn = function (event) {
348
+ var $this = $(this), $tertiaryItem, $primaryItem;
349
+ if (!$this.hasClass('tertiary-nav-item-pf')) {
350
+ if (inMobileState()) {
351
+ updateMobileMenu();
352
+ navElement.removeClass('show-mobile-nav');
353
+ }
354
+ updateSecondaryMenuDisplayAfterSelection();
355
+ if (handleSelection) {
356
+ setActiveItem($item);
357
+ hideSecondaryMenu();
358
+ event.stopImmediatePropagation();
359
+ }
360
+ } else if (inMobileState()) {
361
+ $primaryItem = $item.parents('.list-group-item');
362
+ updateMobileMenu($this, $primaryItem);
363
+ event.stopImmediatePropagation();
364
+ } else if (handleSelection) {
365
+ $tertiaryItem = $item.find('.nav-pf-tertiary-nav > .list-group > .list-group-item').eq(0);
366
+ setActiveItem($tertiaryItem);
367
+ event.stopImmediatePropagation();
368
+ }
369
+ };
370
+
371
+ } else if ($nav.hasClass('nav-pf-tertiary-nav')) {
372
+ // Set tertiary nav active item on click
373
+ onClickFn = function (event) {
374
+ if (inMobileState()) {
375
+ updateMobileMenu();
376
+ navElement.removeClass('show-mobile-nav');
377
+ }
378
+ updateSecondaryMenuDisplayAfterSelection();
379
+ if (handleSelection) {
380
+ setActiveItem($item);
381
+ hideTertiaryMenu();
382
+ hideSecondaryMenu();
383
+ event.stopImmediatePropagation();
384
+ }
385
+ };
386
+ }
387
+
388
+ // register event handler
389
+ $item.on('click.pf.secondarynav.data-api', onClickFn);
390
+ });
391
+
392
+ $(document).find('.secondary-nav-item-pf').each(function (index, secondaryItem) {
393
+ var $secondaryItem = $(secondaryItem);
394
+
395
+ // Collapse the secondary nav bar when the toggle is clicked
396
+ $secondaryItem.on('click.pf.secondarynav.data-api', '[data-toggle="collapse-secondary-nav"]', function (e) {
397
+ var $this = $(this);
398
+ if (inMobileState()) {
399
+ updateMobileMenu();
400
+ e.stopImmediatePropagation();
401
+ } else {
402
+ if ($this.hasClass('collapsed')) {
403
+ if (options.rememberOpenState) {
404
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
405
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
406
+ }
407
+ updateSecondaryCollapsedState(false, $this);
408
+ forceHideSecondaryMenu();
409
+ } else {
410
+ if (options.rememberOpenState) {
411
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'collapsed');
412
+ }
413
+ updateSecondaryCollapsedState(true, $this);
414
+ }
415
+ }
416
+ navElement.removeClass('hover-secondary-nav-pf');
417
+ if (handleSelection) {
418
+ // Don't process the click on the parent item
419
+ e.stopImmediatePropagation();
420
+ }
421
+ });
422
+
423
+ $secondaryItem.find('.tertiary-nav-item-pf').each(function (index, primaryItem) {
424
+ var $primaryItem = $(primaryItem);
425
+ // Collapse the tertiary nav bar when the toggle is clicked
426
+ $primaryItem.on('click.pf.tertiarynav.data-api', '[data-toggle="collapse-tertiary-nav"]', function (e) {
427
+ var $this = $(this);
428
+ if (inMobileState()) {
429
+ updateMobileMenu($secondaryItem);
430
+ e.stopImmediatePropagation();
431
+ } else {
432
+ if ($this.hasClass('collapsed')) {
433
+ if (options.rememberOpenState) {
434
+ window[storageLocation].setItem('patternfly-navigation-secondary', 'expanded');
435
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'expanded');
436
+ }
437
+ updateTertiaryCollapsedState(false, $this);
438
+ forceHideSecondaryMenu();
439
+ } else {
440
+ if (options.rememberOpenState) {
441
+ window[storageLocation].setItem('patternfly-navigation-tertiary', 'collapsed');
442
+ }
443
+ updateTertiaryCollapsedState(true, $this);
444
+ }
445
+ }
446
+ navElement.removeClass('hover-secondary-nav-pf');
447
+ navElement.removeClass('hover-tertiary-nav-pf');
448
+ if (handleSelection) {
449
+ // Don't process the click on the parent item
450
+ e.stopImmediatePropagation();
451
+ }
452
+ });
453
+ });
454
+ });
455
+
456
+ // Show secondary nav bar on hover of secondary nav items
457
+ $(document).on('mouseenter.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
458
+ var $this = $(this);
459
+ if (!inMobileState()) {
460
+ if ($this[0].navUnHoverTimeout !== undefined) {
461
+ clearTimeout($this[0].navUnHoverTimeout);
462
+ $this[0].navUnHoverTimeout = undefined;
463
+ } else if ($this[0].navHoverTimeout === undefined) {
464
+ $this[0].navHoverTimeout = setTimeout(function () {
465
+ navElement.addClass('hover-secondary-nav-pf');
466
+ $this.addClass('is-hover');
467
+ $this[0].navHoverTimeout = undefined;
468
+ }, options.hoverDelay);
469
+ }
470
+ }
471
+ });
472
+
473
+ $(document).on('mouseleave.pf.tertiarynav.data-api', '.secondary-nav-item-pf', function (e) {
474
+ var $this = $(this);
475
+ if ($this[0].navHoverTimeout !== undefined) {
476
+ clearTimeout($this[0].navHoverTimeout);
477
+ $this[0].navHoverTimeout = undefined;
478
+ } else if ($this[0].navUnHoverTimeout === undefined &&
479
+ navElement.find('.secondary-nav-item-pf.is-hover').length > 0) {
480
+ $this[0].navUnHoverTimeout = setTimeout(function () {
481
+ if (navElement.find('.secondary-nav-item-pf.is-hover').length <= 1) {
482
+ navElement.removeClass('hover-secondary-nav-pf');
483
+ }
484
+ $this.removeClass('is-hover');
485
+ $this[0].navUnHoverTimeout = undefined;
486
+ }, options.hideDelay);
487
+ }
488
+ });
489
+
490
+ // Show tertiary nav bar on hover of secondary nav items
491
+ $(document).on('mouseover.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
492
+ var $this = $(this);
493
+ if (!inMobileState()) {
494
+ if ($this[0].navUnHoverTimeout !== undefined) {
495
+ clearTimeout($this[0].navUnHoverTimeout);
496
+ $this[0].navUnHoverTimeout = undefined;
497
+ } else if ($this[0].navHoverTimeout === undefined) {
498
+ $this[0].navHoverTimeout = setTimeout(function () {
499
+ navElement.addClass('hover-tertiary-nav-pf');
500
+ $this.addClass('is-hover');
501
+ $this[0].navHoverTimeout = undefined;
502
+ }, options.hoverDelay);
503
+ }
504
+ }
505
+ });
506
+ $(document).on('mouseout.pf.tertiarynav.data-api', '.tertiary-nav-item-pf', function (e) {
507
+ var $this = $(this);
508
+ if ($this[0].navHoverTimeout !== undefined) {
509
+ clearTimeout($this[0].navHoverTimeout);
510
+ $this[0].navHoverTimeout = undefined;
511
+ } else if ($this[0].navUnHoverTimeout === undefined) {
512
+ $this[0].navUnHoverTimeout = setTimeout(function () {
513
+ if (navElement.find('.tertiary-nav-item-pf.is-hover').length <= 1) {
514
+ navElement.removeClass('hover-tertiary-nav-pf');
515
+ }
516
+ $this.removeClass('is-hover');
517
+ $this[0].navUnHoverTimeout = undefined;
518
+ }, options.hideDelay);
519
+ }
520
+ });
521
+ },
522
+
523
+ loadFromLocalStorage = function () {
524
+ if (inMobileState()) {
525
+ return;
526
+ }
527
+
528
+ if (window[storageLocation].getItem('patternfly-navigation-primary') === 'collapsed') {
529
+ collapseMenu();
530
+ }
531
+
532
+ if ($('.nav-pf-vertical.nav-pf-vertical-collapsible-menus').length > 0) {
533
+ if (window[storageLocation].getItem('patternfly-navigation-secondary') === 'collapsed') {
534
+ updateSecondaryCollapsedState(true, $('.secondary-nav-item-pf.active [data-toggle=collapse-secondary-nav]'));
535
+ }
536
+
537
+ if (window[storageLocation].getItem('patternfly-navigation-tertiary') === 'collapsed') {
538
+ updateTertiaryCollapsedState(true, $('.tertiary-nav-item-pf.active [data-toggle=collapse-tertiary-nav]'));
539
+ }
540
+ }
541
+ },
542
+
543
+ setTooltips = function () {
544
+ var tooltipOptions = {
545
+ container: 'body',
546
+ placement: 'bottom',
547
+ delay: { 'show': '500', 'hide': '200' },
548
+ template: '<div class="nav-pf-vertical-tooltip tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
549
+ };
550
+ $('.nav-pf-vertical [data-toggle="tooltip"]').tooltip(tooltipOptions);
551
+
552
+ $('.nav-pf-vertical').on("show.bs.tooltip", function (e) {
553
+ return $(this).hasClass("collapsed");
554
+ });
555
+ },
556
+
557
+ init = function (handleItemSelections) {
558
+ // Hide the nav menus during initialization
559
+ navElement.addClass('hide-nav-pf');
560
+ bodyContentElement.addClass('hide-nav-pf');
561
+
562
+ //Set correct state on load
563
+ checkNavState();
564
+
565
+ // Bind Top level hamburger menu with menu behavior;
566
+ bindMenuBehavior();
567
+
568
+ // Bind menu items
569
+ bindMenuItemsBehavior(handleItemSelections);
570
+
571
+ //Set tooltips
572
+ setTooltips();
573
+
574
+ if (options.rememberOpenState) {
575
+ loadFromLocalStorage();
576
+ }
577
+
578
+ // Show the nav menus
579
+ navElement.removeClass('hide-nav-pf');
580
+ bodyContentElement.removeClass('hide-nav-pf');
581
+ forceResize(250);
582
+ },
583
+
584
+ self = {
585
+ hideMenu: function () {
586
+ handleResize = false;
587
+ enterMobileState();
588
+ },
589
+ showMenu: function () {
590
+ handleResize = true;
591
+ exitMobileState();
592
+ },
593
+ isVisible: function () {
594
+ return handleResize;
595
+ }
596
+ };
597
+
598
+ if (!$.fn.setupVerticalNavigation.self) {
599
+ $.fn.setupVerticalNavigation.self = self;
600
+ //Listen for the window resize event and collapse/hide as needed
601
+ $(window).on('resize', function () {
602
+ checkNavState();
603
+ enableTransitions();
604
+ });
605
+
606
+ init(handleItemSelections);
607
+ }
608
+ return $.fn.setupVerticalNavigation.self;
609
+ };
610
+ }(jQuery));