{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../otxFrontend/Scripts/src/helpers.js","webpack:///../otxFrontend/Scripts/src/index.js","webpack:///../otxFrontend/Scripts/src/widgets/cookie-popup.js","webpack:///../otxFrontend/Scripts/src/widgets/datepicker.js","webpack:///../otxFrontend/Scripts/src/widgets/dropdown.js","webpack:///../otxFrontend/Scripts/src/widgets/filtered-list.js","webpack:///../otxFrontend/Scripts/src/widgets/image.js","webpack:///../otxFrontend/Scripts/src/widgets/list-items/media.js","webpack:///../otxFrontend/Scripts/src/widgets/list-items/news.js","webpack:///../otxFrontend/Scripts/src/widgets/modal.js","webpack:///../otxFrontend/Scripts/src/widgets/password.js","webpack:///../otxFrontend/Scripts/src/widgets/region-picker.js","webpack:///../otxFrontend/node_modules/air-datepicker/air-datepicker.js","webpack:///../otxFrontend/node_modules/air-datepicker/index.es.js","webpack:///../otxFrontend/node_modules/air-datepicker/locale/de.js","webpack:///../otxFrontend/node_modules/desandro-matches-selector/matches-selector.js","webpack:///../otxFrontend/node_modules/ev-emitter/ev-emitter.js","webpack:///../otxFrontend/node_modules/fizzy-ui-utils/utils.js","webpack:///../otxFrontend/node_modules/get-size/get-size.js","webpack:///../otxFrontend/node_modules/masonry-layout/masonry.js","webpack:///../otxFrontend/node_modules/outlayer/item.js","webpack:///../otxFrontend/node_modules/outlayer/outlayer.js","webpack:///./Scripts/src/index.js"],"names":["padZero","num","fdate","date","withTime","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","fdateApi","shuffleArray","array","i","length","j","Math","floor","random","$","FilteredList","loadImage","findPasswordToggle","focus","hide","on","animate","scrollTop","window","toggleClass","dropdown","parents","addClass","setTimeout","removeClass","CookiePopup","e","currentTarget","checked","find","html","next","click","disabled","item","id","attr","hasClass","post","then","result","done","slideUp","promise","error","slideDown","remove","ev","target","$target","titleOn","titleOff","analyticsMonitoringMode","undefined","Modal","show","msg","removeAttr","filter","each","idx","el","search","encodeURIComponent","updatePricingTableInterval","is","toggle","change","submit","content","modal","progress","close","height","scrollHeight","css","DatePicker","onChange","value","location","replaceAll","options","map","slice","toArray","reduce","agg","items","currentIndex","scheduleTrendingHeroUpdate","animation","updateTrendingHero","$item","keyword","text","trim","title","val","fetch","method","headers","body","JSON","stringify","checkID","server","clientID","groupID","masterGroupID","languageID","menueID","treshold","isLogged","newsId","startIndex","d","json","Items","append","Image","replace","Title","Text","match","Date","setFullYear","document","cookie","toUTCString","reload","elem","console","log","datepicker","AirDatepicker","locale","localeDe","buttons","onClick","dp","selectDate","setViewDate","multipleDatesSeparator","onSelect","formattedDate","p","split","refresh","data","v","def","Dropdown","_dropdown","label","first","format","CUSTOM_BRANCH","getSearch","ressort","filterRessort","s","currentState","doSearch","asyncList","refreshFilter","which","initList","initFilter","initPagination","initLayout","RegionPicker","branch","region","$this","datePicker","dropdowns","push","max","children","button","goTo","Object","assign","history","state","maybeLoadMore","masonry","Masonry","percentPosition","columnWidth","gutter","itemSelector","transitionDuration","mode","modeClass","startsWith","initNewsItems","initMediaItems","regionLabel","replaceState","url","pathname","toString","$new","now","setInterval","count","$list","index","initNewContent","h","outerHeight","prepend","diff","event","originalEvent","decodeURIComponent","refreshToolbar","page","loadUrl","updateMainLinks","forEach","dd","windowTop","windowBottom","innerHeight","offset","top","bottom","triggerHandler","elems","updatePagination","appended","layout","prevUrl","nextUrl","baseUrl","parts","join","indexOf","has","fail","pushState","gtag","get","appendTo","fadeIn","fadeOut","$img","cb","relayout","img","m","prop","_this","parent","addBack","siblings","y","position","insertAfter","left","zIndex","display","offsetHeight","context","images","abort","loading","lt","clearTimeout","mason","nid","$e","closeCallback","contentBox","contentWrapper","closeButton","progressOverlay","stopPropagation","toggleShowPassword","$elem","$wrapper","insertBefore","$toggle","preventDefault","$input","type","highlightRegionHint","highlightedRegionHint","blur","eq","selectRegion","loadRegionHints","regionTimeout","_loadRegionHints","o","$el"],"mappings":"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A;AACA;;AAEA,CAAC;;;;;;;;;;;;ACpDD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,oCAAQ,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAE;AACrB,GAAG,MAAM,EAMN;;AAEH,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;AC/GD;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,MAAM,kJAA4C;AAClD,KAAK,mCAAE;AACP;AACA,KAAK;AAAA,oGAAC;AACN,GAAG,MAAM,EAYN;;AAEH,CAAC;;AAED;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,GAAG;AACH;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;AChPD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,oCAAQ,OAAO;AAAA;AAAA;AAAA;AAAA,oGAAE;AACrB,GAAG,MAAM,EAMN;;AAEH,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;AC9MD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,QAAQ,gGAAmB;AAC3B,QAAQ,gGAAmB;AAC3B,OAAO,oCACD,OAAO;AAAA;AAAA;AAAA,oGAAE;AACf,GAAG,MAAM,EAYN;;AAEH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,eAAe;AACjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,OAAO;AACpB,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;AC9OD;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,QAAQ,wGAAuB;AAC/B,QAAQ,gGAAmB;AAC3B,OAAO,oCACD,OAAO;AAAA;AAAA;AAAA,oGACR;AACL,GAAG,MAAM,EAaN;;AAEH,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB,aAAa;AACb;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,YAAY,cAAc;;AAE1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,cAAc;;AAE1B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,CAAC;;;;;;;;;;;;ACziBD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,IAAyC;AAChD;AACA,IAAI,iCAAQ;AACZ,QAAQ,wGAAuB;AAC/B,QAAQ,gGAAmB;AAC3B,QAAQ,sGAAsB;AAC9B,QAAQ,iFAAQ;AAChB,OAAO,mCACD;AACN;AACA,OAAO;AAAA,oGACF;AACL,GAAG,MAAM,EAkBN;;AAEH,CAAC;AACD;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;;AAGA;AACA,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA,iCAAiC;AACjC,yBAAyB;;AAEzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,WAAW,iCAAiC;AAC5C,aAAa,MAAM;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB,sBAAsB;AACtC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,iCAAiC;AAC5C,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,oCAAoC;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,4BAA4B;AACvC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,oCAAoC;AAC/C,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,6BAA6B;AACxC,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,WAAW,MAAM,GAAG,QAAQ,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM,GAAG,QAAQ,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,cAAc;AAC3B;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,yCAAyC;;AAEzC;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;AC16BD;AAAA","file":"main.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./Scripts/src/index.js\");\n","/**\r\n* various helper functions\r\n*/\r\n\r\nexport function padZero(num) {\r\n if (num < 10) return '0' + num;\r\n return num;\r\n}\r\n\r\nexport function fdate(date, withTime = true) {\r\n return `${date.getFullYear()}-${padZero(date.getMonth() + 1)}-${padZero(date.getDate())}` + (withTime ? ` ${padZero(date.getHours())}:${padZero(date.getMinutes())}:${padZero(date.getSeconds())}` : '');\r\n}\r\n\r\nexport function fdateApi(date, withTime = true) {\r\n return `${padZero(date.getDate())}-${padZero(date.getMonth() + 1)}-${date.getFullYear()}` + (withTime ? ` ${padZero(date.getHours())}h${padZero(date.getMinutes())}m${padZero(date.getSeconds())}` : '');\r\n}\r\n\r\nexport function shuffleArray(array) {\r\n for (let i = array.length - 1; i > 0; i--) {\r\n const j = Math.floor(Math.random() * (i + 1));\r\n [array[i], array[j]] = [array[j], array[i]];\r\n }\r\n return array;\r\n}","import CookiePopup from './widgets/cookie-popup'\r\nimport FilteredList from './widgets/filtered-list'\r\nimport { loadImage } from './widgets/image'\r\nimport { findPasswordToggle } from './widgets/password'\r\nimport DatePicker from './widgets/datepicker'\r\nimport Modal from './widgets/modal'\r\nimport { shuffleArray } from './helpers' \r\n\r\n$(() => {\r\n\r\n new FilteredList();\r\n\r\n loadImage($('img'));\r\n\r\n findPasswordToggle();\r\n\r\n $('.autofocus').focus();\r\n\r\n $('.hide-js').hide();\r\n\r\n $('.back-to-top').on('click', function () {\r\n $('html, body').animate({\r\n scrollTop: 0\r\n }, 'slow');\r\n return false;\r\n });\r\n\r\n $(window).on('scroll', function () {\r\n $('.back-to-top').toggleClass('show', $(window).scrollTop() > 200);\r\n });\r\n\r\n $('.mobile-nav-toggle').on('click touchstart', function () {\r\n $(this).toggleClass('open');\r\n $('#main-nav').toggleClass('open');\r\n return false;\r\n });\r\n\r\n $('.dropdown.sections a').on('click', function () {\r\n var dropdown = $(this).parents('.dropdown').addClass('close');\r\n setTimeout(function () { dropdown.removeClass('close'); }, 10);\r\n });\r\n\r\n new CookiePopup();\r\n\r\n $('.dropdown input').on('change', e => {\r\n if (e.currentTarget.checked) {\r\n $(e.currentTarget).parents('.dropdown').find('.label').html($(e.currentTarget).next().html());\r\n }\r\n });\r\n\r\n $('[href=\"#toggle-subscription\"], [data-action=\"toggle-subscription\"]').click(function () {\r\n if (this.disabled) { return false; }\r\n const item = $(this).parents('[data-id]');\r\n const id = item.attr('data-id');\r\n item.toggleClass('off');\r\n $(this).attr('title', $(this).attr(`data-title-${item.hasClass('off') ? 'disabled' : 'enabled'}`));\r\n $.post('/User/Subscription/Toggle/' + id).then(result => {\r\n item.toggleClass('off', result.disabled);\r\n $(this).attr('title', $(this).attr(`data-title-${item.hasClass('off') ? 'disabled' : 'enabled'}`));\r\n });\r\n return false;\r\n });\r\n\r\n $('[href=\"#remove-subscription\"], [data-action=\"remove-subscription\"]').click(function () {\r\n if (this.disabled) { return false; }\r\n const item = $(this).parents('[data-id]');\r\n const id = item.attr('data-id');\r\n const done = item.slideUp().promise();\r\n $.post('/User/Unsubscribe/' + id).then(result => {\r\n if (result.error) {\r\n item.slideDown();\r\n } else {\r\n done.then(() => item.remove());\r\n }\r\n });\r\n return false;\r\n });\r\n\r\n $('[data-action=\"subscribe\"]').click(ev => {\r\n const target = ev.currentTarget;\r\n const $target = $(target);\r\n const item = $target.parents('[data-id]');\r\n const id = item.attr('data-id');\r\n\r\n if (target.disabled || !id) { return false; }\r\n\r\n const titleOn = $target.attr('data-title-on');\r\n const titleOff = $target.attr('data-title-off');\r\n const analyticsMonitoringMode = titleOn && titleOff;\r\n\r\n if (analyticsMonitoringMode && $target.attr('data-on') !== undefined) {\r\n $.post('/User/Unsubscribe/' + id).then(result => {\r\n if (!result.error) {\r\n item.addClass('analytics-list__item--uncovr')\r\n $target.attr(\"data-on\", null);\r\n $target.attr(\"title\", $target.attr(\"data-title-off\"));\r\n item.find('.analytics-list__tools > *').attr('disabled', true);\r\n } else {\r\n new Modal().show(result.msg);\r\n }\r\n });\r\n } else {\r\n $.post('/User/Subscribe/' + id).then(result => {\r\n if (!result.error) {\r\n item.removeClass('analytics-list__item--uncovr')\r\n item.find('[disabled]').removeAttr('disabled');\r\n if (analyticsMonitoringMode) {\r\n $target.attr(\"data-on\", true);\r\n } else {\r\n target.disabled = true;\r\n }\r\n } else {\r\n new Modal().show(result.msg);\r\n }\r\n });\r\n }\r\n return false;\r\n }).filter(\"[data-title-on][data-title-off]\").each((idx, el) => {\r\n $(el).attr(\"title\", $(el).attr(`data-title-${$(el).attr(\"data-on\") !== undefined ? \"on\" : \"off\"}`))\r\n });;\r\n\r\n $('[data-action=\"save-search\"]').on('click', (ev) => {\r\n const target = ev.currentTarget;\r\n const $target = $(target);\r\n const search = $target.attr('data-search');\r\n if (target.disabled || !search) return false;\r\n\r\n const titleOn = $target.attr('data-title-on');\r\n const titleOff = $target.attr('data-title-off');\r\n const analyticsMonitoringMode = titleOn && titleOff;\r\n if (analyticsMonitoringMode && $target.attr('data-on') !== undefined) {\r\n const id = $target.parents('[data-id]').attr(\"data-id\");\r\n if (!id) { return false }\r\n $.post(`/User/Search/Delete/${encodeURIComponent(id)}`).then(result => {\r\n if (!result.error) {\r\n $target.attr(\"data-on\", null);\r\n $target.attr(\"title\", $target.attr(\"data-title-off\"));\r\n $target.parents('.analytics-list__item')\r\n .addClass('analytics-list__item--uncovr')\r\n .attr('data-id', null)\r\n .find('.analytics-list__tools > *')\r\n .attr('disabled', true);\r\n } else {\r\n new Modal().show(result.msg);\r\n }\r\n });\r\n } else {\r\n $.post(`/User/Search/Save/${encodeURIComponent(search)}/Alle`).then(result => {\r\n if (!result.error) {\r\n if (analyticsMonitoringMode) {\r\n $target.attr(\"data-on\", true);\r\n } else {\r\n target.disabled = true;\r\n }\r\n $target.parents('.analytics-list__item')\r\n .removeClass('analytics-list__item--uncovr')\r\n .attr('data-id', result.id)\r\n .find('.analytics-list__tools > *')\r\n .attr('disabled', false);\r\n } else {\r\n new Modal().show(result.msg);\r\n }\r\n });\r\n }\r\n return false;\r\n }).filter(\"[data-title-on][data-title-off]\").each((idx, el) => {\r\n $(el).attr(\"title\", $(el).attr(`data-title-${$(el).attr(\"data-on\") !== undefined ? \"on\" : \"off\"}`))\r\n });\r\n\r\n $('[href=\"#toggle-filter\"], [data-action=\"toggle-filter\"]').click(function () {\r\n if (this.disabled) { return false; }\r\n const item = $(this).parents('[data-id]');\r\n const id = item.attr('data-id');\r\n item.toggleClass('off');\r\n $(this).attr('title', $(this).attr(`data-title-${item.hasClass('off') ? 'disabled' : 'enabled'}`));\r\n $.post('/User/Search/Toggle/' + id).then(result => {\r\n item.toggleClass('off', result.disabled);\r\n $(this).attr('title', $(this).attr(`data-title-${item.hasClass('off') ? 'disabled' : 'enabled'}`));\r\n });\r\n return false;\r\n });\r\n\r\n $('[href=\"#remove-filter\"], [data-action=\"remove-filter\"]').click(function () {\r\n if (this.disabled) { return false; }\r\n const item = $(this).parents('[data-id]');\r\n const id = item.attr('data-id');\r\n const done = item.slideUp().promise();\r\n $.post('/User/Search/Delete/' + id).then(result => {\r\n if (result.error) {\r\n item.slideDown();\r\n } else {\r\n done.then(() => item.remove());\r\n }\r\n });\r\n return false;\r\n });\r\n\r\n $('[href=\"#toggle-filter-reference\"], [data-action=\"toggle-filter-reference\"]').click(function () {\r\n if (this.disabled) { return false; }\r\n const item = $(this).parents('[data-id]');\r\n const id = item.attr('data-id');\r\n const done = item.slideUp().promise();\r\n $.post('/User/Search/ToggleReference/' + id).then(result => {\r\n if (result.error) {\r\n item.slideDown();\r\n } else {\r\n done.then(() => item.remove());\r\n }\r\n });\r\n return false;\r\n });\r\n\r\n function updatePricingTableInterval() {\r\n const checked = $('#pricing-toggle').is(':checked');\r\n $('.user-pricing__package--yearly').toggle(checked)\r\n $('.user-pricing__package--monthly').toggle(!checked)\r\n }\r\n $('#pricing-toggle').change(updatePricingTableInterval);\r\n updatePricingTableInterval();\r\n\r\n $('.user-pricing__package input').change((e) => {\r\n $(e.target).parents('form').submit();\r\n });\r\n\r\n $('[href=\"#cancel-package\"]').on('click', e => {\r\n const content = $(`
\r\n Sind Sie sicher, dass Sie Ihr Abo wirklich kündigen wollen? Das Abo endet damit am ${$(e.currentTarget).attr('data-date')} und wird nicht automatisch verlängert.\r\n
\r\n \r\n \r\n
\r\n
`);\r\n const modal = new Modal().show(content, \"Abo wirklich kündigen?\");\r\n content.find('#yes-cancel-package').on('click', () => {\r\n modal.progress();\r\n $.post('/CancelPackage').then(result => {\r\n modal.progress(false);\r\n if (result.error) {\r\n modal.content(result.msg, \"Abo kündigen\");\r\n } else {\r\n modal.content(result.msg, \"Abo kündigen\");\r\n }\r\n })\r\n })\r\n content.find('#no-cancel-package').on('click', () => {\r\n modal.close();\r\n })\r\n return false;\r\n });\r\n\r\n $('#ressort-select > *').on('click', () => {\r\n $('#ressort-list')\r\n .toggleClass('head__ressort-list--show')\r\n .height($('#ressort-list').hasClass('head__ressort-list--show') ? $('#ressort-list')[0].scrollHeight : 0);\r\n })\r\n\r\n if ($('.ressort-highlights').length) {\r\n $('.ressort-highlights').css('--height', $('.ressort-highlights')[0].scrollHeight + 'px');\r\n }\r\n\r\n //trending date picker\r\n if ($('.dropdown.date-trending').length) {\r\n new DatePicker($('.dropdown.date-trending'), {\r\n onChange: value => {\r\n window.location = `/News/Trending/${value.replaceAll(\".\", \"-\")}`;\r\n }\r\n });\r\n }\r\n\r\n //trending hero\r\n if ($('.trending-hero').length) {\r\n const options = shuffleArray($('.trending-list')\r\n .map((idx, el) => $(el).find('li').slice(0, 3))\r\n .toArray()\r\n .reduce((agg, items) => [...agg, ...items], []));\r\n let currentIndex = 0;\r\n\r\n function scheduleTrendingHeroUpdate() {\r\n setTimeout(() => {\r\n $('.trending-hero__progress').css({ animation: \"trending-reset 0s 0s both 1\" });\r\n setTimeout(() => {\r\n $('.trending-hero__progress').css({ animation: \"\" });\r\n }, 1);\r\n\r\n currentIndex++;\r\n if (currentIndex >= options.length) {\r\n currentIndex = 0;\r\n }\r\n\r\n updateTrendingHero();\r\n scheduleTrendingHeroUpdate();\r\n }, 6100);\r\n }\r\n\r\n function updateTrendingHero() {\r\n const $item = $(options[currentIndex]);\r\n const keyword = $item.find('.trending-list__label').text().trim();\r\n const title = $item.parents('section').find('.trending-list__title').text();\r\n\r\n $('.trending-hero__title').html(`${title}
${keyword}`);\r\n $('#search_field').val(`#${keyword}`)\r\n }\r\n\r\n updateTrendingHero();\r\n scheduleTrendingHeroUpdate();\r\n }\r\n\r\n //trending news\r\n if ($('.trending-news').length) {\r\n fetch('https://presse.uncovr.com/Ajax.aspx/GetNewsData', {\r\n method: 'POST',\r\n headers: {\r\n 'Accept': 'application/json',\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n checkID: \"0f8fad5b-d9cb-469f-a165-70867728950e\",\r\n server: \"https://presse.uncovr.com/\",\r\n clientID: 25,\r\n groupID: 285,\r\n masterGroupID: 285,\r\n languageID: 23,\r\n menueID: 31132,\r\n treshold: 4,\r\n isLogged: false,\r\n newsId: -1,\r\n startIndex: 1,\r\n })\r\n }).then(d => d.json())\r\n .then(({ d }) => {\r\n for (let item of d.Items) {\r\n $('.trending-news').append(`
\r\n
${item.Image.replace(/]+>(.*)<\\/a>/g, \"$1\")}
\r\n
${item.Title.replace(/]+>(.*)<\\/a>/g, \"$1\")}
\r\n
${item.Text.replace(/]+>(.*)<\\/a>/g, \"$1\")}
\r\n \r\n
`);\r\n }\r\n });\r\n }\r\n\r\n\r\n});\r\n\r\n\r\n","export default class CookiePopup {\r\n constructor() {\r\n $('#cookie-ok').on('click', function () {\r\n var date = new Date();\r\n date.setFullYear(date.getFullYear() + 1);\r\n document.cookie = 'cookies_accepted=true; path=/; expires=' + date.toUTCString();\r\n $('#cookie-info').addClass('accepted')\r\n setTimeout(function () {\r\n window.location.reload();\r\n }, 400)\r\n return false;\r\n })\r\n }\r\n}","import Dropdown from './dropdown';\r\nimport AirDatepicker from \"air-datepicker\";\r\nimport localeDe from 'air-datepicker/locale/de';\r\n\r\nexport default class DatePicker extends Dropdown {\r\n constructor(elem, options) {\r\n super(elem);\r\n if (!this.elem || !this.elem.length) { return null }\r\n const { onChange } = options;\r\n const $target = this.elem.find('.datepicker-slot'); \r\n console.log('hooky', $target[0]);\r\n this.datepicker = new AirDatepicker($target[0], {\r\n locale: localeDe,\r\n buttons: {\r\n content: 'Heute',\r\n onClick: (dp) => {\r\n let date = new Date();\r\n dp.selectDate(date);\r\n dp.setViewDate(date);\r\n }\r\n },\r\n multipleDatesSeparator: ' - ',\r\n onSelect: ({ date, formattedDate }) => {\r\n const value = this.elem.attr('data-value');\r\n\r\n if (formattedDate === '') {\r\n var p = value.split('.');\r\n this.datepicker.selectDate(new Date(p[2], p[1] - 1, p[0]));\r\n return;\r\n }\r\n\r\n if (value !== formattedDate) {\r\n this.elem.attr('data-value', formattedDate);\r\n onChange && onChange(formattedDate);\r\n }\r\n this.refresh();\r\n }\r\n });\r\n this.elem.data('formatValue', function (v) {\r\n return v.replace(/\\d{4}/, '');\r\n });\r\n const p = (this.elem.attr('data-value') || '').split('.');\r\n if (p && p.length >= 3) { this.datepicker.selectDate(new Date(p[2], p[1] - 1, p[0])); }\r\n }\r\n\r\n get value() {\r\n const value = this.elem.attr('data-value');\r\n var def = this.elem.attr('data-default');\r\n return value === def ? '' : value.replace(/\\./g, '-');\r\n }\r\n\r\n set value(val) {\r\n if (val) {\r\n const p = val.split('-');\r\n this.elem.attr('data-value', val.replace(/-/g, '.'));\r\n this.datepicker.selectDate(new Date(p[2], p[1] - 1, p[0]));\r\n } else {\r\n this.elem.attr('data-value', this.elem.attr('data-default'));\r\n this.datepicker.selectDate(new Date());\r\n }\r\n }\r\n}","/**\r\n* Dropdown helper functions\r\n*/\r\n\r\nexport default class Dropdown {\r\n constructor(elem) {\r\n if (elem._dropdown) return elem._dropdown;\r\n this.elem = $(elem);\r\n elem._dropdown = this;\r\n }\r\n\r\n refresh() {\r\n const { elem } = this;\r\n const value = elem.find(':checked').val() || elem.attr('data-value');\r\n const label = elem.find('.label').first();\r\n const format = elem.data('formatValue') || (v => v);\r\n if (value === elem.attr('data-default')) {\r\n elem.removeClass('selected');\r\n label.html(label.attr('data-default'));\r\n } else {\r\n elem.addClass('selected').find('.label').first().html(format(value));\r\n }\r\n }\r\n}","import Masonry from 'masonry-layout'\r\n\r\nimport { initNewsItems } from './list-items/news'\r\nimport { initMediaItems } from './list-items/media'\r\nimport RegionPicker from './region-picker'\r\nimport { loadImage } from './image'\r\nimport Dropdown from './dropdown'\r\nimport DatePicker from './datepicker'\r\nimport Modal from './modal'\r\n\r\nexport const CUSTOM_BRANCH = 'Folge-ich';\r\n\r\nconst getSearch = () => {\r\n const ressort = $('#search_field').attr('data-branch');\r\n return `${$('#search_field').val()} ${ressort ? 'uncovr' + ressort : ''}`.replace(/\\//g, '').trim();\r\n}\r\n\r\nfunction filterRessort(s) {\r\n return s.replace(/uncovr[\\w]+/g, '').trim();\r\n}\r\n\r\nexport default class FilteredList {\r\n constructor() {\r\n this.currentState = {\r\n filter: {\r\n search: getSearch()\r\n }\r\n }\r\n\r\n const doSearch = value => {\r\n if (!this.asyncList.length) document.location = $('body').attr('data-baseurl') + '/' + encodeURIComponent(value) + '/';\r\n else this.refreshFilter();\r\n }\r\n\r\n $('#search_field').on('keydown', function (e) {\r\n if (e.which === 13) {\r\n doSearch(getSearch());\r\n return false;\r\n }\r\n });\r\n\r\n $('#search_field + button').on('click', function (e) {\r\n doSearch(getSearch());\r\n return false;\r\n });\r\n\r\n if (this.initList()) {\r\n this.initFilter();\r\n this.initPagination();\r\n }\r\n this.initLayout();\r\n }\r\n\r\n initFilter() {\r\n new RegionPicker($('#region-search'), () => this.refreshFilter());\r\n\r\n $('.save-search').on('click', (ev) => {\r\n if ($(ev.currentTarget).attr('href')) return true;\r\n if ($(ev.currentTarget).hasClass('checked')) return false;\r\n\r\n const search = encodeURIComponent(getSearch() || '');\r\n const branch = $(`input[name=\"filter_branches\"]`).val();\r\n const region = $('#region-search').attr('data-value') || '';\r\n const $this = $(ev.currentTarget);\r\n $.post('/User/Search/Save/' + (region ? ('region-' + region + '/') : '') + (search ? (search + '/') : '') + branch ).then(result => {\r\n if (!result.error) {\r\n if ($(ev.currentTarget).attr(\"data-reference\")) {\r\n $.post('/User/Search/ToggleReference/' + result.id).then(result => {\r\n $this.addClass('checked');\r\n $this.find('.label').html($this.attr('data-label-saved'));\r\n });\r\n } else {\r\n $this.addClass('checked');\r\n $this.find('.label').html($this.attr('data-label-saved'));\r\n }\r\n } else {\r\n new Modal().show(result.msg);\r\n }\r\n });\r\n return false;\r\n });\r\n\r\n this.datePicker = new DatePicker($('.dropdown.date'), { onChange: () => this.refreshFilter() });\r\n this.dropdowns = [];\r\n $('.dropdown').each((i, e) => this.dropdowns.push(new Dropdown(e)));\r\n }\r\n\r\n initPagination() {\r\n $('.action-prev, .action-next').on('click', ({ currentTarget }) => {\r\n const max = this.asyncList.attr('data-append-max');\r\n if (!max || this.asyncList.children().length < max) {\r\n const button = $(currentTarget);\r\n if (button.hasClass('loading')) { return false }\r\n button.addClass('loading');\r\n this.goTo(button.attr('href'), Object.assign({ filter: {} }, window.history.state)).then(() => {\r\n button.removeClass('loading');\r\n this.maybeLoadMore();\r\n });\r\n return false;\r\n }\r\n });\r\n\r\n if ($('.trigger-on-show').length > 0) {\r\n $(window).on('scroll', () => this.maybeLoadMore());\r\n this.maybeLoadMore();\r\n }\r\n\r\n this.asyncList.find('[data-prev]').removeAttr('data-prev');\r\n this.asyncList.find('[data-next]').removeAttr('data-next');\r\n }\r\n\r\n initLayout() {\r\n $('[data-layout=\"masonry\"]').each(function () {\r\n this.masonry = new Masonry(this, {\r\n percentPosition: true,\r\n columnWidth: '.grid-sizer',\r\n gutter: '.gutter-sizer',\r\n itemSelector: '.image-item',\r\n transitionDuration: 0\r\n })\r\n });\r\n\r\n $('.switch-list').on('click', ({ currentTarget }) => {\r\n const $target = $(currentTarget);\r\n const mode = $target.attr('data-mode');\r\n let modeClass = mode;\r\n if (mode === '' && (!this.currentState.filter.search || this.currentState.filter.search.startsWith(\"uncovr\"))) {\r\n modeClass = 'collapsed';\r\n }\r\n\r\n $('.layout-list').removeClass('collapsed open open-with-image').addClass(modeClass);\r\n $('.switch-list').removeClass('active');\r\n $target.addClass('active');\r\n document.cookie = `listMode=${mode}; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT`;\r\n });\r\n }\r\n\r\n initList() {\r\n initNewsItems();\r\n initMediaItems();\r\n\r\n this.asyncList = $('.asynclist');\r\n\r\n if (this.asyncList.length === 1) {\r\n const branch = $(`input[name=\"filter_branches\"]`).val();\r\n const search = encodeURIComponent(getSearch());\r\n const region = $('#region-search').attr('data-value');\r\n const regionLabel = $('#region-search').attr('data-label');\r\n\r\n history.replaceState({\r\n filter: {\r\n search,\r\n branch,\r\n region,\r\n regionLabel,\r\n },\r\n url: document.location.pathname\r\n }, document.title, document.location.toString());\r\n\r\n const $new = $('#new-messages');\r\n if ($new.length > 0) {\r\n let now = $new.attr('data-now');\r\n setInterval(() => {\r\n const { search, branch, region } = this.currentState.filter;\r\n $.post($(document.body).attr('data-baseurl') + '/Update/' + now + '/' + (region ? ('region-' + region + '/') : '') + (search ? (search + '/') : '') + (branch ? (branch + '/') : '')).then(result => {\r\n if (result.count > 0) {\r\n $new.attr('data-now', result.now);\r\n now = result.now;\r\n const items = $(result.html);\r\n const count = result.count;\r\n const $list = $('#item-list');\r\n items.addClass('fly-in').each(function (index) {\r\n $(this).css('animation-delay', (.5 + (count - index - 1) * .1) + 's');\r\n });\r\n this.initNewContent(items, false);\r\n const h = $list.outerHeight();\r\n $list.prepend(items);\r\n const diff = h - $list.outerHeight();\r\n $list.css({\r\n 'margin-top': diff + 'px',\r\n 'transform': 'translateY(0)',\r\n 'transition': 'transform .8s ease-in-out',\r\n });\r\n setTimeout(() => {\r\n $list.css({\r\n 'transform': 'translateY(' + (-diff) + 'px)',\r\n });\r\n setTimeout(() => {\r\n $list.css({\r\n 'margin-top': '',\r\n 'transform': '',\r\n 'transition': '',\r\n });\r\n }, 850);\r\n }, 1);\r\n }\r\n });\r\n }, 60000)\r\n }\r\n\r\n /**\r\n * Listen for navigation via history\r\n */\r\n $(window).on('popstate', event => {\r\n const state = event.originalEvent.state;\r\n if (state && state.filter) {\r\n const { filter: { search, branch, region, regionLabel = '', date } = {} } = state;\r\n $('#search_field').val(filterRessort(decodeURIComponent(search).replace(/\\//g, '')) || '');\r\n $('#region-search').attr('data-value', region);\r\n $('#region-search').attr('data-label', regionLabel);\r\n $('#region-search input').val(regionLabel);\r\n this.datePicker.value = date;\r\n this.refreshToolbar(branch, search, region);\r\n } else {\r\n $('#search_field').val('');\r\n $('#region-search').attr('data-value', '');\r\n $('#region-search').attr('data-label', '');\r\n $('#region-search input').val('');\r\n this.datePicker.value = null;\r\n this.refreshToolbar();\r\n }\r\n if (state && state.page) {\r\n $('body').attr('data-page', state.page);\r\n } else {\r\n $('body').attr('data-page', 1);\r\n }\r\n\r\n var url = $('body').attr('data-baseurl');\r\n if (state) {\r\n url = state.url;\r\n this.currentState = state;\r\n }\r\n this.loadUrl(url, true);\r\n this.updateMainLinks(url);\r\n\r\n this.dropdowns.forEach(dd => dd.refresh());\r\n });\r\n\r\n\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Maybe load more content if navigation is in viewport\r\n */\r\n maybeLoadMore() {\r\n const windowTop = $(window).scrollTop();\r\n const windowBottom = windowTop + window.innerHeight;\r\n $('.trigger-on-show').each(function () {\r\n const $this = $(this);\r\n if ($this.hasClass('triggered')) return;\r\n var offset = $this.offset();\r\n if (offset.top > windowTop && offset.top - 200 < windowBottom || offset.bottom > windowTop && offset.bottom < windowBottom) {\r\n $this.addClass('triggered').triggerHandler('click');\r\n }\r\n });\r\n }\r\n\r\n\r\n initNewContent(elems, updatePagination = true) {\r\n if (this.asyncList.attr('data-layout') === 'masonry') {\r\n this.asyncList[0].masonry.appended(elems);\r\n this.asyncList[0].masonry.layout();\r\n }\r\n loadImage(elems.find('img'));\r\n initMediaItems(elems);\r\n initNewsItems(elems);\r\n if (updatePagination) {\r\n const prevUrl = elems.filter('[data-prev]').attr('data-prev');\r\n const nextUrl = elems.filter('[data-next]').attr('data-next');\r\n elems.filter('[data-prev]').removeAttr('data-prev');\r\n elems.filter('[data-next]').removeAttr('data-next');\r\n if (prevUrl && prevUrl !== '') {\r\n $('.action-prev').attr('href', prevUrl).show();\r\n } else {\r\n $('.action-prev').hide();\r\n }\r\n if (nextUrl && nextUrl !== '') {\r\n $('.action-next').attr('href', nextUrl).show();\r\n } else {\r\n $('.action-next').hide();\r\n }\r\n }\r\n $('.triggered').removeClass('triggered');\r\n $('main').removeClass('loading');\r\n }\r\n\r\n\r\n\r\n /**\r\n * Fetch settings from filter and refresh content\r\n */\r\n refreshFilter() {\r\n const branch = $(`input[name=\"filter_branches\"]`).val();\r\n const date = this.datePicker.value;\r\n const search = encodeURIComponent(getSearch());\r\n const region = $('#region-search').attr('data-value');\r\n const regionLabel = $('#region-search').attr('data-label');\r\n const baseUrl = $('body').attr('data-baseurl');\r\n\r\n this.refreshToolbar(branch, search, region);\r\n\r\n this.dropdowns.forEach(dd => dd.refresh());\r\n\r\n const parts = [date, region ? ('region-' + region) : '', search, branch].filter(p => p && p !== '');\r\n let url = baseUrl + '/' + parts.join('/') + '/';\r\n url = url.replace('Alle/', '');\r\n\r\n this.updateMainLinks(url);\r\n\r\n this.goTo(url, {\r\n filter: {\r\n search,\r\n branch,\r\n region,\r\n regionLabel,\r\n date,\r\n }\r\n }, true).then(() => setTimeout(() => this.maybeLoadMore(), 400));\r\n }\r\n\r\n refreshToolbar(branch, search = '', region = '') {\r\n branch = branch || 'Alle';\r\n\r\n $('.ressort-highlights').toggleClass('ressort-highlights--hide', !!region);\r\n\r\n $('.tools .custom').toggleClass('hidden', branch !== CUSTOM_BRANCH);\r\n if (branch === CUSTOM_BRANCH || branch === 'Alle' && !search && !region || [\r\n \"EANS-Adhoc\",\r\n \"Pressekonferenz\",\r\n \"Veranstaltung\",\r\n \"Auszeichnung\",\r\n \"Studie\",\r\n \"Umfrage\",\r\n \"Ranking\"\r\n ].indexOf(decodeURIComponent(search).slice(1)) > -1) {\r\n $('.save-search').addClass('hidden');\r\n } else {\r\n $('.save-search').removeClass('hidden');\r\n $.post('/User/Search/Has/' + (region ? ('region-' + region + '/') : '') + (search ? (search + '/') : '') + branch).then(result => {\r\n $('.save-search').toggleClass('checked', !!result && result.has).find('.label').html($('.save-search').attr(!!result && result.has ? 'data-label-saved' : 'data-label'));\r\n }).fail(() => $('.save-search').toggleClass('checked', false).find('.label').html($('.save-search').attr('data-label')));\r\n }\r\n }\r\n\r\n /**\r\n * Update the links in the section dropdown according to the filter in the given url\r\n */\r\n updateMainLinks(url) {\r\n url = url.replace(/^\\/otxFrontend/, '');\r\n url = url.replace(/\\/\\d{2}-\\d{2}-\\d{4}/, '');\r\n url = url.replace(/(Newsroom|Event-von)\\/\\d+/, '$1');\r\n url = url.split('/').slice(2).join('/');\r\n $('#main-links a').each(function () {\r\n $(this).attr('href', ($(this).attr('data-base') + '/' + url).replace(/\\/\\d+\\/?$/, '/'));\r\n });\r\n }\r\n\r\n /**\r\n * go to the given url & state\r\n */\r\n goTo(url, state, refresh) {\r\n return this.loadUrl(url, refresh).then(result => {\r\n this.currentState = state;\r\n if (state && refresh || !this.asyncList.attr('data-mode')) {\r\n state.url = url;\r\n $(\"html, body\").animate({ scrollTop: 0 }, \"slow\");\r\n history.pushState(state, \"News | uncovr\", url);\r\n }\r\n\r\n if (state && window.gtag) {\r\n window.gtag('config', 'UA-109728092-1', { 'page_path': url });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * load the given url and replace the asynclist with the new content\r\n */\r\n loadUrl(url, refresh) {\r\n $('main').addClass('loading');\r\n return $.get(url).then(result => {\r\n if (this.asyncList.attr('data-mode') === 'append' && !refresh) {\r\n const elems = $(result).appendTo(this.asyncList).fadeIn();\r\n this.initNewContent(elems);\r\n } else {\r\n this.asyncList.fadeOut(() => {\r\n this.asyncList.find(':not(.persistent)').remove();\r\n this.asyncList.append(result).fadeIn();\r\n this.initNewContent(this.asyncList.children());\r\n\r\n const mode = $('.switch-list.active').attr('data-mode');\r\n let modeClass = mode;\r\n if (mode === '' && !this.currentState.filter.search) {\r\n modeClass = 'collapsed';\r\n }\r\n $('.layout-list').removeClass('collapsed open').addClass(modeClass);\r\n });\r\n }\r\n }).fail(() => $('main').removeClass('loading'));\r\n }\r\n}\r\n","export function loadImage($img, cb) {\r\n const relayout = img => {\r\n const m = img.parents('[data-layout=\"masonry\"]')[0];\r\n m && m.masonry.layout();\r\n }\r\n\r\n $img.filter(function () {\r\n var done = $(this).prop('complete');\r\n if (done) {\r\n var _this = $(this);\r\n _this.addClass('loaded');\r\n setTimeout(function () { relayout(_this) }, 0);\r\n if (cb) setTimeout(cb, 0);\r\n }\r\n return !done;\r\n }).on('load', function () {\r\n relayout($(this).addClass('loaded'));\r\n if (cb) cb();\r\n });\r\n}","import { loadImage } from '../image'\r\n\r\nexport function initMediaItems(parent) {\r\n parent = parent || $(document.body);\r\n parent.find('.image-item').addBack('.image-item').find('a').on('click', function () {\r\n var target = $(this).parents('li');\r\n\r\n if (target.hasClass('open')) {\r\n target.removeClass('open');\r\n target.siblings('.news-item').css('height', 0).on('transitionend', function () {\r\n if ($(this).height() > 0) { return; }\r\n $(this).remove();\r\n });\r\n return false;\r\n }\r\n\r\n target.siblings('.open').removeClass('open');\r\n target.addClass('open');\r\n var y = target.position().top;\r\n\t /*target.nextAll().each(function () {\r\n\t if ($(this).offset().top > y) {\r\n\t return false;\r\n\t }\r\n\t target = $(this);\r\n\t });*/\r\n target.siblings('.news-item').css('height', 0).on('transitionend', function () {\r\n if ($(this).height() > 0) { return; }\r\n $(this).remove();\r\n });\r\n\r\n var id = $(this).attr('data-id');\r\n target.addClass('loading');\r\n $.get('News/Single/' + id).then(function (result) {\r\n var item = $(result).addClass('dark popout').insertAfter(target).css({\r\n position: 'absolute',\r\n top: y + target.height(),\r\n left: 0,\r\n zIndex: 2,\r\n display: 'block',\r\n height: 0\r\n });\r\n\r\n target.removeClass('loading');\r\n\r\n loadImage(item.find('img'));\r\n\r\n setTimeout(function () {\r\n item.css('height', $('.content', item)[0].offsetHeight + 'px');\r\n }, 0);\r\n\r\n if (window.gtag) { window.gtag('event', 'single_popout', { 'id': id }); }\r\n });\r\n return false;\r\n });\r\n}","import Masonry from 'masonry-layout'\r\n\r\nimport { loadImage } from '../image'\r\nimport Modal from '../modal'\r\n\r\nexport function initNewsItems(parent) {\r\n parent = parent || $(document.body);\r\n parent.find('.show-images').on('click', function () {\r\n var context = $(this).parents('.news-item');\r\n var images = context.find('.images');\r\n if (images.length || context.data('loading')) {\r\n if (context.data('loading')) {\r\n context.data('loading').abort();\r\n context.data('loading', null);\r\n }\r\n images.css('height', 0).on('transitionend', function () {\r\n if ($(this).height() > 0) { return; }\r\n $(this).remove();\r\n });\r\n } else {\r\n var id = context.attr('data-id');\r\n var loading = $.get('/Media/ForNews/' + id);\r\n images = $('
');\r\n context.append(images);\r\n const lt = setTimeout(() => {\r\n images.addClass('loading');\r\n }, 16);\r\n loading.then(function (result) {\r\n images.append($(result).html());\r\n clearTimeout(lt);\r\n images.removeClass('loading');\r\n \r\n var elem = $('[data-layout=\"masonry\"]', images)[0];\r\n var mason = new Masonry(elem, {\r\n percentPosition: true,\r\n columnWidth: '.grid-sizer',\r\n gutter: '.gutter-sizer',\r\n itemSelector: '.image-item'\r\n });\r\n elem.masonry = mason;\r\n loadImage(images.find('img'), function () {\r\n images.css('height', (elem.offsetHeight + 18) + 'px');\r\n });\r\n if (window.gtag) { window.gtag('event', 'show_images', { 'id': id }); }\r\n \r\n });\r\n context.data('loading', loading);\r\n }\r\n return false;\r\n });\r\n\r\n parent.find('a.subscribe').on('click touchstart', function () {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('disabled') || $this.attr('href').indexOf('#') < 0) return true;\r\n\r\n $this.addClass('clicked');\r\n\r\n var nid = $this.parents('[data-newsroom-id]').attr('data-newsroom-id');\r\n if ($this.hasClass('subscribed')) {\r\n //remove subscription\r\n $('[data-newsroom-id=\"' + nid + '\"] .subscribe')\r\n .removeClass('subscribed')\r\n .attr('title', 'Unternehemen folgen');\r\n $.post('/User/Unsubscribe/' + nid).then(function (result) {\r\n console.log(result);\r\n });\r\n } else {\r\n //subscribe news\r\n $('[data-newsroom-id=\"' + nid + '\"] .subscribe')\r\n .addClass('subscribed')\r\n .attr('title', 'Unternehmen entfolgen');\r\n $.post('/User/Subscribe/' + nid).then(function (result) {\r\n if (result.error) {\r\n new Modal().show(result.msg);\r\n $('[data-newsroom-id=\"' + nid + '\"] .subscribe')\r\n .removeClass('subscribed')\r\n .attr('title', 'Unternehmen folgen');\r\n }\r\n });\r\n }\r\n return false;\r\n });\r\n\r\n parent.find('a.subscribe').on('mouseleave', function () {\r\n $(this).removeClass('clicked')\r\n });\r\n\r\n parent.find('a.bookmark').on('click touchstart', function () {\r\n var $this = $(this);\r\n\r\n if ($this.hasClass('disabled') || $this.attr('href').indexOf('#') < 0) return true;\r\n\r\n $this.addClass('clicked');\r\n\r\n var id = $this.parents('[data-id]').attr('data-id');\r\n if ($this.hasClass('bookmarked')) {\r\n //unbookmark news\r\n $this.removeClass('bookmarked').attr('title', 'Merken');\r\n $.post('/User/Unbookmark/' + id).then(function (result) {\r\n console.log(result);\r\n });\r\n } else {\r\n //bookmark news\r\n $this.addClass('bookmarked').attr('title', 'Markierung entfernen');\r\n $.post('/User/Bookmark/' + id).then(function (result) {\r\n console.log(result);\r\n });\r\n }\r\n return false;\r\n });\r\n\r\n parent.find('a.bookmark').on('mouseleave', function () {\r\n $(this).removeClass('clicked')\r\n });\r\n\r\n parent.find('a.overlink').on('click', e => {\r\n const $e = $(e.currentTarget);\r\n\r\n if ($e.parents('.collapsed').length && !$e.parents('.news-item.open').length) {\r\n $e.parents('.news-item').addClass('open').siblings('.open').removeClass('open');\r\n return false;\r\n }\r\n });\r\n}","export default class Modal {\r\n constructor(closeCallback) {\r\n this.el = $(`
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
`);\r\n this.contentBox = this.el.find('.modal-content');\r\n this.contentWrapper = this.el.find('.modal-content__wrapper');\r\n this.closeButton = this.el.find('.action-close');\r\n this.progressOverlay = this.el.find('.modal-progress');\r\n\r\n this.el.on('click', () => this.close());\r\n this.closeButton.on('click', () => this.close());\r\n this.closeCallback = closeCallback;\r\n this.contentBox.on('click', function (e) {\r\n e.stopPropagation();\r\n })\r\n }\r\n\r\n show(content, title) {\r\n this.content(content, title);\r\n\r\n this.el.hide().appendTo(document.body).fadeIn();\r\n return this;\r\n /*$('html, body').css('overflow', 'hidden');*/\r\n }\r\n\r\n open(content, title) { this.show(content, title) }\r\n\r\n content(content, title) {\r\n this.contentWrapper\r\n .html('')\r\n .append(title ? '

' + title + '

' : '')\r\n .append(content);\r\n }\r\n\r\n close() {\r\n this.el.fadeOut(() => {\r\n if (this.closeCallback) {\r\n this.closeCallback();\r\n }\r\n this.el.remove();\r\n /*$('html, body').css('overflow', '');*/\r\n });\r\n }\r\n\r\n hide() { this.close() }\r\n\r\n progress(p = true) {\r\n this.progressOverlay.toggleClass('modal-progress--show', p);\r\n }\r\n} ","export function findPasswordToggle() {\r\n $('.toggle-show-password').each((idx, el) => {\r\n toggleShowPassword(el);\r\n })\r\n}\r\n\r\nexport function toggleShowPassword(elem) {\r\n const $elem = $(elem);\r\n const $wrapper = $('
');\r\n $wrapper.insertBefore($elem);\r\n $elem.appendTo($wrapper);\r\n const $toggle = $('
').appendTo($wrapper);\r\n $toggle.on('click', ev => {\r\n ev.stopPropagation();\r\n ev.preventDefault();\r\n\r\n $elem.attr('type', $elem.attr('type') === 'text' ? 'password' : 'text');\r\n\r\n return false;\r\n })\r\n}","export default class RegionPicker {\r\n\r\n constructor(elem, onChange) {\r\n const $elem = this.$elem = $(elem);\r\n const $input = this.$input = $elem.find('input');\r\n\r\n $input.on('change keydown keyup', e => {\r\n if (e.which === 40) { //down\r\n if (e.type !== 'keydown') return;\r\n this.highlightRegionHint((this.highlightedRegionHint >= $elem.find('.options li').length - 1 ? -1 : this.highlightedRegionHint) + 1);\r\n } else if (e.which === 38) { //up\r\n if (e.type !== 'keydown') return;\r\n this.highlightRegionHint((this.highlightedRegionHint <= 0 ? $elem.find('.options li').length : this.highlightedRegionHint) - 1);\r\n } else if (e.which === 27) { //esc\r\n if (e.type !== 'keydown') return;\r\n $input.val($elem.attr('data-label')).blur();\r\n } else if (e.which === 13) { //enter\r\n if (e.type !== 'keydown') return;\r\n const options = $elem.find('.options li');\r\n if (options.length) {\r\n const item = $elem.find('.options li').eq(this.highlightedRegionHint > -1 ? this.highlightedRegionHint : 0);\r\n $input.blur();\r\n this.selectRegion(item.attr('data-value'), item.html());\r\n }\r\n\r\n } else {\r\n this.loadRegionHints($input.val());\r\n }\r\n }).on('blur keyup', () => {\r\n if (!$input.val() && $elem.attr('data-value')) {\r\n this.selectRegion('', '');\r\n }\r\n });\r\n\r\n this.highlightedRegionHint = -1;\r\n this.onChange = onChange;\r\n }\r\n\r\n loadRegionHints(search) {\r\n const { $elem } = this;\r\n\r\n clearTimeout(this.regionTimeout);\r\n if (search.length < 2) {\r\n $elem.removeClass('progress');\r\n $elem.find('.options').html('')\r\n } else {\r\n $elem.addClass('progress');\r\n this.regionTimeout = setTimeout(() => this._loadRegionHints(search), 200);\r\n }\r\n }\r\n\r\n _loadRegionHints(search) {\r\n const { $elem } = this;\r\n\r\n $elem.addClass('progress');\r\n this.highlightRegionHint(-1);\r\n $.get('/Region/' + search).then(result => {\r\n const options = result.map(o => `
  • ${o.label}
  • `).join('');\r\n $elem.find('.options').html(options);\r\n $elem.find('.options li').on('click', e => {\r\n const $el = $(e.currentTarget);\r\n this.selectRegion($el.attr('data-value'), $el.html());\r\n })\r\n $elem.removeClass('progress');\r\n })\r\n }\r\n\r\n selectRegion(id, label) {\r\n const { $elem, $input } = this;\r\n label = label.replace(/.*?<\\/span>/g, '');\r\n this.highlightRegionHint(-1);\r\n $elem.attr('data-value', id);\r\n $elem.attr('data-label', label);\r\n clearTimeout(this.regionTimeout);\r\n $elem.removeClass('progress');\r\n $elem.find('.options').html('');\r\n $input.val(label);\r\n this.onChange && this.onChange();\r\n }\r\n\r\n highlightRegionHint(index) {\r\n const { $elem } = this;\r\n this.highlightedRegionHint = index;\r\n $elem.find('.options li.highlight').removeClass('highlight');\r\n $elem.find('.options li').eq(index).addClass('highlight');\r\n }\r\n}","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.AirDatepicker=t():e.AirDatepicker=t()}(this,(function(){return function(){\"use strict\";var e={d:function(t,i){for(var s in i)e.o(i,s)&&!e.o(t,s)&&Object.defineProperty(t,s,{enumerable:!0,get:i[s]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}},t={};e.d(t,{default:function(){return K}});var i={days:\"days\",months:\"months\",years:\"years\",day:\"day\",month:\"month\",year:\"year\",eventChangeViewDate:\"changeViewDate\",eventChangeCurrentView:\"changeCurrentView\",eventChangeFocusDate:\"changeFocusDate\",eventChangeSelectedDate:\"changeSelectedDate\",eventChangeTime:\"changeTime\",eventChangeLastSelectedDate:\"changeLastSelectedDate\",actionSelectDate:\"selectDate\",actionUnselectDate:\"unselectDate\",cssClassWeekend:\"-weekend-\"},s={classes:\"\",inline:!1,locale:{days:[\"Воскресенье\",\"Понедельник\",\"Вторник\",\"Среда\",\"Четверг\",\"Пятница\",\"Суббота\"],daysShort:[\"Вос\",\"Пон\",\"Вто\",\"Сре\",\"Чет\",\"Пят\",\"Суб\"],daysMin:[\"Вс\",\"Пн\",\"Вт\",\"Ср\",\"Чт\",\"Пт\",\"Сб\"],months:[\"Январь\",\"Февраль\",\"Март\",\"Апрель\",\"Май\",\"Июнь\",\"Июль\",\"Август\",\"Сентябрь\",\"Октябрь\",\"Ноябрь\",\"Декабрь\"],monthsShort:[\"Янв\",\"Фев\",\"Мар\",\"Апр\",\"Май\",\"Июн\",\"Июл\",\"Авг\",\"Сен\",\"Окт\",\"Ноя\",\"Дек\"],today:\"Сегодня\",clear:\"Очистить\",dateFormat:\"dd.MM.yyyy\",timeFormat:\"HH:mm\",firstDay:1},startDate:new Date,firstDay:\"\",weekends:[6,0],dateFormat:\"\",altField:\"\",altFieldDateFormat:\"T\",toggleSelected:!0,keyboardNav:!0,selectedDates:!1,container:\"\",isMobile:!1,visible:!1,position:\"bottom left\",offset:12,view:i.days,minView:i.days,showOtherMonths:!0,selectOtherMonths:!0,moveToOtherMonthsOnSelect:!0,showOtherYears:!0,selectOtherYears:!0,moveToOtherYearsOnSelect:!0,minDate:\"\",maxDate:\"\",disableNavWhenOutOfRange:!0,multipleDates:!1,multipleDatesSeparator:\", \",range:!1,dynamicRange:!0,buttons:!1,monthsField:\"monthsShort\",showEvent:\"focus\",autoClose:!1,prevHtml:'',nextHtml:'',navTitles:{days:\"MMMM, yyyy\",months:\"yyyy\",years:\"yyyy1 - yyyy2\"},timepicker:!1,onlyTimepicker:!1,dateTimeSeparator:\" \",timeFormat:\"\",minHours:0,maxHours:24,minMinutes:0,maxMinutes:59,hoursStep:1,minutesStep:1,onSelect:!1,onChangeViewDate:!1,onChangeView:!1,onRenderCell:!1,onShow:!1,onHide:!1,onClickDayName:!1};function a(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document;return\"string\"==typeof e?t.querySelector(e):e}function n(){let{tagName:e=\"div\",className:t=\"\",innerHtml:i=\"\",id:s=\"\",attrs:a={}}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=document.createElement(e);return t&&n.classList.add(...t.split(\" \")),s&&(n.id=s),i&&(n.innerHTML=i),a&&r(n,a),n}function r(e,t){for(let[i,s]of Object.entries(t))void 0!==s&&e.setAttribute(i,s);return e}function h(e){return new Date(e.getFullYear(),e.getMonth()+1,0).getDate()}function o(e){let t=e.getHours(),{hours:i,dayPeriod:s}=l(t);return{year:e.getFullYear(),month:e.getMonth(),fullMonth:e.getMonth()+1<10?\"0\"+(e.getMonth()+1):e.getMonth()+1,date:e.getDate(),fullDate:e.getDate()<10?\"0\"+e.getDate():e.getDate(),day:e.getDay(),hours:t,fullHours:d(t),hours12:i,dayPeriod:s,fullHours12:d(i),minutes:e.getMinutes(),fullMinutes:e.getMinutes()<10?\"0\"+e.getMinutes():e.getMinutes()}}function l(e){return{dayPeriod:e>11?\"pm\":\"am\",hours:e%12==0?12:e%12}}function d(e){return e<10?\"0\"+e:e}function c(e){let t=10*Math.floor(e.getFullYear()/10);return[t,t+9]}function u(){let e=[];for(var t=arguments.length,i=new Array(t),s=0;s{if(\"object\"==typeof t)for(let i in t)t[i]&&e.push(i);else t&&e.push(t)})),e.join(\" \")}function p(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.days;if(!e||!t)return!1;let a=o(e),n=o(t),r={[i.days]:a.date===n.date&&a.month===n.month&&a.year===n.year,[i.months]:a.month===n.month&&a.year===n.year,[i.years]:a.year===n.year};return r[s]}function m(e,t,i){let s=g(e,!1).getTime(),a=g(t,!1).getTime();return i?s>=a:s>a}function v(e,t){return!m(e,t,!0)}function g(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=new Date(e.getTime());return\"boolean\"!=typeof t||t||D(i),i}function D(e){return e.setHours(0,0,0,0),e}function y(e,t,i){e.length?e.forEach((e=>{e.addEventListener(t,i)})):e.addEventListener(t,i)}function f(e,t){return!(!e||e===document||e instanceof DocumentFragment)&&(e.matches(t)?e:f(e.parentNode,t))}function w(e,t,i){return e>i?i:e1?t-1:0),s=1;se)).forEach((t=>{for(let[i,s]of Object.entries(t))if(void 0!==s&&\"[object Object]\"===s.toString()){let t=void 0!==e[i]?e[i].toString():void 0,a=s.toString(),n=Array.isArray(s)?[]:{};e[i]=e[i]?t!==a?n:e[i]:n,b(e[i],s)}else e[i]=s})),e}function k(e){let t=e;return e instanceof Date||(t=new Date(e)),isNaN(t.getTime())&&(console.log(`Unable to convert value \"${e}\" to Date object`),t=!1),t}function C(e){let t=\"\\\\s|\\\\.|-|/|\\\\\\\\|,|\\\\$|\\\\!|\\\\?|:|;\";return new RegExp(\"(^|>|\"+t+\")(\"+e+\")($|<|\"+t+\")\",\"g\")}function $(e,t,i){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t);if(\"object\"!=typeof s)return s;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class _{constructor(){let{type:e,date:t,dp:i,opts:s,body:a}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};$(this,\"focus\",(()=>{this.$cell.classList.add(\"-focus-\"),this.focused=!0})),$(this,\"removeFocus\",(()=>{this.$cell.classList.remove(\"-focus-\"),this.focused=!1})),$(this,\"select\",(()=>{this.$cell.classList.add(\"-selected-\"),this.selected=!0})),$(this,\"removeSelect\",(()=>{this.$cell.classList.remove(\"-selected-\",\"-range-from-\",\"-range-to-\"),this.selected=!1})),$(this,\"onChangeSelectedDate\",(()=>{this.isDisabled||(this._handleSelectedStatus(),this.opts.range&&this._handleRangeStatus())})),$(this,\"onChangeFocusDate\",(e=>{if(!e)return void(this.focused&&this.removeFocus());let t=p(e,this.date,this.type);t?this.focus():!t&&this.focused&&this.removeFocus(),this.opts.range&&this._handleRangeStatus()})),$(this,\"render\",(()=>(this.$cell.innerHTML=this._getHtml(),this.$cell.adpCell=this,this.$cell))),this.type=e,this.singleType=this.type.slice(0,-1),this.date=t,this.dp=i,this.opts=s,this.body=a,this.customData=!1,this.init()}init(){let{range:e,onRenderCell:t}=this.opts;t&&(this.customData=t({date:this.date,cellType:this.singleType,datepicker:this.dp})),this._createElement(),this._bindDatepickerEvents(),this._handleInitialFocusStatus(),this.dp.hasSelectedDates&&(this._handleSelectedStatus(),e&&this._handleRangeStatus())}_bindDatepickerEvents(){this.dp.on(i.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.on(i.eventChangeFocusDate,this.onChangeFocusDate)}unbindDatepickerEvents(){this.dp.off(i.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.off(i.eventChangeFocusDate,this.onChangeFocusDate)}_createElement(){var e;let{year:t,month:i,date:s}=o(this.date),a=(null===(e=this.customData)||void 0===e?void 0:e.attrs)||{};this.$cell=n({className:this._getClassName(),attrs:{\"data-year\":t,\"data-month\":i,\"data-date\":s,...a}})}_getClassName(){var e,t;let s=new Date,{selectOtherMonths:a,selectOtherYears:n}=this.opts,{minDate:r,maxDate:h}=this.dp,{day:l}=o(this.date),d=this._isOutOfMinMaxRange(),c=null===(e=this.customData)||void 0===e?void 0:e.disabled,m=u(\"air-datepicker-cell\",`-${this.singleType}-`,{\"-current-\":p(s,this.date,this.type),\"-min-date-\":r&&p(r,this.date,this.type),\"-max-date-\":h&&p(h,this.date,this.type)}),v=\"\";switch(this.type){case i.days:v=u({\"-weekend-\":this.dp.isWeekend(l),\"-other-month-\":this.isOtherMonth,\"-disabled-\":this.isOtherMonth&&!a||d||c});break;case i.months:v=u({\"-disabled-\":d||c});break;case i.years:v=u({\"-other-decade-\":this.isOtherDecade,\"-disabled-\":d||this.isOtherDecade&&!n||c})}return u(m,v,null===(t=this.customData)||void 0===t?void 0:t.classes)}_getHtml(){var e;let{year:t,month:s,date:a}=o(this.date),{showOtherMonths:n,showOtherYears:r}=this.opts;if(null!==(e=this.customData)&&void 0!==e&&e.html)return this.customData.html;switch(this.type){case i.days:return!n&&this.isOtherMonth?\"\":a;case i.months:return this.dp.locale[this.opts.monthsField][s];case i.years:return!r&&this.isOtherDecade?\"\":t}}_isOutOfMinMaxRange(){let{minDate:e,maxDate:t}=this.dp,{type:s,date:a}=this,{month:n,year:r,date:h}=o(a),l=s===i.days,d=s===i.years,c=!!e&&new Date(r,d?e.getMonth():n,l?h:e.getDate()),u=!!t&&new Date(r,d?t.getMonth():n,l?h:t.getDate());return e&&t?v(c,e)||m(u,t):e?v(c,e):t?m(u,t):void 0}destroy(){this.unbindDatepickerEvents()}_handleRangeStatus(){let{rangeDateFrom:e,rangeDateTo:t}=this.dp,i=u({\"-in-range-\":e&&t&&(s=this.date,a=e,n=t,m(s,a)&&v(s,n)),\"-range-from-\":e&&p(this.date,e,this.type),\"-range-to-\":t&&p(this.date,t,this.type)});var s,a,n;this.$cell.classList.remove(\"-range-from-\",\"-range-to-\",\"-in-range-\"),i&&this.$cell.classList.add(...i.split(\" \"))}_handleSelectedStatus(){let e=this.dp._checkIfDateIsSelected(this.date,this.type);e?this.select():!e&&this.selected&&this.removeSelect()}_handleInitialFocusStatus(){p(this.dp.focusDate,this.date,this.type)&&this.focus()}get isDisabled(){return this.$cell.matches(\".-disabled-\")}get isOtherMonth(){return this.dp.isOtherMonth(this.date)}get isOtherDecade(){return this.dp.isOtherDecade(this.date)}}function M(e,t,i){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t);if(\"object\"!=typeof s)return s;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}let S={[i.days]:`
    `,[i.months]:`
    `,[i.years]:`
    `};const T=\".air-datepicker-cell\";class F{constructor(e){let{dp:t,type:s,opts:a}=e;M(this,\"handleClick\",(e=>{let t=e.target.closest(T).adpCell;if(t.isDisabled)return;if(!this.dp.isMinViewReached)return void this.dp.down();let i=this.dp._checkIfDateIsSelected(t.date,t.type);i?this.dp._handleAlreadySelectedDates(i,t.date):this.dp.selectDate(t.date)})),M(this,\"handleDayNameClick\",(e=>{let t=e.target.getAttribute(\"data-day-index\");this.opts.onClickDayName({dayIndex:Number(t),datepicker:this.dp})})),M(this,\"onChangeCurrentView\",(e=>{e!==this.type?this.hide():(this.show(),this.render())})),M(this,\"onMouseOverCell\",(e=>{let t=f(e.target,T);this.dp.setFocusDate(!!t&&t.adpCell.date)})),M(this,\"onMouseOutCell\",(()=>{this.dp.setFocusDate(!1)})),M(this,\"onClickBody\",(e=>{let{onClickDayName:t}=this.opts,i=e.target;i.closest(T)&&this.handleClick(e),t&&i.closest(\".air-datepicker-body--day-name\")&&this.handleDayNameClick(e)})),M(this,\"onMouseDown\",(e=>{this.pressed=!0;let t=f(e.target,T),i=t&&t.adpCell;p(i.date,this.dp.rangeDateFrom)&&(this.rangeFromFocused=!0),p(i.date,this.dp.rangeDateTo)&&(this.rangeToFocused=!0)})),M(this,\"onMouseMove\",(e=>{if(!this.pressed||!this.dp.isMinViewReached)return;e.preventDefault();let t=f(e.target,T),i=t&&t.adpCell,{selectedDates:s,rangeDateTo:a,rangeDateFrom:n}=this.dp;if(!i||i.isDisabled)return;let{date:r}=i;if(2===s.length){if(this.rangeFromFocused&&!m(r,a)){let{hours:e,minutes:t}=o(n);r.setHours(e),r.setMinutes(t),this.dp.rangeDateFrom=r,this.dp.replaceDate(n,r)}if(this.rangeToFocused&&!v(r,n)){let{hours:e,minutes:t}=o(a);r.setHours(e),r.setMinutes(t),this.dp.rangeDateTo=r,this.dp.replaceDate(a,r)}}})),M(this,\"onMouseUp\",(()=>{this.pressed=!1,this.rangeFromFocused=!1,this.rangeToFocused=!1})),M(this,\"onChangeViewDate\",((e,t)=>{if(!this.isVisible)return;let s=c(e),a=c(t);switch(this.dp.currentView){case i.days:if(p(e,t,i.months))return;break;case i.months:if(p(e,t,i.years))return;break;case i.years:if(s[0]===a[0]&&s[1]===a[1])return}this.render()})),M(this,\"render\",(()=>{this.destroyCells(),this._generateCells(),this.cells.forEach((e=>{this.$cells.appendChild(e.render())}))})),this.dp=t,this.type=s,this.opts=a,this.cells=[],this.$el=\"\",this.pressed=!1,this.isVisible=!0,this.init()}init(){this._buildBaseHtml(),this.type===i.days&&this.renderDayNames(),this.render(),this._bindEvents(),this._bindDatepickerEvents()}_bindEvents(){let{range:e,dynamicRange:t}=this.opts;y(this.$el,\"mouseover\",this.onMouseOverCell),y(this.$el,\"mouseout\",this.onMouseOutCell),y(this.$el,\"click\",this.onClickBody),e&&t&&(y(this.$el,\"mousedown\",this.onMouseDown),y(this.$el,\"mousemove\",this.onMouseMove),y(window.document,\"mouseup\",this.onMouseUp))}_bindDatepickerEvents(){this.dp.on(i.eventChangeViewDate,this.onChangeViewDate),this.dp.on(i.eventChangeCurrentView,this.onChangeCurrentView)}_buildBaseHtml(){this.$el=n({className:`air-datepicker-body -${this.type}-`,innerHtml:S[this.type]}),this.$names=a(\".air-datepicker-body--day-names\",this.$el),this.$cells=a(\".air-datepicker-body--cells\",this.$el)}_getDayNamesHtml(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.dp.locale.firstDay,t=\"\",s=this.dp.isWeekend,{onClickDayName:a}=this.opts,n=e,r=0;for(;r<7;){let e=n%7;t+=`
    ${this.dp.locale.daysMin[e]}
    `,r++,n++}return t}_getDaysCells(){let{viewDate:e,locale:{firstDay:t}}=this.dp,i=h(e),{year:s,month:a}=o(e),n=new Date(s,a,1),r=new Date(s,a,i),l=n.getDay()-t,d=6-r.getDay()+t;l=l<0?l+7:l,d=d>6?d-7:d;let c=function(e,t){let{year:i,month:s,date:a}=o(e);return new Date(i,s,a-t)}(n,l),u=i+l+d,p=c.getDate(),{year:m,month:v}=o(c),g=0;for(;ge.destroy())),this.cells=[],this.$cells.innerHTML=\"\"}destroy(){this.destroyCells(),this.dp.off(i.eventChangeViewDate,this.onChangeViewDate),this.dp.off(i.eventChangeCurrentView,this.onChangeCurrentView)}}function V(e,t,i){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t);if(\"object\"!=typeof s)return s;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class x{constructor(e){let{dp:t,opts:i}=e;V(this,\"onClickNav\",(e=>{let t=f(e.target,\".air-datepicker-nav--action\");if(!t)return;let i=t.dataset.action;this.dp[i]()})),V(this,\"onChangeViewDate\",(()=>{this.render(),this._resetNavStatus(),this.handleNavStatus()})),V(this,\"onChangeCurrentView\",(()=>{this.render(),this._resetNavStatus(),this.handleNavStatus()})),V(this,\"onClickNavTitle\",(()=>{this.dp.isFinalView||this.dp.up()})),V(this,\"update\",(()=>{let{prevHtml:e,nextHtml:t}=this.opts;this.$prev.innerHTML=e,this.$next.innerHTML=t,this._resetNavStatus(),this.render(),this.handleNavStatus()})),V(this,\"renderDelay\",(()=>{setTimeout(this.render)})),V(this,\"render\",(()=>{this.$title.innerHTML=this._getTitle(),function(e,t){for(let i in t)t[i]?e.classList.add(i):e.classList.remove(i)}(this.$title,{\"-disabled-\":this.dp.isFinalView})})),this.dp=t,this.opts=i,this.init()}init(){this._createElement(),this._buildBaseHtml(),this._defineDOM(),this.render(),this.handleNavStatus(),this._bindEvents(),this._bindDatepickerEvents()}_defineDOM(){this.$title=a(\".air-datepicker-nav--title\",this.$el),this.$prev=a('[data-action=\"prev\"]',this.$el),this.$next=a('[data-action=\"next\"]',this.$el)}_bindEvents(){this.$el.addEventListener(\"click\",this.onClickNav),this.$title.addEventListener(\"click\",this.onClickNavTitle)}_bindDatepickerEvents(){this.dp.on(i.eventChangeViewDate,this.onChangeViewDate),this.dp.on(i.eventChangeCurrentView,this.onChangeCurrentView),this.isNavIsFunction&&(this.dp.on(i.eventChangeSelectedDate,this.renderDelay),this.dp.opts.timepicker&&this.dp.on(i.eventChangeTime,this.render))}destroy(){this.dp.off(i.eventChangeViewDate,this.onChangeViewDate),this.dp.off(i.eventChangeCurrentView,this.onChangeCurrentView),this.isNavIsFunction&&(this.dp.off(i.eventChangeSelectedDate,this.renderDelay),this.dp.opts.timepicker&&this.dp.off(i.eventChangeTime,this.render))}_createElement(){this.$el=n({tagName:\"nav\",className:\"air-datepicker-nav\"})}_getTitle(){let{dp:e,opts:t}=this,i=t.navTitles[e.currentView];return\"function\"==typeof i?i(e):e.formatDate(e.viewDate,i)}handleNavStatus(){let{disableNavWhenOutOfRange:e}=this.opts,{minDate:t,maxDate:s}=this.dp;if(!t&&!s||!e)return;let{year:a,month:n}=this.dp.parsedViewDate,r=!!t&&o(t),h=!!s&&o(s);switch(this.dp.currentView){case i.days:t&&r.month>=n&&r.year>=a&&this._disableNav(\"prev\"),s&&h.month<=n&&h.year<=a&&this._disableNav(\"next\");break;case i.months:t&&r.year>=a&&this._disableNav(\"prev\"),s&&h.year<=a&&this._disableNav(\"next\");break;case i.years:{let e=c(this.dp.viewDate);t&&r.year>=e[0]&&this._disableNav(\"prev\"),s&&h.year<=e[1]&&this._disableNav(\"next\");break}}}_disableNav(e){a('[data-action=\"'+e+'\"]',this.$el).classList.add(\"-disabled-\")}_resetNavStatus(){!function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s{e.classList.remove(...i)})):e.classList.remove(...i)}(this.$el.querySelectorAll(\".air-datepicker-nav--action\"),\"-disabled-\")}_buildBaseHtml(){let{prevHtml:e,nextHtml:t}=this.opts;this.$el.innerHTML=`
    ${e}
    ${t}
    `}get isNavIsFunction(){let{navTitles:e}=this.opts;return Object.keys(e).find((t=>\"function\"==typeof e[t]))}}var H={today:{content:e=>e.locale.today,onClick:e=>e.setViewDate(new Date)},clear:{content:e=>e.locale.clear,onClick:e=>e.clear()}};class E{constructor(e){let{dp:t,opts:i}=e;this.dp=t,this.opts=i,this.init()}init(){this.createElement(),this.render()}createElement(){this.$el=n({className:\"air-datepicker-buttons\"})}destroy(){this.$el.parentNode.removeChild(this.$el)}clearHtml(){return this.$el.innerHTML=\"\",this}generateButtons(){let{buttons:e}=this.opts;Array.isArray(e)||(e=[e]),e.forEach((e=>{let t=e;\"string\"==typeof e&&H[e]&&(t=H[e]);let i=this.createButton(t);t.onClick&&this.attachEventToButton(i,t.onClick),this.$el.appendChild(i)}))}attachEventToButton(e,t){e.addEventListener(\"click\",(()=>{t(this.dp)}))}createButton(e){let{content:t,className:i,tagName:s=\"button\",attrs:a={}}=e;return n({tagName:s,innerHtml:`${\"function\"==typeof t?t(this.dp):t}`,className:u(\"air-datepicker-button\",i),attrs:a})}render(){this.generateButtons()}}function L(e,t,i){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t);if(\"object\"!=typeof s)return s;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}class O{constructor(){let{opts:e,dp:t}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};L(this,\"toggleTimepickerIsActive\",(e=>{this.dp.timepickerIsActive=e})),L(this,\"onChangeSelectedDate\",(e=>{let{date:t,updateTime:i=!1}=e;t&&(this.setMinMaxTime(t),this.setCurrentTime(!!i&&t),this.addTimeToDate(t))})),L(this,\"onChangeLastSelectedDate\",(e=>{e&&(this.setTime(e),this.render())})),L(this,\"onChangeInputRange\",(e=>{let t=e.target;this[t.getAttribute(\"name\")]=t.value,this.updateText(),this.dp.trigger(i.eventChangeTime,{hours:this.hours,minutes:this.minutes})})),L(this,\"onMouseEnterLeave\",(e=>{let t=e.target.getAttribute(\"name\"),i=this.$minutesText;\"hours\"===t&&(i=this.$hoursText),i.classList.toggle(\"-focus-\")})),L(this,\"onFocus\",(()=>{this.toggleTimepickerIsActive(!0)})),L(this,\"onBlur\",(()=>{this.toggleTimepickerIsActive(!1)})),this.opts=e,this.dp=t;let{timeFormat:s}=this.dp.locale;s&&(s.match(C(\"h\"))||s.match(C(\"hh\")))&&(this.ampm=!0),this.init()}init(){this.setTime(this.dp.lastSelectedDate||this.dp.viewDate),this.createElement(),this.buildHtml(),this.defineDOM(),this.render(),this.bindDatepickerEvents(),this.bindDOMEvents()}bindDatepickerEvents(){this.dp.on(i.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.on(i.eventChangeLastSelectedDate,this.onChangeLastSelectedDate)}bindDOMEvents(){let e=\"input\";navigator.userAgent.match(/trident/gi)&&(e=\"change\"),y(this.$ranges,e,this.onChangeInputRange),y(this.$ranges,\"mouseenter\",this.onMouseEnterLeave),y(this.$ranges,\"mouseleave\",this.onMouseEnterLeave),y(this.$ranges,\"focus\",this.onFocus),y(this.$ranges,\"mousedown\",this.onFocus),y(this.$ranges,\"blur\",this.onBlur)}createElement(){this.$el=n({className:u(\"air-datepicker-time\",{\"-am-pm-\":this.dp.ampm})})}destroy(){this.dp.off(i.eventChangeSelectedDate,this.onChangeSelectedDate),this.dp.off(i.eventChangeLastSelectedDate,this.onChangeLastSelectedDate),this.$el.parentNode.removeChild(this.$el)}buildHtml(){let{ampm:e,hours:t,displayHours:i,minutes:s,minHours:a,minMinutes:n,maxHours:r,maxMinutes:h,dayPeriod:o,opts:{hoursStep:l,minutesStep:c}}=this;this.$el.innerHTML=`
    ${d(i)} : ${d(s)} `+(e?`${o}`:\"\")+'
    '+`
    `+`
    `}defineDOM(){let e=e=>a(e,this.$el);this.$ranges=this.$el.querySelectorAll('[type=\"range\"]'),this.$hours=e('[name=\"hours\"]'),this.$minutes=e('[name=\"minutes\"]'),this.$hoursText=e(\".air-datepicker-time--current-hours\"),this.$minutesText=e(\".air-datepicker-time--current-minutes\"),this.$ampm=e(\".air-datepicker-time--current-ampm\")}setTime(e){this.setMinMaxTime(e),this.setCurrentTime(e)}addTimeToDate(e){e&&(e.setHours(this.hours),e.setMinutes(this.minutes))}setMinMaxTime(e){if(this.setMinMaxTimeFromOptions(),e){let{minDate:t,maxDate:i}=this.dp;t&&p(e,t)&&this.setMinTimeFromMinDate(t),i&&p(e,i)&&this.setMaxTimeFromMaxDate(i)}}setCurrentTime(e){let{hours:t,minutes:i}=e?o(e):this;this.hours=w(t,this.minHours,this.maxHours),this.minutes=w(i,this.minMinutes,this.maxMinutes)}setMinMaxTimeFromOptions(){let{minHours:e,minMinutes:t,maxHours:i,maxMinutes:s}=this.opts;this.minHours=w(e,0,23),this.minMinutes=w(t,0,59),this.maxHours=w(i,0,23),this.maxMinutes=w(s,0,59)}setMinTimeFromMinDate(e){let{lastSelectedDate:t}=this.dp;this.minHours=e.getHours(),t&&t.getHours()>e.getHours()?this.minMinutes=this.opts.minMinutes:this.minMinutes=e.getMinutes()}setMaxTimeFromMaxDate(e){let{lastSelectedDate:t}=this.dp;this.maxHours=e.getHours(),t&&t.getHours()e.month++],[[[\"Control\",\"ArrowLeft\"],[\"Control\",\"ArrowDown\"]],e=>e.month--],[[[\"Shift\",\"ArrowRight\"],[\"Shift\",\"ArrowUp\"]],e=>e.year++],[[[\"Shift\",\"ArrowLeft\"],[\"Shift\",\"ArrowDown\"]],e=>e.year--],[[[\"Alt\",\"ArrowRight\"],[\"Alt\",\"ArrowUp\"]],e=>e.year+=10],[[[\"Alt\",\"ArrowLeft\"],[\"Alt\",\"ArrowDown\"]],e=>e.year-=10],[[\"Control\",\"Shift\",\"ArrowUp\"],(e,t)=>t.up()]])),A(this,\"handleHotKey\",(e=>{let t=this.hotKeys.get(e),i=o(this.getInitialFocusDate());t(i,this.dp);let{year:s,month:a,date:n}=i,r=h(new Date(s,a));r{let e=!1,t=this.pressedKeys.size,i=e=>this.pressedKeys.has(e);for(let[s]of this.hotKeys){if(e)break;if(Array.isArray(s[0]))s.forEach((a=>{e||t!==a.length||(e=a.every(i)&&s)}));else{if(t!==s.length)continue;e=s.every(i)&&s}}return e})),A(this,\"isArrow\",(e=>e>=37&&e<=40)),A(this,\"onKeyDown\",(e=>{let{key:t,which:i}=e,{dp:s,dp:{focusDate:a},opts:n}=this;this.registerKey(t);let r=this.isHotKeyPressed();if(r)return e.preventDefault(),void this.handleHotKey(r);if(this.isArrow(i))return e.preventDefault(),void this.focusNextCell(t);if(\"Enter\"===t){if(s.currentView!==n.minView)return void s.down();if(a){let e=s._checkIfDateIsSelected(a);return void(e?s._handleAlreadySelectedDates(e,a):s.selectDate(a))}}\"Escape\"===t&&this.dp.hide()})),A(this,\"onKeyUp\",(e=>{this.removeKey(e.key)})),this.dp=t,this.opts=i,this.init()}init(){this.bindKeyboardEvents()}bindKeyboardEvents(){let{$el:e}=this.dp;e.addEventListener(\"keydown\",this.onKeyDown),e.addEventListener(\"keyup\",this.onKeyUp)}destroy(){let{$el:e}=this.dp;e.removeEventListener(\"keydown\",this.onKeyDown),e.removeEventListener(\"keyup\",this.onKeyUp),this.hotKeys=null,this.pressedKeys=null}getInitialFocusDate(){let{focusDate:e,currentView:t,selectedDates:s,parsedViewDate:{year:a,month:n}}=this.dp,r=e||s[s.length-1];if(!r)switch(t){case i.days:r=new Date(a,n,(new Date).getDate());break;case i.months:r=new Date(a,n,1);break;case i.years:r=new Date(a,0,1)}return r}focusNextCell(e){let t=this.getInitialFocusDate(),{currentView:s}=this.dp,{days:a,months:n,years:r}=i,h=o(t),l=h.year,d=h.month,c=h.date;switch(e){case\"ArrowLeft\":s===a&&(c-=1),s===n&&(d-=1),s===r&&(l-=1);break;case\"ArrowUp\":s===a&&(c-=7),s===n&&(d-=3),s===r&&(l-=4);break;case\"ArrowRight\":s===a&&(c+=1),s===n&&(d+=1),s===r&&(l+=1);break;case\"ArrowDown\":s===a&&(c+=7),s===n&&(d+=3),s===r&&(l+=4)}let u=this.dp.getClampedDate(new Date(l,d,c));this.dp.setFocusDate(u,{viewDateTransition:!0})}registerKey(e){this.pressedKeys.add(e)}removeKey(e){this.pressedKeys.delete(e)}}let I={on(e,t){this.__events||(this.__events={}),this.__events[e]?this.__events[e].push(t):this.__events[e]=[t]},off(e,t){this.__events&&this.__events[e]&&(this.__events[e]=this.__events[e].filter((e=>e!==t)))},removeAllEvents(){this.__events={}},trigger(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),s=1;s{e(...i)}))}};function P(e,t,i){return(t=function(e){var t=function(e,t){if(\"object\"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t);if(\"object\"!=typeof s)return s;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}let j=\"\",R=\"\",B=!1;class K{static buildGlobalContainer(e){B=!0,j=n({className:e,id:e}),a(\"body\").appendChild(j)}constructor(e,t){var r=this;if(P(this,\"viewIndexes\",[i.days,i.months,i.years]),P(this,\"next\",(()=>{let{year:e,month:t}=this.parsedViewDate;switch(this.currentView){case i.days:this.setViewDate(new Date(e,t+1,1));break;case i.months:this.setViewDate(new Date(e+1,t,1));break;case i.years:this.setViewDate(new Date(e+10,0,1))}})),P(this,\"prev\",(()=>{let{year:e,month:t}=this.parsedViewDate;switch(this.currentView){case i.days:this.setViewDate(new Date(e,t-1,1));break;case i.months:this.setViewDate(new Date(e-1,t,1));break;case i.years:this.setViewDate(new Date(e-10,0,1))}})),P(this,\"_finishHide\",(()=>{this.hideAnimation=!1,this._destroyComponents(),this.$container.removeChild(this.$datepicker)})),P(this,\"setPosition\",(function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(\"function\"==typeof(e=e||r.opts.position))return void(r.customHide=e({$datepicker:r.$datepicker,$target:r.$el,$pointer:r.$pointer,isViewChange:t,done:r._finishHide}));let i,s,{isMobile:a}=r.opts,n=r.$el.getBoundingClientRect(),h=r.$el.getBoundingClientRect(),o=r.$datepicker.offsetParent,l=r.$el.offsetParent,d=r.$datepicker.getBoundingClientRect(),c=e.split(\" \"),u=window.scrollY,p=window.scrollX,m=r.opts.offset,v=c[0],g=c[1];if(a)r.$datepicker.style.cssText=\"left: 50%; top: 50%\";else{if(o===l&&o!==document.body&&(h={top:r.$el.offsetTop,left:r.$el.offsetLeft,width:n.width,height:r.$el.offsetHeight},u=0,p=0),o!==l&&o!==document.body){let e=o.getBoundingClientRect();h={top:n.top-e.top,left:n.left-e.left,width:n.width,height:n.height},u=0,p=0}switch(v){case\"top\":i=h.top-d.height-m;break;case\"right\":s=h.left+h.width+m;break;case\"bottom\":i=h.top+h.height+m;break;case\"left\":s=h.left-d.width-m}switch(g){case\"top\":i=h.top;break;case\"right\":s=h.left+h.width-d.width;break;case\"bottom\":i=h.top+h.height-d.height;break;case\"left\":s=h.left;break;case\"center\":/left|right/.test(v)?i=h.top+h.height/2-d.height/2:s=h.left+h.width/2-d.width/2}r.$datepicker.style.cssText=`left: ${s+p}px; top: ${i+u}px`}})),P(this,\"_setInputValue\",(()=>{let{opts:e,$altField:t,locale:{dateFormat:i}}=this,{altFieldDateFormat:s,altField:a}=e;a&&t&&(t.value=this._getInputValue(s)),this.$el.value=this._getInputValue(i)})),P(this,\"_getInputValue\",(e=>{let{selectedDates:t,opts:i}=this,{multipleDates:s,multipleDatesSeparator:a}=i;if(!t.length)return\"\";let n=\"function\"==typeof e,r=n?e(s?t:t[0]):t.map((t=>this.formatDate(t,e)));return r=n?r:r.join(a),r})),P(this,\"_checkIfDateIsSelected\",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.days,s=!1;return r.selectedDates.some((i=>{let a=p(e,i,t);return s=a&&i,a})),s})),P(this,\"_scheduleCallAfterTransition\",(e=>{this._cancelScheduledCall(),e&&e(!1),this._onTransitionEnd=()=>{e&&e(!0)},this.$datepicker.addEventListener(\"transitionend\",this._onTransitionEnd,{once:!0})})),P(this,\"_cancelScheduledCall\",(()=>{this.$datepicker.removeEventListener(\"transitionend\",this._onTransitionEnd)})),P(this,\"setViewDate\",(e=>{if(!((e=k(e))instanceof Date))return;if(p(e,this.viewDate))return;let t=this.viewDate;this.viewDate=e;let{onChangeViewDate:s}=this.opts;if(s){let{month:e,year:t}=this.parsedViewDate;s({month:e,year:t,decade:this.curDecade})}this.trigger(i.eventChangeViewDate,e,t)})),P(this,\"setFocusDate\",(function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(!e||(e=k(e))instanceof Date)&&(r.focusDate=e,r.opts.range&&e&&r._handleRangeOnFocus(),r.trigger(i.eventChangeFocusDate,e,t))})),P(this,\"setCurrentView\",(e=>{if(this.viewIndexes.includes(e)){if(this.currentView=e,this.elIsInput&&this.visible&&this.setPosition(void 0,!0),this.trigger(i.eventChangeCurrentView,e),!this.views[e]){let t=this.views[e]=new F({dp:this,opts:this.opts,type:e});this.shouldUpdateDOM&&this.$content.appendChild(t.$el)}this.opts.onChangeView&&this.opts.onChangeView(e)}})),P(this,\"_updateLastSelectedDate\",(e=>{this.lastSelectedDate=e,this.trigger(i.eventChangeLastSelectedDate,e)})),P(this,\"destroy\",(()=>{let{showEvent:e,isMobile:t}=this.opts,i=this.$datepicker.parentNode;i&&i.removeChild(this.$datepicker),this.$el.removeEventListener(e,this._onFocus),this.$el.removeEventListener(\"blur\",this._onBlur),window.removeEventListener(\"resize\",this._onResize),t&&this._removeMobileAttributes(),this.keyboardNav&&this.keyboardNav.destroy(),this.views=null,this.nav=null,this.$datepicker=null,this.opts=null,this.$customContainer=null,this.viewDate=null,this.focusDate=null,this.selectedDates=null,this.rangeDateFrom=null,this.rangeDateTo=null})),P(this,\"update\",(e=>{let t=b({},this.opts);b(this.opts,e);let{timepicker:s,buttons:a,range:n,selectedDates:r,isMobile:h}=this.opts,o=this.visible||this.treatAsInline;this._createMinMaxDates(),this._limitViewDateByMaxMinDates(),this._handleLocale(),!t.selectedDates&&r&&this.selectDate(r),e.view&&this.setCurrentView(e.view),this._setInputValue(),t.range&&!n?(this.rangeDateTo=!1,this.rangeDateFrom=!1):!t.range&&n&&this.selectedDates.length&&(this.rangeDateFrom=this.selectedDates[0],this.rangeDateTo=this.selectedDates[1]),t.timepicker&&!s?(o&&this.timepicker.destroy(),this.timepicker=!1,this.$timepicker.parentNode.removeChild(this.$timepicker)):!t.timepicker&&s&&this._addTimepicker(),!t.buttons&&a?this._addButtons():t.buttons&&!a?(this.buttons.destroy(),this.$buttons.parentNode.removeChild(this.$buttons)):o&&t.buttons&&a&&this.buttons.clearHtml().render(),!t.isMobile&&h?(this.treatAsInline||R||this._createMobileOverlay(),this._addMobileAttributes(),this.visible&&this._showMobileOverlay()):t.isMobile&&!h&&(this._removeMobileAttributes(),this.visible&&(R.classList.remove(\"-active-\"),\"function\"!=typeof this.opts.position&&this.setPosition())),o&&(this.nav.update(),this.views[this.currentView].render(),this.currentView===i.days&&this.views[this.currentView].renderDayNames())})),P(this,\"isOtherMonth\",(e=>{let{month:t}=o(e);return t!==this.parsedViewDate.month})),P(this,\"isOtherYear\",(e=>{let{year:t}=o(e);return t!==this.parsedViewDate.year})),P(this,\"isOtherDecade\",(e=>{let{year:t}=o(e),[i,s]=c(this.viewDate);return ts})),P(this,\"_onChangeSelectedDate\",(e=>{let{silent:t}=e;setTimeout((()=>{this._setInputValue(),this.opts.onSelect&&!t&&this._triggerOnSelect()}))})),P(this,\"_onChangeFocusedDate\",(function(e){let{viewDateTransition:t}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return;let i=!1;t&&(i=r.isOtherMonth(e)||r.isOtherYear(e)||r.isOtherDecade(e)),i&&r.setViewDate(e)})),P(this,\"_onChangeTime\",(e=>{let{hours:t,minutes:i}=e,s=new Date,{lastSelectedDate:a,opts:{onSelect:n}}=this,r=a;a||(r=s);let h=this.getCell(r,this.currentViewSingular),o=h&&h.adpCell;o&&o.isDisabled||(r.setHours(t),r.setMinutes(i),a?(this._setInputValue(),n&&this._triggerOnSelect()):this.selectDate(r))})),P(this,\"_onFocus\",(e=>{this.visible||this.show()})),P(this,\"_onBlur\",(e=>{this.inFocus||!this.visible||this.opts.isMobile||this.hide()})),P(this,\"_onMouseDown\",(e=>{this.inFocus=!0})),P(this,\"_onMouseUp\",(e=>{this.inFocus=!1,this.$el.focus()})),P(this,\"_onResize\",(()=>{this.visible&&\"function\"!=typeof this.opts.position&&this.setPosition()})),P(this,\"_onClickOverlay\",(()=>{this.visible&&this.hide()})),P(this,\"isWeekend\",(e=>this.opts.weekends.includes(e))),P(this,\"getClampedDate\",(e=>{let{minDate:t,maxDate:i}=this,s=e;return i&&m(e,i)?s=i:t&&v(e,t)&&(s=t),s})),this.$el=a(e),!this.$el)return;this.$datepicker=n({className:\"air-datepicker\"}),this.opts=b({},s,t),this.$customContainer=!!this.opts.container&&a(this.opts.container),this.$altField=a(this.opts.altField||!1);let{view:h,startDate:l}=this.opts;l||(this.opts.startDate=new Date),\"INPUT\"===this.$el.nodeName&&(this.elIsInput=!0),this.inited=!1,this.visible=!1,this.viewDate=k(this.opts.startDate),this.focusDate=!1,this.initialReadonly=this.$el.getAttribute(\"readonly\"),this.customHide=!1,this.currentView=h,this.selectedDates=[],this.views={},this.keys=[],this.rangeDateFrom=\"\",this.rangeDateTo=\"\",this.timepickerIsActive=!1,this.treatAsInline=this.opts.inline||!this.elIsInput,this.init()}init(){let{opts:e,treatAsInline:t,opts:{inline:i,isMobile:s,selectedDates:n,keyboardNav:r,onlyTimepicker:h}}=this,o=a(\"body\");(!B||B&&j&&!o.contains(j))&&!i&&this.elIsInput&&!this.$customContainer&&K.buildGlobalContainer(K.defaultGlobalContainerId),!s||R||t||this._createMobileOverlay(),this._handleLocale(),this._bindSubEvents(),this._createMinMaxDates(),this._limitViewDateByMaxMinDates(),this.elIsInput&&(i||this._bindEvents(),r&&!h&&(this.keyboardNav=new N({dp:this,opts:e}))),n&&this.selectDate(n,{silent:!0}),this.opts.visible&&!t&&this.show(),s&&!t&&this.$el.setAttribute(\"readonly\",!0),t&&this._createComponents()}_createMobileOverlay(){R=n({className:\"air-datepicker-overlay\"}),j.appendChild(R)}_createComponents(){let{opts:e,treatAsInline:t,opts:{inline:i,buttons:s,timepicker:a,position:n,classes:r,onlyTimepicker:h,isMobile:o}}=this;this._buildBaseHtml(),this.elIsInput&&(i||this._setPositionClasses(n)),!i&&this.elIsInput||this.$datepicker.classList.add(\"-inline-\"),r&&this.$datepicker.classList.add(...r.split(\" \")),h&&this.$datepicker.classList.add(\"-only-timepicker-\"),o&&!t&&this._addMobileAttributes(),this.views[this.currentView]=new F({dp:this,type:this.currentView,opts:e}),this.nav=new x({dp:this,opts:e}),a&&this._addTimepicker(),s&&this._addButtons(),this.$content.appendChild(this.views[this.currentView].$el),this.$nav.appendChild(this.nav.$el)}_destroyComponents(){for(let e in this.views)this.views[e].destroy();this.views={},this.nav.destroy(),this.timepicker&&this.timepicker.destroy()}_addMobileAttributes(){R.addEventListener(\"click\",this._onClickOverlay),this.$datepicker.classList.add(\"-is-mobile-\"),this.$el.setAttribute(\"readonly\",!0)}_removeMobileAttributes(){R.removeEventListener(\"click\",this._onClickOverlay),this.$datepicker.classList.remove(\"-is-mobile-\"),this.initialReadonly||\"\"===this.initialReadonly||this.$el.removeAttribute(\"readonly\")}_createMinMaxDates(){let{minDate:e,maxDate:t}=this.opts;this.minDate=!!e&&k(e),this.maxDate=!!t&&k(t)}_addTimepicker(){this.$timepicker=n({className:\"air-datepicker--time\"}),this.$datepicker.appendChild(this.$timepicker),this.timepicker=new O({dp:this,opts:this.opts}),this.$timepicker.appendChild(this.timepicker.$el)}_addButtons(){this.$buttons=n({className:\"air-datepicker--buttons\"}),this.$datepicker.appendChild(this.$buttons),this.buttons=new E({dp:this,opts:this.opts}),this.$buttons.appendChild(this.buttons.$el)}_bindSubEvents(){this.on(i.eventChangeSelectedDate,this._onChangeSelectedDate),this.on(i.eventChangeFocusDate,this._onChangeFocusedDate),this.on(i.eventChangeTime,this._onChangeTime)}_buildBaseHtml(){let{inline:e}=this.opts;var t,i;this.elIsInput?e?(t=this.$datepicker,(i=this.$el).parentNode.insertBefore(t,i.nextSibling)):this.$container.appendChild(this.$datepicker):this.$el.appendChild(this.$datepicker),this.$datepicker.innerHTML='
    ',this.$content=a(\".air-datepicker--content\",this.$datepicker),this.$pointer=a(\".air-datepicker--pointer\",this.$datepicker),this.$nav=a(\".air-datepicker--navigation\",this.$datepicker)}_handleLocale(){let{locale:e,dateFormat:t,firstDay:i,timepicker:s,onlyTimepicker:a,timeFormat:n,dateTimeSeparator:r}=this.opts;var h;this.locale=(h=e,JSON.parse(JSON.stringify(h))),t&&(this.locale.dateFormat=t),void 0!==n&&\"\"!==n&&(this.locale.timeFormat=n);let{timeFormat:o}=this.locale;if(\"\"!==i&&(this.locale.firstDay=i),s&&\"function\"!=typeof t){let e=o?r:\"\";this.locale.dateFormat=[this.locale.dateFormat,o||\"\"].join(e)}a&&\"function\"!=typeof t&&(this.locale.dateFormat=this.locale.timeFormat)}_setPositionClasses(e){if(\"function\"==typeof e)return void this.$datepicker.classList.add(\"-custom-position-\");let t=(e=e.split(\" \"))[0],i=`air-datepicker -${t}-${e[1]}- -from-${t}-`;this.$datepicker.classList.add(...i.split(\" \"))}_bindEvents(){this.$el.addEventListener(this.opts.showEvent,this._onFocus),this.$el.addEventListener(\"blur\",this._onBlur),this.$datepicker.addEventListener(\"mousedown\",this._onMouseDown),this.$datepicker.addEventListener(\"mouseup\",this._onMouseUp),window.addEventListener(\"resize\",this._onResize)}_limitViewDateByMaxMinDates(){let{viewDate:e,minDate:t,maxDate:i}=this;i&&m(e,i)&&this.setViewDate(i),t&&v(e,t)&&this.setViewDate(t)}formatDate(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.viewDate,t=arguments.length>1?arguments[1]:void 0;if(e=k(e),!(e instanceof Date))return;let i=t,s=this.locale,a=o(e),n=a.dayPeriod,r=c(e),h=K.replacer,l={T:e.getTime(),m:a.minutes,mm:a.fullMinutes,h:a.hours12,hh:a.fullHours12,H:a.hours,HH:a.fullHours,aa:n,AA:n.toUpperCase(),E:s.daysShort[a.day],EEEE:s.days[a.day],d:a.date,dd:a.fullDate,M:a.month+1,MM:a.fullMonth,MMM:s.monthsShort[a.month],MMMM:s.months[a.month],yy:a.year.toString().slice(-2),yyyy:a.year,yyyy1:r[0],yyyy2:r[1]};for(let[e,t]of Object.entries(l))i=h(i,C(e),t);return i}down(e){this._handleUpDownActions(e,\"down\")}up(e){this._handleUpDownActions(e,\"up\")}selectDate(e){let t,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},{currentView:a,parsedViewDate:n,selectedDates:r}=this,{updateTime:h}=s,{moveToOtherMonthsOnSelect:o,moveToOtherYearsOnSelect:l,multipleDates:d,range:c,autoClose:u}=this.opts,p=r.length;if(Array.isArray(e))return e.forEach((e=>{this.selectDate(e,s)})),new Promise((e=>{setTimeout(e)}));if((e=k(e))instanceof Date){if(a===i.days&&e.getMonth()!==n.month&&o&&(t=new Date(e.getFullYear(),e.getMonth(),1)),a===i.years&&e.getFullYear()!==n.year&&l&&(t=new Date(e.getFullYear(),0,1)),t&&this.setViewDate(t),d&&!c){if(p===d)return;this._checkIfDateIsSelected(e)||r.push(e)}else if(c)switch(p){case 1:r.push(e),this.rangeDateTo||(this.rangeDateTo=e),m(this.rangeDateFrom,this.rangeDateTo)&&(this.rangeDateTo=this.rangeDateFrom,this.rangeDateFrom=e),this.selectedDates=[this.rangeDateFrom,this.rangeDateTo];break;case 2:this.selectedDates=[e],this.rangeDateFrom=e,this.rangeDateTo=\"\";break;default:this.selectedDates=[e],this.rangeDateFrom=e}else this.selectedDates=[e];return this.trigger(i.eventChangeSelectedDate,{action:i.actionSelectDate,silent:null==s?void 0:s.silent,date:e,updateTime:h}),this._updateLastSelectedDate(e),u&&!this.timepickerIsActive&&this.visible&&(d||c?c&&1===p&&this.hide():this.hide()),new Promise((e=>{setTimeout(e)}))}}unselectDate(e){let t=this.selectedDates,s=this;if((e=k(e))instanceof Date)return t.some(((a,n)=>{if(p(a,e))return t.splice(n,1),s.selectedDates.length?s._updateLastSelectedDate(s.selectedDates[s.selectedDates.length-1]):(s.rangeDateFrom=\"\",s.rangeDateTo=\"\",s._updateLastSelectedDate(!1)),this.trigger(i.eventChangeSelectedDate,{action:i.actionUnselectDate,date:e}),!0}))}replaceDate(e,t){let s=this.selectedDates.find((t=>p(t,e,this.currentView))),a=this.selectedDates.indexOf(s);a<0||p(this.selectedDates[a],t,this.currentView)||(this.selectedDates[a]=t,this.trigger(i.eventChangeSelectedDate,{action:i.actionSelectDate,date:t,updateTime:!0}),this._updateLastSelectedDate(t))}clear(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.selectedDates=[],this.rangeDateFrom=!1,this.rangeDateTo=!1,this.trigger(i.eventChangeSelectedDate,{action:i.actionUnselectDate,silent:e.silent}),new Promise((e=>{setTimeout(e)}))}show(){let{onShow:e,isMobile:t}=this.opts;this._cancelScheduledCall(),this.visible||this.hideAnimation||this._createComponents(),this.setPosition(this.opts.position),this.$datepicker.classList.add(\"-active-\"),this.visible=!0,e&&this._scheduleCallAfterTransition(e),t&&this._showMobileOverlay()}hide(){let{onHide:e,isMobile:t}=this.opts,i=this._hasTransition();this.visible=!1,this.hideAnimation=!0,this.$datepicker.classList.remove(\"-active-\"),this.customHide&&this.customHide(),this.elIsInput&&this.$el.blur(),this._scheduleCallAfterTransition((t=>{!this.customHide&&(t&&i||!t&&!i)&&this._finishHide(),e&&e(t)})),t&&R.classList.remove(\"-active-\")}_triggerOnSelect(){let e=[],t=[],{selectedDates:i,locale:s,opts:{onSelect:a,multipleDates:n,range:r}}=this,h=n||r,o=\"function\"==typeof s.dateFormat;i.length&&(e=i.map(g),t=o?n?s.dateFormat(e):e.map((e=>s.dateFormat(e))):e.map((e=>this.formatDate(e,s.dateFormat)))),a({date:h?e:e[0],formattedDate:h?t:t[0],datepicker:this})}_handleAlreadySelectedDates(e,t){let{range:i,toggleSelected:s}=this.opts;i?s?this.unselectDate(t):2!==this.selectedDates.length&&this.selectDate(t):s&&this.unselectDate(t),s||this._updateLastSelectedDate(e)}_handleUpDownActions(e,t){if(!((e=k(e||this.focusDate||this.viewDate))instanceof Date))return;let i=\"up\"===t?this.viewIndex+1:this.viewIndex-1;i>2&&(i=2),i<0&&(i=0),this.setViewDate(new Date(e.getFullYear(),e.getMonth(),1)),this.setCurrentView(this.viewIndexes[i])}_handleRangeOnFocus(){1===this.selectedDates.length&&(m(this.selectedDates[0],this.focusDate)?(this.rangeDateTo=this.selectedDates[0],this.rangeDateFrom=this.focusDate):(this.rangeDateTo=this.focusDate,this.rangeDateFrom=this.selectedDates[0]))}getCell(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.day;if(!((e=k(e))instanceof Date))return;let{year:s,month:a,date:n}=o(e),r=`[data-year=\"${s}\"]`,h=`[data-month=\"${a}\"]`,l={[i.day]:`${r}${h}[data-date=\"${n}\"]`,[i.month]:`${r}${h}`,[i.year]:`${r}`};return this.views[this.currentView].$el.querySelector(l[t])}_showMobileOverlay(){R.classList.add(\"-active-\")}_hasTransition(){return window.getComputedStyle(this.$datepicker).getPropertyValue(\"transition-duration\").split(\", \").reduce(((e,t)=>parseFloat(t)+e),0)>0}get shouldUpdateDOM(){return this.visible||this.treatAsInline}get parsedViewDate(){return o(this.viewDate)}get currentViewSingular(){return this.currentView.slice(0,-1)}get curDecade(){return c(this.viewDate)}get viewIndex(){return this.viewIndexes.indexOf(this.currentView)}get isFinalView(){return this.currentView===i.years}get hasSelectedDates(){return this.selectedDates.length>0}get isMinViewReached(){return this.currentView===this.opts.minView||this.currentView===i.days}get $container(){return this.$customContainer||j}static replacer(e,t,i){return e.replace(t,(function(e,t,s,a){return t+i+a}))}}var U;return P(K,\"defaults\",s),P(K,\"version\",\"3.3.5\"),P(K,\"defaultGlobalContainerId\",\"air-datepicker-global-container\"),U=K.prototype,Object.assign(U,I),t.default}()}));","import AirDatepicker from './air-datepicker';\nexport default AirDatepicker","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _default = {\n days: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],\n daysShort: ['Son', 'Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam'],\n daysMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],\n months: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'],\n monthsShort: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],\n today: 'Heute',\n clear: 'Aufräumen',\n dateFormat: 'dd.MM.yyyy',\n timeFormat: 'HH:mm',\n firstDay: 1\n};\nexports.default = _default;","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * Masonry v4.2.2\n * Cascading grid layout library\n * https://masonry.desandro.com\n * MIT License\n * by David DeSandro\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'outlayer/outlayer',\n 'get-size/get-size'\n ],\n factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('outlayer'),\n require('get-size')\n );\n } else {\n // browser global\n window.Masonry = factory(\n window.Outlayer,\n window.getSize\n );\n }\n\n}( window, function factory( Outlayer, getSize ) {\n\n'use strict';\n\n// -------------------------- masonryDefinition -------------------------- //\n\n // create an Outlayer layout class\n var Masonry = Outlayer.create('masonry');\n // isFitWidth -> fitWidth\n Masonry.compatOptions.fitWidth = 'isFitWidth';\n\n var proto = Masonry.prototype;\n\n proto._resetLayout = function() {\n this.getSize();\n this._getMeasurement( 'columnWidth', 'outerWidth' );\n this._getMeasurement( 'gutter', 'outerWidth' );\n this.measureColumns();\n\n // reset column Y\n this.colYs = [];\n for ( var i=0; i < this.cols; i++ ) {\n this.colYs.push( 0 );\n }\n\n this.maxY = 0;\n this.horizontalColIndex = 0;\n };\n\n proto.measureColumns = function() {\n this.getContainerWidth();\n // if columnWidth is 0, default to outerWidth of first item\n if ( !this.columnWidth ) {\n var firstItem = this.items[0];\n var firstItemElem = firstItem && firstItem.element;\n // columnWidth fall back to item of first element\n this.columnWidth = firstItemElem && getSize( firstItemElem ).outerWidth ||\n // if first elem has no width, default to size of container\n this.containerWidth;\n }\n\n var columnWidth = this.columnWidth += this.gutter;\n\n // calculate columns\n var containerWidth = this.containerWidth + this.gutter;\n var cols = containerWidth / columnWidth;\n // fix rounding errors, typically with gutters\n var excess = columnWidth - containerWidth % columnWidth;\n // if overshoot is less than a pixel, round up, otherwise floor it\n var mathMethod = excess && excess < 1 ? 'round' : 'floor';\n cols = Math[ mathMethod ]( cols );\n this.cols = Math.max( cols, 1 );\n };\n\n proto.getContainerWidth = function() {\n // container is parent if fit width\n var isFitWidth = this._getOption('fitWidth');\n var container = isFitWidth ? this.element.parentNode : this.element;\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var size = getSize( container );\n this.containerWidth = size && size.innerWidth;\n };\n\n proto._getItemLayoutPosition = function( item ) {\n item.getSize();\n // how many columns does this brick span\n var remainder = item.size.outerWidth % this.columnWidth;\n var mathMethod = remainder && remainder < 1 ? 'round' : 'ceil';\n // round if off by 1 pixel, otherwise use ceil\n var colSpan = Math[ mathMethod ]( item.size.outerWidth / this.columnWidth );\n colSpan = Math.min( colSpan, this.cols );\n // use horizontal or top column position\n var colPosMethod = this.options.horizontalOrder ?\n '_getHorizontalColPosition' : '_getTopColPosition';\n var colPosition = this[ colPosMethod ]( colSpan, item );\n // position the brick\n var position = {\n x: this.columnWidth * colPosition.col,\n y: colPosition.y\n };\n // apply setHeight to necessary columns\n var setHeight = colPosition.y + item.size.outerHeight;\n var setMax = colSpan + colPosition.col;\n for ( var i = colPosition.col; i < setMax; i++ ) {\n this.colYs[i] = setHeight;\n }\n\n return position;\n };\n\n proto._getTopColPosition = function( colSpan ) {\n var colGroup = this._getTopColGroup( colSpan );\n // get the minimum Y value from the columns\n var minimumY = Math.min.apply( Math, colGroup );\n\n return {\n col: colGroup.indexOf( minimumY ),\n y: minimumY,\n };\n };\n\n /**\n * @param {Number} colSpan - number of columns the element spans\n * @returns {Array} colGroup\n */\n proto._getTopColGroup = function( colSpan ) {\n if ( colSpan < 2 ) {\n // if brick spans only one column, use all the column Ys\n return this.colYs;\n }\n\n var colGroup = [];\n // how many different places could this brick fit horizontally\n var groupCount = this.cols + 1 - colSpan;\n // for each group potential horizontal position\n for ( var i = 0; i < groupCount; i++ ) {\n colGroup[i] = this._getColGroupY( i, colSpan );\n }\n return colGroup;\n };\n\n proto._getColGroupY = function( col, colSpan ) {\n if ( colSpan < 2 ) {\n return this.colYs[ col ];\n }\n // make an array of colY values for that one group\n var groupColYs = this.colYs.slice( col, col + colSpan );\n // and get the max value of the array\n return Math.max.apply( Math, groupColYs );\n };\n\n // get column position based on horizontal index. #873\n proto._getHorizontalColPosition = function( colSpan, item ) {\n var col = this.horizontalColIndex % this.cols;\n var isOver = colSpan > 1 && col + colSpan > this.cols;\n // shift to next row if item can't fit on current row\n col = isOver ? 0 : col;\n // don't let zero-size items take up space\n var hasSize = item.size.outerWidth && item.size.outerHeight;\n this.horizontalColIndex = hasSize ? col + colSpan : this.horizontalColIndex;\n\n return {\n col: col,\n y: this._getColGroupY( col, colSpan ),\n };\n };\n\n proto._manageStamp = function( stamp ) {\n var stampSize = getSize( stamp );\n var offset = this._getElementOffset( stamp );\n // get the columns that this stamp affects\n var isOriginLeft = this._getOption('originLeft');\n var firstX = isOriginLeft ? offset.left : offset.right;\n var lastX = firstX + stampSize.outerWidth;\n var firstCol = Math.floor( firstX / this.columnWidth );\n firstCol = Math.max( 0, firstCol );\n var lastCol = Math.floor( lastX / this.columnWidth );\n // lastCol should not go over if multiple of columnWidth #425\n lastCol -= lastX % this.columnWidth ? 0 : 1;\n lastCol = Math.min( this.cols - 1, lastCol );\n // set colYs to bottom of the stamp\n\n var isOriginTop = this._getOption('originTop');\n var stampMaxY = ( isOriginTop ? offset.top : offset.bottom ) +\n stampSize.outerHeight;\n for ( var i = firstCol; i <= lastCol; i++ ) {\n this.colYs[i] = Math.max( stampMaxY, this.colYs[i] );\n }\n };\n\n proto._getContainerSize = function() {\n this.maxY = Math.max.apply( Math, this.colYs );\n var size = {\n height: this.maxY\n };\n\n if ( this._getOption('fitWidth') ) {\n size.width = this._getContainerFitWidth();\n }\n\n return size;\n };\n\n proto._getContainerFitWidth = function() {\n var unusedCols = 0;\n // count unused columns\n var i = this.cols;\n while ( --i ) {\n if ( this.colYs[i] !== 0 ) {\n break;\n }\n unusedCols++;\n }\n // fit container to columns that have been used\n return ( this.cols - unusedCols ) * this.columnWidth - this.gutter;\n };\n\n proto.needsResizeLayout = function() {\n var previousWidth = this.containerWidth;\n this.getContainerWidth();\n return previousWidth != this.containerWidth;\n };\n\n return Masonry;\n\n}));\n","/**\n * Outlayer Item\n */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size'\n ],\n factory\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n require('ev-emitter'),\n require('get-size')\n );\n } else {\n // browser global\n window.Outlayer = {};\n window.Outlayer.Item = factory(\n window.EvEmitter,\n window.getSize\n );\n }\n\n}( window, function factory( EvEmitter, getSize ) {\n'use strict';\n\n// ----- helpers ----- //\n\nfunction isEmptyObj( obj ) {\n for ( var prop in obj ) {\n return false;\n }\n prop = null;\n return true;\n}\n\n// -------------------------- CSS3 support -------------------------- //\n\n\nvar docElemStyle = document.documentElement.style;\n\nvar transitionProperty = typeof docElemStyle.transition == 'string' ?\n 'transition' : 'WebkitTransition';\nvar transformProperty = typeof docElemStyle.transform == 'string' ?\n 'transform' : 'WebkitTransform';\n\nvar transitionEndEvent = {\n WebkitTransition: 'webkitTransitionEnd',\n transition: 'transitionend'\n}[ transitionProperty ];\n\n// cache all vendor properties that could have vendor prefix\nvar vendorProperties = {\n transform: transformProperty,\n transition: transitionProperty,\n transitionDuration: transitionProperty + 'Duration',\n transitionProperty: transitionProperty + 'Property',\n transitionDelay: transitionProperty + 'Delay'\n};\n\n// -------------------------- Item -------------------------- //\n\nfunction Item( element, layout ) {\n if ( !element ) {\n return;\n }\n\n this.element = element;\n // parent layout class, i.e. Masonry, Isotope, or Packery\n this.layout = layout;\n this.position = {\n x: 0,\n y: 0\n };\n\n this._create();\n}\n\n// inherit EvEmitter\nvar proto = Item.prototype = Object.create( EvEmitter.prototype );\nproto.constructor = Item;\n\nproto._create = function() {\n // transition objects\n this._transn = {\n ingProperties: {},\n clean: {},\n onEnd: {}\n };\n\n this.css({\n position: 'absolute'\n });\n};\n\n// trigger specified handler for event type\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * apply CSS styles to element\n * @param {Object} style\n */\nproto.css = function( style ) {\n var elemStyle = this.element.style;\n\n for ( var prop in style ) {\n // use vendor property if available\n var supportedProp = vendorProperties[ prop ] || prop;\n elemStyle[ supportedProp ] = style[ prop ];\n }\n};\n\n // measure position, and sets it\nproto.getPosition = function() {\n var style = getComputedStyle( this.element );\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n var xValue = style[ isOriginLeft ? 'left' : 'right' ];\n var yValue = style[ isOriginTop ? 'top' : 'bottom' ];\n var x = parseFloat( xValue );\n var y = parseFloat( yValue );\n // convert percent to pixels\n var layoutSize = this.layout.size;\n if ( xValue.indexOf('%') != -1 ) {\n x = ( x / 100 ) * layoutSize.width;\n }\n if ( yValue.indexOf('%') != -1 ) {\n y = ( y / 100 ) * layoutSize.height;\n }\n // clean up 'auto' or other non-integer values\n x = isNaN( x ) ? 0 : x;\n y = isNaN( y ) ? 0 : y;\n // remove padding from measurement\n x -= isOriginLeft ? layoutSize.paddingLeft : layoutSize.paddingRight;\n y -= isOriginTop ? layoutSize.paddingTop : layoutSize.paddingBottom;\n\n this.position.x = x;\n this.position.y = y;\n};\n\n// set settled position, apply padding\nproto.layoutPosition = function() {\n var layoutSize = this.layout.size;\n var style = {};\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n\n // x\n var xPadding = isOriginLeft ? 'paddingLeft' : 'paddingRight';\n var xProperty = isOriginLeft ? 'left' : 'right';\n var xResetProperty = isOriginLeft ? 'right' : 'left';\n\n var x = this.position.x + layoutSize[ xPadding ];\n // set in percentage or pixels\n style[ xProperty ] = this.getXValue( x );\n // reset other property\n style[ xResetProperty ] = '';\n\n // y\n var yPadding = isOriginTop ? 'paddingTop' : 'paddingBottom';\n var yProperty = isOriginTop ? 'top' : 'bottom';\n var yResetProperty = isOriginTop ? 'bottom' : 'top';\n\n var y = this.position.y + layoutSize[ yPadding ];\n // set in percentage or pixels\n style[ yProperty ] = this.getYValue( y );\n // reset other property\n style[ yResetProperty ] = '';\n\n this.css( style );\n this.emitEvent( 'layout', [ this ] );\n};\n\nproto.getXValue = function( x ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && !isHorizontal ?\n ( ( x / this.layout.size.width ) * 100 ) + '%' : x + 'px';\n};\n\nproto.getYValue = function( y ) {\n var isHorizontal = this.layout._getOption('horizontal');\n return this.layout.options.percentPosition && isHorizontal ?\n ( ( y / this.layout.size.height ) * 100 ) + '%' : y + 'px';\n};\n\nproto._transitionTo = function( x, y ) {\n this.getPosition();\n // get current x & y from top/left\n var curX = this.position.x;\n var curY = this.position.y;\n\n var didNotMove = x == this.position.x && y == this.position.y;\n\n // save end position\n this.setPosition( x, y );\n\n // if did not move and not transitioning, just go to layout\n if ( didNotMove && !this.isTransitioning ) {\n this.layoutPosition();\n return;\n }\n\n var transX = x - curX;\n var transY = y - curY;\n var transitionStyle = {};\n transitionStyle.transform = this.getTranslate( transX, transY );\n\n this.transition({\n to: transitionStyle,\n onTransitionEnd: {\n transform: this.layoutPosition\n },\n isCleaning: true\n });\n};\n\nproto.getTranslate = function( x, y ) {\n // flip cooridinates if origin on right or bottom\n var isOriginLeft = this.layout._getOption('originLeft');\n var isOriginTop = this.layout._getOption('originTop');\n x = isOriginLeft ? x : -x;\n y = isOriginTop ? y : -y;\n return 'translate3d(' + x + 'px, ' + y + 'px, 0)';\n};\n\n// non transition + transform support\nproto.goTo = function( x, y ) {\n this.setPosition( x, y );\n this.layoutPosition();\n};\n\nproto.moveTo = proto._transitionTo;\n\nproto.setPosition = function( x, y ) {\n this.position.x = parseFloat( x );\n this.position.y = parseFloat( y );\n};\n\n// ----- transition ----- //\n\n/**\n * @param {Object} style - CSS\n * @param {Function} onTransitionEnd\n */\n\n// non transition, just trigger callback\nproto._nonTransition = function( args ) {\n this.css( args.to );\n if ( args.isCleaning ) {\n this._removeStyles( args.to );\n }\n for ( var prop in args.onTransitionEnd ) {\n args.onTransitionEnd[ prop ].call( this );\n }\n};\n\n/**\n * proper transition\n * @param {Object} args - arguments\n * @param {Object} to - style to transition to\n * @param {Object} from - style to start transition from\n * @param {Boolean} isCleaning - removes transition styles after transition\n * @param {Function} onTransitionEnd - callback\n */\nproto.transition = function( args ) {\n // redirect to nonTransition if no transition duration\n if ( !parseFloat( this.layout.options.transitionDuration ) ) {\n this._nonTransition( args );\n return;\n }\n\n var _transition = this._transn;\n // keep track of onTransitionEnd callback by css property\n for ( var prop in args.onTransitionEnd ) {\n _transition.onEnd[ prop ] = args.onTransitionEnd[ prop ];\n }\n // keep track of properties that are transitioning\n for ( prop in args.to ) {\n _transition.ingProperties[ prop ] = true;\n // keep track of properties to clean up when transition is done\n if ( args.isCleaning ) {\n _transition.clean[ prop ] = true;\n }\n }\n\n // set from styles\n if ( args.from ) {\n this.css( args.from );\n // force redraw. http://blog.alexmaccaw.com/css-transitions\n var h = this.element.offsetHeight;\n // hack for JSHint to hush about unused var\n h = null;\n }\n // enable transition\n this.enableTransition( args.to );\n // set styles that are transitioning\n this.css( args.to );\n\n this.isTransitioning = true;\n\n};\n\n// dash before all cap letters, including first for\n// WebkitTransform => -webkit-transform\nfunction toDashedAll( str ) {\n return str.replace( /([A-Z])/g, function( $1 ) {\n return '-' + $1.toLowerCase();\n });\n}\n\nvar transitionProps = 'opacity,' + toDashedAll( transformProperty );\n\nproto.enableTransition = function(/* style */) {\n // HACK changing transitionProperty during a transition\n // will cause transition to jump\n if ( this.isTransitioning ) {\n return;\n }\n\n // make `transition: foo, bar, baz` from style object\n // HACK un-comment this when enableTransition can work\n // while a transition is happening\n // var transitionValues = [];\n // for ( var prop in style ) {\n // // dash-ify camelCased properties like WebkitTransition\n // prop = vendorProperties[ prop ] || prop;\n // transitionValues.push( toDashedAll( prop ) );\n // }\n // munge number to millisecond, to match stagger\n var duration = this.layout.options.transitionDuration;\n duration = typeof duration == 'number' ? duration + 'ms' : duration;\n // enable transition styles\n this.css({\n transitionProperty: transitionProps,\n transitionDuration: duration,\n transitionDelay: this.staggerDelay || 0\n });\n // listen for transition end event\n this.element.addEventListener( transitionEndEvent, this, false );\n};\n\n// ----- events ----- //\n\nproto.onwebkitTransitionEnd = function( event ) {\n this.ontransitionend( event );\n};\n\nproto.onotransitionend = function( event ) {\n this.ontransitionend( event );\n};\n\n// properties that I munge to make my life easier\nvar dashedVendorProperties = {\n '-webkit-transform': 'transform'\n};\n\nproto.ontransitionend = function( event ) {\n // disregard bubbled events from children\n if ( event.target !== this.element ) {\n return;\n }\n var _transition = this._transn;\n // get property name of transitioned property, convert to prefix-free\n var propertyName = dashedVendorProperties[ event.propertyName ] || event.propertyName;\n\n // remove property that has completed transitioning\n delete _transition.ingProperties[ propertyName ];\n // check if any properties are still transitioning\n if ( isEmptyObj( _transition.ingProperties ) ) {\n // all properties have completed transitioning\n this.disableTransition();\n }\n // clean style\n if ( propertyName in _transition.clean ) {\n // clean up style\n this.element.style[ event.propertyName ] = '';\n delete _transition.clean[ propertyName ];\n }\n // trigger onTransitionEnd callback\n if ( propertyName in _transition.onEnd ) {\n var onTransitionEnd = _transition.onEnd[ propertyName ];\n onTransitionEnd.call( this );\n delete _transition.onEnd[ propertyName ];\n }\n\n this.emitEvent( 'transitionEnd', [ this ] );\n};\n\nproto.disableTransition = function() {\n this.removeTransitionStyles();\n this.element.removeEventListener( transitionEndEvent, this, false );\n this.isTransitioning = false;\n};\n\n/**\n * removes style property from element\n * @param {Object} style\n**/\nproto._removeStyles = function( style ) {\n // clean up transition styles\n var cleanStyle = {};\n for ( var prop in style ) {\n cleanStyle[ prop ] = '';\n }\n this.css( cleanStyle );\n};\n\nvar cleanTransitionStyle = {\n transitionProperty: '',\n transitionDuration: '',\n transitionDelay: ''\n};\n\nproto.removeTransitionStyles = function() {\n // remove transition\n this.css( cleanTransitionStyle );\n};\n\n// ----- stagger ----- //\n\nproto.stagger = function( delay ) {\n delay = isNaN( delay ) ? 0 : delay;\n this.staggerDelay = delay + 'ms';\n};\n\n// ----- show/hide/remove ----- //\n\n// remove element from DOM\nproto.removeElem = function() {\n this.element.parentNode.removeChild( this.element );\n // remove display: none\n this.css({ display: '' });\n this.emitEvent( 'remove', [ this ] );\n};\n\nproto.remove = function() {\n // just remove element if no transition support or no transition\n if ( !transitionProperty || !parseFloat( this.layout.options.transitionDuration ) ) {\n this.removeElem();\n return;\n }\n\n // start transition\n this.once( 'transitionEnd', function() {\n this.removeElem();\n });\n this.hide();\n};\n\nproto.reveal = function() {\n delete this.isHidden;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('visibleStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onRevealTransitionEnd;\n\n this.transition({\n from: options.hiddenStyle,\n to: options.visibleStyle,\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onRevealTransitionEnd = function() {\n // check if still visible\n // during transition, item may have been hidden\n if ( !this.isHidden ) {\n this.emitEvent('reveal');\n }\n};\n\n/**\n * get style property use for hide/reveal transition end\n * @param {String} styleProperty - hiddenStyle/visibleStyle\n * @returns {String}\n */\nproto.getHideRevealTransitionEndProperty = function( styleProperty ) {\n var optionStyle = this.layout.options[ styleProperty ];\n // use opacity\n if ( optionStyle.opacity ) {\n return 'opacity';\n }\n // get first property\n for ( var prop in optionStyle ) {\n return prop;\n }\n};\n\nproto.hide = function() {\n // set flag\n this.isHidden = true;\n // remove display: none\n this.css({ display: '' });\n\n var options = this.layout.options;\n\n var onTransitionEnd = {};\n var transitionEndProperty = this.getHideRevealTransitionEndProperty('hiddenStyle');\n onTransitionEnd[ transitionEndProperty ] = this.onHideTransitionEnd;\n\n this.transition({\n from: options.visibleStyle,\n to: options.hiddenStyle,\n // keep hidden stuff hidden\n isCleaning: true,\n onTransitionEnd: onTransitionEnd\n });\n};\n\nproto.onHideTransitionEnd = function() {\n // check if still hidden\n // during transition, item may have been un-hidden\n if ( this.isHidden ) {\n this.css({ display: 'none' });\n this.emitEvent('hide');\n }\n};\n\nproto.destroy = function() {\n this.css({\n position: '',\n left: '',\n right: '',\n top: '',\n bottom: '',\n transition: '',\n transform: ''\n });\n};\n\nreturn Item;\n\n}));\n","/*!\n * Outlayer v2.1.1\n * the brains and guts of a layout library\n * MIT license\n */\n\n( function( window, factory ) {\n 'use strict';\n // universal module definition\n /* jshint strict: false */ /* globals define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './item'\n ],\n function( EvEmitter, getSize, utils, Item ) {\n return factory( window, EvEmitter, getSize, utils, Item);\n }\n );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./item')\n );\n } else {\n // browser global\n window.Outlayer = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n window.Outlayer.Item\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize, utils, Item ) {\n'use strict';\n\n// ----- vars ----- //\n\nvar console = window.console;\nvar jQuery = window.jQuery;\nvar noop = function() {};\n\n// -------------------------- Outlayer -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Outlayer intances\nvar instances = {};\n\n\n/**\n * @param {Element, String} element\n * @param {Object} options\n * @constructor\n */\nfunction Outlayer( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for ' + this.constructor.namespace +\n ': ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // add id for Outlayer.getFromElement\n var id = ++GUID;\n this.element.outlayerGUID = id; // expando\n instances[ id ] = this; // associate via id\n\n // kick it off\n this._create();\n\n var isInitLayout = this._getOption('initLayout');\n if ( isInitLayout ) {\n this.layout();\n }\n}\n\n// settings are for internal use only\nOutlayer.namespace = 'outlayer';\nOutlayer.Item = Item;\n\n// default options\nOutlayer.defaults = {\n containerStyle: {\n position: 'relative'\n },\n initLayout: true,\n originLeft: true,\n originTop: true,\n resize: true,\n resizeContainer: true,\n // item options\n transitionDuration: '0.4s',\n hiddenStyle: {\n opacity: 0,\n transform: 'scale(0.001)'\n },\n visibleStyle: {\n opacity: 1,\n transform: 'scale(1)'\n }\n};\n\nvar proto = Outlayer.prototype;\n// inherit EvEmitter\nutils.extend( proto, EvEmitter.prototype );\n\n/**\n * set options\n * @param {Object} opts\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\n/**\n * get backwards compatible option value, check old name\n */\nproto._getOption = function( option ) {\n var oldOption = this.constructor.compatOptions[ option ];\n return oldOption && this.options[ oldOption ] !== undefined ?\n this.options[ oldOption ] : this.options[ option ];\n};\n\nOutlayer.compatOptions = {\n // currentName: oldName\n initLayout: 'isInitLayout',\n horizontal: 'isHorizontal',\n layoutInstant: 'isLayoutInstant',\n originLeft: 'isOriginLeft',\n originTop: 'isOriginTop',\n resize: 'isResizeBound',\n resizeContainer: 'isResizingContainer'\n};\n\nproto._create = function() {\n // get items from children\n this.reloadItems();\n // elements that affect layout, but are not laid out\n this.stamps = [];\n this.stamp( this.options.stamp );\n // set container style\n utils.extend( this.element.style, this.options.containerStyle );\n\n // bind resize method\n var canBindResize = this._getOption('resize');\n if ( canBindResize ) {\n this.bindResize();\n }\n};\n\n// goes through all children again and gets bricks in proper order\nproto.reloadItems = function() {\n // collection of item elements\n this.items = this._itemize( this.element.children );\n};\n\n\n/**\n * turn elements into Outlayer.Items to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - collection of new Outlayer Items\n */\nproto._itemize = function( elems ) {\n\n var itemElems = this._filterFindItemElements( elems );\n var Item = this.constructor.Item;\n\n // create new Outlayer Items for collection\n var items = [];\n for ( var i=0; i < itemElems.length; i++ ) {\n var elem = itemElems[i];\n var item = new Item( elem, this );\n items.push( item );\n }\n\n return items;\n};\n\n/**\n * get item elements to be used in layout\n * @param {Array or NodeList or HTMLElement} elems\n * @returns {Array} items - item elements\n */\nproto._filterFindItemElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.itemSelector );\n};\n\n/**\n * getter method for getting item elements\n * @returns {Array} elems - collection of item elements\n */\nproto.getItemElements = function() {\n return this.items.map( function( item ) {\n return item.element;\n });\n};\n\n// ----- init & layout ----- //\n\n/**\n * lays out all items\n */\nproto.layout = function() {\n this._resetLayout();\n this._manageStamps();\n\n // don't animate first layout\n var layoutInstant = this._getOption('layoutInstant');\n var isInstant = layoutInstant !== undefined ?\n layoutInstant : !this._isLayoutInited;\n this.layoutItems( this.items, isInstant );\n\n // flag for initalized\n this._isLayoutInited = true;\n};\n\n// _init is alias for layout\nproto._init = proto.layout;\n\n/**\n * logic before any new layout\n */\nproto._resetLayout = function() {\n this.getSize();\n};\n\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\n/**\n * get measurement from option, for columnWidth, rowHeight, gutter\n * if option is String -> get element from selector string, & get size of element\n * if option is Element -> get size of element\n * else use option as a number\n *\n * @param {String} measurement\n * @param {String} size - width or height\n * @private\n */\nproto._getMeasurement = function( measurement, size ) {\n var option = this.options[ measurement ];\n var elem;\n if ( !option ) {\n // default to 0\n this[ measurement ] = 0;\n } else {\n // use option as an element\n if ( typeof option == 'string' ) {\n elem = this.element.querySelector( option );\n } else if ( option instanceof HTMLElement ) {\n elem = option;\n }\n // use size of element, if element\n this[ measurement ] = elem ? getSize( elem )[ size ] : option;\n }\n};\n\n/**\n * layout a collection of item elements\n * @api public\n */\nproto.layoutItems = function( items, isInstant ) {\n items = this._getItemsForLayout( items );\n\n this._layoutItems( items, isInstant );\n\n this._postLayout();\n};\n\n/**\n * get the items to be laid out\n * you may want to skip over some items\n * @param {Array} items\n * @returns {Array} items\n */\nproto._getItemsForLayout = function( items ) {\n return items.filter( function( item ) {\n return !item.isIgnored;\n });\n};\n\n/**\n * layout items\n * @param {Array} items\n * @param {Boolean} isInstant\n */\nproto._layoutItems = function( items, isInstant ) {\n this._emitCompleteOnItems( 'layout', items );\n\n if ( !items || !items.length ) {\n // no items, emit event with empty array\n return;\n }\n\n var queue = [];\n\n items.forEach( function( item ) {\n // get x/y object from method\n var position = this._getItemLayoutPosition( item );\n // enqueue\n position.item = item;\n position.isInstant = isInstant || item.isLayoutInstant;\n queue.push( position );\n }, this );\n\n this._processLayoutQueue( queue );\n};\n\n/**\n * get item layout position\n * @param {Outlayer.Item} item\n * @returns {Object} x and y position\n */\nproto._getItemLayoutPosition = function( /* item */ ) {\n return {\n x: 0,\n y: 0\n };\n};\n\n/**\n * iterate over array and position each item\n * Reason being - separating this logic prevents 'layout invalidation'\n * thx @paul_irish\n * @param {Array} queue\n */\nproto._processLayoutQueue = function( queue ) {\n this.updateStagger();\n queue.forEach( function( obj, i ) {\n this._positionItem( obj.item, obj.x, obj.y, obj.isInstant, i );\n }, this );\n};\n\n// set stagger from option in milliseconds number\nproto.updateStagger = function() {\n var stagger = this.options.stagger;\n if ( stagger === null || stagger === undefined ) {\n this.stagger = 0;\n return;\n }\n this.stagger = getMilliseconds( stagger );\n return this.stagger;\n};\n\n/**\n * Sets position of item in DOM\n * @param {Outlayer.Item} item\n * @param {Number} x - horizontal position\n * @param {Number} y - vertical position\n * @param {Boolean} isInstant - disables transitions\n */\nproto._positionItem = function( item, x, y, isInstant, i ) {\n if ( isInstant ) {\n // if not transition, just set CSS\n item.goTo( x, y );\n } else {\n item.stagger( i * this.stagger );\n item.moveTo( x, y );\n }\n};\n\n/**\n * Any logic you want to do after each layout,\n * i.e. size the container\n */\nproto._postLayout = function() {\n this.resizeContainer();\n};\n\nproto.resizeContainer = function() {\n var isResizingContainer = this._getOption('resizeContainer');\n if ( !isResizingContainer ) {\n return;\n }\n var size = this._getContainerSize();\n if ( size ) {\n this._setContainerMeasure( size.width, true );\n this._setContainerMeasure( size.height, false );\n }\n};\n\n/**\n * Sets width or height of container if returned\n * @returns {Object} size\n * @param {Number} width\n * @param {Number} height\n */\nproto._getContainerSize = noop;\n\n/**\n * @param {Number} measure - size of width or height\n * @param {Boolean} isWidth\n */\nproto._setContainerMeasure = function( measure, isWidth ) {\n if ( measure === undefined ) {\n return;\n }\n\n var elemSize = this.size;\n // add padding and border width if border box\n if ( elemSize.isBorderBox ) {\n measure += isWidth ? elemSize.paddingLeft + elemSize.paddingRight +\n elemSize.borderLeftWidth + elemSize.borderRightWidth :\n elemSize.paddingBottom + elemSize.paddingTop +\n elemSize.borderTopWidth + elemSize.borderBottomWidth;\n }\n\n measure = Math.max( measure, 0 );\n this.element.style[ isWidth ? 'width' : 'height' ] = measure + 'px';\n};\n\n/**\n * emit eventComplete on a collection of items events\n * @param {String} eventName\n * @param {Array} items - Outlayer.Items\n */\nproto._emitCompleteOnItems = function( eventName, items ) {\n var _this = this;\n function onComplete() {\n _this.dispatchEvent( eventName + 'Complete', null, [ items ] );\n }\n\n var count = items.length;\n if ( !items || !count ) {\n onComplete();\n return;\n }\n\n var doneCount = 0;\n function tick() {\n doneCount++;\n if ( doneCount == count ) {\n onComplete();\n }\n }\n\n // bind callback\n items.forEach( function( item ) {\n item.once( eventName, tick );\n });\n};\n\n/**\n * emits events via EvEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n // add original event to arguments\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery ) {\n // set this.$element\n this.$element = this.$element || jQuery( this.element );\n if ( event ) {\n // create jQuery event\n var $event = jQuery.Event( event );\n $event.type = type;\n this.$element.trigger( $event, args );\n } else {\n // just trigger with type if no event available\n this.$element.trigger( type, args );\n }\n }\n};\n\n// -------------------------- ignore & stamps -------------------------- //\n\n\n/**\n * keep item in collection, but do not lay it out\n * ignored items do not get skipped in layout\n * @param {Element} elem\n */\nproto.ignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n item.isIgnored = true;\n }\n};\n\n/**\n * return item to layout collection\n * @param {Element} elem\n */\nproto.unignore = function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n delete item.isIgnored;\n }\n};\n\n/**\n * adds elements to stamps\n * @param {NodeList, Array, Element, or String} elems\n */\nproto.stamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ) {\n return;\n }\n\n this.stamps = this.stamps.concat( elems );\n // ignore\n elems.forEach( this.ignore, this );\n};\n\n/**\n * removes elements to stamps\n * @param {NodeList, Array, or Element} elems\n */\nproto.unstamp = function( elems ) {\n elems = this._find( elems );\n if ( !elems ){\n return;\n }\n\n elems.forEach( function( elem ) {\n // filter out removed stamp elements\n utils.removeFrom( this.stamps, elem );\n this.unignore( elem );\n }, this );\n};\n\n/**\n * finds child elements\n * @param {NodeList, Array, Element, or String} elems\n * @returns {Array} elems\n */\nproto._find = function( elems ) {\n if ( !elems ) {\n return;\n }\n // if string, use argument as selector string\n if ( typeof elems == 'string' ) {\n elems = this.element.querySelectorAll( elems );\n }\n elems = utils.makeArray( elems );\n return elems;\n};\n\nproto._manageStamps = function() {\n if ( !this.stamps || !this.stamps.length ) {\n return;\n }\n\n this._getBoundingRect();\n\n this.stamps.forEach( this._manageStamp, this );\n};\n\n// update boundingLeft / Top\nproto._getBoundingRect = function() {\n // get bounding rect for container element\n var boundingRect = this.element.getBoundingClientRect();\n var size = this.size;\n this._boundingRect = {\n left: boundingRect.left + size.paddingLeft + size.borderLeftWidth,\n top: boundingRect.top + size.paddingTop + size.borderTopWidth,\n right: boundingRect.right - ( size.paddingRight + size.borderRightWidth ),\n bottom: boundingRect.bottom - ( size.paddingBottom + size.borderBottomWidth )\n };\n};\n\n/**\n * @param {Element} stamp\n**/\nproto._manageStamp = noop;\n\n/**\n * get x/y position of element relative to container element\n * @param {Element} elem\n * @returns {Object} offset - has left, top, right, bottom\n */\nproto._getElementOffset = function( elem ) {\n var boundingRect = elem.getBoundingClientRect();\n var thisRect = this._boundingRect;\n var size = getSize( elem );\n var offset = {\n left: boundingRect.left - thisRect.left - size.marginLeft,\n top: boundingRect.top - thisRect.top - size.marginTop,\n right: thisRect.right - boundingRect.right - size.marginRight,\n bottom: thisRect.bottom - boundingRect.bottom - size.marginBottom\n };\n return offset;\n};\n\n// -------------------------- resize -------------------------- //\n\n// enable event handlers for listeners\n// i.e. resize -> onresize\nproto.handleEvent = utils.handleEvent;\n\n/**\n * Bind layout to window resizing\n */\nproto.bindResize = function() {\n window.addEventListener( 'resize', this );\n this.isResizeBound = true;\n};\n\n/**\n * Unbind layout to window resizing\n */\nproto.unbindResize = function() {\n window.removeEventListener( 'resize', this );\n this.isResizeBound = false;\n};\n\nproto.onresize = function() {\n this.resize();\n};\n\nutils.debounceMethod( Outlayer, 'onresize', 100 );\n\nproto.resize = function() {\n // don't trigger if size did not change\n // or if resize was unbound. See #9\n if ( !this.isResizeBound || !this.needsResizeLayout() ) {\n return;\n }\n\n this.layout();\n};\n\n/**\n * check if layout is needed post layout\n * @returns Boolean\n */\nproto.needsResizeLayout = function() {\n var size = getSize( this.element );\n // check that this.size and size are there\n // IE8 triggers resize on body size change, so they might not be\n var hasSizes = this.size && size;\n return hasSizes && size.innerWidth !== this.size.innerWidth;\n};\n\n// -------------------------- methods -------------------------- //\n\n/**\n * add items to Outlayer instance\n * @param {Array or NodeList or Element} elems\n * @returns {Array} items - Outlayer.Items\n**/\nproto.addItems = function( elems ) {\n var items = this._itemize( elems );\n // add items to collection\n if ( items.length ) {\n this.items = this.items.concat( items );\n }\n return items;\n};\n\n/**\n * Layout newly-appended item elements\n * @param {Array or NodeList or Element} elems\n */\nproto.appended = function( elems ) {\n var items = this.addItems( elems );\n if ( !items.length ) {\n return;\n }\n // layout and reveal just the new items\n this.layoutItems( items, true );\n this.reveal( items );\n};\n\n/**\n * Layout prepended elements\n * @param {Array or NodeList or Element} elems\n */\nproto.prepended = function( elems ) {\n var items = this._itemize( elems );\n if ( !items.length ) {\n return;\n }\n // add items to beginning of collection\n var previousItems = this.items.slice(0);\n this.items = items.concat( previousItems );\n // start new layout\n this._resetLayout();\n this._manageStamps();\n // layout new stuff without transition\n this.layoutItems( items, true );\n this.reveal( items );\n // layout previous items\n this.layoutItems( previousItems );\n};\n\n/**\n * reveal a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.reveal = function( items ) {\n this._emitCompleteOnItems( 'reveal', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.reveal();\n });\n};\n\n/**\n * hide a collection of items\n * @param {Array of Outlayer.Items} items\n */\nproto.hide = function( items ) {\n this._emitCompleteOnItems( 'hide', items );\n if ( !items || !items.length ) {\n return;\n }\n var stagger = this.updateStagger();\n items.forEach( function( item, i ) {\n item.stagger( i * stagger );\n item.hide();\n });\n};\n\n/**\n * reveal item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.revealItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.reveal( items );\n};\n\n/**\n * hide item elements\n * @param {Array}, {Element}, {NodeList} items\n */\nproto.hideItemElements = function( elems ) {\n var items = this.getItems( elems );\n this.hide( items );\n};\n\n/**\n * get Outlayer.Item, given an Element\n * @param {Element} elem\n * @param {Function} callback\n * @returns {Outlayer.Item} item\n */\nproto.getItem = function( elem ) {\n // loop through items to get the one that matches\n for ( var i=0; i < this.items.length; i++ ) {\n var item = this.items[i];\n if ( item.element == elem ) {\n // return item\n return item;\n }\n }\n};\n\n/**\n * get collection of Outlayer.Items, given Elements\n * @param {Array} elems\n * @returns {Array} items - Outlayer.Items\n */\nproto.getItems = function( elems ) {\n elems = utils.makeArray( elems );\n var items = [];\n elems.forEach( function( elem ) {\n var item = this.getItem( elem );\n if ( item ) {\n items.push( item );\n }\n }, this );\n\n return items;\n};\n\n/**\n * remove element(s) from instance and DOM\n * @param {Array or NodeList or Element} elems\n */\nproto.remove = function( elems ) {\n var removeItems = this.getItems( elems );\n\n this._emitCompleteOnItems( 'remove', removeItems );\n\n // bail if no items to remove\n if ( !removeItems || !removeItems.length ) {\n return;\n }\n\n removeItems.forEach( function( item ) {\n item.remove();\n // remove item from collection\n utils.removeFrom( this.items, item );\n }, this );\n};\n\n// ----- destroy ----- //\n\n// remove and disable Outlayer instance\nproto.destroy = function() {\n // clean up dynamic styles\n var style = this.element.style;\n style.height = '';\n style.position = '';\n style.width = '';\n // destroy items\n this.items.forEach( function( item ) {\n item.destroy();\n });\n\n this.unbindResize();\n\n var id = this.element.outlayerGUID;\n delete instances[ id ]; // remove reference to instance by id\n delete this.element.outlayerGUID;\n // remove data for jQuery\n if ( jQuery ) {\n jQuery.removeData( this.element, this.constructor.namespace );\n }\n\n};\n\n// -------------------------- data -------------------------- //\n\n/**\n * get Outlayer instance from element\n * @param {Element} elem\n * @returns {Outlayer}\n */\nOutlayer.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.outlayerGUID;\n return id && instances[ id ];\n};\n\n\n// -------------------------- create Outlayer class -------------------------- //\n\n/**\n * create a layout class\n * @param {String} namespace\n */\nOutlayer.create = function( namespace, options ) {\n // sub-class Outlayer\n var Layout = subclass( Outlayer );\n // apply new options and compatOptions\n Layout.defaults = utils.extend( {}, Outlayer.defaults );\n utils.extend( Layout.defaults, options );\n Layout.compatOptions = utils.extend( {}, Outlayer.compatOptions );\n\n Layout.namespace = namespace;\n\n Layout.data = Outlayer.data;\n\n // sub-class Item\n Layout.Item = subclass( Item );\n\n // -------------------------- declarative -------------------------- //\n\n utils.htmlInit( Layout, namespace );\n\n // -------------------------- jQuery bridge -------------------------- //\n\n // make into jQuery plugin\n if ( jQuery && jQuery.bridget ) {\n jQuery.bridget( namespace, Layout );\n }\n\n return Layout;\n};\n\nfunction subclass( Parent ) {\n function SubClass() {\n Parent.apply( this, arguments );\n }\n\n SubClass.prototype = Object.create( Parent.prototype );\n SubClass.prototype.constructor = SubClass;\n\n return SubClass;\n}\n\n// ----- helpers ----- //\n\n// how many milliseconds are in each unit\nvar msUnits = {\n ms: 1,\n s: 1000\n};\n\n// munge time-like parameter into millisecond number\n// '0.4s' -> 40\nfunction getMilliseconds( time ) {\n if ( typeof time == 'number' ) {\n return time;\n }\n var matches = time.match( /(^\\d*\\.?\\d*)(\\w*)/ );\n var num = matches && matches[1];\n var unit = matches && matches[2];\n if ( !num.length ) {\n return 0;\n }\n num = parseFloat( num );\n var mult = msUnits[ unit ] || 1;\n return num * mult;\n}\n\n// ----- fin ----- //\n\n// back in global\nOutlayer.Item = Item;\n\nreturn Outlayer;\n\n}));\n","import 'otxFrontend'"],"sourceRoot":""}