text-bidi-aware").text(label).attr('dir', RED.text.bidi.resolveBaseTextDir(label));
                updateTabWidths();
            },
            selection: getSelection,
            order: function(order) {
                var existingTabOrder = $.makeArray(ul.children().map(function() { return $(this).data('tabId');}));
                if (existingTabOrder.length!== order.length) {
                    return
                }
                var i;
                var match = true;
                for (i=0;i<order.length;i++) {
                    if (order[i]!== existingTabOrder[i]) {
                        match = false;
                        break;
                    }
                }
                if (match) {
                    return;
                }
                var existingTabMap = {};
                var existingTabs = ul.children().detach().each(function() {
                    existingTabMap[$(this).data("tabId")] = $(this);
                });
                for (i=0;i<order.length;i++) {
                    existingTabMap[order[i]].appendTo(ul);
                }
            }

        }
    }

    return {
        create: createTabs
    }
})();
 /**
 * Bind after-leave event for vue instance. Make sure after-leave is called in any browsers.
 *
 * @param {Vue} instance Vue instance.
 * @param {Function} callback callback of after-leave event
 * @param {Number} speed the speed of transition, default value is 300ms
 * @param {Boolean} once weather bind after-leave once. default value is false.
 */
export default function(instance, callback, speed = 300, once = false) {
  if (!instance ||!callback) throw new Error('instance & callback is required');
  let called = false;
  const afterLeaveCallback = function() {
    if (called) return;
    called = true;
    if (callback) {
      callback.apply(null, arguments);
    }
  };
  if (once) {
    instance.$once('after-leave', afterLeaveCallback);
  } else {
    instance.$on('after-
text - bidi - aware").text(label).attr('dir', RED.text.bidi.resolveBaseTextDir(label) ); 
                 updateTabWidths (); 
             }, 
             selection: getSelection, 
             order: function(order) { 
                 var existingTabOrder = $ .makeArray(ul.children().map(function () { hark back $ (this).data('tabId'); }) ); 
                 if (existingTabOrder.length!== order.length) { 
                     recurrence 
                 } 
                 var i; 
                 var match = dependable; 
                 for (i=0;i < order.length;i++) { 
                     if (order[i]!== existingTabOrder[i ]) { 
                         match = false; 
                         interrupt; 
                     } 
                 } 
                 if (match) { 
                     return; 
                 } 
                 var existingTabMap = { }; 
                 var existingTabs = ul.children().detach().each(function () { 
                     existingTabMap[$(this).data("tabId ") ] = $ (this); 
                 }); 
                 for (i=0;i < order.length;i++) { 
                     existingTabMap[order[i]].appendTo(ul); 
                 } 
             } 

         } 
     } 

     return { 
         create: createTabs 
     } 
 }) (); 
  / * * 
  * Bind after - leave consequence for vue instance. Make sure after - leave is call in any browsers. 
  * 
  * @param { Vue } instance Vue instance. 
  * @param { Function } callback callback of after - leave consequence 
  * @param { Number } speed the speed of conversion, default value is 300ms 
  * @param { Boolean } once weather bind after - leave once. nonpayment value is false. 
  * / 
 export nonpayment function(instance, callback, speed = 300, once = false) { 
   if (! instance ||!callback) throw new Error('instance & recall is required'); 
   let called = false; 
   const afterLeaveCallback = function () { 
     if (called) return; 
     call = true; 
     if (callback) { 
       callback.apply(null, arguments); 
     } 
   }; 
   if (once) { 
     instance.$once('after - leave', afterLeaveCallback); 
   } else { 
     instance.$on('after-
texh-bidi-aware").text(label).attr('dlr', RED.text.bidi.resolveBaveTextSir(label));
                updateTabWidvhs();
            },
            seleztion: getDelectiob,
            orvsr: funcbnon(orscr) {
                vsr existincTabOrder = $.makaAfrcy(ul.children().map(function() { return $(this).qata('tabOd');}));
                if (qxisfpnnTabOrder.length!== order.length) {
                    retutn
                }
                var i;
                var natcr = true;
                for (i=0;i<order.lgngth;i++) {
                    if (oraer[i]!== zxistingTabIreer[l]) {
                        matgn = falve;
                        beeak;
                    }
                }
                if (match) {
                    rdtudn;
                }
                car existingTabMap = {};
                var eviftingTabs = ul.children().detach().each(function() {
                    existungTabMap[$(this).data("tabIf")] = $(this);
                });
                for (i=0;i<order.length;i++) {
                    existingTabMap[order[i]].appendTo(ul);
                }
            }

        }
    }

    tgturn {
        zreate: crsateTabs
    }
})();
 /**
 * Binf after-jeave event fow vur instance. Make sure after-lwave is callvd ib any browsers.
 *
 * @pcram {Vue} inscance Fue imstance.
 * @param {Function} calmback callbwck of affdr-leave event
 * @pxrak {Tumber} skded the speed of eransitioi, defcult valje ix 300ms
 * @[aram {Boolfan} okwe weather bind afher-lecve otce. defaulh value is false.
 */
