UNPKG

@miyagi/core

Version:

miyagi is a component development tool for JavaScript template engines.

2 lines (1 loc) 9.88 kB
function e(a,s){return this instanceof e?"object"==typeof a?a:(this.attachValues(function(e){var a,s,n,f,l,o,u,d,h,c=[],b=[],g=[];if((e=function(e){return e.replace(/^\s+|\s+$/g,"")}(e.toLowerCase())).substr(0,1).toUpperCase(),e.substr(1),o=1,"rgb"==e.substr(0,3)||"hsl"==e.substr(0,3)){if(a=e.substr(0,3),s=3,f=!1,"a"==(e=e.substr(3)).substr(0,1).toLowerCase()&&(s=4,f=!0,e=e.substr(1)),c=(e=(e=e.replace("(","")).replace(")","")).split(","),"rgb"==a){if(c.length!=s)return{red:0,green:0,blue:0,hue:0,sat:0,lightness:0,opacity:1,valid:!1};for(n=0;n<s;n++){if(""!=c[n]&&" "!=c[n]||(c[n]="0"),c[n].indexOf("%")>-1&&(c[n]=c[n].replace("%",""),c[n]=Number(c[n]/100),n<3&&(c[n]=Math.round(255*c[n]))),isNaN(c[n]))return{red:0,green:0,blue:0,hue:0,sat:0,lightness:0,opacity:1,valid:!1};parseInt(c[n])>255&&(c[n]=255),n<3&&(c[n]=parseInt(c[n])),3==n&&Number(c[n])>1&&(c[n]=1)}h={r:c[0],g:c[1],b:c[2]},1==f&&(o=Number(c[3]))}if("hsl"==a){for(;c.length<s;)c.push("0");for("hsl"==a&&parseInt(c[0])>=360&&(c[0]=0),n=1;n<s;n++){if(c[n].indexOf("%")>-1){if(c[n]=c[n].replace("%",""),c[n]=Number(c[n]),isNaN(c[n]))return{red:0,green:0,blue:0,hue:0,sat:0,lightness:0,opacity:1,valid:!1};c[n]=c[n]/100}else c[n]=Number(c[n]);Number(c[n])>1&&(c[n]=1),Number(c[n])<0&&(c[n]=0)}"hsl"==a&&(h=function(e,t,a){var i,s,n,f,l;s=a<=.5?a*(t+1):a+t-a*t;return n=255*r(i=2*a-s,s,(e/=60)+2),f=255*r(i,s,e),l=255*r(i,s,e-2),{r:n,g:f,b:l}}(c[0],c[1],c[2]),u=Number(c[0]),d=Number(c[1])),1==f&&(o=Number(c[3]))}}else{for(l=!1,b=t("names"),n=0;n<b.length;n++)if(e.toLowerCase()==b[n].toLowerCase()){g=t("hexs"),l=!0,h={r:parseInt(g[n].substr(0,2),16),g:parseInt(g[n].substr(2,2),16),b:parseInt(g[n].substr(4,2),16)};break}if(0==l){for(3==(e=e.replace("#","")).length&&(e=e.substr(0,1)+e.substr(0,1)+e.substr(1,1)+e.substr(1,1)+e.substr(2,1)+e.substr(2,1)),n=0;n<e.length;n++)if(!i(e.substr(n,1)))return{red:0,green:0,blue:0,hue:0,sat:0,lightness:0,opacity:1,valid:!1};for(c[0]=parseInt(e.substr(0,2),16),c[1]=parseInt(e.substr(2,2),16),c[2]=parseInt(e.substr(4,2),16),n=0;n<3;n++)if(isNaN(c[n]))return{red:0,green:0,blue:0,hue:0,sat:0,lightness:0,opacity:1,valid:!1};h={r:c[0],g:c[1],b:c[2]}}}return function(e,t,r,a){var i,s,n,f;if(!e)return{red:0,green:0,blue:0,hue:0,sat:0,lightness:0,opacity:1,valid:!1};null===t&&(t=1);return i=function(e,t,r){var a,i,s,n,f,l,o,u=[];for(u[0]=e/255,u[1]=t/255,u[2]=r/255,a=u[0],i=u[0],l=0,s=0;s<u.length-1;s++)u[s+1]<=a&&(a=u[s+1]),u[s+1]>=i&&(i=u[s+1],l=s+1);0==l&&(o=(u[1]-u[2])/(i-a));1==l&&(o=2+(u[2]-u[0])/(i-a));2==l&&(o=4+(u[0]-u[1])/(i-a));isNaN(o)&&(o=0);(o*=60)<0&&(o+=360);n=(a+i)/2,f=a==i?0:n<.5?(i-a)/(i+a):(i-a)/(2-i-a);return{h:o,s:f=f,l:n}}(e.r,e.g,e.b),n=r||i.h,f=a||i.s,s=function(e){return e.red=Number(e.red.toFixed(0)),e.green=Number(e.green.toFixed(0)),e.blue=Number(e.blue.toFixed(0)),e.hue=Number(e.hue.toFixed(0)),e.sat=Number(e.sat.toFixed(2)),e.lightness=Number(e.lightness.toFixed(2)),e.opacity=Number(e.opacity.toFixed(2)),e}(s={red:e.r,green:e.g,blue:e.b,hue:n,sat:f,lightness:i.l,opacity:t,valid:!0}),s}(h,o,u,d)}(a)),void(s&&(s.style.backgroundColor=this.toRgbString()))):new e(a,s)}function t(e){return"names"==e?["AliceBlue","AntiqueWhite","Aqua","Aquamarine","Azure","Beige","Bisque","Black","BlanchedAlmond","Blue","BlueViolet","Brown","BurlyWood","CadetBlue","Chartreuse","Chocolate","Coral","CornflowerBlue","Cornsilk","Crimson","Cyan","DarkBlue","DarkCyan","DarkGoldenRod","DarkGray","DarkGrey","DarkGreen","DarkKhaki","DarkMagenta","DarkOliveGreen","DarkOrange","DarkOrchid","DarkRed","DarkSalmon","DarkSeaGreen","DarkSlateBlue","DarkSlateGray","DarkSlateGrey","DarkTurquoise","DarkViolet","DeepPink","DeepSkyBlue","DimGray","DimGrey","DodgerBlue","FireBrick","FloralWhite","ForestGreen","Fuchsia","Gainsboro","GhostWhite","Gold","GoldenRod","Gray","Grey","Green","GreenYellow","HoneyDew","HotPink","IndianRed","Indigo","Ivory","Khaki","Lavender","LavenderBlush","LawnGreen","LemonChiffon","LightBlue","LightCoral","LightCyan","LightGoldenRodYellow","LightGray","LightGrey","LightGreen","LightPink","LightSalmon","LightSeaGreen","LightSkyBlue","LightSlateGray","LightSlateGrey","LightSteelBlue","LightYellow","Lime","LimeGreen","Linen","Magenta","Maroon","MediumAquaMarine","MediumBlue","MediumOrchid","MediumPurple","MediumSeaGreen","MediumSlateBlue","MediumSpringGreen","MediumTurquoise","MediumVioletRed","MidnightBlue","MintCream","MistyRose","Moccasin","NavajoWhite","Navy","OldLace","Olive","OliveDrab","Orange","OrangeRed","Orchid","PaleGoldenRod","PaleGreen","PaleTurquoise","PaleVioletRed","PapayaWhip","PeachPuff","Peru","Pink","Plum","PowderBlue","Purple","RebeccaPurple","Red","RosyBrown","RoyalBlue","SaddleBrown","Salmon","SandyBrown","SeaGreen","SeaShell","Sienna","Silver","SkyBlue","SlateBlue","SlateGray","SlateGrey","Snow","SpringGreen","SteelBlue","Tan","Teal","Thistle","Tomato","Turquoise","Violet","Wheat","White","WhiteSmoke","Yellow","YellowGreen"]:"hexs"==e?["f0f8ff","faebd7","00ffff","7fffd4","f0ffff","f5f5dc","ffe4c4","000000","ffebcd","0000ff","8a2be2","a52a2a","deb887","5f9ea0","7fff00","d2691e","ff7f50","6495ed","fff8dc","dc143c","00ffff","00008b","008b8b","b8860b","a9a9a9","a9a9a9","006400","bdb76b","8b008b","556b2f","ff8c00","9932cc","8b0000","e9967a","8fbc8f","483d8b","2f4f4f","2f4f4f","00ced1","9400d3","ff1493","00bfff","696969","696969","1e90ff","b22222","fffaf0","228b22","ff00ff","dcdcdc","f8f8ff","ffd700","daa520","808080","808080","008000","adff2f","f0fff0","ff69b4","cd5c5c","4b0082","fffff0","f0e68c","e6e6fa","fff0f5","7cfc00","fffacd","add8e6","f08080","e0ffff","fafad2","d3d3d3","d3d3d3","90ee90","ffb6c1","ffa07a","20b2aa","87cefa","778899","778899","b0c4de","ffffe0","00ff00","32cd32","faf0e6","ff00ff","800000","66cdaa","0000cd","ba55d3","9370db","3cb371","7b68ee","00fa9a","48d1cc","c71585","191970","f5fffa","ffe4e1","ffe4b5","ffdead","000080","fdf5e6","808000","6b8e23","ffa500","ff4500","da70d6","eee8aa","98fb98","afeeee","db7093","ffefd5","ffdab9","cd853f","ffc0cb","dda0dd","b0e0e6","800080","663399","ff0000","bc8f8f","4169e1","8b4513","fa8072","f4a460","2e8b57","fff5ee","a0522d","c0c0c0","87ceeb","6a5acd","708090","708090","fffafa","00ff7f","4682b4","d2b48c","008080","d8bfd8","ff6347","40e0d0","ee82ee","f5deb3","ffffff","f5f5f5","ffff00","9acd32"]:void 0}function r(e,t,r){return r<0&&(r+=6),r>=6&&(r-=6),r<1?(t-e)*r+e:r<3?t:r<4?(t-e)*(4-r)+e:e}function a(e){for(var t=e.toString(16);t.length<2;)t="0"+t;return t}function i(e){return"0123456789ABCDEFabcdef".indexOf(e)>-1}e.prototype={toRgbString:function(){return"rgb("+this.red+", "+this.green+", "+this.blue+")"},toRgbaString:function(){return"rgba("+this.red+", "+this.green+", "+this.blue+", "+this.opacity+")"},toHslString:function(){return"hsl("+this.hue+", "+Math.round(100*this.sat)+"%, "+Math.round(100*this.lightness)+"%)"},toHslStringDecimal:function(){return"hsl("+this.hue+", "+this.sat+", "+this.lightness+")"},toHslaString:function(){return"hsla("+this.hue+", "+Math.round(100*this.sat)+"%, "+Math.round(100*this.lightness)+"%, "+this.opacity+")"},toName:function(){for(var e,r,a,i=t("hexs"),s=0;s<i.length;s++)if(e=parseInt(i[s].substr(0,2),16),r=parseInt(i[s].substr(2,2),16),a=parseInt(i[s].substr(4,2),16),this.red==e&&this.green==r&&this.blue==a)return t("names")[s];return"n/a"},toHexString:function(){return"#"+a(this.red)+a(this.green)+a(this.blue)},toRgb:function(){return{r:this.red,g:this.green,b:this.blue,a:this.opacity}},toHsl:function(){return{h:this.hue,s:this.sat,l:this.lightness,a:this.opacity}},attachValues:function(e){this.red=e.red,this.green=e.green,this.blue=e.blue,this.hue=e.hue,this.sat=e.sat,this.lightness=e.lightness,this.opacity=e.opacity,this.valid=e.valid}};class s{constructor(e){this.element=e,this.items=Array.from(this.element.querySelectorAll(".MiyagiCustomProp")),this.colors=Array.from(this.element.querySelectorAll(".MiyagiColors-item")),this.fonts=Array.from(this.element.querySelectorAll(".MiyagiFonts-item")),this.spacings=Array.from(this.element.querySelectorAll(".MiyagiSpacings-item")),this.buttons=Array.from(this.element.querySelectorAll(".MiyagiCustomProp-button")),this.details=Array.from(this.element.querySelectorAll(".MiyagiCustomProp-details")),this.renderValues(),this.element.dataset.mediaQueries.split(",").forEach((e=>{window.matchMedia(e).addEventListener("change",this.renderValues.bind(this))})),this.element.addEventListener("click",(({target:e})=>{const t=e.closest(".MiyagiCustomProp"),r=e.closest(".MiyagiCustomProp-button"),a=e.closest(".MiyagiCustomProp-details");if(r){this.items.forEach((e=>{e!==t&&e.setAttribute("aria-selected",!1)})),this.buttons.forEach((e=>{e!==r&&e.setAttribute("aria-expanded",!1)})),this.details.forEach((e=>{e!==a&&(e.hidden=!0)}));const e="true"===r.getAttribute("aria-expanded");document.getElementById(r.getAttribute("aria-controls")).hidden=e,t.setAttribute("aria-selected",!e),r.setAttribute("aria-expanded",!e)}else t||(this.items.forEach((e=>{e.setAttribute("aria-selected",!1)})),this.buttons.forEach((e=>{e.setAttribute("aria-expanded",!1)})),this.details.forEach((e=>{e.hidden=!0})))}))}renderValues(){this.renderColorValues(),this.renderFontValues(),this.renderSpacingValues()}renderColorValues(){this.colors.forEach((t=>{const r=getComputedStyle(t).getPropertyValue("--color").trim();t.querySelector('[data-value="RGB"]').textContent=e(r).toRgbString(),t.querySelector('[data-value="Hex"]').textContent=e(r).toHexString(),t.querySelector('[data-value="HSL"]').textContent=e(r).toHslString()}))}renderFontValues(){this.fonts.forEach((e=>{Array.from(e.querySelectorAll("[data-value]")).forEach((e=>{e.textContent=getComputedStyle(e).getPropertyValue(e.dataset.value).trim()}))}))}renderSpacingValues(){this.spacings.forEach((e=>{Array.from(e.querySelectorAll("[data-value]")).forEach((e=>{e.textContent=getComputedStyle(e).getPropertyValue(e.dataset.value).trim()}))}))}}export{s as default};