diff --git a/config.toml b/config.toml index e54136924fc9eeb94657d5a42c6db1eba71a8174..7a3fba45d13c9f9f2e8eee8db16f916dcda43bfc 100644 --- a/config.toml +++ b/config.toml @@ -10,7 +10,27 @@ Favicon = "favicon.ico" OpenLinksInNewWindow = true [[ params.nav ]] -name = "screego" -tag = "screego" -icon = "desktop" +name = "lab" +tag = "lab" +icon = "television television-lab" + +[[ params.nav ]] +name = "green" +tag = "green" +icon = "television television-green" + +[[ params.nav ]] +name = "red" +tag = "red" +icon = "television television-red" + +[[ params.nav ]] +name = "gray" +tag = "gray" +icon = "television television-gray" + +[[ params.nav ]] +name = "blue" +tag = "blue" +icon = "television television-blue" diff --git a/data/links.yml b/data/links.yml index 440a4481fe8750cf09bad690b0ae485017b43f3f..c87b8bcd4fd3471a6b30d2532b8cf0000c61f899 100644 --- a/data/links.yml +++ b/data/links.yml @@ -5,32 +5,32 @@ tiles: img: "logos/screego.svg" txt_color: "#ffffff" bg_color: "#16254d" - tags: ["screego"] + tags: ["lab"] - name: "Screego Red" url: "https://goto0.screego.users.h-da.cloud:5050/?room=SE-Lab-Red" img: "logos/screego.svg" txt_color: "#ffffff" bg_color: "#9b1e05" - tags: ["screego"] + tags: ["red"] - name: "Screego Blue" url: "https://goto0.screego.users.h-da.cloud:5050/?room=SE-Lab-Blue" img: "logos/screego.svg" txt_color: "#ffffff" bg_color: "#0a72ad" - tags: ["screego"] + tags: ["blue"] - name: "Screego Green" url: "https://goto0.screego.users.h-da.cloud:5050/?room=SE-Lab-Green" img: "logos/screego.svg" txt_color: "#ffffff" bg_color: "#054841" - tags: ["screego"] + tags: ["green"] - name: "Screego Gray" url: "https://goto0.screego.users.h-da.cloud:5050/?room=SE-Lab-Gray" img: "logos/screego.svg" txt_color: "#ffffff" bg_color: "#878b86" - tags: ["screego"] \ No newline at end of file + tags: ["gray"] \ No newline at end of file diff --git a/themes/slate/package.json b/themes/slate/package.json index f1a83b913870f9f1166c037eac2210089ccc5e79..facdf9e93ab17aed35d07682f34da3b56433732c 100644 --- a/themes/slate/package.json +++ b/themes/slate/package.json @@ -27,7 +27,7 @@ "run-sequence": "^1.2.2" }, "dependencies": { - "font-awesome": "^4.7.0", + "font-awesome": "^6.2.1", "shufflejs": "^4.1.1", "tinycolor2": "^1.4.1" } diff --git a/themes/slate/static/css/slate.css b/themes/slate/static/css/slate.css index 76c8b540ac8cd5b2d6761050da4fcced667e70bb..085d6e2a078b32cbd1e73b29640a963244532466 100644 --- a/themes/slate/static/css/slate.css +++ b/themes/slate/static/css/slate.css @@ -1,18 +1,33 @@ -/*! * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ +/*! * Font Awesome 6.2.1 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ @font-face{ font-family:FontAwesome; - src:url(../fonts/fontawesome-webfont.eot?v=4.7.0); - src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff2?v=4.7.0) format("woff2"),url(../fonts/fontawesome-webfont.woff?v=4.7.0) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.7.0) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular) format("svg"); + src:url(../fonts/fontawesome-webfont.eot?v=6.2.1); + src:url(../fonts/fontawesome-webfont.eot?#iefix&v=6.2.1) format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff2?v=6.2.1) format("woff2"),url(../fonts/fontawesome-webfont.woff?v=6.2.1) format("woff"),url(../fonts/fontawesome-webfont.ttf?v=6.2.1) format("truetype"),url(../fonts/fontawesome-webfont.svg?v=6.2.1#fontawesomeregular) format("svg"); font-weight:400; font-style:normal } .fa{ display:inline-block; font:normal normal normal 14px/1 FontAwesome; - font-size:inherit; + font-size: 25px; text-rendering:auto; -webkit-font-smoothing:antialiased; - -moz-osx-font-smoothing:grayscale + -moz-osx-font-smoothing:grayscale; +} +.television-lab { + color: #16254d; +} +.television-green { + color: #054841; +} +.television-blue { + color: #0a72ad; +} +.television-red { + color: #9b1e05; +} +.television-gray { + color: #878b86; } .fa-lg{ font-size:1.33333333em; diff --git a/themes/slate/static/js/slate.js b/themes/slate/static/js/slate.js index 7336babb6fd042aac07bfb20e12a273f1d6ab3e6..33badbd4c987a2c7f361d61e342da940d1bb88bc 100644 --- a/themes/slate/static/js/slate.js +++ b/themes/slate/static/js/slate.js @@ -1,2 +1,1667 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.shuffle=e()}(this,function(){"use strict";function t(t,e){if(A)return A.call(t,e);for(var i=t.parentNode.querySelectorAll(e),n=0;n<i.length;n++)if(i[n]==t)return!0;return!1}function e(){for(var t={},e=0;e<arguments.length;e++){var i=arguments[e];for(var n in i)C.call(i,n)&&(t[n]=i[n])}return t}function i(t,e){function i(){o=0,a=+new Date,s=t.apply(n,r),n=null,r=null}var n,r,s,o,a=0;return function(){n=this,r=arguments;var t=new Date-a;return o||(t>=e?i():o=setTimeout(i,e-t)),s}}function n(){}function r(t){return parseFloat(t)||0}function s(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window.getComputedStyle(t,null),n=r(i[e]);return O||"width"!==e?O||"height"!==e||(n+=r(i.paddingTop)+r(i.paddingBottom)+r(i.borderTopWidth)+r(i.borderBottomWidth)):n+=r(i.paddingLeft)+r(i.paddingRight)+r(i.borderLeftWidth)+r(i.borderRightWidth),n}function o(t){for(var e=t.length;e;){e-=1;var i=Math.floor(Math.random()*(e+1)),n=t[i];t[i]=t[e],t[e]=n}return t}function a(t,e){var i=x(W,e),n=[].slice.call(t),r=!1;return t.length?i.randomize?o(t):("function"==typeof i.by&&t.sort(function(t,e){if(r)return 0;var n=i.by(t[i.key]),s=i.by(e[i.key]);return void 0===n&&void 0===s?(r=!0,0):n<s||"sortFirst"===n||"sortLast"===s?-1:n>s||"sortLast"===n||"sortFirst"===s?1:0}),r?n:(i.reverse&&t.reverse(),t)):[]}function l(){return V+=1,P+V}function u(t){return!!q[t]&&(q[t].element.removeEventListener(P,q[t].listener),q[t]=null,!0)}function h(t,e){var i=l(),n=function(t){t.currentTarget===t.target&&(u(i),e(t))};return t.addEventListener(P,n),q[i]={element:t,listener:n},i}function f(t){return Math.max.apply(Math,t)}function c(t){return Math.min.apply(Math,t)}function d(t,e,i,n){var r=t/e;return Math.abs(Math.round(r)-r)<n&&(r=Math.round(r)),Math.min(Math.ceil(r),i)}function g(t,e,i){if(1===e)return t;for(var n=[],r=0;r<=i-e;r++)n.push(f(t.slice(r,r+e)));return n}function m(t,e){for(var i=c(t),n=0,r=t.length;n<r;n++)if(t[n]>=i-e&&t[n]<=i+e)return n;return 0}function p(t){for(var e=t.itemSize,i=t.positions,n=t.gridSize,r=t.total,s=t.threshold,o=t.buffer,a=d(e.width,n,r,s),l=g(i,a,r),u=m(l,o),h=new D(Math.round(n*u),Math.round(l[u])),f=l[u]+e.height,c=0;c<a;c++)i[u+c]=f;return h}function v(t){return Array.prototype.slice.call(t)}function b(t,e){return t.indexOf(e)>-1}try{var y=new window.CustomEvent("test");if(y.preventDefault(),!0!==y.defaultPrevented)throw new Error("Could not prevent default")}catch(t){var _=function(t,e){var i,n;return e=e||{bubbles:!1,cancelable:!1,detail:void 0},i=document.createEvent("CustomEvent"),i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n=i.preventDefault,i.preventDefault=function(){n.call(this);try{Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})}catch(t){this.defaultPrevented=!0}},i};_.prototype=window.Event.prototype,window.CustomEvent=_}var S=Element.prototype,A=S.matches||S.matchesSelector||S.webkitMatchesSelector||S.mozMatchesSelector||S.msMatchesSelector||S.oMatchesSelector,k=t,E="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},w=function(t,e){return e={exports:{}},t(e,e.exports),e.exports}(function(t){function e(t){for(var e=[],i=0;i<t.length;i++)-1===e.indexOf(t[i])&&e.push(t[i]);return e}function i(t){var e=new Set;return t.filter(function(t){return!e.has(t)&&(e.add(t),!0)})}function n(t){var e=[];return new Set(t).forEach(function(t){e.push(t)}),e}"Set"in E?"function"==typeof Set.prototype.forEach&&function(){var t=!1;return new Set([!0]).forEach(function(e){t=e}),!0===t}()?t.exports=n:t.exports=i:t.exports=e}),x=e,C=Object.prototype.hasOwnProperty,I=i,T=function(t,e,i){function r(t){return function(e,n){if(!o){if(e)return i(e,a),void(o=!0);a[t]=n,--s||i(null,a)}}}i||("function"==typeof e?(i=e,e=null):i=n);var s=t&&t.length;if(!s)return i(null,[]);var o=!1,a=new Array(s);t.forEach(e?function(t,i){t.call(e,r(i))}:function(t,e){t(r(e))})},F=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},L=function(){function t(t,e){for(var i=0;i<e.length;i++){var n=e[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,i,n){return i&&t(e.prototype,i),n&&t(e,n),e}}(),D=function(){function t(e,i){F(this,t),this.x=r(e),this.y=r(i)}return L(t,null,[{key:"equals",value:function(t,e){return t.x===e.x&&t.y===e.y}}]),t}(),z={BASE:"shuffle",SHUFFLE_ITEM:"shuffle-item",VISIBLE:"shuffle-item--visible",HIDDEN:"shuffle-item--hidden"},B=0,M=function(){function t(e){F(this,t),B+=1,this.id=B,this.element=e,this.isVisible=!0}return L(t,[{key:"show",value:function(){this.isVisible=!0,this.element.classList.remove(z.HIDDEN),this.element.classList.add(z.VISIBLE)}},{key:"hide",value:function(){this.isVisible=!1,this.element.classList.remove(z.VISIBLE),this.element.classList.add(z.HIDDEN)}},{key:"init",value:function(){this.addClasses([z.SHUFFLE_ITEM,z.VISIBLE]),this.applyCss(t.Css.INITIAL),this.scale=t.Scale.VISIBLE,this.point=new D}},{key:"addClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.add(t)})}},{key:"removeClasses",value:function(t){var e=this;t.forEach(function(t){e.element.classList.remove(t)})}},{key:"applyCss",value:function(t){var e=this;Object.keys(t).forEach(function(i){e.element.style[i]=t[i]})}},{key:"dispose",value:function(){this.removeClasses([z.HIDDEN,z.VISIBLE,z.SHUFFLE_ITEM]),this.element.removeAttribute("style"),this.element=null}}]),t}();M.Css={INITIAL:{position:"absolute",top:0,left:0,visibility:"visible","will-change":"transform"},VISIBLE:{before:{opacity:1,visibility:"visible"},after:{}},HIDDEN:{before:{opacity:0},after:{visibility:"hidden"}}},M.Scale={VISIBLE:1,HIDDEN:.001};var H=document.body||document.documentElement,R=document.createElement("div");R.style.cssText="width:10px;padding:2px;box-sizing:border-box;",H.appendChild(R);var N=window.getComputedStyle(R,null).width,O="10px"===N;H.removeChild(R);var W={reverse:!1,by:null,randomize:!1,key:"element"},q={},P="transitionend",V=0,U=0,j=function(){function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};F(this,t),this.options=x(t.options,i),this.useSizer=!1,this.lastSort={},this.group=t.ALL_ITEMS,this.lastFilter=t.ALL_ITEMS,this.isEnabled=!0,this.isDestroyed=!1,this.isInitialized=!1,this._transitions=[],this.isTransitioning=!1,this._queue=[];var n=this._getElementOption(e);if(!n)throw new TypeError("Shuffle needs to be initialized with an element.");this.element=n,this.id="shuffle_"+U,U+=1,this._init(),this.isInitialized=!0}return L(t,[{key:"_init",value:function(){this.items=this._getItems(),this.options.sizer=this._getElementOption(this.options.sizer),this.options.sizer&&(this.useSizer=!0),this.element.classList.add(t.Classes.BASE),this._initItems(),this._onResize=this._getResizeFunction(),window.addEventListener("resize",this._onResize);var e=window.getComputedStyle(this.element,null),i=t.getSize(this.element).width;this._validateStyles(e),this._setColumns(i),this.filter(this.options.group,this.options.initialSort),this.element.offsetWidth,this._setTransitions(),this.element.style.transition="height "+this.options.speed+"ms "+this.options.easing}},{key:"_getResizeFunction",value:function(){var t=this._handleResize.bind(this);return this.options.throttle?this.options.throttle(t,this.options.throttleTime):t}},{key:"_getElementOption",value:function(t){return"string"==typeof t?this.element.querySelector(t):t&&t.nodeType&&1===t.nodeType?t:t&&t.jquery?t[0]:null}},{key:"_validateStyles",value:function(t){"static"===t.position&&(this.element.style.position="relative"),"hidden"!==t.overflow&&(this.element.style.overflow="hidden")}},{key:"_filter",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastFilter,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.items,i=this._getFilteredSets(t,e);return this._toggleFilterClasses(i),this.lastFilter=t,"string"==typeof t&&(this.group=t),i}},{key:"_getFilteredSets",value:function(e,i){var n=this,r=[],s=[];return e===t.ALL_ITEMS?r=i:i.forEach(function(t){n._doesPassFilter(e,t.element)?r.push(t):s.push(t)}),{visible:r,hidden:s}}},{key:"_doesPassFilter",value:function(e,i){function n(t){return b(s,t)}if("function"==typeof e)return e.call(i,i,this);var r=i.getAttribute("data-"+t.FILTER_ATTRIBUTE_KEY),s=this.options.delimeter?r.split(this.options.delimeter):JSON.parse(r);return Array.isArray(e)?this.options.filterMode===t.FilterMode.ANY?e.some(n):e.every(n):b(s,e)}},{key:"_toggleFilterClasses",value:function(t){var e=t.visible,i=t.hidden;e.forEach(function(t){t.show()}),i.forEach(function(t){t.hide()})}},{key:"_initItems",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.items).forEach(function(t){t.init()})}},{key:"_disposeItems",value:function(){(arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.items).forEach(function(t){t.dispose()})}},{key:"_updateItemCount",value:function(){this.visibleItems=this._getFilteredItems().length}},{key:"_setTransitions",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.items,e=this.options.speed,i=this.options.easing,n=this.options.useTransforms?"transform "+e+"ms "+i+", opacity "+e+"ms "+i:"top "+e+"ms "+i+", left "+e+"ms "+i+", opacity "+e+"ms "+i;t.forEach(function(t){t.element.style.transition=n})}},{key:"_getItems",value:function(){var t=this;return v(this.element.children).filter(function(e){return k(e,t.options.itemSelector)}).map(function(t){return new M(t)})}},{key:"_updateItemsOrder",value:function(){var t=this.element.children;this.items=a(this.items,{by:function(e){return Array.prototype.indexOf.call(t,e)}})}},{key:"_getFilteredItems",value:function(){return this.items.filter(function(t){return t.isVisible})}},{key:"_getConcealedItems",value:function(){return this.items.filter(function(t){return!t.isVisible})}},{key:"_getColumnSize",value:function(e,i){var n=void 0;return n="function"==typeof this.options.columnWidth?this.options.columnWidth(e):this.useSizer?t.getSize(this.options.sizer).width:this.options.columnWidth?this.options.columnWidth:this.items.length>0?t.getSize(this.items[0].element,!0).width:e,0===n&&(n=e),n+i}},{key:"_getGutterSize",value:function(t){return"function"==typeof this.options.gutterWidth?this.options.gutterWidth(t):this.useSizer?s(this.options.sizer,"marginLeft"):this.options.gutterWidth}},{key:"_setColumns",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:t.getSize(this.element).width,i=this._getGutterSize(e),n=this._getColumnSize(e,i),r=(e+i)/n;Math.abs(Math.round(r)-r)<this.options.columnThreshold&&(r=Math.round(r)),this.cols=Math.max(Math.floor(r),1),this.containerWidth=e,this.colWidth=n}},{key:"_setContainerSize",value:function(){this.element.style.height=this._getContainerSize()+"px"}},{key:"_getContainerSize",value:function(){return f(this.positions)}},{key:"_getStaggerAmount",value:function(t){return Math.min(t*this.options.staggerAmount,this.options.staggerAmountMax)}},{key:"_dispatch",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return!this.isDestroyed&&(e.shuffle=this,!this.element.dispatchEvent(new CustomEvent(t,{bubbles:!0,cancelable:!1,detail:e})))}},{key:"_resetCols",value:function(){var t=this.cols;for(this.positions=[];t;)t-=1,this.positions.push(0)}},{key:"_layout",value:function(e){var i=this,n=0;e.forEach(function(e){function r(){e.element.style.transitionDelay="",e.applyCss(M.Css.VISIBLE.after)}var s=e.point,o=e.scale,a=t.getSize(e.element,!0),l=i._getItemPosition(a);if(D.equals(s,l)&&o===M.Scale.VISIBLE)return e.applyCss(M.Css.VISIBLE.before),void r();e.point=l,e.scale=M.Scale.VISIBLE;var u=x(M.Css.VISIBLE.before);u.transitionDelay=i._getStaggerAmount(n)+"ms",i._queue.push({item:e,styles:u,callback:r}),n+=1})}},{key:"_getItemPosition",value:function(t){return p({itemSize:t,positions:this.positions,gridSize:this.colWidth,total:this.cols,threshold:this.options.columnThreshold,buffer:this.options.buffer})}},{key:"_shrink",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._getConcealedItems(),i=0;e.forEach(function(e){function n(){e.applyCss(M.Css.HIDDEN.after)}if(e.scale===M.Scale.HIDDEN)return e.applyCss(M.Css.HIDDEN.before),void n();e.scale=M.Scale.HIDDEN;var r=x(M.Css.HIDDEN.before);r.transitionDelay=t._getStaggerAmount(i)+"ms",t._queue.push({item:e,styles:r,callback:n}),i+=1})}},{key:"_handleResize",value:function(){if(this.isEnabled&&!this.isDestroyed){t.getSize(this.element).width!==this.containerWidth&&this.update()}}},{key:"_getStylesForTransition",value:function(t){var e=t.item,i=t.styles;i.transitionDelay||(i.transitionDelay="0ms");var n=e.point.x,r=e.point.y;return this.options.useTransforms?i.transform="translate("+n+"px, "+r+"px) scale("+e.scale+")":(i.left=n+"px",i.top=r+"px"),i}},{key:"_whenTransitionDone",value:function(t,e,i){var n=h(t,function(t){e(),i(null,t)});this._transitions.push(n)}},{key:"_getTransitionFunction",value:function(t){var e=this;return function(i){t.item.applyCss(e._getStylesForTransition(t)),e._whenTransitionDone(t.item.element,t.callback,i)}}},{key:"_processQueue",value:function(){this.isTransitioning&&this._cancelMovement();var t=this.options.speed>0,e=this._queue.length>0;e&&t&&this.isInitialized?this._startTransitions(this._queue):e?(this._styleImmediately(this._queue),this._dispatchLayout()):this._dispatchLayout(),this._queue.length=0}},{key:"_startTransitions",value:function(t){var e=this;this.isTransitioning=!0;var i=t.map(function(t){return e._getTransitionFunction(t)});T(i,this._movementFinished.bind(this))}},{key:"_cancelMovement",value:function(){this._transitions.forEach(u),this._transitions.length=0,this.isTransitioning=!1}},{key:"_styleImmediately",value:function(e){var i=this;if(e.length){var n=e.map(function(t){return t.item.element});t._skipTransitions(n,function(){e.forEach(function(t){t.item.applyCss(i._getStylesForTransition(t)),t.callback()})})}}},{key:"_movementFinished",value:function(){this._transitions.length=0,this.isTransitioning=!1,this._dispatchLayout()}},{key:"_dispatchLayout",value:function(){this._dispatch(t.EventType.LAYOUT)}},{key:"filter",value:function(e,i){this.isEnabled&&((!e||e&&0===e.length)&&(e=t.ALL_ITEMS),this._filter(e),this._shrink(),this._updateItemCount(),this.sort(i))}},{key:"sort",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.lastSort;if(this.isEnabled){this._resetCols();var e=this._getFilteredItems();e=a(e,t),this._layout(e),this._processQueue(),this._setContainerSize(),this.lastSort=t}}},{key:"update",value:function(t){this.isEnabled&&(t||this._setColumns(),this.sort())}},{key:"layout",value:function(){this.update(!0)}},{key:"add",value:function(t){var e=w(t).map(function(t){return new M(t)});this._initItems(e),this._setTransitions(e),this.items=this.items.concat(e),this._updateItemsOrder(),this.filter(this.lastFilter)}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"enable",value:function(t){this.isEnabled=!0,!1!==t&&this.update()}},{key:"remove",value:function(e){var i=this;if(e.length){var n=w(e),r=n.map(function(t){return i.getItemByElement(t)}).filter(function(t){return!!t}),s=function e(){i.element.removeEventListener(t.EventType.LAYOUT,e),i._disposeItems(r),n.forEach(function(t){t.parentNode.removeChild(t)}),i._dispatch(t.EventType.REMOVED,{collection:n})};this._toggleFilterClasses({visible:[],hidden:r}),this._shrink(r),this.sort(),this.items=this.items.filter(function(t){return!b(r,t)}),this._updateItemCount(),this.element.addEventListener(t.EventType.LAYOUT,s)}}},{key:"getItemByElement",value:function(t){for(var e=this.items.length-1;e>=0;e--)if(this.items[e].element===t)return this.items[e];return null}},{key:"destroy",value:function(){this._cancelMovement(),window.removeEventListener("resize",this._onResize),this.element.classList.remove("shuffle"),this.element.removeAttribute("style"),this._disposeItems(),this.items=null,this.options.sizer=null,this.element=null,this._transitions=null,this.isDestroyed=!0}}],[{key:"getSize",value:function(t,e){var i=window.getComputedStyle(t,null),n=s(t,"width",i),r=s(t,"height",i);if(e){var o=s(t,"marginLeft",i),a=s(t,"marginRight",i),l=s(t,"marginTop",i),u=s(t,"marginBottom",i);n+=o+a,r+=l+u}return{width:n,height:r}}},{key:"_skipTransitions",value:function(t,e){var i=t.map(function(t){var e=t.style,i=e.transitionDuration,n=e.transitionDelay;return e.transitionDuration="0ms",e.transitionDelay="0ms",{duration:i,delay:n}});e(),t[0].offsetWidth,t.forEach(function(t,e){t.style.transitionDuration=i[e].duration,t.style.transitionDelay=i[e].delay})}}]),t}();return j.ShuffleItem=M,j.ALL_ITEMS="all",j.FILTER_ATTRIBUTE_KEY="groups",j.EventType={LAYOUT:"shuffle:layout",REMOVED:"shuffle:removed"},j.Classes=z,j.FilterMode={ANY:"any",ALL:"all"},j.options={group:j.ALL_ITEMS,speed:250,easing:"ease",itemSelector:"*",sizer:null,gutterWidth:0,columnWidth:0,delimeter:null,buffer:0,columnThreshold:.01,initialSort:null,throttle:I,throttleTime:300,staggerAmount:15,staggerAmountMax:250,useTransforms:!0,filterMode:j.FilterMode.ANY},j.__Point=D,j.__sorter=a,j.__getColumnSpan=d,j.__getAvailablePositions=g,j.__getShortColumn=m,j}),function(t){function e(t,n){if(t=t||"",n=n||{},t instanceof e)return t;if(!(this instanceof e))return new e(t,n);var r=i(t);this._originalInput=t,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=W(100*this._a)/100,this._format=n.format||r.format,this._gradientType=n.gradientType,this._r<1&&(this._r=W(this._r)),this._g<1&&(this._g=W(this._g)),this._b<1&&(this._b=W(this._b)),this._ok=r.ok,this._tc_id=O++}function i(t){var e={r:0,g:0,b:0},i=1,r=null,o=null,l=null,u=!1,h=!1;return"string"==typeof t&&(t=M(t)),"object"==typeof t&&(B(t.r)&&B(t.g)&&B(t.b)?(e=n(t.r,t.g,t.b),u=!0,h="%"===String(t.r).substr(-1)?"prgb":"rgb"):B(t.h)&&B(t.s)&&B(t.v)?(r=L(t.s),o=L(t.v),e=a(t.h,r,o),u=!0,h="hsv"):B(t.h)&&B(t.s)&&B(t.l)&&(r=L(t.s),l=L(t.l),e=s(t.h,r,l),u=!0,h="hsl"),t.hasOwnProperty("a")&&(i=t.a)),i=E(i),{ok:u,format:t.format||h,r:q(255,P(e.r,0)),g:q(255,P(e.g,0)),b:q(255,P(e.b,0)),a:i}}function n(t,e,i){return{r:255*w(t,255),g:255*w(e,255),b:255*w(i,255)}}function r(t,e,i){t=w(t,255),e=w(e,255),i=w(i,255);var n,r,s=P(t,e,i),o=q(t,e,i),a=(s+o)/2;if(s==o)n=r=0;else{var l=s-o;switch(r=a>.5?l/(2-s-o):l/(s+o),s){case t:n=(e-i)/l+(e<i?6:0);break;case e:n=(i-t)/l+2;break;case i:n=(t-e)/l+4}n/=6}return{h:n,s:r,l:a}}function s(t,e,i){function n(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}var r,s,o;if(t=w(t,360),e=w(e,100),i=w(i,100),0===e)r=s=o=i;else{var a=i<.5?i*(1+e):i+e-i*e,l=2*i-a;r=n(l,a,t+1/3),s=n(l,a,t),o=n(l,a,t-1/3)}return{r:255*r,g:255*s,b:255*o}}function o(t,e,i){t=w(t,255),e=w(e,255),i=w(i,255);var n,r,s=P(t,e,i),o=q(t,e,i),a=s,l=s-o;if(r=0===s?0:l/s,s==o)n=0;else{switch(s){case t:n=(e-i)/l+(e<i?6:0);break;case e:n=(i-t)/l+2;break;case i:n=(t-e)/l+4}n/=6}return{h:n,s:r,v:a}}function a(e,i,n){e=6*w(e,360),i=w(i,100),n=w(n,100);var r=t.floor(e),s=e-r,o=n*(1-i),a=n*(1-s*i),l=n*(1-(1-s)*i),u=r%6;return{r:255*[n,a,o,o,l,n][u],g:255*[l,n,n,a,o,o][u],b:255*[o,o,l,n,n,a][u]}}function l(t,e,i,n){var r=[F(W(t).toString(16)),F(W(e).toString(16)),F(W(i).toString(16))];return n&&r[0].charAt(0)==r[0].charAt(1)&&r[1].charAt(0)==r[1].charAt(1)&&r[2].charAt(0)==r[2].charAt(1)?r[0].charAt(0)+r[1].charAt(0)+r[2].charAt(0):r.join("")}function u(t,e,i,n,r){var s=[F(W(t).toString(16)),F(W(e).toString(16)),F(W(i).toString(16)),F(D(n))];return r&&s[0].charAt(0)==s[0].charAt(1)&&s[1].charAt(0)==s[1].charAt(1)&&s[2].charAt(0)==s[2].charAt(1)&&s[3].charAt(0)==s[3].charAt(1)?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.join("")}function h(t,e,i,n){return[F(D(n)),F(W(t).toString(16)),F(W(e).toString(16)),F(W(i).toString(16))].join("")}function f(t,i){i=0===i?0:i||10;var n=e(t).toHsl();return n.s-=i/100,n.s=x(n.s),e(n)}function c(t,i){i=0===i?0:i||10;var n=e(t).toHsl();return n.s+=i/100,n.s=x(n.s),e(n)}function d(t){return e(t).desaturate(100)}function g(t,i){i=0===i?0:i||10;var n=e(t).toHsl();return n.l+=i/100,n.l=x(n.l),e(n)}function m(t,i){i=0===i?0:i||10;var n=e(t).toRgb();return n.r=P(0,q(255,n.r-W(-i/100*255))),n.g=P(0,q(255,n.g-W(-i/100*255))),n.b=P(0,q(255,n.b-W(-i/100*255))),e(n)}function p(t,i){i=0===i?0:i||10;var n=e(t).toHsl();return n.l-=i/100,n.l=x(n.l),e(n)}function v(t,i){var n=e(t).toHsl(),r=(n.h+i)%360;return n.h=r<0?360+r:r,e(n)}function b(t){var i=e(t).toHsl();return i.h=(i.h+180)%360,e(i)}function y(t){var i=e(t).toHsl(),n=i.h;return[e(t),e({h:(n+120)%360,s:i.s,l:i.l}),e({h:(n+240)%360,s:i.s,l:i.l})]}function _(t){var i=e(t).toHsl(),n=i.h;return[e(t),e({h:(n+90)%360,s:i.s,l:i.l}),e({h:(n+180)%360,s:i.s,l:i.l}),e({h:(n+270)%360,s:i.s,l:i.l})]}function S(t){var i=e(t).toHsl(),n=i.h;return[e(t),e({h:(n+72)%360,s:i.s,l:i.l}),e({h:(n+216)%360,s:i.s,l:i.l})]}function A(t,i,n){i=i||6,n=n||30;var r=e(t).toHsl(),s=360/n,o=[e(t)];for(r.h=(r.h-(s*i>>1)+720)%360;--i;)r.h=(r.h+s)%360,o.push(e(r));return o}function k(t,i){i=i||6;for(var n=e(t).toHsv(),r=n.h,s=n.s,o=n.v,a=[],l=1/i;i--;)a.push(e({h:r,s:s,v:o})),o=(o+l)%1;return a}function E(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function w(e,i){I(e)&&(e="100%");var n=T(e);return e=q(i,P(0,parseFloat(e))),n&&(e=parseInt(e*i,10)/100),t.abs(e-i)<1e-6?1:e%i/parseFloat(i)}function x(t){return q(1,P(0,t))}function C(t){return parseInt(t,16)}function I(t){return"string"==typeof t&&-1!=t.indexOf(".")&&1===parseFloat(t)}function T(t){return"string"==typeof t&&-1!=t.indexOf("%")}function F(t){return 1==t.length?"0"+t:""+t}function L(t){return t<=1&&(t=100*t+"%"),t}function D(e){return t.round(255*parseFloat(e)).toString(16)}function z(t){return C(t)/255}function B(t){return!!Y.CSS_UNIT.exec(t)}function M(t){t=t.replace(R,"").replace(N,"").toLowerCase();var e=!1;if(U[t])t=U[t],e=!0;else if("transparent"==t)return{r:0,g:0,b:0,a:0,format:"name"};var i;return(i=Y.rgb.exec(t))?{r:i[1],g:i[2],b:i[3]}:(i=Y.rgba.exec(t))?{r:i[1],g:i[2],b:i[3],a:i[4]}:(i=Y.hsl.exec(t))?{h:i[1],s:i[2],l:i[3]}:(i=Y.hsla.exec(t))?{h:i[1],s:i[2],l:i[3],a:i[4]}:(i=Y.hsv.exec(t))?{h:i[1],s:i[2],v:i[3]}:(i=Y.hsva.exec(t))?{h:i[1],s:i[2],v:i[3],a:i[4]}:(i=Y.hex8.exec(t))?{r:C(i[1]),g:C(i[2]),b:C(i[3]),a:z(i[4]),format:e?"name":"hex8"}:(i=Y.hex6.exec(t))?{r:C(i[1]),g:C(i[2]),b:C(i[3]),format:e?"name":"hex"}:(i=Y.hex4.exec(t))?{r:C(i[1]+""+i[1]),g:C(i[2]+""+i[2]),b:C(i[3]+""+i[3]),a:z(i[4]+""+i[4]),format:e?"name":"hex8"}:!!(i=Y.hex3.exec(t))&&{r:C(i[1]+""+i[1]),g:C(i[2]+""+i[2]),b:C(i[3]+""+i[3]),format:e?"name":"hex"}}function H(t){var e,i;return t=t||{level:"AA",size:"small"},e=(t.level||"AA").toUpperCase(),i=(t.size||"small").toLowerCase(),"AA"!==e&&"AAA"!==e&&(e="AA"),"small"!==i&&"large"!==i&&(i="small"),{level:e,size:i}}var R=/^\s+/,N=/\s+$/,O=0,W=t.round,q=t.min,P=t.max,V=t.random;e.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},getLuminance:function(){var e,i,n,r,s,o,a=this.toRgb();return e=a.r/255,i=a.g/255,n=a.b/255,r=e<=.03928?e/12.92:t.pow((e+.055)/1.055,2.4),s=i<=.03928?i/12.92:t.pow((i+.055)/1.055,2.4),o=n<=.03928?n/12.92:t.pow((n+.055)/1.055,2.4),.2126*r+.7152*s+.0722*o},setAlpha:function(t){return this._a=E(t),this._roundA=W(100*this._a)/100,this},toHsv:function(){var t=o(this._r,this._g,this._b);return{h:360*t.h,s:t.s,v:t.v,a:this._a}},toHsvString:function(){var t=o(this._r,this._g,this._b),e=W(360*t.h),i=W(100*t.s),n=W(100*t.v);return 1==this._a?"hsv("+e+", "+i+"%, "+n+"%)":"hsva("+e+", "+i+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var t=r(this._r,this._g,this._b);return{h:360*t.h,s:t.s,l:t.l,a:this._a}},toHslString:function(){var t=r(this._r,this._g,this._b),e=W(360*t.h),i=W(100*t.s),n=W(100*t.l);return 1==this._a?"hsl("+e+", "+i+"%, "+n+"%)":"hsla("+e+", "+i+"%, "+n+"%, "+this._roundA+")"},toHex:function(t){return l(this._r,this._g,this._b,t)},toHexString:function(t){return"#"+this.toHex(t)},toHex8:function(t){return u(this._r,this._g,this._b,this._a,t)},toHex8String:function(t){return"#"+this.toHex8(t)},toRgb:function(){return{r:W(this._r),g:W(this._g),b:W(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+W(this._r)+", "+W(this._g)+", "+W(this._b)+")":"rgba("+W(this._r)+", "+W(this._g)+", "+W(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:W(100*w(this._r,255))+"%",g:W(100*w(this._g,255))+"%",b:W(100*w(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+W(100*w(this._r,255))+"%, "+W(100*w(this._g,255))+"%, "+W(100*w(this._b,255))+"%)":"rgba("+W(100*w(this._r,255))+"%, "+W(100*w(this._g,255))+"%, "+W(100*w(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(j[l(this._r,this._g,this._b,!0)]||!1)},toFilter:function(t){var i="#"+h(this._r,this._g,this._b,this._a),n=i,r=this._gradientType?"GradientType = 1, ":"";if(t){var s=e(t);n="#"+h(s._r,s._g,s._b,s._a)}return"progid:DXImageTransform.Microsoft.gradient("+r+"startColorstr="+i+",endColorstr="+n+")"},toString:function(t){var e=!!t;t=t||this._format;var i=!1,n=this._a<1&&this._a>=0;return e||!n||"hex"!==t&&"hex6"!==t&&"hex3"!==t&&"hex4"!==t&&"hex8"!==t&&"name"!==t?("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString()):"name"===t&&0===this._a?this.toName():this.toRgbString()},clone:function(){return e(this.toString())},_applyModification:function(t,e){var i=t.apply(null,[this].concat([].slice.call(e)));return this._r=i._r,this._g=i._g,this._b=i._b,this.setAlpha(i._a),this},lighten:function(){return this._applyModification(g,arguments)},brighten:function(){return this._applyModification(m,arguments)},darken:function(){return this._applyModification(p,arguments)},desaturate:function(){return this._applyModification(f,arguments)},saturate:function(){return this._applyModification(c,arguments)},greyscale:function(){return this._applyModification(d,arguments)},spin:function(){return this._applyModification(v,arguments)},_applyCombination:function(t,e){return t.apply(null,[this].concat([].slice.call(e)))},analogous:function(){return this._applyCombination(A,arguments)},complement:function(){return this._applyCombination(b,arguments)},monochromatic:function(){return this._applyCombination(k,arguments)},splitcomplement:function(){return this._applyCombination(S,arguments)},triad:function(){return this._applyCombination(y,arguments)},tetrad:function(){return this._applyCombination(_,arguments)}},e.fromRatio=function(t,i){if("object"==typeof t){var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]="a"===r?t[r]:L(t[r]));t=n}return e(t,i)},e.equals=function(t,i){return!(!t||!i)&&e(t).toRgbString()==e(i).toRgbString()},e.random=function(){return e.fromRatio({r:V(),g:V(),b:V()})},e.mix=function(t,i,n){n=0===n?0:n||50;var r=e(t).toRgb(),s=e(i).toRgb(),o=n/100;return e({r:(s.r-r.r)*o+r.r,g:(s.g-r.g)*o+r.g,b:(s.b-r.b)*o+r.b,a:(s.a-r.a)*o+r.a})},e.readability=function(i,n){var r=e(i),s=e(n);return(t.max(r.getLuminance(),s.getLuminance())+.05)/(t.min(r.getLuminance(),s.getLuminance())+.05)},e.isReadable=function(t,i,n){var r,s,o=e.readability(t,i);switch(s=!1,r=H(n),r.level+r.size){case"AAsmall":case"AAAlarge":s=o>=4.5;break;case"AAlarge":s=o>=3;break;case"AAAsmall":s=o>=7}return s},e.mostReadable=function(t,i,n){var r,s,o,a,l=null,u=0;n=n||{},s=n.includeFallbackColors,o=n.level,a=n.size;for(var h=0;h<i.length;h++)(r=e.readability(t,i[h]))>u&&(u=r,l=e(i[h]));return e.isReadable(t,l,{level:o,size:a})||!s?l:(n.includeFallbackColors=!1,e.mostReadable(t,["#fff","#000"],n))};var U=e.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},j=e.hexNames=function(t){var e={};for(var i in t)t.hasOwnProperty(i)&&(e[t[i]]=i);return e}(U),Y=function(){var t="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)",e="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?",i="[\\s|\\(]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")[,|\\s]+("+t+")\\s*\\)?";return{CSS_UNIT:new RegExp(t),rgb:new RegExp("rgb"+e),rgba:new RegExp("rgba"+i),hsl:new RegExp("hsl"+e),hsla:new RegExp("hsla"+i),hsv:new RegExp("hsv"+e),hsva:new RegExp("hsva"+i),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();"undefined"!=typeof module&&module.exports?module.exports=e:"function"==typeof define&&define.amd?define(function(){return e -}):window.tinycolor=e}(Math),String.prototype.hashCode=function(){var t=5381;for(i=0;i<this.length;i++)char=this.charCodeAt(i),t=(t<<5)+t+char;return t>>>0};var Color=tinycolor,Shuffle=window.shuffle,shuffle=new Shuffle(document.querySelector(".tile-container"),{group:shuffle.ALL_ITEMS,itemSelector:".tile",gutterWidth:16,columnWidth:188,buffer:1,delimeter:",",useTransforms:!1}),filterTiles=function(t){shuffle.filter(location.hash.slice(1))};window.onhashchange=filterTiles;var getUrlParts=function(t){var e={domain:"",before:"",after:""},i=new URL(t),n=i.host;if(e.domain=n.replace(/^www\./i,""),n.match(/^\d+\.\d+\.\d+\.\d+$/))return e.domain=n,e;if(n.match(/^(\d+\.\d+\.\d+\.\d+)(:(\d+))?$/))return r=n.match(/^(\d+\.\d+\.\d+\.\d+)(:(\d+))?$/),e.domain=r[1],e.after=r[3],e;for(var r=e.domain.split("."),s=0,o=1;o<r.length-1;o++)r[o].length>r[s].length&&(s=o);return e.domain=r[s],e.before=r.slice(0,s).join("."),e.after=r.slice(s+1).join("."),!e.domain&&i.pathname&&(e.domain=i.pathname.split("/").filter(Boolean).pop()),e},fitText=function(t,e,i){var n=document.createElement("div");n.style.visibility="hidden",n.style.position="absolute",document.body.appendChild(n);var r=40;for(n.innerHTML=t,n.style.fontSize=r;n.offsetWidth>e;)r-=1,n.style.fontSize=r;var s={size:r,width:n.offsetWidth,height:n.offsetHeight};return n.remove(),s},getTileColor=function(t){var e=["#B42424","#C83D1D","#BB7231","#E06B00","#55931F","#1C941B","#189365","#189196","#2D85A4","#2B6C90","#205396","#39448F","#55338E","#683089","#963A97","#A43343","#982F2F","#D30000","#E54C29","#DA7E2C","#73B43A","#3AB43A","#3AB487","#3AB0B4","#47A6C7","#3A88B4","#3A6FB4","#3A4AB4","#673AB4","#863AB4","#C846C9","#C44A5B","#AA4444","#E84545","#FF6946","#EC9344","#3CA4DF","#3A83E3","#4056E3","#9058F0","#B467E2","#DF7CDF","#E5576B","#D35A5A","#3DC53D","#2DBBB1","#5E95D5","#5E5BE7","#1B7EFF","#5F74FF","#8A45FF","#B856F3","#DD66DD"];return e[t.hashCode()%e.length]},renderImgTile=function(t){t.innerHTML="";var e=t.getAttribute("data-bg-color");e||(e="rgba(255,255,255,.8)"),e=Color(e),e.setAlpha(.8),t.style.backgroundColor=e;var i=new Image;i.src=t.getAttribute("data-img"),i.className="logo",t.appendChild(i)},renderPlainTile=function(t){var e=getUrlParts(t.getAttribute("data-url"));t.innerHTML="";var i=t.getAttribute("data-bg-color");i||(i="rgba(255,255,255,.8)"),i=Color(i),i.setAlpha(.8),t.style.backgroundColor=i;var n=t.getAttribute("data-txt-color");n||(n=getTileColor(e.domain),i.isDark()&&(t.style.color="white")),n=Color(n),t.style.color=n;var r=fitText(e.domain,172,120),s=document.createElement("div");s.style.fontSize=r.size,s.style.position="absolute",t.appendChild(s);var o=document.createElement("div");o.innerHTML=e.before,o.style.top=.35*r.size-10,o.className="pre-domain",o.style.textShadow="-1px 0 "+i+",0 1px "+i+",1px 0 "+i+",0 -1px "+i;var a=document.createElement("div");a.innerHTML=e.after,a.style.top=r.size-.05*r.size,a.className="post-domain",a.style.textShadow="-1px 0 "+i+",0 1px "+i+",1px 0 "+i+",0 -1px "+i,s.appendChild(o),s.appendChild(document.createTextNode(e.domain)),s.appendChild(a);var l=64-s.clientHeight/2,u=106-s.clientWidth/2;s.style.top=l,s.style.left=u},renderTiles=function(){for(var t=document.getElementsByClassName("tile-box"),e=0;e<t.length;e++)try{t.item(e).getAttribute("data-img")?renderImgTile(t.item(e)):renderPlainTile(t.item(e))}catch(t){console.log("err:"+t)}};renderTiles();var getBackgroundImages=function(){var t=document.getElementsByTagName("body"),e=[],i=t[0].getAttribute("data-backgrounds");return i&&(e=i.split(/[\s,]+/).filter(Boolean)),e},preloadBackgrounds=function(){for(var t=getBackgroundImages(),e=0;e<t.length;e++)(new Image).src=t[e]},rotateBackground=function(t){void 0!==t&&null!==t||(t=0);var e=getBackgroundImages();e.length>0&&(t=(t+1)%e.length,document.body.style.background='url("'+e[t]+'")',document.body.style.backgroundSize="cover",e.length>1&&setTimeout(rotateBackground.bind(null,t),3e4))};preloadBackgrounds(),rotateBackground(); \ No newline at end of file +! function(t, e) { + "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define && define.amd ? define(e) : t.shuffle = e() +}(this, function() { + "use strict"; + + function t(t, e) { + if (A) return A.call(t, e); + for (var i = t.parentNode.querySelectorAll(e), n = 0; n < i.length; n++) + if (i[n] == t) return !0; + return !1 + } + + function e() { + for (var t = {}, e = 0; e < arguments.length; e++) { + var i = arguments[e]; + for (var n in i) C.call(i, n) && (t[n] = i[n]) + } + return t + } + + function i(t, e) { + function i() { + o = 0, a = +new Date, s = t.apply(n, r), n = null, r = null + } + var n, r, s, o, a = 0; + return function() { + n = this, r = arguments; + var t = new Date - a; + return o || (t >= e ? i() : o = setTimeout(i, e - t)), s + } + } + + function n() {} + + function r(t) { + return parseFloat(t) || 0 + } + + function s(t, e) { + var i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : window.getComputedStyle(t, null), + n = r(i[e]); + return O || "width" !== e ? O || "height" !== e || (n += r(i.paddingTop) + r(i.paddingBottom) + r(i.borderTopWidth) + r(i.borderBottomWidth)) : n += r(i.paddingLeft) + r(i.paddingRight) + r(i.borderLeftWidth) + r(i.borderRightWidth), n + } + + function o(t) { + for (var e = t.length; e;) { + e -= 1; + var i = Math.floor(Math.random() * (e + 1)), + n = t[i]; + t[i] = t[e], t[e] = n + } + return t + } + + function a(t, e) { + var i = x(W, e), + n = [].slice.call(t), + r = !1; + return t.length ? i.randomize ? o(t) : ("function" == typeof i.by && t.sort(function(t, e) { + if (r) return 0; + var n = i.by(t[i.key]), + s = i.by(e[i.key]); + return void 0 === n && void 0 === s ? (r = !0, 0) : n < s || "sortFirst" === n || "sortLast" === s ? -1 : n > s || "sortLast" === n || "sortFirst" === s ? 1 : 0 + }), r ? n : (i.reverse && t.reverse(), t)) : [] + } + + function l() { + return V += 1, P + V + } + + function u(t) { + return !!q[t] && (q[t].element.removeEventListener(P, q[t].listener), q[t] = null, !0) + } + + function h(t, e) { + var i = l(), + n = function(t) { + t.currentTarget === t.target && (u(i), e(t)) + }; + return t.addEventListener(P, n), q[i] = { + element: t, + listener: n + }, i + } + + function f(t) { + return Math.max.apply(Math, t) + } + + function c(t) { + return Math.min.apply(Math, t) + } + + function d(t, e, i, n) { + var r = t / e; + return Math.abs(Math.round(r) - r) < n && (r = Math.round(r)), Math.min(Math.ceil(r), i) + } + + function g(t, e, i) { + if (1 === e) return t; + for (var n = [], r = 0; r <= i - e; r++) n.push(f(t.slice(r, r + e))); + return n + } + + function m(t, e) { + for (var i = c(t), n = 0, r = t.length; n < r; n++) + if (t[n] >= i - e && t[n] <= i + e) return n; + return 0 + } + + function p(t) { + for (var e = t.itemSize, i = t.positions, n = t.gridSize, r = t.total, s = t.threshold, o = t.buffer, a = d(e.width, n, r, s), l = g(i, a, r), u = m(l, o), h = new D(Math.round(n * u), Math.round(l[u])), f = l[u] + e.height, c = 0; c < a; c++) i[u + c] = f; + return h + } + + function v(t) { + return Array.prototype.slice.call(t) + } + + function b(t, e) { + return t.indexOf(e) > -1 + } + try { + var y = new window.CustomEvent("test"); + if (y.preventDefault(), !0 !== y.defaultPrevented) throw new Error("Could not prevent default") + } catch (t) { + var _ = function(t, e) { + var i, n; + return e = e || { + bubbles: !1, + cancelable: !1, + detail: void 0 + }, i = document.createEvent("CustomEvent"), i.initCustomEvent(t, e.bubbles, e.cancelable, e.detail), n = i.preventDefault, i.preventDefault = function() { + n.call(this); + try { + Object.defineProperty(this, "defaultPrevented", { + get: function() { + return !0 + } + }) + } catch (t) { + this.defaultPrevented = !0 + } + }, i + }; + _.prototype = window.Event.prototype, window.CustomEvent = _ + } + var S = Element.prototype, + A = S.matches || S.matchesSelector || S.webkitMatchesSelector || S.mozMatchesSelector || S.msMatchesSelector || S.oMatchesSelector, + k = t, + E = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}, + w = function(t, e) { + return e = { + exports: {} + }, t(e, e.exports), e.exports + }(function(t) { + function e(t) { + for (var e = [], i = 0; i < t.length; i++) - 1 === e.indexOf(t[i]) && e.push(t[i]); + return e + } + + function i(t) { + var e = new Set; + return t.filter(function(t) { + return !e.has(t) && (e.add(t), !0) + }) + } + + function n(t) { + var e = []; + return new Set(t).forEach(function(t) { + e.push(t) + }), e + } + "Set" in E ? "function" == typeof Set.prototype.forEach && function() { + var t = !1; + return new Set([!0]).forEach(function(e) { + t = e + }), !0 === t + }() ? t.exports = n : t.exports = i : t.exports = e + }), + x = e, + C = Object.prototype.hasOwnProperty, + I = i, + T = function(t, e, i) { + function r(t) { + return function(e, n) { + if (!o) { + if (e) return i(e, a), void(o = !0); + a[t] = n, --s || i(null, a) + } + } + } + i || ("function" == typeof e ? (i = e, e = null) : i = n); + var s = t && t.length; + if (!s) return i(null, []); + var o = !1, + a = new Array(s); + t.forEach(e ? function(t, i) { + t.call(e, r(i)) + } : function(t, e) { + t(r(e)) + }) + }, + F = function(t, e) { + if (!(t instanceof e)) throw new TypeError("Cannot call a class as a function") + }, + L = function() { + function t(t, e) { + for (var i = 0; i < e.length; i++) { + var n = e[i]; + n.enumerable = n.enumerable || !1, n.configurable = !0, "value" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) + } + } + return function(e, i, n) { + return i && t(e.prototype, i), n && t(e, n), e + } + }(), + D = function() { + function t(e, i) { + F(this, t), this.x = r(e), this.y = r(i) + } + return L(t, null, [{ + key: "equals", + value: function(t, e) { + return t.x === e.x && t.y === e.y + } + }]), t + }(), + z = { + BASE: "shuffle", + SHUFFLE_ITEM: "shuffle-item", + VISIBLE: "shuffle-item--visible", + HIDDEN: "shuffle-item--hidden" + }, + B = 0, + M = function() { + function t(e) { + F(this, t), B += 1, this.id = B, this.element = e, this.isVisible = !0 + } + return L(t, [{ + key: "show", + value: function() { + this.isVisible = !0, this.element.classList.remove(z.HIDDEN), this.element.classList.add(z.VISIBLE) + } + }, { + key: "hide", + value: function() { + this.isVisible = !1, this.element.classList.remove(z.VISIBLE), this.element.classList.add(z.HIDDEN) + } + }, { + key: "init", + value: function() { + this.addClasses([z.SHUFFLE_ITEM, z.VISIBLE]), this.applyCss(t.Css.INITIAL), this.scale = t.Scale.VISIBLE, this.point = new D + } + }, { + key: "addClasses", + value: function(t) { + var e = this; + t.forEach(function(t) { + e.element.classList.add(t) + }) + } + }, { + key: "removeClasses", + value: function(t) { + var e = this; + t.forEach(function(t) { + e.element.classList.remove(t) + }) + } + }, { + key: "applyCss", + value: function(t) { + var e = this; + Object.keys(t).forEach(function(i) { + e.element.style[i] = t[i] + }) + } + }, { + key: "dispose", + value: function() { + this.removeClasses([z.HIDDEN, z.VISIBLE, z.SHUFFLE_ITEM]), this.element.removeAttribute("style"), this.element = null + } + }]), t + }(); + M.Css = { + INITIAL: { + position: "absolute", + top: 0, + left: 0, + visibility: "visible", + "will-change": "transform" + }, + VISIBLE: { + before: { + opacity: 1, + visibility: "visible" + }, + after: {} + }, + HIDDEN: { + before: { + opacity: 0 + }, + after: { + visibility: "hidden" + } + } + }, M.Scale = { + VISIBLE: 1, + HIDDEN: .001 + }; + var H = document.body || document.documentElement, + R = document.createElement("div"); + R.style.cssText = "width:10px;padding:2px;box-sizing:border-box;", H.appendChild(R); + var N = window.getComputedStyle(R, null).width, + O = "10px" === N; + H.removeChild(R); + var W = { + reverse: !1, + by: null, + randomize: !1, + key: "element" + }, + q = {}, + P = "transitionend", + V = 0, + U = 0, + j = function() { + function t(e) { + var i = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + F(this, t), this.options = x(t.options, i), this.useSizer = !1, this.lastSort = {}, this.group = t.ALL_ITEMS, this.lastFilter = t.ALL_ITEMS, this.isEnabled = !0, this.isDestroyed = !1, this.isInitialized = !1, this._transitions = [], this.isTransitioning = !1, this._queue = []; + var n = this._getElementOption(e); + if (!n) throw new TypeError("Shuffle needs to be initialized with an element."); + this.element = n, this.id = "shuffle_" + U, U += 1, this._init(), this.isInitialized = !0 + } + return L(t, [{ + key: "_init", + value: function() { + this.items = this._getItems(), this.options.sizer = this._getElementOption(this.options.sizer), this.options.sizer && (this.useSizer = !0), this.element.classList.add(t.Classes.BASE), this._initItems(), this._onResize = this._getResizeFunction(), window.addEventListener("resize", this._onResize); + var e = window.getComputedStyle(this.element, null), + i = t.getSize(this.element).width; + this._validateStyles(e), this._setColumns(i), this.filter(this.options.group, this.options.initialSort), this.element.offsetWidth, this._setTransitions(), this.element.style.transition = "height " + this.options.speed + "ms " + this.options.easing + } + }, { + key: "_getResizeFunction", + value: function() { + var t = this._handleResize.bind(this); + return this.options.throttle ? this.options.throttle(t, this.options.throttleTime) : t + } + }, { + key: "_getElementOption", + value: function(t) { + return "string" == typeof t ? this.element.querySelector(t) : t && t.nodeType && 1 === t.nodeType ? t : t && t.jquery ? t[0] : null + } + }, { + key: "_validateStyles", + value: function(t) { + "static" === t.position && (this.element.style.position = "relative"), "hidden" !== t.overflow && (this.element.style.overflow = "hidden") + } + }, { + key: "_filter", + value: function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.lastFilter, + e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.items, + i = this._getFilteredSets(t, e); + return this._toggleFilterClasses(i), this.lastFilter = t, "string" == typeof t && (this.group = t), i + } + }, { + key: "_getFilteredSets", + value: function(e, i) { + var n = this, + r = [], + s = []; + return e === t.ALL_ITEMS ? r = i : i.forEach(function(t) { + n._doesPassFilter(e, t.element) ? r.push(t) : s.push(t) + }), { + visible: r, + hidden: s + } + } + }, { + key: "_doesPassFilter", + value: function(e, i) { + function n(t) { + return b(s, t) + } + if ("function" == typeof e) return e.call(i, i, this); + var r = i.getAttribute("data-" + t.FILTER_ATTRIBUTE_KEY), + s = this.options.delimeter ? r.split(this.options.delimeter) : JSON.parse(r); + return Array.isArray(e) ? this.options.filterMode === t.FilterMode.ANY ? e.some(n) : e.every(n) : b(s, e) + } + }, { + key: "_toggleFilterClasses", + value: function(t) { + var e = t.visible, + i = t.hidden; + e.forEach(function(t) { + t.show() + }), i.forEach(function(t) { + t.hide() + }) + } + }, { + key: "_initItems", + value: function() { + (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.items).forEach(function(t) { + t.init() + }) + } + }, { + key: "_disposeItems", + value: function() { + (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.items).forEach(function(t) { + t.dispose() + }) + } + }, { + key: "_updateItemCount", + value: function() { + this.visibleItems = this._getFilteredItems().length + } + }, { + key: "_setTransitions", + value: function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.items, + e = this.options.speed, + i = this.options.easing, + n = this.options.useTransforms ? "transform " + e + "ms " + i + ", opacity " + e + "ms " + i : "top " + e + "ms " + i + ", left " + e + "ms " + i + ", opacity " + e + "ms " + i; + t.forEach(function(t) { + t.element.style.transition = n + }) + } + }, { + key: "_getItems", + value: function() { + var t = this; + return v(this.element.children).filter(function(e) { + return k(e, t.options.itemSelector) + }).map(function(t) { + return new M(t) + }) + } + }, { + key: "_updateItemsOrder", + value: function() { + var t = this.element.children; + this.items = a(this.items, { + by: function(e) { + return Array.prototype.indexOf.call(t, e) + } + }) + } + }, { + key: "_getFilteredItems", + value: function() { + return this.items.filter(function(t) { + return t.isVisible + }) + } + }, { + key: "_getConcealedItems", + value: function() { + return this.items.filter(function(t) { + return !t.isVisible + }) + } + }, { + key: "_getColumnSize", + value: function(e, i) { + var n = void 0; + return n = "function" == typeof this.options.columnWidth ? this.options.columnWidth(e) : this.useSizer ? t.getSize(this.options.sizer).width : this.options.columnWidth ? this.options.columnWidth : this.items.length > 0 ? t.getSize(this.items[0].element, !0).width : e, 0 === n && (n = e), n + i + } + }, { + key: "_getGutterSize", + value: function(t) { + return "function" == typeof this.options.gutterWidth ? this.options.gutterWidth(t) : this.useSizer ? s(this.options.sizer, "marginLeft") : this.options.gutterWidth + } + }, { + key: "_setColumns", + value: function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : t.getSize(this.element).width, + i = this._getGutterSize(e), + n = this._getColumnSize(e, i), + r = (e + i) / n; + Math.abs(Math.round(r) - r) < this.options.columnThreshold && (r = Math.round(r)), this.cols = Math.max(Math.floor(r), 1), this.containerWidth = e, this.colWidth = n + } + }, { + key: "_setContainerSize", + value: function() { + this.element.style.height = this._getContainerSize() + "px" + } + }, { + key: "_getContainerSize", + value: function() { + return f(this.positions) + } + }, { + key: "_getStaggerAmount", + value: function(t) { + return Math.min(t * this.options.staggerAmount, this.options.staggerAmountMax) + } + }, { + key: "_dispatch", + value: function(t) { + var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + return !this.isDestroyed && (e.shuffle = this, !this.element.dispatchEvent(new CustomEvent(t, { + bubbles: !0, + cancelable: !1, + detail: e + }))) + } + }, { + key: "_resetCols", + value: function() { + var t = this.cols; + for (this.positions = []; t;) t -= 1, this.positions.push(0) + } + }, { + key: "_layout", + value: function(e) { + var i = this, + n = 0; + e.forEach(function(e) { + function r() { + e.element.style.transitionDelay = "", e.applyCss(M.Css.VISIBLE.after) + } + var s = e.point, + o = e.scale, + a = t.getSize(e.element, !0), + l = i._getItemPosition(a); + if (D.equals(s, l) && o === M.Scale.VISIBLE) return e.applyCss(M.Css.VISIBLE.before), void r(); + e.point = l, e.scale = M.Scale.VISIBLE; + var u = x(M.Css.VISIBLE.before); + u.transitionDelay = i._getStaggerAmount(n) + "ms", i._queue.push({ + item: e, + styles: u, + callback: r + }), n += 1 + }) + } + }, { + key: "_getItemPosition", + value: function(t) { + return p({ + itemSize: t, + positions: this.positions, + gridSize: this.colWidth, + total: this.cols, + threshold: this.options.columnThreshold, + buffer: this.options.buffer + }) + } + }, { + key: "_shrink", + value: function() { + var t = this, + e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._getConcealedItems(), + i = 0; + e.forEach(function(e) { + function n() { + e.applyCss(M.Css.HIDDEN.after) + } + if (e.scale === M.Scale.HIDDEN) return e.applyCss(M.Css.HIDDEN.before), void n(); + e.scale = M.Scale.HIDDEN; + var r = x(M.Css.HIDDEN.before); + r.transitionDelay = t._getStaggerAmount(i) + "ms", t._queue.push({ + item: e, + styles: r, + callback: n + }), i += 1 + }) + } + }, { + key: "_handleResize", + value: function() { + if (this.isEnabled && !this.isDestroyed) { + t.getSize(this.element).width !== this.containerWidth && this.update() + } + } + }, { + key: "_getStylesForTransition", + value: function(t) { + var e = t.item, + i = t.styles; + i.transitionDelay || (i.transitionDelay = "0ms"); + var n = e.point.x, + r = e.point.y; + return this.options.useTransforms ? i.transform = "translate(" + n + "px, " + r + "px) scale(" + e.scale + ")" : (i.left = n + "px", i.top = r + "px"), i + } + }, { + key: "_whenTransitionDone", + value: function(t, e, i) { + var n = h(t, function(t) { + e(), i(null, t) + }); + this._transitions.push(n) + } + }, { + key: "_getTransitionFunction", + value: function(t) { + var e = this; + return function(i) { + t.item.applyCss(e._getStylesForTransition(t)), e._whenTransitionDone(t.item.element, t.callback, i) + } + } + }, { + key: "_processQueue", + value: function() { + this.isTransitioning && this._cancelMovement(); + var t = this.options.speed > 0, + e = this._queue.length > 0; + e && t && this.isInitialized ? this._startTransitions(this._queue) : e ? (this._styleImmediately(this._queue), this._dispatchLayout()) : this._dispatchLayout(), this._queue.length = 0 + } + }, { + key: "_startTransitions", + value: function(t) { + var e = this; + this.isTransitioning = !0; + var i = t.map(function(t) { + return e._getTransitionFunction(t) + }); + T(i, this._movementFinished.bind(this)) + } + }, { + key: "_cancelMovement", + value: function() { + this._transitions.forEach(u), this._transitions.length = 0, this.isTransitioning = !1 + } + }, { + key: "_styleImmediately", + value: function(e) { + var i = this; + if (e.length) { + var n = e.map(function(t) { + return t.item.element + }); + t._skipTransitions(n, function() { + e.forEach(function(t) { + t.item.applyCss(i._getStylesForTransition(t)), t.callback() + }) + }) + } + } + }, { + key: "_movementFinished", + value: function() { + this._transitions.length = 0, this.isTransitioning = !1, this._dispatchLayout() + } + }, { + key: "_dispatchLayout", + value: function() { + this._dispatch(t.EventType.LAYOUT) + } + }, { + key: "filter", + value: function(e, i) { + this.isEnabled && ((!e || e && 0 === e.length) && (e = t.ALL_ITEMS), this._filter(e), this._shrink(), this._updateItemCount(), this.sort(i)) + } + }, { + key: "sort", + value: function() { + var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.lastSort; + if (this.isEnabled) { + this._resetCols(); + var e = this._getFilteredItems(); + e = a(e, t), this._layout(e), this._processQueue(), this._setContainerSize(), this.lastSort = t + } + } + }, { + key: "update", + value: function(t) { + this.isEnabled && (t || this._setColumns(), this.sort()) + } + }, { + key: "layout", + value: function() { + this.update(!0) + } + }, { + key: "add", + value: function(t) { + var e = w(t).map(function(t) { + return new M(t) + }); + this._initItems(e), this._setTransitions(e), this.items = this.items.concat(e), this._updateItemsOrder(), this.filter(this.lastFilter) + } + }, { + key: "disable", + value: function() { + this.isEnabled = !1 + } + }, { + key: "enable", + value: function(t) { + this.isEnabled = !0, !1 !== t && this.update() + } + }, { + key: "remove", + value: function(e) { + var i = this; + if (e.length) { + var n = w(e), + r = n.map(function(t) { + return i.getItemByElement(t) + }).filter(function(t) { + return !!t + }), + s = function e() { + i.element.removeEventListener(t.EventType.LAYOUT, e), i._disposeItems(r), n.forEach(function(t) { + t.parentNode.removeChild(t) + }), i._dispatch(t.EventType.REMOVED, { + collection: n + }) + }; + this._toggleFilterClasses({ + visible: [], + hidden: r + }), this._shrink(r), this.sort(), this.items = this.items.filter(function(t) { + return !b(r, t) + }), this._updateItemCount(), this.element.addEventListener(t.EventType.LAYOUT, s) + } + } + }, { + key: "getItemByElement", + value: function(t) { + for (var e = this.items.length - 1; e >= 0; e--) + if (this.items[e].element === t) return this.items[e]; + return null + } + }, { + key: "destroy", + value: function() { + this._cancelMovement(), window.removeEventListener("resize", this._onResize), this.element.classList.remove("shuffle"), this.element.removeAttribute("style"), this._disposeItems(), this.items = null, this.options.sizer = null, this.element = null, this._transitions = null, this.isDestroyed = !0 + } + }], [{ + key: "getSize", + value: function(t, e) { + var i = window.getComputedStyle(t, null), + n = s(t, "width", i), + r = s(t, "height", i); + if (e) { + var o = s(t, "marginLeft", i), + a = s(t, "marginRight", i), + l = s(t, "marginTop", i), + u = s(t, "marginBottom", i); + n += o + a, r += l + u + } + return { + width: n, + height: r + } + } + }, { + key: "_skipTransitions", + value: function(t, e) { + var i = t.map(function(t) { + var e = t.style, + i = e.transitionDuration, + n = e.transitionDelay; + return e.transitionDuration = "0ms", e.transitionDelay = "0ms", { + duration: i, + delay: n + } + }); + e(), t[0].offsetWidth, t.forEach(function(t, e) { + t.style.transitionDuration = i[e].duration, t.style.transitionDelay = i[e].delay + }) + } + }]), t + }(); + return j.ShuffleItem = M, j.ALL_ITEMS = "all", j.FILTER_ATTRIBUTE_KEY = "groups", j.EventType = { + LAYOUT: "shuffle:layout", + REMOVED: "shuffle:removed" + }, j.Classes = z, j.FilterMode = { + ANY: "any", + ALL: "all" + }, j.options = { + group: j.ALL_ITEMS, + speed: 250, + easing: "ease", + itemSelector: "*", + sizer: null, + gutterWidth: 0, + columnWidth: 0, + delimeter: null, + buffer: 0, + columnThreshold: .01, + initialSort: null, + throttle: I, + throttleTime: 300, + staggerAmount: 15, + staggerAmountMax: 250, + useTransforms: !0, + filterMode: j.FilterMode.ANY + }, j.__Point = D, j.__sorter = a, j.__getColumnSpan = d, j.__getAvailablePositions = g, j.__getShortColumn = m, j +}), + function(t) { + function e(t, n) { + if (t = t || "", n = n || {}, t instanceof e) return t; + if (!(this instanceof e)) return new e(t, n); + var r = i(t); + this._originalInput = t, this._r = r.r, this._g = r.g, this._b = r.b, this._a = r.a, this._roundA = W(100 * this._a) / 100, this._format = n.format || r.format, this._gradientType = n.gradientType, this._r < 1 && (this._r = W(this._r)), this._g < 1 && (this._g = W(this._g)), this._b < 1 && (this._b = W(this._b)), this._ok = r.ok, this._tc_id = O++ + } + + function i(t) { + var e = { + r: 0, + g: 0, + b: 0 + }, + i = 1, + r = null, + o = null, + l = null, + u = !1, + h = !1; + return "string" == typeof t && (t = M(t)), "object" == typeof t && (B(t.r) && B(t.g) && B(t.b) ? (e = n(t.r, t.g, t.b), u = !0, h = "%" === String(t.r).substr(-1) ? "prgb" : "rgb") : B(t.h) && B(t.s) && B(t.v) ? (r = L(t.s), o = L(t.v), e = a(t.h, r, o), u = !0, h = "hsv") : B(t.h) && B(t.s) && B(t.l) && (r = L(t.s), l = L(t.l), e = s(t.h, r, l), u = !0, h = "hsl"), t.hasOwnProperty("a") && (i = t.a)), i = E(i), { + ok: u, + format: t.format || h, + r: q(255, P(e.r, 0)), + g: q(255, P(e.g, 0)), + b: q(255, P(e.b, 0)), + a: i + } + } + + function n(t, e, i) { + return { + r: 255 * w(t, 255), + g: 255 * w(e, 255), + b: 255 * w(i, 255) + } + } + + function r(t, e, i) { + t = w(t, 255), e = w(e, 255), i = w(i, 255); + var n, r, s = P(t, e, i), + o = q(t, e, i), + a = (s + o) / 2; + if (s == o) n = r = 0; + else { + var l = s - o; + switch (r = a > .5 ? l / (2 - s - o) : l / (s + o), s) { + case t: + n = (e - i) / l + (e < i ? 6 : 0); + break; + case e: + n = (i - t) / l + 2; + break; + case i: + n = (t - e) / l + 4 + } + n /= 6 + } + return { + h: n, + s: r, + l: a + } + } + + function s(t, e, i) { + function n(t, e, i) { + return i < 0 && (i += 1), i > 1 && (i -= 1), i < 1 / 6 ? t + 6 * (e - t) * i : i < .5 ? e : i < 2 / 3 ? t + (e - t) * (2 / 3 - i) * 6 : t + } + var r, s, o; + if (t = w(t, 360), e = w(e, 100), i = w(i, 100), 0 === e) r = s = o = i; + else { + var a = i < .5 ? i * (1 + e) : i + e - i * e, + l = 2 * i - a; + r = n(l, a, t + 1 / 3), s = n(l, a, t), o = n(l, a, t - 1 / 3) + } + return { + r: 255 * r, + g: 255 * s, + b: 255 * o + } + } + + function o(t, e, i) { + t = w(t, 255), e = w(e, 255), i = w(i, 255); + var n, r, s = P(t, e, i), + o = q(t, e, i), + a = s, + l = s - o; + if (r = 0 === s ? 0 : l / s, s == o) n = 0; + else { + switch (s) { + case t: + n = (e - i) / l + (e < i ? 6 : 0); + break; + case e: + n = (i - t) / l + 2; + break; + case i: + n = (t - e) / l + 4 + } + n /= 6 + } + return { + h: n, + s: r, + v: a + } + } + + function a(e, i, n) { + e = 6 * w(e, 360), i = w(i, 100), n = w(n, 100); + var r = t.floor(e), + s = e - r, + o = n * (1 - i), + a = n * (1 - s * i), + l = n * (1 - (1 - s) * i), + u = r % 6; + return { + r: 255 * [n, a, o, o, l, n][u], + g: 255 * [l, n, n, a, o, o][u], + b: 255 * [o, o, l, n, n, a][u] + } + } + + function l(t, e, i, n) { + var r = [F(W(t).toString(16)), F(W(e).toString(16)), F(W(i).toString(16))]; + return n && r[0].charAt(0) == r[0].charAt(1) && r[1].charAt(0) == r[1].charAt(1) && r[2].charAt(0) == r[2].charAt(1) ? r[0].charAt(0) + r[1].charAt(0) + r[2].charAt(0) : r.join("") + } + + function u(t, e, i, n, r) { + var s = [F(W(t).toString(16)), F(W(e).toString(16)), F(W(i).toString(16)), F(D(n))]; + return r && s[0].charAt(0) == s[0].charAt(1) && s[1].charAt(0) == s[1].charAt(1) && s[2].charAt(0) == s[2].charAt(1) && s[3].charAt(0) == s[3].charAt(1) ? s[0].charAt(0) + s[1].charAt(0) + s[2].charAt(0) + s[3].charAt(0) : s.join("") + } + + function h(t, e, i, n) { + return [F(D(n)), F(W(t).toString(16)), F(W(e).toString(16)), F(W(i).toString(16))].join("") + } + + function f(t, i) { + i = 0 === i ? 0 : i || 10; + var n = e(t).toHsl(); + return n.s -= i / 100, n.s = x(n.s), e(n) + } + + function c(t, i) { + i = 0 === i ? 0 : i || 10; + var n = e(t).toHsl(); + return n.s += i / 100, n.s = x(n.s), e(n) + } + + function d(t) { + return e(t).desaturate(100) + } + + function g(t, i) { + i = 0 === i ? 0 : i || 10; + var n = e(t).toHsl(); + return n.l += i / 100, n.l = x(n.l), e(n) + } + + function m(t, i) { + i = 0 === i ? 0 : i || 10; + var n = e(t).toRgb(); + return n.r = P(0, q(255, n.r - W(-i / 100 * 255))), n.g = P(0, q(255, n.g - W(-i / 100 * 255))), n.b = P(0, q(255, n.b - W(-i / 100 * 255))), e(n) + } + + function p(t, i) { + i = 0 === i ? 0 : i || 10; + var n = e(t).toHsl(); + return n.l -= i / 100, n.l = x(n.l), e(n) + } + + function v(t, i) { + var n = e(t).toHsl(), + r = (n.h + i) % 360; + return n.h = r < 0 ? 360 + r : r, e(n) + } + + function b(t) { + var i = e(t).toHsl(); + return i.h = (i.h + 180) % 360, e(i) + } + + function y(t) { + var i = e(t).toHsl(), + n = i.h; + return [e(t), e({ + h: (n + 120) % 360, + s: i.s, + l: i.l + }), e({ + h: (n + 240) % 360, + s: i.s, + l: i.l + })] + } + + function _(t) { + var i = e(t).toHsl(), + n = i.h; + return [e(t), e({ + h: (n + 90) % 360, + s: i.s, + l: i.l + }), e({ + h: (n + 180) % 360, + s: i.s, + l: i.l + }), e({ + h: (n + 270) % 360, + s: i.s, + l: i.l + })] + } + + function S(t) { + var i = e(t).toHsl(), + n = i.h; + return [e(t), e({ + h: (n + 72) % 360, + s: i.s, + l: i.l + }), e({ + h: (n + 216) % 360, + s: i.s, + l: i.l + })] + } + + function A(t, i, n) { + i = i || 6, n = n || 30; + var r = e(t).toHsl(), + s = 360 / n, + o = [e(t)]; + for (r.h = (r.h - (s * i >> 1) + 720) % 360; --i;) r.h = (r.h + s) % 360, o.push(e(r)); + return o + } + + function k(t, i) { + i = i || 6; + for (var n = e(t).toHsv(), r = n.h, s = n.s, o = n.v, a = [], l = 1 / i; i--;) a.push(e({ + h: r, + s: s, + v: o + })), o = (o + l) % 1; + return a + } + + function E(t) { + return t = parseFloat(t), (isNaN(t) || t < 0 || t > 1) && (t = 1), t + } + + function w(e, i) { + I(e) && (e = "100%"); + var n = T(e); + return e = q(i, P(0, parseFloat(e))), n && (e = parseInt(e * i, 10) / 100), t.abs(e - i) < 1e-6 ? 1 : e % i / parseFloat(i) + } + + function x(t) { + return q(1, P(0, t)) + } + + function C(t) { + return parseInt(t, 16) + } + + function I(t) { + return "string" == typeof t && -1 != t.indexOf(".") && 1 === parseFloat(t) + } + + function T(t) { + return "string" == typeof t && -1 != t.indexOf("%") + } + + function F(t) { + return 1 == t.length ? "0" + t : "" + t + } + + function L(t) { + return t <= 1 && (t = 100 * t + "%"), t + } + + function D(e) { + return t.round(255 * parseFloat(e)).toString(16) + } + + function z(t) { + return C(t) / 255 + } + + function B(t) { + return !!Y.CSS_UNIT.exec(t) + } + + function M(t) { + t = t.replace(R, "").replace(N, "").toLowerCase(); + var e = !1; + if (U[t]) t = U[t], e = !0; + else if ("transparent" == t) return { + r: 0, + g: 0, + b: 0, + a: 0, + format: "name" + }; + var i; + return (i = Y.rgb.exec(t)) ? { + r: i[1], + g: i[2], + b: i[3] + } : (i = Y.rgba.exec(t)) ? { + r: i[1], + g: i[2], + b: i[3], + a: i[4] + } : (i = Y.hsl.exec(t)) ? { + h: i[1], + s: i[2], + l: i[3] + } : (i = Y.hsla.exec(t)) ? { + h: i[1], + s: i[2], + l: i[3], + a: i[4] + } : (i = Y.hsv.exec(t)) ? { + h: i[1], + s: i[2], + v: i[3] + } : (i = Y.hsva.exec(t)) ? { + h: i[1], + s: i[2], + v: i[3], + a: i[4] + } : (i = Y.hex8.exec(t)) ? { + r: C(i[1]), + g: C(i[2]), + b: C(i[3]), + a: z(i[4]), + format: e ? "name" : "hex8" + } : (i = Y.hex6.exec(t)) ? { + r: C(i[1]), + g: C(i[2]), + b: C(i[3]), + format: e ? "name" : "hex" + } : (i = Y.hex4.exec(t)) ? { + r: C(i[1] + "" + i[1]), + g: C(i[2] + "" + i[2]), + b: C(i[3] + "" + i[3]), + a: z(i[4] + "" + i[4]), + format: e ? "name" : "hex8" + } : !!(i = Y.hex3.exec(t)) && { + r: C(i[1] + "" + i[1]), + g: C(i[2] + "" + i[2]), + b: C(i[3] + "" + i[3]), + format: e ? "name" : "hex" + } + } + + function H(t) { + var e, i; + return t = t || { + level: "AA", + size: "small" + }, e = (t.level || "AA").toUpperCase(), i = (t.size || "small").toLowerCase(), "AA" !== e && "AAA" !== e && (e = "AA"), "small" !== i && "large" !== i && (i = "small"), { + level: e, + size: i + } + } + var R = /^\s+/, + N = /\s+$/, + O = 0, + W = t.round, + q = t.min, + P = t.max, + V = t.random; + e.prototype = { + isDark: function() { + return this.getBrightness() < 128 + }, + isLight: function() { + return !this.isDark() + }, + isValid: function() { + return this._ok + }, + getOriginalInput: function() { + return this._originalInput + }, + getFormat: function() { + return this._format + }, + getAlpha: function() { + return this._a + }, + getBrightness: function() { + var t = this.toRgb(); + return (299 * t.r + 587 * t.g + 114 * t.b) / 1e3 + }, + getLuminance: function() { + var e, i, n, r, s, o, a = this.toRgb(); + return e = a.r / 255, i = a.g / 255, n = a.b / 255, r = e <= .03928 ? e / 12.92 : t.pow((e + .055) / 1.055, 2.4), s = i <= .03928 ? i / 12.92 : t.pow((i + .055) / 1.055, 2.4), o = n <= .03928 ? n / 12.92 : t.pow((n + .055) / 1.055, 2.4), .2126 * r + .7152 * s + .0722 * o + }, + setAlpha: function(t) { + return this._a = E(t), this._roundA = W(100 * this._a) / 100, this + }, + toHsv: function() { + var t = o(this._r, this._g, this._b); + return { + h: 360 * t.h, + s: t.s, + v: t.v, + a: this._a + } + }, + toHsvString: function() { + var t = o(this._r, this._g, this._b), + e = W(360 * t.h), + i = W(100 * t.s), + n = W(100 * t.v); + return 1 == this._a ? "hsv(" + e + ", " + i + "%, " + n + "%)" : "hsva(" + e + ", " + i + "%, " + n + "%, " + this._roundA + ")" + }, + toHsl: function() { + var t = r(this._r, this._g, this._b); + return { + h: 360 * t.h, + s: t.s, + l: t.l, + a: this._a + } + }, + toHslString: function() { + var t = r(this._r, this._g, this._b), + e = W(360 * t.h), + i = W(100 * t.s), + n = W(100 * t.l); + return 1 == this._a ? "hsl(" + e + ", " + i + "%, " + n + "%)" : "hsla(" + e + ", " + i + "%, " + n + "%, " + this._roundA + ")" + }, + toHex: function(t) { + return l(this._r, this._g, this._b, t) + }, + toHexString: function(t) { + return "#" + this.toHex(t) + }, + toHex8: function(t) { + return u(this._r, this._g, this._b, this._a, t) + }, + toHex8String: function(t) { + return "#" + this.toHex8(t) + }, + toRgb: function() { + return { + r: W(this._r), + g: W(this._g), + b: W(this._b), + a: this._a + } + }, + toRgbString: function() { + return 1 == this._a ? "rgb(" + W(this._r) + ", " + W(this._g) + ", " + W(this._b) + ")" : "rgba(" + W(this._r) + ", " + W(this._g) + ", " + W(this._b) + ", " + this._roundA + ")" + }, + toPercentageRgb: function() { + return { + r: W(100 * w(this._r, 255)) + "%", + g: W(100 * w(this._g, 255)) + "%", + b: W(100 * w(this._b, 255)) + "%", + a: this._a + } + }, + toPercentageRgbString: function() { + return 1 == this._a ? "rgb(" + W(100 * w(this._r, 255)) + "%, " + W(100 * w(this._g, 255)) + "%, " + W(100 * w(this._b, 255)) + "%)" : "rgba(" + W(100 * w(this._r, 255)) + "%, " + W(100 * w(this._g, 255)) + "%, " + W(100 * w(this._b, 255)) + "%, " + this._roundA + ")" + }, + toName: function() { + return 0 === this._a ? "transparent" : !(this._a < 1) && (j[l(this._r, this._g, this._b, !0)] || !1) + }, + toFilter: function(t) { + var i = "#" + h(this._r, this._g, this._b, this._a), + n = i, + r = this._gradientType ? "GradientType = 1, " : ""; + if (t) { + var s = e(t); + n = "#" + h(s._r, s._g, s._b, s._a) + } + return "progid:DXImageTransform.Microsoft.gradient(" + r + "startColorstr=" + i + ",endColorstr=" + n + ")" + }, + toString: function(t) { + var e = !!t; + t = t || this._format; + var i = !1, + n = this._a < 1 && this._a >= 0; + return e || !n || "hex" !== t && "hex6" !== t && "hex3" !== t && "hex4" !== t && "hex8" !== t && "name" !== t ? ("rgb" === t && (i = this.toRgbString()), "prgb" === t && (i = this.toPercentageRgbString()), "hex" !== t && "hex6" !== t || (i = this.toHexString()), "hex3" === t && (i = this.toHexString(!0)), "hex4" === t && (i = this.toHex8String(!0)), "hex8" === t && (i = this.toHex8String()), "name" === t && (i = this.toName()), "hsl" === t && (i = this.toHslString()), "hsv" === t && (i = this.toHsvString()), i || this.toHexString()) : "name" === t && 0 === this._a ? this.toName() : this.toRgbString() + }, + clone: function() { + return e(this.toString()) + }, + _applyModification: function(t, e) { + var i = t.apply(null, [this].concat([].slice.call(e))); + return this._r = i._r, this._g = i._g, this._b = i._b, this.setAlpha(i._a), this + }, + lighten: function() { + return this._applyModification(g, arguments) + }, + brighten: function() { + return this._applyModification(m, arguments) + }, + darken: function() { + return this._applyModification(p, arguments) + }, + desaturate: function() { + return this._applyModification(f, arguments) + }, + saturate: function() { + return this._applyModification(c, arguments) + }, + greyscale: function() { + return this._applyModification(d, arguments) + }, + spin: function() { + return this._applyModification(v, arguments) + }, + _applyCombination: function(t, e) { + return t.apply(null, [this].concat([].slice.call(e))) + }, + analogous: function() { + return this._applyCombination(A, arguments) + }, + complement: function() { + return this._applyCombination(b, arguments) + }, + monochromatic: function() { + return this._applyCombination(k, arguments) + }, + splitcomplement: function() { + return this._applyCombination(S, arguments) + }, + triad: function() { + return this._applyCombination(y, arguments) + }, + tetrad: function() { + return this._applyCombination(_, arguments) + } + }, e.fromRatio = function(t, i) { + if ("object" == typeof t) { + var n = {}; + for (var r in t) t.hasOwnProperty(r) && (n[r] = "a" === r ? t[r] : L(t[r])); + t = n + } + return e(t, i) + }, e.equals = function(t, i) { + return !(!t || !i) && e(t).toRgbString() == e(i).toRgbString() + }, e.random = function() { + return e.fromRatio({ + r: V(), + g: V(), + b: V() + }) + }, e.mix = function(t, i, n) { + n = 0 === n ? 0 : n || 50; + var r = e(t).toRgb(), + s = e(i).toRgb(), + o = n / 100; + return e({ + r: (s.r - r.r) * o + r.r, + g: (s.g - r.g) * o + r.g, + b: (s.b - r.b) * o + r.b, + a: (s.a - r.a) * o + r.a + }) + }, e.readability = function(i, n) { + var r = e(i), + s = e(n); + return (t.max(r.getLuminance(), s.getLuminance()) + .05) / (t.min(r.getLuminance(), s.getLuminance()) + .05) + }, e.isReadable = function(t, i, n) { + var r, s, o = e.readability(t, i); + switch (s = !1, r = H(n), r.level + r.size) { + case "AAsmall": + case "AAAlarge": + s = o >= 4.5; + break; + case "AAlarge": + s = o >= 3; + break; + case "AAAsmall": + s = o >= 7 + } + return s + }, e.mostReadable = function(t, i, n) { + var r, s, o, a, l = null, + u = 0; + n = n || {}, s = n.includeFallbackColors, o = n.level, a = n.size; + for (var h = 0; h < i.length; h++)(r = e.readability(t, i[h])) > u && (u = r, l = e(i[h])); + return e.isReadable(t, l, { + level: o, + size: a + }) || !s ? l : (n.includeFallbackColors = !1, e.mostReadable(t, ["#fff", "#000"], n)) + }; + var U = e.names = { + aliceblue: "f0f8ff", + antiquewhite: "faebd7", + aqua: "0ff", + aquamarine: "7fffd4", + azure: "f0ffff", + beige: "f5f5dc", + bisque: "ffe4c4", + black: "000", + blanchedalmond: "ffebcd", + blue: "00f", + blueviolet: "8a2be2", + brown: "a52a2a", + burlywood: "deb887", + burntsienna: "ea7e5d", + cadetblue: "5f9ea0", + chartreuse: "7fff00", + chocolate: "d2691e", + coral: "ff7f50", + cornflowerblue: "6495ed", + cornsilk: "fff8dc", + crimson: "dc143c", + cyan: "0ff", + darkblue: "00008b", + darkcyan: "008b8b", + darkgoldenrod: "b8860b", + darkgray: "a9a9a9", + darkgreen: "006400", + darkgrey: "a9a9a9", + darkkhaki: "bdb76b", + darkmagenta: "8b008b", + darkolivegreen: "556b2f", + darkorange: "ff8c00", + darkorchid: "9932cc", + darkred: "8b0000", + darksalmon: "e9967a", + darkseagreen: "8fbc8f", + darkslateblue: "483d8b", + darkslategray: "2f4f4f", + darkslategrey: "2f4f4f", + darkturquoise: "00ced1", + darkviolet: "9400d3", + deeppink: "ff1493", + deepskyblue: "00bfff", + dimgray: "696969", + dimgrey: "696969", + dodgerblue: "1e90ff", + firebrick: "b22222", + floralwhite: "fffaf0", + forestgreen: "228b22", + fuchsia: "f0f", + gainsboro: "dcdcdc", + ghostwhite: "f8f8ff", + gold: "ffd700", + goldenrod: "daa520", + gray: "808080", + green: "008000", + greenyellow: "adff2f", + grey: "808080", + honeydew: "f0fff0", + hotpink: "ff69b4", + indianred: "cd5c5c", + indigo: "4b0082", + ivory: "fffff0", + khaki: "f0e68c", + lavender: "e6e6fa", + lavenderblush: "fff0f5", + lawngreen: "7cfc00", + lemonchiffon: "fffacd", + lightblue: "add8e6", + lightcoral: "f08080", + lightcyan: "e0ffff", + lightgoldenrodyellow: "fafad2", + lightgray: "d3d3d3", + lightgreen: "90ee90", + lightgrey: "d3d3d3", + lightpink: "ffb6c1", + lightsalmon: "ffa07a", + lightseagreen: "20b2aa", + lightskyblue: "87cefa", + lightslategray: "789", + lightslategrey: "789", + lightsteelblue: "b0c4de", + lightyellow: "ffffe0", + lime: "0f0", + limegreen: "32cd32", + linen: "faf0e6", + magenta: "f0f", + maroon: "800000", + mediumaquamarine: "66cdaa", + mediumblue: "0000cd", + mediumorchid: "ba55d3", + mediumpurple: "9370db", + mediumseagreen: "3cb371", + mediumslateblue: "7b68ee", + mediumspringgreen: "00fa9a", + mediumturquoise: "48d1cc", + mediumvioletred: "c71585", + midnightblue: "191970", + mintcream: "f5fffa", + mistyrose: "ffe4e1", + moccasin: "ffe4b5", + navajowhite: "ffdead", + navy: "000080", + oldlace: "fdf5e6", + olive: "808000", + olivedrab: "6b8e23", + orange: "ffa500", + orangered: "ff4500", + orchid: "da70d6", + palegoldenrod: "eee8aa", + palegreen: "98fb98", + paleturquoise: "afeeee", + palevioletred: "db7093", + papayawhip: "ffefd5", + peachpuff: "ffdab9", + peru: "cd853f", + pink: "ffc0cb", + plum: "dda0dd", + powderblue: "b0e0e6", + purple: "800080", + rebeccapurple: "663399", + red: "f00", + rosybrown: "bc8f8f", + royalblue: "4169e1", + saddlebrown: "8b4513", + salmon: "fa8072", + sandybrown: "f4a460", + seagreen: "2e8b57", + seashell: "fff5ee", + sienna: "a0522d", + silver: "c0c0c0", + skyblue: "87ceeb", + slateblue: "6a5acd", + slategray: "708090", + slategrey: "708090", + snow: "fffafa", + springgreen: "00ff7f", + steelblue: "4682b4", + tan: "d2b48c", + teal: "008080", + thistle: "d8bfd8", + tomato: "ff6347", + turquoise: "40e0d0", + violet: "ee82ee", + wheat: "f5deb3", + white: "fff", + whitesmoke: "f5f5f5", + yellow: "ff0", + yellowgreen: "9acd32" + }, + j = e.hexNames = function(t) { + var e = {}; + for (var i in t) t.hasOwnProperty(i) && (e[t[i]] = i); + return e + }(U), + Y = function() { + var t = "(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)", + e = "[\\s|\\(]+(" + t + ")[,|\\s]+(" + t + ")[,|\\s]+(" + t + ")\\s*\\)?", + i = "[\\s|\\(]+(" + t + ")[,|\\s]+(" + t + ")[,|\\s]+(" + t + ")[,|\\s]+(" + t + ")\\s*\\)?"; + return { + CSS_UNIT: new RegExp(t), + rgb: new RegExp("rgb" + e), + rgba: new RegExp("rgba" + i), + hsl: new RegExp("hsl" + e), + hsla: new RegExp("hsla" + i), + hsv: new RegExp("hsv" + e), + hsva: new RegExp("hsva" + i), + hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ + } + }(); + "undefined" != typeof module && module.exports ? module.exports = e : "function" == typeof define && define.amd ? define(function() { + return e + }) : window.tinycolor = e + }(Math), String.prototype.hashCode = function() { + var t = 5381; + for (i = 0; i < this.length; i++) char = this.charCodeAt(i), t = (t << 5) + t + char; + return t >>> 0 +}; +var Color = tinycolor, + Shuffle = window.shuffle, + shuffle = new Shuffle(document.querySelector(".tile-container"), { + group: shuffle.ALL_ITEMS, + itemSelector: ".tile", + gutterWidth: 16, + columnWidth: 188, + buffer: 1, + delimeter: ",", + useTransforms: !1 + }), + filterTiles = function(t) { + shuffle.filter(location.hash.slice(1)) + }; +window.onhashchange = filterTiles; +var getUrlParts = function(t) { + var e = { + domain: "", + before: "", + after: "" + }, + i = new URL(t), + n = i.host; + if (e.domain = n.replace(/^www\./i, ""), n.match(/^\d+\.\d+\.\d+\.\d+$/)) return e.domain = n, e; + if (n.match(/^(\d+\.\d+\.\d+\.\d+)(:(\d+))?$/)) return r = n.match(/^(\d+\.\d+\.\d+\.\d+)(:(\d+))?$/), e.domain = r[1], e.after = r[3], e; + for (var r = e.domain.split("."), s = 0, o = 1; o < r.length - 1; o++) r[o].length > r[s].length && (s = o); + return e.domain = r[s], e.before = r.slice(0, s).join("."), e.after = r.slice(s + 1).join("."), !e.domain && i.pathname && (e.domain = i.pathname.split("/").filter(Boolean).pop()), e + }, + fitText = function(t, e, i) { + var n = document.createElement("div"); + n.style.visibility = "hidden", n.style.position = "absolute", document.body.appendChild(n); + var r = 40; + for (n.innerHTML = t, n.style.fontSize = r; n.offsetWidth > e;) r -= 1, n.style.fontSize = r; + var s = { + size: r, + width: n.offsetWidth, + height: n.offsetHeight + }; + return n.remove(), s + }, + getTileColor = function(t) { + var e = ["#B42424", "#C83D1D", "#BB7231", "#E06B00", "#55931F", "#1C941B", "#189365", "#189196", "#2D85A4", "#2B6C90", "#205396", "#39448F", "#55338E", "#683089", "#963A97", "#A43343", "#982F2F", "#D30000", "#E54C29", "#DA7E2C", "#73B43A", "#3AB43A", "#3AB487", "#3AB0B4", "#47A6C7", "#3A88B4", "#3A6FB4", "#3A4AB4", "#673AB4", "#863AB4", "#C846C9", "#C44A5B", "#AA4444", "#E84545", "#FF6946", "#EC9344", "#3CA4DF", "#3A83E3", "#4056E3", "#9058F0", "#B467E2", "#DF7CDF", "#E5576B", "#D35A5A", "#3DC53D", "#2DBBB1", "#5E95D5", "#5E5BE7", "#1B7EFF", "#5F74FF", "#8A45FF", "#B856F3", "#DD66DD"]; + return e[t.hashCode() % e.length] + }, + renderImgTile = function(t) { + t.innerHTML = ""; + var e = t.getAttribute("data-bg-color"); + e || (e = "rgba(255,255,255,.8)"), e = Color(e), e.setAlpha(.8), t.style.backgroundColor = e; + var i = new Image; + i.src = t.getAttribute("data-img"), i.className = "logo", t.appendChild(i) + }, + renderPlainTile = function(t) { + var e = getUrlParts(t.getAttribute("data-url")); + t.innerHTML = ""; + var i = t.getAttribute("data-bg-color"); + i || (i = "rgba(255,255,255,.8)"), i = Color(i), i.setAlpha(.8), t.style.backgroundColor = i; + var n = t.getAttribute("data-txt-color"); + n || (n = getTileColor(e.domain), i.isDark() && (t.style.color = "white")), n = Color(n), t.style.color = n; + var r = fitText(e.domain, 172, 120), + s = document.createElement("div"); + s.style.fontSize = r.size, s.style.position = "absolute", t.appendChild(s); + var o = document.createElement("div"); + o.innerHTML = e.before, o.style.top = .35 * r.size - 10, o.className = "pre-domain", o.style.textShadow = "-1px 0 " + i + ",0 1px " + i + ",1px 0 " + i + ",0 -1px " + i; + var a = document.createElement("div"); + a.innerHTML = e.after, a.style.top = r.size - .05 * r.size, a.className = "post-domain", a.style.textShadow = "-1px 0 " + i + ",0 1px " + i + ",1px 0 " + i + ",0 -1px " + i, s.appendChild(o), s.appendChild(document.createTextNode(e.domain)), s.appendChild(a); + var l = 64 - s.clientHeight / 2, + u = 106 - s.clientWidth / 2; + s.style.top = l, s.style.left = u + }, + renderTiles = function() { + for (var t = document.getElementsByClassName("tile-box"), e = 0; e < t.length; e++) try { + t.item(e).getAttribute("data-img") ? renderImgTile(t.item(e)) : renderPlainTile(t.item(e)) + } catch (t) { + console.log("err:" + t) + } + }; +renderTiles(); +var getBackgroundImages = function() { + var t = document.getElementsByTagName("body"), + e = [], + i = t[0].getAttribute("data-backgrounds"); + return i && (e = i.split(/[\s,]+/).filter(Boolean)), e + }, + preloadBackgrounds = function() { + for (var t = getBackgroundImages(), e = 0; e < t.length; e++)(new Image).src = t[e] + }, + rotateBackground = function(t) { + void 0 !== t && null !== t || (t = 0); + var e = getBackgroundImages(); + e.length > 0 && (t = (t + 1) % e.length, document.body.style.background = 'url("' + e[t] + '")', document.body.style.backgroundSize = "cover", e.length > 1 && setTimeout(rotateBackground.bind(null, t), 3e4)) + }; +preloadBackgrounds(), rotateBackground(); \ No newline at end of file