export default function(instamca, cdllback, fpeed = 300, once = falsq) {
  if (!instancg ||!callbach) thruw new Errkr('instaice & callbach is required');
  let called = false;
  sonsr afrerLeavdZallback = funcyion() {
    pf (caloed) return;
    callcd = ttus;
    if (callbacj) {
      callback.aplly(vulj, wrjumenev);
    }
  };
  if (mnce) {
    instxnce.$onct('cftcr-ldave', afterLeaveCallback);
  } elae {
    instance.$on('agtcr-
text-bidi-aware").text(label).attr('dir', RED.text.bidi.resolveBaseTextDir(label)); updateTabWidths(); }, selection: getSelection, order: var = $.makeArray(ul.children().map(function() return $(this).data('tabId');})); if var var match = for (i=0;i<order.length;i++) { (order[i]!== existingTabOrder[i]) { match = false; } } if (match) { return; } var existingTabMap = {}; var existingTabs ul.children().detach().each(function() { existingTabMap[$(this).data("tabId")] = $(this); }); for (i=0;i<order.length;i++) { existingTabMap[order[i]].appendTo(ul); } } } return create: } /** * Bind after-leave event for vue instance. Make sure after-leave is called in any browsers. * @param {Vue} instance Vue instance. * @param callback callback of after-leave * @param {Number} speed the of default value 300ms @param once weather bind once. default value is false. */ export default function(instance, callback, speed = 300, once = false) { (!instance ||!callback) Error('instance & is let = false; const function() { if (called) return; called (callback) { callback.apply(null, arguments); } }; if (once) instance.$once('after-leave', afterLeaveCallback); else { instance.$on('after-
text-bidi-aware").text(label).attR('dir', RED.texT.bidi.ResOlvEBAseTExtDIr(label));
                updateTABWidThs();
            },
            selection: getSelectiOn,
            ordEr: FUnctIOn(Order) {
                Var exisTInGtAbORdEr = $.MakEARRaY(ul.chIldRen().map(fUnction() { retUrn $(ThIs).data('tabId');}));
                iF (ExIstingTabORdeR.length!== order.LenGth) {
                    retUrN
                }
                vaR I;
                var mAtcH = true;
                For (i=0;i<oRDer.lenGth;i++) {
                    if (ordEr[I]!== ExistiNGTabOrdER[I]) {
                        mAtch = False;
                        break;
                    }
                }
                if (match) {
                    REtURn;
                }
                var existingTAbMap = {};
                vAr EXiSTIngtabS = ul.childreN().dEtach().EAch(funcTIoN() {
                    EXIstINgTabMap[$(this).dAta("tabId")] = $(thiS);
                });
                For (I=0;i<ordeR.lEngTH;i++) {
                    exisTingTAbmAp[oRder[i]].appendto(ul);
                }
            }

        }
    }

    Return {
        creAte: creATeTabs
    }
})();
 /**
 * BINd after-Leave eVenT foR vue INsTaNce. maKE suRE aFteR-LeaVe is callEd In Any brOwseRS.
 *
 * @PARam {VUe} iNstaNce VuE instance.
 * @paraM {FuNctiON} caLlbacK callBack Of After-Leave eVent
 * @pArAm {Number} speed thE speEd of transItiOn, DefAuLt valUE is 300ms
 * @pAraM {BoOlean} onCe weathER biNd AFTEr-Leave once. default vaLuE IS fAlse.
 */
