Comparing version 1.0.0 to 1.1.0
{ | ||
"name": "ripple-js", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "A small library for ripple effects", | ||
@@ -5,0 +5,0 @@ "main": "ripple.min.js", |
240
ripple.js
@@ -1,128 +0,128 @@ | ||
//Mady by Aaron Längert in 2016 | ||
window.addEventListener("load", function() { | ||
document.head.innerHTML += '<style type="text/css">.ripple { overflow: hidden; position: relative; } .ripple .rippleContainer { display: inline-block; height: 0px !important; width: 0px !important; padding: 0px 0px 0px 0px; border-radius: 50%; position: absolute; top: 0px; left: 0px; transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); background-color: transparent; }</style>'; | ||
registerRipples(); | ||
}); | ||
registerRipples = function() { | ||
rippleButtons = document.getElementsByClassName("ripple"); | ||
for (ripplei = 0; ripplei < rippleButtons.length; ripplei++) { | ||
rippleButtons[ripplei].addEventListener("touchstart", function(e) { | ||
rippleStart(e); | ||
}, false); | ||
rippleButtons[ripplei].addEventListener("touchmove", function(e) { | ||
if (!document.elementFromPoint(e.touches[0].pageX, e.touches[0].pageY).className.includes("rippleContainer") || !document.elementFromPoint(e.touches[0].pageX, e.touches[0].pageY).parentNode.className.includes("ripple")) { | ||
rippleRetrieve(e); | ||
} | ||
}, false); | ||
rippleButtons[ripplei].addEventListener("touchend", function(e) { | ||
rippleEnd(e.target); | ||
}, false); | ||
rippleButtons[ripplei].addEventListener("mousedown", function(e) { | ||
rippleStart(e); | ||
}, false); | ||
rippleButtons[ripplei].addEventListener("mouseup", function(e) { | ||
rippleEnd(e.target); | ||
}, false); | ||
rippleButtons[ripplei].addEventListener("mouseleave", function(e) { | ||
rippleRetrieve(e); | ||
}, false); | ||
rippleButtons[ripplei].addEventListener("transitionend", function(e) { | ||
collapseTime = e.target.parentNode.getAttribute("ripple-leave-collapse-time") || .4; | ||
expandTime = e.target.parentNode.getAttribute("ripple-release-expand-time") || .4; | ||
if (e.elapsedTime == collapseTime || e.elapsedTime == expandTime) { | ||
e.target.style.transition = "none"; | ||
e.target.style.padding = "0px"; | ||
e.target.style.boxShadow = "none"; | ||
e.target.setAttribute("animating", "0"); | ||
} | ||
}, false); | ||
if (getRippleContainer(rippleButtons[ripplei]) == rippleButtons[ripplei]) { | ||
rippleButtons[ripplei].innerHTML += '<div class="rippleContainer"></div>'; | ||
//Written by Aaron Längert | ||
var ripple = function() { | ||
window.addEventListener("load", function() { | ||
//add stylesheet at finished load | ||
document.head.innerHTML += '<style type="text/css">.ripple { overflow: hidden; position: relative; } .ripple .rippleContainer { display: inline-block; height: 0px !important; width: 0px !important; padding: 0px 0px 0px 0px; border-radius: 50%; position: absolute; top: 0px; left: 0px; transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); background-color: transparent; } .ripple * {pointer-events: none;}</style>'; | ||
ripple.registerRipples(); | ||
}); | ||
function rippleStart(e) { | ||
rippleContainer = getRippleContainer(e.target); | ||
if (rippleContainer.getAttribute("animating") == "0" || !rippleContainer.hasAttribute("animating")) { | ||
rippleContainer.setAttribute("animating", "1"); | ||
scroll = getScroll(e.target); | ||
offsetX = typeof e.offsetX == "number" ? e.offsetX : e.touches[0].pageX - scroll.left; | ||
offsetY = typeof e.offsetY == "number" ? e.offsetY : e.touches[0].pageY - scroll.top; | ||
//fullCoverRadius is the longest distance between the touch and the corners of the element where the event fired | ||
fullCoverRadius = Math.max(Math.sqrt(Math.pow(offsetX, 2) + Math.pow(offsetY, 2)), Math.sqrt(Math.pow(e.target.clientWidth - offsetX, 2) + Math.pow(e.target.clientHeight - offsetY, 2)), Math.sqrt(Math.pow(offsetX, 2) + Math.pow(e.target.clientHeight - offsetY, 2)), Math.sqrt(Math.pow(offsetY, 2) + Math.pow(e.target.clientWidth - offsetX, 2))); | ||
expandTime = e.target.getAttribute("ripple-press-expand-time") || 3; | ||
rippleContainer.style.transition = "padding " + expandTime + "s ease-out, box-shadow 0.1s linear"; | ||
rippleContainer.style.background = e.target.getAttribute("ripple-color") || "white"; | ||
rippleContainer.style.opacity = e.target.getAttribute("ripple-opacity") || "0.6"; | ||
rippleContainer.style.boxShadow = e.target.getAttribute("ripple-shadow") || "none"; | ||
rippleContainer.style.top = offsetY + "px"; | ||
rippleContainer.style.left = offsetX + "px"; | ||
rippleContainer.style.padding = fullCoverRadius + "px"; | ||
} | ||
} | ||
}; | ||
rippleStart = function(e) { | ||
rippleContainer = getRippleContainer(e.target); | ||
if (rippleContainer.getAttribute("animating") == "0" || !rippleContainer.hasAttribute("animating")) { | ||
rippleContainer.setAttribute("animating", "1"); | ||
scroll = getScroll(e.target); | ||
offsetX = e.offsetX || e.touches[0].pageX - e.target.offsetLeft + scroll.left; | ||
offsetY = e.offsetY || e.touches[0].pageY - e.target.offsetTop + scroll.top; | ||
fullCoverRadius = Math.max(Math.sqrt(Math.pow(offsetX, 2) + Math.pow(offsetY, 2)), Math.sqrt(Math.pow(e.target.clientWidth - offsetX, 2) + Math.pow(e.target.clientHeight - offsetY, 2)), Math.sqrt(Math.pow(offsetX, 2) + Math.pow(e.target.clientHeight - offsetY, 2)), Math.sqrt(Math.pow(offsetY, 2) + Math.pow(e.target.clientWidth - offsetX, 2))); | ||
expandTime = e.target.getAttribute("ripple-press-expand-time") || 3; | ||
rippleContainer.style.transition = "padding " + expandTime + "s ease-out, box-shadow 0.1s linear"; | ||
rippleContainer.style.background = e.target.getAttribute("ripple-color") || "white"; | ||
rippleContainer.style.opacity = e.target.getAttribute("ripple-opacity") || "0.6"; | ||
rippleContainer.style.boxShadow = e.target.getAttribute("ripple-shadow") || "none"; | ||
rippleContainer.style.top = String(offsetY) + "px"; | ||
rippleContainer.style.left = String(offsetX) + "px"; | ||
rippleContainer.style.padding = String(fullCoverRadius) + "px"; | ||
function rippleEnd(e) { | ||
rippleContainer = getRippleContainer(e.target); | ||
if (rippleContainer.getAttribute("animating") == "1") { | ||
rippleContainer.setAttribute("animating", "2"); | ||
radius = window.getComputedStyle(rippleContainer, null).getPropertyValue("padding"); | ||
background = window.getComputedStyle(rippleContainer, null).getPropertyValue("background"); | ||
destinationRadius = e.target.clientWidth + e.target.clientHeight; | ||
rippleContainer.style.transition = "none"; | ||
rippleContainer.style.padding = radius; | ||
expandTime = e.target.getAttribute("ripple-release-expand-time") || .4; | ||
rippleContainer.style.transition = "padding " + expandTime + "s linear, background " + expandTime + "s linear, opacity " + expandTime + "s ease-in-out"; | ||
rippleContainer.style.padding = destinationRadius + "px"; | ||
rippleContainer.style.background = "radial-gradient(transparent 10%, " + background + " 40%)"; | ||
rippleContainer.style.opacity = "0"; | ||
//fire custom event | ||
e.target.dispatchEvent(new CustomEvent("ripple-button-click", { | ||
target: e.target | ||
})); | ||
} | ||
} | ||
}; | ||
rippleEnd = function(el) { | ||
try { | ||
if (!el.className.match(/(?:^|\s)rippleContainer(?!\S)/)) { | ||
window.setTimeout(rippleEnd, 1, getRippleContainer(el)); | ||
return; | ||
function rippleRetrieve(e) { | ||
rippleContainer = getRippleContainer(e.target); | ||
if (rippleContainer.getAttribute("animating") == "1") { | ||
rippleContainer.setAttribute("animating", "3"); | ||
collapseTime = e.target.getAttribute("ripple-leave-collapse-time") || .4; | ||
rippleContainer.style.transition = "padding " + collapseTime + "s linear, box-shadow " + collapseTime + "s linear"; | ||
rippleContainer.style.boxShadow = "none"; | ||
rippleContainer.style.padding = "0px"; | ||
} | ||
} catch (err) {} | ||
if (el.getAttribute("animating") == "1") { | ||
el.setAttribute("animating", "2"); | ||
radius = window.getComputedStyle(el, null).getPropertyValue("padding"); | ||
background = window.getComputedStyle(el, null).getPropertyValue("background"); | ||
destinationRadius = el.parentNode.clientWidth + el.parentNode.clientHeight; | ||
el.style.transition = "none"; | ||
el.style.padding = radius; | ||
expandTime = el.parentNode.getAttribute("ripple-release-expand-time") || .4; | ||
el.style.transition = "padding " + expandTime + "s linear, background " + expandTime + "s linear, opacity " + expandTime + "s ease-in-out"; | ||
el.style.padding = String(destinationRadius) + "px"; | ||
el.style.background = "radial-gradient(transparent 10%, " + background + " 40%)"; | ||
el.style.opacity = "0"; | ||
el.parentNode.dispatchEvent(new CustomEvent("ripple-button-click", { | ||
target: el.parentNode | ||
})); | ||
} | ||
}; | ||
rippleRetrieve = function(e) { | ||
rippleContainer = getRippleContainer(e.target); | ||
if (rippleContainer.getAttribute("animating") == "1") { | ||
rippleContainer.setAttribute("animating", "3"); | ||
collapseTime = e.target.getAttribute("ripple-leave-collapse-time") || .4; | ||
rippleContainer.style.transition = "padding " + collapseTime + "s linear, box-shadow " + collapseTime + "s linear"; | ||
rippleContainer.style.boxShadow = "none"; | ||
rippleContainer.style.padding = "0px"; | ||
//returns the ripple div by scanning all children. If not found, return the argument | ||
function getRippleContainer(el) { | ||
childs = el.childNodes; | ||
for (ii = 0; ii < childs.length; ii++) { | ||
try { | ||
if (childs[ii].className.indexOf("rippleContainer") > -1) { | ||
return childs[ii]; | ||
} | ||
} catch (err) {} | ||
} | ||
return el; | ||
} | ||
}; | ||
getRippleContainer = function(el) { | ||
childs = el.childNodes; | ||
for (i = 0; i < childs.length; i++) { | ||
try { | ||
if (childs[i].className.match(/(?:^|\s)rippleContainer(?!\S)/)) { | ||
return childs[i]; | ||
//calculates the top and left space of the document hidden due to scrolling | ||
function getScroll(el) { | ||
scroll = { | ||
top: 0 + el.getBoundingClientRect().top, | ||
left: 0 + el.getBoundingClientRect().left | ||
}; | ||
do { | ||
scroll.top += el.scrollTop || 0; | ||
scroll.left += el.scrollLeft || 0; | ||
} while (el = el.parentNode); | ||
return scroll; | ||
} | ||
var ripple = { | ||
registerRipples: function() { | ||
//loop through all elements with the class ripple and add eventlisteners to them | ||
rippleButtons = document.getElementsByClassName("ripple"); | ||
for (i = 0; i < rippleButtons.length; i++) { | ||
rippleButtons[i].addEventListener("touchstart", function(e) { | ||
rippleStart(e); | ||
}, false); | ||
rippleButtons[i].addEventListener("touchmove", function(e) { | ||
try { | ||
scroll = getScroll(e.target); | ||
overEl = document.elementFromPoint(e.touches[0].pageX - scroll.left, e.touches[0].pageY - scroll.top).className.indexOf("ripple") >= 0; | ||
} catch (err) { | ||
overEl = false; | ||
} | ||
if (!overEl) { | ||
rippleRetrieve(e); | ||
} | ||
}, false); | ||
rippleButtons[i].addEventListener("touchend", function(e) { | ||
rippleEnd(e); | ||
}, false); | ||
rippleButtons[i].addEventListener("mousedown", function(e) { | ||
rippleStart(e); | ||
}, false); | ||
rippleButtons[i].addEventListener("mouseup", function(e) { | ||
rippleEnd(e); | ||
}, false); | ||
rippleButtons[i].addEventListener("mouseleave", function(e) { | ||
rippleRetrieve(e); | ||
}, false); | ||
rippleButtons[i].addEventListener("transitionend", function(e) { | ||
if (e.target.getAttribute("animating") == "2" || e.target.getAttribute("animating") == "3") { | ||
e.target.style.transition = "none"; | ||
e.target.style.padding = "0px"; | ||
e.target.style.boxShadow = "none"; | ||
e.target.setAttribute("animating", "0"); | ||
} | ||
}, false); | ||
//if not there, create a ripple div inside the element | ||
if (getRippleContainer(rippleButtons[i]) == rippleButtons[i]) { | ||
rippleButtons[i].innerHTML += '<div class="rippleContainer"></div>'; | ||
} | ||
} | ||
} catch (err) {} | ||
} | ||
return el; | ||
}; | ||
getScroll = function(el) { | ||
scroll = { | ||
top: 0, | ||
left: 0 | ||
} | ||
}; | ||
do { | ||
if (el.scrollTop) { | ||
scroll.top += el.scrollTop; | ||
} | ||
if (el.scrollLeft) { | ||
scroll.left += scrollLeft; | ||
} | ||
} while (el = el.parentNode); | ||
return scroll; | ||
}; | ||
return ripple; | ||
}(); |
@@ -1,2 +0,2 @@ | ||
//Made by Aaron Längert in 2016 | ||
window.addEventListener("load",function(){document.head.innerHTML+='<style type="text/css">.ripple { overflow: hidden; position: relative; } .ripple .rippleContainer { display: inline-block; height: 0px !important; width: 0px !important; padding: 0px 0px 0px 0px; border-radius: 50%; position: absolute; top: 0px; left: 0px; transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); background-color: transparent; }</style>',registerRipples()}),registerRipples=function(){for(rippleButtons=document.getElementsByClassName("ripple"),ripplei=0;ripplei<rippleButtons.length;ripplei++)rippleButtons[ripplei].addEventListener("touchstart",function(e){rippleStart(e)},!1),rippleButtons[ripplei].addEventListener("touchmove",function(e){document.elementFromPoint(e.touches[0].pageX,e.touches[0].pageY).className.includes("rippleContainer")&&document.elementFromPoint(e.touches[0].pageX,e.touches[0].pageY).parentNode.className.includes("ripple")||rippleRetrieve(e)},!1),rippleButtons[ripplei].addEventListener("touchend",function(e){rippleEnd(e.target)},!1),rippleButtons[ripplei].addEventListener("mousedown",function(e){rippleStart(e)},!1),rippleButtons[ripplei].addEventListener("mouseup",function(e){rippleEnd(e.target)},!1),rippleButtons[ripplei].addEventListener("mouseleave",function(e){rippleRetrieve(e)},!1),rippleButtons[ripplei].addEventListener("transitionend",function(e){collapseTime=e.target.parentNode.getAttribute("ripple-leave-collapse-time")||.4,expandTime=e.target.parentNode.getAttribute("ripple-release-expand-time")||.4,(e.elapsedTime==collapseTime||e.elapsedTime==expandTime)&&(e.target.style.transition="none",e.target.style.padding="0px",e.target.style.boxShadow="none",e.target.setAttribute("animating","0"))},!1),getRippleContainer(rippleButtons[ripplei])==rippleButtons[ripplei]&&(rippleButtons[ripplei].innerHTML+='<div class="rippleContainer"></div>')},rippleStart=function(e){rippleContainer=getRippleContainer(e.target),"0"!=rippleContainer.getAttribute("animating")&&rippleContainer.hasAttribute("animating")||(rippleContainer.setAttribute("animating","1"),scroll=getScroll(e.target),offsetX=e.offsetX||e.touches[0].pageX-e.target.offsetLeft+scroll.left,offsetY=e.offsetY||e.touches[0].pageY-e.target.offsetTop+scroll.top,fullCoverRadius=Math.max(Math.sqrt(Math.pow(offsetX,2)+Math.pow(offsetY,2)),Math.sqrt(Math.pow(e.target.clientWidth-offsetX,2)+Math.pow(e.target.clientHeight-offsetY,2)),Math.sqrt(Math.pow(offsetX,2)+Math.pow(e.target.clientHeight-offsetY,2)),Math.sqrt(Math.pow(offsetY,2)+Math.pow(e.target.clientWidth-offsetX,2))),expandTime=e.target.getAttribute("ripple-press-expand-time")||3,rippleContainer.style.transition="padding "+expandTime+"s ease-out, box-shadow 0.1s linear",rippleContainer.style.background=e.target.getAttribute("ripple-color")||"white",rippleContainer.style.opacity=e.target.getAttribute("ripple-opacity")||"0.6",rippleContainer.style.boxShadow=e.target.getAttribute("ripple-shadow")||"none",rippleContainer.style.top=String(offsetY)+"px",rippleContainer.style.left=String(offsetX)+"px",rippleContainer.style.padding=String(fullCoverRadius)+"px")},rippleEnd=function(e){try{if(!e.className.match(/(?:^|\s)rippleContainer(?!\S)/))return void window.setTimeout(rippleEnd,1,getRippleContainer(e))}catch(t){}"1"==e.getAttribute("animating")&&(e.setAttribute("animating","2"),radius=window.getComputedStyle(e,null).getPropertyValue("padding"),background=window.getComputedStyle(e,null).getPropertyValue("background"),destinationRadius=e.parentNode.clientWidth+e.parentNode.clientHeight,e.style.transition="none",e.style.padding=radius,expandTime=e.parentNode.getAttribute("ripple-release-expand-time")||.4,e.style.transition="padding "+expandTime+"s linear, background "+expandTime+"s linear, opacity "+expandTime+"s ease-in-out",e.style.padding=String(destinationRadius)+"px",e.style.background="radial-gradient(transparent 10%, "+background+" 40%)",e.style.opacity="0",e.parentNode.dispatchEvent(new CustomEvent("ripple-button-click",{target:e.parentNode})))},rippleRetrieve=function(e){rippleContainer=getRippleContainer(e.target),"1"==rippleContainer.getAttribute("animating")&&(rippleContainer.setAttribute("animating","3"),collapseTime=e.target.getAttribute("ripple-leave-collapse-time")||.4,rippleContainer.style.transition="padding "+collapseTime+"s linear, box-shadow "+collapseTime+"s linear",rippleContainer.style.boxShadow="none",rippleContainer.style.padding="0px")},getRippleContainer=function(e){for(childs=e.childNodes,i=0;i<childs.length;i++)try{if(childs[i].className.match(/(?:^|\s)rippleContainer(?!\S)/))return childs[i]}catch(t){}return e},getScroll=function(e){scroll={top:0,left:0};do e.scrollTop&&(scroll.top+=e.scrollTop),e.scrollLeft&&(scroll.left+=scrollLeft);while(e=e.parentNode);return scroll}; | ||
//Written by Aaron Längert | ||
var ripple=function(){function t(t){rippleContainer=r(t.target),"0"!=rippleContainer.getAttribute("animating")&&rippleContainer.hasAttribute("animating")||(rippleContainer.setAttribute("animating","1"),scroll=a(t.target),offsetX="number"==typeof t.offsetX?t.offsetX:t.touches[0].pageX-scroll.left,offsetY="number"==typeof t.offsetY?t.offsetY:t.touches[0].pageY-scroll.top,fullCoverRadius=Math.max(Math.sqrt(Math.pow(offsetX,2)+Math.pow(offsetY,2)),Math.sqrt(Math.pow(t.target.clientWidth-offsetX,2)+Math.pow(t.target.clientHeight-offsetY,2)),Math.sqrt(Math.pow(offsetX,2)+Math.pow(t.target.clientHeight-offsetY,2)),Math.sqrt(Math.pow(offsetY,2)+Math.pow(t.target.clientWidth-offsetX,2))),expandTime=t.target.getAttribute("ripple-press-expand-time")||3,rippleContainer.style.transition="padding "+expandTime+"s ease-out, box-shadow 0.1s linear",rippleContainer.style.background=t.target.getAttribute("ripple-color")||"white",rippleContainer.style.opacity=t.target.getAttribute("ripple-opacity")||"0.6",rippleContainer.style.boxShadow=t.target.getAttribute("ripple-shadow")||"none",rippleContainer.style.top=offsetY+"px",rippleContainer.style.left=offsetX+"px",rippleContainer.style.padding=fullCoverRadius+"px")}function e(t){rippleContainer=r(t.target),"1"==rippleContainer.getAttribute("animating")&&(rippleContainer.setAttribute("animating","2"),radius=window.getComputedStyle(rippleContainer,null).getPropertyValue("padding"),background=window.getComputedStyle(rippleContainer,null).getPropertyValue("background"),destinationRadius=t.target.clientWidth+t.target.clientHeight,rippleContainer.style.transition="none",rippleContainer.style.padding=radius,expandTime=t.target.getAttribute("ripple-release-expand-time")||.4,rippleContainer.style.transition="padding "+expandTime+"s linear, background "+expandTime+"s linear, opacity "+expandTime+"s ease-in-out",rippleContainer.style.padding=destinationRadius+"px",rippleContainer.style.background="radial-gradient(transparent 10%, "+background+" 40%)",rippleContainer.style.opacity="0",t.target.dispatchEvent(new CustomEvent("ripple-button-click",{target:t.target})))}function n(t){rippleContainer=r(t.target),"1"==rippleContainer.getAttribute("animating")&&(rippleContainer.setAttribute("animating","3"),collapseTime=t.target.getAttribute("ripple-leave-collapse-time")||.4,rippleContainer.style.transition="padding "+collapseTime+"s linear, box-shadow "+collapseTime+"s linear",rippleContainer.style.boxShadow="none",rippleContainer.style.padding="0px")}function r(t){for(childs=t.childNodes,ii=0;ii<childs.length;ii++)try{if(childs[ii].className.indexOf("rippleContainer")>-1)return childs[ii]}catch(e){}return t}function a(t){scroll={top:0+t.getBoundingClientRect().top,left:0+t.getBoundingClientRect().left};do scroll.top+=t.scrollTop||0,scroll.left+=t.scrollLeft||0;while(t=t.parentNode);return scroll}window.addEventListener("load",function(){document.head.innerHTML+='<style type="text/css">.ripple { overflow: hidden; position: relative; } .ripple .rippleContainer { display: inline-block; height: 0px !important; width: 0px !important; padding: 0px 0px 0px 0px; border-radius: 50%; position: absolute; top: 0px; left: 0px; transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); background-color: transparent; } .ripple * {pointer-events: none;}</style>',o.registerRipples()});var o={registerRipples:function(){for(rippleButtons=document.getElementsByClassName("ripple"),i=0;i<rippleButtons.length;i++)rippleButtons[i].addEventListener("touchstart",function(e){t(e)},!1),rippleButtons[i].addEventListener("touchmove",function(t){try{scroll=a(t.target),overEl=document.elementFromPoint(t.touches[0].pageX-scroll.left,t.touches[0].pageY-scroll.top).className.indexOf("ripple")>=0}catch(e){overEl=!1}overEl||n(t)},!1),rippleButtons[i].addEventListener("touchend",function(t){e(t)},!1),rippleButtons[i].addEventListener("mousedown",function(e){t(e)},!1),rippleButtons[i].addEventListener("mouseup",function(t){e(t)},!1),rippleButtons[i].addEventListener("mouseleave",function(t){n(t)},!1),rippleButtons[i].addEventListener("transitionend",function(t){("2"==t.target.getAttribute("animating")||"3"==t.target.getAttribute("animating"))&&(t.target.style.transition="none",t.target.style.padding="0px",t.target.style.boxShadow="none",t.target.setAttribute("animating","0"))},!1),r(rippleButtons[i])==rippleButtons[i]&&(rippleButtons[i].innerHTML+='<div class="rippleContainer"></div>')}};return o}(); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
139166
8
130
1
33
1