UNPKG

@bulmil/core

Version:

![bulmil](https://user-images.githubusercontent.com/2362138/65766959-c721a080-e16f-11e9-9fb9-45a5a2ad0391.jpg)

1 lines 8.63 kB
var n=function(){return(n=Object.assign||function(n){for(var t,r=1,i=arguments.length;r<i;r++)for(var u in t=arguments[r])Object.prototype.hasOwnProperty.call(t,u)&&(n[u]=t[u]);return n}).apply(this,arguments)},t=function(){this.start=0,this.end=0,this.previous=null,this.parent=null,this.rules=null,this.parsedCssText="",this.cssText="",this.atRule=!1,this.type=0,this.keyframesName="",this.selector="",this.parsedSelector=""};var r={STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1e3},i="{",u="}",e={comments:/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},o="--",f="@media",s="@";function a(n,t,r){n.lastIndex=0;var i=t.substring(r).match(n);if(i){var u=r+i.index;return{start:u,end:u+i[0].length}}return null}var c=/\bvar\(/,v=/\B--[\w-]+\s*:/,h=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,l=/^[\t ]+\n/gm;function m(n,t,r){var i=function(n,t){var r=a(c,n,t);if(!r)return null;var i=function(n,t){for(var r=0,i=t;i<n.length;i++){var u=n[i];if("("===u)r++;else if(")"===u&&--r<=0)return i+1}return i}(n,r.start),u=n.substring(r.end,i-1).split(","),e=u[0],o=u.slice(1);return{start:r.start,end:i,propName:e.trim(),fallback:o.length>0?o.join(",").trim():void 0}}(n,r);if(!i)return t.push(n.substring(r,n.length)),n.length;var u=i.propName,e=null!=i.fallback?y(i.fallback):void 0;return t.push(n.substring(r,i.start),(function(n){return function(n,t,r){return n[t]?n[t]:r?p(r,n):""}(n,u,e)})),i.end}function p(n,t){for(var r="",i=0;i<n.length;i++){var u=n[i];r+="string"==typeof u?u:u(t)}return r}function d(n,t){for(var r=!1,i=!1,u=t;u<n.length;u++){var e=n[u];if(r)i&&'"'===e&&(r=!1),i||"'"!==e||(r=!1);else if('"'===e)r=!0,i=!0;else if("'"===e)r=!0,i=!1;else{if(";"===e)return u+1;if("}"===e)return u}}return u}function y(n){var t=0;n=function(n){for(var t="",r=0;;){var i=a(v,n,r),u=i?i.start:n.length;if(t+=n.substring(r,u),!i)break;r=d(n,u)}return t}(n=n.replace(h,"")).replace(l,"");for(var r=[];t<n.length;)t=m(n,r,t);return r}function g(n){var t={};n.forEach((function(n){n.declarations.forEach((function(n){t[n.prop]=n.value}))}));for(var r={},i=Object.entries(t),u=function(){var n=!1;if(i.forEach((function(t){var i=t[0],u=p(t[1],r);u!==r[i]&&(r[i]=u,n=!0)})),!n)return"break"},e=0;e<10&&"break"!==u();e++);return r}function w(n,t){if(void 0===t&&(t=0),!n.rules)return[];var i=[];return n.rules.filter((function(n){return n.type===r.STYLE_RULE})).forEach((function(n){var r=function(n){for(var t,r=[];t=b.exec(n.trim());){var i=E(t[2]),u=i.value,e=i.important;r.push({prop:t[1].trim(),value:y(u),important:e})}return r}(n.cssText);r.length>0&&n.parsedSelector.split(",").forEach((function(n){n=n.trim(),i.push({selector:n,declarations:r,specificity:1,nu:t})})),t++})),i}var b=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gm;function E(n){var t=(n=n.replace(/\s+/gim," ").trim()).endsWith("!important");return t&&(n=n.substr(0,n.length-10).trim()),{value:n,important:t}}function k(n){var t=[];return n.forEach((function(n){t.push.apply(t,n.selectors)})),t}function M(n){var a=function(n){return function n(t,i){var u=i.substring(t.start,t.end-1);if(t.parsedCssText=t.cssText=u.trim(),t.parent){u=(u=(u=function(n){return n.replace(/\\([0-9a-f]{1,6})\s/gi,(function(){for(var n=arguments[1],t=6-n.length;t--;)n="0"+n;return"\\"+n}))}(u=i.substring(t.previous?t.previous.end:t.parent.start,t.start-1))).replace(e.multipleSpaces," ")).substring(u.lastIndexOf(";")+1);var a=t.parsedSelector=t.selector=u.trim();t.atRule=0===a.indexOf(s),t.atRule?0===a.indexOf(f)?t.type=r.MEDIA_RULE:a.match(e.keyframesRule)&&(t.type=r.KEYFRAMES_RULE,t.keyframesName=t.selector.split(e.multipleSpaces).pop()):t.type=0===a.indexOf(o)?r.MIXIN_RULE:r.STYLE_RULE}var c=t.rules;if(c)for(var v=0,h=c.length,l=void 0;v<h&&(l=c[v]);v++)n(l,i);return t}(function(n){var r=new t;r.start=0,r.end=n.length;for(var e=r,o=0,f=n.length;o<f;o++)if(n[o]===i){e.rules||(e.rules=[]);var s=e,a=s.rules[s.rules.length-1]||null;(e=new t).start=o+1,e.parent=s,e.previous=a,s.rules.push(e)}else n[o]===u&&(e.end=o+1,e=e.parent||r);return r}(n=function(n){return n.replace(e.comments,"").replace(e.port,"")}(n)),n)}(n),c=y(n);return{original:n,template:c,selectors:w(a),usesCssVars:c.length>1}}function R(n,t){if(n.some((function(n){return n.styleEl===t})))return!1;var r=M(t.textContent);return r.styleEl=t,n.push(r),!0}function A(n){var t=g(k(n));n.forEach((function(n){n.usesCssVars&&(n.styleEl.textContent=p(n.template,t))}))}function L(n,t,r){return function(n,t,r){return n.replace(RegExp(t,"g"),r)}(n,"\\."+t,"."+r)}function $(n,t){return Array.from(n.querySelectorAll("style:not([data-styles]):not([data-no-shim])")).map((function(n){return R(t,n)})).some(Boolean)}function O(n,t,r){var i=r.href;return fetch(i).then((function(n){return n.text()})).then((function(u){if(function(n){return n.indexOf("var(")>-1||P.test(n)}(u)&&r.parentNode){(function(n){return I.lastIndex=0,I.test(n)})(u)&&(u=function(n,t){var r=t.replace(/[^/]*$/,"");return n.replace(I,(function(n,t){return n.replace(t,r+t)}))}(u,i));var e=n.createElement("style");e.setAttribute("data-styles",""),e.textContent=u,R(t,e),r.parentNode.insertBefore(e,r),r.remove()}})).catch((function(n){console.error(n)}))}var P=/[\s;{]--[-a-zA-Z0-9]+\s*:/m,I=/url[\s]*\([\s]*['"]?(?!(?:https?|data)\:|\/)([^\'\"\)]*)[\s]*['"]?\)[\s]*/gim,U=function(){function t(n,t){this.win=n,this.doc=t,this.count=0,this.hostStyleMap=new WeakMap,this.hostScopeMap=new WeakMap,this.globalScopes=[],this.scopesMap=new Map,this.didInit=!1}return t.prototype.i=function(){var n=this;return this.didInit||!this.win.requestAnimationFrame?Promise.resolve():(this.didInit=!0,new Promise((function(t){n.win.requestAnimationFrame((function(){(function(n,t){"undefined"!=typeof MutationObserver&&new MutationObserver((function(){$(n,t)&&A(t)})).observe(document.head,{childList:!0})})(n.doc,n.globalScopes),function(n,t){return $(n,t),function(n,t){for(var r=[],i=n.querySelectorAll('link[rel="stylesheet"][href]:not([data-no-shim])'),u=0;u<i.length;u++)r.push(O(n,t,i[u]));return Promise.all(r)}(n,t).then((function(){A(t)}))}(n.doc,n.globalScopes).then((function(){return t()}))}))})))},t.prototype.addLink=function(n){var t=this;return O(this.doc,this.globalScopes,n).then((function(){t.updateGlobal()}))},t.prototype.addGlobalStyle=function(n){R(this.globalScopes,n)&&this.updateGlobal()},t.prototype.createHostStyle=function(t,r,i,u){if(this.hostScopeMap.has(t))throw Error("host style already created");var e=this.registerHostTemplate(i,r,u),o=this.doc.createElement("style");return o.setAttribute("data-no-shim",""),e.usesCssVars?u?(o["s-sc"]=r=e.scopeId+"-"+this.count,o.textContent="/*needs update*/",this.hostStyleMap.set(t,o),this.hostScopeMap.set(t,function(t,r){var i=t.template.map((function(n){return"string"==typeof n?L(n,t.scopeId,r):n})),u=t.selectors.map((function(i){return n(n({},i),{selector:L(i.selector,t.scopeId,r)})}));return n(n({},t),{template:i,selectors:u,scopeId:r})}(e,r)),this.count++):(e.styleEl=o,e.usesCssVars||(o.textContent=p(e.template,{})),this.globalScopes.push(e),this.updateGlobal(),this.hostScopeMap.set(t,e)):o.textContent=i,o},t.prototype.removeHost=function(n){var t=this.hostStyleMap.get(n);t&&t.remove(),this.hostStyleMap.delete(n),this.hostScopeMap.delete(n)},t.prototype.updateHost=function(n){var t=this.hostScopeMap.get(n);if(t&&t.usesCssVars&&t.isScoped){var r=this.hostStyleMap.get(n);if(r){var i=g(function(n,t,r){var i=[],u=function(n,t){for(var r=[];t;){var i=n.get(t);i&&r.push(i),t=t.parentElement}return r}(t,n);return r.forEach((function(n){return i.push(n)})),u.forEach((function(n){return i.push(n)})),function(n){return n.sort((function(n,t){return n.specificity===t.specificity?n.nu-t.nu:n.specificity-t.specificity})),n}(k(i).filter((function(t){return function(n,t){return":root"===t||"html"===t||n.matches(t)}(n,t.selector)})))}(n,this.hostScopeMap,this.globalScopes));r.textContent=p(t.template,i)}}},t.prototype.updateGlobal=function(){A(this.globalScopes)},t.prototype.registerHostTemplate=function(n,t,r){var i=this.scopesMap.get(t);return i||((i=M(n)).scopeId=t,i.isScoped=r,this.scopesMap.set(t,i)),i},t}();!function(n){!n||n.__cssshim||n.CSS&&n.CSS.supports&&n.CSS.supports("color","var(--c)")||(n.__cssshim=new U(n,n.document))}("undefined"!=typeof window&&window);