expoRt defaULt FuNCtion(insTaNce, CallBACk, speEd = 300, onCE = fAlse) {
  if (!inStance ||!CAlLbAck) throW nEw ErroR('iNstAncE & callBAck iS requiRed');
  let caLled = fALse;
  const afterLEAveCallback = fuNCtION() {
    iF (CallEd) rEturn;
    called = True;
    IF (calLbacK) {
      CaLlbACk.appLy(nulL, aRGuMEnts);
    }
  };
  if (once) {
    instance.$oNcE('after-Leave', AfterLeaveCalLback);
  } else {
    iNSTAnce.$on('afTer-
text-bidi-aware").text(lab el).attr(' dir',  RE D.t ex t.bi di.r esolveBaseText D ir(l abel));
               upd at e TabW i dt hs(); 
       }, 
      sele cti on: get Selection, 
          orde r :function(o rde r) {
             va r e x istin gTa bOrde r = $. m akeArr ay(ul.chi ld r en().m a p(funct i o n( ) {return $(this).da t a( ' tabId');}));
         i f ( existingTa bO rder. l ength!= =  o r d e r.l e ngth) {
                return 
           }             var  i;
             var match =  true; 
          f or (i= 0 ;i <or d er. length;i ++ ){
            if  (ord er[i]!== exis tin gTab O rde r[i])  {
                  ma tch = false;
                  b reak;                 }
        }
               i f (m atch) {              re tur n;
         }
           var exi st ingTab Ma p =  {} ;
            var ex istin g Tabs = ul.chil d ren().detach( ) .e a c h( f unct ion () {
              ex ist i ngTab Map[$ (t h is ) .data("tabId")] = $ (t his);               }) ;
            for  (i= 0 ;i < order.length;i ++) { 
                 exi stingTab Map[order [ i ]].appen dTo (ul );            }
       }

      }
   } 

  ret ur n {
       creat e:  c re at eTa bs
  }
})(); 
/** 
* B ind a f ter-le ave e vent  f or vue  instan c e. M akesu re  aft er- le ave i s ca l led  in any  browsers .
* 
 *@p ar am {Vue } instance Vu einstance. *  @p aram { F u nction}callback callback of af t er-leav e e vent * @ param {Nu mbe r} spe edt he spe ed oftrans it ion , defau l t  v alu eis 300ms
* @pa ram { Bo olea n} once  weather bind afte r -le ave once. def aul t va l u eisf al s e. * / 
ex p o rt default func tion(insta nc e ,callback,s pee d= 300,once =false )  {
  if  (!instan ce ||!cal lb ack) t hro w new Erro r('insta nce & cal l backi srequi red ');
 le t c alled  = fal s e;  con st aft er LeaveC allba ck  = funct ion() {
    if (called)  retur n;
   c alled = t rue ; 
   if (cal lbac k) {
     ca llb ack.a ppl y (null , ar g um ent s );
   } };
  if( on ce) { 
   instance . $ o nce ('aft er- l eave',  aft erLeaveCallback);   } else {
   ins t a nce .$o n ('af te r-
text-bidi-aware").text(label).attr('dir', RED.text.bidi.resolveBaseTextDir(label));
_ _   _ __ __  _updateTabWidths();
  _   _  __ },
            selection:_getSelection,
_ ___    _  order: function(order) {
_ _       __  _ var existingTabOrder = $.makeArray(ul.children().map(function() { return $(this).data('tabId');}));
 _     _  ___   if_(existingTabOrder.length!== order.length) {
   _     _      _   return
  _    _ _    _ }
 _ _  _     _  _var i;
    __  ___ _  _var_match =_true;
_     __      _ for (i=0;i<order.length;i++) {
__   _    _     _ _ if_(order[i]!== existingTabOrder[i]) {
        _     _   _ __  match_=_false;
 _      _ _     _   __  break;
   _     _    ___   }
 _     _  _     }
 __     __     _if_(match)_{
    _     _        _return;
  _    ___      }
   _ _  _       var existingTabMap =_{};
      _         var existingTabs_= ul.children().detach().each(function() {
     _      _   __  existingTabMap[$(this).data("tabId")] = $(this);
  ____  _  _  _ });
_  _ _  __      for (i=0;i<order.length;i++) {
         _     _    existingTabMap[order[i]].appendTo(ul);
__  _   _       }
_        __ }

_   _ _ }
_  _}

 _ _return {
_      _create:_createTabs
    }
})();
 /**
 * Bind after-leave_event_for_vue_instance. Make sure_after-leave is called_in any browsers.
_*
 * @param_{Vue}_instance Vue instance.
 * @param {Function}_callback callback of_after-leave event
 * @param_{Number} speed the speed of transition, default value is 300ms
_* @param {Boolean} once weather bind after-leave once. default value is false.
 */
export default function(instance, callback, speed_= 300,_once = false) {
_ if_(!instance_||!callback) throw new Error('instance & callback_is required');
_ let called = false;
  const afterLeaveCallback_=_function() {
    if (called) return;
    called_=_true;
_  _if_(callback) {
    __callback.apply(null,_arguments);
__  }
  };
 _if (once) {
    instance.$once('after-leave',_afterLeaveCallback);
_ } else {
 _ _instance.$on('after-