3 lines
13 KiB
JavaScript
3 lines
13 KiB
JavaScript
|
|
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).cssTools={})}(this,function(t){"use strict";class e extends Error{reason;filename;line;column;source;constructor(t,e,s,i,n){super(`${t}:${s}:${i}: ${e}`),this.reason=e,this.filename=t,this.line=s,this.column=i,this.source=n}}class s{start;end;source;constructor(t,e,s){this.start=t,this.end=e,this.source=s}}var i;t.CssTypes=void 0,(i=t.CssTypes||(t.CssTypes={})).stylesheet="stylesheet",i.rule="rule",i.declaration="declaration",i.comment="comment",i.container="container",i.charset="charset",i.document="document",i.customMedia="custom-media",i.fontFace="font-face",i.host="host",i.import="import",i.keyframes="keyframes",i.keyframe="keyframe",i.layer="layer",i.media="media",i.namespace="namespace",i.page="page",i.startingStyle="starting-style",i.supports="supports";const n=(t,e,s)=>{let i=s,n=1e4;do{const s=e.map(e=>t.indexOf(e,i));s.push(t.indexOf("\\",i));const r=s.filter(t=>-1!==t);if(0===r.length)return-1;const o=Math.min(...r);if("\\"!==t[o])return o;i=o+2,n--}while(n>0);throw new Error("Too many escaping")},r=(t,e,s)=>{let i=s,o=1e4;do{const s=e.map(e=>t.indexOf(e,i));s.push(t.indexOf("(",i)),s.push(t.indexOf('"',i)),s.push(t.indexOf("'",i)),s.push(t.indexOf("\\",i));const c=s.filter(t=>-1!==t);if(0===c.length)return-1;const a=Math.min(...c);switch(t[a]){case"\\":i=a+2;break;case"(":{const e=r(t,[")"],a+1);if(-1===e)return-1;i=e+1}break;case'"':{const e=n(t,['"'],a+1);if(-1===e)return-1;i=e+1}break;case"'":{const e=n(t,["'"],a+1);if(-1===e)return-1;i=e+1}break;default:return a}o--}while(o>0);throw new Error("Too many escaping")},o=/\/\*[^]*?(?:\*\/|$)/g;function c(t){return t?t.trim():""}function a(t,e){const s=t&&"string"==typeof t.type,i=s?t:e;for(const e in t){const s=t[e];Array.isArray(s)?s.forEach(t=>{a(t,i)}):s&&"object"==typeof s&&a(s,i)}return s&&Object.defineProperty(t,"parent",{configurable:!0,writable:!0,enumerable:!1,value:e||null}),t}class h{level=0;indentation=" ";compress=!1;constructor(t){"string"==typeof t?.indent&&(this.indentation=t?.indent),t?.compress&&(this.compress=!0)}emit(t,e){return t}indent(t){return this.level=this.level||1,t?(this.level+=t,""):Array(this.level).join(this.indentation)}visit(e){switch(e.type){case t.CssTypes.stylesheet:return this.stylesheet(e);case t.CssTypes.rule:return this.rule(e);case t.CssTypes.declaration:return this.declaration(e);case t.CssTypes.comment:return this.comment(e);case t.CssTypes.container:return this.container(e);case t.CssTypes.charset:return this.charset(e);case t.CssTypes.document:return this.document(e);case t.CssTypes.customMedia:return this.customMedia(e);case t.CssTypes.fontFace:return this.fontFace(e);case t.CssTypes.host:return this.host(e);case t.CssTypes.import:return this.import(e);case t.CssTypes.keyframes:return this.keyframes(e);case t.CssTypes.keyframe:return this.keyframe(e);case t.CssTypes.layer:return this.layer(e);case t.CssTypes.media:return this.media(e);case t.CssTypes.namespace:return this.namespace(e);case t.CssTypes.page:return this.page(e);case t.CssTypes.startingStyle:return this.startingStyle(e);case t.CssTypes.supports:return this.supports(e)}}mapVisit(t,e){let s="";e=e||"";for(let i=0,n=t.length;i<n;i++)s+=this.visit(t[i]),e&&i<n-1&&(s+=this.emit(e));return s}compile(t){return this.compress?t.stylesheet.rules.map(this.visit,this).join(""):this.stylesheet(t)}stylesheet(t){return this.mapVisit(t.stylesheet.rules,"\n\n")}comment(t){return this.compress?this.emit("",t.position):this.emit(`${this.indent()}/*${t.comment}*/`,t.position)}container(t){return this.compress?this.emit(`@container ${t.container}`,t.position)+this.emit("{")+this.mapVisit(t.rules)+this.emit("}"):this.emit(`${this.indent()}@container ${t.container}`,t.position)+this.emit(` {\n${this.indent(1)}`)+this.mapVisit(t.rules,"\n\n")+this.emit(`\n${this.indent(-1)}${this.indent()}}`)}layer(t){return this.compress?this.emit(`@layer ${t.layer}`,t.position)+(t.rules?this.emit
|
||
|
|
//# sourceMappingURL=adobe-css-tools.js.map
|