| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033 | /*! * # Semantic UI 2.4.2 - Sidebar * http://github.com/semantic-org/semantic-ui/ * * * Released under the MIT license * http://opensource.org/licenses/MIT * */;(function ($, window, document, undefined) {'use strict';window = (typeof window != 'undefined' && window.Math == Math)  ? window  : (typeof self != 'undefined' && self.Math == Math)    ? self    : Function('return this')();$.fn.sidebar = function(parameters) {  var    $allModules     = $(this),    $window         = $(window),    $document       = $(document),    $html           = $('html'),    $head           = $('head'),    moduleSelector  = $allModules.selector || '',    time            = new Date().getTime(),    performance     = [],    query           = arguments[0],    methodInvoked   = (typeof query == 'string'),    queryArguments  = [].slice.call(arguments, 1),    requestAnimationFrame = window.requestAnimationFrame      || window.mozRequestAnimationFrame      || window.webkitRequestAnimationFrame      || window.msRequestAnimationFrame      || function(callback) { setTimeout(callback, 0); },    returnedValue  ;  $allModules    .each(function() {      var        settings        = ( $.isPlainObject(parameters) )          ? $.extend(true, {}, $.fn.sidebar.settings, parameters)          : $.extend({}, $.fn.sidebar.settings),        selector        = settings.selector,        className       = settings.className,        namespace       = settings.namespace,        regExp          = settings.regExp,        error           = settings.error,        eventNamespace  = '.' + namespace,        moduleNamespace = 'module-' + namespace,        $module         = $(this),        $context        = $(settings.context),        $sidebars       = $module.children(selector.sidebar),        $fixed          = $context.children(selector.fixed),        $pusher         = $context.children(selector.pusher),        $style,        element         = this,        instance        = $module.data(moduleNamespace),        elementNamespace,        id,        currentScroll,        transitionEvent,        module      ;      module      = {        initialize: function() {          module.debug('Initializing sidebar', parameters);          module.create.id();          transitionEvent = module.get.transitionEvent();          // avoids locking rendering if initialized in onReady          if(settings.delaySetup) {            requestAnimationFrame(module.setup.layout);          }          else {            module.setup.layout();          }          requestAnimationFrame(function() {            module.setup.cache();          });          module.instantiate();        },        instantiate: function() {          module.verbose('Storing instance of module', module);          instance = module;          $module            .data(moduleNamespace, module)          ;        },        create: {          id: function() {            id = (Math.random().toString(16) + '000000000').substr(2,8);            elementNamespace = '.' + id;            module.verbose('Creating unique id for element', id);          }        },        destroy: function() {          module.verbose('Destroying previous module for', $module);          $module            .off(eventNamespace)            .removeData(moduleNamespace)          ;          if(module.is.ios()) {            module.remove.ios();          }          // bound by uuid          $context.off(elementNamespace);          $window.off(elementNamespace);          $document.off(elementNamespace);        },        event: {          clickaway: function(event) {            var              clickedInPusher = ($pusher.find(event.target).length > 0 || $pusher.is(event.target)),              clickedContext  = ($context.is(event.target))            ;            if(clickedInPusher) {              module.verbose('User clicked on dimmed page');              module.hide();            }            if(clickedContext) {              module.verbose('User clicked on dimmable context (scaled out page)');              module.hide();            }          },          touch: function(event) {            //event.stopPropagation();          },          containScroll: function(event) {            if(element.scrollTop <= 0)  {              element.scrollTop = 1;            }            if((element.scrollTop + element.offsetHeight) >= element.scrollHeight) {              element.scrollTop = element.scrollHeight - element.offsetHeight - 1;            }          },          scroll: function(event) {            if( $(event.target).closest(selector.sidebar).length === 0 ) {              event.preventDefault();            }          }        },        bind: {          clickaway: function() {            module.verbose('Adding clickaway events to context', $context);            if(settings.closable) {              $context                .on('click'    + elementNamespace, module.event.clickaway)                .on('touchend' + elementNamespace, module.event.clickaway)              ;            }          },          scrollLock: function() {            if(settings.scrollLock) {              module.debug('Disabling page scroll');              $window                .on('DOMMouseScroll' + elementNamespace, module.event.scroll)              ;            }            module.verbose('Adding events to contain sidebar scroll');            $document              .on('touchmove' + elementNamespace, module.event.touch)            ;            $module              .on('scroll' + eventNamespace, module.event.containScroll)            ;          }        },        unbind: {          clickaway: function() {            module.verbose('Removing clickaway events from context', $context);            $context.off(elementNamespace);          },          scrollLock: function() {            module.verbose('Removing scroll lock from page');            $document.off(elementNamespace);            $window.off(elementNamespace);            $module.off('scroll' + eventNamespace);          }        },        add: {          inlineCSS: function() {            var              width     = module.cache.width  || $module.outerWidth(),              height    = module.cache.height || $module.outerHeight(),              isRTL     = module.is.rtl(),              direction = module.get.direction(),              distance  = {                left   : width,                right  : -width,                top    : height,                bottom : -height              },              style            ;            if(isRTL){              module.verbose('RTL detected, flipping widths');              distance.left = -width;              distance.right = width;            }            style  = '<style>';            if(direction === 'left' || direction === 'right') {              module.debug('Adding CSS rules for animation distance', width);              style  += ''                + ' .ui.visible.' + direction + '.sidebar ~ .fixed,'                + ' .ui.visible.' + direction + '.sidebar ~ .pusher {'                + '   -webkit-transform: translate3d('+ distance[direction] + 'px, 0, 0);'                + '           transform: translate3d('+ distance[direction] + 'px, 0, 0);'                + ' }'              ;            }            else if(direction === 'top' || direction == 'bottom') {              style  += ''                + ' .ui.visible.' + direction + '.sidebar ~ .fixed,'                + ' .ui.visible.' + direction + '.sidebar ~ .pusher {'                + '   -webkit-transform: translate3d(0, ' + distance[direction] + 'px, 0);'                + '           transform: translate3d(0, ' + distance[direction] + 'px, 0);'                + ' }'              ;            }            /* IE is only browser not to create context with transforms */            /* https://www.w3.org/Bugs/Public/show_bug.cgi?id=16328 */            if( module.is.ie() ) {              if(direction === 'left' || direction === 'right') {                module.debug('Adding CSS rules for animation distance', width);                style  += ''                  + ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher:after {'                  + '   -webkit-transform: translate3d('+ distance[direction] + 'px, 0, 0);'                  + '           transform: translate3d('+ distance[direction] + 'px, 0, 0);'                  + ' }'                ;              }              else if(direction === 'top' || direction == 'bottom') {                style  += ''                  + ' body.pushable > .ui.visible.' + direction + '.sidebar ~ .pusher:after {'                  + '   -webkit-transform: translate3d(0, ' + distance[direction] + 'px, 0);'                  + '           transform: translate3d(0, ' + distance[direction] + 'px, 0);'                  + ' }'                ;              }              /* opposite sides visible forces content overlay */              style += ''                + ' body.pushable > .ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher:after,'                + ' body.pushable > .ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher:after {'                + '   -webkit-transform: translate3d(0px, 0, 0);'                + '           transform: translate3d(0px, 0, 0);'                + ' }'              ;            }            style += '</style>';            $style = $(style)              .appendTo($head)            ;            module.debug('Adding sizing css to head', $style);          }        },        refresh: function() {          module.verbose('Refreshing selector cache');          $context  = $(settings.context);          $sidebars = $context.children(selector.sidebar);          $pusher   = $context.children(selector.pusher);          $fixed    = $context.children(selector.fixed);          module.clear.cache();        },        refreshSidebars: function() {          module.verbose('Refreshing other sidebars');          $sidebars = $context.children(selector.sidebar);        },        repaint: function() {          module.verbose('Forcing repaint event');          element.style.display = 'none';          var ignored = element.offsetHeight;          element.scrollTop = element.scrollTop;          element.style.display = '';        },        setup: {          cache: function() {            module.cache = {              width  : $module.outerWidth(),              height : $module.outerHeight(),              rtl    : ($module.css('direction') == 'rtl')            };          },          layout: function() {            if( $context.children(selector.pusher).length === 0 ) {              module.debug('Adding wrapper element for sidebar');              module.error(error.pusher);              $pusher = $('<div class="pusher" />');              $context                .children()                  .not(selector.omitted)                  .not($sidebars)                  .wrapAll($pusher)              ;              module.refresh();            }            if($module.nextAll(selector.pusher).length === 0 || $module.nextAll(selector.pusher)[0] !== $pusher[0]) {              module.debug('Moved sidebar to correct parent element');              module.error(error.movedSidebar, element);              $module.detach().prependTo($context);              module.refresh();            }            module.clear.cache();            module.set.pushable();            module.set.direction();          }        },        attachEvents: function(selector, event) {          var            $toggle = $(selector)          ;          event = $.isFunction(module[event])            ? module[event]            : module.toggle          ;          if($toggle.length > 0) {            module.debug('Attaching sidebar events to element', selector, event);            $toggle              .on('click' + eventNamespace, event)            ;          }          else {            module.error(error.notFound, selector);          }        },        show: function(callback) {          callback = $.isFunction(callback)            ? callback            : function(){}          ;          if(module.is.hidden()) {            module.refreshSidebars();            if(settings.overlay)  {              module.error(error.overlay);              settings.transition = 'overlay';            }            module.refresh();            if(module.othersActive()) {              module.debug('Other sidebars currently visible');              if(settings.exclusive) {                // if not overlay queue animation after hide                if(settings.transition != 'overlay') {                  module.hideOthers(module.show);                  return;                }                else {                  module.hideOthers();                }              }              else {                settings.transition = 'overlay';              }            }            module.pushPage(function() {              callback.call(element);              settings.onShow.call(element);            });            settings.onChange.call(element);            settings.onVisible.call(element);          }          else {            module.debug('Sidebar is already visible');          }        },        hide: function(callback) {          callback = $.isFunction(callback)            ? callback            : function(){}          ;          if(module.is.visible() || module.is.animating()) {            module.debug('Hiding sidebar', callback);            module.refreshSidebars();            module.pullPage(function() {              callback.call(element);              settings.onHidden.call(element);            });            settings.onChange.call(element);            settings.onHide.call(element);          }        },        othersAnimating: function() {          return ($sidebars.not($module).filter('.' + className.animating).length > 0);        },        othersVisible: function() {          return ($sidebars.not($module).filter('.' + className.visible).length > 0);        },        othersActive: function() {          return(module.othersVisible() || module.othersAnimating());        },        hideOthers: function(callback) {          var            $otherSidebars = $sidebars.not($module).filter('.' + className.visible),            sidebarCount   = $otherSidebars.length,            callbackCount  = 0          ;          callback = callback || function(){};          $otherSidebars            .sidebar('hide', function() {              callbackCount++;              if(callbackCount == sidebarCount) {                callback();              }            })          ;        },        toggle: function() {          module.verbose('Determining toggled direction');          if(module.is.hidden()) {            module.show();          }          else {            module.hide();          }        },        pushPage: function(callback) {          var            transition = module.get.transition(),            $transition = (transition === 'overlay' || module.othersActive())              ? $module              : $pusher,            animate,            dim,            transitionEnd          ;          callback = $.isFunction(callback)            ? callback            : function(){}          ;          if(settings.transition == 'scale down') {            module.scrollToTop();          }          module.set.transition(transition);          module.repaint();          animate = function() {            module.bind.clickaway();            module.add.inlineCSS();            module.set.animating();            module.set.visible();          };          dim = function() {            module.set.dimmed();          };          transitionEnd = function(event) {            if( event.target == $transition[0] ) {              $transition.off(transitionEvent + elementNamespace, transitionEnd);              module.remove.animating();              module.bind.scrollLock();              callback.call(element);            }          };          $transition.off(transitionEvent + elementNamespace);          $transition.on(transitionEvent + elementNamespace, transitionEnd);          requestAnimationFrame(animate);          if(settings.dimPage && !module.othersVisible()) {            requestAnimationFrame(dim);          }        },        pullPage: function(callback) {          var            transition = module.get.transition(),            $transition = (transition == 'overlay' || module.othersActive())              ? $module              : $pusher,            animate,            transitionEnd          ;          callback = $.isFunction(callback)            ? callback            : function(){}          ;          module.verbose('Removing context push state', module.get.direction());          module.unbind.clickaway();          module.unbind.scrollLock();          animate = function() {            module.set.transition(transition);            module.set.animating();            module.remove.visible();            if(settings.dimPage && !module.othersVisible()) {              $pusher.removeClass(className.dimmed);            }          };          transitionEnd = function(event) {            if( event.target == $transition[0] ) {              $transition.off(transitionEvent + elementNamespace, transitionEnd);              module.remove.animating();              module.remove.transition();              module.remove.inlineCSS();              if(transition == 'scale down' || (settings.returnScroll && module.is.mobile()) ) {                module.scrollBack();              }              callback.call(element);            }          };          $transition.off(transitionEvent + elementNamespace);          $transition.on(transitionEvent + elementNamespace, transitionEnd);          requestAnimationFrame(animate);        },        scrollToTop: function() {          module.verbose('Scrolling to top of page to avoid animation issues');          currentScroll = $(window).scrollTop();          $module.scrollTop(0);          window.scrollTo(0, 0);        },        scrollBack: function() {          module.verbose('Scrolling back to original page position');          window.scrollTo(0, currentScroll);        },        clear: {          cache: function() {            module.verbose('Clearing cached dimensions');            module.cache = {};          }        },        set: {          // ios only (scroll on html not document). This prevent auto-resize canvas/scroll in ios          // (This is no longer necessary in latest iOS)          ios: function() {            $html.addClass(className.ios);          },          // container          pushed: function() {            $context.addClass(className.pushed);          },          pushable: function() {            $context.addClass(className.pushable);          },          // pusher          dimmed: function() {            $pusher.addClass(className.dimmed);          },          // sidebar          active: function() {            $module.addClass(className.active);          },          animating: function() {            $module.addClass(className.animating);          },          transition: function(transition) {            transition = transition || module.get.transition();            $module.addClass(transition);          },          direction: function(direction) {            direction = direction || module.get.direction();            $module.addClass(className[direction]);          },          visible: function() {            $module.addClass(className.visible);          },          overlay: function() {            $module.addClass(className.overlay);          }        },        remove: {          inlineCSS: function() {            module.debug('Removing inline css styles', $style);            if($style && $style.length > 0) {              $style.remove();            }          },          // ios scroll on html not document          ios: function() {            $html.removeClass(className.ios);          },          // context          pushed: function() {            $context.removeClass(className.pushed);          },          pushable: function() {            $context.removeClass(className.pushable);          },          // sidebar          active: function() {            $module.removeClass(className.active);          },          animating: function() {            $module.removeClass(className.animating);          },          transition: function(transition) {            transition = transition || module.get.transition();            $module.removeClass(transition);          },          direction: function(direction) {            direction = direction || module.get.direction();            $module.removeClass(className[direction]);          },          visible: function() {            $module.removeClass(className.visible);          },          overlay: function() {            $module.removeClass(className.overlay);          }        },        get: {          direction: function() {            if($module.hasClass(className.top)) {              return className.top;            }            else if($module.hasClass(className.right)) {              return className.right;            }            else if($module.hasClass(className.bottom)) {              return className.bottom;            }            return className.left;          },          transition: function() {            var              direction = module.get.direction(),              transition            ;            transition = ( module.is.mobile() )              ? (settings.mobileTransition == 'auto')                ? settings.defaultTransition.mobile[direction]                : settings.mobileTransition              : (settings.transition == 'auto')                ? settings.defaultTransition.computer[direction]                : settings.transition            ;            module.verbose('Determined transition', transition);            return transition;          },          transitionEvent: function() {            var              element     = document.createElement('element'),              transitions = {                'transition'       :'transitionend',                'OTransition'      :'oTransitionEnd',                'MozTransition'    :'transitionend',                'WebkitTransition' :'webkitTransitionEnd'              },              transition            ;            for(transition in transitions){              if( element.style[transition] !== undefined ){                return transitions[transition];              }            }          }        },        is: {          ie: function() {            var              isIE11 = (!(window.ActiveXObject) && 'ActiveXObject' in window),              isIE   = ('ActiveXObject' in window)            ;            return (isIE11 || isIE);          },          ios: function() {            var              userAgent      = navigator.userAgent,              isIOS          = userAgent.match(regExp.ios),              isMobileChrome = userAgent.match(regExp.mobileChrome)            ;            if(isIOS && !isMobileChrome) {              module.verbose('Browser was found to be iOS', userAgent);              return true;            }            else {              return false;            }          },          mobile: function() {            var              userAgent    = navigator.userAgent,              isMobile     = userAgent.match(regExp.mobile)            ;            if(isMobile) {              module.verbose('Browser was found to be mobile', userAgent);              return true;            }            else {              module.verbose('Browser is not mobile, using regular transition', userAgent);              return false;            }          },          hidden: function() {            return !module.is.visible();          },          visible: function() {            return $module.hasClass(className.visible);          },          // alias          open: function() {            return module.is.visible();          },          closed: function() {            return module.is.hidden();          },          vertical: function() {            return $module.hasClass(className.top);          },          animating: function() {            return $context.hasClass(className.animating);          },          rtl: function () {            if(module.cache.rtl === undefined) {              module.cache.rtl = ($module.css('direction') == 'rtl');            }            return module.cache.rtl;          }        },        setting: function(name, value) {          module.debug('Changing setting', name, value);          if( $.isPlainObject(name) ) {            $.extend(true, settings, name);          }          else if(value !== undefined) {            if($.isPlainObject(settings[name])) {              $.extend(true, settings[name], value);            }            else {              settings[name] = value;            }          }          else {            return settings[name];          }        },        internal: function(name, value) {          if( $.isPlainObject(name) ) {            $.extend(true, module, name);          }          else if(value !== undefined) {            module[name] = value;          }          else {            return module[name];          }        },        debug: function() {          if(!settings.silent && settings.debug) {            if(settings.performance) {              module.performance.log(arguments);            }            else {              module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':');              module.debug.apply(console, arguments);            }          }        },        verbose: function() {          if(!settings.silent && settings.verbose && settings.debug) {            if(settings.performance) {              module.performance.log(arguments);            }            else {              module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':');              module.verbose.apply(console, arguments);            }          }        },        error: function() {          if(!settings.silent) {            module.error = Function.prototype.bind.call(console.error, console, settings.name + ':');            module.error.apply(console, arguments);          }        },        performance: {          log: function(message) {            var              currentTime,              executionTime,              previousTime            ;            if(settings.performance) {              currentTime   = new Date().getTime();              previousTime  = time || currentTime;              executionTime = currentTime - previousTime;              time          = currentTime;              performance.push({                'Name'           : message[0],                'Arguments'      : [].slice.call(message, 1) || '',                'Element'        : element,                'Execution Time' : executionTime              });            }            clearTimeout(module.performance.timer);            module.performance.timer = setTimeout(module.performance.display, 500);          },          display: function() {            var              title = settings.name + ':',              totalTime = 0            ;            time = false;            clearTimeout(module.performance.timer);            $.each(performance, function(index, data) {              totalTime += data['Execution Time'];            });            title += ' ' + totalTime + 'ms';            if(moduleSelector) {              title += ' \'' + moduleSelector + '\'';            }            if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) {              console.groupCollapsed(title);              if(console.table) {                console.table(performance);              }              else {                $.each(performance, function(index, data) {                  console.log(data['Name'] + ': ' + data['Execution Time']+'ms');                });              }              console.groupEnd();            }            performance = [];          }        },        invoke: function(query, passedArguments, context) {          var            object = instance,            maxDepth,            found,            response          ;          passedArguments = passedArguments || queryArguments;          context         = element         || context;          if(typeof query == 'string' && object !== undefined) {            query    = query.split(/[\. ]/);            maxDepth = query.length - 1;            $.each(query, function(depth, value) {              var camelCaseValue = (depth != maxDepth)                ? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1)                : query              ;              if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) {                object = object[camelCaseValue];              }              else if( object[camelCaseValue] !== undefined ) {                found = object[camelCaseValue];                return false;              }              else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) {                object = object[value];              }              else if( object[value] !== undefined ) {                found = object[value];                return false;              }              else {                module.error(error.method, query);                return false;              }            });          }          if ( $.isFunction( found ) ) {            response = found.apply(context, passedArguments);          }          else if(found !== undefined) {            response = found;          }          if($.isArray(returnedValue)) {            returnedValue.push(response);          }          else if(returnedValue !== undefined) {            returnedValue = [returnedValue, response];          }          else if(response !== undefined) {            returnedValue = response;          }          return found;        }      }    ;    if(methodInvoked) {      if(instance === undefined) {        module.initialize();      }      module.invoke(query);    }    else {      if(instance !== undefined) {        module.invoke('destroy');      }      module.initialize();    }  });  return (returnedValue !== undefined)    ? returnedValue    : this  ;};$.fn.sidebar.settings = {  name              : 'Sidebar',  namespace         : 'sidebar',  silent            : false,  debug             : false,  verbose           : false,  performance       : true,  transition        : 'auto',  mobileTransition  : 'auto',  defaultTransition : {    computer: {      left   : 'uncover',      right  : 'uncover',      top    : 'overlay',      bottom : 'overlay'    },    mobile: {      left   : 'uncover',      right  : 'uncover',      top    : 'overlay',      bottom : 'overlay'    }  },  context           : 'body',  exclusive         : false,  closable          : true,  dimPage           : true,  scrollLock        : false,  returnScroll      : false,  delaySetup        : false,  duration          : 500,  onChange          : function(){},  onShow            : function(){},  onHide            : function(){},  onHidden          : function(){},  onVisible         : function(){},  className         : {    active    : 'active',    animating : 'animating',    dimmed    : 'dimmed',    ios       : 'ios',    pushable  : 'pushable',    pushed    : 'pushed',    right     : 'right',    top       : 'top',    left      : 'left',    bottom    : 'bottom',    visible   : 'visible'  },  selector: {    fixed   : '.fixed',    omitted : 'script, link, style, .ui.modal, .ui.dimmer, .ui.nag, .ui.fixed',    pusher  : '.pusher',    sidebar : '.ui.sidebar'  },  regExp: {    ios          : /(iPad|iPhone|iPod)/g,    mobileChrome : /(CriOS)/g,    mobile       : /Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/g  },  error   : {    method       : 'The method you called is not defined.',    pusher       : 'Had to add pusher element. For optimal performance make sure body content is inside a pusher element',    movedSidebar : 'Had to move sidebar. For optimal performance make sure sidebar and pusher are direct children of your body tag',    overlay      : 'The overlay setting is no longer supported, use animation: overlay',    notFound     : 'There were no elements that matched the specified selector'  }};})( jQuery, window, document );
 |