foundation-rails 6.4.3.0 → 6.5.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/.ruby-version +1 -1
- data/.travis.yml +14 -3
- data/Appraisals +19 -0
- data/Gemfile +5 -2
- data/Gemfile.lock +193 -0
- data/README.md +53 -24
- data/Rakefile +11 -12
- data/bower.json +3 -3
- data/foundation-rails.gemspec +5 -5
- data/gemfiles/rails_4.1.gemfile +10 -0
- data/gemfiles/rails_4.1.gemfile.lock +178 -0
- data/gemfiles/rails_4.2.gemfile +10 -0
- data/gemfiles/rails_4.2.gemfile.lock +178 -0
- data/gemfiles/rails_5.0.gemfile +10 -0
- data/gemfiles/rails_5.0.gemfile.lock +193 -0
- data/gemfiles/rails_5.1.gemfile +10 -0
- data/gemfiles/rails_5.1.gemfile.lock +193 -0
- data/gemfiles/rails_5.2.gemfile +10 -0
- data/gemfiles/rails_5.2.gemfile.lock +193 -0
- data/lib/foundation/rails/version.rb +1 -1
- data/lib/generators/foundation/install_generator.rb +1 -1
- data/lib/generators/foundation/templates/_settings.scss +5 -5
- data/spec/support/helpers.rb +1 -1
- data/vendor/assets/js/foundation.cjs.js +11795 -0
- data/vendor/assets/js/foundation.cjs.js.map +1 -0
- data/vendor/assets/js/foundation.es6.js +10361 -0
- data/vendor/assets/js/foundation.es6.js.map +1 -0
- data/vendor/assets/js/foundation.esm.js +11756 -0
- data/vendor/assets/js/foundation.esm.js.map +1 -0
- data/vendor/assets/js/foundation.js +13214 -31
- data/vendor/assets/js/foundation.js.map +1 -0
- data/vendor/assets/js/foundation.min.js +2 -0
- data/vendor/assets/js/foundation.min.js.map +1 -0
- data/vendor/assets/js/foundation.sprockets.js +38 -0
- data/vendor/assets/js/{foundation.abide.js → plugins/foundation.abide.js} +317 -138
- data/vendor/assets/js/plugins/foundation.abide.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.abide.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.abide.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.accordion.js +676 -0
- data/vendor/assets/js/plugins/foundation.accordion.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.accordion.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.accordion.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.accordionMenu.js +637 -0
- data/vendor/assets/js/plugins/foundation.accordionMenu.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.accordionMenu.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.accordionMenu.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.core.js +1072 -0
- data/vendor/assets/js/plugins/foundation.core.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.core.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.core.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.drilldown.js +982 -0
- data/vendor/assets/js/plugins/foundation.drilldown.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.drilldown.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.drilldown.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.dropdown.js +1324 -0
- data/vendor/assets/js/plugins/foundation.dropdown.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.dropdown.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.dropdown.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.dropdownMenu.js +792 -0
- data/vendor/assets/js/plugins/foundation.dropdownMenu.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.dropdownMenu.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.equalizer.js +638 -0
- data/vendor/assets/js/plugins/foundation.equalizer.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.equalizer.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.equalizer.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.interchange.js +471 -0
- data/vendor/assets/js/plugins/foundation.interchange.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.interchange.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.interchange.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.magellan.js +551 -0
- data/vendor/assets/js/plugins/foundation.magellan.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.magellan.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.magellan.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.offcanvas.js +1164 -0
- data/vendor/assets/js/plugins/foundation.offcanvas.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.offcanvas.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.offcanvas.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.orbit.js +883 -0
- data/vendor/assets/js/plugins/foundation.orbit.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.orbit.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.orbit.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js +546 -0
- data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.responsiveAccordionTabs.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveMenu.js +437 -0
- data/vendor/assets/js/plugins/foundation.responsiveMenu.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.responsiveMenu.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveToggle.js +405 -0
- data/vendor/assets/js/plugins/foundation.responsiveToggle.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.responsiveToggle.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.reveal.js +1278 -0
- data/vendor/assets/js/plugins/foundation.reveal.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.reveal.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.reveal.min.js.map +1 -0
- data/vendor/assets/js/{foundation.slider.js → plugins/foundation.slider.js} +405 -271
- data/vendor/assets/js/plugins/foundation.slider.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.slider.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.slider.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.smoothScroll.js +382 -0
- data/vendor/assets/js/plugins/foundation.smoothScroll.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.smoothScroll.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.smoothScroll.min.js.map +1 -0
- data/vendor/assets/js/{foundation.sticky.js → plugins/foundation.sticky.js} +325 -203
- data/vendor/assets/js/plugins/foundation.sticky.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.sticky.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.sticky.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.tabs.js +813 -0
- data/vendor/assets/js/plugins/foundation.tabs.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.tabs.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.tabs.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.toggler.js +713 -0
- data/vendor/assets/js/plugins/foundation.toggler.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.toggler.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.toggler.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.tooltip.js +1346 -0
- data/vendor/assets/js/plugins/foundation.tooltip.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.tooltip.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.tooltip.min.js.map +1 -0
- data/vendor/assets/js/{foundation.util.box.js → plugins/foundation.util.box.js} +136 -54
- data/vendor/assets/js/plugins/foundation.util.box.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.box.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.box.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.imageLoader.js +218 -0
- data/vendor/assets/js/plugins/foundation.util.imageLoader.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.imageLoader.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.keyboard.js +351 -0
- data/vendor/assets/js/plugins/foundation.util.keyboard.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.keyboard.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.keyboard.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.mediaQuery.js +405 -0
- data/vendor/assets/js/plugins/foundation.util.mediaQuery.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.mediaQuery.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.motion.js +282 -0
- data/vendor/assets/js/plugins/foundation.util.motion.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.motion.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.motion.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.nest.js +240 -0
- data/vendor/assets/js/plugins/foundation.util.nest.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.nest.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.nest.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.timer.js +226 -0
- data/vendor/assets/js/plugins/foundation.util.timer.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.timer.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.timer.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.touch.js +365 -0
- data/vendor/assets/js/plugins/foundation.util.touch.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.touch.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.touch.min.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.triggers.js +480 -0
- data/vendor/assets/js/plugins/foundation.util.triggers.js.map +1 -0
- data/vendor/assets/js/plugins/foundation.util.triggers.min.js +2 -0
- data/vendor/assets/js/plugins/foundation.util.triggers.min.js.map +1 -0
- data/vendor/assets/scss/_global.scss +10 -15
- data/vendor/assets/scss/components/_accordion-menu.scss +6 -3
- data/vendor/assets/scss/components/_accordion.scss +1 -0
- data/vendor/assets/scss/components/_breadcrumbs.scss +8 -6
- data/vendor/assets/scss/components/_button-group.scss +27 -8
- data/vendor/assets/scss/components/_button.scss +36 -8
- data/vendor/assets/scss/components/_card.scss +2 -2
- data/vendor/assets/scss/components/_drilldown.scss +5 -6
- data/vendor/assets/scss/components/_dropdown-menu.scss +15 -10
- data/vendor/assets/scss/components/_dropdown.scss +7 -4
- data/vendor/assets/scss/components/_flex.scss +6 -4
- data/vendor/assets/scss/components/_media-object.scss +33 -33
- data/vendor/assets/scss/components/_menu.scss +0 -4
- data/vendor/assets/scss/components/_off-canvas.scss +4 -4
- data/vendor/assets/scss/components/_orbit.scss +1 -0
- data/vendor/assets/scss/components/_responsive-embed.scss +0 -13
- data/vendor/assets/scss/components/_reveal.scss +19 -14
- data/vendor/assets/scss/components/_table.scss +3 -6
- data/vendor/assets/scss/components/_tabs.scss +1 -4
- data/vendor/assets/scss/components/_thumbnail.scss +1 -1
- data/vendor/assets/scss/components/_visibility.scss +5 -2
- data/vendor/assets/scss/forms/_error.scss +1 -0
- data/vendor/assets/scss/forms/_input-group.scss +10 -10
- data/vendor/assets/scss/forms/_meter.scss +5 -5
- data/vendor/assets/scss/forms/_progress.scss +6 -6
- data/vendor/assets/scss/forms/_range.scss +5 -5
- data/vendor/assets/scss/forms/_text.scss +7 -7
- data/vendor/assets/scss/foundation.scss +74 -57
- data/vendor/assets/scss/grid/_column.scss +2 -6
- data/vendor/assets/scss/grid/_flex-grid.scss +1 -0
- data/vendor/assets/scss/grid/_gutter.scss +0 -15
- data/vendor/assets/scss/grid/_position.scss +28 -4
- data/vendor/assets/scss/motion-ui/_settings.scss +1 -0
- data/vendor/assets/scss/motion-ui/effects/_fade.scss +1 -4
- data/vendor/assets/scss/motion-ui/effects/_hinge.scss +4 -3
- data/vendor/assets/scss/motion-ui/effects/_shake.scss +1 -1
- data/vendor/assets/scss/motion-ui/effects/_slide.scss +4 -3
- data/vendor/assets/scss/motion-ui/effects/_spin.scss +4 -3
- data/vendor/assets/scss/motion-ui/effects/_wiggle.scss +1 -1
- data/vendor/assets/scss/motion-ui/effects/_zoom.scss +2 -2
- data/vendor/assets/scss/motion-ui/motion-ui.scss +2 -0
- data/vendor/assets/scss/motion-ui/transitions/_fade.scss +6 -4
- data/vendor/assets/scss/motion-ui/transitions/_hinge.scss +3 -2
- data/vendor/assets/scss/motion-ui/transitions/_slide.scss +3 -2
- data/vendor/assets/scss/motion-ui/transitions/_spin.scss +2 -1
- data/vendor/assets/scss/motion-ui/transitions/_zoom.scss +6 -4
- data/vendor/assets/scss/motion-ui/util/_animation.scss +1 -1
- data/vendor/assets/scss/motion-ui/util/_args.scss +2 -2
- data/vendor/assets/scss/motion-ui/util/_function.scss +94 -0
- data/vendor/assets/scss/motion-ui/util/_keyframe.scss +5 -5
- data/vendor/assets/scss/motion-ui/util/_series.scss +20 -17
- data/vendor/assets/scss/motion-ui/util/_string.scss +36 -0
- data/vendor/assets/scss/prototype/_relation.scss +1 -1
- data/vendor/assets/scss/prototype/_rounded.scss +3 -0
- data/vendor/assets/scss/prototype/_spacing.scss +94 -121
- data/vendor/assets/scss/settings/_settings.scss +5 -5
- data/vendor/assets/scss/typography/_base.scss +2 -2
- data/vendor/assets/scss/typography/_helpers.scss +1 -1
- data/vendor/assets/scss/typography/_print.scss +4 -0
- data/vendor/assets/scss/util/_breakpoint.scss +22 -10
- data/vendor/assets/scss/util/_color.scss +11 -1
- data/vendor/assets/scss/util/_direction.scss +1 -1
- data/vendor/assets/scss/util/_flex.scss +12 -7
- data/vendor/assets/scss/util/_mixins.scss +7 -3
- data/vendor/assets/scss/util/_unit.scss +3 -3
- data/vendor/assets/scss/vendor/normalize.scss +281 -0
- data/vendor/assets/scss/xy-grid/_cell.scss +33 -17
- data/vendor/assets/scss/xy-grid/_classes.scss +31 -11
- data/vendor/assets/scss/xy-grid/_collapse.scss +2 -1
- data/vendor/assets/scss/xy-grid/_frame.scss +2 -1
- data/vendor/assets/scss/xy-grid/_grid.scss +1 -0
- data/vendor/assets/scss/xy-grid/_gutters.scss +1 -1
- data/vendor/assets/scss/xy-grid/_layout.scss +2 -1
- data/vendor/assets/scss/xy-grid/_position.scss +5 -1
- metadata +172 -80
- data/vendor/assets/_vendor/normalize-scss/sass/_normalize.scss +0 -3
- data/vendor/assets/_vendor/normalize-scss/sass/normalize/_import-now.scss +0 -11
- data/vendor/assets/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +0 -676
- data/vendor/assets/_vendor/normalize-scss/sass/normalize/_variables.scss +0 -36
- data/vendor/assets/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +0 -61
- data/vendor/assets/js/foundation.accordion.js +0 -511
- data/vendor/assets/js/foundation.accordionMenu.js +0 -527
- data/vendor/assets/js/foundation.core.js +0 -860
- data/vendor/assets/js/foundation.drilldown.js +0 -759
- data/vendor/assets/js/foundation.dropdown.js +0 -1151
- data/vendor/assets/js/foundation.dropdownMenu.js +0 -677
- data/vendor/assets/js/foundation.equalizer.js +0 -542
- data/vendor/assets/js/foundation.interchange.js +0 -399
- data/vendor/assets/js/foundation.magellan.js +0 -449
- data/vendor/assets/js/foundation.offcanvas.js +0 -1054
- data/vendor/assets/js/foundation.orbit.js +0 -767
- data/vendor/assets/js/foundation.responsiveAccordionTabs.js +0 -440
- data/vendor/assets/js/foundation.responsiveMenu.js +0 -362
- data/vendor/assets/js/foundation.responsiveToggle.js +0 -336
- data/vendor/assets/js/foundation.reveal.js +0 -1065
- data/vendor/assets/js/foundation.smoothScroll.js +0 -303
- data/vendor/assets/js/foundation.tabs.js +0 -678
- data/vendor/assets/js/foundation.toggler.js +0 -601
- data/vendor/assets/js/foundation.tooltip.js +0 -1194
- data/vendor/assets/js/foundation.util.imageLoader.js +0 -163
- data/vendor/assets/js/foundation.util.keyboard.js +0 -298
- data/vendor/assets/js/foundation.util.mediaQuery.js +0 -354
- data/vendor/assets/js/foundation.util.motion.js +0 -231
- data/vendor/assets/js/foundation.util.nest.js +0 -181
- data/vendor/assets/js/foundation.util.timer.js +0 -170
- data/vendor/assets/js/foundation.util.touch.js +0 -275
- data/vendor/assets/js/foundation.util.triggers.js +0 -398
- data/vendor/assets/scss/prototype/_typescale.scss +0 -20
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/universalModuleDefinition","webpack://__FOUNDATION_EXTERNAL__.[name]/webpack/bootstrap","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core.plugin\",\"commonjs\":\"./foundation.core.plugin\",\"commonjs2\":\"./foundation.core.plugin\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core.utils\",\"commonjs\":\"./foundation.core.utils\",\"commonjs2\":\"./foundation.core.utils\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"}","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/entries/plugins/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/./js/foundation.drilldown.js","webpack://__FOUNDATION_EXTERNAL__.[name]/external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"}"],"names":["Foundation","plugin","Drilldown","element","options","$element","$","extend","defaults","data","className","_init","Keyboard","register","Nest","Feather","autoApplyClass","addClass","attr","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","GetYoDigits","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","_events","$menu","$back","length","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","$elem","off","on","e","target","parentsUntil","stopImmediatePropagation","preventDefault","_show","closeOnClick","$body","contains","_hideAll","scrollTop","_bindHandler","_scrollTop","bind","_resize","$scrollTopElement","scrollTopElement","scrollPos","parseInt","offset","top","scrollTopOffset","stop","animate","animationDuration","animationEasing","trigger","add","$elements","$prevElement","$nextElement","i","is","eq","Math","max","min","handleKey","next","one","transitionend","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","height","closest","removeClass","parentSubMenu","autoFocus","$expandedSubmenus","index","_setHideSubMenuClasses","isLastChild","_setShowSubMenuClasses","$submenu","blur","maxHeight","result","numOfElems","Box","GetDimensions","getBoundingClientRect","width","Burn","unwrap","remove","end","detach","removeData","Plugin"],"mappings":"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","file":"foundation.drilldown.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.core.plugin\"), require(\"./foundation.core.utils\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.core.plugin\", \"./foundation.core.utils\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.drilldown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.core.plugin\"), require(\"./foundation.core.utils\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__, __WEBPACK_EXTERNAL_MODULE__foundation_core_utils__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core_utils__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;","module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;","import { Foundation } from './foundation.core';\n\nimport { Drilldown } from '../../foundation.drilldown';\nFoundation.plugin(Drilldown, 'Drilldown');\n\nexport { Foundation, Drilldown };\n","'use strict';\n\nimport $ from 'jquery';\nimport { Keyboard } from './foundation.util.keyboard';\nimport { Nest } from './foundation.util.nest';\nimport { GetYoDigits, transitionend } from './foundation.core.utils';\nimport { Box } from './foundation.util.box';\nimport { Plugin } from './foundation.core.plugin';\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nclass Drilldown extends Plugin {\n /**\n * Creates a new instance of a drilldown menu.\n * @class\n * @name Drilldown\n * @param {jQuery} element - jQuery object to make into an accordion menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Drilldown.defaults, this.$element.data(), options);\n this.className = 'Drilldown'; // ie9 back compat\n\n this._init();\n\n Keyboard.register('Drilldown', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close',\n 'TAB': 'down',\n 'SHIFT_TAB': 'up'\n });\n }\n\n /**\n * Initializes the drilldown by creating jQuery collections of elements\n * @private\n */\n _init() {\n Nest.Feather(this.$element, 'drilldown');\n\n if(this.options.autoApplyClass) {\n this.$element.addClass('drilldown');\n }\n\n this.$element.attr({\n 'role': 'tree',\n 'aria-multiselectable': false\n });\n this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n this.$menuItems = this.$element.find('li').not('.js-drilldown-back').attr('role', 'treeitem').find('a');\n\n // Set the main menu as current by default (unless a submenu is selected)\n // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n this.$currentMenu = this.$element;\n\n this.$element.attr('data-mutate', (this.$element.attr('data-drilldown') || GetYoDigits(6, 'drilldown')));\n\n this._prepareMenu();\n this._registerEvents();\n\n this._keyboardEvents();\n }\n\n /**\n * prepares drilldown menu by setting attributes to links and elements\n * sets a min height to prevent content jumping\n * wraps the element if not already wrapped\n * @private\n * @function\n */\n _prepareMenu() {\n var _this = this;\n // if(!this.options.holdOpen){\n // this._menuLinkEvents();\n // }\n this.$submenuAnchors.each(function(){\n var $link = $(this);\n var $sub = $link.parent();\n if(_this.options.parentLink){\n $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"menuitem\"></li>');\n }\n $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n $link.children('[data-submenu]')\n .attr({\n 'aria-hidden': true,\n 'tabindex': 0,\n 'role': 'group'\n });\n _this._events($link);\n });\n this.$submenus.each(function(){\n var $menu = $(this),\n $back = $menu.find('.js-drilldown-back');\n if(!$back.length){\n switch (_this.options.backButtonPosition) {\n case \"bottom\":\n $menu.append(_this.options.backButton);\n break;\n case \"top\":\n $menu.prepend(_this.options.backButton);\n break;\n default:\n console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n }\n }\n _this._back($menu);\n });\n\n this.$submenus.addClass('invisible');\n if(!this.options.autoHeight) {\n this.$submenus.addClass('drilldown-submenu-cover-previous');\n }\n\n // create a wrapper on element if it doesn't exist.\n if(!this.$element.parent().hasClass('is-drilldown')){\n this.$wrapper = $(this.options.wrapper).addClass('is-drilldown');\n if(this.options.animateHeight) this.$wrapper.addClass('animate-height');\n this.$element.wrap(this.$wrapper);\n }\n // set wrapper\n this.$wrapper = this.$element.parent();\n this.$wrapper.css(this._getMaxDims());\n }\n\n _resize() {\n this.$wrapper.css({'max-width': 'none', 'min-height': 'none'});\n // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n this.$wrapper.css(this._getMaxDims());\n }\n\n /**\n * Adds event handlers to elements in the menu.\n * @function\n * @private\n * @param {jQuery} $elem - the current menu item to add handlers to.\n */\n _events($elem) {\n var _this = this;\n\n $elem.off('click.zf.drilldown')\n .on('click.zf.drilldown', function(e){\n if($(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')){\n e.stopImmediatePropagation();\n e.preventDefault();\n }\n\n // if(e.target !== e.currentTarget.firstElementChild){\n // return false;\n // }\n _this._show($elem.parent('li'));\n\n if(_this.options.closeOnClick){\n var $body = $('body');\n $body.off('.zf.drilldown').on('click.zf.drilldown', function(e){\n if (e.target === _this.$element[0] || $.contains(_this.$element[0], e.target)) { return; }\n e.preventDefault();\n _this._hideAll();\n $body.off('.zf.drilldown');\n });\n }\n });\n }\n\n /**\n * Adds event handlers to the menu element.\n * @function\n * @private\n */\n _registerEvents() {\n if(this.options.scrollTop){\n this._bindHandler = this._scrollTop.bind(this);\n this.$element.on('open.zf.drilldown hide.zf.drilldown closed.zf.drilldown',this._bindHandler);\n }\n this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n }\n\n /**\n * Scroll to Top of Element or data-scroll-top-element\n * @function\n * @fires Drilldown#scrollme\n */\n _scrollTop() {\n var _this = this;\n var $scrollTopElement = _this.options.scrollTopElement!=''?$(_this.options.scrollTopElement):_this.$element,\n scrollPos = parseInt($scrollTopElement.offset().top+_this.options.scrollTopOffset, 10);\n $('html, body').stop(true).animate({ scrollTop: scrollPos }, _this.options.animationDuration, _this.options.animationEasing,function(){\n /**\n * Fires after the menu has scrolled\n * @event Drilldown#scrollme\n */\n if(this===$('html')[0])_this.$element.trigger('scrollme.zf.drilldown');\n });\n }\n\n /**\n * Adds keydown event listener to `li`'s in the menu.\n * @private\n */\n _keyboardEvents() {\n var _this = this;\n\n this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function(e){\n var $element = $(this),\n $elements = $element.parent('li').parent('ul').children('li').children('a'),\n $prevElement,\n $nextElement;\n\n $elements.each(function(i) {\n if ($(this).is($element)) {\n $prevElement = $elements.eq(Math.max(0, i-1));\n $nextElement = $elements.eq(Math.min(i+1, $elements.length-1));\n return;\n }\n });\n\n Keyboard.handleKey(e, 'Drilldown', {\n next: function() {\n if ($element.is(_this.$submenuAnchors)) {\n _this._show($element.parent('li'));\n $element.parent('li').one(transitionend($element), function(){\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n previous: function() {\n _this._hide($element.parent('li').parent('ul'));\n $element.parent('li').parent('ul').one(transitionend($element), function(){\n setTimeout(function() {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n },\n up: function() {\n $prevElement.focus();\n // Don't tap focus on first element in root ul\n return !$element.is(_this.$element.find('> li:first-child > a'));\n },\n down: function() {\n $nextElement.focus();\n // Don't tap focus on last element in root ul\n return !$element.is(_this.$element.find('> li:last-child > a'));\n },\n close: function() {\n // Don't close on element in root ul\n if (!$element.is(_this.$element.find('> li > a'))) {\n _this._hide($element.parent().parent());\n $element.parent().parent().siblings('a').focus();\n }\n },\n open: function() {\n if (_this.options.parentLink && $element.attr('href')) { // Link with href\n return false;\n } else if (!$element.is(_this.$menuItems)) { // not menu item means back button\n _this._hide($element.parent('li').parent('ul'));\n $element.parent('li').parent('ul').one(transitionend($element), function(){\n setTimeout(function() {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n } else if ($element.is(_this.$submenuAnchors)) { // Sub menu item\n _this._show($element.parent('li'));\n $element.parent('li').one(transitionend($element), function(){\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n handled: function(preventDefault) {\n if (preventDefault) {\n e.preventDefault();\n }\n e.stopImmediatePropagation();\n }\n });\n }); // end keyboardAccess\n }\n\n /**\n * Closes all open elements, and returns to root menu.\n * @function\n * @fires Drilldown#closed\n */\n _hideAll() {\n var $elem = this.$element.find('.is-drilldown-submenu.is-active').addClass('is-closing');\n if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n $elem.one(transitionend($elem), function(e){\n $elem.removeClass('is-active is-closing');\n });\n /**\n * Fires when the menu is fully closed.\n * @event Drilldown#closed\n */\n this.$element.trigger('closed.zf.drilldown');\n }\n\n /**\n * Adds event listener for each `back` button, and closes open menus.\n * @function\n * @fires Drilldown#back\n * @param {jQuery} $elem - the current sub-menu to add `back` event.\n */\n _back($elem) {\n var _this = this;\n $elem.off('click.zf.drilldown');\n $elem.children('.js-drilldown-back')\n .on('click.zf.drilldown', function(e){\n e.stopImmediatePropagation();\n // console.log('mouseup on back');\n _this._hide($elem);\n\n // If there is a parent submenu, call show\n let parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n if (parentSubMenu.length) {\n _this._show(parentSubMenu);\n }\n });\n }\n\n /**\n * Adds event listener to menu items w/o submenus to close open menus on click.\n * @function\n * @private\n */\n _menuLinkEvents() {\n var _this = this;\n this.$menuItems.not('.is-drilldown-submenu-parent')\n .off('click.zf.drilldown')\n .on('click.zf.drilldown', function(e){\n // e.stopImmediatePropagation();\n setTimeout(function(){\n _this._hideAll();\n }, 0);\n });\n }\n\n /**\n * Sets the CSS classes for submenu to show it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n _setShowSubMenuClasses($elem, trigger) {\n $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n $elem.parent('li').attr('aria-expanded', true);\n if (trigger === true) {\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n }\n\n /**\n * Sets the CSS classes for submenu to hide it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n _setHideSubMenuClasses($elem, trigger) {\n $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n $elem.parent('li').attr('aria-expanded', false);\n if (trigger === true) {\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n }\n\n /**\n * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n */\n _showMenu($elem, autoFocus) {\n\n var _this = this;\n\n // Reset drilldown\n var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n $expandedSubmenus.each(function(index) {\n _this._setHideSubMenuClasses($(this));\n });\n\n // Save the menu as the currently displayed one.\n this.$currentMenu = $elem;\n\n // If target menu is root, focus first link & exit\n if ($elem.is('[data-drilldown]')) {\n if (autoFocus === true) $elem.find('li[role=\"treeitem\"] > a').first().focus();\n if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n return;\n }\n\n // Find all submenus on way to root incl. the element itself\n var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]');\n\n // Open target menu and all submenus on its way to root\n $submenus.each(function(index) {\n\n // Update height of first child (target menu) if autoHeight option true\n if (index === 0 && _this.options.autoHeight) {\n _this.$wrapper.css('height', $(this).data('calcHeight'));\n }\n\n var isLastChild = index == $submenus.length - 1;\n\n // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n // Last child makes sure the event gets always triggered even if going through several menus\n if (isLastChild === true) {\n $(this).one(transitionend($(this)), () => {\n if (autoFocus === true) {\n $elem.find('li[role=\"treeitem\"] > a').first().focus();\n }\n });\n }\n\n _this._setShowSubMenuClasses($(this), isLastChild);\n });\n }\n\n /**\n * Opens a submenu.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n */\n _show($elem) {\n const $submenu = $elem.children('[data-submenu]');\n\n $elem.attr('aria-expanded', true);\n\n this.$currentMenu = $submenu;\n $submenu.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n if (this.options.autoHeight) {\n this.$wrapper.css({ height: $submenu.data('calcHeight') });\n }\n\n /**\n * Fires when the submenu has opened.\n * @event Drilldown#open\n */\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n\n /**\n * Hides a submenu\n * @function\n * @fires Drilldown#hide\n * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n */\n _hide($elem) {\n if(this.options.autoHeight) this.$wrapper.css({height:$elem.parent().closest('ul').data('calcHeight')});\n var _this = this;\n $elem.parent('li').attr('aria-expanded', false);\n $elem.attr('aria-hidden', true);\n $elem.addClass('is-closing')\n .one(transitionend($elem), function(){\n $elem.removeClass('is-active is-closing');\n $elem.blur().addClass('invisible');\n });\n /**\n * Fires when the submenu has closed.\n * @event Drilldown#hide\n */\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n\n /**\n * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n * Prevents content jumping.\n * @function\n * @private\n */\n _getMaxDims() {\n var maxHeight = 0, result = {}, _this = this;\n\n // Recalculate menu heights and total max height\n this.$submenus.add(this.$element).each(function(){\n var numOfElems = $(this).children('li').length;\n var height = Box.GetDimensions(this).height;\n\n maxHeight = height > maxHeight ? height : maxHeight;\n\n if(_this.options.autoHeight) {\n $(this).data('calcHeight',height);\n }\n });\n\n if (this.options.autoHeight)\n result['height'] = this.$currentMenu.data('calcHeight');\n else\n result['min-height'] = `${maxHeight}px`;\n\n result['max-width'] = `${this.$element[0].getBoundingClientRect().width}px`;\n\n return result;\n }\n\n /**\n * Destroys the Drilldown Menu\n * @function\n */\n _destroy() {\n if(this.options.scrollTop) this.$element.off('.zf.drilldown',this._bindHandler);\n this._hideAll();\n\t this.$element.off('mutateme.zf.trigger');\n Nest.Burn(this.$element, 'drilldown');\n this.$element.unwrap()\n .find('.js-drilldown-back, .is-submenu-parent-item').remove()\n .end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu')\n .end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n this.$submenuAnchors.each(function() {\n $(this).off('.zf.drilldown');\n });\n\n this.$element.find('[data-is-parent-link]').detach();\n this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n\n this.$element.find('a').each(function(){\n var $link = $(this);\n $link.removeAttr('tabindex');\n if($link.data('savedHref')){\n $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n }else{ return; }\n });\n };\n}\n\nDrilldown.defaults = {\n /**\n * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n * @option\n * @type {boolian}\n * @default true\n */\n autoApplyClass: true,\n /**\n * Markup used for JS generated back button. Prepended or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n */\n backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n /**\n * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n * @option\n * @type {string}\n * @default top\n */\n backButtonPosition: 'top',\n /**\n * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '<div></div>'\n */\n wrapper: '<div></div>',\n /**\n * Adds the parent link to the submenu.\n * @option\n * @type {boolean}\n * @default false\n */\n parentLink: false,\n /**\n * Allow the menu to return to root list on body click.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false,\n /**\n * Allow the menu to auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n autoHeight: false,\n /**\n * Animate the auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n animateHeight: false,\n /**\n * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n * @option\n * @type {boolean}\n * @default false\n */\n scrollTop: false,\n /**\n * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n * @option\n * @type {string}\n * @default ''\n */\n scrollTopElement: '',\n /**\n * ScrollTop offset\n * @option\n * @type {number}\n * @default 0\n */\n scrollTopOffset: 0,\n /**\n * Scroll animation duration\n * @option\n * @type {number}\n * @default 500\n */\n animationDuration: 500,\n /**\n * Scroll animation easing. Can be `'swing'` or `'linear'`.\n * @option\n * @type {string}\n * @see {@link https://api.jquery.com/animate|JQuery animate}\n * @default 'swing'\n */\n animationEasing: 'swing'\n // holdOpen: false\n};\n\nexport {Drilldown};\n","module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;"],"sourceRoot":""}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("./foundation.core"),require("./foundation.core.plugin"),require("./foundation.core.utils"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("jquery")):"function"==typeof define&&define.amd?define(["./foundation.core","./foundation.core.plugin","./foundation.core.utils","./foundation.util.box","./foundation.util.keyboard","./foundation.util.nest","jquery"],t):"object"==typeof exports?exports["foundation.drilldown"]=t(require("./foundation.core"),require("./foundation.core.plugin"),require("./foundation.core.utils"),require("./foundation.util.box"),require("./foundation.util.keyboard"),require("./foundation.util.nest"),require("jquery")):(e.__FOUNDATION_EXTERNAL__=e.__FOUNDATION_EXTERNAL__||{},e.__FOUNDATION_EXTERNAL__["foundation.drilldown"]=t(e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.core"],e.__FOUNDATION_EXTERNAL__["foundation.util.box"],e.__FOUNDATION_EXTERNAL__["foundation.util.keyboard"],e.__FOUNDATION_EXTERNAL__["foundation.util.nest"],e.jQuery))}(window,function(n,i,o,r,a,s,l){return function(n){var i={};function o(e){if(i[e])return i[e].exports;var t=i[e]={i:e,l:!1,exports:{}};return n[e].call(t.exports,t,t.exports,o),t.l=!0,t.exports}return o.m=n,o.c=i,o.d=function(e,t,n){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(t,e){if(1&e&&(t=o(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(o.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)o.d(n,i,function(e){return t[e]}.bind(null,i));return n},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=3)}({"./foundation.core":function(e,t){e.exports=n},"./foundation.core.plugin":function(e,t){e.exports=i},"./foundation.core.utils":function(e,t){e.exports=o},"./foundation.util.box":function(e,t){e.exports=r},"./foundation.util.keyboard":function(e,t){e.exports=a},"./foundation.util.nest":function(e,t){e.exports=s},"./js/entries/plugins/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t);var i=n("./foundation.core");n.d(t,"Foundation",function(){return i.Foundation});var o=n("./js/foundation.drilldown.js");n.d(t,"Drilldown",function(){return o.Drilldown}),i.Foundation.plugin(o.Drilldown,"Drilldown")},"./js/foundation.drilldown.js":function(e,t,n){"use strict";n.r(t),n.d(t,"Drilldown",function(){return m});var i=n("jquery"),a=n.n(i),s=n("./foundation.util.keyboard"),r=n("./foundation.util.nest"),l=n("./foundation.core.utils"),u=n("./foundation.util.box"),d=n("./foundation.core.plugin");function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function c(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function f(e,t){return!t||"object"!==o(t)&&"function"!=typeof t?function(e){if(void 0!==e)return e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}(e):t}function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}var m=function(e){function n(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,n),f(this,p(n).apply(this,arguments))}var t,i,o;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(n,d["Plugin"]),t=n,(i=[{key:"_setup",value:function(e,t){this.$element=e,this.options=a.a.extend({},n.defaults,this.$element.data(),t),this.className="Drilldown",this._init(),s.Keyboard.register("Drilldown",{ENTER:"open",SPACE:"open",ARROW_RIGHT:"next",ARROW_UP:"up",ARROW_DOWN:"down",ARROW_LEFT:"previous",ESCAPE:"close",TAB:"down",SHIFT_TAB:"up"})}},{key:"_init",value:function(){r.Nest.Feather(this.$element,"drilldown"),this.options.autoApplyClass&&this.$element.addClass("drilldown"),this.$element.attr({role:"tree","aria-multiselectable":!1}),this.$submenuAnchors=this.$element.find("li.is-drilldown-submenu-parent").children("a"),this.$submenus=this.$submenuAnchors.parent("li").children("[data-submenu]").attr("role","group"),this.$menuItems=this.$element.find("li").not(".js-drilldown-back").attr("role","treeitem").find("a"),this.$currentMenu=this.$element,this.$element.attr("data-mutate",this.$element.attr("data-drilldown")||Object(l.GetYoDigits)(6,"drilldown")),this._prepareMenu(),this._registerEvents(),this._keyboardEvents()}},{key:"_prepareMenu",value:function(){var n=this;this.$submenuAnchors.each(function(){var e=a()(this),t=e.parent();n.options.parentLink&&e.clone().prependTo(t.children("[data-submenu]")).wrap('<li data-is-parent-link class="is-submenu-parent-item is-submenu-item is-drilldown-submenu-item" role="menuitem"></li>'),e.data("savedHref",e.attr("href")).removeAttr("href").attr("tabindex",0),e.children("[data-submenu]").attr({"aria-hidden":!0,tabindex:0,role:"group"}),n._events(e)}),this.$submenus.each(function(){var e=a()(this);if(!e.find(".js-drilldown-back").length)switch(n.options.backButtonPosition){case"bottom":e.append(n.options.backButton);break;case"top":e.prepend(n.options.backButton);break;default:console.error("Unsupported backButtonPosition value '"+n.options.backButtonPosition+"'")}n._back(e)}),this.$submenus.addClass("invisible"),this.options.autoHeight||this.$submenus.addClass("drilldown-submenu-cover-previous"),this.$element.parent().hasClass("is-drilldown")||(this.$wrapper=a()(this.options.wrapper).addClass("is-drilldown"),this.options.animateHeight&&this.$wrapper.addClass("animate-height"),this.$element.wrap(this.$wrapper)),this.$wrapper=this.$element.parent(),this.$wrapper.css(this._getMaxDims())}},{key:"_resize",value:function(){this.$wrapper.css({"max-width":"none","min-height":"none"}),this.$wrapper.css(this._getMaxDims())}},{key:"_events",value:function(n){var i=this;n.off("click.zf.drilldown").on("click.zf.drilldown",function(e){if(a()(e.target).parentsUntil("ul","li").hasClass("is-drilldown-submenu-parent")&&(e.stopImmediatePropagation(),e.preventDefault()),i._show(n.parent("li")),i.options.closeOnClick){var t=a()("body");t.off(".zf.drilldown").on("click.zf.drilldown",function(e){e.target===i.$element[0]||a.a.contains(i.$element[0],e.target)||(e.preventDefault(),i._hideAll(),t.off(".zf.drilldown"))})}})}},{key:"_registerEvents",value:function(){this.options.scrollTop&&(this._bindHandler=this._scrollTop.bind(this),this.$element.on("open.zf.drilldown hide.zf.drilldown closed.zf.drilldown",this._bindHandler)),this.$element.on("mutateme.zf.trigger",this._resize.bind(this))}},{key:"_scrollTop",value:function(){var e=this,t=""!=e.options.scrollTopElement?a()(e.options.scrollTopElement):e.$element,n=parseInt(t.offset().top+e.options.scrollTopOffset,10);a()("html, body").stop(!0).animate({scrollTop:n},e.options.animationDuration,e.options.animationEasing,function(){this===a()("html")[0]&&e.$element.trigger("scrollme.zf.drilldown")})}},{key:"_keyboardEvents",value:function(){var e=this;this.$menuItems.add(this.$element.find(".js-drilldown-back > a, .is-submenu-parent-item > a")).on("keydown.zf.drilldown",function(t){var n,i,o=a()(this),r=o.parent("li").parent("ul").children("li").children("a");r.each(function(e){if(a()(this).is(o))return n=r.eq(Math.max(0,e-1)),void(i=r.eq(Math.min(e+1,r.length-1)))}),s.Keyboard.handleKey(t,"Drilldown",{next:function(){if(o.is(e.$submenuAnchors))return e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0},previous:function(){return e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0},up:function(){return n.focus(),!o.is(e.$element.find("> li:first-child > a"))},down:function(){return i.focus(),!o.is(e.$element.find("> li:last-child > a"))},close:function(){o.is(e.$element.find("> li > a"))||(e._hide(o.parent().parent()),o.parent().parent().siblings("a").focus())},open:function(){return(!e.options.parentLink||!o.attr("href"))&&(o.is(e.$menuItems)?o.is(e.$submenuAnchors)?(e._show(o.parent("li")),o.parent("li").one(Object(l.transitionend)(o),function(){o.parent("li").find("ul li a").not(".js-drilldown-back a").first().focus()}),!0):void 0:(e._hide(o.parent("li").parent("ul")),o.parent("li").parent("ul").one(Object(l.transitionend)(o),function(){setTimeout(function(){o.parent("li").parent("ul").parent("li").children("a").first().focus()},1)}),!0))},handled:function(e){e&&t.preventDefault(),t.stopImmediatePropagation()}})})}},{key:"_hideAll",value:function(){var t=this.$element.find(".is-drilldown-submenu.is-active").addClass("is-closing");this.options.autoHeight&&this.$wrapper.css({height:t.parent().closest("ul").data("calcHeight")}),t.one(Object(l.transitionend)(t),function(e){t.removeClass("is-active is-closing")}),this.$element.trigger("closed.zf.drilldown")}},{key:"_back",value:function(n){var i=this;n.off("click.zf.drilldown"),n.children(".js-drilldown-back").on("click.zf.drilldown",function(e){e.stopImmediatePropagation(),i._hide(n);var t=n.parent("li").parent("ul").parent("li");t.length&&i._show(t)})}},{key:"_menuLinkEvents",value:function(){var t=this;this.$menuItems.not(".is-drilldown-submenu-parent").off("click.zf.drilldown").on("click.zf.drilldown",function(e){setTimeout(function(){t._hideAll()},0)})}},{key:"_setShowSubMenuClasses",value:function(e,t){e.addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),e.parent("li").attr("aria-expanded",!0),!0===t&&this.$element.trigger("open.zf.drilldown",[e])}},{key:"_setHideSubMenuClasses",value:function(e,t){e.removeClass("is-active").addClass("invisible").attr("aria-hidden",!0),e.parent("li").attr("aria-expanded",!1),!0===t&&e.trigger("hide.zf.drilldown",[e])}},{key:"_showMenu",value:function(n,i){var o=this;if(this.$element.find('li[aria-expanded="true"] > ul[data-submenu]').each(function(e){o._setHideSubMenuClasses(a()(this))}),(this.$currentMenu=n).is("[data-drilldown]"))return!0===i&&n.find('li[role="treeitem"] > a').first().focus(),void(this.options.autoHeight&&this.$wrapper.css("height",n.data("calcHeight")));var r=n.children().first().parentsUntil("[data-drilldown]","[data-submenu]");r.each(function(e){0===e&&o.options.autoHeight&&o.$wrapper.css("height",a()(this).data("calcHeight"));var t=e==r.length-1;!0===t&&a()(this).one(Object(l.transitionend)(a()(this)),function(){!0===i&&n.find('li[role="treeitem"] > a').first().focus()}),o._setShowSubMenuClasses(a()(this),t)})}},{key:"_show",value:function(e){var t=e.children("[data-submenu]");e.attr("aria-expanded",!0),(this.$currentMenu=t).addClass("is-active").removeClass("invisible").attr("aria-hidden",!1),this.options.autoHeight&&this.$wrapper.css({height:t.data("calcHeight")}),this.$element.trigger("open.zf.drilldown",[e])}},{key:"_hide",value:function(e){this.options.autoHeight&&this.$wrapper.css({height:e.parent().closest("ul").data("calcHeight")});e.parent("li").attr("aria-expanded",!1),e.attr("aria-hidden",!0),e.addClass("is-closing").one(Object(l.transitionend)(e),function(){e.removeClass("is-active is-closing"),e.blur().addClass("invisible")}),e.trigger("hide.zf.drilldown",[e])}},{key:"_getMaxDims",value:function(){var t=0,e={},n=this;return this.$submenus.add(this.$element).each(function(){a()(this).children("li").length;var e=u.Box.GetDimensions(this).height;t=t<e?e:t,n.options.autoHeight&&a()(this).data("calcHeight",e)}),this.options.autoHeight?e.height=this.$currentMenu.data("calcHeight"):e["min-height"]="".concat(t,"px"),e["max-width"]="".concat(this.$element[0].getBoundingClientRect().width,"px"),e}},{key:"_destroy",value:function(){this.options.scrollTop&&this.$element.off(".zf.drilldown",this._bindHandler),this._hideAll(),this.$element.off("mutateme.zf.trigger"),r.Nest.Burn(this.$element,"drilldown"),this.$element.unwrap().find(".js-drilldown-back, .is-submenu-parent-item").remove().end().find(".is-active, .is-closing, .is-drilldown-submenu").removeClass("is-active is-closing is-drilldown-submenu").end().find("[data-submenu]").removeAttr("aria-hidden tabindex role"),this.$submenuAnchors.each(function(){a()(this).off(".zf.drilldown")}),this.$element.find("[data-is-parent-link]").detach(),this.$submenus.removeClass("drilldown-submenu-cover-previous invisible"),this.$element.find("a").each(function(){var e=a()(this);e.removeAttr("tabindex"),e.data("savedHref")&&e.attr("href",e.data("savedHref")).removeData("savedHref")})}}])&&c(t.prototype,i),o&&c(t,o),n}();m.defaults={autoApplyClass:!0,backButton:'<li class="js-drilldown-back"><a tabindex="0">Back</a></li>',backButtonPosition:"top",wrapper:"<div></div>",parentLink:!1,closeOnClick:!1,autoHeight:!1,animateHeight:!1,scrollTop:!1,scrollTopElement:"",scrollTopOffset:0,animationDuration:500,animationEasing:"swing"}},3:function(e,t,n){e.exports=n("./js/entries/plugins/foundation.drilldown.js")},jquery:function(e,t){e.exports=l}})});
|
2
|
+
//# sourceMappingURL=foundation.drilldown.min.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["foundation.drilldown.min.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__foundation_core__","__WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__","__WEBPACK_EXTERNAL_MODULE__foundation_core_utils__","__WEBPACK_EXTERNAL_MODULE__foundation_util_box__","__WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__","__WEBPACK_EXTERNAL_MODULE__foundation_util_nest__","__WEBPACK_EXTERNAL_MODULE_jquery__","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","./foundation.core","./foundation.core.plugin","./foundation.core.utils","./foundation.util.box","./foundation.util.keyboard","./foundation.util.nest","./js/entries/plugins/foundation.drilldown.js","__webpack_exports__","_foundation_core__WEBPACK_IMPORTED_MODULE_0__","_foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__","plugin","./js/foundation.drilldown.js","Drilldown","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__","_foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__","_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__","_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__","_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__","_typeof","obj","iterator","constructor","_defineProperties","target","props","length","descriptor","configurable","writable","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","_Plugin","instance","Constructor","TypeError","_classCallCheck","this","apply","arguments","protoProps","staticProps","subClass","superClass","_inherits","element","options","$element","a","extend","defaults","data","className","_init","register","ENTER","SPACE","ARROW_RIGHT","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ESCAPE","TAB","SHIFT_TAB","Feather","autoApplyClass","addClass","attr","role","aria-multiselectable","$submenuAnchors","find","children","$submenus","parent","$menuItems","not","$currentMenu","_prepareMenu","_registerEvents","_keyboardEvents","_this","each","$link","$sub","parentLink","clone","prependTo","wrap","removeAttr","aria-hidden","tabindex","_events","$menu","backButtonPosition","append","backButton","prepend","console","error","_back","autoHeight","hasClass","$wrapper","wrapper","animateHeight","css","_getMaxDims","max-width","min-height","$elem","off","on","e","parentsUntil","stopImmediatePropagation","preventDefault","_show","closeOnClick","$body","contains","_hideAll","scrollTop","_bindHandler","_scrollTop","_resize","$scrollTopElement","scrollTopElement","scrollPos","parseInt","offset","top","scrollTopOffset","stop","animate","animationDuration","animationEasing","trigger","add","$prevElement","$nextElement","$elements","is","eq","Math","max","min","handleKey","next","one","first","focus","previous","_hide","setTimeout","up","down","close","siblings","open","handled","height","closest","removeClass","parentSubMenu","autoFocus","index","_setHideSubMenuClasses","isLastChild","_setShowSubMenuClasses","$submenu","blur","maxHeight","result","GetDimensions","concat","getBoundingClientRect","width","Burn","unwrap","remove","end","detach","removeData","3","jquery"],"mappings":"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","file":"foundation.drilldown.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"./foundation.core\"), require(\"./foundation.core.plugin\"), require(\"./foundation.core.utils\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"./foundation.core\", \"./foundation.core.plugin\", \"./foundation.core.utils\", \"./foundation.util.box\", \"./foundation.util.keyboard\", \"./foundation.util.nest\", \"jquery\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"foundation.drilldown\"] = factory(require(\"./foundation.core\"), require(\"./foundation.core.plugin\"), require(\"./foundation.core.utils\"), require(\"./foundation.util.box\"), require(\"./foundation.util.keyboard\"), require(\"./foundation.util.nest\"), require(\"jquery\"));\n\telse\n\t\troot[\"__FOUNDATION_EXTERNAL__\"] = root[\"__FOUNDATION_EXTERNAL__\"] || {}, root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.drilldown\"] = factory(root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.core\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.box\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.keyboard\"], root[\"__FOUNDATION_EXTERNAL__\"][\"foundation.util.nest\"], root[\"jQuery\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__, __WEBPACK_EXTERNAL_MODULE__foundation_core_utils__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__, __WEBPACK_EXTERNAL_MODULE_jquery__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 3);\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"./foundation.core\":\n/*!****************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core\",\"commonjs\":\"./foundation.core\",\"commonjs2\":\"./foundation.core\"} ***!\n \\****************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;\n\n/***/ }),\n\n/***/ \"./foundation.core.plugin\":\n/*!*************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core.plugin\",\"commonjs\":\"./foundation.core.plugin\",\"commonjs2\":\"./foundation.core.plugin\"} ***!\n \\*************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__;\n\n/***/ }),\n\n/***/ \"./foundation.core.utils\":\n/*!**********************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.core\"],\"amd\":\"./foundation.core.utils\",\"commonjs\":\"./foundation.core.utils\",\"commonjs2\":\"./foundation.core.utils\"} ***!\n \\**********************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core_utils__;\n\n/***/ }),\n\n/***/ \"./foundation.util.box\":\n/*!********************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.box\"],\"amd\":\"./foundation.util.box\",\"commonjs\":\"./foundation.util.box\",\"commonjs2\":\"./foundation.util.box\"} ***!\n \\********************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;\n\n/***/ }),\n\n/***/ \"./foundation.util.keyboard\":\n/*!****************************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.keyboard\"],\"amd\":\"./foundation.util.keyboard\",\"commonjs\":\"./foundation.util.keyboard\",\"commonjs2\":\"./foundation.util.keyboard\"} ***!\n \\****************************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;\n\n/***/ }),\n\n/***/ \"./foundation.util.nest\":\n/*!************************************************************************************************************************************************************************************!*\\\n !*** external {\"root\":[\"__FOUNDATION_EXTERNAL__\",\"foundation.util.nest\"],\"amd\":\"./foundation.util.nest\",\"commonjs\":\"./foundation.util.nest\",\"commonjs2\":\"./foundation.util.nest\"} ***!\n \\************************************************************************************************************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_nest__;\n\n/***/ }),\n\n/***/ \"./js/entries/plugins/foundation.drilldown.js\":\n/*!****************************************************!*\\\n !*** ./js/entries/plugins/foundation.drilldown.js ***!\n \\****************************************************/\n/*! exports provided: Foundation, Drilldown */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ \"./foundation.core\");\n/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Foundation\", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"]; });\n\n/* harmony import */ var _foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.drilldown */ \"./js/foundation.drilldown.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Drilldown\", function() { return _foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__[\"Drilldown\"]; });\n\n\n\n_foundation_core__WEBPACK_IMPORTED_MODULE_0__[\"Foundation\"].plugin(_foundation_drilldown__WEBPACK_IMPORTED_MODULE_1__[\"Drilldown\"], 'Drilldown');\n\n\n/***/ }),\n\n/***/ \"./js/foundation.drilldown.js\":\n/*!************************************!*\\\n !*** ./js/foundation.drilldown.js ***!\n \\************************************/\n/*! exports provided: Drilldown */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Drilldown\", function() { return Drilldown; });\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ \"jquery\");\n/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ \"./foundation.util.keyboard\");\n/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.nest */ \"./foundation.util.nest\");\n/* harmony import */ var _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.core.utils */ \"./foundation.core.utils\");\n/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.box */ \"./foundation.util.box\");\n/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_box__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./foundation.core.plugin */ \"./foundation.core.plugin\");\n/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__);\n\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n/**\n * Drilldown module.\n * @module foundation.drilldown\n * @requires foundation.util.keyboard\n * @requires foundation.util.nest\n * @requires foundation.util.box\n */\n\nvar Drilldown =\n/*#__PURE__*/\nfunction (_Plugin) {\n _inherits(Drilldown, _Plugin);\n\n function Drilldown() {\n _classCallCheck(this, Drilldown);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Drilldown).apply(this, arguments));\n }\n\n _createClass(Drilldown, [{\n key: \"_setup\",\n\n /**\n * Creates a new instance of a drilldown menu.\n * @class\n * @name Drilldown\n * @param {jQuery} element - jQuery object to make into an accordion menu.\n * @param {Object} options - Overrides to the default plugin settings.\n */\n value: function _setup(element, options) {\n this.$element = element;\n this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Drilldown.defaults, this.$element.data(), options);\n this.className = 'Drilldown'; // ie9 back compat\n\n this._init();\n\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].register('Drilldown', {\n 'ENTER': 'open',\n 'SPACE': 'open',\n 'ARROW_RIGHT': 'next',\n 'ARROW_UP': 'up',\n 'ARROW_DOWN': 'down',\n 'ARROW_LEFT': 'previous',\n 'ESCAPE': 'close',\n 'TAB': 'down',\n 'SHIFT_TAB': 'up'\n });\n }\n /**\n * Initializes the drilldown by creating jQuery collections of elements\n * @private\n */\n\n }, {\n key: \"_init\",\n value: function _init() {\n _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Feather(this.$element, 'drilldown');\n\n if (this.options.autoApplyClass) {\n this.$element.addClass('drilldown');\n }\n\n this.$element.attr({\n 'role': 'tree',\n 'aria-multiselectable': false\n });\n this.$submenuAnchors = this.$element.find('li.is-drilldown-submenu-parent').children('a');\n this.$submenus = this.$submenuAnchors.parent('li').children('[data-submenu]').attr('role', 'group');\n this.$menuItems = this.$element.find('li').not('.js-drilldown-back').attr('role', 'treeitem').find('a'); // Set the main menu as current by default (unless a submenu is selected)\n // Used to set the wrapper height when the drilldown is closed/reopened from any (sub)menu\n\n this.$currentMenu = this.$element;\n this.$element.attr('data-mutate', this.$element.attr('data-drilldown') || Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"GetYoDigits\"])(6, 'drilldown'));\n\n this._prepareMenu();\n\n this._registerEvents();\n\n this._keyboardEvents();\n }\n /**\n * prepares drilldown menu by setting attributes to links and elements\n * sets a min height to prevent content jumping\n * wraps the element if not already wrapped\n * @private\n * @function\n */\n\n }, {\n key: \"_prepareMenu\",\n value: function _prepareMenu() {\n var _this = this; // if(!this.options.holdOpen){\n // this._menuLinkEvents();\n // }\n\n\n this.$submenuAnchors.each(function () {\n var $link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n var $sub = $link.parent();\n\n if (_this.options.parentLink) {\n $link.clone().prependTo($sub.children('[data-submenu]')).wrap('<li data-is-parent-link class=\"is-submenu-parent-item is-submenu-item is-drilldown-submenu-item\" role=\"menuitem\"></li>');\n }\n\n $link.data('savedHref', $link.attr('href')).removeAttr('href').attr('tabindex', 0);\n $link.children('[data-submenu]').attr({\n 'aria-hidden': true,\n 'tabindex': 0,\n 'role': 'group'\n });\n\n _this._events($link);\n });\n this.$submenus.each(function () {\n var $menu = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n $back = $menu.find('.js-drilldown-back');\n\n if (!$back.length) {\n switch (_this.options.backButtonPosition) {\n case \"bottom\":\n $menu.append(_this.options.backButton);\n break;\n\n case \"top\":\n $menu.prepend(_this.options.backButton);\n break;\n\n default:\n console.error(\"Unsupported backButtonPosition value '\" + _this.options.backButtonPosition + \"'\");\n }\n }\n\n _this._back($menu);\n });\n this.$submenus.addClass('invisible');\n\n if (!this.options.autoHeight) {\n this.$submenus.addClass('drilldown-submenu-cover-previous');\n } // create a wrapper on element if it doesn't exist.\n\n\n if (!this.$element.parent().hasClass('is-drilldown')) {\n this.$wrapper = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this.options.wrapper).addClass('is-drilldown');\n if (this.options.animateHeight) this.$wrapper.addClass('animate-height');\n this.$element.wrap(this.$wrapper);\n } // set wrapper\n\n\n this.$wrapper = this.$element.parent();\n this.$wrapper.css(this._getMaxDims());\n }\n }, {\n key: \"_resize\",\n value: function _resize() {\n this.$wrapper.css({\n 'max-width': 'none',\n 'min-height': 'none'\n }); // _getMaxDims has side effects (boo) but calling it should update all other necessary heights & widths\n\n this.$wrapper.css(this._getMaxDims());\n }\n /**\n * Adds event handlers to elements in the menu.\n * @function\n * @private\n * @param {jQuery} $elem - the current menu item to add handlers to.\n */\n\n }, {\n key: \"_events\",\n value: function _events($elem) {\n var _this = this;\n\n $elem.off('click.zf.drilldown').on('click.zf.drilldown', function (e) {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(e.target).parentsUntil('ul', 'li').hasClass('is-drilldown-submenu-parent')) {\n e.stopImmediatePropagation();\n e.preventDefault();\n } // if(e.target !== e.currentTarget.firstElementChild){\n // return false;\n // }\n\n\n _this._show($elem.parent('li'));\n\n if (_this.options.closeOnClick) {\n var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body');\n $body.off('.zf.drilldown').on('click.zf.drilldown', function (e) {\n if (e.target === _this.$element[0] || jquery__WEBPACK_IMPORTED_MODULE_0___default.a.contains(_this.$element[0], e.target)) {\n return;\n }\n\n e.preventDefault();\n\n _this._hideAll();\n\n $body.off('.zf.drilldown');\n });\n }\n });\n }\n /**\n * Adds event handlers to the menu element.\n * @function\n * @private\n */\n\n }, {\n key: \"_registerEvents\",\n value: function _registerEvents() {\n if (this.options.scrollTop) {\n this._bindHandler = this._scrollTop.bind(this);\n this.$element.on('open.zf.drilldown hide.zf.drilldown closed.zf.drilldown', this._bindHandler);\n }\n\n this.$element.on('mutateme.zf.trigger', this._resize.bind(this));\n }\n /**\n * Scroll to Top of Element or data-scroll-top-element\n * @function\n * @fires Drilldown#scrollme\n */\n\n }, {\n key: \"_scrollTop\",\n value: function _scrollTop() {\n var _this = this;\n\n var $scrollTopElement = _this.options.scrollTopElement != '' ? jquery__WEBPACK_IMPORTED_MODULE_0___default()(_this.options.scrollTopElement) : _this.$element,\n scrollPos = parseInt($scrollTopElement.offset().top + _this.options.scrollTopOffset, 10);\n jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').stop(true).animate({\n scrollTop: scrollPos\n }, _this.options.animationDuration, _this.options.animationEasing, function () {\n /**\n * Fires after the menu has scrolled\n * @event Drilldown#scrollme\n */\n if (this === jquery__WEBPACK_IMPORTED_MODULE_0___default()('html')[0]) _this.$element.trigger('scrollme.zf.drilldown');\n });\n }\n /**\n * Adds keydown event listener to `li`'s in the menu.\n * @private\n */\n\n }, {\n key: \"_keyboardEvents\",\n value: function _keyboardEvents() {\n var _this = this;\n\n this.$menuItems.add(this.$element.find('.js-drilldown-back > a, .is-submenu-parent-item > a')).on('keydown.zf.drilldown', function (e) {\n var $element = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),\n $elements = $element.parent('li').parent('ul').children('li').children('a'),\n $prevElement,\n $nextElement;\n $elements.each(function (i) {\n if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).is($element)) {\n $prevElement = $elements.eq(Math.max(0, i - 1));\n $nextElement = $elements.eq(Math.min(i + 1, $elements.length - 1));\n return;\n }\n });\n _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__[\"Keyboard\"].handleKey(e, 'Drilldown', {\n next: function next() {\n if ($element.is(_this.$submenuAnchors)) {\n _this._show($element.parent('li'));\n\n $element.parent('li').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n previous: function previous() {\n _this._hide($element.parent('li').parent('ul'));\n\n $element.parent('li').parent('ul').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n setTimeout(function () {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n },\n up: function up() {\n $prevElement.focus(); // Don't tap focus on first element in root ul\n\n return !$element.is(_this.$element.find('> li:first-child > a'));\n },\n down: function down() {\n $nextElement.focus(); // Don't tap focus on last element in root ul\n\n return !$element.is(_this.$element.find('> li:last-child > a'));\n },\n close: function close() {\n // Don't close on element in root ul\n if (!$element.is(_this.$element.find('> li > a'))) {\n _this._hide($element.parent().parent());\n\n $element.parent().parent().siblings('a').focus();\n }\n },\n open: function open() {\n if (_this.options.parentLink && $element.attr('href')) {\n // Link with href\n return false;\n } else if (!$element.is(_this.$menuItems)) {\n // not menu item means back button\n _this._hide($element.parent('li').parent('ul'));\n\n $element.parent('li').parent('ul').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n setTimeout(function () {\n $element.parent('li').parent('ul').parent('li').children('a').first().focus();\n }, 1);\n });\n return true;\n } else if ($element.is(_this.$submenuAnchors)) {\n // Sub menu item\n _this._show($element.parent('li'));\n\n $element.parent('li').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($element), function () {\n $element.parent('li').find('ul li a').not('.js-drilldown-back a').first().focus();\n });\n return true;\n }\n },\n handled: function handled(preventDefault) {\n if (preventDefault) {\n e.preventDefault();\n }\n\n e.stopImmediatePropagation();\n }\n });\n }); // end keyboardAccess\n }\n /**\n * Closes all open elements, and returns to root menu.\n * @function\n * @fires Drilldown#closed\n */\n\n }, {\n key: \"_hideAll\",\n value: function _hideAll() {\n var $elem = this.$element.find('.is-drilldown-submenu.is-active').addClass('is-closing');\n if (this.options.autoHeight) this.$wrapper.css({\n height: $elem.parent().closest('ul').data('calcHeight')\n });\n $elem.one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($elem), function (e) {\n $elem.removeClass('is-active is-closing');\n });\n /**\n * Fires when the menu is fully closed.\n * @event Drilldown#closed\n */\n\n this.$element.trigger('closed.zf.drilldown');\n }\n /**\n * Adds event listener for each `back` button, and closes open menus.\n * @function\n * @fires Drilldown#back\n * @param {jQuery} $elem - the current sub-menu to add `back` event.\n */\n\n }, {\n key: \"_back\",\n value: function _back($elem) {\n var _this = this;\n\n $elem.off('click.zf.drilldown');\n $elem.children('.js-drilldown-back').on('click.zf.drilldown', function (e) {\n e.stopImmediatePropagation(); // console.log('mouseup on back');\n\n _this._hide($elem); // If there is a parent submenu, call show\n\n\n var parentSubMenu = $elem.parent('li').parent('ul').parent('li');\n\n if (parentSubMenu.length) {\n _this._show(parentSubMenu);\n }\n });\n }\n /**\n * Adds event listener to menu items w/o submenus to close open menus on click.\n * @function\n * @private\n */\n\n }, {\n key: \"_menuLinkEvents\",\n value: function _menuLinkEvents() {\n var _this = this;\n\n this.$menuItems.not('.is-drilldown-submenu-parent').off('click.zf.drilldown').on('click.zf.drilldown', function (e) {\n // e.stopImmediatePropagation();\n setTimeout(function () {\n _this._hideAll();\n }, 0);\n });\n }\n /**\n * Sets the CSS classes for submenu to show it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n\n }, {\n key: \"_setShowSubMenuClasses\",\n value: function _setShowSubMenuClasses($elem, trigger) {\n $elem.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n $elem.parent('li').attr('aria-expanded', true);\n\n if (trigger === true) {\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n }\n /**\n * Sets the CSS classes for submenu to hide it.\n * @function\n * @private\n * @param {jQuery} $elem - the target submenu (`ul` tag)\n * @param {boolean} trigger - trigger drilldown event\n */\n\n }, {\n key: \"_setHideSubMenuClasses\",\n value: function _setHideSubMenuClasses($elem, trigger) {\n $elem.removeClass('is-active').addClass('invisible').attr('aria-hidden', true);\n $elem.parent('li').attr('aria-expanded', false);\n\n if (trigger === true) {\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n }\n /**\n * Opens a specific drilldown (sub)menu no matter which (sub)menu in it is currently visible.\n * Compared to _show() this lets you jump into any submenu without clicking through every submenu on the way to it.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the target (sub)menu (`ul` tag)\n * @param {boolean} autoFocus - if true the first link in the target (sub)menu gets auto focused\n */\n\n }, {\n key: \"_showMenu\",\n value: function _showMenu($elem, autoFocus) {\n var _this = this; // Reset drilldown\n\n\n var $expandedSubmenus = this.$element.find('li[aria-expanded=\"true\"] > ul[data-submenu]');\n $expandedSubmenus.each(function (index) {\n _this._setHideSubMenuClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this));\n }); // Save the menu as the currently displayed one.\n\n this.$currentMenu = $elem; // If target menu is root, focus first link & exit\n\n if ($elem.is('[data-drilldown]')) {\n if (autoFocus === true) $elem.find('li[role=\"treeitem\"] > a').first().focus();\n if (this.options.autoHeight) this.$wrapper.css('height', $elem.data('calcHeight'));\n return;\n } // Find all submenus on way to root incl. the element itself\n\n\n var $submenus = $elem.children().first().parentsUntil('[data-drilldown]', '[data-submenu]'); // Open target menu and all submenus on its way to root\n\n $submenus.each(function (index) {\n // Update height of first child (target menu) if autoHeight option true\n if (index === 0 && _this.options.autoHeight) {\n _this.$wrapper.css('height', jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('calcHeight'));\n }\n\n var isLastChild = index == $submenus.length - 1; // Add transitionsend listener to last child (root due to reverse order) to open target menu's first link\n // Last child makes sure the event gets always triggered even if going through several menus\n\n if (isLastChild === true) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)), function () {\n if (autoFocus === true) {\n $elem.find('li[role=\"treeitem\"] > a').first().focus();\n }\n });\n }\n\n _this._setShowSubMenuClasses(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), isLastChild);\n });\n }\n /**\n * Opens a submenu.\n * @function\n * @fires Drilldown#open\n * @param {jQuery} $elem - the current element with a submenu to open, i.e. the `li` tag.\n */\n\n }, {\n key: \"_show\",\n value: function _show($elem) {\n var $submenu = $elem.children('[data-submenu]');\n $elem.attr('aria-expanded', true);\n this.$currentMenu = $submenu;\n $submenu.addClass('is-active').removeClass('invisible').attr('aria-hidden', false);\n\n if (this.options.autoHeight) {\n this.$wrapper.css({\n height: $submenu.data('calcHeight')\n });\n }\n /**\n * Fires when the submenu has opened.\n * @event Drilldown#open\n */\n\n\n this.$element.trigger('open.zf.drilldown', [$elem]);\n }\n /**\n * Hides a submenu\n * @function\n * @fires Drilldown#hide\n * @param {jQuery} $elem - the current sub-menu to hide, i.e. the `ul` tag.\n */\n\n }, {\n key: \"_hide\",\n value: function _hide($elem) {\n if (this.options.autoHeight) this.$wrapper.css({\n height: $elem.parent().closest('ul').data('calcHeight')\n });\n\n var _this = this;\n\n $elem.parent('li').attr('aria-expanded', false);\n $elem.attr('aria-hidden', true);\n $elem.addClass('is-closing').one(Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_3__[\"transitionend\"])($elem), function () {\n $elem.removeClass('is-active is-closing');\n $elem.blur().addClass('invisible');\n });\n /**\n * Fires when the submenu has closed.\n * @event Drilldown#hide\n */\n\n $elem.trigger('hide.zf.drilldown', [$elem]);\n }\n /**\n * Iterates through the nested menus to calculate the min-height, and max-width for the menu.\n * Prevents content jumping.\n * @function\n * @private\n */\n\n }, {\n key: \"_getMaxDims\",\n value: function _getMaxDims() {\n var maxHeight = 0,\n result = {},\n _this = this; // Recalculate menu heights and total max height\n\n\n this.$submenus.add(this.$element).each(function () {\n var numOfElems = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).children('li').length;\n var height = _foundation_util_box__WEBPACK_IMPORTED_MODULE_4__[\"Box\"].GetDimensions(this).height;\n maxHeight = height > maxHeight ? height : maxHeight;\n\n if (_this.options.autoHeight) {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('calcHeight', height);\n }\n });\n if (this.options.autoHeight) result['height'] = this.$currentMenu.data('calcHeight');else result['min-height'] = \"\".concat(maxHeight, \"px\");\n result['max-width'] = \"\".concat(this.$element[0].getBoundingClientRect().width, \"px\");\n return result;\n }\n /**\n * Destroys the Drilldown Menu\n * @function\n */\n\n }, {\n key: \"_destroy\",\n value: function _destroy() {\n if (this.options.scrollTop) this.$element.off('.zf.drilldown', this._bindHandler);\n\n this._hideAll();\n\n this.$element.off('mutateme.zf.trigger');\n _foundation_util_nest__WEBPACK_IMPORTED_MODULE_2__[\"Nest\"].Burn(this.$element, 'drilldown');\n this.$element.unwrap().find('.js-drilldown-back, .is-submenu-parent-item').remove().end().find('.is-active, .is-closing, .is-drilldown-submenu').removeClass('is-active is-closing is-drilldown-submenu').end().find('[data-submenu]').removeAttr('aria-hidden tabindex role');\n this.$submenuAnchors.each(function () {\n jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).off('.zf.drilldown');\n });\n this.$element.find('[data-is-parent-link]').detach();\n this.$submenus.removeClass('drilldown-submenu-cover-previous invisible');\n this.$element.find('a').each(function () {\n var $link = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);\n $link.removeAttr('tabindex');\n\n if ($link.data('savedHref')) {\n $link.attr('href', $link.data('savedHref')).removeData('savedHref');\n } else {\n return;\n }\n });\n }\n }]);\n\n return Drilldown;\n}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_5__[\"Plugin\"]);\n\nDrilldown.defaults = {\n /**\n * Drilldowns depend on styles in order to function properly; in the default build of Foundation these are\n * on the `drilldown` class. This option auto-applies this class to the drilldown upon initialization.\n * @option\n * @type {boolian}\n * @default true\n */\n autoApplyClass: true,\n\n /**\n * Markup used for JS generated back button. Prepended or appended (see backButtonPosition) to submenu lists and deleted on `destroy` method, 'js-drilldown-back' class required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>'\n */\n backButton: '<li class=\"js-drilldown-back\"><a tabindex=\"0\">Back</a></li>',\n\n /**\n * Position the back button either at the top or bottom of drilldown submenus. Can be `'left'` or `'bottom'`.\n * @option\n * @type {string}\n * @default top\n */\n backButtonPosition: 'top',\n\n /**\n * Markup used to wrap drilldown menu. Use a class name for independent styling; the JS applied class: `is-drilldown` is required. Remove the backslash (`\\`) if copy and pasting.\n * @option\n * @type {string}\n * @default '<div></div>'\n */\n wrapper: '<div></div>',\n\n /**\n * Adds the parent link to the submenu.\n * @option\n * @type {boolean}\n * @default false\n */\n parentLink: false,\n\n /**\n * Allow the menu to return to root list on body click.\n * @option\n * @type {boolean}\n * @default false\n */\n closeOnClick: false,\n\n /**\n * Allow the menu to auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n autoHeight: false,\n\n /**\n * Animate the auto adjust height.\n * @option\n * @type {boolean}\n * @default false\n */\n animateHeight: false,\n\n /**\n * Scroll to the top of the menu after opening a submenu or navigating back using the menu back button\n * @option\n * @type {boolean}\n * @default false\n */\n scrollTop: false,\n\n /**\n * String jquery selector (for example 'body') of element to take offset().top from, if empty string the drilldown menu offset().top is taken\n * @option\n * @type {string}\n * @default ''\n */\n scrollTopElement: '',\n\n /**\n * ScrollTop offset\n * @option\n * @type {number}\n * @default 0\n */\n scrollTopOffset: 0,\n\n /**\n * Scroll animation duration\n * @option\n * @type {number}\n * @default 500\n */\n animationDuration: 500,\n\n /**\n * Scroll animation easing. Can be `'swing'` or `'linear'`.\n * @option\n * @type {string}\n * @see {@link https://api.jquery.com/animate|JQuery animate}\n * @default 'swing'\n */\n animationEasing: 'swing' // holdOpen: false\n\n};\n\n\n/***/ }),\n\n/***/ 3:\n/*!**********************************************************!*\\\n !*** multi ./js/entries/plugins/foundation.drilldown.js ***!\n \\**********************************************************/\n/*! no static exports found */\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(/*! /Users/ncoden/Documents/Documents/Projects/Programmation/Web/2016/Foundation/foundation-sites/js/entries/plugins/foundation.drilldown.js */\"./js/entries/plugins/foundation.drilldown.js\");\n\n\n/***/ }),\n\n/***/ \"jquery\":\n/*!********************************************************************************************!*\\\n !*** external {\"root\":[\"jQuery\"],\"amd\":\"jquery\",\"commonjs\":\"jquery\",\"commonjs2\":\"jquery\"} ***!\n \\********************************************************************************************/\n/*! no static exports found */\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;\n\n/***/ })\n\n/******/ });\n});\n//# sourceMappingURL=foundation.drilldown.js.map"]}
|
@@ -0,0 +1,1324 @@
|
|
1
|
+
(function webpackUniversalModuleDefinition(root, factory) {
|
2
|
+
if(typeof exports === 'object' && typeof module === 'object')
|
3
|
+
module.exports = factory(require("./foundation.core.utils"), require("./foundation.core"), require("jquery"), require("./foundation.util.keyboard"), require("./foundation.util.box"), require("./foundation.core.plugin"), require("./foundation.util.motion"));
|
4
|
+
else if(typeof define === 'function' && define.amd)
|
5
|
+
define(["./foundation.core.utils", "./foundation.core", "jquery", "./foundation.util.keyboard", "./foundation.util.box", "./foundation.core.plugin", "./foundation.util.motion"], factory);
|
6
|
+
else if(typeof exports === 'object')
|
7
|
+
exports["foundation.dropdown"] = factory(require("./foundation.core.utils"), require("./foundation.core"), require("jquery"), require("./foundation.util.keyboard"), require("./foundation.util.box"), require("./foundation.core.plugin"), require("./foundation.util.motion"));
|
8
|
+
else
|
9
|
+
root["__FOUNDATION_EXTERNAL__"] = root["__FOUNDATION_EXTERNAL__"] || {}, root["__FOUNDATION_EXTERNAL__"]["foundation.dropdown"] = factory(root["__FOUNDATION_EXTERNAL__"]["foundation.core"], root["__FOUNDATION_EXTERNAL__"]["foundation.core"], root["jQuery"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.keyboard"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.box"], root["__FOUNDATION_EXTERNAL__"]["foundation.core"], root["__FOUNDATION_EXTERNAL__"]["foundation.util.motion"]);
|
10
|
+
})(window, function(__WEBPACK_EXTERNAL_MODULE__foundation_core_utils__, __WEBPACK_EXTERNAL_MODULE__foundation_core__, __WEBPACK_EXTERNAL_MODULE_jquery__, __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__, __WEBPACK_EXTERNAL_MODULE__foundation_util_box__, __WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__, __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__) {
|
11
|
+
return /******/ (function(modules) { // webpackBootstrap
|
12
|
+
/******/ // The module cache
|
13
|
+
/******/ var installedModules = {};
|
14
|
+
/******/
|
15
|
+
/******/ // The require function
|
16
|
+
/******/ function __webpack_require__(moduleId) {
|
17
|
+
/******/
|
18
|
+
/******/ // Check if module is in cache
|
19
|
+
/******/ if(installedModules[moduleId]) {
|
20
|
+
/******/ return installedModules[moduleId].exports;
|
21
|
+
/******/ }
|
22
|
+
/******/ // Create a new module (and put it into the cache)
|
23
|
+
/******/ var module = installedModules[moduleId] = {
|
24
|
+
/******/ i: moduleId,
|
25
|
+
/******/ l: false,
|
26
|
+
/******/ exports: {}
|
27
|
+
/******/ };
|
28
|
+
/******/
|
29
|
+
/******/ // Execute the module function
|
30
|
+
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
31
|
+
/******/
|
32
|
+
/******/ // Flag the module as loaded
|
33
|
+
/******/ module.l = true;
|
34
|
+
/******/
|
35
|
+
/******/ // Return the exports of the module
|
36
|
+
/******/ return module.exports;
|
37
|
+
/******/ }
|
38
|
+
/******/
|
39
|
+
/******/
|
40
|
+
/******/ // expose the modules object (__webpack_modules__)
|
41
|
+
/******/ __webpack_require__.m = modules;
|
42
|
+
/******/
|
43
|
+
/******/ // expose the module cache
|
44
|
+
/******/ __webpack_require__.c = installedModules;
|
45
|
+
/******/
|
46
|
+
/******/ // define getter function for harmony exports
|
47
|
+
/******/ __webpack_require__.d = function(exports, name, getter) {
|
48
|
+
/******/ if(!__webpack_require__.o(exports, name)) {
|
49
|
+
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
50
|
+
/******/ }
|
51
|
+
/******/ };
|
52
|
+
/******/
|
53
|
+
/******/ // define __esModule on exports
|
54
|
+
/******/ __webpack_require__.r = function(exports) {
|
55
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
56
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
57
|
+
/******/ }
|
58
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
59
|
+
/******/ };
|
60
|
+
/******/
|
61
|
+
/******/ // create a fake namespace object
|
62
|
+
/******/ // mode & 1: value is a module id, require it
|
63
|
+
/******/ // mode & 2: merge all properties of value into the ns
|
64
|
+
/******/ // mode & 4: return value when already ns object
|
65
|
+
/******/ // mode & 8|1: behave like require
|
66
|
+
/******/ __webpack_require__.t = function(value, mode) {
|
67
|
+
/******/ if(mode & 1) value = __webpack_require__(value);
|
68
|
+
/******/ if(mode & 8) return value;
|
69
|
+
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
70
|
+
/******/ var ns = Object.create(null);
|
71
|
+
/******/ __webpack_require__.r(ns);
|
72
|
+
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
73
|
+
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
74
|
+
/******/ return ns;
|
75
|
+
/******/ };
|
76
|
+
/******/
|
77
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
78
|
+
/******/ __webpack_require__.n = function(module) {
|
79
|
+
/******/ var getter = module && module.__esModule ?
|
80
|
+
/******/ function getDefault() { return module['default']; } :
|
81
|
+
/******/ function getModuleExports() { return module; };
|
82
|
+
/******/ __webpack_require__.d(getter, 'a', getter);
|
83
|
+
/******/ return getter;
|
84
|
+
/******/ };
|
85
|
+
/******/
|
86
|
+
/******/ // Object.prototype.hasOwnProperty.call
|
87
|
+
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
88
|
+
/******/
|
89
|
+
/******/ // __webpack_public_path__
|
90
|
+
/******/ __webpack_require__.p = "";
|
91
|
+
/******/
|
92
|
+
/******/
|
93
|
+
/******/ // Load entry module and return exports
|
94
|
+
/******/ return __webpack_require__(__webpack_require__.s = 4);
|
95
|
+
/******/ })
|
96
|
+
/************************************************************************/
|
97
|
+
/******/ ({
|
98
|
+
|
99
|
+
/***/ "./foundation.core":
|
100
|
+
/*!****************************************************************************************************************************************************************!*\
|
101
|
+
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.core"],"amd":"./foundation.core","commonjs":"./foundation.core","commonjs2":"./foundation.core"} ***!
|
102
|
+
\****************************************************************************************************************************************************************/
|
103
|
+
/*! no static exports found */
|
104
|
+
/***/ (function(module, exports) {
|
105
|
+
|
106
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core__;
|
107
|
+
|
108
|
+
/***/ }),
|
109
|
+
|
110
|
+
/***/ "./foundation.core.plugin":
|
111
|
+
/*!*************************************************************************************************************************************************************************************!*\
|
112
|
+
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.core"],"amd":"./foundation.core.plugin","commonjs":"./foundation.core.plugin","commonjs2":"./foundation.core.plugin"} ***!
|
113
|
+
\*************************************************************************************************************************************************************************************/
|
114
|
+
/*! no static exports found */
|
115
|
+
/***/ (function(module, exports) {
|
116
|
+
|
117
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core_plugin__;
|
118
|
+
|
119
|
+
/***/ }),
|
120
|
+
|
121
|
+
/***/ "./foundation.core.utils":
|
122
|
+
/*!**********************************************************************************************************************************************************************************!*\
|
123
|
+
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.core"],"amd":"./foundation.core.utils","commonjs":"./foundation.core.utils","commonjs2":"./foundation.core.utils"} ***!
|
124
|
+
\**********************************************************************************************************************************************************************************/
|
125
|
+
/*! no static exports found */
|
126
|
+
/***/ (function(module, exports) {
|
127
|
+
|
128
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_core_utils__;
|
129
|
+
|
130
|
+
/***/ }),
|
131
|
+
|
132
|
+
/***/ "./foundation.util.box":
|
133
|
+
/*!********************************************************************************************************************************************************************************!*\
|
134
|
+
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.box"],"amd":"./foundation.util.box","commonjs":"./foundation.util.box","commonjs2":"./foundation.util.box"} ***!
|
135
|
+
\********************************************************************************************************************************************************************************/
|
136
|
+
/*! no static exports found */
|
137
|
+
/***/ (function(module, exports) {
|
138
|
+
|
139
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_box__;
|
140
|
+
|
141
|
+
/***/ }),
|
142
|
+
|
143
|
+
/***/ "./foundation.util.keyboard":
|
144
|
+
/*!****************************************************************************************************************************************************************************************************!*\
|
145
|
+
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.keyboard"],"amd":"./foundation.util.keyboard","commonjs":"./foundation.util.keyboard","commonjs2":"./foundation.util.keyboard"} ***!
|
146
|
+
\****************************************************************************************************************************************************************************************************/
|
147
|
+
/*! no static exports found */
|
148
|
+
/***/ (function(module, exports) {
|
149
|
+
|
150
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_keyboard__;
|
151
|
+
|
152
|
+
/***/ }),
|
153
|
+
|
154
|
+
/***/ "./foundation.util.motion":
|
155
|
+
/*!********************************************************************************************************************************************************************************************!*\
|
156
|
+
!*** external {"root":["__FOUNDATION_EXTERNAL__","foundation.util.motion"],"amd":"./foundation.util.motion","commonjs":"./foundation.util.motion","commonjs2":"./foundation.util.motion"} ***!
|
157
|
+
\********************************************************************************************************************************************************************************************/
|
158
|
+
/*! no static exports found */
|
159
|
+
/***/ (function(module, exports) {
|
160
|
+
|
161
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE__foundation_util_motion__;
|
162
|
+
|
163
|
+
/***/ }),
|
164
|
+
|
165
|
+
/***/ "./js/entries/plugins/foundation.dropdown.js":
|
166
|
+
/*!***************************************************!*\
|
167
|
+
!*** ./js/entries/plugins/foundation.dropdown.js ***!
|
168
|
+
\***************************************************/
|
169
|
+
/*! exports provided: Foundation, Dropdown */
|
170
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
171
|
+
|
172
|
+
"use strict";
|
173
|
+
__webpack_require__.r(__webpack_exports__);
|
174
|
+
/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.core */ "./foundation.core");
|
175
|
+
/* harmony import */ var _foundation_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_core__WEBPACK_IMPORTED_MODULE_0__);
|
176
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Foundation", function() { return _foundation_core__WEBPACK_IMPORTED_MODULE_0__["Foundation"]; });
|
177
|
+
|
178
|
+
/* harmony import */ var _foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../foundation.dropdown */ "./js/foundation.dropdown.js");
|
179
|
+
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return _foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__["Dropdown"]; });
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
_foundation_core__WEBPACK_IMPORTED_MODULE_0__["Foundation"].plugin(_foundation_dropdown__WEBPACK_IMPORTED_MODULE_1__["Dropdown"], 'Dropdown');
|
184
|
+
|
185
|
+
|
186
|
+
/***/ }),
|
187
|
+
|
188
|
+
/***/ "./js/foundation.dropdown.js":
|
189
|
+
/*!***********************************!*\
|
190
|
+
!*** ./js/foundation.dropdown.js ***!
|
191
|
+
\***********************************/
|
192
|
+
/*! exports provided: Dropdown */
|
193
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
194
|
+
|
195
|
+
"use strict";
|
196
|
+
__webpack_require__.r(__webpack_exports__);
|
197
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Dropdown", function() { return Dropdown; });
|
198
|
+
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
|
199
|
+
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
|
200
|
+
/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.util.keyboard */ "./foundation.util.keyboard");
|
201
|
+
/* harmony import */ var _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__);
|
202
|
+
/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ "./foundation.core.utils");
|
203
|
+
/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__);
|
204
|
+
/* harmony import */ var _foundation_positionable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./foundation.positionable */ "./js/foundation.positionable.js");
|
205
|
+
/* harmony import */ var _foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./foundation.util.triggers */ "./js/foundation.util.triggers.js");
|
206
|
+
|
207
|
+
|
208
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
209
|
+
|
210
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
211
|
+
|
212
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
213
|
+
|
214
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
215
|
+
|
216
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
217
|
+
|
218
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
219
|
+
|
220
|
+
function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
|
221
|
+
|
222
|
+
function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
|
223
|
+
|
224
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
225
|
+
|
226
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
227
|
+
|
228
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
/**
|
236
|
+
* Dropdown module.
|
237
|
+
* @module foundation.dropdown
|
238
|
+
* @requires foundation.util.keyboard
|
239
|
+
* @requires foundation.util.box
|
240
|
+
* @requires foundation.util.triggers
|
241
|
+
*/
|
242
|
+
|
243
|
+
var Dropdown =
|
244
|
+
/*#__PURE__*/
|
245
|
+
function (_Positionable) {
|
246
|
+
_inherits(Dropdown, _Positionable);
|
247
|
+
|
248
|
+
function Dropdown() {
|
249
|
+
_classCallCheck(this, Dropdown);
|
250
|
+
|
251
|
+
return _possibleConstructorReturn(this, _getPrototypeOf(Dropdown).apply(this, arguments));
|
252
|
+
}
|
253
|
+
|
254
|
+
_createClass(Dropdown, [{
|
255
|
+
key: "_setup",
|
256
|
+
|
257
|
+
/**
|
258
|
+
* Creates a new instance of a dropdown.
|
259
|
+
* @class
|
260
|
+
* @name Dropdown
|
261
|
+
* @param {jQuery} element - jQuery object to make into a dropdown.
|
262
|
+
* Object should be of the dropdown panel, rather than its anchor.
|
263
|
+
* @param {Object} options - Overrides to the default plugin settings.
|
264
|
+
*/
|
265
|
+
value: function _setup(element, options) {
|
266
|
+
this.$element = element;
|
267
|
+
this.options = jquery__WEBPACK_IMPORTED_MODULE_0___default.a.extend({}, Dropdown.defaults, this.$element.data(), options);
|
268
|
+
this.className = 'Dropdown'; // ie9 back compat
|
269
|
+
// Triggers init is idempotent, just need to make sure it is initialized
|
270
|
+
|
271
|
+
_foundation_util_triggers__WEBPACK_IMPORTED_MODULE_4__["Triggers"].init(jquery__WEBPACK_IMPORTED_MODULE_0___default.a);
|
272
|
+
|
273
|
+
this._init();
|
274
|
+
|
275
|
+
_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__["Keyboard"].register('Dropdown', {
|
276
|
+
'ENTER': 'toggle',
|
277
|
+
'SPACE': 'toggle',
|
278
|
+
'ESCAPE': 'close'
|
279
|
+
});
|
280
|
+
}
|
281
|
+
/**
|
282
|
+
* Initializes the plugin by setting/checking options and attributes, adding helper variables, and saving the anchor.
|
283
|
+
* @function
|
284
|
+
* @private
|
285
|
+
*/
|
286
|
+
|
287
|
+
}, {
|
288
|
+
key: "_init",
|
289
|
+
value: function _init() {
|
290
|
+
var $id = this.$element.attr('id');
|
291
|
+
this.$anchors = jquery__WEBPACK_IMPORTED_MODULE_0___default()("[data-toggle=\"".concat($id, "\"]")).length ? jquery__WEBPACK_IMPORTED_MODULE_0___default()("[data-toggle=\"".concat($id, "\"]")) : jquery__WEBPACK_IMPORTED_MODULE_0___default()("[data-open=\"".concat($id, "\"]"));
|
292
|
+
this.$anchors.attr({
|
293
|
+
'aria-controls': $id,
|
294
|
+
'data-is-focus': false,
|
295
|
+
'data-yeti-box': $id,
|
296
|
+
'aria-haspopup': true,
|
297
|
+
'aria-expanded': false
|
298
|
+
});
|
299
|
+
|
300
|
+
this._setCurrentAnchor(this.$anchors.first());
|
301
|
+
|
302
|
+
if (this.options.parentClass) {
|
303
|
+
this.$parent = this.$element.parents('.' + this.options.parentClass);
|
304
|
+
} else {
|
305
|
+
this.$parent = null;
|
306
|
+
} // Set [aria-labelledby] on the Dropdown if it is not set
|
307
|
+
|
308
|
+
|
309
|
+
if (typeof this.$element.attr('aria-labelledby') === 'undefined') {
|
310
|
+
// Get the anchor ID or create one
|
311
|
+
if (typeof this.$currentAnchor.attr('id') === 'undefined') {
|
312
|
+
this.$currentAnchor.attr('id', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__["GetYoDigits"])(6, 'dd-anchor'));
|
313
|
+
}
|
314
|
+
|
315
|
+
;
|
316
|
+
this.$element.attr('aria-labelledby', this.$currentAnchor.attr('id'));
|
317
|
+
}
|
318
|
+
|
319
|
+
this.$element.attr({
|
320
|
+
'aria-hidden': 'true',
|
321
|
+
'data-yeti-box': $id,
|
322
|
+
'data-resize': $id
|
323
|
+
});
|
324
|
+
|
325
|
+
_get(_getPrototypeOf(Dropdown.prototype), "_init", this).call(this);
|
326
|
+
|
327
|
+
this._events();
|
328
|
+
}
|
329
|
+
}, {
|
330
|
+
key: "_getDefaultPosition",
|
331
|
+
value: function _getDefaultPosition() {
|
332
|
+
// handle legacy classnames
|
333
|
+
var position = this.$element[0].className.match(/(top|left|right|bottom)/g);
|
334
|
+
|
335
|
+
if (position) {
|
336
|
+
return position[0];
|
337
|
+
} else {
|
338
|
+
return 'bottom';
|
339
|
+
}
|
340
|
+
}
|
341
|
+
}, {
|
342
|
+
key: "_getDefaultAlignment",
|
343
|
+
value: function _getDefaultAlignment() {
|
344
|
+
// handle legacy float approach
|
345
|
+
var horizontalPosition = /float-(\S+)/.exec(this.$currentAnchor.attr('class'));
|
346
|
+
|
347
|
+
if (horizontalPosition) {
|
348
|
+
return horizontalPosition[1];
|
349
|
+
}
|
350
|
+
|
351
|
+
return _get(_getPrototypeOf(Dropdown.prototype), "_getDefaultAlignment", this).call(this);
|
352
|
+
}
|
353
|
+
/**
|
354
|
+
* Sets the position and orientation of the dropdown pane, checks for collisions if allow-overlap is not true.
|
355
|
+
* Recursively calls itself if a collision is detected, with a new position class.
|
356
|
+
* @function
|
357
|
+
* @private
|
358
|
+
*/
|
359
|
+
|
360
|
+
}, {
|
361
|
+
key: "_setPosition",
|
362
|
+
value: function _setPosition() {
|
363
|
+
this.$element.removeClass("has-position-".concat(this.position, " has-alignment-").concat(this.alignment));
|
364
|
+
|
365
|
+
_get(_getPrototypeOf(Dropdown.prototype), "_setPosition", this).call(this, this.$currentAnchor, this.$element, this.$parent);
|
366
|
+
|
367
|
+
this.$element.addClass("has-position-".concat(this.position, " has-alignment-").concat(this.alignment));
|
368
|
+
}
|
369
|
+
/**
|
370
|
+
* Make it a current anchor.
|
371
|
+
* Current anchor as the reference for the position of Dropdown panes.
|
372
|
+
* @param {HTML} el - DOM element of the anchor.
|
373
|
+
* @function
|
374
|
+
* @private
|
375
|
+
*/
|
376
|
+
|
377
|
+
}, {
|
378
|
+
key: "_setCurrentAnchor",
|
379
|
+
value: function _setCurrentAnchor(el) {
|
380
|
+
this.$currentAnchor = jquery__WEBPACK_IMPORTED_MODULE_0___default()(el);
|
381
|
+
}
|
382
|
+
/**
|
383
|
+
* Adds event listeners to the element utilizing the triggers utility library.
|
384
|
+
* @function
|
385
|
+
* @private
|
386
|
+
*/
|
387
|
+
|
388
|
+
}, {
|
389
|
+
key: "_events",
|
390
|
+
value: function _events() {
|
391
|
+
var _this = this;
|
392
|
+
|
393
|
+
this.$element.on({
|
394
|
+
'open.zf.trigger': this.open.bind(this),
|
395
|
+
'close.zf.trigger': this.close.bind(this),
|
396
|
+
'toggle.zf.trigger': this.toggle.bind(this),
|
397
|
+
'resizeme.zf.trigger': this._setPosition.bind(this)
|
398
|
+
});
|
399
|
+
this.$anchors.off('click.zf.trigger').on('click.zf.trigger', function () {
|
400
|
+
_this._setCurrentAnchor(this);
|
401
|
+
});
|
402
|
+
|
403
|
+
if (this.options.hover) {
|
404
|
+
this.$anchors.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {
|
405
|
+
_this._setCurrentAnchor(this);
|
406
|
+
|
407
|
+
var bodyData = jquery__WEBPACK_IMPORTED_MODULE_0___default()('body').data();
|
408
|
+
|
409
|
+
if (typeof bodyData.whatinput === 'undefined' || bodyData.whatinput === 'mouse') {
|
410
|
+
clearTimeout(_this.timeout);
|
411
|
+
_this.timeout = setTimeout(function () {
|
412
|
+
_this.open();
|
413
|
+
|
414
|
+
_this.$anchors.data('hover', true);
|
415
|
+
}, _this.options.hoverDelay);
|
416
|
+
}
|
417
|
+
}).on('mouseleave.zf.dropdown', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__["ignoreMousedisappear"])(function () {
|
418
|
+
clearTimeout(_this.timeout);
|
419
|
+
_this.timeout = setTimeout(function () {
|
420
|
+
_this.close();
|
421
|
+
|
422
|
+
_this.$anchors.data('hover', false);
|
423
|
+
}, _this.options.hoverDelay);
|
424
|
+
}));
|
425
|
+
|
426
|
+
if (this.options.hoverPane) {
|
427
|
+
this.$element.off('mouseenter.zf.dropdown mouseleave.zf.dropdown').on('mouseenter.zf.dropdown', function () {
|
428
|
+
clearTimeout(_this.timeout);
|
429
|
+
}).on('mouseleave.zf.dropdown', Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__["ignoreMousedisappear"])(function () {
|
430
|
+
clearTimeout(_this.timeout);
|
431
|
+
_this.timeout = setTimeout(function () {
|
432
|
+
_this.close();
|
433
|
+
|
434
|
+
_this.$anchors.data('hover', false);
|
435
|
+
}, _this.options.hoverDelay);
|
436
|
+
}));
|
437
|
+
}
|
438
|
+
}
|
439
|
+
|
440
|
+
this.$anchors.add(this.$element).on('keydown.zf.dropdown', function (e) {
|
441
|
+
var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this),
|
442
|
+
visibleFocusableElements = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__["Keyboard"].findFocusable(_this.$element);
|
443
|
+
_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__["Keyboard"].handleKey(e, 'Dropdown', {
|
444
|
+
open: function open() {
|
445
|
+
if ($target.is(_this.$anchors) && !$target.is('input, textarea')) {
|
446
|
+
_this.open();
|
447
|
+
|
448
|
+
_this.$element.attr('tabindex', -1).focus();
|
449
|
+
|
450
|
+
e.preventDefault();
|
451
|
+
}
|
452
|
+
},
|
453
|
+
close: function close() {
|
454
|
+
_this.close();
|
455
|
+
|
456
|
+
_this.$anchors.focus();
|
457
|
+
}
|
458
|
+
});
|
459
|
+
});
|
460
|
+
}
|
461
|
+
/**
|
462
|
+
* Adds an event handler to the body to close any dropdowns on a click.
|
463
|
+
* @function
|
464
|
+
* @private
|
465
|
+
*/
|
466
|
+
|
467
|
+
}, {
|
468
|
+
key: "_addBodyHandler",
|
469
|
+
value: function _addBodyHandler() {
|
470
|
+
var $body = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).not(this.$element),
|
471
|
+
_this = this;
|
472
|
+
|
473
|
+
$body.off('click.zf.dropdown').on('click.zf.dropdown', function (e) {
|
474
|
+
if (_this.$anchors.is(e.target) || _this.$anchors.find(e.target).length) {
|
475
|
+
return;
|
476
|
+
}
|
477
|
+
|
478
|
+
if (_this.$element.is(e.target) || _this.$element.find(e.target).length) {
|
479
|
+
return;
|
480
|
+
}
|
481
|
+
|
482
|
+
_this.close();
|
483
|
+
|
484
|
+
$body.off('click.zf.dropdown');
|
485
|
+
});
|
486
|
+
}
|
487
|
+
/**
|
488
|
+
* Opens the dropdown pane, and fires a bubbling event to close other dropdowns.
|
489
|
+
* @function
|
490
|
+
* @fires Dropdown#closeme
|
491
|
+
* @fires Dropdown#show
|
492
|
+
*/
|
493
|
+
|
494
|
+
}, {
|
495
|
+
key: "open",
|
496
|
+
value: function open() {
|
497
|
+
// var _this = this;
|
498
|
+
|
499
|
+
/**
|
500
|
+
* Fires to close other open dropdowns, typically when dropdown is opening
|
501
|
+
* @event Dropdown#closeme
|
502
|
+
*/
|
503
|
+
this.$element.trigger('closeme.zf.dropdown', this.$element.attr('id'));
|
504
|
+
this.$anchors.addClass('hover').attr({
|
505
|
+
'aria-expanded': true
|
506
|
+
}); // this.$element/*.show()*/;
|
507
|
+
|
508
|
+
this.$element.addClass('is-opening');
|
509
|
+
|
510
|
+
this._setPosition();
|
511
|
+
|
512
|
+
this.$element.removeClass('is-opening').addClass('is-open').attr({
|
513
|
+
'aria-hidden': false
|
514
|
+
});
|
515
|
+
|
516
|
+
if (this.options.autoFocus) {
|
517
|
+
var $focusable = _foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__["Keyboard"].findFocusable(this.$element);
|
518
|
+
|
519
|
+
if ($focusable.length) {
|
520
|
+
$focusable.eq(0).focus();
|
521
|
+
}
|
522
|
+
}
|
523
|
+
|
524
|
+
if (this.options.closeOnClick) {
|
525
|
+
this._addBodyHandler();
|
526
|
+
}
|
527
|
+
|
528
|
+
if (this.options.trapFocus) {
|
529
|
+
_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__["Keyboard"].trapFocus(this.$element);
|
530
|
+
}
|
531
|
+
/**
|
532
|
+
* Fires once the dropdown is visible.
|
533
|
+
* @event Dropdown#show
|
534
|
+
*/
|
535
|
+
|
536
|
+
|
537
|
+
this.$element.trigger('show.zf.dropdown', [this.$element]);
|
538
|
+
}
|
539
|
+
/**
|
540
|
+
* Closes the open dropdown pane.
|
541
|
+
* @function
|
542
|
+
* @fires Dropdown#hide
|
543
|
+
*/
|
544
|
+
|
545
|
+
}, {
|
546
|
+
key: "close",
|
547
|
+
value: function close() {
|
548
|
+
if (!this.$element.hasClass('is-open')) {
|
549
|
+
return false;
|
550
|
+
}
|
551
|
+
|
552
|
+
this.$element.removeClass('is-open').attr({
|
553
|
+
'aria-hidden': true
|
554
|
+
});
|
555
|
+
this.$anchors.removeClass('hover').attr('aria-expanded', false);
|
556
|
+
/**
|
557
|
+
* Fires once the dropdown is no longer visible.
|
558
|
+
* @event Dropdown#hide
|
559
|
+
*/
|
560
|
+
|
561
|
+
this.$element.trigger('hide.zf.dropdown', [this.$element]);
|
562
|
+
|
563
|
+
if (this.options.trapFocus) {
|
564
|
+
_foundation_util_keyboard__WEBPACK_IMPORTED_MODULE_1__["Keyboard"].releaseFocus(this.$element);
|
565
|
+
}
|
566
|
+
}
|
567
|
+
/**
|
568
|
+
* Toggles the dropdown pane's visibility.
|
569
|
+
* @function
|
570
|
+
*/
|
571
|
+
|
572
|
+
}, {
|
573
|
+
key: "toggle",
|
574
|
+
value: function toggle() {
|
575
|
+
if (this.$element.hasClass('is-open')) {
|
576
|
+
if (this.$anchors.data('hover')) return;
|
577
|
+
this.close();
|
578
|
+
} else {
|
579
|
+
this.open();
|
580
|
+
}
|
581
|
+
}
|
582
|
+
/**
|
583
|
+
* Destroys the dropdown.
|
584
|
+
* @function
|
585
|
+
*/
|
586
|
+
|
587
|
+
}, {
|
588
|
+
key: "_destroy",
|
589
|
+
value: function _destroy() {
|
590
|
+
this.$element.off('.zf.trigger').hide();
|
591
|
+
this.$anchors.off('.zf.dropdown');
|
592
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()(document.body).off('click.zf.dropdown');
|
593
|
+
}
|
594
|
+
}]);
|
595
|
+
|
596
|
+
return Dropdown;
|
597
|
+
}(_foundation_positionable__WEBPACK_IMPORTED_MODULE_3__["Positionable"]);
|
598
|
+
|
599
|
+
Dropdown.defaults = {
|
600
|
+
/**
|
601
|
+
* Class that designates bounding container of Dropdown (default: window)
|
602
|
+
* @option
|
603
|
+
* @type {?string}
|
604
|
+
* @default null
|
605
|
+
*/
|
606
|
+
parentClass: null,
|
607
|
+
|
608
|
+
/**
|
609
|
+
* Amount of time to delay opening a submenu on hover event.
|
610
|
+
* @option
|
611
|
+
* @type {number}
|
612
|
+
* @default 250
|
613
|
+
*/
|
614
|
+
hoverDelay: 250,
|
615
|
+
|
616
|
+
/**
|
617
|
+
* Allow submenus to open on hover events
|
618
|
+
* @option
|
619
|
+
* @type {boolean}
|
620
|
+
* @default false
|
621
|
+
*/
|
622
|
+
hover: false,
|
623
|
+
|
624
|
+
/**
|
625
|
+
* Don't close dropdown when hovering over dropdown pane
|
626
|
+
* @option
|
627
|
+
* @type {boolean}
|
628
|
+
* @default false
|
629
|
+
*/
|
630
|
+
hoverPane: false,
|
631
|
+
|
632
|
+
/**
|
633
|
+
* Number of pixels between the dropdown pane and the triggering element on open.
|
634
|
+
* @option
|
635
|
+
* @type {number}
|
636
|
+
* @default 0
|
637
|
+
*/
|
638
|
+
vOffset: 0,
|
639
|
+
|
640
|
+
/**
|
641
|
+
* Number of pixels between the dropdown pane and the triggering element on open.
|
642
|
+
* @option
|
643
|
+
* @type {number}
|
644
|
+
* @default 0
|
645
|
+
*/
|
646
|
+
hOffset: 0,
|
647
|
+
|
648
|
+
/**
|
649
|
+
* Position of dropdown. Can be left, right, bottom, top, or auto.
|
650
|
+
* @option
|
651
|
+
* @type {string}
|
652
|
+
* @default 'auto'
|
653
|
+
*/
|
654
|
+
position: 'auto',
|
655
|
+
|
656
|
+
/**
|
657
|
+
* Alignment of dropdown relative to anchor. Can be left, right, bottom, top, center, or auto.
|
658
|
+
* @option
|
659
|
+
* @type {string}
|
660
|
+
* @default 'auto'
|
661
|
+
*/
|
662
|
+
alignment: 'auto',
|
663
|
+
|
664
|
+
/**
|
665
|
+
* Allow overlap of container/window. If false, dropdown will first try to position as defined by data-position and data-alignment, but reposition if it would cause an overflow.
|
666
|
+
* @option
|
667
|
+
* @type {boolean}
|
668
|
+
* @default false
|
669
|
+
*/
|
670
|
+
allowOverlap: false,
|
671
|
+
|
672
|
+
/**
|
673
|
+
* Allow overlap of only the bottom of the container. This is the most common
|
674
|
+
* behavior for dropdowns, allowing the dropdown to extend the bottom of the
|
675
|
+
* screen but not otherwise influence or break out of the container.
|
676
|
+
* @option
|
677
|
+
* @type {boolean}
|
678
|
+
* @default true
|
679
|
+
*/
|
680
|
+
allowBottomOverlap: true,
|
681
|
+
|
682
|
+
/**
|
683
|
+
* Allow the plugin to trap focus to the dropdown pane if opened with keyboard commands.
|
684
|
+
* @option
|
685
|
+
* @type {boolean}
|
686
|
+
* @default false
|
687
|
+
*/
|
688
|
+
trapFocus: false,
|
689
|
+
|
690
|
+
/**
|
691
|
+
* Allow the plugin to set focus to the first focusable element within the pane, regardless of method of opening.
|
692
|
+
* @option
|
693
|
+
* @type {boolean}
|
694
|
+
* @default false
|
695
|
+
*/
|
696
|
+
autoFocus: false,
|
697
|
+
|
698
|
+
/**
|
699
|
+
* Allows a click on the body to close the dropdown.
|
700
|
+
* @option
|
701
|
+
* @type {boolean}
|
702
|
+
* @default false
|
703
|
+
*/
|
704
|
+
closeOnClick: false
|
705
|
+
};
|
706
|
+
|
707
|
+
|
708
|
+
/***/ }),
|
709
|
+
|
710
|
+
/***/ "./js/foundation.positionable.js":
|
711
|
+
/*!***************************************!*\
|
712
|
+
!*** ./js/foundation.positionable.js ***!
|
713
|
+
\***************************************/
|
714
|
+
/*! exports provided: Positionable */
|
715
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
716
|
+
|
717
|
+
"use strict";
|
718
|
+
__webpack_require__.r(__webpack_exports__);
|
719
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Positionable", function() { return Positionable; });
|
720
|
+
/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./foundation.util.box */ "./foundation.util.box");
|
721
|
+
/* harmony import */ var _foundation_util_box__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__);
|
722
|
+
/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.plugin */ "./foundation.core.plugin");
|
723
|
+
/* harmony import */ var _foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__);
|
724
|
+
/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.core.utils */ "./foundation.core.utils");
|
725
|
+
/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__);
|
726
|
+
|
727
|
+
|
728
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
729
|
+
|
730
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
731
|
+
|
732
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
733
|
+
|
734
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
735
|
+
|
736
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
737
|
+
|
738
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
739
|
+
|
740
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
741
|
+
|
742
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
743
|
+
|
744
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
745
|
+
|
746
|
+
|
747
|
+
|
748
|
+
|
749
|
+
var POSITIONS = ['left', 'right', 'top', 'bottom'];
|
750
|
+
var VERTICAL_ALIGNMENTS = ['top', 'bottom', 'center'];
|
751
|
+
var HORIZONTAL_ALIGNMENTS = ['left', 'right', 'center'];
|
752
|
+
var ALIGNMENTS = {
|
753
|
+
'left': VERTICAL_ALIGNMENTS,
|
754
|
+
'right': VERTICAL_ALIGNMENTS,
|
755
|
+
'top': HORIZONTAL_ALIGNMENTS,
|
756
|
+
'bottom': HORIZONTAL_ALIGNMENTS
|
757
|
+
};
|
758
|
+
|
759
|
+
function nextItem(item, array) {
|
760
|
+
var currentIdx = array.indexOf(item);
|
761
|
+
|
762
|
+
if (currentIdx === array.length - 1) {
|
763
|
+
return array[0];
|
764
|
+
} else {
|
765
|
+
return array[currentIdx + 1];
|
766
|
+
}
|
767
|
+
}
|
768
|
+
|
769
|
+
var Positionable =
|
770
|
+
/*#__PURE__*/
|
771
|
+
function (_Plugin) {
|
772
|
+
_inherits(Positionable, _Plugin);
|
773
|
+
|
774
|
+
function Positionable() {
|
775
|
+
_classCallCheck(this, Positionable);
|
776
|
+
|
777
|
+
return _possibleConstructorReturn(this, _getPrototypeOf(Positionable).apply(this, arguments));
|
778
|
+
}
|
779
|
+
|
780
|
+
_createClass(Positionable, [{
|
781
|
+
key: "_init",
|
782
|
+
|
783
|
+
/**
|
784
|
+
* Abstract class encapsulating the tether-like explicit positioning logic
|
785
|
+
* including repositioning based on overlap.
|
786
|
+
* Expects classes to define defaults for vOffset, hOffset, position,
|
787
|
+
* alignment, allowOverlap, and allowBottomOverlap. They can do this by
|
788
|
+
* extending the defaults, or (for now recommended due to the way docs are
|
789
|
+
* generated) by explicitly declaring them.
|
790
|
+
*
|
791
|
+
**/
|
792
|
+
value: function _init() {
|
793
|
+
this.triedPositions = {};
|
794
|
+
this.position = this.options.position === 'auto' ? this._getDefaultPosition() : this.options.position;
|
795
|
+
this.alignment = this.options.alignment === 'auto' ? this._getDefaultAlignment() : this.options.alignment;
|
796
|
+
this.originalPosition = this.position;
|
797
|
+
this.originalAlignment = this.alignment;
|
798
|
+
}
|
799
|
+
}, {
|
800
|
+
key: "_getDefaultPosition",
|
801
|
+
value: function _getDefaultPosition() {
|
802
|
+
return 'bottom';
|
803
|
+
}
|
804
|
+
}, {
|
805
|
+
key: "_getDefaultAlignment",
|
806
|
+
value: function _getDefaultAlignment() {
|
807
|
+
switch (this.position) {
|
808
|
+
case 'bottom':
|
809
|
+
case 'top':
|
810
|
+
return Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_2__["rtl"])() ? 'right' : 'left';
|
811
|
+
|
812
|
+
case 'left':
|
813
|
+
case 'right':
|
814
|
+
return 'bottom';
|
815
|
+
}
|
816
|
+
}
|
817
|
+
/**
|
818
|
+
* Adjusts the positionable possible positions by iterating through alignments
|
819
|
+
* and positions.
|
820
|
+
* @function
|
821
|
+
* @private
|
822
|
+
*/
|
823
|
+
|
824
|
+
}, {
|
825
|
+
key: "_reposition",
|
826
|
+
value: function _reposition() {
|
827
|
+
if (this._alignmentsExhausted(this.position)) {
|
828
|
+
this.position = nextItem(this.position, POSITIONS);
|
829
|
+
this.alignment = ALIGNMENTS[this.position][0];
|
830
|
+
} else {
|
831
|
+
this._realign();
|
832
|
+
}
|
833
|
+
}
|
834
|
+
/**
|
835
|
+
* Adjusts the dropdown pane possible positions by iterating through alignments
|
836
|
+
* on the current position.
|
837
|
+
* @function
|
838
|
+
* @private
|
839
|
+
*/
|
840
|
+
|
841
|
+
}, {
|
842
|
+
key: "_realign",
|
843
|
+
value: function _realign() {
|
844
|
+
this._addTriedPosition(this.position, this.alignment);
|
845
|
+
|
846
|
+
this.alignment = nextItem(this.alignment, ALIGNMENTS[this.position]);
|
847
|
+
}
|
848
|
+
}, {
|
849
|
+
key: "_addTriedPosition",
|
850
|
+
value: function _addTriedPosition(position, alignment) {
|
851
|
+
this.triedPositions[position] = this.triedPositions[position] || [];
|
852
|
+
this.triedPositions[position].push(alignment);
|
853
|
+
}
|
854
|
+
}, {
|
855
|
+
key: "_positionsExhausted",
|
856
|
+
value: function _positionsExhausted() {
|
857
|
+
var isExhausted = true;
|
858
|
+
|
859
|
+
for (var i = 0; i < POSITIONS.length; i++) {
|
860
|
+
isExhausted = isExhausted && this._alignmentsExhausted(POSITIONS[i]);
|
861
|
+
}
|
862
|
+
|
863
|
+
return isExhausted;
|
864
|
+
}
|
865
|
+
}, {
|
866
|
+
key: "_alignmentsExhausted",
|
867
|
+
value: function _alignmentsExhausted(position) {
|
868
|
+
return this.triedPositions[position] && this.triedPositions[position].length == ALIGNMENTS[position].length;
|
869
|
+
} // When we're trying to center, we don't want to apply offset that's going to
|
870
|
+
// take us just off center, so wrap around to return 0 for the appropriate
|
871
|
+
// offset in those alignments. TODO: Figure out if we want to make this
|
872
|
+
// configurable behavior... it feels more intuitive, especially for tooltips, but
|
873
|
+
// it's possible someone might actually want to start from center and then nudge
|
874
|
+
// slightly off.
|
875
|
+
|
876
|
+
}, {
|
877
|
+
key: "_getVOffset",
|
878
|
+
value: function _getVOffset() {
|
879
|
+
return this.options.vOffset;
|
880
|
+
}
|
881
|
+
}, {
|
882
|
+
key: "_getHOffset",
|
883
|
+
value: function _getHOffset() {
|
884
|
+
return this.options.hOffset;
|
885
|
+
}
|
886
|
+
}, {
|
887
|
+
key: "_setPosition",
|
888
|
+
value: function _setPosition($anchor, $element, $parent) {
|
889
|
+
if ($anchor.attr('aria-expanded') === 'false') {
|
890
|
+
return false;
|
891
|
+
}
|
892
|
+
|
893
|
+
var $eleDims = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetDimensions($element),
|
894
|
+
$anchorDims = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetDimensions($anchor);
|
895
|
+
|
896
|
+
if (!this.options.allowOverlap) {
|
897
|
+
// restore original position & alignment before checking overlap
|
898
|
+
this.position = this.originalPosition;
|
899
|
+
this.alignment = this.originalAlignment;
|
900
|
+
}
|
901
|
+
|
902
|
+
$element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
|
903
|
+
|
904
|
+
if (!this.options.allowOverlap) {
|
905
|
+
var overlaps = {};
|
906
|
+
var minOverlap = 100000000; // default coordinates to how we start, in case we can't figure out better
|
907
|
+
|
908
|
+
var minCoordinates = {
|
909
|
+
position: this.position,
|
910
|
+
alignment: this.alignment
|
911
|
+
};
|
912
|
+
|
913
|
+
while (!this._positionsExhausted()) {
|
914
|
+
var overlap = _foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].OverlapArea($element, $parent, false, false, this.options.allowBottomOverlap);
|
915
|
+
|
916
|
+
if (overlap === 0) {
|
917
|
+
return;
|
918
|
+
}
|
919
|
+
|
920
|
+
if (overlap < minOverlap) {
|
921
|
+
minOverlap = overlap;
|
922
|
+
minCoordinates = {
|
923
|
+
position: this.position,
|
924
|
+
alignment: this.alignment
|
925
|
+
};
|
926
|
+
}
|
927
|
+
|
928
|
+
this._reposition();
|
929
|
+
|
930
|
+
$element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
|
931
|
+
} // If we get through the entire loop, there was no non-overlapping
|
932
|
+
// position available. Pick the version with least overlap.
|
933
|
+
|
934
|
+
|
935
|
+
this.position = minCoordinates.position;
|
936
|
+
this.alignment = minCoordinates.alignment;
|
937
|
+
$element.offset(_foundation_util_box__WEBPACK_IMPORTED_MODULE_0__["Box"].GetExplicitOffsets($element, $anchor, this.position, this.alignment, this._getVOffset(), this._getHOffset()));
|
938
|
+
}
|
939
|
+
}
|
940
|
+
}]);
|
941
|
+
|
942
|
+
return Positionable;
|
943
|
+
}(_foundation_core_plugin__WEBPACK_IMPORTED_MODULE_1__["Plugin"]);
|
944
|
+
|
945
|
+
Positionable.defaults = {
|
946
|
+
/**
|
947
|
+
* Position of positionable relative to anchor. Can be left, right, bottom, top, or auto.
|
948
|
+
* @option
|
949
|
+
* @type {string}
|
950
|
+
* @default 'auto'
|
951
|
+
*/
|
952
|
+
position: 'auto',
|
953
|
+
|
954
|
+
/**
|
955
|
+
* Alignment of positionable relative to anchor. Can be left, right, bottom, top, center, or auto.
|
956
|
+
* @option
|
957
|
+
* @type {string}
|
958
|
+
* @default 'auto'
|
959
|
+
*/
|
960
|
+
alignment: 'auto',
|
961
|
+
|
962
|
+
/**
|
963
|
+
* Allow overlap of container/window. If false, dropdown positionable first
|
964
|
+
* try to position as defined by data-position and data-alignment, but
|
965
|
+
* reposition if it would cause an overflow.
|
966
|
+
* @option
|
967
|
+
* @type {boolean}
|
968
|
+
* @default false
|
969
|
+
*/
|
970
|
+
allowOverlap: false,
|
971
|
+
|
972
|
+
/**
|
973
|
+
* Allow overlap of only the bottom of the container. This is the most common
|
974
|
+
* behavior for dropdowns, allowing the dropdown to extend the bottom of the
|
975
|
+
* screen but not otherwise influence or break out of the container.
|
976
|
+
* @option
|
977
|
+
* @type {boolean}
|
978
|
+
* @default true
|
979
|
+
*/
|
980
|
+
allowBottomOverlap: true,
|
981
|
+
|
982
|
+
/**
|
983
|
+
* Number of pixels the positionable should be separated vertically from anchor
|
984
|
+
* @option
|
985
|
+
* @type {number}
|
986
|
+
* @default 0
|
987
|
+
*/
|
988
|
+
vOffset: 0,
|
989
|
+
|
990
|
+
/**
|
991
|
+
* Number of pixels the positionable should be separated horizontally from anchor
|
992
|
+
* @option
|
993
|
+
* @type {number}
|
994
|
+
* @default 0
|
995
|
+
*/
|
996
|
+
hOffset: 0
|
997
|
+
};
|
998
|
+
|
999
|
+
|
1000
|
+
/***/ }),
|
1001
|
+
|
1002
|
+
/***/ "./js/foundation.util.triggers.js":
|
1003
|
+
/*!****************************************!*\
|
1004
|
+
!*** ./js/foundation.util.triggers.js ***!
|
1005
|
+
\****************************************/
|
1006
|
+
/*! exports provided: Triggers */
|
1007
|
+
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
1008
|
+
|
1009
|
+
"use strict";
|
1010
|
+
__webpack_require__.r(__webpack_exports__);
|
1011
|
+
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Triggers", function() { return Triggers; });
|
1012
|
+
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "jquery");
|
1013
|
+
/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__);
|
1014
|
+
/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./foundation.core.utils */ "./foundation.core.utils");
|
1015
|
+
/* harmony import */ var _foundation_core_utils__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__);
|
1016
|
+
/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./foundation.util.motion */ "./foundation.util.motion");
|
1017
|
+
/* harmony import */ var _foundation_util_motion__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__);
|
1018
|
+
|
1019
|
+
|
1020
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
1021
|
+
|
1022
|
+
|
1023
|
+
|
1024
|
+
|
1025
|
+
|
1026
|
+
var MutationObserver = function () {
|
1027
|
+
var prefixes = ['WebKit', 'Moz', 'O', 'Ms', ''];
|
1028
|
+
|
1029
|
+
for (var i = 0; i < prefixes.length; i++) {
|
1030
|
+
if ("".concat(prefixes[i], "MutationObserver") in window) {
|
1031
|
+
return window["".concat(prefixes[i], "MutationObserver")];
|
1032
|
+
}
|
1033
|
+
}
|
1034
|
+
|
1035
|
+
return false;
|
1036
|
+
}();
|
1037
|
+
|
1038
|
+
var triggers = function triggers(el, type) {
|
1039
|
+
el.data(type).split(' ').forEach(function (id) {
|
1040
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()("#".concat(id))[type === 'close' ? 'trigger' : 'triggerHandler']("".concat(type, ".zf.trigger"), [el]);
|
1041
|
+
});
|
1042
|
+
};
|
1043
|
+
|
1044
|
+
var Triggers = {
|
1045
|
+
Listeners: {
|
1046
|
+
Basic: {},
|
1047
|
+
Global: {}
|
1048
|
+
},
|
1049
|
+
Initializers: {}
|
1050
|
+
};
|
1051
|
+
Triggers.Listeners.Basic = {
|
1052
|
+
openListener: function openListener() {
|
1053
|
+
triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'open');
|
1054
|
+
},
|
1055
|
+
closeListener: function closeListener() {
|
1056
|
+
var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('close');
|
1057
|
+
|
1058
|
+
if (id) {
|
1059
|
+
triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'close');
|
1060
|
+
} else {
|
1061
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('close.zf.trigger');
|
1062
|
+
}
|
1063
|
+
},
|
1064
|
+
toggleListener: function toggleListener() {
|
1065
|
+
var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle');
|
1066
|
+
|
1067
|
+
if (id) {
|
1068
|
+
triggers(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), 'toggle');
|
1069
|
+
} else {
|
1070
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('toggle.zf.trigger');
|
1071
|
+
}
|
1072
|
+
},
|
1073
|
+
closeableListener: function closeableListener(e) {
|
1074
|
+
e.stopPropagation();
|
1075
|
+
var animation = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('closable');
|
1076
|
+
|
1077
|
+
if (animation !== '') {
|
1078
|
+
_foundation_util_motion__WEBPACK_IMPORTED_MODULE_2__["Motion"].animateOut(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this), animation, function () {
|
1079
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).trigger('closed.zf');
|
1080
|
+
});
|
1081
|
+
} else {
|
1082
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).fadeOut().trigger('closed.zf');
|
1083
|
+
}
|
1084
|
+
},
|
1085
|
+
toggleFocusListener: function toggleFocusListener() {
|
1086
|
+
var id = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).data('toggle-focus');
|
1087
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()("#".concat(id)).triggerHandler('toggle.zf.trigger', [jquery__WEBPACK_IMPORTED_MODULE_0___default()(this)]);
|
1088
|
+
}
|
1089
|
+
}; // Elements with [data-open] will reveal a plugin that supports it when clicked.
|
1090
|
+
|
1091
|
+
Triggers.Initializers.addOpenListener = function ($elem) {
|
1092
|
+
$elem.off('click.zf.trigger', Triggers.Listeners.Basic.openListener);
|
1093
|
+
$elem.on('click.zf.trigger', '[data-open]', Triggers.Listeners.Basic.openListener);
|
1094
|
+
}; // Elements with [data-close] will close a plugin that supports it when clicked.
|
1095
|
+
// If used without a value on [data-close], the event will bubble, allowing it to close a parent component.
|
1096
|
+
|
1097
|
+
|
1098
|
+
Triggers.Initializers.addCloseListener = function ($elem) {
|
1099
|
+
$elem.off('click.zf.trigger', Triggers.Listeners.Basic.closeListener);
|
1100
|
+
$elem.on('click.zf.trigger', '[data-close]', Triggers.Listeners.Basic.closeListener);
|
1101
|
+
}; // Elements with [data-toggle] will toggle a plugin that supports it when clicked.
|
1102
|
+
|
1103
|
+
|
1104
|
+
Triggers.Initializers.addToggleListener = function ($elem) {
|
1105
|
+
$elem.off('click.zf.trigger', Triggers.Listeners.Basic.toggleListener);
|
1106
|
+
$elem.on('click.zf.trigger', '[data-toggle]', Triggers.Listeners.Basic.toggleListener);
|
1107
|
+
}; // Elements with [data-closable] will respond to close.zf.trigger events.
|
1108
|
+
|
1109
|
+
|
1110
|
+
Triggers.Initializers.addCloseableListener = function ($elem) {
|
1111
|
+
$elem.off('close.zf.trigger', Triggers.Listeners.Basic.closeableListener);
|
1112
|
+
$elem.on('close.zf.trigger', '[data-closeable], [data-closable]', Triggers.Listeners.Basic.closeableListener);
|
1113
|
+
}; // Elements with [data-toggle-focus] will respond to coming in and out of focus
|
1114
|
+
|
1115
|
+
|
1116
|
+
Triggers.Initializers.addToggleFocusListener = function ($elem) {
|
1117
|
+
$elem.off('focus.zf.trigger blur.zf.trigger', Triggers.Listeners.Basic.toggleFocusListener);
|
1118
|
+
$elem.on('focus.zf.trigger blur.zf.trigger', '[data-toggle-focus]', Triggers.Listeners.Basic.toggleFocusListener);
|
1119
|
+
}; // More Global/complex listeners and triggers
|
1120
|
+
|
1121
|
+
|
1122
|
+
Triggers.Listeners.Global = {
|
1123
|
+
resizeListener: function resizeListener($nodes) {
|
1124
|
+
if (!MutationObserver) {
|
1125
|
+
//fallback for IE 9
|
1126
|
+
$nodes.each(function () {
|
1127
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('resizeme.zf.trigger');
|
1128
|
+
});
|
1129
|
+
} //trigger all listening elements and signal a resize event
|
1130
|
+
|
1131
|
+
|
1132
|
+
$nodes.attr('data-events', "resize");
|
1133
|
+
},
|
1134
|
+
scrollListener: function scrollListener($nodes) {
|
1135
|
+
if (!MutationObserver) {
|
1136
|
+
//fallback for IE 9
|
1137
|
+
$nodes.each(function () {
|
1138
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).triggerHandler('scrollme.zf.trigger');
|
1139
|
+
});
|
1140
|
+
} //trigger all listening elements and signal a scroll event
|
1141
|
+
|
1142
|
+
|
1143
|
+
$nodes.attr('data-events', "scroll");
|
1144
|
+
},
|
1145
|
+
closeMeListener: function closeMeListener(e, pluginId) {
|
1146
|
+
var plugin = e.namespace.split('.')[0];
|
1147
|
+
var plugins = jquery__WEBPACK_IMPORTED_MODULE_0___default()("[data-".concat(plugin, "]")).not("[data-yeti-box=\"".concat(pluginId, "\"]"));
|
1148
|
+
plugins.each(function () {
|
1149
|
+
var _this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this);
|
1150
|
+
|
1151
|
+
_this.triggerHandler('close.zf.trigger', [_this]);
|
1152
|
+
});
|
1153
|
+
} // Global, parses whole document.
|
1154
|
+
|
1155
|
+
};
|
1156
|
+
|
1157
|
+
Triggers.Initializers.addClosemeListener = function (pluginName) {
|
1158
|
+
var yetiBoxes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-yeti-box]'),
|
1159
|
+
plugNames = ['dropdown', 'tooltip', 'reveal'];
|
1160
|
+
|
1161
|
+
if (pluginName) {
|
1162
|
+
if (typeof pluginName === 'string') {
|
1163
|
+
plugNames.push(pluginName);
|
1164
|
+
} else if (_typeof(pluginName) === 'object' && typeof pluginName[0] === 'string') {
|
1165
|
+
plugNames.concat(pluginName);
|
1166
|
+
} else {
|
1167
|
+
console.error('Plugin names must be strings');
|
1168
|
+
}
|
1169
|
+
}
|
1170
|
+
|
1171
|
+
if (yetiBoxes.length) {
|
1172
|
+
var listeners = plugNames.map(function (name) {
|
1173
|
+
return "closeme.zf.".concat(name);
|
1174
|
+
}).join(' ');
|
1175
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(listeners).on(listeners, Triggers.Listeners.Global.closeMeListener);
|
1176
|
+
}
|
1177
|
+
};
|
1178
|
+
|
1179
|
+
function debounceGlobalListener(debounce, trigger, listener) {
|
1180
|
+
var timer,
|
1181
|
+
args = Array.prototype.slice.call(arguments, 3);
|
1182
|
+
jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).off(trigger).on(trigger, function (e) {
|
1183
|
+
if (timer) {
|
1184
|
+
clearTimeout(timer);
|
1185
|
+
}
|
1186
|
+
|
1187
|
+
timer = setTimeout(function () {
|
1188
|
+
listener.apply(null, args);
|
1189
|
+
}, debounce || 10); //default time to emit scroll event
|
1190
|
+
});
|
1191
|
+
}
|
1192
|
+
|
1193
|
+
Triggers.Initializers.addResizeListener = function (debounce) {
|
1194
|
+
var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-resize]');
|
1195
|
+
|
1196
|
+
if ($nodes.length) {
|
1197
|
+
debounceGlobalListener(debounce, 'resize.zf.trigger', Triggers.Listeners.Global.resizeListener, $nodes);
|
1198
|
+
}
|
1199
|
+
};
|
1200
|
+
|
1201
|
+
Triggers.Initializers.addScrollListener = function (debounce) {
|
1202
|
+
var $nodes = jquery__WEBPACK_IMPORTED_MODULE_0___default()('[data-scroll]');
|
1203
|
+
|
1204
|
+
if ($nodes.length) {
|
1205
|
+
debounceGlobalListener(debounce, 'scroll.zf.trigger', Triggers.Listeners.Global.scrollListener, $nodes);
|
1206
|
+
}
|
1207
|
+
};
|
1208
|
+
|
1209
|
+
Triggers.Initializers.addMutationEventsListener = function ($elem) {
|
1210
|
+
if (!MutationObserver) {
|
1211
|
+
return false;
|
1212
|
+
}
|
1213
|
+
|
1214
|
+
var $nodes = $elem.find('[data-resize], [data-scroll], [data-mutate]'); //element callback
|
1215
|
+
|
1216
|
+
var listeningElementsMutation = function listeningElementsMutation(mutationRecordsList) {
|
1217
|
+
var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()(mutationRecordsList[0].target); //trigger the event handler for the element depending on type
|
1218
|
+
|
1219
|
+
switch (mutationRecordsList[0].type) {
|
1220
|
+
case "attributes":
|
1221
|
+
if ($target.attr("data-events") === "scroll" && mutationRecordsList[0].attributeName === "data-events") {
|
1222
|
+
$target.triggerHandler('scrollme.zf.trigger', [$target, window.pageYOffset]);
|
1223
|
+
}
|
1224
|
+
|
1225
|
+
if ($target.attr("data-events") === "resize" && mutationRecordsList[0].attributeName === "data-events") {
|
1226
|
+
$target.triggerHandler('resizeme.zf.trigger', [$target]);
|
1227
|
+
}
|
1228
|
+
|
1229
|
+
if (mutationRecordsList[0].attributeName === "style") {
|
1230
|
+
$target.closest("[data-mutate]").attr("data-events", "mutate");
|
1231
|
+
$target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
|
1232
|
+
}
|
1233
|
+
|
1234
|
+
break;
|
1235
|
+
|
1236
|
+
case "childList":
|
1237
|
+
$target.closest("[data-mutate]").attr("data-events", "mutate");
|
1238
|
+
$target.closest("[data-mutate]").triggerHandler('mutateme.zf.trigger', [$target.closest("[data-mutate]")]);
|
1239
|
+
break;
|
1240
|
+
|
1241
|
+
default:
|
1242
|
+
return false;
|
1243
|
+
//nothing
|
1244
|
+
}
|
1245
|
+
};
|
1246
|
+
|
1247
|
+
if ($nodes.length) {
|
1248
|
+
//for each element that needs to listen for resizing, scrolling, or mutation add a single observer
|
1249
|
+
for (var i = 0; i <= $nodes.length - 1; i++) {
|
1250
|
+
var elementObserver = new MutationObserver(listeningElementsMutation);
|
1251
|
+
elementObserver.observe($nodes[i], {
|
1252
|
+
attributes: true,
|
1253
|
+
childList: true,
|
1254
|
+
characterData: false,
|
1255
|
+
subtree: true,
|
1256
|
+
attributeFilter: ["data-events", "style"]
|
1257
|
+
});
|
1258
|
+
}
|
1259
|
+
}
|
1260
|
+
};
|
1261
|
+
|
1262
|
+
Triggers.Initializers.addSimpleListeners = function () {
|
1263
|
+
var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);
|
1264
|
+
Triggers.Initializers.addOpenListener($document);
|
1265
|
+
Triggers.Initializers.addCloseListener($document);
|
1266
|
+
Triggers.Initializers.addToggleListener($document);
|
1267
|
+
Triggers.Initializers.addCloseableListener($document);
|
1268
|
+
Triggers.Initializers.addToggleFocusListener($document);
|
1269
|
+
};
|
1270
|
+
|
1271
|
+
Triggers.Initializers.addGlobalListeners = function () {
|
1272
|
+
var $document = jquery__WEBPACK_IMPORTED_MODULE_0___default()(document);
|
1273
|
+
Triggers.Initializers.addMutationEventsListener($document);
|
1274
|
+
Triggers.Initializers.addResizeListener();
|
1275
|
+
Triggers.Initializers.addScrollListener();
|
1276
|
+
Triggers.Initializers.addClosemeListener();
|
1277
|
+
};
|
1278
|
+
|
1279
|
+
Triggers.init = function ($, Foundation) {
|
1280
|
+
Object(_foundation_core_utils__WEBPACK_IMPORTED_MODULE_1__["onLoad"])($(window), function () {
|
1281
|
+
if ($.triggersInitialized !== true) {
|
1282
|
+
Triggers.Initializers.addSimpleListeners();
|
1283
|
+
Triggers.Initializers.addGlobalListeners();
|
1284
|
+
$.triggersInitialized = true;
|
1285
|
+
}
|
1286
|
+
});
|
1287
|
+
|
1288
|
+
if (Foundation) {
|
1289
|
+
Foundation.Triggers = Triggers; // Legacy included to be backwards compatible for now.
|
1290
|
+
|
1291
|
+
Foundation.IHearYou = Triggers.Initializers.addGlobalListeners;
|
1292
|
+
}
|
1293
|
+
};
|
1294
|
+
|
1295
|
+
|
1296
|
+
|
1297
|
+
/***/ }),
|
1298
|
+
|
1299
|
+
/***/ 4:
|
1300
|
+
/*!*********************************************************!*\
|
1301
|
+
!*** multi ./js/entries/plugins/foundation.dropdown.js ***!
|
1302
|
+
\*********************************************************/
|
1303
|
+
/*! no static exports found */
|
1304
|
+
/***/ (function(module, exports, __webpack_require__) {
|
1305
|
+
|
1306
|
+
module.exports = __webpack_require__(/*! /Users/ncoden/Documents/Documents/Projects/Programmation/Web/2016/Foundation/foundation-sites/js/entries/plugins/foundation.dropdown.js */"./js/entries/plugins/foundation.dropdown.js");
|
1307
|
+
|
1308
|
+
|
1309
|
+
/***/ }),
|
1310
|
+
|
1311
|
+
/***/ "jquery":
|
1312
|
+
/*!********************************************************************************************!*\
|
1313
|
+
!*** external {"root":["jQuery"],"amd":"jquery","commonjs":"jquery","commonjs2":"jquery"} ***!
|
1314
|
+
\********************************************************************************************/
|
1315
|
+
/*! no static exports found */
|
1316
|
+
/***/ (function(module, exports) {
|
1317
|
+
|
1318
|
+
module.exports = __WEBPACK_EXTERNAL_MODULE_jquery__;
|
1319
|
+
|
1320
|
+
/***/ })
|
1321
|
+
|
1322
|
+
/******/ });
|
1323
|
+
});
|
1324
|
+
//# sourceMappingURL=foundation.dropdown.js.map
|