aacinfo-theme 0.2.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +25 -1
- data/_includes/footer.html +54 -0
- data/_includes/header.html +46 -0
- data/_includes/parts/content.html +6 -0
- data/_includes/parts/social-media.html +10 -0
- data/_includes/theme-menu.html +27 -28
- data/_layouts/theme.html +14 -26
- data/_layouts/title-page.html +22 -0
- data/_sass/_style.scss +122 -0
- data/_sass/components/_blockquotes.scss +62 -0
- data/_sass/components/_buttons.scss +100 -0
- data/_sass/components/_cards.scss +29 -0
- data/_sass/components/_dividers.scss +165 -0
- data/_sass/components/_featured-image.scss +14 -0
- data/_sass/components/_forms.scss +414 -0
- data/_sass/components/_links.scss +83 -0
- data/_sass/components/_pagination.scss +91 -0
- data/_sass/components/_selectric.scss +200 -0
- data/_sass/components/_slick-theme.scss +194 -0
- data/_sass/components/_slick.scss +98 -0
- data/_sass/components/_spinner.scss +356 -0
- data/_sass/components/_svg.scss +12 -0
- data/_sass/fontawesome/.bower.json +36 -0
- data/_sass/fontawesome/.gitignore +33 -0
- data/_sass/fontawesome/.npmignore +42 -0
- data/_sass/fontawesome/HELP-US-OUT.txt +7 -0
- data/_sass/fontawesome/bower.json +22 -0
- data/{assets → _sass/fontawesome}/css/font-awesome.css +547 -11
- data/_sass/fontawesome/css/font-awesome.css.map +7 -0
- data/_sass/fontawesome/css/font-awesome.min.css +4 -0
- data/_sass/fontawesome/fonts/FontAwesome.otf +0 -0
- data/_sass/fontawesome/fonts/fontawesome-webfont.eot +0 -0
- data/_sass/fontawesome/fonts/fontawesome-webfont.svg +2671 -0
- data/_sass/fontawesome/fonts/fontawesome-webfont.ttf +0 -0
- data/_sass/fontawesome/fonts/fontawesome-webfont.woff +0 -0
- data/_sass/fontawesome/fonts/fontawesome-webfont.woff2 +0 -0
- data/_sass/fontawesome/less/animated.less +34 -0
- data/_sass/fontawesome/less/bordered-pulled.less +25 -0
- data/_sass/fontawesome/less/core.less +12 -0
- data/_sass/fontawesome/less/fixed-width.less +6 -0
- data/_sass/fontawesome/less/font-awesome.less +18 -0
- data/_sass/fontawesome/less/icons.less +789 -0
- data/_sass/fontawesome/less/larger.less +13 -0
- data/_sass/fontawesome/less/list.less +19 -0
- data/_sass/fontawesome/less/mixins.less +60 -0
- data/_sass/fontawesome/less/path.less +15 -0
- data/_sass/fontawesome/less/rotated-flipped.less +20 -0
- data/_sass/fontawesome/less/screen-reader.less +5 -0
- data/_sass/fontawesome/less/stacked.less +20 -0
- data/_sass/fontawesome/less/variables.less +800 -0
- data/_sass/fontawesome/scss/_animated.scss +34 -0
- data/_sass/fontawesome/scss/_bordered-pulled.scss +25 -0
- data/_sass/fontawesome/scss/_core.scss +12 -0
- data/_sass/fontawesome/scss/_fixed-width.scss +6 -0
- data/_sass/fontawesome/scss/_icons.scss +789 -0
- data/_sass/fontawesome/scss/_larger.scss +13 -0
- data/_sass/fontawesome/scss/_list.scss +19 -0
- data/_sass/fontawesome/scss/_mixins.scss +60 -0
- data/_sass/fontawesome/scss/_path.scss +15 -0
- data/_sass/fontawesome/scss/_rotated-flipped.scss +20 -0
- data/_sass/fontawesome/scss/_screen-reader.scss +5 -0
- data/_sass/fontawesome/scss/_stacked.scss +20 -0
- data/_sass/fontawesome/scss/_variables.scss +800 -0
- data/_sass/fontawesome/scss/font-awesome.scss +18 -0
- data/_sass/foundation-sites/.bower.json +44 -0
- data/_sass/foundation-sites/.bowerrc +3 -0
- data/_sass/foundation-sites/.eslintrc +64 -0
- data/_sass/foundation-sites/.github/ISSUE_TEMPLATE.md +21 -0
- data/_sass/foundation-sites/.github/PULL_REQUEST_TEMPLATE.md +9 -0
- data/_sass/foundation-sites/.sass-lint.yml +409 -0
- data/_sass/foundation-sites/.travis.yml +9 -0
- data/_sass/foundation-sites/LICENSE +22 -0
- data/_sass/foundation-sites/README.md +52 -0
- data/_sass/foundation-sites/_vendor/normalize-scss/sass/_normalize.scss +3 -0
- data/_sass/foundation-sites/_vendor/normalize-scss/sass/normalize/_import-now.scss +11 -0
- data/_sass/foundation-sites/_vendor/normalize-scss/sass/normalize/_normalize-mixin.scss +676 -0
- data/_sass/foundation-sites/_vendor/normalize-scss/sass/normalize/_variables.scss +36 -0
- data/_sass/foundation-sites/_vendor/normalize-scss/sass/normalize/_vertical-rhythm.scss +61 -0
- data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/functions/_purge.scss +38 -0
- data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/functions/_remove.scss +31 -0
- data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/functions/_replace.scss +46 -0
- data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/functions/_to-list.scss +27 -0
- data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/helpers/_missing-dependencies.scss +25 -0
- data/_sass/foundation-sites/_vendor/sassy-lists/stylesheets/helpers/_true.scss +13 -0
- data/_sass/foundation-sites/assets/foundation-flex.scss +3 -0
- data/_sass/foundation-sites/assets/foundation-rtl.scss +5 -0
- data/_sass/foundation-sites/assets/foundation.scss +3 -0
- data/_sass/foundation-sites/bower.json +34 -0
- data/_sass/foundation-sites/browserstack.json +32 -0
- data/_sass/foundation-sites/code-of-conduct.md +43 -0
- data/_sass/foundation-sites/customizer/complete.json +48 -0
- data/_sass/foundation-sites/customizer/config.yml +228 -0
- data/_sass/foundation-sites/customizer/essential.json +11 -0
- data/_sass/foundation-sites/customizer/index.html +169 -0
- data/_sass/foundation-sites/dist/css/foundation-flex.css +4566 -0
- data/_sass/foundation-sites/dist/css/foundation-flex.min.css +2 -0
- data/_sass/foundation-sites/dist/css/foundation-rtl.css +4006 -0
- data/_sass/foundation-sites/dist/css/foundation-rtl.min.css +2 -0
- data/_sass/foundation-sites/dist/css/foundation.css +4001 -0
- data/_sass/foundation-sites/dist/css/foundation.min.css +2 -0
- data/_sass/foundation-sites/dist/js/foundation.d.ts +496 -0
- data/_sass/foundation-sites/dist/js/foundation.js +10207 -0
- data/_sass/foundation-sites/dist/js/foundation.min.js +4 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.abide.js +637 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.abide.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.accordion.js +252 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.accordion.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.accordionMenu.js +318 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.accordionMenu.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.core.js +386 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.core.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.drilldown.js +565 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.drilldown.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.dropdown.js +465 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.dropdown.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.dropdownMenu.js +486 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.dropdownMenu.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.equalizer.js +374 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.equalizer.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.interchange.js +233 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.interchange.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.magellan.js +285 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.magellan.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.offcanvas.js +474 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.offcanvas.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.orbit.js +566 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.orbit.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.responsiveMenu.js +169 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.responsiveMenu.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.responsiveToggle.js +177 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.responsiveToggle.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.reveal.js +633 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.reveal.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.slider.js +762 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.slider.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.sticky.js +518 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.sticky.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.tabs.js +512 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.tabs.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.toggler.js +169 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.toggler.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.tooltip.js +492 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.tooltip.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.box.js +196 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.box.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.keyboard.js +163 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.keyboard.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.mediaQuery.js +233 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.mediaQuery.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.motion.js +103 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.motion.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.nest.js +74 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.nest.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.timerAndImageLoader.js +90 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.timerAndImageLoader.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.touch.js +352 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.touch.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.triggers.js +261 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.util.triggers.min.js +1 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.zf.responsiveAccordionTabs.js +262 -0
- data/_sass/foundation-sites/dist/js/plugins/foundation.zf.responsiveAccordionTabs.min.js +1 -0
- data/_sass/foundation-sites/docslink.sh +3 -0
- data/_sass/foundation-sites/js/foundation.abide.js +584 -0
- data/_sass/foundation-sites/js/foundation.accordion.js +315 -0
- data/_sass/foundation-sites/js/foundation.accordionMenu.js +283 -0
- data/_sass/foundation-sites/js/foundation.core.js +378 -0
- data/_sass/foundation-sites/js/foundation.drilldown.js +518 -0
- data/_sass/foundation-sites/js/foundation.dropdown.js +432 -0
- data/_sass/foundation-sites/js/foundation.dropdownMenu.js +442 -0
- data/_sass/foundation-sites/js/foundation.equalizer.js +317 -0
- data/_sass/foundation-sites/js/foundation.interchange.js +203 -0
- data/_sass/foundation-sites/js/foundation.magellan.js +251 -0
- data/_sass/foundation-sites/js/foundation.offcanvas.js +434 -0
- data/_sass/foundation-sites/js/foundation.orbit.js +523 -0
- data/_sass/foundation-sites/js/foundation.responsiveMenu.js +147 -0
- data/_sass/foundation-sites/js/foundation.responsiveToggle.js +155 -0
- data/_sass/foundation-sites/js/foundation.reveal.js +603 -0
- data/_sass/foundation-sites/js/foundation.slider.js +697 -0
- data/_sass/foundation-sites/js/foundation.sticky.js +499 -0
- data/_sass/foundation-sites/js/foundation.tabs.js +490 -0
- data/_sass/foundation-sites/js/foundation.toggler.js +148 -0
- data/_sass/foundation-sites/js/foundation.tooltip.js +470 -0
- data/_sass/foundation-sites/js/foundation.util.box.js +195 -0
- data/_sass/foundation-sites/js/foundation.util.keyboard.js +152 -0
- data/_sass/foundation-sites/js/foundation.util.mediaQuery.js +230 -0
- data/_sass/foundation-sites/js/foundation.util.motion.js +105 -0
- data/_sass/foundation-sites/js/foundation.util.nest.js +81 -0
- data/_sass/foundation-sites/js/foundation.util.timerAndImageLoader.js +88 -0
- data/_sass/foundation-sites/js/foundation.util.touch.js +352 -0
- data/_sass/foundation-sites/js/foundation.util.triggers.js +210 -0
- data/_sass/foundation-sites/js/foundation.zf.responsiveAccordionTabs.js +240 -0
- data/_sass/foundation-sites/scss/_global.scss +219 -0
- data/_sass/foundation-sites/scss/components/_accordion-menu.scss +36 -0
- data/_sass/foundation-sites/scss/components/_accordion.scss +150 -0
- data/_sass/foundation-sites/scss/components/_badge.scss +63 -0
- data/_sass/foundation-sites/scss/components/_breadcrumbs.scss +100 -0
- data/_sass/foundation-sites/scss/components/_button-group.scss +253 -0
- data/_sass/foundation-sites/scss/components/_button.scss +332 -0
- data/_sass/foundation-sites/scss/components/_callout.scss +106 -0
- data/_sass/foundation-sites/scss/components/_card.scss +121 -0
- data/_sass/foundation-sites/scss/components/_close-button.scss +102 -0
- data/_sass/foundation-sites/scss/components/_drilldown.scss +93 -0
- data/_sass/foundation-sites/scss/components/_dropdown-menu.scss +226 -0
- data/_sass/foundation-sites/scss/components/_dropdown.scss +72 -0
- data/_sass/foundation-sites/scss/components/_flex-video.scss +1 -0
- data/_sass/foundation-sites/scss/components/_flex.scss +34 -0
- data/_sass/foundation-sites/scss/components/_float.scss +27 -0
- data/_sass/foundation-sites/scss/components/_label.scss +64 -0
- data/_sass/foundation-sites/scss/components/_media-object.scss +114 -0
- data/_sass/foundation-sites/scss/components/_menu-icon.scss +9 -0
- data/_sass/foundation-sites/scss/components/_menu.scss +376 -0
- data/_sass/foundation-sites/scss/components/_off-canvas.scss +329 -0
- data/_sass/foundation-sites/scss/components/_orbit.scss +196 -0
- data/_sass/foundation-sites/scss/components/_pagination.scss +193 -0
- data/_sass/foundation-sites/scss/components/_progress-bar.scss +64 -0
- data/_sass/foundation-sites/scss/components/_responsive-embed.scss +70 -0
- data/_sass/foundation-sites/scss/components/_reveal.scss +178 -0
- data/_sass/foundation-sites/scss/components/_slider.scss +138 -0
- data/_sass/foundation-sites/scss/components/_sticky.scss +38 -0
- data/_sass/foundation-sites/scss/components/_switch.scss +247 -0
- data/_sass/foundation-sites/scss/components/_table.scss +329 -0
- data/_sass/foundation-sites/scss/components/_tabs.scss +196 -0
- data/_sass/foundation-sites/scss/components/_thumbnail.scss +67 -0
- data/_sass/foundation-sites/scss/components/_title-bar.scss +84 -0
- data/_sass/foundation-sites/scss/components/_tooltip.scss +107 -0
- data/_sass/foundation-sites/scss/components/_top-bar.scss +173 -0
- data/_sass/foundation-sites/scss/components/_visibility.scss +132 -0
- data/_sass/foundation-sites/scss/forms/_checkbox.scss +41 -0
- data/_sass/foundation-sites/scss/forms/_error.scss +88 -0
- data/_sass/foundation-sites/scss/forms/_fieldset.scss +54 -0
- data/_sass/foundation-sites/scss/forms/_forms.scss +34 -0
- data/_sass/foundation-sites/scss/forms/_help-text.scss +30 -0
- data/_sass/foundation-sites/scss/forms/_input-group.scss +135 -0
- data/_sass/foundation-sites/scss/forms/_label.scss +50 -0
- data/_sass/foundation-sites/scss/forms/_meter.scss +110 -0
- data/_sass/foundation-sites/scss/forms/_progress.scss +94 -0
- data/_sass/foundation-sites/scss/forms/_range.scss +149 -0
- data/_sass/foundation-sites/scss/forms/_select.scss +85 -0
- data/_sass/foundation-sites/scss/forms/_text.scss +170 -0
- data/_sass/foundation-sites/scss/foundation.scss +118 -0
- data/_sass/foundation-sites/scss/grid/_classes.scss +176 -0
- data/_sass/foundation-sites/scss/grid/_column.scss +112 -0
- data/_sass/foundation-sites/scss/grid/_flex-grid.scss +312 -0
- data/_sass/foundation-sites/scss/grid/_grid.scss +48 -0
- data/_sass/foundation-sites/scss/grid/_gutter.scss +82 -0
- data/_sass/foundation-sites/scss/grid/_layout.scss +76 -0
- data/_sass/foundation-sites/scss/grid/_position.scss +76 -0
- data/_sass/foundation-sites/scss/grid/_row.scss +99 -0
- data/_sass/foundation-sites/scss/grid/_size.scss +24 -0
- data/_sass/foundation-sites/scss/settings/_settings.scss +620 -0
- data/_sass/foundation-sites/scss/typography/_alignment.scss +22 -0
- data/_sass/foundation-sites/scss/typography/_base.scss +509 -0
- data/_sass/foundation-sites/scss/typography/_helpers.scss +78 -0
- data/_sass/foundation-sites/scss/typography/_print.scss +86 -0
- data/_sass/foundation-sites/scss/typography/_typography.scss +26 -0
- data/_sass/foundation-sites/scss/util/_breakpoint.scss +281 -0
- data/_sass/foundation-sites/scss/util/_color.scss +126 -0
- data/_sass/foundation-sites/scss/util/_direction.scss +31 -0
- data/_sass/foundation-sites/scss/util/_flex.scss +85 -0
- data/_sass/foundation-sites/scss/util/_math.scss +72 -0
- data/_sass/foundation-sites/scss/util/_mixins.scss +276 -0
- data/_sass/foundation-sites/scss/util/_selector.scss +41 -0
- data/_sass/foundation-sites/scss/util/_typography.scss +26 -0
- data/_sass/foundation-sites/scss/util/_unit.scss +152 -0
- data/_sass/foundation-sites/scss/util/_util.scss +14 -0
- data/_sass/foundation-sites/scss/util/_value.scss +160 -0
- data/_sass/global/_accessibility.scss +32 -0
- data/_sass/global/_functions.scss +7 -0
- data/_sass/global/_modernizr.scss +0 -0
- data/_sass/global/_settings.scss +657 -0
- data/_sass/global/_wp-admin.scss +24 -0
- data/_sass/global/_wp-overrides.scss +51 -0
- data/_sass/jquery/.bower.json +25 -0
- data/_sass/jquery/AUTHORS.txt +278 -0
- data/_sass/jquery/LICENSE.txt +36 -0
- data/_sass/jquery/README.md +65 -0
- data/_sass/jquery/bower.json +14 -0
- data/_sass/jquery/dist/jquery.js +9814 -0
- data/_sass/jquery/dist/jquery.min.js +4 -0
- data/_sass/jquery/dist/jquery.min.map +1 -0
- data/_sass/jquery/external/sizzle/LICENSE.txt +36 -0
- data/_sass/jquery/external/sizzle/dist/sizzle.js +2143 -0
- data/_sass/jquery/external/sizzle/dist/sizzle.min.js +3 -0
- data/_sass/jquery/external/sizzle/dist/sizzle.min.map +1 -0
- data/_sass/jquery/src/.jshintrc +29 -0
- data/_sass/jquery/src/ajax.js +845 -0
- data/_sass/jquery/src/ajax/jsonp.js +100 -0
- data/_sass/jquery/src/ajax/load.js +83 -0
- data/_sass/jquery/src/ajax/parseJSON.js +13 -0
- data/_sass/jquery/src/ajax/parseXML.js +27 -0
- data/_sass/jquery/src/ajax/script.js +68 -0
- data/_sass/jquery/src/ajax/var/location.js +3 -0
- data/_sass/jquery/src/ajax/var/nonce.js +5 -0
- data/_sass/jquery/src/ajax/var/rquery.js +3 -0
- data/_sass/jquery/src/ajax/xhr.js +167 -0
- data/_sass/jquery/src/attributes.js +11 -0
- data/_sass/jquery/src/attributes/attr.js +142 -0
- data/_sass/jquery/src/attributes/classes.js +177 -0
- data/_sass/jquery/src/attributes/prop.js +125 -0
- data/_sass/jquery/src/attributes/support.js +36 -0
- data/_sass/jquery/src/attributes/val.js +177 -0
- data/_sass/jquery/src/callbacks.js +232 -0
- data/_sass/jquery/src/core.js +494 -0
- data/_sass/jquery/src/core/access.js +65 -0
- data/_sass/jquery/src/core/init.js +134 -0
- data/_sass/jquery/src/core/parseHTML.js +41 -0
- data/_sass/jquery/src/core/ready.js +103 -0
- data/_sass/jquery/src/core/var/rsingleTag.js +5 -0
- data/_sass/jquery/src/css.js +502 -0
- data/_sass/jquery/src/css/addGetHookIf.js +24 -0
- data/_sass/jquery/src/css/adjustCSS.js +65 -0
- data/_sass/jquery/src/css/curCSS.js +60 -0
- data/_sass/jquery/src/css/defaultDisplay.js +72 -0
- data/_sass/jquery/src/css/hiddenVisibleSelectors.js +18 -0
- data/_sass/jquery/src/css/showHide.js +48 -0
- data/_sass/jquery/src/css/support.js +121 -0
- data/_sass/jquery/src/css/var/cssExpand.js +3 -0
- data/_sass/jquery/src/css/var/getStyles.js +15 -0
- data/_sass/jquery/src/css/var/isHidden.js +16 -0
- data/_sass/jquery/src/css/var/rmargin.js +3 -0
- data/_sass/jquery/src/css/var/rnumnonpx.js +5 -0
- data/_sass/jquery/src/css/var/swap.js +24 -0
- data/_sass/jquery/src/data.js +187 -0
- data/_sass/jquery/src/data/Data.js +200 -0
- data/_sass/jquery/src/data/var/acceptData.js +18 -0
- data/_sass/jquery/src/data/var/dataPriv.js +5 -0
- data/_sass/jquery/src/data/var/dataUser.js +5 -0
- data/_sass/jquery/src/deferred.js +158 -0
- data/_sass/jquery/src/deprecated.js +32 -0
- data/_sass/jquery/src/dimensions.js +54 -0
- data/_sass/jquery/src/effects.js +629 -0
- data/_sass/jquery/src/effects/Tween.js +121 -0
- data/_sass/jquery/src/effects/animatedSelector.js +13 -0
- data/_sass/jquery/src/event.js +711 -0
- data/_sass/jquery/src/event/ajax.js +20 -0
- data/_sass/jquery/src/event/alias.js +27 -0
- data/_sass/jquery/src/event/focusin.js +53 -0
- data/_sass/jquery/src/event/support.js +9 -0
- data/_sass/jquery/src/event/trigger.js +183 -0
- data/_sass/jquery/src/exports/amd.js +24 -0
- data/_sass/jquery/src/exports/global.js +26 -0
- data/_sass/jquery/src/intro.js +44 -0
- data/_sass/jquery/src/jquery.js +37 -0
- data/_sass/jquery/src/manipulation.js +481 -0
- data/_sass/jquery/src/manipulation/_evalUrl.js +20 -0
- data/_sass/jquery/src/manipulation/buildFragment.js +102 -0
- data/_sass/jquery/src/manipulation/getAll.js +21 -0
- data/_sass/jquery/src/manipulation/setGlobalEval.js +20 -0
- data/_sass/jquery/src/manipulation/support.js +33 -0
- data/_sass/jquery/src/manipulation/var/rcheckableType.js +3 -0
- data/_sass/jquery/src/manipulation/var/rscriptType.js +3 -0
- data/_sass/jquery/src/manipulation/var/rtagName.js +3 -0
- data/_sass/jquery/src/manipulation/wrapMap.js +27 -0
- data/_sass/jquery/src/offset.js +218 -0
- data/_sass/jquery/src/outro.js +2 -0
- data/_sass/jquery/src/queue.js +143 -0
- data/_sass/jquery/src/queue/delay.js +22 -0
- data/_sass/jquery/src/selector-native.js +211 -0
- data/_sass/jquery/src/selector-sizzle.js +14 -0
- data/_sass/jquery/src/selector.js +1 -0
- data/_sass/jquery/src/serialize.js +125 -0
- data/_sass/jquery/src/traversing.js +175 -0
- data/_sass/jquery/src/traversing/findFilter.js +100 -0
- data/_sass/jquery/src/traversing/var/dir.js +20 -0
- data/_sass/jquery/src/traversing/var/rneedsContext.js +6 -0
- data/_sass/jquery/src/traversing/var/siblings.js +15 -0
- data/_sass/jquery/src/var/arr.js +3 -0
- data/_sass/jquery/src/var/class2type.js +5 -0
- data/_sass/jquery/src/var/concat.js +5 -0
- data/_sass/jquery/src/var/document.js +3 -0
- data/_sass/jquery/src/var/documentElement.js +5 -0
- data/_sass/jquery/src/var/hasOwn.js +5 -0
- data/_sass/jquery/src/var/indexOf.js +5 -0
- data/_sass/jquery/src/var/pnum.js +3 -0
- data/_sass/jquery/src/var/push.js +5 -0
- data/_sass/jquery/src/var/rcssNum.js +7 -0
- data/_sass/jquery/src/var/rnotwhite.js +3 -0
- data/_sass/jquery/src/var/slice.js +5 -0
- data/_sass/jquery/src/var/support.js +5 -0
- data/_sass/jquery/src/var/toString.js +5 -0
- data/_sass/jquery/src/wrap.js +79 -0
- data/_sass/modules/_editor-style.scss +5 -0
- data/_sass/modules/_footer.scss +115 -0
- data/_sass/modules/_navigation.scss +570 -0
- data/_sass/modules/_sidebar.scss +66 -0
- data/_sass/modules/_twitter.scss +58 -0
- data/_sass/motion-ui/.bower.json +38 -0
- data/_sass/motion-ui/LICENSE +22 -0
- data/_sass/motion-ui/README.md +29 -0
- data/_sass/motion-ui/bower.json +28 -0
- data/_sass/motion-ui/composer.json +25 -0
- data/_sass/motion-ui/dist/motion-ui.css +634 -0
- data/_sass/motion-ui/dist/motion-ui.js +117 -0
- data/_sass/motion-ui/dist/motion-ui.min.css +1 -0
- data/_sass/motion-ui/dist/motion-ui.min.js +1 -0
- data/_sass/motion-ui/docs/animations.md +230 -0
- data/_sass/motion-ui/docs/classes.md +81 -0
- data/_sass/motion-ui/docs/configuration.md +63 -0
- data/_sass/motion-ui/docs/installation.md +50 -0
- data/_sass/motion-ui/docs/javascript.md +36 -0
- data/_sass/motion-ui/docs/readme.md +32 -0
- data/_sass/motion-ui/docs/transitions.md +112 -0
- data/_sass/motion-ui/docs/wow.md +35 -0
- data/_sass/motion-ui/gulpfile.js +90 -0
- data/_sass/motion-ui/lib/handlebars.js +8 -0
- data/_sass/motion-ui/motion-ui.js +105 -0
- data/_sass/motion-ui/motion-ui.scss +4 -0
- data/_sass/motion-ui/package.json +44 -0
- data/_sass/motion-ui/src/_classes.scss +109 -0
- data/_sass/motion-ui/src/_settings.scss +61 -0
- data/_sass/motion-ui/src/effects/_fade.scss +32 -0
- data/_sass/motion-ui/src/effects/_hinge.scss +65 -0
- data/_sass/motion-ui/src/effects/_shake.scss +15 -0
- data/_sass/motion-ui/src/effects/_slide.scss +41 -0
- data/_sass/motion-ui/src/effects/_spin.scss +28 -0
- data/_sass/motion-ui/src/effects/_wiggle.scss +13 -0
- data/_sass/motion-ui/src/effects/_zoom.scss +15 -0
- data/_sass/motion-ui/src/motion-ui.scss +29 -0
- data/_sass/motion-ui/src/transitions/_fade.scss +28 -0
- data/_sass/motion-ui/src/transitions/_hinge.scss +43 -0
- data/_sass/motion-ui/src/transitions/_slide.scss +42 -0
- data/_sass/motion-ui/src/transitions/_spin.scss +39 -0
- data/_sass/motion-ui/src/transitions/_zoom.scss +39 -0
- data/_sass/motion-ui/src/util/_animation.scss +7 -0
- data/_sass/motion-ui/src/util/_args.scss +15 -0
- data/_sass/motion-ui/src/util/_keyframe.scss +136 -0
- data/_sass/motion-ui/src/util/_selector.scss +23 -0
- data/_sass/motion-ui/src/util/_series.scss +54 -0
- data/_sass/motion-ui/src/util/_transition.scss +45 -0
- data/_sass/motion-ui/src/util/_unit.scss +7 -0
- data/_sass/templates/_archive.scss +66 -0
- data/_sass/templates/_page-accordion-sidebar.scss +137 -0
- data/_sass/templates/_page-contact.scss +33 -0
- data/_sass/templates/_page-default.scss +472 -0
- data/_sass/templates/_page-faq-sidebar.scss +77 -0
- data/_sass/templates/_page-front.scss +549 -0
- data/_sass/templates/_page-full-width.scss +11 -0
- data/_sass/templates/_page-highlights.scss +156 -0
- data/_sass/templates/_page-sidebar-left.scss +27 -0
- data/_sass/templates/_print.scss +69 -0
- data/_sass/templates/_single-post.scss +12 -0
- data/_sass/what-input/.bower.json +35 -0
- data/_sass/what-input/Gulpfile.js +104 -0
- data/_sass/what-input/LICENSE +21 -0
- data/_sass/what-input/README.md +178 -0
- data/_sass/what-input/bower.json +26 -0
- data/_sass/what-input/dist/lte-IE8.js +1 -0
- data/_sass/what-input/dist/what-input.js +337 -0
- data/_sass/what-input/dist/what-input.min.js +7 -0
- data/_sass/what-input/index.html +164 -0
- data/_sass/what-input/package.json +38 -0
- data/_sass/what-input/src/polyfills/ie8/EventListener.js +150 -0
- data/_sass/what-input/src/polyfills/ie8/indexOf.js +65 -0
- data/_sass/what-input/src/what-input.js +269 -0
- data/_sass/what-input/yarn.lock +3482 -0
- data/assets/css/style.scss +4 -0
- data/assets/{css → fonts}/comfortaa-bold-webfont.eot +0 -0
- data/assets/{css → fonts}/comfortaa-bold-webfont.svg +0 -0
- data/assets/{css → fonts}/comfortaa-bold-webfont.ttf +0 -0
- data/assets/{css → fonts}/comfortaa-bold-webfont.woff +0 -0
- data/assets/{css → fonts}/comfortaa-bold-webfont.woff2 +0 -0
- data/assets/{css → fonts}/comfortaa-regular-webfont.eot +0 -0
- data/assets/{css → fonts}/comfortaa-regular-webfont.svg +0 -0
- data/assets/{css → fonts}/comfortaa-regular-webfont.ttf +0 -0
- data/assets/{css → fonts}/comfortaa-regular-webfont.woff +0 -0
- data/assets/{css → fonts}/comfortaa-regular-webfont.woff2 +0 -0
- data/assets/{css → fonts}/raleway-regular-webfont.svg +0 -0
- data/assets/images/ace-centre-logo.png +0 -0
- data/assets/images/getting-started-with-aac-logo.png +0 -0
- data/assets/images/getting-started-with-aac.png +0 -0
- data/assets/images/icon/ace-icon-180x180.png +0 -0
- data/assets/images/icon/ace-icon-192x192.png +0 -0
- data/assets/images/icon/ace-icon-270x270.png +0 -0
- data/assets/images/icon/ace-icon-32x32.png +0 -0
- data/assets/javascript/scripts.js +10 -0
- metadata +477 -29
- data/_includes/theme-footer.html +0 -16
- data/_includes/theme-head.html +0 -48
- data/assets/css/bootstrap-select.min.css +0 -7
- data/assets/css/bootstrap-theme.css +0 -442
- data/assets/css/bootstrap.css +0 -6203
- data/assets/css/draganddrop.css +0 -210
- data/assets/css/fonts.css +0 -41
- data/assets/css/responsive.css +0 -90
- data/assets/css/style.css +0 -260
- data/assets/images/divider.png +0 -0
- data/assets/images/logo-1.png +0 -0
- data/assets/images/logo-2.png +0 -0
@@ -0,0 +1,147 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
!function($) {
|
4
|
+
|
5
|
+
/**
|
6
|
+
* ResponsiveMenu module.
|
7
|
+
* @module foundation.responsiveMenu
|
8
|
+
* @requires foundation.util.triggers
|
9
|
+
* @requires foundation.util.mediaQuery
|
10
|
+
*/
|
11
|
+
|
12
|
+
class ResponsiveMenu {
|
13
|
+
/**
|
14
|
+
* Creates a new instance of a responsive menu.
|
15
|
+
* @class
|
16
|
+
* @fires ResponsiveMenu#init
|
17
|
+
* @param {jQuery} element - jQuery object to make into a dropdown menu.
|
18
|
+
* @param {Object} options - Overrides to the default plugin settings.
|
19
|
+
*/
|
20
|
+
constructor(element, options) {
|
21
|
+
this.$element = $(element);
|
22
|
+
this.rules = this.$element.data('responsive-menu');
|
23
|
+
this.currentMq = null;
|
24
|
+
this.currentPlugin = null;
|
25
|
+
|
26
|
+
this._init();
|
27
|
+
this._events();
|
28
|
+
|
29
|
+
Foundation.registerPlugin(this, 'ResponsiveMenu');
|
30
|
+
}
|
31
|
+
|
32
|
+
/**
|
33
|
+
* Initializes the Menu by parsing the classes from the 'data-ResponsiveMenu' attribute on the element.
|
34
|
+
* @function
|
35
|
+
* @private
|
36
|
+
*/
|
37
|
+
_init() {
|
38
|
+
// The first time an Interchange plugin is initialized, this.rules is converted from a string of "classes" to an object of rules
|
39
|
+
if (typeof this.rules === 'string') {
|
40
|
+
let rulesTree = {};
|
41
|
+
|
42
|
+
// Parse rules from "classes" pulled from data attribute
|
43
|
+
let rules = this.rules.split(' ');
|
44
|
+
|
45
|
+
// Iterate through every rule found
|
46
|
+
for (let i = 0; i < rules.length; i++) {
|
47
|
+
let rule = rules[i].split('-');
|
48
|
+
let ruleSize = rule.length > 1 ? rule[0] : 'small';
|
49
|
+
let rulePlugin = rule.length > 1 ? rule[1] : rule[0];
|
50
|
+
|
51
|
+
if (MenuPlugins[rulePlugin] !== null) {
|
52
|
+
rulesTree[ruleSize] = MenuPlugins[rulePlugin];
|
53
|
+
}
|
54
|
+
}
|
55
|
+
|
56
|
+
this.rules = rulesTree;
|
57
|
+
}
|
58
|
+
|
59
|
+
if (!$.isEmptyObject(this.rules)) {
|
60
|
+
this._checkMediaQueries();
|
61
|
+
}
|
62
|
+
// Add data-mutate since children may need it.
|
63
|
+
this.$element.attr('data-mutate', (this.$element.attr('data-mutate') || Foundation.GetYoDigits(6, 'responsive-menu')));
|
64
|
+
}
|
65
|
+
|
66
|
+
/**
|
67
|
+
* Initializes events for the Menu.
|
68
|
+
* @function
|
69
|
+
* @private
|
70
|
+
*/
|
71
|
+
_events() {
|
72
|
+
var _this = this;
|
73
|
+
|
74
|
+
$(window).on('changed.zf.mediaquery', function() {
|
75
|
+
_this._checkMediaQueries();
|
76
|
+
});
|
77
|
+
// $(window).on('resize.zf.ResponsiveMenu', function() {
|
78
|
+
// _this._checkMediaQueries();
|
79
|
+
// });
|
80
|
+
}
|
81
|
+
|
82
|
+
/**
|
83
|
+
* Checks the current screen width against available media queries. If the media query has changed, and the plugin needed has changed, the plugins will swap out.
|
84
|
+
* @function
|
85
|
+
* @private
|
86
|
+
*/
|
87
|
+
_checkMediaQueries() {
|
88
|
+
var matchedMq, _this = this;
|
89
|
+
// Iterate through each rule and find the last matching rule
|
90
|
+
$.each(this.rules, function(key) {
|
91
|
+
if (Foundation.MediaQuery.atLeast(key)) {
|
92
|
+
matchedMq = key;
|
93
|
+
}
|
94
|
+
});
|
95
|
+
|
96
|
+
// No match? No dice
|
97
|
+
if (!matchedMq) return;
|
98
|
+
|
99
|
+
// Plugin already initialized? We good
|
100
|
+
if (this.currentPlugin instanceof this.rules[matchedMq].plugin) return;
|
101
|
+
|
102
|
+
// Remove existing plugin-specific CSS classes
|
103
|
+
$.each(MenuPlugins, function(key, value) {
|
104
|
+
_this.$element.removeClass(value.cssClass);
|
105
|
+
});
|
106
|
+
|
107
|
+
// Add the CSS class for the new plugin
|
108
|
+
this.$element.addClass(this.rules[matchedMq].cssClass);
|
109
|
+
|
110
|
+
// Create an instance of the new plugin
|
111
|
+
if (this.currentPlugin) this.currentPlugin.destroy();
|
112
|
+
this.currentPlugin = new this.rules[matchedMq].plugin(this.$element, {});
|
113
|
+
}
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Destroys the instance of the current plugin on this element, as well as the window resize handler that switches the plugins out.
|
117
|
+
* @function
|
118
|
+
*/
|
119
|
+
destroy() {
|
120
|
+
this.currentPlugin.destroy();
|
121
|
+
$(window).off('.zf.ResponsiveMenu');
|
122
|
+
Foundation.unregisterPlugin(this);
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
ResponsiveMenu.defaults = {};
|
127
|
+
|
128
|
+
// The plugin matches the plugin classes with these plugin instances.
|
129
|
+
var MenuPlugins = {
|
130
|
+
dropdown: {
|
131
|
+
cssClass: 'dropdown',
|
132
|
+
plugin: Foundation._plugins['dropdown-menu'] || null
|
133
|
+
},
|
134
|
+
drilldown: {
|
135
|
+
cssClass: 'drilldown',
|
136
|
+
plugin: Foundation._plugins['drilldown'] || null
|
137
|
+
},
|
138
|
+
accordion: {
|
139
|
+
cssClass: 'accordion-menu',
|
140
|
+
plugin: Foundation._plugins['accordion-menu'] || null
|
141
|
+
}
|
142
|
+
};
|
143
|
+
|
144
|
+
// Window exports
|
145
|
+
Foundation.plugin(ResponsiveMenu, 'ResponsiveMenu');
|
146
|
+
|
147
|
+
}(jQuery);
|
@@ -0,0 +1,155 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
!function($) {
|
4
|
+
|
5
|
+
/**
|
6
|
+
* ResponsiveToggle module.
|
7
|
+
* @module foundation.responsiveToggle
|
8
|
+
* @requires foundation.util.mediaQuery
|
9
|
+
*/
|
10
|
+
|
11
|
+
class ResponsiveToggle {
|
12
|
+
/**
|
13
|
+
* Creates a new instance of Tab Bar.
|
14
|
+
* @class
|
15
|
+
* @fires ResponsiveToggle#init
|
16
|
+
* @param {jQuery} element - jQuery object to attach tab bar functionality to.
|
17
|
+
* @param {Object} options - Overrides to the default plugin settings.
|
18
|
+
*/
|
19
|
+
constructor(element, options) {
|
20
|
+
this.$element = $(element);
|
21
|
+
this.options = $.extend({}, ResponsiveToggle.defaults, this.$element.data(), options);
|
22
|
+
|
23
|
+
this._init();
|
24
|
+
this._events();
|
25
|
+
|
26
|
+
Foundation.registerPlugin(this, 'ResponsiveToggle');
|
27
|
+
}
|
28
|
+
|
29
|
+
/**
|
30
|
+
* Initializes the tab bar by finding the target element, toggling element, and running update().
|
31
|
+
* @function
|
32
|
+
* @private
|
33
|
+
*/
|
34
|
+
_init() {
|
35
|
+
var targetID = this.$element.data('responsive-toggle');
|
36
|
+
if (!targetID) {
|
37
|
+
console.error('Your tab bar needs an ID of a Menu as the value of data-tab-bar.');
|
38
|
+
}
|
39
|
+
|
40
|
+
this.$targetMenu = $(`#${targetID}`);
|
41
|
+
this.$toggler = this.$element.find('[data-toggle]').filter(function() {
|
42
|
+
var target = $(this).data('toggle');
|
43
|
+
return (target === targetID || target === "");
|
44
|
+
});
|
45
|
+
this.options = $.extend({}, this.options, this.$targetMenu.data());
|
46
|
+
|
47
|
+
// If they were set, parse the animation classes
|
48
|
+
if(this.options.animate) {
|
49
|
+
let input = this.options.animate.split(' ');
|
50
|
+
|
51
|
+
this.animationIn = input[0];
|
52
|
+
this.animationOut = input[1] || null;
|
53
|
+
}
|
54
|
+
|
55
|
+
this._update();
|
56
|
+
}
|
57
|
+
|
58
|
+
/**
|
59
|
+
* Adds necessary event handlers for the tab bar to work.
|
60
|
+
* @function
|
61
|
+
* @private
|
62
|
+
*/
|
63
|
+
_events() {
|
64
|
+
var _this = this;
|
65
|
+
|
66
|
+
this._updateMqHandler = this._update.bind(this);
|
67
|
+
|
68
|
+
$(window).on('changed.zf.mediaquery', this._updateMqHandler);
|
69
|
+
|
70
|
+
this.$toggler.on('click.zf.responsiveToggle', this.toggleMenu.bind(this));
|
71
|
+
}
|
72
|
+
|
73
|
+
/**
|
74
|
+
* Checks the current media query to determine if the tab bar should be visible or hidden.
|
75
|
+
* @function
|
76
|
+
* @private
|
77
|
+
*/
|
78
|
+
_update() {
|
79
|
+
// Mobile
|
80
|
+
if (!Foundation.MediaQuery.atLeast(this.options.hideFor)) {
|
81
|
+
this.$element.show();
|
82
|
+
this.$targetMenu.hide();
|
83
|
+
}
|
84
|
+
|
85
|
+
// Desktop
|
86
|
+
else {
|
87
|
+
this.$element.hide();
|
88
|
+
this.$targetMenu.show();
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
/**
|
93
|
+
* Toggles the element attached to the tab bar. The toggle only happens if the screen is small enough to allow it.
|
94
|
+
* @function
|
95
|
+
* @fires ResponsiveToggle#toggled
|
96
|
+
*/
|
97
|
+
toggleMenu() {
|
98
|
+
if (!Foundation.MediaQuery.atLeast(this.options.hideFor)) {
|
99
|
+
/**
|
100
|
+
* Fires when the element attached to the tab bar toggles.
|
101
|
+
* @event ResponsiveToggle#toggled
|
102
|
+
*/
|
103
|
+
if(this.options.animate) {
|
104
|
+
if (this.$targetMenu.is(':hidden')) {
|
105
|
+
Foundation.Motion.animateIn(this.$targetMenu, this.animationIn, () => {
|
106
|
+
this.$element.trigger('toggled.zf.responsiveToggle');
|
107
|
+
this.$targetMenu.find('[data-mutate]').triggerHandler('mutateme.zf.trigger');
|
108
|
+
});
|
109
|
+
}
|
110
|
+
else {
|
111
|
+
Foundation.Motion.animateOut(this.$targetMenu, this.animationOut, () => {
|
112
|
+
this.$element.trigger('toggled.zf.responsiveToggle');
|
113
|
+
});
|
114
|
+
}
|
115
|
+
}
|
116
|
+
else {
|
117
|
+
this.$targetMenu.toggle(0);
|
118
|
+
this.$targetMenu.find('[data-mutate]').trigger('mutateme.zf.trigger');
|
119
|
+
this.$element.trigger('toggled.zf.responsiveToggle');
|
120
|
+
}
|
121
|
+
}
|
122
|
+
};
|
123
|
+
|
124
|
+
destroy() {
|
125
|
+
this.$element.off('.zf.responsiveToggle');
|
126
|
+
this.$toggler.off('.zf.responsiveToggle');
|
127
|
+
|
128
|
+
$(window).off('changed.zf.mediaquery', this._updateMqHandler);
|
129
|
+
|
130
|
+
Foundation.unregisterPlugin(this);
|
131
|
+
}
|
132
|
+
}
|
133
|
+
|
134
|
+
ResponsiveToggle.defaults = {
|
135
|
+
/**
|
136
|
+
* The breakpoint after which the menu is always shown, and the tab bar is hidden.
|
137
|
+
* @option
|
138
|
+
* @type {string}
|
139
|
+
* @default 'medium'
|
140
|
+
*/
|
141
|
+
hideFor: 'medium',
|
142
|
+
|
143
|
+
/**
|
144
|
+
* To decide if the toggle should be animated or not.
|
145
|
+
* @option
|
146
|
+
* @type {boolean}
|
147
|
+
* @default false
|
148
|
+
*/
|
149
|
+
animate: false
|
150
|
+
};
|
151
|
+
|
152
|
+
// Window exports
|
153
|
+
Foundation.plugin(ResponsiveToggle, 'ResponsiveToggle');
|
154
|
+
|
155
|
+
}(jQuery);
|
@@ -0,0 +1,603 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
!function($) {
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Reveal module.
|
7
|
+
* @module foundation.reveal
|
8
|
+
* @requires foundation.util.keyboard
|
9
|
+
* @requires foundation.util.box
|
10
|
+
* @requires foundation.util.triggers
|
11
|
+
* @requires foundation.util.mediaQuery
|
12
|
+
* @requires foundation.util.motion if using animations
|
13
|
+
*/
|
14
|
+
|
15
|
+
class Reveal {
|
16
|
+
/**
|
17
|
+
* Creates a new instance of Reveal.
|
18
|
+
* @class
|
19
|
+
* @param {jQuery} element - jQuery object to use for the modal.
|
20
|
+
* @param {Object} options - optional parameters.
|
21
|
+
*/
|
22
|
+
constructor(element, options) {
|
23
|
+
this.$element = element;
|
24
|
+
this.options = $.extend({}, Reveal.defaults, this.$element.data(), options);
|
25
|
+
this._init();
|
26
|
+
|
27
|
+
Foundation.registerPlugin(this, 'Reveal');
|
28
|
+
Foundation.Keyboard.register('Reveal', {
|
29
|
+
'ENTER': 'open',
|
30
|
+
'SPACE': 'open',
|
31
|
+
'ESCAPE': 'close',
|
32
|
+
});
|
33
|
+
}
|
34
|
+
|
35
|
+
/**
|
36
|
+
* Initializes the modal by adding the overlay and close buttons, (if selected).
|
37
|
+
* @private
|
38
|
+
*/
|
39
|
+
_init() {
|
40
|
+
this.id = this.$element.attr('id');
|
41
|
+
this.isActive = false;
|
42
|
+
this.cached = {mq: Foundation.MediaQuery.current};
|
43
|
+
this.isMobile = mobileSniff();
|
44
|
+
|
45
|
+
this.$anchor = $(`[data-open="${this.id}"]`).length ? $(`[data-open="${this.id}"]`) : $(`[data-toggle="${this.id}"]`);
|
46
|
+
this.$anchor.attr({
|
47
|
+
'aria-controls': this.id,
|
48
|
+
'aria-haspopup': true,
|
49
|
+
'tabindex': 0
|
50
|
+
});
|
51
|
+
|
52
|
+
if (this.options.fullScreen || this.$element.hasClass('full')) {
|
53
|
+
this.options.fullScreen = true;
|
54
|
+
this.options.overlay = false;
|
55
|
+
}
|
56
|
+
if (this.options.overlay && !this.$overlay) {
|
57
|
+
this.$overlay = this._makeOverlay(this.id);
|
58
|
+
}
|
59
|
+
|
60
|
+
this.$element.attr({
|
61
|
+
'role': 'dialog',
|
62
|
+
'aria-hidden': true,
|
63
|
+
'data-yeti-box': this.id,
|
64
|
+
'data-resize': this.id
|
65
|
+
});
|
66
|
+
|
67
|
+
if(this.$overlay) {
|
68
|
+
this.$element.detach().appendTo(this.$overlay);
|
69
|
+
} else {
|
70
|
+
this.$element.detach().appendTo($(this.options.appendTo));
|
71
|
+
this.$element.addClass('without-overlay');
|
72
|
+
}
|
73
|
+
this._events();
|
74
|
+
if (this.options.deepLink && window.location.hash === ( `#${this.id}`)) {
|
75
|
+
$(window).one('load.zf.reveal', this.open.bind(this));
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
/**
|
80
|
+
* Creates an overlay div to display behind the modal.
|
81
|
+
* @private
|
82
|
+
*/
|
83
|
+
_makeOverlay() {
|
84
|
+
return $('<div></div>')
|
85
|
+
.addClass('reveal-overlay')
|
86
|
+
.appendTo(this.options.appendTo);
|
87
|
+
}
|
88
|
+
|
89
|
+
/**
|
90
|
+
* Updates position of modal
|
91
|
+
* TODO: Figure out if we actually need to cache these values or if it doesn't matter
|
92
|
+
* @private
|
93
|
+
*/
|
94
|
+
_updatePosition() {
|
95
|
+
var width = this.$element.outerWidth();
|
96
|
+
var outerWidth = $(window).width();
|
97
|
+
var height = this.$element.outerHeight();
|
98
|
+
var outerHeight = $(window).height();
|
99
|
+
var left, top;
|
100
|
+
if (this.options.hOffset === 'auto') {
|
101
|
+
left = parseInt((outerWidth - width) / 2, 10);
|
102
|
+
} else {
|
103
|
+
left = parseInt(this.options.hOffset, 10);
|
104
|
+
}
|
105
|
+
if (this.options.vOffset === 'auto') {
|
106
|
+
if (height > outerHeight) {
|
107
|
+
top = parseInt(Math.min(100, outerHeight / 10), 10);
|
108
|
+
} else {
|
109
|
+
top = parseInt((outerHeight - height) / 4, 10);
|
110
|
+
}
|
111
|
+
} else {
|
112
|
+
top = parseInt(this.options.vOffset, 10);
|
113
|
+
}
|
114
|
+
this.$element.css({top: top + 'px'});
|
115
|
+
// only worry about left if we don't have an overlay or we havea horizontal offset,
|
116
|
+
// otherwise we're perfectly in the middle
|
117
|
+
if(!this.$overlay || (this.options.hOffset !== 'auto')) {
|
118
|
+
this.$element.css({left: left + 'px'});
|
119
|
+
this.$element.css({margin: '0px'});
|
120
|
+
}
|
121
|
+
|
122
|
+
}
|
123
|
+
|
124
|
+
/**
|
125
|
+
* Adds event handlers for the modal.
|
126
|
+
* @private
|
127
|
+
*/
|
128
|
+
_events() {
|
129
|
+
var _this = this;
|
130
|
+
|
131
|
+
this.$element.on({
|
132
|
+
'open.zf.trigger': this.open.bind(this),
|
133
|
+
'close.zf.trigger': (event, $element) => {
|
134
|
+
if ((event.target === _this.$element[0]) ||
|
135
|
+
($(event.target).parents('[data-closable]')[0] === $element)) { // only close reveal when it's explicitly called
|
136
|
+
return this.close.apply(this);
|
137
|
+
}
|
138
|
+
},
|
139
|
+
'toggle.zf.trigger': this.toggle.bind(this),
|
140
|
+
'resizeme.zf.trigger': function() {
|
141
|
+
_this._updatePosition();
|
142
|
+
}
|
143
|
+
});
|
144
|
+
|
145
|
+
if (this.$anchor.length) {
|
146
|
+
this.$anchor.on('keydown.zf.reveal', function(e) {
|
147
|
+
if (e.which === 13 || e.which === 32) {
|
148
|
+
e.stopPropagation();
|
149
|
+
e.preventDefault();
|
150
|
+
_this.open();
|
151
|
+
}
|
152
|
+
});
|
153
|
+
}
|
154
|
+
|
155
|
+
if (this.options.closeOnClick && this.options.overlay) {
|
156
|
+
this.$overlay.off('.zf.reveal').on('click.zf.reveal', function(e) {
|
157
|
+
if (e.target === _this.$element[0] ||
|
158
|
+
$.contains(_this.$element[0], e.target) ||
|
159
|
+
!$.contains(document, e.target)) {
|
160
|
+
return;
|
161
|
+
}
|
162
|
+
_this.close();
|
163
|
+
});
|
164
|
+
}
|
165
|
+
if (this.options.deepLink) {
|
166
|
+
$(window).on(`popstate.zf.reveal:${this.id}`, this._handleState.bind(this));
|
167
|
+
}
|
168
|
+
}
|
169
|
+
|
170
|
+
/**
|
171
|
+
* Handles modal methods on back/forward button clicks or any other event that triggers popstate.
|
172
|
+
* @private
|
173
|
+
*/
|
174
|
+
_handleState(e) {
|
175
|
+
if(window.location.hash === ( '#' + this.id) && !this.isActive){ this.open(); }
|
176
|
+
else{ this.close(); }
|
177
|
+
}
|
178
|
+
|
179
|
+
|
180
|
+
/**
|
181
|
+
* Opens the modal controlled by `this.$anchor`, and closes all others by default.
|
182
|
+
* @function
|
183
|
+
* @fires Reveal#closeme
|
184
|
+
* @fires Reveal#open
|
185
|
+
*/
|
186
|
+
open() {
|
187
|
+
if (this.options.deepLink) {
|
188
|
+
var hash = `#${this.id}`;
|
189
|
+
|
190
|
+
if (window.history.pushState) {
|
191
|
+
window.history.pushState(null, null, hash);
|
192
|
+
} else {
|
193
|
+
window.location.hash = hash;
|
194
|
+
}
|
195
|
+
}
|
196
|
+
|
197
|
+
this.isActive = true;
|
198
|
+
|
199
|
+
// Make elements invisible, but remove display: none so we can get size and positioning
|
200
|
+
this.$element
|
201
|
+
.css({ 'visibility': 'hidden' })
|
202
|
+
.show()
|
203
|
+
.scrollTop(0);
|
204
|
+
if (this.options.overlay) {
|
205
|
+
this.$overlay.css({'visibility': 'hidden'}).show();
|
206
|
+
}
|
207
|
+
|
208
|
+
this._updatePosition();
|
209
|
+
|
210
|
+
this.$element
|
211
|
+
.hide()
|
212
|
+
.css({ 'visibility': '' });
|
213
|
+
|
214
|
+
if(this.$overlay) {
|
215
|
+
this.$overlay.css({'visibility': ''}).hide();
|
216
|
+
if(this.$element.hasClass('fast')) {
|
217
|
+
this.$overlay.addClass('fast');
|
218
|
+
} else if (this.$element.hasClass('slow')) {
|
219
|
+
this.$overlay.addClass('slow');
|
220
|
+
}
|
221
|
+
}
|
222
|
+
|
223
|
+
|
224
|
+
if (!this.options.multipleOpened) {
|
225
|
+
/**
|
226
|
+
* Fires immediately before the modal opens.
|
227
|
+
* Closes any other modals that are currently open
|
228
|
+
* @event Reveal#closeme
|
229
|
+
*/
|
230
|
+
this.$element.trigger('closeme.zf.reveal', this.id);
|
231
|
+
}
|
232
|
+
|
233
|
+
var _this = this;
|
234
|
+
|
235
|
+
function addRevealOpenClasses() {
|
236
|
+
if (_this.isMobile) {
|
237
|
+
if(!_this.originalScrollPos) {
|
238
|
+
_this.originalScrollPos = window.pageYOffset;
|
239
|
+
}
|
240
|
+
$('html, body').addClass('is-reveal-open');
|
241
|
+
}
|
242
|
+
else {
|
243
|
+
$('body').addClass('is-reveal-open');
|
244
|
+
}
|
245
|
+
}
|
246
|
+
// Motion UI method of reveal
|
247
|
+
if (this.options.animationIn) {
|
248
|
+
function afterAnimation(){
|
249
|
+
_this.$element
|
250
|
+
.attr({
|
251
|
+
'aria-hidden': false,
|
252
|
+
'tabindex': -1
|
253
|
+
})
|
254
|
+
.focus();
|
255
|
+
addRevealOpenClasses();
|
256
|
+
Foundation.Keyboard.trapFocus(_this.$element);
|
257
|
+
}
|
258
|
+
if (this.options.overlay) {
|
259
|
+
Foundation.Motion.animateIn(this.$overlay, 'fade-in');
|
260
|
+
}
|
261
|
+
Foundation.Motion.animateIn(this.$element, this.options.animationIn, () => {
|
262
|
+
if(this.$element) { // protect against object having been removed
|
263
|
+
this.focusableElements = Foundation.Keyboard.findFocusable(this.$element);
|
264
|
+
afterAnimation();
|
265
|
+
}
|
266
|
+
});
|
267
|
+
}
|
268
|
+
// jQuery method of reveal
|
269
|
+
else {
|
270
|
+
if (this.options.overlay) {
|
271
|
+
this.$overlay.show(0);
|
272
|
+
}
|
273
|
+
this.$element.show(this.options.showDelay);
|
274
|
+
}
|
275
|
+
|
276
|
+
// handle accessibility
|
277
|
+
this.$element
|
278
|
+
.attr({
|
279
|
+
'aria-hidden': false,
|
280
|
+
'tabindex': -1
|
281
|
+
})
|
282
|
+
.focus();
|
283
|
+
Foundation.Keyboard.trapFocus(this.$element);
|
284
|
+
|
285
|
+
/**
|
286
|
+
* Fires when the modal has successfully opened.
|
287
|
+
* @event Reveal#open
|
288
|
+
*/
|
289
|
+
this.$element.trigger('open.zf.reveal');
|
290
|
+
|
291
|
+
addRevealOpenClasses();
|
292
|
+
|
293
|
+
setTimeout(() => {
|
294
|
+
this._extraHandlers();
|
295
|
+
}, 0);
|
296
|
+
}
|
297
|
+
|
298
|
+
/**
|
299
|
+
* Adds extra event handlers for the body and window if necessary.
|
300
|
+
* @private
|
301
|
+
*/
|
302
|
+
_extraHandlers() {
|
303
|
+
var _this = this;
|
304
|
+
if(!this.$element) { return; } // If we're in the middle of cleanup, don't freak out
|
305
|
+
this.focusableElements = Foundation.Keyboard.findFocusable(this.$element);
|
306
|
+
|
307
|
+
if (!this.options.overlay && this.options.closeOnClick && !this.options.fullScreen) {
|
308
|
+
$('body').on('click.zf.reveal', function(e) {
|
309
|
+
if (e.target === _this.$element[0] ||
|
310
|
+
$.contains(_this.$element[0], e.target) ||
|
311
|
+
!$.contains(document, e.target)) { return; }
|
312
|
+
_this.close();
|
313
|
+
});
|
314
|
+
}
|
315
|
+
|
316
|
+
if (this.options.closeOnEsc) {
|
317
|
+
$(window).on('keydown.zf.reveal', function(e) {
|
318
|
+
Foundation.Keyboard.handleKey(e, 'Reveal', {
|
319
|
+
close: function() {
|
320
|
+
if (_this.options.closeOnEsc) {
|
321
|
+
_this.close();
|
322
|
+
_this.$anchor.focus();
|
323
|
+
}
|
324
|
+
}
|
325
|
+
});
|
326
|
+
});
|
327
|
+
}
|
328
|
+
|
329
|
+
// lock focus within modal while tabbing
|
330
|
+
this.$element.on('keydown.zf.reveal', function(e) {
|
331
|
+
var $target = $(this);
|
332
|
+
// handle keyboard event with keyboard util
|
333
|
+
Foundation.Keyboard.handleKey(e, 'Reveal', {
|
334
|
+
open: function() {
|
335
|
+
if (_this.$element.find(':focus').is(_this.$element.find('[data-close]'))) {
|
336
|
+
setTimeout(function() { // set focus back to anchor if close button has been activated
|
337
|
+
_this.$anchor.focus();
|
338
|
+
}, 1);
|
339
|
+
} else if ($target.is(_this.focusableElements)) { // dont't trigger if acual element has focus (i.e. inputs, links, ...)
|
340
|
+
_this.open();
|
341
|
+
}
|
342
|
+
},
|
343
|
+
close: function() {
|
344
|
+
if (_this.options.closeOnEsc) {
|
345
|
+
_this.close();
|
346
|
+
_this.$anchor.focus();
|
347
|
+
}
|
348
|
+
},
|
349
|
+
handled: function(preventDefault) {
|
350
|
+
if (preventDefault) {
|
351
|
+
e.preventDefault();
|
352
|
+
}
|
353
|
+
}
|
354
|
+
});
|
355
|
+
});
|
356
|
+
}
|
357
|
+
|
358
|
+
/**
|
359
|
+
* Closes the modal.
|
360
|
+
* @function
|
361
|
+
* @fires Reveal#closed
|
362
|
+
*/
|
363
|
+
close() {
|
364
|
+
if (!this.isActive || !this.$element.is(':visible')) {
|
365
|
+
return false;
|
366
|
+
}
|
367
|
+
var _this = this;
|
368
|
+
|
369
|
+
// Motion UI method of hiding
|
370
|
+
if (this.options.animationOut) {
|
371
|
+
if (this.options.overlay) {
|
372
|
+
Foundation.Motion.animateOut(this.$overlay, 'fade-out', finishUp);
|
373
|
+
}
|
374
|
+
else {
|
375
|
+
finishUp();
|
376
|
+
}
|
377
|
+
|
378
|
+
Foundation.Motion.animateOut(this.$element, this.options.animationOut);
|
379
|
+
}
|
380
|
+
// jQuery method of hiding
|
381
|
+
else {
|
382
|
+
|
383
|
+
this.$element.hide(this.options.hideDelay);
|
384
|
+
|
385
|
+
if (this.options.overlay) {
|
386
|
+
this.$overlay.hide(0, finishUp);
|
387
|
+
}
|
388
|
+
else {
|
389
|
+
finishUp();
|
390
|
+
}
|
391
|
+
}
|
392
|
+
|
393
|
+
// Conditionals to remove extra event listeners added on open
|
394
|
+
if (this.options.closeOnEsc) {
|
395
|
+
$(window).off('keydown.zf.reveal');
|
396
|
+
}
|
397
|
+
|
398
|
+
if (!this.options.overlay && this.options.closeOnClick) {
|
399
|
+
$('body').off('click.zf.reveal');
|
400
|
+
}
|
401
|
+
|
402
|
+
this.$element.off('keydown.zf.reveal');
|
403
|
+
|
404
|
+
function finishUp() {
|
405
|
+
if (_this.isMobile) {
|
406
|
+
if ($('.reveal:visible').length === 0) {
|
407
|
+
$('html, body').removeClass('is-reveal-open');
|
408
|
+
}
|
409
|
+
if(_this.originalScrollPos) {
|
410
|
+
$('body').scrollTop(_this.originalScrollPos);
|
411
|
+
_this.originalScrollPos = null;
|
412
|
+
}
|
413
|
+
}
|
414
|
+
else {
|
415
|
+
if ($('.reveal:visible').length === 0) {
|
416
|
+
$('body').removeClass('is-reveal-open');
|
417
|
+
}
|
418
|
+
}
|
419
|
+
|
420
|
+
|
421
|
+
Foundation.Keyboard.releaseFocus(_this.$element);
|
422
|
+
|
423
|
+
_this.$element.attr('aria-hidden', true);
|
424
|
+
|
425
|
+
/**
|
426
|
+
* Fires when the modal is done closing.
|
427
|
+
* @event Reveal#closed
|
428
|
+
*/
|
429
|
+
_this.$element.trigger('closed.zf.reveal');
|
430
|
+
}
|
431
|
+
|
432
|
+
/**
|
433
|
+
* Resets the modal content
|
434
|
+
* This prevents a running video to keep going in the background
|
435
|
+
*/
|
436
|
+
if (this.options.resetOnClose) {
|
437
|
+
this.$element.html(this.$element.html());
|
438
|
+
}
|
439
|
+
|
440
|
+
this.isActive = false;
|
441
|
+
if (_this.options.deepLink) {
|
442
|
+
if (window.history.replaceState) {
|
443
|
+
window.history.replaceState('', document.title, window.location.href.replace(`#${this.id}`, ''));
|
444
|
+
} else {
|
445
|
+
window.location.hash = '';
|
446
|
+
}
|
447
|
+
}
|
448
|
+
}
|
449
|
+
|
450
|
+
/**
|
451
|
+
* Toggles the open/closed state of a modal.
|
452
|
+
* @function
|
453
|
+
*/
|
454
|
+
toggle() {
|
455
|
+
if (this.isActive) {
|
456
|
+
this.close();
|
457
|
+
} else {
|
458
|
+
this.open();
|
459
|
+
}
|
460
|
+
};
|
461
|
+
|
462
|
+
/**
|
463
|
+
* Destroys an instance of a modal.
|
464
|
+
* @function
|
465
|
+
*/
|
466
|
+
destroy() {
|
467
|
+
if (this.options.overlay) {
|
468
|
+
this.$element.appendTo($(this.options.appendTo)); // move $element outside of $overlay to prevent error unregisterPlugin()
|
469
|
+
this.$overlay.hide().off().remove();
|
470
|
+
}
|
471
|
+
this.$element.hide().off();
|
472
|
+
this.$anchor.off('.zf');
|
473
|
+
$(window).off(`.zf.reveal:${this.id}`);
|
474
|
+
|
475
|
+
Foundation.unregisterPlugin(this);
|
476
|
+
};
|
477
|
+
}
|
478
|
+
|
479
|
+
Reveal.defaults = {
|
480
|
+
/**
|
481
|
+
* Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.
|
482
|
+
* @option
|
483
|
+
* @type {string}
|
484
|
+
* @default ''
|
485
|
+
*/
|
486
|
+
animationIn: '',
|
487
|
+
/**
|
488
|
+
* Motion-UI class to use for animated elements. If none used, defaults to simple show/hide.
|
489
|
+
* @option
|
490
|
+
* @type {string}
|
491
|
+
* @default ''
|
492
|
+
*/
|
493
|
+
animationOut: '',
|
494
|
+
/**
|
495
|
+
* Time, in ms, to delay the opening of a modal after a click if no animation used.
|
496
|
+
* @option
|
497
|
+
* @type {number}
|
498
|
+
* @default 0
|
499
|
+
*/
|
500
|
+
showDelay: 0,
|
501
|
+
/**
|
502
|
+
* Time, in ms, to delay the closing of a modal after a click if no animation used.
|
503
|
+
* @option
|
504
|
+
* @type {number}
|
505
|
+
* @default 0
|
506
|
+
*/
|
507
|
+
hideDelay: 0,
|
508
|
+
/**
|
509
|
+
* Allows a click on the body/overlay to close the modal.
|
510
|
+
* @option
|
511
|
+
* @type {boolean}
|
512
|
+
* @default true
|
513
|
+
*/
|
514
|
+
closeOnClick: true,
|
515
|
+
/**
|
516
|
+
* Allows the modal to close if the user presses the `ESCAPE` key.
|
517
|
+
* @option
|
518
|
+
* @type {boolean}
|
519
|
+
* @default true
|
520
|
+
*/
|
521
|
+
closeOnEsc: true,
|
522
|
+
/**
|
523
|
+
* If true, allows multiple modals to be displayed at once.
|
524
|
+
* @option
|
525
|
+
* @type {boolean}
|
526
|
+
* @default false
|
527
|
+
*/
|
528
|
+
multipleOpened: false,
|
529
|
+
/**
|
530
|
+
* Distance, in pixels, the modal should push down from the top of the screen.
|
531
|
+
* @option
|
532
|
+
* @type {number|string}
|
533
|
+
* @default auto
|
534
|
+
*/
|
535
|
+
vOffset: 'auto',
|
536
|
+
/**
|
537
|
+
* Distance, in pixels, the modal should push in from the side of the screen.
|
538
|
+
* @option
|
539
|
+
* @type {number|string}
|
540
|
+
* @default auto
|
541
|
+
*/
|
542
|
+
hOffset: 'auto',
|
543
|
+
/**
|
544
|
+
* Allows the modal to be fullscreen, completely blocking out the rest of the view. JS checks for this as well.
|
545
|
+
* @option
|
546
|
+
* @type {boolean}
|
547
|
+
* @default false
|
548
|
+
*/
|
549
|
+
fullScreen: false,
|
550
|
+
/**
|
551
|
+
* Percentage of screen height the modal should push up from the bottom of the view.
|
552
|
+
* @option
|
553
|
+
* @type {number}
|
554
|
+
* @default 10
|
555
|
+
*/
|
556
|
+
btmOffsetPct: 10,
|
557
|
+
/**
|
558
|
+
* Allows the modal to generate an overlay div, which will cover the view when modal opens.
|
559
|
+
* @option
|
560
|
+
* @type {boolean}
|
561
|
+
* @default true
|
562
|
+
*/
|
563
|
+
overlay: true,
|
564
|
+
/**
|
565
|
+
* Allows the modal to remove and reinject markup on close. Should be true if using video elements w/o using provider's api, otherwise, videos will continue to play in the background.
|
566
|
+
* @option
|
567
|
+
* @type {boolean}
|
568
|
+
* @default false
|
569
|
+
*/
|
570
|
+
resetOnClose: false,
|
571
|
+
/**
|
572
|
+
* Allows the modal to alter the url on open/close, and allows the use of the `back` button to close modals. ALSO, allows a modal to auto-maniacally open on page load IF the hash === the modal's user-set id.
|
573
|
+
* @option
|
574
|
+
* @type {boolean}
|
575
|
+
* @default false
|
576
|
+
*/
|
577
|
+
deepLink: false,
|
578
|
+
/**
|
579
|
+
* Allows the modal to append to custom div.
|
580
|
+
* @option
|
581
|
+
* @type {string}
|
582
|
+
* @default "body"
|
583
|
+
*/
|
584
|
+
appendTo: "body"
|
585
|
+
|
586
|
+
};
|
587
|
+
|
588
|
+
// Window exports
|
589
|
+
Foundation.plugin(Reveal, 'Reveal');
|
590
|
+
|
591
|
+
function iPhoneSniff() {
|
592
|
+
return /iP(ad|hone|od).*OS/.test(window.navigator.userAgent);
|
593
|
+
}
|
594
|
+
|
595
|
+
function androidSniff() {
|
596
|
+
return /Android/.test(window.navigator.userAgent);
|
597
|
+
}
|
598
|
+
|
599
|
+
function mobileSniff() {
|
600
|
+
return iPhoneSniff() || androidSniff();
|
601
|
+
}
|
602
|
+
|
603
|
+
}(jQuery);
|