-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathelemental.min.js
1 lines (1 loc) · 7.22 KB
/
elemental.min.js
1
var Elemental=function(){function r(n,t,i){t.addEventListener?t.addEventListener(n,i,!0):t.attachEvent?t.attachEvent("on"+n,i):t[n]=i}var t=document.createElement("div"),u=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.msMatchesSelector,n=function(t){t=t instanceof Array?t:t==undefined?[]:[t];var u={add:function(n){for(n.get==undefined&&(n=Elemental.new(n)),i=0;i<t.length;i++)t[i].appendChild(n.get(0));return n.get(0)},bulk:function(n){var t=[];for(i in n)t[t.length]=u.add(n[i]);return t}};return{get:function(n){var r=[];for(i=0;i<t.length;i++)r[r.length]=t[i];return n==undefined?r:r[n]},toString:function(){return Elemental.new({}).append(this).get(0).innerHTML},find:function(r){var u=[],f;for(i=0;i<t.length;i++)if(t[i].querySelectorAll)for(f=t[i].querySelectorAll(r),i=0;i<f.length;i++)u[u.length]=f[i];return n(u)},append:function(t){return t instanceof Array?u.bulk(t):n(u.add(t))},attr:function(n,r){if(n==undefined)return t[0].attributes;if(r==undefined)return t[0].getAttribute(n);if(typeof r=="boolean")return this.conditionalAttribute(n,n,r);for(i=0;i<t.length;i++)t[i].setAttribute(n,r);return this},objectAttr:function(n,r){if(r==undefined)return t[0][n];for(i=0;i<t.length;i++)t[i][n]=r},height:function(){return t[0].clientHeight},width:function(){return t[0].clientWidth},scrollTop:function(n){return n==undefined?t[0].scrollTop:t[0].scrollTop=parseInt(n)+"px"},scrollLeft:function(n){return n==undefined?t[0].scrollLeft:t[0].scrollLeft=parseInt(n)+"px"},hasClass:function(n,r){if(r!=undefined)return new RegExp(" "+n+" ").test(" "+t[r].className+" ");for(i=0;i<t.length;i++)return new RegExp(" "+n+" ").test(" "+t[i].className+" ")},addClass:function(n){for(i=0;i<t.length;i++)this.hasClass(n,i)||(t[i].className+=" "+n);return this},removeClass:function(n){for(i=0;i<t.length;i++){var r=" "+t[i].className.replace(/[\t\r\n]/g," ")+" ";if(this.hasClass(n,i)){while(r.indexOf(" "+n+" ")>=0)r=r.replace(" "+n+" "," ");t[i].className=r.replace(/^\s+|\s+$/g," ")}}return this},toggleClass:function(n){for(i=0;i<t.length;i++){var r=" "+t[i].className.replace(/[\t\r\n]/g," ")+" ";if(this.hasClass(n,i)){while(r.indexOf(" "+n+" ")>=0)r=r.replace(" "+n+" "," ");t[i].className=r.replace(/^\s+|\s+$/g," ")}else this.className+=" "+n}return this},css:function(n,i){for(var r=0;r<t.length;r++){if(n instanceof Array){for(prop in n)t[r].style[prop]=n[r][prop];return}if(typeof i=="undefined")return t[r].style[n];t[r].style[n]=i}return this},is:function(n){n=Elemental.trim(n);switch(n[0]){case":":switch(n){case":visible":return!(t[0].offsetParent===null);case":disabled":return t[0].disabled;case":readonly":return t[0].getAttribute("readonly")!=null}break;case"[":case".":case"#":return Elemental.matchSelector(t[0],n)}},skipOut:function(n){for(var t=this,i=0;t&&i<n;)t=t.parent(),i++;return t},parent:function(r){function f(n,t){for(var i=0,r=n.length;i<r;i++)if(n[i]==t)return!0;return!1}function e(n,t){for(var r=document.querySelectorAll(t),i=n.parentElement;i&&!f(r,i);)i=i.parentElement;return i}var u=[];for(i=0;i<t.length;i++)u[u.length]=r==undefined?t[i].parentElement:e(t[i],r);return n(u)},focus:function(){return t[0]&&t[0].focus(),this},blur:function(){return t[0]&&t[0].blur(),this},next:function(i){return i?Elemental.find(i).index(this.index()+1):n(t[0].nextElementSibling||t[0].nextSibling)},prev:function(i){if(!i)return n(t[0].previousElementSibling||t[0].previousSibling);var u=this.index(i),r=Elemental.find(i).index(u-1);return r?n(r):n({})},index:function(n){var u;if(typeof n=="string"){for(u=this.parent().find(n).get(),i=0;i<u.length;i++)if(u[i]==t[0])return i;return!1}if(typeof n=="number")return typeof t[n]!="undefined"?t[n]:!1;for(var r=t[0].parentNode.firstChild,f=0;r;){if(r==t[0])return f;f++;r=r.nextElementSibling||r.nextSibling}return!1},siblings:function(){for(var i=[],n=t[0].parentNode.firstChild;n&&n.nodeType===1;)n!=t[0]&&i.push(n),n=n.nextElementSibling||n.nextSibling;return i},show:function(){for(i=0;i<t.length;i++)t[i].style.display="block";return this},hide:function(){for(i=0;i<t.length;i++)t[i].style.display="none";return this},toggle:function(){if(this.is("visible")){this.hide();return}return this.show(),this},remove:function(){for(i=0;i<t.length;i++)if(t[i]){var n=t[i].parentNode;n.removeChild(t[i])}return!0},on:function(n,u){for(i=0;i<t.length;i++)r(n,t[i],u);return this},size:function(){return t.length},conditionalAttribute:function(n,r,u){for(i=0;i<t.length;i++){if(u){t[i].setAttribute(n,r);return}t[i].removeAttribute(n)}return this},each:function(n,i){obj=t;var u,r=0,f=obj.length,e=obj instanceof Array;if(i){if(e){for(;r<f;r++)if(u=n.apply(obj[r],i),u===!1)break}else for(r in obj)if(u=n.apply(obj[r],i),u===!1)break}else if(e){for(;r<f;r++)if(u=n.call(obj[r],r,obj[r]),u===!1)break}else for(r in obj)if(u=n.call(obj[r],r,obj[r]),u===!1)break;return obj}}};return{options:{default_tag:"div"},trim:function(n){return n.replace(/^\s+|\s+$/gm,"")},toUnderscore:function(n){return n.replace(/([A-Z])/g,function(n){return"_"+n.toLowerCase()})},toDash:function(n){return n.replace(/([A-Z])/g,function(n){return"-"+n.toLowerCase()})},toCamel:function(n){return n.replace(/(\-[a-z])/g,function(n){return n.toUpperCase().replace("-","")})},message:{apply:function(){var n=arguments[0];for(i=1;i<arguments.length;i++)n=n.replace("@?",arguments[i]);return n},talk:function(n,t){var r,i;if(t==undefined){var u=n.length*3950/73;t=u+100}Elemental.find("#screen-reader-dynamic-text").remove();r=document.activeElement;i=Elemental.new({id:"screen-reader-dynamic-text",title:n,tabindex:0,role:"alert"});document.body.appendChild(i.get(0));i.focus();setTimeout(function(){r.focus();Elemental.find("#screen-reader-dynamic-text").remove()},t)}},find:function(t){var r=[],e=t.split(","),u=[],f;for(i in e){if(f=Elemental.trim(e[i]),f[0]=="#"){r[r.length]=document.getElementById(e[i].replace("#",""));continue}f!=""&&(u[u.length]=f)}if(u.length>0)for(query=document.querySelectorAll(u.join(",")),i=0;i<query.length;i++)r[r.length]=query[i];return n(r)},matchSelector:function(n,t){var i,r;return n.get&&(n=n.get(0)),i=Elemental.find(t),i.css("match-selector-test","match-selector-value"),r=n.style["match-selector-test"]=="match-selector-value",i.css("match-selector-test",null),r},"new":function(t,r,u){var o,e,v,l;if(t.nodeName)return n(t);if(t instanceof Array&&r!=undefined){var s=[],h=0,c=[];for(f in t){for(u&&(t[f].tag=u),s[h]=Elemental.new(t[f]),c=s[h].get(),i=0;i<c.length;i++)r.appendChild(c[i]);h++}return s}t.tag=(t.tag==undefined?Elemental.options.default_tag:t.tag).toLowerCase();o=document.createElement(t.tag);e=n(o);for(i in t)switch(i){case"event":case"events":case"methods":case"on":for(event in t[i])if(typeof event=="string"&&t[i]!=undefined)e.on(event,t[i][event]);break;case"items":case"child":case"children":v=t.tag=="select"?"option":!1;Elemental.new(t[i],o,v);break;case"class":case"className":t[i]instanceof Array||(t[i]=[t[i]]);for(a in t[i])e.addClass(t[i][a]);break;case"text":case"string":case"html":o.insertAdjacentHTML("beforeend",t[i]);break;case"tag":break;case"style":case"css":for(prop in t[i])e.css(prop,t[i][prop]);break;case"disabled":case"checked":case"readonly":t[i]==!0&&e.attr(i,t[i]);break;case"data":case"data-attributes":case"attr":case"attributes":for(a in t[i])l=Elemental.toDash(l),e.attr(l,t[i][a]);break;default:e.attr(Elemental.toDash(i),t[i])}return n(o)}}}();