@filbert-js/browser-stylesheet
Version:
> Browser StyleSheet for filbert-js
2 lines (1 loc) • 1.49 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@filbert-js/types"),require("@filbert-js/stylesheet"),require("@filbert-js/css-parser")):"function"==typeof define&&define.amd?define(["exports","@filbert-js/types","@filbert-js/stylesheet","@filbert-js/css-parser"],t):t(e.browserStylesheet={},e.types,e.stylesheet,e.cssParser)}(this,function(e,t,n,r){var s=r.createParser(),o=function(){return![typeof window,typeof document].includes("undefined")};function i(e){var t=e.append;return e.append=function(n){"string"==typeof n?e.textContent=n:t.call(e,n)},e.getChildById=function(e){return document.getElementById(e)},e.isBeforeChild=function(e,t){for(var n=this.children,r=-1,s=-1,o=0;o<n.length;o++){var i=n[o];i===e&&(s=o),i===t&&(r=o)}return r<s},e}e.createStylesheet=function(e){void 0===e&&(e={});var r=function(){var e=o()?i(document.head):void 0,n={};return n[t.TYPES_GLOBAL]={},n[t.TYPES_CSS]={},n[t.TYPES_KEYFRAMES]={},o()&&Array.from(document.querySelectorAll('[data-type="styled-css"]')).reduce(function(e,t){var n=t.getAttribute("id");return e[t.getAttribute("styled-type")][n]=t.textContent,e},n),{getRoot:function(){return e},createElement:function(e){return i(document.createElement(e))},findElementByStyleId:function(e){return document.querySelector("."+e)},css:n}}();return new n.StyleSheet(Object.assign({},{getRoot:r.getRoot,createElement:r.createElement,findElementByStyleId:r.findElementByStyleId,cssParser:s,css:r.css},e))}});