UNPKG

753 kBJavaScriptView Raw
1"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _regenerator=_interopRequireDefault(require("@babel/runtime/regenerator"));var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _slicedToArray2=_interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf2=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _wrapNativeSuper2=_interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _typeof2=_interopRequireDefault(require("@babel/runtime/helpers/typeof"));var _awaitAsyncGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/awaitAsyncGenerator"));var _wrapAsyncGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/wrapAsyncGenerator"));function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e){throw _e;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o);},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e2){didErr=true;err=_e2;},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]();}finally{if(didErr)throw err;}}};}function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);}function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++){arr2[i]=arr[i];}return arr2;}function _createSuper(Derived){var hasNativeReflectConstruct=_isNativeReflectConstruct();return function _createSuperInternal(){var Super=(0,_getPrototypeOf2["default"])(Derived),result;if(hasNativeReflectConstruct){var NewTarget=(0,_getPrototypeOf2["default"])(this).constructor;result=Reflect.construct(Super,arguments,NewTarget);}else{result=Super.apply(this,arguments);}return(0,_possibleConstructorReturn2["default"])(this,result);};}function _isNativeReflectConstruct(){if(typeof Reflect==="undefined"||!Reflect.construct)return false;if(Reflect.construct.sham)return false;if(typeof Proxy==="function")return true;try{Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}));return true;}catch(e){return false;}}/**
2 * @license Paged.js v0.4.0-beta.1 | MIT | https://gitlab.pagedmedia.org/tools/pagedjs
3 */(function(global,factory){(typeof exports==="undefined"?"undefined":(0,_typeof2["default"])(exports))==='object'&&typeof module!=='undefined'?module.exports=factory():typeof define==='function'&&define.amd?define(factory):(global=typeof globalThis!=='undefined'?globalThis:global||self,global.PagedPolyfill=factory());})(void 0,function(){'use strict';var _marked=/*#__PURE__*/_regenerator["default"].mark(walk$2),_marked2=/*#__PURE__*/_regenerator["default"].mark(words),_marked3=/*#__PURE__*/_regenerator["default"].mark(letters);var eventEmitter={exports:{}};var d$3={exports:{}};var isImplemented$6=function isImplemented$6(){var assign=Object.assign,obj;if(typeof assign!=="function")return false;obj={foo:"raz"};assign(obj,{bar:"dwa"},{trzy:"trzy"});return obj.foo+obj.bar+obj.trzy==="razdwatrzy";};var isImplemented$5=function isImplemented$5(){try{Object.keys("primitive");return true;}catch(e){return false;}};// eslint-disable-next-line no-empty-function
4var noop$4=function noop$4(){};var _undefined=noop$4();// Support ES3 engines
5var isValue$5=function isValue$5(val){return val!==_undefined&&val!==null;};var isValue$4=isValue$5;var keys$2=Object.keys;var shim$5=function shim$5(object){return keys$2(isValue$4(object)?Object(object):object);};var keys$1=isImplemented$5()?Object.keys:shim$5;var isValue$3=isValue$5;var validValue$1=function validValue$1(value){if(!isValue$3(value))throw new TypeError("Cannot use null or undefined");return value;};var keys=keys$1,value$3=validValue$1,max$1=Math.max;var shim$4=function shim$4(dest,src/*, …srcn*/){var error,i,length=max$1(arguments.length,2),assign;dest=Object(value$3(dest));assign=function assign(key){try{dest[key]=src[key];}catch(e){if(!error)error=e;}};for(i=1;i<length;++i){src=arguments[i];keys(src).forEach(assign);}if(error!==undefined)throw error;return dest;};var assign$2=isImplemented$6()?Object.assign:shim$4;var isValue$2=isValue$5;var forEach$1=Array.prototype.forEach,create$6=Object.create;var process=function process(src,obj){var key;for(key in src){obj[key]=src[key];}};// eslint-disable-next-line no-unused-vars
6var normalizeOptions=function normalizeOptions(opts1/*, …options*/){var result=create$6(null);forEach$1.call(arguments,function(options){if(!isValue$2(options))return;process(Object(options),result);});return result;};var isCallable$1=function isCallable$1(obj){return typeof obj==="function";};var str="razdwatrzy";var isImplemented$4=function isImplemented$4(){if(typeof str.contains!=="function")return false;return str.contains("dwa")===true&&str.contains("foo")===false;};var indexOf$3=String.prototype.indexOf;var shim$3=function shim$3(searchString/*, position*/){return indexOf$3.call(this,searchString,arguments[1])>-1;};var contains$1=isImplemented$4()?String.prototype.contains:shim$3;var assign$1=assign$2,normalizeOpts=normalizeOptions,isCallable=isCallable$1,contains=contains$1,d$2;d$2=d$3.exports=function(dscr,value/*, options*/){var c,e,w,options,desc;if(arguments.length<2||typeof dscr!=='string'){options=value;value=dscr;dscr=null;}else{options=arguments[2];}if(dscr==null){c=w=true;e=false;}else{c=contains.call(dscr,'c');e=contains.call(dscr,'e');w=contains.call(dscr,'w');}desc={value:value,configurable:c,enumerable:e,writable:w};return!options?desc:assign$1(normalizeOpts(options),desc);};d$2.gs=function(dscr,get,set/*, options*/){var c,e,options,desc;if(typeof dscr!=='string'){options=set;set=get;get=dscr;dscr=null;}else{options=arguments[3];}if(get==null){get=undefined;}else if(!isCallable(get)){options=get;get=set=undefined;}else if(set==null){set=undefined;}else if(!isCallable(set)){options=set;set=undefined;}if(dscr==null){c=true;e=false;}else{c=contains.call(dscr,'c');e=contains.call(dscr,'e');}desc={get:get,set:set,configurable:c,enumerable:e};return!options?desc:assign$1(normalizeOpts(options),desc);};var validCallable=function validCallable(fn){if(typeof fn!=="function")throw new TypeError(fn+" is not a function");return fn;};(function(module,exports){var d=d$3.exports,callable=validCallable,apply=Function.prototype.apply,call=Function.prototype.call,create=Object.create,defineProperty=Object.defineProperty,defineProperties=Object.defineProperties,hasOwnProperty=Object.prototype.hasOwnProperty,descriptor={configurable:true,enumerable:false,writable:true},on,_once2,off,emit,methods,descriptors,base;on=function on(type,listener){var data;callable(listener);if(!hasOwnProperty.call(this,'__ee__')){data=descriptor.value=create(null);defineProperty(this,'__ee__',descriptor);descriptor.value=null;}else{data=this.__ee__;}if(!data[type])data[type]=listener;else if((0,_typeof2["default"])(data[type])==='object')data[type].push(listener);else data[type]=[data[type],listener];return this;};_once2=function once(type,listener){var _once,self;callable(listener);self=this;on.call(this,type,_once=function once(){off.call(self,type,_once);apply.call(listener,this,arguments);});_once.__eeOnceListener__=listener;return this;};off=function off(type,listener){var data,listeners,candidate,i;callable(listener);if(!hasOwnProperty.call(this,'__ee__'))return this;data=this.__ee__;if(!data[type])return this;listeners=data[type];if((0,_typeof2["default"])(listeners)==='object'){for(i=0;candidate=listeners[i];++i){if(candidate===listener||candidate.__eeOnceListener__===listener){if(listeners.length===2)data[type]=listeners[i?0:1];else listeners.splice(i,1);}}}else{if(listeners===listener||listeners.__eeOnceListener__===listener){delete data[type];}}return this;};emit=function emit(type){var i,l,listener,listeners,args;if(!hasOwnProperty.call(this,'__ee__'))return;listeners=this.__ee__[type];if(!listeners)return;if((0,_typeof2["default"])(listeners)==='object'){l=arguments.length;args=new Array(l-1);for(i=1;i<l;++i){args[i-1]=arguments[i];}listeners=listeners.slice();for(i=0;listener=listeners[i];++i){apply.call(listener,this,args);}}else{switch(arguments.length){case 1:call.call(listeners,this);break;case 2:call.call(listeners,this,arguments[1]);break;case 3:call.call(listeners,this,arguments[1],arguments[2]);break;default:l=arguments.length;args=new Array(l-1);for(i=1;i<l;++i){args[i-1]=arguments[i];}apply.call(listeners,this,args);}}};methods={on:on,once:_once2,off:off,emit:emit};descriptors={on:d(on),once:d(_once2),off:d(off),emit:d(emit)};base=defineProperties({},descriptors);module.exports=exports=function exports(o){return o==null?create(base):defineProperties(Object(o),descriptors);};exports.methods=methods;})(eventEmitter,eventEmitter.exports);var EventEmitter=eventEmitter.exports;/**
7 * Hooks allow for injecting functions that must all complete in order before finishing
8 * They will execute in parallel but all must finish before continuing
9 * Functions may return a promise if they are asycn.
10 * From epubjs/src/utils/hooks
11 * @param {any} context scope of this
12 * @example this.content = new Hook(this);
13 */var Hook=/*#__PURE__*/function(){function Hook(context){(0,_classCallCheck2["default"])(this,Hook);this.context=context||this;this.hooks=[];}/**
14 * Adds a function to be run before a hook completes
15 * @example this.content.register(function(){...});
16 * @return {undefined} void
17 */(0,_createClass2["default"])(Hook,[{key:"register",value:function register(){for(var i=0;i<arguments.length;++i){if(typeof arguments[i]==="function"){this.hooks.push(arguments[i]);}else{// unpack array
18for(var j=0;j<arguments[i].length;++j){this.hooks.push(arguments[i][j]);}}}}/**
19 * Triggers a hook to run all functions
20 * @example this.content.trigger(args).then(function(){...});
21 * @return {Promise} results
22 */},{key:"trigger",value:function trigger(){var args=arguments;var context=this.context;var promises=[];this.hooks.forEach(function(task){var executing=task.apply(context,args);if(executing&&typeof executing["then"]==="function"){// Task is a function that returns a promise
23promises.push(executing);}else{// Otherwise Task resolves immediately, add resolved promise with result
24promises.push(new Promise(function(resolve,reject){resolve(executing);}));}});return Promise.all(promises);}/**
25 * Triggers a hook to run all functions synchronously
26 * @example this.content.trigger(args).then(function(){...});
27 * @return {Array} results
28 */},{key:"triggerSync",value:function triggerSync(){var args=arguments;var context=this.context;var results=[];this.hooks.forEach(function(task){var executing=task.apply(context,args);results.push(executing);});return results;}// Adds a function to be run before a hook completes
29},{key:"list",value:function list(){return this.hooks;}},{key:"clear",value:function clear(){return this.hooks=[];}}]);return Hook;}();function getBoundingClientRect(element){if(!element){return;}var rect;if(typeof element.getBoundingClientRect!=="undefined"){rect=element.getBoundingClientRect();}else{var range=document.createRange();range.selectNode(element);rect=range.getBoundingClientRect();}return rect;}function getClientRects(element){if(!element){return;}var rect;if(typeof element.getClientRects!=="undefined"){rect=element.getClientRects();}else{var range=document.createRange();range.selectNode(element);rect=range.getClientRects();}return rect;}/**
30 * Generates a UUID
31 * based on: http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript
32 * @returns {string} uuid
33 */function UUID(){var d=new Date().getTime();if(typeof performance!=="undefined"&&typeof performance.now==="function"){d+=performance.now();//use high-precision timer if available
34}return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=(d+Math.random()*16)%16|0;d=Math.floor(d/16);return(c==="x"?r:r&0x3|0x8).toString(16);});}function attr(element,attributes){for(var i=0;i<attributes.length;i++){if(element.hasAttribute(attributes[i])){return element.getAttribute(attributes[i]);}}}/* Based on by https://mths.be/cssescape v1.5.1 by @mathias | MIT license
35 * Allows # and .
36 */function querySelectorEscape(value){if(arguments.length==0){throw new TypeError("`CSS.escape` requires an argument.");}var string=String(value);var length=string.length;var index=-1;var codeUnit;var result="";var firstCodeUnit=string.charCodeAt(0);while(++index<length){codeUnit=string.charCodeAt(index);// Note: there’s no need to special-case astral symbols, surrogate
37// pairs, or lone surrogates.
38// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER
39// (U+FFFD).
40if(codeUnit==0x0000){result+="\uFFFD";continue;}if(// If the character is in the range [\1-\1F] (U+0001 to U+001F) or is
41// U+007F, […]
42codeUnit>=0x0001&&codeUnit<=0x001F||codeUnit==0x007F||// If the character is the first character and is in the range [0-9]
43// (U+0030 to U+0039), […]
44index==0&&codeUnit>=0x0030&&codeUnit<=0x0039||// If the character is the second character and is in the range [0-9]
45// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]
46index==1&&codeUnit>=0x0030&&codeUnit<=0x0039&&firstCodeUnit==0x002D){// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point
47result+="\\"+codeUnit.toString(16)+" ";continue;}if(// If the character is the first character and is a `-` (U+002D), and
48// there is no second character, […]
49index==0&&length==1&&codeUnit==0x002D){result+="\\"+string.charAt(index);continue;}// support for period character in id
50if(codeUnit==0x002E){if(string.charAt(0)=="#"){result+="\\.";continue;}}// If the character is not handled by one of the above rules and is
51// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or
52// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to
53// U+005A), or [a-z] (U+0061 to U+007A), […]
54if(codeUnit>=0x0080||codeUnit==0x002D||codeUnit==0x005F||codeUnit==35||// Allow #
55codeUnit==46||// Allow .
56codeUnit>=0x0030&&codeUnit<=0x0039||codeUnit>=0x0041&&codeUnit<=0x005A||codeUnit>=0x0061&&codeUnit<=0x007A){// the character itself
57result+=string.charAt(index);continue;}// Otherwise, the escaped character.
58// https://drafts.csswg.org/cssom/#escape-a-character
59result+="\\"+string.charAt(index);}return result;}/**
60 * Creates a new pending promise and provides methods to resolve or reject it.
61 * From: https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules/Promise.jsm/Deferred#backwards_forwards_compatible
62 * @returns {object} defered
63 */function defer(){var _this2=this;this.resolve=null;this.reject=null;this.id=UUID();this.promise=new Promise(function(resolve,reject){_this2.resolve=resolve;_this2.reject=reject;});Object.freeze(this);}var requestIdleCallback=typeof window!=="undefined"&&("requestIdleCallback"in window?window.requestIdleCallback:window.requestAnimationFrame);function CSSValueToString(obj){return obj.value+(obj.unit||"");}function isElement(node){return node&&node.nodeType===1;}function isText(node){return node&&node.nodeType===3;}function walk$2(start,limiter){var node;return _regenerator["default"].wrap(function walk$2$(_context){while(1){switch(_context.prev=_context.next){case 0:node=start;case 1:if(!node){_context.next=27;break;}_context.next=4;return node;case 4:if(!node.childNodes.length){_context.next=8;break;}node=node.firstChild;_context.next=25;break;case 8:if(!node.nextSibling){_context.next=15;break;}if(!(limiter&&node===limiter)){_context.next=12;break;}node=undefined;return _context.abrupt("break",27);case 12:node=node.nextSibling;_context.next=25;break;case 15:if(!node){_context.next=25;break;}node=node.parentNode;if(!(limiter&&node===limiter)){_context.next=20;break;}node=undefined;return _context.abrupt("break",25);case 20:if(!(node&&node.nextSibling)){_context.next=23;break;}node=node.nextSibling;return _context.abrupt("break",25);case 23:_context.next=15;break;case 25:_context.next=1;break;case 27:case"end":return _context.stop();}}},_marked);}function nodeAfter(node,limiter){if(limiter&&node===limiter){return;}var significantNode=nextSignificantNode(node);if(significantNode){return significantNode;}if(node.parentNode){while(node=node.parentNode){if(limiter&&node===limiter){return;}significantNode=nextSignificantNode(node);if(significantNode){return significantNode;}}}}function nodeBefore(node,limiter){if(limiter&&node===limiter){return;}var significantNode=previousSignificantNode(node);if(significantNode){return significantNode;}if(node.parentNode){while(node=node.parentNode){if(limiter&&node===limiter){return;}significantNode=previousSignificantNode(node);if(significantNode){return significantNode;}}}}function elementAfter(node,limiter){var after=nodeAfter(node,limiter);while(after&&after.nodeType!==1){after=nodeAfter(after,limiter);}return after;}function elementBefore(node,limiter){var before=nodeBefore(node,limiter);while(before&&before.nodeType!==1){before=nodeBefore(before,limiter);}return before;}function displayedElementAfter(node,limiter){var after=elementAfter(node,limiter);while(after&&after.dataset.undisplayed){after=elementAfter(after);}return after;}function displayedElementBefore(node,limiter){var before=elementBefore(node,limiter);while(before&&before.dataset.undisplayed){before=elementBefore(before);}return before;}function rebuildAncestors(node){var parent,ancestor;var ancestors=[];var added=[];var fragment=document.createDocumentFragment();// Handle rowspan on table
64if(node.nodeName==="TR"){var previousRow=node.previousElementSibling;var previousRowDistance=1;while(previousRow){// previous row has more columns, might indicate a rowspan.
65if(previousRow.childElementCount>node.childElementCount){var initialColumns=Array.from(node.children);while(node.firstChild){node.firstChild.remove();}var k=0;for(var j=0;j<previousRow.children.length;j++){var column=previousRow.children[j];if(column.rowSpan&&column.rowSpan>previousRowDistance){var duplicatedColumn=column.cloneNode(true);// Adjust rowspan value
66duplicatedColumn.rowSpan=column.rowSpan-previousRowDistance;// Add the column to the row
67node.appendChild(duplicatedColumn);}else{// Fill the gap with the initial columns (if exists)
68var initialColumn=initialColumns[k++];// The initial column can be undefined if the newly created table has less columns than the original table
69if(initialColumn){node.appendChild(initialColumn);}}}}previousRow=previousRow.previousElementSibling;previousRowDistance++;}}// Gather all ancestors
70var element=node;while(element.parentNode&&element.parentNode.nodeType===1){ancestors.unshift(element.parentNode);element=element.parentNode;}for(var i=0;i<ancestors.length;i++){ancestor=ancestors[i];parent=ancestor.cloneNode(false);parent.setAttribute("data-split-from",parent.getAttribute("data-ref"));// ancestor.setAttribute("data-split-to", parent.getAttribute("data-ref"));
71if(parent.hasAttribute("id")){var dataID=parent.getAttribute("id");parent.setAttribute("data-id",dataID);parent.removeAttribute("id");}// This is handled by css :not, but also tidied up here
72if(parent.hasAttribute("data-break-before")){parent.removeAttribute("data-break-before");}if(parent.hasAttribute("data-previous-break-after")){parent.removeAttribute("data-previous-break-after");}if(added.length){var container=added[added.length-1];container.appendChild(parent);}else{fragment.appendChild(parent);}added.push(parent);// rebuild table rows
73if(parent.nodeName==="TD"&&ancestor.parentElement.contains(ancestor)){var td=ancestor;var prev=parent;while(td=td.previousElementSibling){var sib=td.cloneNode(false);parent.parentElement.insertBefore(sib,prev);prev=sib;}}}added=undefined;return fragment;}/*
74 export function split(bound, cutElement, breakAfter) {
75 let needsRemoval = [];
76 let index = indexOf(cutElement);
77
78 if (!breakAfter && index === 0) {
79 return;
80 }
81
82 if (breakAfter && index === (cutElement.parentNode.children.length - 1)) {
83 return;
84 }
85
86 // Create a fragment with rebuilt ancestors
87 let fragment = rebuildAncestors(cutElement);
88
89 // Clone cut
90 if (!breakAfter) {
91 let clone = cutElement.cloneNode(true);
92 let ref = cutElement.parentNode.getAttribute('data-ref');
93 let parent = fragment.querySelector("[data-ref='" + ref + "']");
94 parent.appendChild(clone);
95 needsRemoval.push(cutElement);
96 }
97
98 // Remove all after cut
99 let next = nodeAfter(cutElement, bound);
100 while (next) {
101 let clone = next.cloneNode(true);
102 let ref = next.parentNode.getAttribute('data-ref');
103 let parent = fragment.querySelector("[data-ref='" + ref + "']");
104 parent.appendChild(clone);
105 needsRemoval.push(next);
106 next = nodeAfter(next, bound);
107 }
108
109 // Remove originals
110 needsRemoval.forEach((node) => {
111 if (node) {
112 node.remove();
113 }
114 });
115
116 // Insert after bounds
117 bound.parentNode.insertBefore(fragment, bound.nextSibling);
118 return [bound, bound.nextSibling];
119 }
120 */function needsBreakBefore(node){if(typeof node!=="undefined"&&typeof node.dataset!=="undefined"&&typeof node.dataset.breakBefore!=="undefined"&&(node.dataset.breakBefore==="always"||node.dataset.breakBefore==="page"||node.dataset.breakBefore==="left"||node.dataset.breakBefore==="right"||node.dataset.breakBefore==="recto"||node.dataset.breakBefore==="verso")){return true;}return false;}function needsPreviousBreakAfter(node){if(typeof node!=="undefined"&&typeof node.dataset!=="undefined"&&typeof node.dataset.previousBreakAfter!=="undefined"&&(node.dataset.previousBreakAfter==="always"||node.dataset.previousBreakAfter==="page"||node.dataset.previousBreakAfter==="left"||node.dataset.previousBreakAfter==="right"||node.dataset.previousBreakAfter==="recto"||node.dataset.previousBreakAfter==="verso")){return true;}return false;}function needsPageBreak(node,previousSignificantNode){if(typeof node==="undefined"||!previousSignificantNode||isIgnorable(node)){return false;}if(node.dataset&&node.dataset.undisplayed){return false;}var previousSignificantNodePage=previousSignificantNode.dataset?previousSignificantNode.dataset.page:undefined;if(typeof previousSignificantNodePage==="undefined"){var nodeWithNamedPage=getNodeWithNamedPage(previousSignificantNode);if(nodeWithNamedPage){previousSignificantNodePage=nodeWithNamedPage.dataset.page;}}var currentNodePage=node.dataset?node.dataset.page:undefined;if(typeof currentNodePage==="undefined"){var _nodeWithNamedPage=getNodeWithNamedPage(node,previousSignificantNode);if(_nodeWithNamedPage){currentNodePage=_nodeWithNamedPage.dataset.page;}}return currentNodePage!==previousSignificantNodePage;}function words(node){var currentText,max,currentOffset,currentLetter,range,significantWhitespaces;return _regenerator["default"].wrap(function words$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:currentText=node.nodeValue;max=currentText.length;currentOffset=0;significantWhitespaces=node.parentElement&&node.parentElement.nodeName==="PRE";case 4:if(!(currentOffset<max)){_context2.next=18;break;}currentLetter=currentText[currentOffset];if(!(/^[\S\u202F\u00A0]$/.test(currentLetter)||significantWhitespaces)){_context2.next=10;break;}if(!range){range=document.createRange();range.setStart(node,currentOffset);}_context2.next=15;break;case 10:if(!range){_context2.next=15;break;}range.setEnd(node,currentOffset);_context2.next=14;return range;case 14:range=undefined;case 15:currentOffset+=1;_context2.next=4;break;case 18:if(!range){_context2.next=22;break;}range.setEnd(node,currentOffset);_context2.next=22;return range;case 22:case"end":return _context2.stop();}}},_marked2);}function letters(wordRange){var currentText,max,currentOffset,range;return _regenerator["default"].wrap(function letters$(_context3){while(1){switch(_context3.prev=_context3.next){case 0:currentText=wordRange.startContainer;max=currentText.length;currentOffset=wordRange.startOffset;// let currentLetter;
121case 3:if(!(currentOffset<max)){_context3.next=12;break;}// currentLetter = currentText[currentOffset];
122range=document.createRange();range.setStart(currentText,currentOffset);range.setEnd(currentText,currentOffset+1);_context3.next=9;return range;case 9:currentOffset+=1;_context3.next=3;break;case 12:case"end":return _context3.stop();}}},_marked3);}function isContainer(node){var container;if(typeof node.tagName==="undefined"){return true;}if(node.style&&node.style.display==="none"){return false;}switch(node.tagName){// Inline
123case"A":case"ABBR":case"ACRONYM":case"B":case"BDO":case"BIG":case"BR":case"BUTTON":case"CITE":case"CODE":case"DFN":case"EM":case"I":case"IMG":case"INPUT":case"KBD":case"LABEL":case"MAP":case"OBJECT":case"Q":case"SAMP":case"SCRIPT":case"SELECT":case"SMALL":case"SPAN":case"STRONG":case"SUB":case"SUP":case"TEXTAREA":case"TIME":case"TT":case"VAR":case"P":case"H1":case"H2":case"H3":case"H4":case"H5":case"H6":case"FIGCAPTION":case"BLOCKQUOTE":case"PRE":case"LI":case"TD":case"DT":case"DD":case"VIDEO":case"CANVAS":container=false;break;default:container=true;}return container;}function cloneNode(n){var deep=arguments.length>1&&arguments[1]!==undefined?arguments[1]:false;return n.cloneNode(deep);}function findElement(node,doc,forceQuery){var ref=node.getAttribute("data-ref");return findRef(ref,doc,forceQuery);}function findRef(ref,doc,forceQuery){if(!forceQuery&&doc.indexOfRefs&&doc.indexOfRefs[ref]){return doc.indexOfRefs[ref];}else{return doc.querySelector("[data-ref='".concat(ref,"']"));}}function validNode(node){if(isText(node)){return true;}if(isElement(node)&&node.dataset.ref){return true;}return false;}function prevValidNode(node){while(!validNode(node)){if(node.previousSibling){node=node.previousSibling;}else{node=node.parentNode;}if(!node){break;}}return node;}function indexOf$2(node){var parent=node.parentNode;if(!parent){return 0;}return Array.prototype.indexOf.call(parent.childNodes,node);}function child(node,index){return node.childNodes[index];}function hasContent(node){if(isElement(node)){return true;}else if(isText(node)&&node.textContent.trim().length){return true;}return false;}function indexOfTextNode(node,parent){if(!isText(node)){return-1;}var nodeTextContent=node.textContent;var child;var index=-1;for(var i=0;i<parent.childNodes.length;i++){child=parent.childNodes[i];if(child.nodeType===3){var text=parent.childNodes[i].textContent;if(text.includes(nodeTextContent)){index=i;break;}}}return index;}/**
124 * Throughout, whitespace is defined as one of the characters
125 * "\t" TAB \u0009
126 * "\n" LF \u000A
127 * "\r" CR \u000D
128 * " " SPC \u0020
129 *
130 * This does not use Javascript's "\s" because that includes non-breaking
131 * spaces (and also some other characters).
132 */ /**
133 * Determine if a node should be ignored by the iterator functions.
134 * taken from https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Whitespace#Whitespace_helper_functions
135 *
136 * @param {Node} node An object implementing the DOM1 |Node| interface.
137 * @return {boolean} true if the node is:
138 * 1) A |Text| node that is all whitespace
139 * 2) A |Comment| node
140 * and otherwise false.
141 */function isIgnorable(node){return node.nodeType===8||// A comment node
142node.nodeType===3&&isAllWhitespace(node);// a text node, all whitespace
143}/**
144 * Determine whether a node's text content is entirely whitespace.
145 *
146 * @param {Node} node A node implementing the |CharacterData| interface (i.e., a |Text|, |Comment|, or |CDATASection| node
147 * @return {boolean} true if all of the text content of |nod| is whitespace, otherwise false.
148 */function isAllWhitespace(node){return!/[^\t\n\r ]/.test(node.textContent);}/**
149 * Version of |previousSibling| that skips nodes that are entirely
150 * whitespace or comments. (Normally |previousSibling| is a property
151 * of all DOM nodes that gives the sibling node, the node that is
152 * a child of the same parent, that occurs immediately before the
153 * reference node.)
154 *
155 * @param {ChildNode} sib The reference node.
156 * @return {Node|null} Either:
157 * 1) The closest previous sibling to |sib| that is not ignorable according to |is_ignorable|, or
158 * 2) null if no such node exists.
159 */function previousSignificantNode(sib){while(sib=sib.previousSibling){if(!isIgnorable(sib))return sib;}return null;}function getNodeWithNamedPage(node,limiter){if(node&&node.dataset&&node.dataset.page){return node;}if(node.parentNode){while(node=node.parentNode){if(limiter&&node===limiter){return;}if(node.dataset&&node.dataset.page){return node;}}}return null;}function breakInsideAvoidParentNode(node){while(node=node.parentNode){if(node&&node.dataset&&node.dataset.breakInside==="avoid"){return node;}}return null;}/**
160 * Find a parent with a given node name.
161 * @param {Node} node - initial Node
162 * @param {string} nodeName - node name (eg. "TD", "TABLE", "STRONG"...)
163 * @param {Node} limiter - go up to the parent until there's no more parent or the current node is equals to the limiter
164 * @returns {Node|undefined} - Either:
165 * 1) The closest parent for a the given node name, or
166 * 2) undefined if no such node exists.
167 */function parentOf(node,nodeName,limiter){if(limiter&&node===limiter){return;}if(node.parentNode){while(node=node.parentNode){if(limiter&&node===limiter){return;}if(node.nodeName===nodeName){return node;}}}}/**
168 * Version of |nextSibling| that skips nodes that are entirely
169 * whitespace or comments.
170 *
171 * @param {ChildNode} sib The reference node.
172 * @return {Node|null} Either:
173 * 1) The closest next sibling to |sib| that is not ignorable according to |is_ignorable|, or
174 * 2) null if no such node exists.
175 */function nextSignificantNode(sib){while(sib=sib.nextSibling){if(!isIgnorable(sib))return sib;}return null;}function filterTree(content,func,what){var treeWalker=document.createTreeWalker(content||this.dom,what||NodeFilter.SHOW_ALL,func?{acceptNode:func}:null,false);var node;var current;node=treeWalker.nextNode();while(node){current=node;node=treeWalker.nextNode();current.parentNode.removeChild(current);}}/**
176 * Layout
177 * @class
178 */var BreakToken=/*#__PURE__*/function(){function BreakToken(node,offset){(0,_classCallCheck2["default"])(this,BreakToken);this.node=node;this.offset=offset;}(0,_createClass2["default"])(BreakToken,[{key:"equals",value:function equals(otherBreakToken){if(!otherBreakToken){return false;}if(this["node"]&&otherBreakToken["node"]&&this["node"]!==otherBreakToken["node"]){return false;}if(this["offset"]&&otherBreakToken["offset"]&&this["offset"]!==otherBreakToken["offset"]){return false;}return true;}}]);return BreakToken;}();/**
179 * Render result.
180 * @class
181 */var RenderResult=/*#__PURE__*/(0,_createClass2["default"])(function RenderResult(breakToken,error){(0,_classCallCheck2["default"])(this,RenderResult);this.breakToken=breakToken;this.error=error;});var OverflowContentError=/*#__PURE__*/function(_Error){(0,_inherits2["default"])(OverflowContentError,_Error);var _super=_createSuper(OverflowContentError);function OverflowContentError(message,items){var _this3;(0,_classCallCheck2["default"])(this,OverflowContentError);_this3=_super.call(this,message);_this3.items=items;return _this3;}return(0,_createClass2["default"])(OverflowContentError);}(/*#__PURE__*/(0,_wrapNativeSuper2["default"])(Error));var MAX_CHARS_PER_BREAK=1500;/**
182 * Layout
183 * @class
184 */var Layout=/*#__PURE__*/function(){function Layout(element,hooks,options){(0,_classCallCheck2["default"])(this,Layout);this.element=element;this.bounds=this.element.getBoundingClientRect();if(hooks){this.hooks=hooks;}else{this.hooks={};this.hooks.layout=new Hook();this.hooks.renderNode=new Hook();this.hooks.layoutNode=new Hook();this.hooks.beforeOverflow=new Hook();this.hooks.onOverflow=new Hook();this.hooks.afterOverflowRemoved=new Hook();this.hooks.onBreakToken=new Hook();}this.settings=options||{};this.maxChars=this.settings.maxChars||MAX_CHARS_PER_BREAK;this.forceRenderBreak=false;}(0,_createClass2["default"])(Layout,[{key:"renderTo",value:function(){var _renderTo=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee(wrapper,source,breakToken){var bounds,start,walker,node,prevNode,done,next,hasRenderedContent,newBreakToken,length,prevBreakToken,imgs,_imgs,named,_page,shallow,rendered,_imgs2,_args4=arguments;return _regenerator["default"].wrap(function _callee$(_context4){while(1){switch(_context4.prev=_context4.next){case 0:bounds=_args4.length>3&&_args4[3]!==undefined?_args4[3]:this.bounds;start=this.getStart(source,breakToken);walker=walk$2(start,source);hasRenderedContent=false;length=0;prevBreakToken=breakToken||new BreakToken(start);case 6:if(!(!done&&!newBreakToken)){_context4.next=65;break;}next=walker.next();prevNode=node;node=next.value;done=next.done;if(node){_context4.next=23;break;}this.hooks&&this.hooks.layout.trigger(wrapper,this);imgs=wrapper.querySelectorAll("img");if(!imgs.length){_context4.next=17;break;}_context4.next=17;return this.waitForImages(imgs);case 17:newBreakToken=this.findBreakToken(wrapper,source,bounds,prevBreakToken);if(!(newBreakToken&&newBreakToken.equals(prevBreakToken))){_context4.next=21;break;}console.warn("Unable to layout item: ",prevNode);return _context4.abrupt("return",new RenderResult(undefined,new OverflowContentError("Unable to layout item",[prevNode])));case 21:this.rebuildTableFromBreakToken(newBreakToken,wrapper);return _context4.abrupt("return",new RenderResult(newBreakToken));case 23:this.hooks&&this.hooks.layoutNode.trigger(node);// Check if the rendered element has a break set
185if(!(hasRenderedContent&&this.shouldBreak(node,start))){_context4.next=38;break;}this.hooks&&this.hooks.layout.trigger(wrapper,this);_imgs=wrapper.querySelectorAll("img");if(!_imgs.length){_context4.next=30;break;}_context4.next=30;return this.waitForImages(_imgs);case 30:newBreakToken=this.findBreakToken(wrapper,source,bounds,prevBreakToken);if(!newBreakToken){newBreakToken=this.breakAt(node);}if(!(newBreakToken&&newBreakToken.equals(prevBreakToken))){_context4.next=35;break;}console.warn("Unable to layout item: ",node);return _context4.abrupt("return",new RenderResult(undefined,new OverflowContentError("Unable to layout item",[node])));case 35:this.rebuildTableFromBreakToken(newBreakToken,wrapper);length=0;return _context4.abrupt("break",65);case 38:if(node.dataset&&node.dataset.page){named=node.dataset.page;_page=this.element.closest(".pagedjs_page");_page.classList.add("pagedjs_named_page");_page.classList.add("pagedjs_"+named+"_page");if(!node.dataset.splitFrom){_page.classList.add("pagedjs_"+named+"_first_page");}}// Should the Node be a shallow or deep clone
186shallow=isContainer(node);rendered=this.append(node,wrapper,breakToken,shallow);length+=rendered.textContent.length;// Check if layout has content yet
187if(!hasRenderedContent){hasRenderedContent=hasContent(node);}// Skip to the next node if a deep clone was rendered
188if(!shallow){walker=walk$2(nodeAfter(node,source),source);}if(!this.forceRenderBreak){_context4.next=52;break;}this.hooks&&this.hooks.layout.trigger(wrapper,this);newBreakToken=this.findBreakToken(wrapper,source,bounds,prevBreakToken);if(!newBreakToken){newBreakToken=this.breakAt(node);}this.rebuildTableFromBreakToken(newBreakToken,wrapper);length=0;this.forceRenderBreak=false;return _context4.abrupt("break",65);case 52:if(!(length>=this.maxChars)){_context4.next=63;break;}this.hooks&&this.hooks.layout.trigger(wrapper,this);_imgs2=wrapper.querySelectorAll("img");if(!_imgs2.length){_context4.next=58;break;}_context4.next=58;return this.waitForImages(_imgs2);case 58:newBreakToken=this.findBreakToken(wrapper,source,bounds,prevBreakToken);if(!(newBreakToken&&newBreakToken.equals(prevBreakToken))){_context4.next=62;break;}console.warn("Unable to layout item: ",node);return _context4.abrupt("return",new RenderResult(undefined,new OverflowContentError("Unable to layout item",[node])));case 62:if(newBreakToken){length=0;this.rebuildTableFromBreakToken(newBreakToken,wrapper);}case 63:_context4.next=6;break;case 65:return _context4.abrupt("return",new RenderResult(newBreakToken));case 66:case"end":return _context4.stop();}}},_callee,this);}));function renderTo(_x,_x2,_x3){return _renderTo.apply(this,arguments);}return renderTo;}()},{key:"breakAt",value:function breakAt(node){var offset=arguments.length>1&&arguments[1]!==undefined?arguments[1]:0;var newBreakToken=new BreakToken(node,offset);var breakHooks=this.hooks.onBreakToken.triggerSync(newBreakToken,undefined,node,this);breakHooks.forEach(function(newToken){if(typeof newToken!="undefined"){newBreakToken=newToken;}});return newBreakToken;}},{key:"shouldBreak",value:function shouldBreak(node,limiter){var previousNode=nodeBefore(node,limiter);var parentNode=node.parentNode;var parentBreakBefore=needsBreakBefore(node)&&parentNode&&!previousNode&&needsBreakBefore(parentNode);var doubleBreakBefore;if(parentBreakBefore){doubleBreakBefore=node.dataset.breakBefore===parentNode.dataset.breakBefore;}return!doubleBreakBefore&&needsBreakBefore(node)||needsPreviousBreakAfter(node)||needsPageBreak(node,previousNode);}},{key:"forceBreak",value:function forceBreak(){this.forceRenderBreak=true;}},{key:"getStart",value:function getStart(source,breakToken){var start;var node=breakToken&&breakToken.node;if(node){start=node;}else{start=source.firstChild;}return start;}},{key:"append",value:function append(node,dest,breakToken){var shallow=arguments.length>3&&arguments[3]!==undefined?arguments[3]:true;var rebuild=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var clone=cloneNode(node,!shallow);if(node.parentNode&&isElement(node.parentNode)){var parent=findElement(node.parentNode,dest);// Rebuild chain
189if(parent){parent.appendChild(clone);}else if(rebuild){var fragment=rebuildAncestors(node);parent=findElement(node.parentNode,fragment);if(!parent){dest.appendChild(clone);}else if(breakToken&&isText(breakToken.node)&&breakToken.offset>0){clone.textContent=clone.textContent.substring(breakToken.offset);parent.appendChild(clone);}else{parent.appendChild(clone);}dest.appendChild(fragment);}else{dest.appendChild(clone);}}else{dest.appendChild(clone);}if(clone.dataset&&clone.dataset.ref){if(!dest.indexOfRefs){dest.indexOfRefs={};}dest.indexOfRefs[clone.dataset.ref]=clone;}var nodeHooks=this.hooks.renderNode.triggerSync(clone,node,this);nodeHooks.forEach(function(newNode){if(typeof newNode!="undefined"){clone=newNode;}});return clone;}},{key:"rebuildTableFromBreakToken",value:function rebuildTableFromBreakToken(breakToken,dest){if(!breakToken||!breakToken.node){return;}var node=breakToken.node;var td=isElement(node)?node.closest("td"):node.parentElement.closest("td");if(td){var rendered=findElement(td,dest,true);if(!rendered){return;}while(td=td.nextElementSibling){this.append(td,dest,null,true);}}}},{key:"waitForImages",value:function(){var _waitForImages=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee3(imgs){var _this4=this;var results;return _regenerator["default"].wrap(function _callee3$(_context6){while(1){switch(_context6.prev=_context6.next){case 0:results=Array.from(imgs).map(/*#__PURE__*/function(){var _ref=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee2(img){return _regenerator["default"].wrap(function _callee2$(_context5){while(1){switch(_context5.prev=_context5.next){case 0:return _context5.abrupt("return",_this4.awaitImageLoaded(img));case 1:case"end":return _context5.stop();}}},_callee2);}));return function(_x5){return _ref.apply(this,arguments);};}());_context6.next=3;return Promise.all(results);case 3:case"end":return _context6.stop();}}},_callee3);}));function waitForImages(_x4){return _waitForImages.apply(this,arguments);}return waitForImages;}()},{key:"awaitImageLoaded",value:function(){var _awaitImageLoaded=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee4(image){return _regenerator["default"].wrap(function _callee4$(_context7){while(1){switch(_context7.prev=_context7.next){case 0:return _context7.abrupt("return",new Promise(function(resolve){if(image.complete!==true){image.onload=function(){var _window$getComputedSt=window.getComputedStyle(image),width=_window$getComputedSt.width,height=_window$getComputedSt.height;resolve(width,height);};image.onerror=function(e){var _window$getComputedSt2=window.getComputedStyle(image),width=_window$getComputedSt2.width,height=_window$getComputedSt2.height;resolve(width,height,e);};}else{var _window$getComputedSt3=window.getComputedStyle(image),_width=_window$getComputedSt3.width,_height=_window$getComputedSt3.height;resolve(_width,_height);}}));case 1:case"end":return _context7.stop();}}},_callee4);}));function awaitImageLoaded(_x6){return _awaitImageLoaded.apply(this,arguments);}return awaitImageLoaded;}()},{key:"avoidBreakInside",value:function avoidBreakInside(node,limiter){var breakNode;if(node===limiter){return;}while(node.parentNode){node=node.parentNode;if(node===limiter){break;}if(window.getComputedStyle(node)["break-inside"]==="avoid"){breakNode=node;break;}}return breakNode;}},{key:"createBreakToken",value:function createBreakToken(overflow,rendered,source){var container=overflow.startContainer;var offset=overflow.startOffset;var node,renderedNode,parent,index,temp;if(isElement(container)){temp=child(container,offset);if(isElement(temp)){renderedNode=findElement(temp,rendered);if(!renderedNode){// Find closest element with data-ref
190var prevNode=prevValidNode(temp);if(!isElement(prevNode)){prevNode=prevNode.parentElement;}renderedNode=findElement(prevNode,rendered);// Check if temp is the last rendered node at its level.
191if(!temp.nextSibling){// We need to ensure that the previous sibling of temp is fully rendered.
192var renderedNodeFromSource=findElement(renderedNode,source);var _walker=document.createTreeWalker(renderedNodeFromSource,NodeFilter.SHOW_ELEMENT);var lastChildOfRenderedNodeFromSource=_walker.lastChild();var lastChildOfRenderedNodeMatchingFromRendered=findElement(lastChildOfRenderedNodeFromSource,rendered);// Check if we found that the last child in source
193if(!lastChildOfRenderedNodeMatchingFromRendered){// Pending content to be rendered before virtual break token
194return;}// Otherwise we will return a break token as per below
195}// renderedNode is actually the last unbroken box that does not overflow.
196// Break Token is therefore the next sibling of renderedNode within source node.
197node=findElement(renderedNode,source).nextSibling;offset=0;}else{node=findElement(renderedNode,source);offset=0;}}else{renderedNode=findElement(container,rendered);if(!renderedNode){renderedNode=findElement(prevValidNode(container),rendered);}parent=findElement(renderedNode,source);index=indexOfTextNode(temp,parent);// No seperatation for the first textNode of an element
198if(index===0){node=parent;offset=0;}else{node=child(parent,index);offset=0;}}}else{renderedNode=findElement(container.parentNode,rendered);if(!renderedNode){renderedNode=findElement(prevValidNode(container.parentNode),rendered);}parent=findElement(renderedNode,source);index=indexOfTextNode(container,parent);if(index===-1){return;}node=child(parent,index);offset+=node.textContent.indexOf(container.textContent);}if(!node){return;}return new BreakToken(node,offset);}},{key:"findBreakToken",value:function findBreakToken(rendered,source){var bounds=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.bounds;var prevBreakToken=arguments.length>3?arguments[3]:undefined;var extract=arguments.length>4&&arguments[4]!==undefined?arguments[4]:true;var overflow=this.findOverflow(rendered,bounds);var breakToken,breakLetter;var overflowHooks=this.hooks.onOverflow.triggerSync(overflow,rendered,bounds,this);overflowHooks.forEach(function(newOverflow){if(typeof newOverflow!="undefined"){overflow=newOverflow;}});if(overflow){breakToken=this.createBreakToken(overflow,rendered,source);// breakToken is nullable
199var breakHooks=this.hooks.onBreakToken.triggerSync(breakToken,overflow,rendered,this);breakHooks.forEach(function(newToken){if(typeof newToken!="undefined"){breakToken=newToken;}});// Stop removal if we are in a loop
200if(breakToken&&breakToken.equals(prevBreakToken)){return breakToken;}if(breakToken&&breakToken["node"]&&breakToken["offset"]&&breakToken["node"].textContent){breakLetter=breakToken["node"].textContent.charAt(breakToken["offset"]);}else{breakLetter=undefined;}if(breakToken&&breakToken.node&&extract){var removed=this.removeOverflow(overflow,breakLetter);this.hooks&&this.hooks.afterOverflowRemoved.trigger(removed,rendered,this);}}return breakToken;}},{key:"hasOverflow",value:function hasOverflow(element){var bounds=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.bounds;var constrainingElement=element&&element.parentNode;// this gets the element, instead of the wrapper for the width workaround
201var _element$getBoundingC=element.getBoundingClientRect(),width=_element$getBoundingC.width;var scrollWidth=constrainingElement?constrainingElement.scrollWidth:0;return Math.max(Math.floor(width),scrollWidth)>Math.round(bounds.width);}},{key:"findOverflow",value:function findOverflow(rendered){var bounds=arguments.length>1&&arguments[1]!==undefined?arguments[1]:this.bounds;if(!this.hasOverflow(rendered,bounds))return;var start=Math.round(bounds.left);var end=Math.round(bounds.right);var range;var walker=walk$2(rendered.firstChild,rendered);// Find Start
202var next,done,node,offset,skip,breakAvoid,prev,br;while(!done){next=walker.next();done=next.done;node=next.value;skip=false;breakAvoid=false;prev=undefined;br=undefined;if(node){var pos=getBoundingClientRect(node);var _left=Math.round(pos.left);var _right=Math.floor(pos.right);if(!range&&_left>=end){// Check if it is a float
203var isFloat=false;// Check if the node is inside a break-inside: avoid table cell
204var insideTableCell=parentOf(node,"TD",rendered);if(insideTableCell&&window.getComputedStyle(insideTableCell)["break-inside"]==="avoid"){// breaking inside a table cell produces unexpected result, as a workaround, we forcibly avoid break inside in a cell.
205prev=insideTableCell;}else if(isElement(node)){var styles=window.getComputedStyle(node);isFloat=styles.getPropertyValue("float")!=="none";skip=styles.getPropertyValue("break-inside")==="avoid";breakAvoid=node.dataset.breakBefore==="avoid"||node.dataset.previousBreakAfter==="avoid";prev=breakAvoid&&nodeBefore(node,rendered);br=node.tagName==="BR"||node.tagName==="WBR";}var tableRow=void 0;if(node.nodeName==="TR"){tableRow=node;}else{tableRow=parentOf(node,"TR",rendered);}if(tableRow){// honor break-inside="avoid" in parent tbody/thead
206var container=tableRow.parentElement;if(["TBODY","THEAD"].includes(container.nodeName)){var _styles=window.getComputedStyle(container);if(_styles.getPropertyValue("break-inside")==="avoid")prev=container;}// Check if the node is inside a row with a rowspan
207var table=parentOf(tableRow,"TABLE",rendered);var rowspan=table.querySelector("[colspan]");if(table&&rowspan){var columnCount=0;for(var _i=0,_Array$from=Array.from(table.rows[0].cells);_i<_Array$from.length;_i++){var cell=_Array$from[_i];columnCount+=parseInt(cell.getAttribute("colspan")||"1");}if(tableRow.cells.length!==columnCount){var previousRow=tableRow.previousElementSibling;var previousRowColumnCount=void 0;while(previousRow!==null){previousRowColumnCount=0;for(var _i2=0,_Array$from2=Array.from(previousRow.cells);_i2<_Array$from2.length;_i2++){var _cell=_Array$from2[_i2];previousRowColumnCount+=parseInt(_cell.getAttribute("colspan")||"1");}if(previousRowColumnCount===columnCount){break;}previousRow=previousRow.previousElementSibling;}if(previousRowColumnCount===columnCount){prev=previousRow;}}}}if(prev){range=document.createRange();range.selectNode(prev);break;}if(!br&&!isFloat&&isElement(node)){range=document.createRange();range.selectNode(node);break;}if(isText(node)&&node.textContent.trim().length){range=document.createRange();range.selectNode(node);break;}}if(!range&&isText(node)&&node.textContent.trim().length&&!breakInsideAvoidParentNode(node.parentNode)){var rects=getClientRects(node);var rect=void 0;_left=0;for(var i=0;i!=rects.length;i++){rect=rects[i];if(rect.width>0&&(!_left||rect.left>_left)){_left=rect.left;}}if(_left>=end){range=document.createRange();offset=this.textBreak(node,start,end);if(!offset){range=undefined;}else{range.setStart(node,offset);}break;}}// Skip children
208if(skip||_right<=end){next=nodeAfter(node,rendered);if(next){walker=walk$2(next,rendered);}}}}// Find End
209if(range){range.setEndAfter(rendered.lastChild);return range;}}},{key:"findEndToken",value:function findEndToken(rendered,source){var bounds=arguments.length>2&&arguments[2]!==undefined?arguments[2]:this.bounds;if(rendered.childNodes.length===0){return;}var lastChild=rendered.lastChild;var lastNodeIndex;while(lastChild&&lastChild.lastChild){if(!validNode(lastChild)){// Only get elements with refs
210lastChild=lastChild.previousSibling;}else if(!validNode(lastChild.lastChild)){// Deal with invalid dom items
211lastChild=prevValidNode(lastChild.lastChild);break;}else{lastChild=lastChild.lastChild;}}if(isText(lastChild)){if(lastChild.parentNode.dataset.ref){lastNodeIndex=indexOf$2(lastChild);lastChild=lastChild.parentNode;}else{lastChild=lastChild.previousSibling;}}var original=findElement(lastChild,source);if(lastNodeIndex){original=original.childNodes[lastNodeIndex];}var after=nodeAfter(original);return this.breakAt(after);}},{key:"textBreak",value:function textBreak(node,start,end){var wordwalker=words(node);var left=0;var right=0;var word,next,done,pos;var offset;while(!done){next=wordwalker.next();word=next.value;done=next.done;if(!word){break;}pos=getBoundingClientRect(word);left=Math.floor(pos.left);right=Math.floor(pos.right);if(left>=end){offset=word.startOffset;break;}if(right>end){var letterwalker=letters(word);var letter=void 0,nextLetter=void 0,doneLetter=void 0;while(!doneLetter){nextLetter=letterwalker.next();letter=nextLetter.value;doneLetter=nextLetter.done;if(!letter){break;}pos=getBoundingClientRect(letter);left=Math.floor(pos.left);if(left>=end){offset=letter.startOffset;done=true;break;}}}}return offset;}},{key:"removeOverflow",value:function removeOverflow(overflow,breakLetter){var startContainer=overflow.startContainer;var extracted=overflow.extractContents();this.hyphenateAtBreak(startContainer,breakLetter);return extracted;}},{key:"hyphenateAtBreak",value:function hyphenateAtBreak(startContainer,breakLetter){if(isText(startContainer)){var startText=startContainer.textContent;var prevLetter=startText[startText.length-1];// Add a hyphen if previous character is a letter or soft hyphen
212if(breakLetter&&/^\w|\u00AD$/.test(prevLetter)&&/^\w|\u00AD$/.test(breakLetter)||!breakLetter&&/^\w|\u00AD$/.test(prevLetter)){startContainer.parentNode.classList.add("pagedjs_hyphen");startContainer.textContent+=this.settings.hyphenGlyph||"\u2011";}}}},{key:"equalTokens",value:function equalTokens(a,b){if(!a||!b){return false;}if(a["node"]&&b["node"]&&a["node"]!==b["node"]){return false;}if(a["offset"]&&b["offset"]&&a["offset"]!==b["offset"]){return false;}return true;}}]);return Layout;}();EventEmitter(Layout.prototype);/**
213 * Render a page
214 * @class
215 */var Page=/*#__PURE__*/function(){function Page(pagesArea,pageTemplate,blank,hooks,options){(0,_classCallCheck2["default"])(this,Page);this.pagesArea=pagesArea;this.pageTemplate=pageTemplate;this.blank=blank;this.width=undefined;this.height=undefined;this.hooks=hooks;this.settings=options||{};// this.element = this.create(this.pageTemplate);
216}(0,_createClass2["default"])(Page,[{key:"create",value:function create(template,after){//let documentFragment = document.createRange().createContextualFragment( TEMPLATE );
217//let page = documentFragment.children[0];
218var clone=document.importNode(this.pageTemplate.content,true);var page,index;if(after){this.pagesArea.insertBefore(clone,after.nextElementSibling);index=Array.prototype.indexOf.call(this.pagesArea.children,after.nextElementSibling);page=this.pagesArea.children[index];}else{this.pagesArea.appendChild(clone);page=this.pagesArea.lastChild;}var pagebox=page.querySelector(".pagedjs_pagebox");var area=page.querySelector(".pagedjs_page_content");var footnotesArea=page.querySelector(".pagedjs_footnote_area");var size=area.getBoundingClientRect();area.style.columnWidth=Math.round(size.width)+"px";area.style.columnGap="calc(var(--pagedjs-margin-right) + var(--pagedjs-margin-left))";// area.style.overflow = "scroll";
219this.width=Math.round(size.width);this.height=Math.round(size.height);this.element=page;this.pagebox=pagebox;this.area=area;this.footnotesArea=footnotesArea;return page;}},{key:"createWrapper",value:function createWrapper(){var wrapper=document.createElement("div");this.area.appendChild(wrapper);this.wrapper=wrapper;return wrapper;}},{key:"index",value:function index(pgnum){this.position=pgnum;var page=this.element;// let pagebox = this.pagebox;
220var index=pgnum+1;var id="page-".concat(index);this.id=id;// page.dataset.pageNumber = index;
221page.dataset.pageNumber=index;page.setAttribute("id",id);if(this.name){page.classList.add("pagedjs_"+this.name+"_page");}if(this.blank){page.classList.add("pagedjs_blank_page");}if(pgnum===0){page.classList.add("pagedjs_first_page");}if(pgnum%2!==1){page.classList.remove("pagedjs_left_page");page.classList.add("pagedjs_right_page");}else{page.classList.remove("pagedjs_right_page");page.classList.add("pagedjs_left_page");}}/*
222 size(width, height) {
223 if (width === this.width && height === this.height) {
224 return;
225 }
226 this.width = width;
227 this.height = height;
228
229 this.element.style.width = Math.round(width) + "px";
230 this.element.style.height = Math.round(height) + "px";
231 this.element.style.columnWidth = Math.round(width) + "px";
232 }
233 */},{key:"layout",value:function(){var _layout=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee5(contents,breakToken,maxChars){var settings,renderResult,newBreakToken;return _regenerator["default"].wrap(function _callee5$(_context8){while(1){switch(_context8.prev=_context8.next){case 0:this.clear();this.startToken=breakToken;settings=this.settings;if(!settings.maxChars&&maxChars){settings.maxChars=maxChars;}this.layoutMethod=new Layout(this.area,this.hooks,settings);_context8.next=7;return this.layoutMethod.renderTo(this.wrapper,contents,breakToken);case 7:renderResult=_context8.sent;newBreakToken=renderResult.breakToken;this.addListeners(contents);this.endToken=newBreakToken;return _context8.abrupt("return",newBreakToken);case 12:case"end":return _context8.stop();}}},_callee5,this);}));function layout(_x7,_x8,_x9){return _layout.apply(this,arguments);}return layout;}()},{key:"append",value:function(){var _append=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee6(contents,breakToken){var renderResult,newBreakToken;return _regenerator["default"].wrap(function _callee6$(_context9){while(1){switch(_context9.prev=_context9.next){case 0:if(this.layoutMethod){_context9.next=2;break;}return _context9.abrupt("return",this.layout(contents,breakToken));case 2:_context9.next=4;return this.layoutMethod.renderTo(this.wrapper,contents,breakToken);case 4:renderResult=_context9.sent;newBreakToken=renderResult.breakToken;this.endToken=newBreakToken;return _context9.abrupt("return",newBreakToken);case 8:case"end":return _context9.stop();}}},_callee6,this);}));function append(_x10,_x11){return _append.apply(this,arguments);}return append;}()},{key:"getByParent",value:function getByParent(ref,entries){var e;for(var i=0;i<entries.length;i++){e=entries[i];if(e.dataset.ref===ref){return e;}}}},{key:"onOverflow",value:function onOverflow(func){this._onOverflow=func;}},{key:"onUnderflow",value:function onUnderflow(func){this._onUnderflow=func;}},{key:"clear",value:function clear(){this.removeListeners();this.wrapper&&this.wrapper.remove();this.createWrapper();}},{key:"addListeners",value:function addListeners(contents){if(typeof ResizeObserver!=="undefined"){this.addResizeObserver(contents);}else{this._checkOverflowAfterResize=this.checkOverflowAfterResize.bind(this,contents);this.element.addEventListener("overflow",this._checkOverflowAfterResize,false);this.element.addEventListener("underflow",this._checkOverflowAfterResize,false);}// TODO: fall back to mutation observer?
234this._onScroll=function(){if(this.listening){this.element.scrollLeft=0;}}.bind(this);// Keep scroll left from changing
235this.element.addEventListener("scroll",this._onScroll);this.listening=true;return true;}},{key:"removeListeners",value:function removeListeners(){this.listening=false;if(typeof ResizeObserver!=="undefined"&&this.ro){this.ro.disconnect();}else if(this.element){this.element.removeEventListener("overflow",this._checkOverflowAfterResize,false);this.element.removeEventListener("underflow",this._checkOverflowAfterResize,false);}this.element&&this.element.removeEventListener("scroll",this._onScroll);}},{key:"addResizeObserver",value:function addResizeObserver(contents){var _this5=this;var wrapper=this.wrapper;var prevHeight=wrapper.getBoundingClientRect().height;this.ro=new ResizeObserver(function(entries){if(!_this5.listening){return;}requestAnimationFrame(function(){var _iterator=_createForOfIteratorHelper(entries),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var entry=_step.value;var cr=entry.contentRect;if(cr.height>prevHeight){_this5.checkOverflowAfterResize(contents);prevHeight=wrapper.getBoundingClientRect().height;}else if(cr.height<prevHeight){// TODO: calc line height && (prevHeight - cr.height) >= 22
236_this5.checkUnderflowAfterResize(contents);prevHeight=cr.height;}}}catch(err){_iterator.e(err);}finally{_iterator.f();}});});this.ro.observe(wrapper);}},{key:"checkOverflowAfterResize",value:function checkOverflowAfterResize(contents){if(!this.listening||!this.layoutMethod){return;}var newBreakToken=this.layoutMethod.findBreakToken(this.wrapper,contents,this.startToken);if(newBreakToken){this.endToken=newBreakToken;this._onOverflow&&this._onOverflow(newBreakToken);}}},{key:"checkUnderflowAfterResize",value:function checkUnderflowAfterResize(contents){if(!this.listening||!this.layoutMethod){return;}var endToken=this.layoutMethod.findEndToken(this.wrapper,contents);if(endToken){this._onUnderflow&&this._onUnderflow(endToken);}}},{key:"destroy",value:function destroy(){this.removeListeners();this.element.remove();this.element=undefined;this.wrapper=undefined;}}]);return Page;}();EventEmitter(Page.prototype);/**
237 * Render a flow of text offscreen
238 * @class
239 */var ContentParser=/*#__PURE__*/function(){function ContentParser(content,cb){(0,_classCallCheck2["default"])(this,ContentParser);if(content&&content.nodeType){// handle dom
240this.dom=this.add(content);}else if(typeof content==="string"){this.dom=this.parse(content);}return this.dom;}(0,_createClass2["default"])(ContentParser,[{key:"parse",value:function parse(markup,mime){var range=document.createRange();var fragment=range.createContextualFragment(markup);this.addRefs(fragment);return fragment;}},{key:"add",value:function add(contents){// let fragment = document.createDocumentFragment();
241//
242// let children = [...contents.childNodes];
243// for (let child of children) {
244// let clone = child.cloneNode(true);
245// fragment.appendChild(clone);
246// }
247this.addRefs(contents);return contents;}},{key:"addRefs",value:function addRefs(content){var treeWalker=document.createTreeWalker(content,NodeFilter.SHOW_ELEMENT,null,false);var node=treeWalker.nextNode();while(node){if(!node.hasAttribute("data-ref")){var uuid=UUID();node.setAttribute("data-ref",uuid);}if(node.id){node.setAttribute("data-id",node.id);}// node.setAttribute("data-children", node.childNodes.length);
248// node.setAttribute("data-text", node.textContent.trim().length);
249node=treeWalker.nextNode();}}},{key:"find",value:function find(ref){return this.refs[ref];}},{key:"destroy",value:function destroy(){this.refs=undefined;this.dom=undefined;}}]);return ContentParser;}();/**
250 * Queue for handling tasks one at a time
251 * @class
252 * @param {scope} context what this will resolve to in the tasks
253 */var Queue=/*#__PURE__*/function(){function Queue(context){(0,_classCallCheck2["default"])(this,Queue);this._q=[];this.context=context;this.tick=requestAnimationFrame;this.running=false;this.paused=false;}/**
254 * Add an item to the queue
255 * @return {Promise} enqueued
256 */(0,_createClass2["default"])(Queue,[{key:"enqueue",value:function enqueue(){var deferred,promise;var queued;var task=[].shift.call(arguments);var args=arguments;// Handle single args without context
257// if(args && !Array.isArray(args)) {
258// args = [args];
259// }
260if(!task){throw new Error("No Task Provided");}if(typeof task==="function"){deferred=new defer();promise=deferred.promise;queued={"task":task,"args":args,//"context" : context,
261"deferred":deferred,"promise":promise};}else{// Task is a promise
262queued={"promise":task};}this._q.push(queued);// Wait to start queue flush
263if(this.paused==false&&!this.running){this.run();}return queued.promise;}/**
264 * Run one item
265 * @return {Promise} dequeued
266 */},{key:"dequeue",value:function dequeue(){var inwait,task,result;if(this._q.length&&!this.paused){inwait=this._q.shift();task=inwait.task;if(task){// console.log(task)
267result=task.apply(this.context,inwait.args);if(result&&typeof result["then"]==="function"){// Task is a function that returns a promise
268return result.then(function(){inwait.deferred.resolve.apply(this.context,arguments);}.bind(this),function(){inwait.deferred.reject.apply(this.context,arguments);}.bind(this));}else{// Task resolves immediately
269inwait.deferred.resolve.apply(this.context,result);return inwait.promise;}}else if(inwait.promise){// Task is a promise
270return inwait.promise;}}else{inwait=new defer();inwait.deferred.resolve();return inwait.promise;}}// Run All Immediately
271},{key:"dump",value:function dump(){while(this._q.length){this.dequeue();}}/**
272 * Run all tasks sequentially, at convince
273 * @return {Promise} all run
274 */},{key:"run",value:function run(){var _this6=this;if(!this.running){this.running=true;this.defered=new defer();}this.tick.call(window,function(){if(_this6._q.length){_this6.dequeue().then(function(){this.run();}.bind(_this6));}else{_this6.defered.resolve();_this6.running=undefined;}});// Unpause
275if(this.paused==true){this.paused=false;}return this.defered.promise;}/**
276 * Flush all, as quickly as possible
277 * @return {Promise} ran
278 */},{key:"flush",value:function flush(){if(this.running){return this.running;}if(this._q.length){this.running=this.dequeue().then(function(){this.running=undefined;return this.flush();}.bind(this));return this.running;}}/**
279 * Clear all items in wait
280 * @return {void}
281 */},{key:"clear",value:function clear(){this._q=[];}/**
282 * Get the number of tasks in the queue
283 * @return {number} tasks
284 */},{key:"length",value:function length(){return this._q.length;}/**
285 * Pause a running queue
286 * @return {void}
287 */},{key:"pause",value:function pause(){this.paused=true;}/**
288 * End the queue
289 * @return {void}
290 */},{key:"stop",value:function stop(){this._q=[];this.running=false;this.paused=true;}}]);return Queue;}();var TEMPLATE="\n<div class=\"pagedjs_page\">\n\t<div class=\"pagedjs_sheet\">\n\t\t<div class=\"pagedjs_bleed pagedjs_bleed-top\">\n\t\t\t<div class=\"pagedjs_marks-crop\"></div>\n\t\t\t<div class=\"pagedjs_marks-middle\">\n\t\t\t\t<div class=\"pagedjs_marks-cross\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_marks-crop\"></div>\n\t\t</div>\n\t\t<div class=\"pagedjs_bleed pagedjs_bleed-bottom\">\n\t\t\t<div class=\"pagedjs_marks-crop\"></div>\n\t\t\t<div class=\"pagedjs_marks-middle\">\n\t\t\t\t<div class=\"pagedjs_marks-cross\"></div>\n\t\t\t</div>\t\t<div class=\"pagedjs_marks-crop\"></div>\n\t\t</div>\n\t\t<div class=\"pagedjs_bleed pagedjs_bleed-left\">\n\t\t\t<div class=\"pagedjs_marks-crop\"></div>\n\t\t\t<div class=\"pagedjs_marks-middle\">\n\t\t\t\t<div class=\"pagedjs_marks-cross\"></div>\n\t\t\t</div>\t\t<div class=\"pagedjs_marks-crop\"></div>\n\t\t</div>\n\t\t<div class=\"pagedjs_bleed pagedjs_bleed-right\">\n\t\t\t<div class=\"pagedjs_marks-crop\"></div>\n\t\t\t<div class=\"pagedjs_marks-middle\">\n\t\t\t\t<div class=\"pagedjs_marks-cross\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_marks-crop\"></div>\n\t\t</div>\n\t\t<div class=\"pagedjs_pagebox\">\n\t\t\t<div class=\"pagedjs_margin-top-left-corner-holder\">\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-top-left-corner\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_margin-top\">\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-top-left\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-top-center\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-top-right\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_margin-top-right-corner-holder\">\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-top-right-corner\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_margin-right\">\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-right-top\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-right-middle\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-right-bottom\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_margin-left\">\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-left-top\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-left-middle\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-left-bottom\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_margin-bottom-left-corner-holder\">\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-bottom-left-corner\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_margin-bottom\">\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-bottom-left\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-bottom-center\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-bottom-right\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_margin-bottom-right-corner-holder\">\n\t\t\t\t<div class=\"pagedjs_margin pagedjs_margin-bottom-right-corner\"><div class=\"pagedjs_margin-content\"></div></div>\n\t\t\t</div>\n\t\t\t<div class=\"pagedjs_area\">\n\t\t\t\t<div class=\"pagedjs_page_content\"></div>\n\t\t\t\t<div class=\"pagedjs_footnote_area\">\n\t\t\t\t\t<div class=\"pagedjs_footnote_content pagedjs_footnote_empty\">\n\t\t\t\t\t\t<div class=\"pagedjs_footnote_inner_content\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>";/**
291 * Chop up text into flows
292 * @class
293 */var Chunker=/*#__PURE__*/function(){function Chunker(content,renderTo,options){(0,_classCallCheck2["default"])(this,Chunker);// this.preview = preview;
294this.settings=options||{};this.hooks={};this.hooks.beforeParsed=new Hook(this);this.hooks.filter=new Hook(this);this.hooks.afterParsed=new Hook(this);this.hooks.beforePageLayout=new Hook(this);this.hooks.layout=new Hook(this);this.hooks.renderNode=new Hook(this);this.hooks.layoutNode=new Hook(this);this.hooks.onOverflow=new Hook(this);this.hooks.afterOverflowRemoved=new Hook(this);this.hooks.onBreakToken=new Hook();this.hooks.afterPageLayout=new Hook(this);this.hooks.afterRendered=new Hook(this);this.pages=[];this.total=0;this.q=new Queue(this);this.stopped=false;this.rendered=false;this.content=content;this.charsPerBreak=[];this.maxChars;if(content){this.flow(content,renderTo);}}(0,_createClass2["default"])(Chunker,[{key:"setup",value:function setup(renderTo){this.pagesArea=document.createElement("div");this.pagesArea.classList.add("pagedjs_pages");if(renderTo){renderTo.appendChild(this.pagesArea);}else{document.querySelector("body").appendChild(this.pagesArea);}this.pageTemplate=document.createElement("template");this.pageTemplate.innerHTML=TEMPLATE;}},{key:"flow",value:function(){var _flow=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee7(content,renderTo){var parsed,rendered;return _regenerator["default"].wrap(function _callee7$(_context10){while(1){switch(_context10.prev=_context10.next){case 0:_context10.next=2;return this.hooks.beforeParsed.trigger(content,this);case 2:parsed=new ContentParser(content);this.hooks.filter.triggerSync(parsed);this.source=parsed;this.breakToken=undefined;if(this.pagesArea&&this.pageTemplate){this.q.clear();this.removePages();}else{this.setup(renderTo);}this.emit("rendering",parsed);_context10.next=10;return this.hooks.afterParsed.trigger(parsed,this);case 10:_context10.next=12;return this.loadFonts();case 12:_context10.next=14;return this.render(parsed,this.breakToken);case 14:rendered=_context10.sent;case 15:if(!rendered.canceled){_context10.next=22;break;}this.start();_context10.next=19;return this.render(parsed,this.breakToken);case 19:rendered=_context10.sent;_context10.next=15;break;case 22:this.rendered=true;this.pagesArea.style.setProperty("--pagedjs-page-count",this.total);_context10.next=26;return this.hooks.afterRendered.trigger(this.pages,this);case 26:this.emit("rendered",this.pages);return _context10.abrupt("return",this);case 28:case"end":return _context10.stop();}}},_callee7,this);}));function flow(_x12,_x13){return _flow.apply(this,arguments);}return flow;}()// oversetPages() {
295// let overset = [];
296// for (let i = 0; i < this.pages.length; i++) {
297// let page = this.pages[i];
298// if (page.overset) {
299// overset.push(page);
300// // page.overset = false;
301// }
302// }
303// return overset;
304// }
305//
306// async handleOverset(parsed) {
307// let overset = this.oversetPages();
308// if (overset.length) {
309// console.log("overset", overset);
310// let index = this.pages.indexOf(overset[0]) + 1;
311// console.log("INDEX", index);
312//
313// // Remove pages
314// // this.removePages(index);
315//
316// // await this.render(parsed, overset[0].overset);
317//
318// // return this.handleOverset(parsed);
319// }
320// }
321},{key:"render",value:function(){var _render=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee8(parsed,startAt){var _this7=this;var renderer,done,result;return _regenerator["default"].wrap(function _callee8$(_context11){while(1){switch(_context11.prev=_context11.next){case 0:renderer=this.layout(parsed,startAt);done=false;case 2:if(done){_context11.next=9;break;}_context11.next=5;return this.q.enqueue(function(){return _this7.renderAsync(renderer);});case 5:result=_context11.sent;done=result.done;_context11.next=2;break;case 9:return _context11.abrupt("return",result);case 10:case"end":return _context11.stop();}}},_callee8,this);}));function render(_x14,_x15){return _render.apply(this,arguments);}return render;}()},{key:"start",value:function start(){this.rendered=false;this.stopped=false;}},{key:"stop",value:function stop(){this.stopped=true;// this.q.clear();
322}},{key:"renderOnIdle",value:function renderOnIdle(renderer){var _this8=this;return new Promise(function(resolve){requestIdleCallback(/*#__PURE__*/(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee9(){var result;return _regenerator["default"].wrap(function _callee9$(_context12){while(1){switch(_context12.prev=_context12.next){case 0:if(!_this8.stopped){_context12.next=2;break;}return _context12.abrupt("return",resolve({done:true,canceled:true}));case 2:_context12.next=4;return renderer.next();case 4:result=_context12.sent;if(_this8.stopped){resolve({done:true,canceled:true});}else{resolve(result);}case 6:case"end":return _context12.stop();}}},_callee9);})));});}},{key:"renderAsync",value:function(){var _renderAsync=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee10(renderer){var result;return _regenerator["default"].wrap(function _callee10$(_context13){while(1){switch(_context13.prev=_context13.next){case 0:if(!this.stopped){_context13.next=2;break;}return _context13.abrupt("return",{done:true,canceled:true});case 2:_context13.next=4;return renderer.next();case 4:result=_context13.sent;if(!this.stopped){_context13.next=9;break;}return _context13.abrupt("return",{done:true,canceled:true});case 9:return _context13.abrupt("return",result);case 10:case"end":return _context13.stop();}}},_callee10,this);}));function renderAsync(_x16){return _renderAsync.apply(this,arguments);}return renderAsync;}()},{key:"handleBreaks",value:function(){var _handleBreaks=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee11(node,force){var currentPage,currentPosition,currentSide,previousBreakAfter,breakBefore,page;return _regenerator["default"].wrap(function _callee11$(_context14){while(1){switch(_context14.prev=_context14.next){case 0:currentPage=this.total+1;currentPosition=currentPage%2===0?"left":"right";// TODO: Recto and Verso should reverse for rtl languages
323currentSide=currentPage%2===0?"verso":"recto";if(!(currentPage===1)){_context14.next=5;break;}return _context14.abrupt("return");case 5:if(node&&typeof node.dataset!=="undefined"&&typeof node.dataset.previousBreakAfter!=="undefined"){previousBreakAfter=node.dataset.previousBreakAfter;}if(node&&typeof node.dataset!=="undefined"&&typeof node.dataset.breakBefore!=="undefined"){breakBefore=node.dataset.breakBefore;}if(force){page=this.addPage(true);}else if(previousBreakAfter&&(previousBreakAfter==="left"||previousBreakAfter==="right")&&previousBreakAfter!==currentPosition){page=this.addPage(true);}else if(previousBreakAfter&&(previousBreakAfter==="verso"||previousBreakAfter==="recto")&&previousBreakAfter!==currentSide){page=this.addPage(true);}else if(breakBefore&&(breakBefore==="left"||breakBefore==="right")&&breakBefore!==currentPosition){page=this.addPage(true);}else if(breakBefore&&(breakBefore==="verso"||breakBefore==="recto")&&breakBefore!==currentSide){page=this.addPage(true);}if(!page){_context14.next=15;break;}_context14.next=11;return this.hooks.beforePageLayout.trigger(page,undefined,undefined,this);case 11:this.emit("page",page);// await this.hooks.layout.trigger(page.element, page, undefined, this);
324_context14.next=14;return this.hooks.afterPageLayout.trigger(page.element,page,undefined,this);case 14:this.emit("renderedPage",page);case 15:case"end":return _context14.stop();}}},_callee11,this);}));function handleBreaks(_x17,_x18){return _handleBreaks.apply(this,arguments);}return handleBreaks;}()},{key:"layout",value:function layout(content,startAt){var _this=this;return(0,_wrapAsyncGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee12(){var breakToken,page;return _regenerator["default"].wrap(function _callee12$(_context15){while(1){switch(_context15.prev=_context15.next){case 0:breakToken=startAt||false;case 1:if(!(breakToken!==undefined&&true)){_context15.next=24;break;}if(!(breakToken&&breakToken.node)){_context15.next=7;break;}_context15.next=5;return(0,_awaitAsyncGenerator2["default"])(_this.handleBreaks(breakToken.node));case 5:_context15.next=9;break;case 7:_context15.next=9;return(0,_awaitAsyncGenerator2["default"])(_this.handleBreaks(content.firstChild));case 9:page=_this.addPage();_context15.next=12;return(0,_awaitAsyncGenerator2["default"])(_this.hooks.beforePageLayout.trigger(page,content,breakToken,_this));case 12:_this.emit("page",page);// Layout content in the page, starting from the breakToken
325_context15.next=15;return(0,_awaitAsyncGenerator2["default"])(page.layout(content,breakToken,_this.maxChars));case 15:breakToken=_context15.sent;_context15.next=18;return(0,_awaitAsyncGenerator2["default"])(_this.hooks.afterPageLayout.trigger(page.element,page,breakToken,_this));case 18:_this.emit("renderedPage",page);_this.recoredCharLength(page.wrapper.textContent.length);_context15.next=22;return breakToken;case 22:_context15.next=1;break;case 24:case"end":return _context15.stop();}}},_callee12);}))();}},{key:"recoredCharLength",value:function recoredCharLength(length){if(length===0){return;}this.charsPerBreak.push(length);// Keep the length of the last few breaks
326if(this.charsPerBreak.length>4){this.charsPerBreak.shift();}this.maxChars=this.charsPerBreak.reduce(function(a,b){return a+b;},0)/this.charsPerBreak.length;}},{key:"removePages",value:function removePages(){var fromIndex=arguments.length>0&&arguments[0]!==undefined?arguments[0]:0;if(fromIndex>=this.pages.length){return;}// Remove pages
327for(var _i3=fromIndex;_i3<this.pages.length;_i3++){this.pages[_i3].destroy();}if(fromIndex>0){this.pages.splice(fromIndex);}else{this.pages=[];}this.total=this.pages.length;}},{key:"addPage",value:function addPage(blank){var _this9=this;var lastPage=this.pages[this.pages.length-1];// Create a new page from the template
328var page=new Page(this.pagesArea,this.pageTemplate,blank,this.hooks,this.settings);this.pages.push(page);// Create the pages
329page.create(undefined,lastPage&&lastPage.element);page.index(this.total);if(!blank){// Listen for page overflow
330page.onOverflow(function(overflowToken){console.warn("overflow on",page.id,overflowToken);// Only reflow while rendering
331if(_this9.rendered){return;}var index=_this9.pages.indexOf(page)+1;// Stop the rendering
332_this9.stop();// Set the breakToken to resume at
333_this9.breakToken=overflowToken;// Remove pages
334_this9.removePages(index);if(_this9.rendered===true){_this9.rendered=false;_this9.q.enqueue(/*#__PURE__*/(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee13(){return _regenerator["default"].wrap(function _callee13$(_context16){while(1){switch(_context16.prev=_context16.next){case 0:_this9.start();_context16.next=3;return _this9.render(_this9.source,_this9.breakToken);case 3:_this9.rendered=true;case 4:case"end":return _context16.stop();}}},_callee13);})));}});page.onUnderflow(function(overflowToken){// console.log("underflow on", page.id, overflowToken);
335// page.append(this.source, overflowToken);
336});}this.total=this.pages.length;return page;}/*
337 insertPage(index, blank) {
338 let lastPage = this.pages[index];
339 // Create a new page from the template
340 let page = new Page(this.pagesArea, this.pageTemplate, blank, this.hooks);
341
342 let total = this.pages.splice(index, 0, page);
343
344 // Create the pages
345 page.create(undefined, lastPage && lastPage.element);
346
347 page.index(index + 1);
348
349 for (let i = index + 2; i < this.pages.length; i++) {
350 this.pages[i].index(i);
351 }
352
353 if (!blank) {
354 // Listen for page overflow
355 page.onOverflow((overflowToken) => {
356 if (total < this.pages.length) {
357 this.pages[total].layout(this.source, overflowToken);
358 } else {
359 let newPage = this.addPage();
360 newPage.layout(this.source, overflowToken);
361 }
362 });
363
364 page.onUnderflow(() => {
365 // console.log("underflow on", page.id);
366 });
367 }
368
369 this.total += 1;
370
371 return page;
372 }
373 */},{key:"clonePage",value:function(){var _clonePage=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee14(originalPage){var lastPage,page,_iterator2,_step2,className;return _regenerator["default"].wrap(function _callee14$(_context17){while(1){switch(_context17.prev=_context17.next){case 0:lastPage=this.pages[this.pages.length-1];page=new Page(this.pagesArea,this.pageTemplate,false,this.hooks);this.pages.push(page);// Create the pages
374page.create(undefined,lastPage&&lastPage.element);page.index(this.total);_context17.next=7;return this.hooks.beforePageLayout.trigger(page,undefined,undefined,this);case 7:this.emit("page",page);_iterator2=_createForOfIteratorHelper(originalPage.element.classList);try{for(_iterator2.s();!(_step2=_iterator2.n()).done;){className=_step2.value;if(className!=="pagedjs_left_page"&&className!=="pagedjs_right_page"){page.element.classList.add(className);}}}catch(err){_iterator2.e(err);}finally{_iterator2.f();}_context17.next=12;return this.hooks.afterPageLayout.trigger(page.element,page,undefined,this);case 12:this.emit("renderedPage",page);case 13:case"end":return _context17.stop();}}},_callee14,this);}));function clonePage(_x19){return _clonePage.apply(this,arguments);}return clonePage;}()},{key:"loadFonts",value:function loadFonts(){var fontPromises=[];(document.fonts||[]).forEach(function(fontFace){if(fontFace.status!=="loaded"){var fontLoaded=fontFace.load().then(function(r){return fontFace.family;},function(r){console.warn("Failed to preload font-family:",fontFace.family);return fontFace.family;});fontPromises.push(fontLoaded);}});return Promise.all(fontPromises)["catch"](function(err){console.warn(err);});}},{key:"destroy",value:function destroy(){this.pagesArea.remove();this.pageTemplate.remove();}}]);return Chunker;}();EventEmitter(Chunker.prototype);var syntax={exports:{}};var create$5={};//
375// list
376// ┌──────┐
377// ┌──────────────┼─head │
378// │ │ tail─┼──────────────┐
379// │ └──────┘ │
380// ▼ ▼
381// item item item item
382// ┌──────┐ ┌──────┐ ┌──────┐ ┌──────┐
383// null ◀──┼─prev │◀───┼─prev │◀───┼─prev │◀───┼─prev │
384// │ next─┼───▶│ next─┼───▶│ next─┼───▶│ next─┼──▶ null
385// ├──────┤ ├──────┤ ├──────┤ ├──────┤
386// │ data │ │ data │ │ data │ │ data │
387// └──────┘ └──────┘ └──────┘ └──────┘
388//
389function createItem(data){return{prev:null,next:null,data:data};}function allocateCursor(node,prev,next){var cursor;if(cursors!==null){cursor=cursors;cursors=cursors.cursor;cursor.prev=prev;cursor.next=next;cursor.cursor=node.cursor;}else{cursor={prev:prev,next:next,cursor:node.cursor};}node.cursor=cursor;return cursor;}function releaseCursor(node){var cursor=node.cursor;node.cursor=cursor.cursor;cursor.prev=null;cursor.next=null;cursor.cursor=cursors;cursors=cursor;}var cursors=null;var List$6=function List$6(){this.cursor=null;this.head=null;this.tail=null;};List$6.createItem=createItem;List$6.prototype.createItem=createItem;List$6.prototype.updateCursors=function(prevOld,prevNew,nextOld,nextNew){var cursor=this.cursor;while(cursor!==null){if(cursor.prev===prevOld){cursor.prev=prevNew;}if(cursor.next===nextOld){cursor.next=nextNew;}cursor=cursor.cursor;}};List$6.prototype.getSize=function(){var size=0;var cursor=this.head;while(cursor){size++;cursor=cursor.next;}return size;};List$6.prototype.fromArray=function(array){var cursor=null;this.head=null;for(var i=0;i<array.length;i++){var item=createItem(array[i]);if(cursor!==null){cursor.next=item;}else{this.head=item;}item.prev=cursor;cursor=item;}this.tail=cursor;return this;};List$6.prototype.toArray=function(){var cursor=this.head;var result=[];while(cursor){result.push(cursor.data);cursor=cursor.next;}return result;};List$6.prototype.toJSON=List$6.prototype.toArray;List$6.prototype.isEmpty=function(){return this.head===null;};List$6.prototype.first=function(){return this.head&&this.head.data;};List$6.prototype.last=function(){return this.tail&&this.tail.data;};List$6.prototype.each=function(fn,context){var item;if(context===undefined){context=this;}// push cursor
390var cursor=allocateCursor(this,null,this.head);while(cursor.next!==null){item=cursor.next;cursor.next=item.next;fn.call(context,item.data,item,this);}// pop cursor
391releaseCursor(this);};List$6.prototype.forEach=List$6.prototype.each;List$6.prototype.eachRight=function(fn,context){var item;if(context===undefined){context=this;}// push cursor
392var cursor=allocateCursor(this,this.tail,null);while(cursor.prev!==null){item=cursor.prev;cursor.prev=item.prev;fn.call(context,item.data,item,this);}// pop cursor
393releaseCursor(this);};List$6.prototype.forEachRight=List$6.prototype.eachRight;List$6.prototype.reduce=function(fn,initialValue,context){var item;if(context===undefined){context=this;}// push cursor
394var cursor=allocateCursor(this,null,this.head);var acc=initialValue;while(cursor.next!==null){item=cursor.next;cursor.next=item.next;acc=fn.call(context,acc,item.data,item,this);}// pop cursor
395releaseCursor(this);return acc;};List$6.prototype.reduceRight=function(fn,initialValue,context){var item;if(context===undefined){context=this;}// push cursor
396var cursor=allocateCursor(this,this.tail,null);var acc=initialValue;while(cursor.prev!==null){item=cursor.prev;cursor.prev=item.prev;acc=fn.call(context,acc,item.data,item,this);}// pop cursor
397releaseCursor(this);return acc;};List$6.prototype.nextUntil=function(start,fn,context){if(start===null){return;}var item;if(context===undefined){context=this;}// push cursor
398var cursor=allocateCursor(this,null,start);while(cursor.next!==null){item=cursor.next;cursor.next=item.next;if(fn.call(context,item.data,item,this)){break;}}// pop cursor
399releaseCursor(this);};List$6.prototype.prevUntil=function(start,fn,context){if(start===null){return;}var item;if(context===undefined){context=this;}// push cursor
400var cursor=allocateCursor(this,start,null);while(cursor.prev!==null){item=cursor.prev;cursor.prev=item.prev;if(fn.call(context,item.data,item,this)){break;}}// pop cursor
401releaseCursor(this);};List$6.prototype.some=function(fn,context){var cursor=this.head;if(context===undefined){context=this;}while(cursor!==null){if(fn.call(context,cursor.data,cursor,this)){return true;}cursor=cursor.next;}return false;};List$6.prototype.map=function(fn,context){var result=new List$6();var cursor=this.head;if(context===undefined){context=this;}while(cursor!==null){result.appendData(fn.call(context,cursor.data,cursor,this));cursor=cursor.next;}return result;};List$6.prototype.filter=function(fn,context){var result=new List$6();var cursor=this.head;if(context===undefined){context=this;}while(cursor!==null){if(fn.call(context,cursor.data,cursor,this)){result.appendData(cursor.data);}cursor=cursor.next;}return result;};List$6.prototype.clear=function(){this.head=null;this.tail=null;};List$6.prototype.copy=function(){var result=new List$6();var cursor=this.head;while(cursor!==null){result.insert(createItem(cursor.data));cursor=cursor.next;}return result;};List$6.prototype.prepend=function(item){// head
402// ^
403// item
404this.updateCursors(null,item,this.head,item);// insert to the beginning of the list
405if(this.head!==null){// new item <- first item
406this.head.prev=item;// new item -> first item
407item.next=this.head;}else{// if list has no head, then it also has no tail
408// in this case tail points to the new item
409this.tail=item;}// head always points to new item
410this.head=item;return this;};List$6.prototype.prependData=function(data){return this.prepend(createItem(data));};List$6.prototype.append=function(item){return this.insert(item);};List$6.prototype.appendData=function(data){return this.insert(createItem(data));};List$6.prototype.insert=function(item,before){if(before!==undefined&&before!==null){// prev before
411// ^
412// item
413this.updateCursors(before.prev,item,before,item);if(before.prev===null){// insert to the beginning of list
414if(this.head!==before){throw new Error('before doesn\'t belong to list');}// since head points to before therefore list doesn't empty
415// no need to check tail
416this.head=item;before.prev=item;item.next=before;this.updateCursors(null,item);}else{// insert between two items
417before.prev.next=item;item.prev=before.prev;before.prev=item;item.next=before;}}else{// tail
418// ^
419// item
420this.updateCursors(this.tail,item,null,item);// insert to the ending of the list
421if(this.tail!==null){// last item -> new item
422this.tail.next=item;// last item <- new item
423item.prev=this.tail;}else{// if list has no tail, then it also has no head
424// in this case head points to new item
425this.head=item;}// tail always points to new item
426this.tail=item;}return this;};List$6.prototype.insertData=function(data,before){return this.insert(createItem(data),before);};List$6.prototype.remove=function(item){// item
427// ^
428// prev next
429this.updateCursors(item,item.prev,item,item.next);if(item.prev!==null){item.prev.next=item.next;}else{if(this.head!==item){throw new Error('item doesn\'t belong to list');}this.head=item.next;}if(item.next!==null){item.next.prev=item.prev;}else{if(this.tail!==item){throw new Error('item doesn\'t belong to list');}this.tail=item.prev;}item.prev=null;item.next=null;return item;};List$6.prototype.push=function(data){this.insert(createItem(data));};List$6.prototype.pop=function(){if(this.tail!==null){return this.remove(this.tail);}};List$6.prototype.unshift=function(data){this.prepend(createItem(data));};List$6.prototype.shift=function(){if(this.head!==null){return this.remove(this.head);}};List$6.prototype.prependList=function(list){return this.insertList(list,this.head);};List$6.prototype.appendList=function(list){return this.insertList(list);};List$6.prototype.insertList=function(list,before){// ignore empty lists
430if(list.head===null){return this;}if(before!==undefined&&before!==null){this.updateCursors(before.prev,list.tail,before,list.head);// insert in the middle of dist list
431if(before.prev!==null){// before.prev <-> list.head
432before.prev.next=list.head;list.head.prev=before.prev;}else{this.head=list.head;}before.prev=list.tail;list.tail.next=before;}else{this.updateCursors(this.tail,list.tail,null,list.head);// insert to end of the list
433if(this.tail!==null){// if destination list has a tail, then it also has a head,
434// but head doesn't change
435// dest tail -> source head
436this.tail.next=list.head;// dest tail <- source head
437list.head.prev=this.tail;}else{// if list has no a tail, then it also has no a head
438// in this case points head to new item
439this.head=list.head;}// tail always start point to new item
440this.tail=list.tail;}list.head=null;list.tail=null;return this;};List$6.prototype.replace=function(oldItem,newItemOrList){if('head'in newItemOrList){this.insertList(newItemOrList,oldItem);}else{this.insert(newItemOrList,oldItem);}this.remove(oldItem);};var List_1=List$6;var createCustomError$3=function createCustomError(name,message){// use Object.create(), because some VMs prevent setting line/column otherwise
441// (iOS Safari 10 even throws an exception)
442var error=Object.create(SyntaxError.prototype);var errorStack=new Error();error.name=name;error.message=message;Object.defineProperty(error,'stack',{get:function get(){return(errorStack.stack||'').replace(/^(.+\n){1,3}/,name+': '+message+'\n');}});return error;};var createCustomError$2=createCustomError$3;var MAX_LINE_LENGTH=100;var OFFSET_CORRECTION=60;var TAB_REPLACEMENT=' ';function sourceFragment(error,extraLines){function processLines(start,end){return lines.slice(start,end).map(function(line,idx){var num=String(start+idx+1);while(num.length<maxNumLength){num=' '+num;}return num+' |'+line;}).join('\n');}var lines=error.source.split(/\r\n?|\n|\f/);var line=error.line;var column=error.column;var startLine=Math.max(1,line-extraLines)-1;var endLine=Math.min(line+extraLines,lines.length+1);var maxNumLength=Math.max(4,String(endLine).length)+1;var cutLeft=0;// column correction according to replaced tab before column
443column+=(TAB_REPLACEMENT.length-1)*(lines[line-1].substr(0,column-1).match(/\t/g)||[]).length;if(column>MAX_LINE_LENGTH){cutLeft=column-OFFSET_CORRECTION+3;column=OFFSET_CORRECTION-2;}for(var i=startLine;i<=endLine;i++){if(i>=0&&i<lines.length){lines[i]=lines[i].replace(/\t/g,TAB_REPLACEMENT);lines[i]=(cutLeft>0&&lines[i].length>cutLeft?"\u2026":'')+lines[i].substr(cutLeft,MAX_LINE_LENGTH-2)+(lines[i].length>cutLeft+MAX_LINE_LENGTH-1?"\u2026":'');}}return[processLines(startLine,line),new Array(column+maxNumLength+2).join('-')+'^',processLines(line,endLine)].filter(Boolean).join('\n');}var SyntaxError$4=function SyntaxError$4(message,source,offset,line,column){var error=createCustomError$2('SyntaxError',message);error.source=source;error.offset=offset;error.line=line;error.column=column;error.sourceFragment=function(extraLines){return sourceFragment(error,isNaN(extraLines)?0:extraLines);};Object.defineProperty(error,'formattedMessage',{get:function get(){return'Parse error: '+error.message+'\n'+sourceFragment(error,2);}});// for backward capability
444error.parseError={offset:offset,line:line,column:column};return error;};var _SyntaxError$1=SyntaxError$4;// CSS Syntax Module Level 3
445// https://www.w3.org/TR/css-syntax-3/
446var TYPE$H={EOF:0,// <EOF-token>
447Ident:1,// <ident-token>
448Function:2,// <function-token>
449AtKeyword:3,// <at-keyword-token>
450Hash:4,// <hash-token>
451String:5,// <string-token>
452BadString:6,// <bad-string-token>
453Url:7,// <url-token>
454BadUrl:8,// <bad-url-token>
455Delim:9,// <delim-token>
456Number:10,// <number-token>
457Percentage:11,// <percentage-token>
458Dimension:12,// <dimension-token>
459WhiteSpace:13,// <whitespace-token>
460CDO:14,// <CDO-token>
461CDC:15,// <CDC-token>
462Colon:16,// <colon-token> :
463Semicolon:17,// <semicolon-token> ;
464Comma:18,// <comma-token> ,
465LeftSquareBracket:19,// <[-token>
466RightSquareBracket:20,// <]-token>
467LeftParenthesis:21,// <(-token>
468RightParenthesis:22,// <)-token>
469LeftCurlyBracket:23,// <{-token>
470RightCurlyBracket:24,// <}-token>
471Comment:25};var NAME$3=Object.keys(TYPE$H).reduce(function(result,key){result[TYPE$H[key]]=key;return result;},{});var _const={TYPE:TYPE$H,NAME:NAME$3};var EOF$1=0;// https://drafts.csswg.org/css-syntax-3/
472// § 4.2. Definitions
473// digit
474// A code point between U+0030 DIGIT ZERO (0) and U+0039 DIGIT NINE (9).
475function isDigit$5(code){return code>=0x0030&&code<=0x0039;}// hex digit
476// A digit, or a code point between U+0041 LATIN CAPITAL LETTER A (A) and U+0046 LATIN CAPITAL LETTER F (F),
477// or a code point between U+0061 LATIN SMALL LETTER A (a) and U+0066 LATIN SMALL LETTER F (f).
478function isHexDigit$4(code){return isDigit$5(code)||// 0 .. 9
479code>=0x0041&&code<=0x0046||// A .. F
480code>=0x0061&&code<=0x0066// a .. f
481;}// uppercase letter
482// A code point between U+0041 LATIN CAPITAL LETTER A (A) and U+005A LATIN CAPITAL LETTER Z (Z).
483function isUppercaseLetter$1(code){return code>=0x0041&&code<=0x005A;}// lowercase letter
484// A code point between U+0061 LATIN SMALL LETTER A (a) and U+007A LATIN SMALL LETTER Z (z).
485function isLowercaseLetter(code){return code>=0x0061&&code<=0x007A;}// letter
486// An uppercase letter or a lowercase letter.
487function isLetter(code){return isUppercaseLetter$1(code)||isLowercaseLetter(code);}// non-ASCII code point
488// A code point with a value equal to or greater than U+0080 <control>.
489function isNonAscii(code){return code>=0x0080;}// name-start code point
490// A letter, a non-ASCII code point, or U+005F LOW LINE (_).
491function isNameStart(code){return isLetter(code)||isNonAscii(code)||code===0x005F;}// name code point
492// A name-start code point, a digit, or U+002D HYPHEN-MINUS (-).
493function isName$2(code){return isNameStart(code)||isDigit$5(code)||code===0x002D;}// non-printable code point
494// A code point between U+0000 NULL and U+0008 BACKSPACE, or U+000B LINE TABULATION,
495// or a code point between U+000E SHIFT OUT and U+001F INFORMATION SEPARATOR ONE, or U+007F DELETE.
496function isNonPrintable(code){return code>=0x0000&&code<=0x0008||code===0x000B||code>=0x000E&&code<=0x001F||code===0x007F;}// newline
497// U+000A LINE FEED. Note that U+000D CARRIAGE RETURN and U+000C FORM FEED are not included in this definition,
498// as they are converted to U+000A LINE FEED during preprocessing.
499// TODO: we doesn't do a preprocessing, so check a code point for U+000D CARRIAGE RETURN and U+000C FORM FEED
500function isNewline$1(code){return code===0x000A||code===0x000D||code===0x000C;}// whitespace
501// A newline, U+0009 CHARACTER TABULATION, or U+0020 SPACE.
502function isWhiteSpace$2(code){return isNewline$1(code)||code===0x0020||code===0x0009;}// § 4.3.8. Check if two code points are a valid escape
503function isValidEscape$2(first,second){// If the first code point is not U+005C REVERSE SOLIDUS (\), return false.
504if(first!==0x005C){return false;}// Otherwise, if the second code point is a newline or EOF, return false.
505if(isNewline$1(second)||second===EOF$1){return false;}// Otherwise, return true.
506return true;}// § 4.3.9. Check if three code points would start an identifier
507function isIdentifierStart$2(first,second,third){// Look at the first code point:
508// U+002D HYPHEN-MINUS
509if(first===0x002D){// If the second code point is a name-start code point or a U+002D HYPHEN-MINUS,
510// or the second and third code points are a valid escape, return true. Otherwise, return false.
511return isNameStart(second)||second===0x002D||isValidEscape$2(second,third);}// name-start code point
512if(isNameStart(first)){// Return true.
513return true;}// U+005C REVERSE SOLIDUS (\)
514if(first===0x005C){// If the first and second code points are a valid escape, return true. Otherwise, return false.
515return isValidEscape$2(first,second);}// anything else
516// Return false.
517return false;}// § 4.3.10. Check if three code points would start a number
518function isNumberStart$1(first,second,third){// Look at the first code point:
519// U+002B PLUS SIGN (+)
520// U+002D HYPHEN-MINUS (-)
521if(first===0x002B||first===0x002D){// If the second code point is a digit, return true.
522if(isDigit$5(second)){return 2;}// Otherwise, if the second code point is a U+002E FULL STOP (.)
523// and the third code point is a digit, return true.
524// Otherwise, return false.
525return second===0x002E&&isDigit$5(third)?3:0;}// U+002E FULL STOP (.)
526if(first===0x002E){// If the second code point is a digit, return true. Otherwise, return false.
527return isDigit$5(second)?2:0;}// digit
528if(isDigit$5(first)){// Return true.
529return 1;}// anything else
530// Return false.
531return 0;}//
532// Misc
533//
534// detect BOM (https://en.wikipedia.org/wiki/Byte_order_mark)
535function isBOM$2(code){// UTF-16BE
536if(code===0xFEFF){return 1;}// UTF-16LE
537if(code===0xFFFE){return 1;}return 0;}// Fast code category
538//
539// https://drafts.csswg.org/css-syntax/#tokenizer-definitions
540// > non-ASCII code point
541// > A code point with a value equal to or greater than U+0080 <control>
542// > name-start code point
543// > A letter, a non-ASCII code point, or U+005F LOW LINE (_).
544// > name code point
545// > A name-start code point, a digit, or U+002D HYPHEN-MINUS (-)
546// That means only ASCII code points has a special meaning and we define a maps for 0..127 codes only
547var CATEGORY=new Array(0x80);charCodeCategory$1.Eof=0x80;charCodeCategory$1.WhiteSpace=0x82;charCodeCategory$1.Digit=0x83;charCodeCategory$1.NameStart=0x84;charCodeCategory$1.NonPrintable=0x85;for(var i=0;i<CATEGORY.length;i++){switch(true){case isWhiteSpace$2(i):CATEGORY[i]=charCodeCategory$1.WhiteSpace;break;case isDigit$5(i):CATEGORY[i]=charCodeCategory$1.Digit;break;case isNameStart(i):CATEGORY[i]=charCodeCategory$1.NameStart;break;case isNonPrintable(i):CATEGORY[i]=charCodeCategory$1.NonPrintable;break;default:CATEGORY[i]=i||charCodeCategory$1.Eof;}}function charCodeCategory$1(code){return code<0x80?CATEGORY[code]:charCodeCategory$1.NameStart;}var charCodeDefinitions$1={isDigit:isDigit$5,isHexDigit:isHexDigit$4,isUppercaseLetter:isUppercaseLetter$1,isLowercaseLetter:isLowercaseLetter,isLetter:isLetter,isNonAscii:isNonAscii,isNameStart:isNameStart,isName:isName$2,isNonPrintable:isNonPrintable,isNewline:isNewline$1,isWhiteSpace:isWhiteSpace$2,isValidEscape:isValidEscape$2,isIdentifierStart:isIdentifierStart$2,isNumberStart:isNumberStart$1,isBOM:isBOM$2,charCodeCategory:charCodeCategory$1};var charCodeDef=charCodeDefinitions$1;var isDigit$4=charCodeDef.isDigit;var isHexDigit$3=charCodeDef.isHexDigit;var isUppercaseLetter=charCodeDef.isUppercaseLetter;var isName$1=charCodeDef.isName;var isWhiteSpace$1=charCodeDef.isWhiteSpace;var isValidEscape$1=charCodeDef.isValidEscape;function getCharCode(source,offset){return offset<source.length?source.charCodeAt(offset):0;}function getNewlineLength$1(source,offset,code){if(code===13/* \r */&&getCharCode(source,offset+1)===10/* \n */){return 2;}return 1;}function cmpChar$5(testStr,offset,referenceCode){var code=testStr.charCodeAt(offset);// code.toLowerCase() for A..Z
548if(isUppercaseLetter(code)){code=code|32;}return code===referenceCode;}function cmpStr$6(testStr,start,end,referenceStr){if(end-start!==referenceStr.length){return false;}if(start<0||end>testStr.length){return false;}for(var i=start;i<end;i++){var testCode=testStr.charCodeAt(i);var referenceCode=referenceStr.charCodeAt(i-start);// testCode.toLowerCase() for A..Z
549if(isUppercaseLetter(testCode)){testCode=testCode|32;}if(testCode!==referenceCode){return false;}}return true;}function findWhiteSpaceStart$1(source,offset){for(;offset>=0;offset--){if(!isWhiteSpace$1(source.charCodeAt(offset))){break;}}return offset+1;}function findWhiteSpaceEnd$1(source,offset){for(;offset<source.length;offset++){if(!isWhiteSpace$1(source.charCodeAt(offset))){break;}}return offset;}function findDecimalNumberEnd(source,offset){for(;offset<source.length;offset++){if(!isDigit$4(source.charCodeAt(offset))){break;}}return offset;}// § 4.3.7. Consume an escaped code point
550function consumeEscaped$1(source,offset){// It assumes that the U+005C REVERSE SOLIDUS (\) has already been consumed and
551// that the next input code point has already been verified to be part of a valid escape.
552offset+=2;// hex digit
553if(isHexDigit$3(getCharCode(source,offset-1))){// Consume as many hex digits as possible, but no more than 5.
554// Note that this means 1-6 hex digits have been consumed in total.
555for(var maxOffset=Math.min(source.length,offset+5);offset<maxOffset;offset++){if(!isHexDigit$3(getCharCode(source,offset))){break;}}// If the next input code point is whitespace, consume it as well.
556var code=getCharCode(source,offset);if(isWhiteSpace$1(code)){offset+=getNewlineLength$1(source,offset,code);}}return offset;}// §4.3.11. Consume a name
557// Note: This algorithm does not do the verification of the first few code points that are necessary
558// to ensure the returned code points would constitute an <ident-token>. If that is the intended use,
559// ensure that the stream starts with an identifier before calling this algorithm.
560function consumeName$1(source,offset){// Let result initially be an empty string.
561// Repeatedly consume the next input code point from the stream:
562for(;offset<source.length;offset++){var code=source.charCodeAt(offset);// name code point
563if(isName$1(code)){// Append the code point to result.
564continue;}// the stream starts with a valid escape
565if(isValidEscape$1(code,getCharCode(source,offset+1))){// Consume an escaped code point. Append the returned code point to result.
566offset=consumeEscaped$1(source,offset)-1;continue;}// anything else
567// Reconsume the current input code point. Return result.
568break;}return offset;}// §4.3.12. Consume a number
569function consumeNumber$5(source,offset){var code=source.charCodeAt(offset);// 2. If the next input code point is U+002B PLUS SIGN (+) or U+002D HYPHEN-MINUS (-),
570// consume it and append it to repr.
571if(code===0x002B||code===0x002D){code=source.charCodeAt(offset+=1);}// 3. While the next input code point is a digit, consume it and append it to repr.
572if(isDigit$4(code)){offset=findDecimalNumberEnd(source,offset+1);code=source.charCodeAt(offset);}// 4. If the next 2 input code points are U+002E FULL STOP (.) followed by a digit, then:
573if(code===0x002E&&isDigit$4(source.charCodeAt(offset+1))){// 4.1 Consume them.
574// 4.2 Append them to repr.
575code=source.charCodeAt(offset+=2);// 4.3 Set type to "number".
576// TODO
577// 4.4 While the next input code point is a digit, consume it and append it to repr.
578offset=findDecimalNumberEnd(source,offset);}// 5. If the next 2 or 3 input code points are U+0045 LATIN CAPITAL LETTER E (E)
579// or U+0065 LATIN SMALL LETTER E (e), ... , followed by a digit, then:
580if(cmpChar$5(source,offset,101/* e */)){var sign=0;code=source.charCodeAt(offset+1);// ... optionally followed by U+002D HYPHEN-MINUS (-) or U+002B PLUS SIGN (+) ...
581if(code===0x002D||code===0x002B){sign=1;code=source.charCodeAt(offset+2);}// ... followed by a digit
582if(isDigit$4(code)){// 5.1 Consume them.
583// 5.2 Append them to repr.
584// 5.3 Set type to "number".
585// TODO
586// 5.4 While the next input code point is a digit, consume it and append it to repr.
587offset=findDecimalNumberEnd(source,offset+1+sign+1);}}return offset;}// § 4.3.14. Consume the remnants of a bad url
588// ... its sole use is to consume enough of the input stream to reach a recovery point
589// where normal tokenizing can resume.
590function consumeBadUrlRemnants$1(source,offset){// Repeatedly consume the next input code point from the stream:
591for(;offset<source.length;offset++){var code=source.charCodeAt(offset);// U+0029 RIGHT PARENTHESIS ())
592// EOF
593if(code===0x0029){// Return.
594offset++;break;}if(isValidEscape$1(code,getCharCode(source,offset+1))){// Consume an escaped code point.
595// Note: This allows an escaped right parenthesis ("\)") to be encountered
596// without ending the <bad-url-token>. This is otherwise identical to
597// the "anything else" clause.
598offset=consumeEscaped$1(source,offset);}}return offset;}var utils$2={consumeEscaped:consumeEscaped$1,consumeName:consumeName$1,consumeNumber:consumeNumber$5,consumeBadUrlRemnants:consumeBadUrlRemnants$1,cmpChar:cmpChar$5,cmpStr:cmpStr$6,getNewlineLength:getNewlineLength$1,findWhiteSpaceStart:findWhiteSpaceStart$1,findWhiteSpaceEnd:findWhiteSpaceEnd$1};var constants$2=_const;var TYPE$G=constants$2.TYPE;var NAME$2=constants$2.NAME;var utils$1=utils$2;var cmpStr$5=utils$1.cmpStr;var EOF=TYPE$G.EOF;var WHITESPACE$c=TYPE$G.WhiteSpace;var COMMENT$a=TYPE$G.Comment;var OFFSET_MASK$1=0x00FFFFFF;var TYPE_SHIFT$1=24;var TokenStream$4=function TokenStream$4(){this.offsetAndType=null;this.balance=null;this.reset();};TokenStream$4.prototype={reset:function reset(){this.eof=false;this.tokenIndex=-1;this.tokenType=0;this.tokenStart=this.firstCharOffset;this.tokenEnd=this.firstCharOffset;},lookupType:function lookupType(offset){offset+=this.tokenIndex;if(offset<this.tokenCount){return this.offsetAndType[offset]>>TYPE_SHIFT$1;}return EOF;},lookupOffset:function lookupOffset(offset){offset+=this.tokenIndex;if(offset<this.tokenCount){return this.offsetAndType[offset-1]&OFFSET_MASK$1;}return this.source.length;},lookupValue:function lookupValue(offset,referenceStr){offset+=this.tokenIndex;if(offset<this.tokenCount){return cmpStr$5(this.source,this.offsetAndType[offset-1]&OFFSET_MASK$1,this.offsetAndType[offset]&OFFSET_MASK$1,referenceStr);}return false;},getTokenStart:function getTokenStart(tokenIndex){if(tokenIndex===this.tokenIndex){return this.tokenStart;}if(tokenIndex>0){return tokenIndex<this.tokenCount?this.offsetAndType[tokenIndex-1]&OFFSET_MASK$1:this.offsetAndType[this.tokenCount]&OFFSET_MASK$1;}return this.firstCharOffset;},// TODO: -> skipUntilBalanced
599getRawLength:function getRawLength(startToken,mode){var cursor=startToken;var balanceEnd;var offset=this.offsetAndType[Math.max(cursor-1,0)]&OFFSET_MASK$1;var type;loop:for(;cursor<this.tokenCount;cursor++){balanceEnd=this.balance[cursor];// stop scanning on balance edge that points to offset before start token
600if(balanceEnd<startToken){break loop;}type=this.offsetAndType[cursor]>>TYPE_SHIFT$1;// check token is stop type
601switch(mode(type,this.source,offset)){case 1:break loop;case 2:cursor++;break loop;default:// fast forward to the end of balanced block
602if(this.balance[balanceEnd]===cursor){cursor=balanceEnd;}offset=this.offsetAndType[cursor]&OFFSET_MASK$1;}}return cursor-this.tokenIndex;},isBalanceEdge:function isBalanceEdge(pos){return this.balance[this.tokenIndex]<pos;},isDelim:function isDelim(code,offset){if(offset){return this.lookupType(offset)===TYPE$G.Delim&&this.source.charCodeAt(this.lookupOffset(offset))===code;}return this.tokenType===TYPE$G.Delim&&this.source.charCodeAt(this.tokenStart)===code;},getTokenValue:function getTokenValue(){return this.source.substring(this.tokenStart,this.tokenEnd);},getTokenLength:function getTokenLength(){return this.tokenEnd-this.tokenStart;},substrToCursor:function substrToCursor(start){return this.source.substring(start,this.tokenStart);},skipWS:function skipWS(){for(var i=this.tokenIndex,skipTokenCount=0;i<this.tokenCount;i++,skipTokenCount++){if(this.offsetAndType[i]>>TYPE_SHIFT$1!==WHITESPACE$c){break;}}if(skipTokenCount>0){this.skip(skipTokenCount);}},skipSC:function skipSC(){while(this.tokenType===WHITESPACE$c||this.tokenType===COMMENT$a){this.next();}},skip:function skip(tokenCount){var next=this.tokenIndex+tokenCount;if(next<this.tokenCount){this.tokenIndex=next;this.tokenStart=this.offsetAndType[next-1]&OFFSET_MASK$1;next=this.offsetAndType[next];this.tokenType=next>>TYPE_SHIFT$1;this.tokenEnd=next&OFFSET_MASK$1;}else{this.tokenIndex=this.tokenCount;this.next();}},next:function next(){var next=this.tokenIndex+1;if(next<this.tokenCount){this.tokenIndex=next;this.tokenStart=this.tokenEnd;next=this.offsetAndType[next];this.tokenType=next>>TYPE_SHIFT$1;this.tokenEnd=next&OFFSET_MASK$1;}else{this.tokenIndex=this.tokenCount;this.eof=true;this.tokenType=EOF;this.tokenStart=this.tokenEnd=this.source.length;}},forEachToken:function forEachToken(fn){for(var i=0,offset=this.firstCharOffset;i<this.tokenCount;i++){var start=offset;var item=this.offsetAndType[i];var end=item&OFFSET_MASK$1;var type=item>>TYPE_SHIFT$1;offset=end;fn(type,start,end,i);}},dump:function dump(){var _this10=this;var tokens=new Array(this.tokenCount);this.forEachToken(function(type,start,end,index){tokens[index]={idx:index,type:NAME$2[type],chunk:_this10.source.substring(start,end),balance:_this10.balance[index]};});return tokens;}};var TokenStream_1=TokenStream$4;function noop$3(value){return value;}function generateMultiplier(multiplier){if(multiplier.min===0&&multiplier.max===0){return'*';}if(multiplier.min===0&&multiplier.max===1){return'?';}if(multiplier.min===1&&multiplier.max===0){return multiplier.comma?'#':'+';}if(multiplier.min===1&&multiplier.max===1){return'';}return(multiplier.comma?'#':'')+(multiplier.min===multiplier.max?'{'+multiplier.min+'}':'{'+multiplier.min+','+(multiplier.max!==0?multiplier.max:'')+'}');}function generateTypeOpts(node){switch(node.type){case'Range':return' ['+(node.min===null?'-∞':node.min)+','+(node.max===null?'∞':node.max)+']';default:throw new Error('Unknown node type `'+node.type+'`');}}function generateSequence(node,decorate,forceBraces,compact){var combinator=node.combinator===' '||compact?node.combinator:' '+node.combinator+' ';var result=node.terms.map(function(term){return generate$2(term,decorate,forceBraces,compact);}).join(combinator);if(node.explicit||forceBraces){result=(compact||result[0]===','?'[':'[ ')+result+(compact?']':' ]');}return result;}function generate$2(node,decorate,forceBraces,compact){var result;switch(node.type){case'Group':result=generateSequence(node,decorate,forceBraces,compact)+(node.disallowEmpty?'!':'');break;case'Multiplier':// return since node is a composition
603return generate$2(node.term,decorate,forceBraces,compact)+decorate(generateMultiplier(node),node);case'Type':result='<'+node.name+(node.opts?decorate(generateTypeOpts(node.opts),node.opts):'')+'>';break;case'Property':result='<\''+node.name+'\'>';break;case'Keyword':result=node.name;break;case'AtKeyword':result='@'+node.name;break;case'Function':result=node.name+'(';break;case'String':case'Token':result=node.value;break;case'Comma':result=',';break;default:throw new Error('Unknown node type `'+node.type+'`');}return decorate(result,node);}var generate_1=function generate_1(node,options){var decorate=noop$3;var forceBraces=false;var compact=false;if(typeof options==='function'){decorate=options;}else if(options){forceBraces=Boolean(options.forceBraces);compact=Boolean(options.compact);if(typeof options.decorate==='function'){decorate=options.decorate;}}return generate$2(node,decorate,forceBraces,compact);};var createCustomError$1=createCustomError$3;var generate$1=generate_1;var defaultLoc={offset:0,line:1,column:1};function locateMismatch(matchResult,node){var tokens=matchResult.tokens;var longestMatch=matchResult.longestMatch;var mismatchNode=longestMatch<tokens.length?tokens[longestMatch].node||null:null;var badNode=mismatchNode!==node?mismatchNode:null;var mismatchOffset=0;var mismatchLength=0;var entries=0;var css='';var start;var end;for(var _i4=0;_i4<tokens.length;_i4++){var token=tokens[_i4].value;if(_i4===longestMatch){mismatchLength=token.length;mismatchOffset=css.length;}if(badNode!==null&&tokens[_i4].node===badNode){if(_i4<=longestMatch){entries++;}else{entries=0;}}css+=token;}if(longestMatch===tokens.length||entries>1){// last
604start=fromLoc(badNode||node,'end')||buildLoc(defaultLoc,css);end=buildLoc(start);}else{start=fromLoc(badNode,'start')||buildLoc(fromLoc(node,'start')||defaultLoc,css.slice(0,mismatchOffset));end=fromLoc(badNode,'end')||buildLoc(start,css.substr(mismatchOffset,mismatchLength));}return{css:css,mismatchOffset:mismatchOffset,mismatchLength:mismatchLength,start:start,end:end};}function fromLoc(node,point){var value=node&&node.loc&&node.loc[point];if(value){return'line'in value?buildLoc(value):value;}return null;}function buildLoc(_ref4,extra){var offset=_ref4.offset,line=_ref4.line,column=_ref4.column;var loc={offset:offset,line:line,column:column};if(extra){var lines=extra.split(/\n|\r\n?|\f/);loc.offset+=extra.length;loc.line+=lines.length-1;loc.column=lines.length===1?loc.column+extra.length:lines.pop().length+1;}return loc;}var SyntaxReferenceError$1=function SyntaxReferenceError$1(type,referenceName){var error=createCustomError$1('SyntaxReferenceError',type+(referenceName?' `'+referenceName+'`':''));error.reference=referenceName;return error;};var SyntaxMatchError$1=function SyntaxMatchError$1(message,syntax,node,matchResult){var error=createCustomError$1('SyntaxMatchError',message);var _locateMismatch=locateMismatch(matchResult,node),css=_locateMismatch.css,mismatchOffset=_locateMismatch.mismatchOffset,mismatchLength=_locateMismatch.mismatchLength,start=_locateMismatch.start,end=_locateMismatch.end;error.rawMessage=message;error.syntax=syntax?generate$1(syntax):'<generic>';error.css=css;error.mismatchOffset=mismatchOffset;error.mismatchLength=mismatchLength;error.message=message+'\n'+' syntax: '+error.syntax+'\n'+' value: '+(css||'<empty string>')+'\n'+' --------'+new Array(error.mismatchOffset+1).join('-')+'^';Object.assign(error,start);error.loc={source:node&&node.loc&&node.loc.source||'<unknown>',start:start,end:end};return error;};var error={SyntaxReferenceError:SyntaxReferenceError$1,SyntaxMatchError:SyntaxMatchError$1};var hasOwnProperty$7=Object.prototype.hasOwnProperty;var keywords$1=Object.create(null);var properties$1=Object.create(null);var HYPHENMINUS$5=45;// '-'.charCodeAt()
605function isCustomProperty$1(str,offset){offset=offset||0;return str.length-offset>=2&&str.charCodeAt(offset)===HYPHENMINUS$5&&str.charCodeAt(offset+1)===HYPHENMINUS$5;}function getVendorPrefix(str,offset){offset=offset||0;// verdor prefix should be at least 3 chars length
606if(str.length-offset>=3){// vendor prefix starts with hyper minus following non-hyper minus
607if(str.charCodeAt(offset)===HYPHENMINUS$5&&str.charCodeAt(offset+1)!==HYPHENMINUS$5){// vendor prefix should contain a hyper minus at the ending
608var secondDashIndex=str.indexOf('-',offset+2);if(secondDashIndex!==-1){return str.substring(offset,secondDashIndex+1);}}}return'';}function getKeywordDescriptor(keyword){if(hasOwnProperty$7.call(keywords$1,keyword)){return keywords$1[keyword];}var name=keyword.toLowerCase();if(hasOwnProperty$7.call(keywords$1,name)){return keywords$1[keyword]=keywords$1[name];}var custom=isCustomProperty$1(name,0);var vendor=!custom?getVendorPrefix(name,0):'';return keywords$1[keyword]=Object.freeze({basename:name.substr(vendor.length),name:name,vendor:vendor,prefix:vendor,custom:custom});}function getPropertyDescriptor(property){if(hasOwnProperty$7.call(properties$1,property)){return properties$1[property];}var name=property;var hack=property[0];if(hack==='/'){hack=property[1]==='/'?'//':'/';}else if(hack!=='_'&&hack!=='*'&&hack!=='$'&&hack!=='#'&&hack!=='+'&&hack!=='&'){hack='';}var custom=isCustomProperty$1(name,hack.length);// re-use result when possible (the same as for lower case)
609if(!custom){name=name.toLowerCase();if(hasOwnProperty$7.call(properties$1,name)){return properties$1[property]=properties$1[name];}}var vendor=!custom?getVendorPrefix(name,hack.length):'';var prefix=name.substr(0,hack.length+vendor.length);return properties$1[property]=Object.freeze({basename:name.substr(prefix.length),name:name.substr(hack.length),hack:hack,vendor:vendor,prefix:prefix,custom:custom});}var names$2={keyword:getKeywordDescriptor,property:getPropertyDescriptor,isCustomProperty:isCustomProperty$1,vendorPrefix:getVendorPrefix};var MIN_SIZE=16*1024;var SafeUint32Array=typeof Uint32Array!=='undefined'?Uint32Array:Array;// fallback on Array when TypedArray is not supported
610var adoptBuffer$2=function adoptBuffer(buffer,size){if(buffer===null||buffer.length<size){return new SafeUint32Array(Math.max(size+1024,MIN_SIZE));}return buffer;};var TokenStream$3=TokenStream_1;var adoptBuffer$1=adoptBuffer$2;var constants$1=_const;var TYPE$F=constants$1.TYPE;var charCodeDefinitions=charCodeDefinitions$1;var isNewline=charCodeDefinitions.isNewline;var isName=charCodeDefinitions.isName;var isValidEscape=charCodeDefinitions.isValidEscape;var isNumberStart=charCodeDefinitions.isNumberStart;var isIdentifierStart$1=charCodeDefinitions.isIdentifierStart;var charCodeCategory=charCodeDefinitions.charCodeCategory;var isBOM$1=charCodeDefinitions.isBOM;var utils=utils$2;var cmpStr$4=utils.cmpStr;var getNewlineLength=utils.getNewlineLength;var findWhiteSpaceEnd=utils.findWhiteSpaceEnd;var consumeEscaped=utils.consumeEscaped;var consumeName=utils.consumeName;var consumeNumber$4=utils.consumeNumber;var consumeBadUrlRemnants=utils.consumeBadUrlRemnants;var OFFSET_MASK=0x00FFFFFF;var TYPE_SHIFT=24;function tokenize$3(source,stream){function getCharCode(offset){return offset<sourceLength?source.charCodeAt(offset):0;}// § 4.3.3. Consume a numeric token
611function consumeNumericToken(){// Consume a number and let number be the result.
612offset=consumeNumber$4(source,offset);// If the next 3 input code points would start an identifier, then:
613if(isIdentifierStart$1(getCharCode(offset),getCharCode(offset+1),getCharCode(offset+2))){// Create a <dimension-token> with the same value and type flag as number, and a unit set initially to the empty string.
614// Consume a name. Set the <dimension-token>’s unit to the returned value.
615// Return the <dimension-token>.
616type=TYPE$F.Dimension;offset=consumeName(source,offset);return;}// Otherwise, if the next input code point is U+0025 PERCENTAGE SIGN (%), consume it.
617if(getCharCode(offset)===0x0025){// Create a <percentage-token> with the same value as number, and return it.
618type=TYPE$F.Percentage;offset++;return;}// Otherwise, create a <number-token> with the same value and type flag as number, and return it.
619type=TYPE$F.Number;}// § 4.3.4. Consume an ident-like token
620function consumeIdentLikeToken(){var nameStartOffset=offset;// Consume a name, and let string be the result.
621offset=consumeName(source,offset);// If string’s value is an ASCII case-insensitive match for "url",
622// and the next input code point is U+0028 LEFT PARENTHESIS ((), consume it.
623if(cmpStr$4(source,nameStartOffset,offset,'url')&&getCharCode(offset)===0x0028){// While the next two input code points are whitespace, consume the next input code point.
624offset=findWhiteSpaceEnd(source,offset+1);// If the next one or two input code points are U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE ('),
625// or whitespace followed by U+0022 QUOTATION MARK (") or U+0027 APOSTROPHE ('),
626// then create a <function-token> with its value set to string and return it.
627if(getCharCode(offset)===0x0022||getCharCode(offset)===0x0027){type=TYPE$F.Function;offset=nameStartOffset+4;return;}// Otherwise, consume a url token, and return it.
628consumeUrlToken();return;}// Otherwise, if the next input code point is U+0028 LEFT PARENTHESIS ((), consume it.
629// Create a <function-token> with its value set to string and return it.
630if(getCharCode(offset)===0x0028){type=TYPE$F.Function;offset++;return;}// Otherwise, create an <ident-token> with its value set to string and return it.
631type=TYPE$F.Ident;}// § 4.3.5. Consume a string token
632function consumeStringToken(endingCodePoint){// This algorithm may be called with an ending code point, which denotes the code point
633// that ends the string. If an ending code point is not specified,
634// the current input code point is used.
635if(!endingCodePoint){endingCodePoint=getCharCode(offset++);}// Initially create a <string-token> with its value set to the empty string.
636type=TYPE$F.String;// Repeatedly consume the next input code point from the stream:
637for(;offset<source.length;offset++){var code=source.charCodeAt(offset);switch(charCodeCategory(code)){// ending code point
638case endingCodePoint:// Return the <string-token>.
639offset++;return;// EOF
640case charCodeCategory.Eof:// This is a parse error. Return the <string-token>.
641return;// newline
642case charCodeCategory.WhiteSpace:if(isNewline(code)){// This is a parse error. Reconsume the current input code point,
643// create a <bad-string-token>, and return it.
644offset+=getNewlineLength(source,offset,code);type=TYPE$F.BadString;return;}break;// U+005C REVERSE SOLIDUS (\)
645case 0x005C:// If the next input code point is EOF, do nothing.
646if(offset===source.length-1){break;}var nextCode=getCharCode(offset+1);// Otherwise, if the next input code point is a newline, consume it.
647if(isNewline(nextCode)){offset+=getNewlineLength(source,offset+1,nextCode);}else if(isValidEscape(code,nextCode)){// Otherwise, (the stream starts with a valid escape) consume
648// an escaped code point and append the returned code point to
649// the <string-token>’s value.
650offset=consumeEscaped(source,offset)-1;}break;// anything else
651// Append the current input code point to the <string-token>’s value.
652}}}// § 4.3.6. Consume a url token
653// Note: This algorithm assumes that the initial "url(" has already been consumed.
654// This algorithm also assumes that it’s being called to consume an "unquoted" value, like url(foo).
655// A quoted value, like url("foo"), is parsed as a <function-token>. Consume an ident-like token
656// automatically handles this distinction; this algorithm shouldn’t be called directly otherwise.
657function consumeUrlToken(){// Initially create a <url-token> with its value set to the empty string.
658type=TYPE$F.Url;// Consume as much whitespace as possible.
659offset=findWhiteSpaceEnd(source,offset);// Repeatedly consume the next input code point from the stream:
660for(;offset<source.length;offset++){var code=source.charCodeAt(offset);switch(charCodeCategory(code)){// U+0029 RIGHT PARENTHESIS ())
661case 0x0029:// Return the <url-token>.
662offset++;return;// EOF
663case charCodeCategory.Eof:// This is a parse error. Return the <url-token>.
664return;// whitespace
665case charCodeCategory.WhiteSpace:// Consume as much whitespace as possible.
666offset=findWhiteSpaceEnd(source,offset);// If the next input code point is U+0029 RIGHT PARENTHESIS ()) or EOF,
667// consume it and return the <url-token>
668// (if EOF was encountered, this is a parse error);
669if(getCharCode(offset)===0x0029||offset>=source.length){if(offset<source.length){offset++;}return;}// otherwise, consume the remnants of a bad url, create a <bad-url-token>,
670// and return it.
671offset=consumeBadUrlRemnants(source,offset);type=TYPE$F.BadUrl;return;// U+0022 QUOTATION MARK (")
672// U+0027 APOSTROPHE (')
673// U+0028 LEFT PARENTHESIS (()
674// non-printable code point
675case 0x0022:case 0x0027:case 0x0028:case charCodeCategory.NonPrintable:// This is a parse error. Consume the remnants of a bad url,
676// create a <bad-url-token>, and return it.
677offset=consumeBadUrlRemnants(source,offset);type=TYPE$F.BadUrl;return;// U+005C REVERSE SOLIDUS (\)
678case 0x005C:// If the stream starts with a valid escape, consume an escaped code point and
679// append the returned code point to the <url-token>’s value.
680if(isValidEscape(code,getCharCode(offset+1))){offset=consumeEscaped(source,offset)-1;break;}// Otherwise, this is a parse error. Consume the remnants of a bad url,
681// create a <bad-url-token>, and return it.
682offset=consumeBadUrlRemnants(source,offset);type=TYPE$F.BadUrl;return;// anything else
683// Append the current input code point to the <url-token>’s value.
684}}}if(!stream){stream=new TokenStream$3();}// ensure source is a string
685source=String(source||'');var sourceLength=source.length;var offsetAndType=adoptBuffer$1(stream.offsetAndType,sourceLength+1);// +1 because of eof-token
686var balance=adoptBuffer$1(stream.balance,sourceLength+1);var tokenCount=0;var start=isBOM$1(getCharCode(0));var offset=start;var balanceCloseType=0;var balanceStart=0;var balancePrev=0;// https://drafts.csswg.org/css-syntax-3/#consume-token
687// § 4.3.1. Consume a token
688while(offset<sourceLength){var code=source.charCodeAt(offset);var type=0;balance[tokenCount]=sourceLength;switch(charCodeCategory(code)){// whitespace
689case charCodeCategory.WhiteSpace:// Consume as much whitespace as possible. Return a <whitespace-token>.
690type=TYPE$F.WhiteSpace;offset=findWhiteSpaceEnd(source,offset+1);break;// U+0022 QUOTATION MARK (")
691case 0x0022:// Consume a string token and return it.
692consumeStringToken();break;// U+0023 NUMBER SIGN (#)
693case 0x0023:// If the next input code point is a name code point or the next two input code points are a valid escape, then:
694if(isName(getCharCode(offset+1))||isValidEscape(getCharCode(offset+1),getCharCode(offset+2))){// Create a <hash-token>.
695type=TYPE$F.Hash;// If the next 3 input code points would start an identifier, set the <hash-token>’s type flag to "id".
696// if (isIdentifierStart(getCharCode(offset + 1), getCharCode(offset + 2), getCharCode(offset + 3))) {
697// // TODO: set id flag
698// }
699// Consume a name, and set the <hash-token>’s value to the returned string.
700offset=consumeName(source,offset+1);// Return the <hash-token>.
701}else{// Otherwise, return a <delim-token> with its value set to the current input code point.
702type=TYPE$F.Delim;offset++;}break;// U+0027 APOSTROPHE (')
703case 0x0027:// Consume a string token and return it.
704consumeStringToken();break;// U+0028 LEFT PARENTHESIS (()
705case 0x0028:// Return a <(-token>.
706type=TYPE$F.LeftParenthesis;offset++;break;// U+0029 RIGHT PARENTHESIS ())
707case 0x0029:// Return a <)-token>.
708type=TYPE$F.RightParenthesis;offset++;break;// U+002B PLUS SIGN (+)
709case 0x002B:// If the input stream starts with a number, ...
710if(isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){// ... reconsume the current input code point, consume a numeric token, and return it.
711consumeNumericToken();}else{// Otherwise, return a <delim-token> with its value set to the current input code point.
712type=TYPE$F.Delim;offset++;}break;// U+002C COMMA (,)
713case 0x002C:// Return a <comma-token>.
714type=TYPE$F.Comma;offset++;break;// U+002D HYPHEN-MINUS (-)
715case 0x002D:// If the input stream starts with a number, reconsume the current input code point, consume a numeric token, and return it.
716if(isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){consumeNumericToken();}else{// Otherwise, if the next 2 input code points are U+002D HYPHEN-MINUS U+003E GREATER-THAN SIGN (->), consume them and return a <CDC-token>.
717if(getCharCode(offset+1)===0x002D&&getCharCode(offset+2)===0x003E){type=TYPE$F.CDC;offset=offset+3;}else{// Otherwise, if the input stream starts with an identifier, ...
718if(isIdentifierStart$1(code,getCharCode(offset+1),getCharCode(offset+2))){// ... reconsume the current input code point, consume an ident-like token, and return it.
719consumeIdentLikeToken();}else{// Otherwise, return a <delim-token> with its value set to the current input code point.
720type=TYPE$F.Delim;offset++;}}}break;// U+002E FULL STOP (.)
721case 0x002E:// If the input stream starts with a number, ...
722if(isNumberStart(code,getCharCode(offset+1),getCharCode(offset+2))){// ... reconsume the current input code point, consume a numeric token, and return it.
723consumeNumericToken();}else{// Otherwise, return a <delim-token> with its value set to the current input code point.
724type=TYPE$F.Delim;offset++;}break;// U+002F SOLIDUS (/)
725case 0x002F:// If the next two input code point are U+002F SOLIDUS (/) followed by a U+002A ASTERISK (*),
726if(getCharCode(offset+1)===0x002A){// ... consume them and all following code points up to and including the first U+002A ASTERISK (*)
727// followed by a U+002F SOLIDUS (/), or up to an EOF code point.
728type=TYPE$F.Comment;offset=source.indexOf('*/',offset+2)+2;if(offset===1){offset=source.length;}}else{type=TYPE$F.Delim;offset++;}break;// U+003A COLON (:)
729case 0x003A:// Return a <colon-token>.
730type=TYPE$F.Colon;offset++;break;// U+003B SEMICOLON (;)
731case 0x003B:// Return a <semicolon-token>.
732type=TYPE$F.Semicolon;offset++;break;// U+003C LESS-THAN SIGN (<)
733case 0x003C:// If the next 3 input code points are U+0021 EXCLAMATION MARK U+002D HYPHEN-MINUS U+002D HYPHEN-MINUS (!--), ...
734if(getCharCode(offset+1)===0x0021&&getCharCode(offset+2)===0x002D&&getCharCode(offset+3)===0x002D){// ... consume them and return a <CDO-token>.
735type=TYPE$F.CDO;offset=offset+4;}else{// Otherwise, return a <delim-token> with its value set to the current input code point.
736type=TYPE$F.Delim;offset++;}break;// U+0040 COMMERCIAL AT (@)
737case 0x0040:// If the next 3 input code points would start an identifier, ...
738if(isIdentifierStart$1(getCharCode(offset+1),getCharCode(offset+2),getCharCode(offset+3))){// ... consume a name, create an <at-keyword-token> with its value set to the returned value, and return it.
739type=TYPE$F.AtKeyword;offset=consumeName(source,offset+1);}else{// Otherwise, return a <delim-token> with its value set to the current input code point.
740type=TYPE$F.Delim;offset++;}break;// U+005B LEFT SQUARE BRACKET ([)
741case 0x005B:// Return a <[-token>.
742type=TYPE$F.LeftSquareBracket;offset++;break;// U+005C REVERSE SOLIDUS (\)
743case 0x005C:// If the input stream starts with a valid escape, ...
744if(isValidEscape(code,getCharCode(offset+1))){// ... reconsume the current input code point, consume an ident-like token, and return it.
745consumeIdentLikeToken();}else{// Otherwise, this is a parse error. Return a <delim-token> with its value set to the current input code point.
746type=TYPE$F.Delim;offset++;}break;// U+005D RIGHT SQUARE BRACKET (])
747case 0x005D:// Return a <]-token>.
748type=TYPE$F.RightSquareBracket;offset++;break;// U+007B LEFT CURLY BRACKET ({)
749case 0x007B:// Return a <{-token>.
750type=TYPE$F.LeftCurlyBracket;offset++;break;// U+007D RIGHT CURLY BRACKET (})
751case 0x007D:// Return a <}-token>.
752type=TYPE$F.RightCurlyBracket;offset++;break;// digit
753case charCodeCategory.Digit:// Reconsume the current input code point, consume a numeric token, and return it.
754consumeNumericToken();break;// name-start code point
755case charCodeCategory.NameStart:// Reconsume the current input code point, consume an ident-like token, and return it.
756consumeIdentLikeToken();break;// EOF
757case charCodeCategory.Eof:// Return an <EOF-token>.
758break;// anything else
759default:// Return a <delim-token> with its value set to the current input code point.
760type=TYPE$F.Delim;offset++;}switch(type){case balanceCloseType:balancePrev=balanceStart&OFFSET_MASK;balanceStart=balance[balancePrev];balanceCloseType=balanceStart>>TYPE_SHIFT;balance[tokenCount]=balancePrev;balance[balancePrev++]=tokenCount;for(;balancePrev<tokenCount;balancePrev++){if(balance[balancePrev]===sourceLength){balance[balancePrev]=tokenCount;}}break;case TYPE$F.LeftParenthesis:case TYPE$F.Function:balance[tokenCount]=balanceStart;balanceCloseType=TYPE$F.RightParenthesis;balanceStart=balanceCloseType<<TYPE_SHIFT|tokenCount;break;case TYPE$F.LeftSquareBracket:balance[tokenCount]=balanceStart;balanceCloseType=TYPE$F.RightSquareBracket;balanceStart=balanceCloseType<<TYPE_SHIFT|tokenCount;break;case TYPE$F.LeftCurlyBracket:balance[tokenCount]=balanceStart;balanceCloseType=TYPE$F.RightCurlyBracket;balanceStart=balanceCloseType<<TYPE_SHIFT|tokenCount;break;}offsetAndType[tokenCount++]=type<<TYPE_SHIFT|offset;}// finalize buffers
761offsetAndType[tokenCount]=TYPE$F.EOF<<TYPE_SHIFT|offset;// <EOF-token>
762balance[tokenCount]=sourceLength;balance[sourceLength]=sourceLength;// prevents false positive balance match with any token
763while(balanceStart!==0){balancePrev=balanceStart&OFFSET_MASK;balanceStart=balance[balancePrev];balance[balancePrev]=sourceLength;}// update stream
764stream.source=source;stream.firstCharOffset=start;stream.offsetAndType=offsetAndType;stream.tokenCount=tokenCount;stream.balance=balance;stream.reset();stream.next();return stream;}// extend tokenizer with constants
765Object.keys(constants$1).forEach(function(key){tokenize$3[key]=constants$1[key];});// extend tokenizer with static methods from utils
766Object.keys(charCodeDefinitions).forEach(function(key){tokenize$3[key]=charCodeDefinitions[key];});Object.keys(utils).forEach(function(key){tokenize$3[key]=utils[key];});var tokenizer$3=tokenize$3;var isDigit$3=tokenizer$3.isDigit;var cmpChar$4=tokenizer$3.cmpChar;var TYPE$E=tokenizer$3.TYPE;var DELIM$6=TYPE$E.Delim;var WHITESPACE$b=TYPE$E.WhiteSpace;var COMMENT$9=TYPE$E.Comment;var IDENT$i=TYPE$E.Ident;var NUMBER$9=TYPE$E.Number;var DIMENSION$7=TYPE$E.Dimension;var PLUSSIGN$8=0x002B;// U+002B PLUS SIGN (+)
767var HYPHENMINUS$4=0x002D;// U+002D HYPHEN-MINUS (-)
768var N$4=0x006E;// U+006E LATIN SMALL LETTER N (n)
769var DISALLOW_SIGN$1=true;var ALLOW_SIGN$1=false;function isDelim$1(token,code){return token!==null&&token.type===DELIM$6&&token.value.charCodeAt(0)===code;}function skipSC(token,offset,getNextToken){while(token!==null&&(token.type===WHITESPACE$b||token.type===COMMENT$9)){token=getNextToken(++offset);}return offset;}function checkInteger$1(token,valueOffset,disallowSign,offset){if(!token){return 0;}var code=token.value.charCodeAt(valueOffset);if(code===PLUSSIGN$8||code===HYPHENMINUS$4){if(disallowSign){// Number sign is not allowed
770return 0;}valueOffset++;}for(;valueOffset<token.value.length;valueOffset++){if(!isDigit$3(token.value.charCodeAt(valueOffset))){// Integer is expected
771return 0;}}return offset+1;}// ... <signed-integer>
772// ... ['+' | '-'] <signless-integer>
773function consumeB$1(token,offset_,getNextToken){var sign=false;var offset=skipSC(token,offset_,getNextToken);token=getNextToken(offset);if(token===null){return offset_;}if(token.type!==NUMBER$9){if(isDelim$1(token,PLUSSIGN$8)||isDelim$1(token,HYPHENMINUS$4)){sign=true;offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);if(token===null&&token.type!==NUMBER$9){return 0;}}else{return offset_;}}if(!sign){var code=token.value.charCodeAt(0);if(code!==PLUSSIGN$8&&code!==HYPHENMINUS$4){// Number sign is expected
774return 0;}}return checkInteger$1(token,sign?0:1,sign,offset);}// An+B microsyntax https://www.w3.org/TR/css-syntax-3/#anb
775var genericAnPlusB=function anPlusB(token,getNextToken){/* eslint-disable brace-style*/var offset=0;if(!token){return 0;}// <integer>
776if(token.type===NUMBER$9){return checkInteger$1(token,0,ALLOW_SIGN$1,offset);// b
777}// -n
778// -n <signed-integer>
779// -n ['+' | '-'] <signless-integer>
780// -n- <signless-integer>
781// <dashndashdigit-ident>
782else if(token.type===IDENT$i&&token.value.charCodeAt(0)===HYPHENMINUS$4){// expect 1st char is N
783if(!cmpChar$4(token.value,1,N$4)){return 0;}switch(token.value.length){// -n
784// -n <signed-integer>
785// -n ['+' | '-'] <signless-integer>
786case 2:return consumeB$1(getNextToken(++offset),offset,getNextToken);// -n- <signless-integer>
787case 3:if(token.value.charCodeAt(2)!==HYPHENMINUS$4){return 0;}offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$1(token,0,DISALLOW_SIGN$1,offset);// <dashndashdigit-ident>
788default:if(token.value.charCodeAt(2)!==HYPHENMINUS$4){return 0;}return checkInteger$1(token,3,DISALLOW_SIGN$1,offset);}}// '+'? n
789// '+'? n <signed-integer>
790// '+'? n ['+' | '-'] <signless-integer>
791// '+'? n- <signless-integer>
792// '+'? <ndashdigit-ident>
793else if(token.type===IDENT$i||isDelim$1(token,PLUSSIGN$8)&&getNextToken(offset+1).type===IDENT$i){// just ignore a plus
794if(token.type!==IDENT$i){token=getNextToken(++offset);}if(token===null||!cmpChar$4(token.value,0,N$4)){return 0;}switch(token.value.length){// '+'? n
795// '+'? n <signed-integer>
796// '+'? n ['+' | '-'] <signless-integer>
797case 1:return consumeB$1(getNextToken(++offset),offset,getNextToken);// '+'? n- <signless-integer>
798case 2:if(token.value.charCodeAt(1)!==HYPHENMINUS$4){return 0;}offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$1(token,0,DISALLOW_SIGN$1,offset);// '+'? <ndashdigit-ident>
799default:if(token.value.charCodeAt(1)!==HYPHENMINUS$4){return 0;}return checkInteger$1(token,2,DISALLOW_SIGN$1,offset);}}// <ndashdigit-dimension>
800// <ndash-dimension> <signless-integer>
801// <n-dimension>
802// <n-dimension> <signed-integer>
803// <n-dimension> ['+' | '-'] <signless-integer>
804else if(token.type===DIMENSION$7){var code=token.value.charCodeAt(0);var sign=code===PLUSSIGN$8||code===HYPHENMINUS$4?1:0;for(var i=sign;i<token.value.length;i++){if(!isDigit$3(token.value.charCodeAt(i))){break;}}if(i===sign){// Integer is expected
805return 0;}if(!cmpChar$4(token.value,i,N$4)){return 0;}// <n-dimension>
806// <n-dimension> <signed-integer>
807// <n-dimension> ['+' | '-'] <signless-integer>
808if(i+1===token.value.length){return consumeB$1(getNextToken(++offset),offset,getNextToken);}else{if(token.value.charCodeAt(i+1)!==HYPHENMINUS$4){return 0;}// <ndash-dimension> <signless-integer>
809if(i+2===token.value.length){offset=skipSC(getNextToken(++offset),offset,getNextToken);token=getNextToken(offset);return checkInteger$1(token,0,DISALLOW_SIGN$1,offset);}// <ndashdigit-dimension>
810else{return checkInteger$1(token,i+2,DISALLOW_SIGN$1,offset);}}}return 0;};var isHexDigit$2=tokenizer$3.isHexDigit;var cmpChar$3=tokenizer$3.cmpChar;var TYPE$D=tokenizer$3.TYPE;var IDENT$h=TYPE$D.Ident;var DELIM$5=TYPE$D.Delim;var NUMBER$8=TYPE$D.Number;var DIMENSION$6=TYPE$D.Dimension;var PLUSSIGN$7=0x002B;// U+002B PLUS SIGN (+)
811var HYPHENMINUS$3=0x002D;// U+002D HYPHEN-MINUS (-)
812var QUESTIONMARK$2=0x003F;// U+003F QUESTION MARK (?)
813var U$2=0x0075;// U+0075 LATIN SMALL LETTER U (u)
814function isDelim(token,code){return token!==null&&token.type===DELIM$5&&token.value.charCodeAt(0)===code;}function startsWith$1(token,code){return token.value.charCodeAt(0)===code;}function hexSequence(token,offset,allowDash){for(var pos=offset,hexlen=0;pos<token.value.length;pos++){var code=token.value.charCodeAt(pos);if(code===HYPHENMINUS$3&&allowDash&&hexlen!==0){if(hexSequence(token,offset+hexlen+1,false)>0){return 6;// dissallow following question marks
815}return 0;// dash at the ending of a hex sequence is not allowed
816}if(!isHexDigit$2(code)){return 0;// not a hex digit
817}if(++hexlen>6){return 0;// too many hex digits
818}}return hexlen;}function withQuestionMarkSequence(consumed,length,getNextToken){if(!consumed){return 0;// nothing consumed
819}while(isDelim(getNextToken(length),QUESTIONMARK$2)){if(++consumed>6){return 0;// too many question marks
820}length++;}return length;}// https://drafts.csswg.org/css-syntax/#urange
821// Informally, the <urange> production has three forms:
822// U+0001
823// Defines a range consisting of a single code point, in this case the code point "1".
824// U+0001-00ff
825// Defines a range of codepoints between the first and the second value, in this case
826// the range between "1" and "ff" (255 in decimal) inclusive.
827// U+00??
828// Defines a range of codepoints where the "?" characters range over all hex digits,
829// in this case defining the same as the value U+0000-00ff.
830// In each form, a maximum of 6 digits is allowed for each hexadecimal number (if you treat "?" as a hexadecimal digit).
831//
832// <urange> =
833// u '+' <ident-token> '?'* |
834// u <dimension-token> '?'* |
835// u <number-token> '?'* |
836// u <number-token> <dimension-token> |
837// u <number-token> <number-token> |
838// u '+' '?'+
839var genericUrange=function urange(token,getNextToken){var length=0;// should start with `u` or `U`
840if(token===null||token.type!==IDENT$h||!cmpChar$3(token.value,0,U$2)){return 0;}token=getNextToken(++length);if(token===null){return 0;}// u '+' <ident-token> '?'*
841// u '+' '?'+
842if(isDelim(token,PLUSSIGN$7)){token=getNextToken(++length);if(token===null){return 0;}if(token.type===IDENT$h){// u '+' <ident-token> '?'*
843return withQuestionMarkSequence(hexSequence(token,0,true),++length,getNextToken);}if(isDelim(token,QUESTIONMARK$2)){// u '+' '?'+
844return withQuestionMarkSequence(1,++length,getNextToken);}// Hex digit or question mark is expected
845return 0;}// u <number-token> '?'*
846// u <number-token> <dimension-token>
847// u <number-token> <number-token>
848if(token.type===NUMBER$8){if(!startsWith$1(token,PLUSSIGN$7)){return 0;}var consumedHexLength=hexSequence(token,1,true);if(consumedHexLength===0){return 0;}token=getNextToken(++length);if(token===null){// u <number-token> <eof>
849return length;}if(token.type===DIMENSION$6||token.type===NUMBER$8){// u <number-token> <dimension-token>
850// u <number-token> <number-token>
851if(!startsWith$1(token,HYPHENMINUS$3)||!hexSequence(token,1,false)){return 0;}return length+1;}// u <number-token> '?'*
852return withQuestionMarkSequence(consumedHexLength,length,getNextToken);}// u <dimension-token> '?'*
853if(token.type===DIMENSION$6){if(!startsWith$1(token,PLUSSIGN$7)){return 0;}return withQuestionMarkSequence(hexSequence(token,1,true),++length,getNextToken);}return 0;};var tokenizer$2=tokenizer$3;var isIdentifierStart=tokenizer$2.isIdentifierStart;var isHexDigit$1=tokenizer$2.isHexDigit;var isDigit$2=tokenizer$2.isDigit;var cmpStr$3=tokenizer$2.cmpStr;var consumeNumber$3=tokenizer$2.consumeNumber;var TYPE$C=tokenizer$2.TYPE;var anPlusB=genericAnPlusB;var urange=genericUrange;var cssWideKeywords$1=['unset','initial','inherit'];var calcFunctionNames=['calc(','-moz-calc(','-webkit-calc('];// https://www.w3.org/TR/css-values-3/#lengths
854var LENGTH={// absolute length units
855'px':true,'mm':true,'cm':true,'in':true,'pt':true,'pc':true,'q':true,// relative length units
856'em':true,'ex':true,'ch':true,'rem':true,// viewport-percentage lengths
857'vh':true,'vw':true,'vmin':true,'vmax':true,'vm':true};var ANGLE={'deg':true,'grad':true,'rad':true,'turn':true};var TIME={'s':true,'ms':true};var FREQUENCY={'hz':true,'khz':true};// https://www.w3.org/TR/css-values-3/#resolution (https://drafts.csswg.org/css-values/#resolution)
858var RESOLUTION={'dpi':true,'dpcm':true,'dppx':true,'x':true// https://github.com/w3c/csswg-drafts/issues/461
859};// https://drafts.csswg.org/css-grid/#fr-unit
860var FLEX={'fr':true};// https://www.w3.org/TR/css3-speech/#mixing-props-voice-volume
861var DECIBEL={'db':true};// https://www.w3.org/TR/css3-speech/#voice-props-voice-pitch
862var SEMITONES={'st':true};// safe char code getter
863function charCode(str,index){return index<str.length?str.charCodeAt(index):0;}function eqStr(actual,expected){return cmpStr$3(actual,0,actual.length,expected);}function eqStrAny(actual,expected){for(var i=0;i<expected.length;i++){if(eqStr(actual,expected[i])){return true;}}return false;}// IE postfix hack, i.e. 123\0 or 123px\9
864function isPostfixIeHack(str,offset){if(offset!==str.length-2){return false;}return str.charCodeAt(offset)===0x005C&&// U+005C REVERSE SOLIDUS (\)
865isDigit$2(str.charCodeAt(offset+1));}function outOfRange(opts,value,numEnd){if(opts&&opts.type==='Range'){var num=Number(numEnd!==undefined&&numEnd!==value.length?value.substr(0,numEnd):value);if(isNaN(num)){return true;}if(opts.min!==null&&num<opts.min){return true;}if(opts.max!==null&&num>opts.max){return true;}}return false;}function consumeFunction(token,getNextToken){var startIdx=token.index;var length=0;// balanced token consuming
866do{length++;if(token.balance<=startIdx){break;}}while(token=getNextToken(length));return length;}// TODO: implement
867// can be used wherever <length>, <frequency>, <angle>, <time>, <percentage>, <number>, or <integer> values are allowed
868// https://drafts.csswg.org/css-values/#calc-notation
869function calc(next){return function(token,getNextToken,opts){if(token===null){return 0;}if(token.type===TYPE$C.Function&&eqStrAny(token.value,calcFunctionNames)){return consumeFunction(token,getNextToken);}return next(token,getNextToken,opts);};}function tokenType(expectedTokenType){return function(token){if(token===null||token.type!==expectedTokenType){return 0;}return 1;};}function func(name){name=name+'(';return function(token,getNextToken){if(token!==null&&eqStr(token.value,name)){return consumeFunction(token,getNextToken);}return 0;};}// =========================
870// Complex types
871//
872// https://drafts.csswg.org/css-values-4/#custom-idents
873// 4.2. Author-defined Identifiers: the <custom-ident> type
874// Some properties accept arbitrary author-defined identifiers as a component value.
875// This generic data type is denoted by <custom-ident>, and represents any valid CSS identifier
876// that would not be misinterpreted as a pre-defined keyword in that property’s value definition.
877//
878// See also: https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident
879function customIdent(token){if(token===null||token.type!==TYPE$C.Ident){return 0;}var name=token.value.toLowerCase();// The CSS-wide keywords are not valid <custom-ident>s
880if(eqStrAny(name,cssWideKeywords$1)){return 0;}// The default keyword is reserved and is also not a valid <custom-ident>
881if(eqStr(name,'default')){return 0;}// TODO: ignore property specific keywords (as described https://developer.mozilla.org/en-US/docs/Web/CSS/custom-ident)
882// Specifications using <custom-ident> must specify clearly what other keywords
883// are excluded from <custom-ident>, if any—for example by saying that any pre-defined keywords
884// in that property’s value definition are excluded. Excluded keywords are excluded
885// in all ASCII case permutations.
886return 1;}// https://drafts.csswg.org/css-variables/#typedef-custom-property-name
887// A custom property is any property whose name starts with two dashes (U+002D HYPHEN-MINUS), like --foo.
888// The <custom-property-name> production corresponds to this: it’s defined as any valid identifier
889// that starts with two dashes, except -- itself, which is reserved for future use by CSS.
890// NOTE: Current implementation treat `--` as a valid name since most (all?) major browsers treat it as valid.
891function customPropertyName(token){// ... defined as any valid identifier
892if(token===null||token.type!==TYPE$C.Ident){return 0;}// ... that starts with two dashes (U+002D HYPHEN-MINUS)
893if(charCode(token.value,0)!==0x002D||charCode(token.value,1)!==0x002D){return 0;}return 1;}// https://drafts.csswg.org/css-color-4/#hex-notation
894// The syntax of a <hex-color> is a <hash-token> token whose value consists of 3, 4, 6, or 8 hexadecimal digits.
895// In other words, a hex color is written as a hash character, "#", followed by some number of digits 0-9 or
896// letters a-f (the case of the letters doesn’t matter - #00ff00 is identical to #00FF00).
897function hexColor(token){if(token===null||token.type!==TYPE$C.Hash){return 0;}var length=token.value.length;// valid values (length): #rgb (4), #rgba (5), #rrggbb (7), #rrggbbaa (9)
898if(length!==4&&length!==5&&length!==7&&length!==9){return 0;}for(var i=1;i<length;i++){if(!isHexDigit$1(token.value.charCodeAt(i))){return 0;}}return 1;}function idSelector(token){if(token===null||token.type!==TYPE$C.Hash){return 0;}if(!isIdentifierStart(charCode(token.value,1),charCode(token.value,2),charCode(token.value,3))){return 0;}return 1;}// https://drafts.csswg.org/css-syntax/#any-value
899// It represents the entirety of what a valid declaration can have as its value.
900function declarationValue(token,getNextToken){if(!token){return 0;}var length=0;var level=0;var startIdx=token.index;// The <declaration-value> production matches any sequence of one or more tokens,
901// so long as the sequence ...
902scan:do{switch(token.type){// ... does not contain <bad-string-token>, <bad-url-token>,
903case TYPE$C.BadString:case TYPE$C.BadUrl:break scan;// ... unmatched <)-token>, <]-token>, or <}-token>,
904case TYPE$C.RightCurlyBracket:case TYPE$C.RightParenthesis:case TYPE$C.RightSquareBracket:if(token.balance>token.index||token.balance<startIdx){break scan;}level--;break;// ... or top-level <semicolon-token> tokens
905case TYPE$C.Semicolon:if(level===0){break scan;}break;// ... or <delim-token> tokens with a value of "!"
906case TYPE$C.Delim:if(token.value==='!'&&level===0){break scan;}break;case TYPE$C.Function:case TYPE$C.LeftParenthesis:case TYPE$C.LeftSquareBracket:case TYPE$C.LeftCurlyBracket:level++;break;}length++;// until balance closing
907if(token.balance<=startIdx){break;}}while(token=getNextToken(length));return length;}// https://drafts.csswg.org/css-syntax/#any-value
908// The <any-value> production is identical to <declaration-value>, but also
909// allows top-level <semicolon-token> tokens and <delim-token> tokens
910// with a value of "!". It represents the entirety of what valid CSS can be in any context.
911function anyValue(token,getNextToken){if(!token){return 0;}var startIdx=token.index;var length=0;// The <any-value> production matches any sequence of one or more tokens,
912// so long as the sequence ...
913scan:do{switch(token.type){// ... does not contain <bad-string-token>, <bad-url-token>,
914case TYPE$C.BadString:case TYPE$C.BadUrl:break scan;// ... unmatched <)-token>, <]-token>, or <}-token>,
915case TYPE$C.RightCurlyBracket:case TYPE$C.RightParenthesis:case TYPE$C.RightSquareBracket:if(token.balance>token.index||token.balance<startIdx){break scan;}break;}length++;// until balance closing
916if(token.balance<=startIdx){break;}}while(token=getNextToken(length));return length;}// =========================
917// Dimensions
918//
919function dimension(type){return function(token,getNextToken,opts){if(token===null||token.type!==TYPE$C.Dimension){return 0;}var numberEnd=consumeNumber$3(token.value,0);// check unit
920if(type!==null){// check for IE postfix hack, i.e. 123px\0 or 123px\9
921var reverseSolidusOffset=token.value.indexOf('\\',numberEnd);var unit=reverseSolidusOffset===-1||!isPostfixIeHack(token.value,reverseSolidusOffset)?token.value.substr(numberEnd):token.value.substring(numberEnd,reverseSolidusOffset);if(type.hasOwnProperty(unit.toLowerCase())===false){return 0;}}// check range if specified
922if(outOfRange(opts,token.value,numberEnd)){return 0;}return 1;};}// =========================
923// Percentage
924//
925// §5.5. Percentages: the <percentage> type
926// https://drafts.csswg.org/css-values-4/#percentages
927function percentage(token,getNextToken,opts){// ... corresponds to the <percentage-token> production
928if(token===null||token.type!==TYPE$C.Percentage){return 0;}// check range if specified
929if(outOfRange(opts,token.value,token.value.length-1)){return 0;}return 1;}// =========================
930// Numeric
931//
932// https://drafts.csswg.org/css-values-4/#numbers
933// The value <zero> represents a literal number with the value 0. Expressions that merely
934// evaluate to a <number> with the value 0 (for example, calc(0)) do not match <zero>;
935// only literal <number-token>s do.
936function zero(next){if(typeof next!=='function'){next=function next(){return 0;};}return function(token,getNextToken,opts){if(token!==null&&token.type===TYPE$C.Number){if(Number(token.value)===0){return 1;}}return next(token,getNextToken,opts);};}// § 5.3. Real Numbers: the <number> type
937// https://drafts.csswg.org/css-values-4/#numbers
938// Number values are denoted by <number>, and represent real numbers, possibly with a fractional component.
939// ... It corresponds to the <number-token> production
940function number(token,getNextToken,opts){if(token===null){return 0;}var numberEnd=consumeNumber$3(token.value,0);var isNumber=numberEnd===token.value.length;if(!isNumber&&!isPostfixIeHack(token.value,numberEnd)){return 0;}// check range if specified
941if(outOfRange(opts,token.value,numberEnd)){return 0;}return 1;}// §5.2. Integers: the <integer> type
942// https://drafts.csswg.org/css-values-4/#integers
943function integer(token,getNextToken,opts){// ... corresponds to a subset of the <number-token> production
944if(token===null||token.type!==TYPE$C.Number){return 0;}// The first digit of an integer may be immediately preceded by `-` or `+` to indicate the integer’s sign.
945var i=token.value.charCodeAt(0)===0x002B||// U+002B PLUS SIGN (+)
946token.value.charCodeAt(0)===0x002D?1:0;// U+002D HYPHEN-MINUS (-)
947// When written literally, an integer is one or more decimal digits 0 through 9 ...
948for(;i<token.value.length;i++){if(!isDigit$2(token.value.charCodeAt(i))){return 0;}}// check range if specified
949if(outOfRange(opts,token.value,i)){return 0;}return 1;}var generic$1={// token types
950'ident-token':tokenType(TYPE$C.Ident),'function-token':tokenType(TYPE$C.Function),'at-keyword-token':tokenType(TYPE$C.AtKeyword),'hash-token':tokenType(TYPE$C.Hash),'string-token':tokenType(TYPE$C.String),'bad-string-token':tokenType(TYPE$C.BadString),'url-token':tokenType(TYPE$C.Url),'bad-url-token':tokenType(TYPE$C.BadUrl),'delim-token':tokenType(TYPE$C.Delim),'number-token':tokenType(TYPE$C.Number),'percentage-token':tokenType(TYPE$C.Percentage),'dimension-token':tokenType(TYPE$C.Dimension),'whitespace-token':tokenType(TYPE$C.WhiteSpace),'CDO-token':tokenType(TYPE$C.CDO),'CDC-token':tokenType(TYPE$C.CDC),'colon-token':tokenType(TYPE$C.Colon),'semicolon-token':tokenType(TYPE$C.Semicolon),'comma-token':tokenType(TYPE$C.Comma),'[-token':tokenType(TYPE$C.LeftSquareBracket),']-token':tokenType(TYPE$C.RightSquareBracket),'(-token':tokenType(TYPE$C.LeftParenthesis),')-token':tokenType(TYPE$C.RightParenthesis),'{-token':tokenType(TYPE$C.LeftCurlyBracket),'}-token':tokenType(TYPE$C.RightCurlyBracket),// token type aliases
951'string':tokenType(TYPE$C.String),'ident':tokenType(TYPE$C.Ident),// complex types
952'custom-ident':customIdent,'custom-property-name':customPropertyName,'hex-color':hexColor,'id-selector':idSelector,// element( <id-selector> )
953'an-plus-b':anPlusB,'urange':urange,'declaration-value':declarationValue,'any-value':anyValue,// dimensions
954'dimension':calc(dimension(null)),'angle':calc(dimension(ANGLE)),'decibel':calc(dimension(DECIBEL)),'frequency':calc(dimension(FREQUENCY)),'flex':calc(dimension(FLEX)),'length':calc(zero(dimension(LENGTH))),'resolution':calc(dimension(RESOLUTION)),'semitones':calc(dimension(SEMITONES)),'time':calc(dimension(TIME)),// percentage
955'percentage':calc(percentage),// numeric
956'zero':zero(),'number':calc(number),'integer':calc(integer),// old IE stuff
957'-ms-legacy-expression':func('expression')};var createCustomError=createCustomError$3;var _SyntaxError=function SyntaxError(message,input,offset){var error=createCustomError('SyntaxError',message);error.input=input;error.offset=offset;error.rawMessage=message;error.message=error.rawMessage+'\n'+' '+error.input+'\n'+'--'+new Array((error.offset||error.input.length)+1).join('-')+'^';return error;};var SyntaxError$3=_SyntaxError;var TAB$1=9;var N$3=10;var F$2=12;var R$2=13;var SPACE$2=32;var Tokenizer$1=function Tokenizer$1(str){this.str=str;this.pos=0;};Tokenizer$1.prototype={charCodeAt:function charCodeAt(pos){return pos<this.str.length?this.str.charCodeAt(pos):0;},charCode:function charCode(){return this.charCodeAt(this.pos);},nextCharCode:function nextCharCode(){return this.charCodeAt(this.pos+1);},nextNonWsCode:function nextNonWsCode(pos){return this.charCodeAt(this.findWsEnd(pos));},findWsEnd:function findWsEnd(pos){for(;pos<this.str.length;pos++){var code=this.str.charCodeAt(pos);if(code!==R$2&&code!==N$3&&code!==F$2&&code!==SPACE$2&&code!==TAB$1){break;}}return pos;},substringToPos:function substringToPos(end){return this.str.substring(this.pos,this.pos=end);},eat:function eat(code){if(this.charCode()!==code){this.error('Expect `'+String.fromCharCode(code)+'`');}this.pos++;},peek:function peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):'';},error:function error(message){throw new SyntaxError$3(message,this.str,this.pos);}};var tokenizer$1=Tokenizer$1;var Tokenizer=tokenizer$1;var TAB=9;var N$2=10;var F$1=12;var R$1=13;var SPACE$1=32;var EXCLAMATIONMARK$3=33;// !
958var NUMBERSIGN$4=35;// #
959var AMPERSAND$1=38;// &
960var APOSTROPHE=39;// '
961var LEFTPARENTHESIS$7=40;// (
962var RIGHTPARENTHESIS$7=41;// )
963var ASTERISK$6=42;// *
964var PLUSSIGN$6=43;// +
965var COMMA$4=44;// ,
966var HYPERMINUS=45;// -
967var LESSTHANSIGN=60;// <
968var GREATERTHANSIGN$2=62;// >
969var QUESTIONMARK$1=63;// ?
970var COMMERCIALAT=64;// @
971var LEFTSQUAREBRACKET$4=91;// [
972var RIGHTSQUAREBRACKET$2=93;// ]
973var LEFTCURLYBRACKET$4=123;// {
974var VERTICALLINE$3=124;// |
975var RIGHTCURLYBRACKET$2=125;// }
976var INFINITY=8734;// ∞
977var NAME_CHAR=createCharMap(function(ch){return /[a-zA-Z0-9\-]/.test(ch);});var COMBINATOR_PRECEDENCE={' ':1,'&&':2,'||':3,'|':4};function createCharMap(fn){var array=typeof Uint32Array==='function'?new Uint32Array(128):new Array(128);for(var i=0;i<128;i++){array[i]=fn(String.fromCharCode(i))?1:0;}return array;}function scanSpaces(tokenizer){return tokenizer.substringToPos(tokenizer.findWsEnd(tokenizer.pos));}function scanWord(tokenizer){var end=tokenizer.pos;for(;end<tokenizer.str.length;end++){var code=tokenizer.str.charCodeAt(end);if(code>=128||NAME_CHAR[code]===0){break;}}if(tokenizer.pos===end){tokenizer.error('Expect a keyword');}return tokenizer.substringToPos(end);}function scanNumber(tokenizer){var end=tokenizer.pos;for(;end<tokenizer.str.length;end++){var code=tokenizer.str.charCodeAt(end);if(code<48||code>57){break;}}if(tokenizer.pos===end){tokenizer.error('Expect a number');}return tokenizer.substringToPos(end);}function scanString(tokenizer){var end=tokenizer.str.indexOf('\'',tokenizer.pos+1);if(end===-1){tokenizer.pos=tokenizer.str.length;tokenizer.error('Expect an apostrophe');}return tokenizer.substringToPos(end+1);}function readMultiplierRange(tokenizer){var min=null;var max=null;tokenizer.eat(LEFTCURLYBRACKET$4);min=scanNumber(tokenizer);if(tokenizer.charCode()===COMMA$4){tokenizer.pos++;if(tokenizer.charCode()!==RIGHTCURLYBRACKET$2){max=scanNumber(tokenizer);}}else{max=min;}tokenizer.eat(RIGHTCURLYBRACKET$2);return{min:Number(min),max:max?Number(max):0};}function readMultiplier(tokenizer){var range=null;var comma=false;switch(tokenizer.charCode()){case ASTERISK$6:tokenizer.pos++;range={min:0,max:0};break;case PLUSSIGN$6:tokenizer.pos++;range={min:1,max:0};break;case QUESTIONMARK$1:tokenizer.pos++;range={min:0,max:1};break;case NUMBERSIGN$4:tokenizer.pos++;comma=true;if(tokenizer.charCode()===LEFTCURLYBRACKET$4){range=readMultiplierRange(tokenizer);}else{range={min:1,max:0};}break;case LEFTCURLYBRACKET$4:range=readMultiplierRange(tokenizer);break;default:return null;}return{type:'Multiplier',comma:comma,min:range.min,max:range.max,term:null};}function maybeMultiplied(tokenizer,node){var multiplier=readMultiplier(tokenizer);if(multiplier!==null){multiplier.term=node;return multiplier;}return node;}function maybeToken(tokenizer){var ch=tokenizer.peek();if(ch===''){return null;}return{type:'Token',value:ch};}function readProperty$1(tokenizer){var name;tokenizer.eat(LESSTHANSIGN);tokenizer.eat(APOSTROPHE);name=scanWord(tokenizer);tokenizer.eat(APOSTROPHE);tokenizer.eat(GREATERTHANSIGN$2);return maybeMultiplied(tokenizer,{type:'Property',name:name});}// https://drafts.csswg.org/css-values-3/#numeric-ranges
978// 4.1. Range Restrictions and Range Definition Notation
979//
980// Range restrictions can be annotated in the numeric type notation using CSS bracketed
981// range notation—[min,max]—within the angle brackets, after the identifying keyword,
982// indicating a closed range between (and including) min and max.
983// For example, <integer [0, 10]> indicates an integer between 0 and 10, inclusive.
984function readTypeRange(tokenizer){// use null for Infinity to make AST format JSON serializable/deserializable
985var min=null;// -Infinity
986var max=null;// Infinity
987var sign=1;tokenizer.eat(LEFTSQUAREBRACKET$4);if(tokenizer.charCode()===HYPERMINUS){tokenizer.peek();sign=-1;}if(sign==-1&&tokenizer.charCode()===INFINITY){tokenizer.peek();}else{min=sign*Number(scanNumber(tokenizer));}scanSpaces(tokenizer);tokenizer.eat(COMMA$4);scanSpaces(tokenizer);if(tokenizer.charCode()===INFINITY){tokenizer.peek();}else{sign=1;if(tokenizer.charCode()===HYPERMINUS){tokenizer.peek();sign=-1;}max=sign*Number(scanNumber(tokenizer));}tokenizer.eat(RIGHTSQUAREBRACKET$2);// If no range is indicated, either by using the bracketed range notation
988// or in the property description, then [−∞,∞] is assumed.
989if(min===null&&max===null){return null;}return{type:'Range',min:min,max:max};}function readType(tokenizer){var name;var opts=null;tokenizer.eat(LESSTHANSIGN);name=scanWord(tokenizer);if(tokenizer.charCode()===LEFTPARENTHESIS$7&&tokenizer.nextCharCode()===RIGHTPARENTHESIS$7){tokenizer.pos+=2;name+='()';}if(tokenizer.charCodeAt(tokenizer.findWsEnd(tokenizer.pos))===LEFTSQUAREBRACKET$4){scanSpaces(tokenizer);opts=readTypeRange(tokenizer);}tokenizer.eat(GREATERTHANSIGN$2);return maybeMultiplied(tokenizer,{type:'Type',name:name,opts:opts});}function readKeywordOrFunction(tokenizer){var name;name=scanWord(tokenizer);if(tokenizer.charCode()===LEFTPARENTHESIS$7){tokenizer.pos++;return{type:'Function',name:name};}return maybeMultiplied(tokenizer,{type:'Keyword',name:name});}function regroupTerms(terms,combinators){function createGroup(terms,combinator){return{type:'Group',terms:terms,combinator:combinator,disallowEmpty:false,explicit:false};}combinators=Object.keys(combinators).sort(function(a,b){return COMBINATOR_PRECEDENCE[a]-COMBINATOR_PRECEDENCE[b];});while(combinators.length>0){var combinator=combinators.shift();for(var i=0,subgroupStart=0;i<terms.length;i++){var term=terms[i];if(term.type==='Combinator'){if(term.value===combinator){if(subgroupStart===-1){subgroupStart=i-1;}terms.splice(i,1);i--;}else{if(subgroupStart!==-1&&i-subgroupStart>1){terms.splice(subgroupStart,i-subgroupStart,createGroup(terms.slice(subgroupStart,i),combinator));i=subgroupStart+1;}subgroupStart=-1;}}}if(subgroupStart!==-1&&combinators.length){terms.splice(subgroupStart,i-subgroupStart,createGroup(terms.slice(subgroupStart,i),combinator));}}return combinator;}function readImplicitGroup(tokenizer){var terms=[];var combinators={};var token;var prevToken=null;var prevTokenPos=tokenizer.pos;while(token=peek(tokenizer)){if(token.type!=='Spaces'){if(token.type==='Combinator'){// check for combinator in group beginning and double combinator sequence
990if(prevToken===null||prevToken.type==='Combinator'){tokenizer.pos=prevTokenPos;tokenizer.error('Unexpected combinator');}combinators[token.value]=true;}else if(prevToken!==null&&prevToken.type!=='Combinator'){combinators[' ']=true;// a b
991terms.push({type:'Combinator',value:' '});}terms.push(token);prevToken=token;prevTokenPos=tokenizer.pos;}}// check for combinator in group ending
992if(prevToken!==null&&prevToken.type==='Combinator'){tokenizer.pos-=prevTokenPos;tokenizer.error('Unexpected combinator');}return{type:'Group',terms:terms,combinator:regroupTerms(terms,combinators)||' ',disallowEmpty:false,explicit:false};}function readGroup(tokenizer){var result;tokenizer.eat(LEFTSQUAREBRACKET$4);result=readImplicitGroup(tokenizer);tokenizer.eat(RIGHTSQUAREBRACKET$2);result.explicit=true;if(tokenizer.charCode()===EXCLAMATIONMARK$3){tokenizer.pos++;result.disallowEmpty=true;}return result;}function peek(tokenizer){var code=tokenizer.charCode();if(code<128&&NAME_CHAR[code]===1){return readKeywordOrFunction(tokenizer);}switch(code){case RIGHTSQUAREBRACKET$2:// don't eat, stop scan a group
993break;case LEFTSQUAREBRACKET$4:return maybeMultiplied(tokenizer,readGroup(tokenizer));case LESSTHANSIGN:return tokenizer.nextCharCode()===APOSTROPHE?readProperty$1(tokenizer):readType(tokenizer);case VERTICALLINE$3:return{type:'Combinator',value:tokenizer.substringToPos(tokenizer.nextCharCode()===VERTICALLINE$3?tokenizer.pos+2:tokenizer.pos+1)};case AMPERSAND$1:tokenizer.pos++;tokenizer.eat(AMPERSAND$1);return{type:'Combinator',value:'&&'};case COMMA$4:tokenizer.pos++;return{type:'Comma'};case APOSTROPHE:return maybeMultiplied(tokenizer,{type:'String',value:scanString(tokenizer)});case SPACE$1:case TAB:case N$2:case R$1:case F$1:return{type:'Spaces',value:scanSpaces(tokenizer)};case COMMERCIALAT:code=tokenizer.nextCharCode();if(code<128&&NAME_CHAR[code]===1){tokenizer.pos++;return{type:'AtKeyword',name:scanWord(tokenizer)};}return maybeToken(tokenizer);case ASTERISK$6:case PLUSSIGN$6:case QUESTIONMARK$1:case NUMBERSIGN$4:case EXCLAMATIONMARK$3:// prohibited tokens (used as a multiplier start)
994break;case LEFTCURLYBRACKET$4:// LEFTCURLYBRACKET is allowed since mdn/data uses it w/o quoting
995// check next char isn't a number, because it's likely a disjoined multiplier
996code=tokenizer.nextCharCode();if(code<48||code>57){return maybeToken(tokenizer);}break;default:return maybeToken(tokenizer);}}function parse$2(source){var tokenizer=new Tokenizer(source);var result=readImplicitGroup(tokenizer);if(tokenizer.pos!==source.length){tokenizer.error('Unexpected input');}// reduce redundant groups with single group term
997if(result.terms.length===1&&result.terms[0].type==='Group'){result=result.terms[0];}return result;}// warm up parse to elimitate code branches that never execute
998// fix soft deoptimizations (insufficient type feedback)
999parse$2('[a&&<b>#|<\'c\'>*||e() f{2} /,(% g#{1,2} h{2,})]!');var parse_1=parse$2;var noop$2=function noop$2(){};function ensureFunction$1(value){return typeof value==='function'?value:noop$2;}var walk$1=function walk$1(node,options,context){function walk(node){enter.call(context,node);switch(node.type){case'Group':node.terms.forEach(walk);break;case'Multiplier':walk(node.term);break;case'Type':case'Property':case'Keyword':case'AtKeyword':case'Function':case'String':case'Token':case'Comma':break;default:throw new Error('Unknown type: '+node.type);}leave.call(context,node);}var enter=noop$2;var leave=noop$2;if(typeof options==='function'){enter=options;}else if(options){enter=ensureFunction$1(options.enter);leave=ensureFunction$1(options.leave);}if(enter===noop$2&&leave===noop$2){throw new Error('Neither `enter` nor `leave` walker handler is set or both aren\'t a function');}walk(node);};var tokenize$2=tokenizer$3;var TokenStream$2=TokenStream_1;var tokenStream=new TokenStream$2();var astToTokens={decorator:function decorator(handlers){var curNode=null;var prev={len:0,node:null};var nodes=[prev];var buffer='';return{children:handlers.children,node:function node(_node){var tmp=curNode;curNode=_node;handlers.node.call(this,_node);curNode=tmp;},chunk:function chunk(_chunk){buffer+=_chunk;if(prev.node!==curNode){nodes.push({len:_chunk.length,node:curNode});}else{prev.len+=_chunk.length;}},result:function result(){return prepareTokens$1(buffer,nodes);}};}};function prepareTokens$1(str,nodes){var tokens=[];var nodesOffset=0;var nodesIndex=0;var currentNode=nodes?nodes[nodesIndex].node:null;tokenize$2(str,tokenStream);while(!tokenStream.eof){if(nodes){while(nodesIndex<nodes.length&&nodesOffset+nodes[nodesIndex].len<=tokenStream.tokenStart){nodesOffset+=nodes[nodesIndex++].len;currentNode=nodes[nodesIndex].node;}}tokens.push({type:tokenStream.tokenType,value:tokenStream.getTokenValue(),index:tokenStream.tokenIndex,// TODO: remove it, temporary solution
1000balance:tokenStream.balance[tokenStream.tokenIndex],// TODO: remove it, temporary solution
1001node:currentNode});tokenStream.next();// console.log({ ...tokens[tokens.length - 1], node: undefined });
1002}return tokens;}var prepareTokens_1=function prepareTokens_1(value,syntax){if(typeof value==='string'){return prepareTokens$1(value,null);}return syntax.generate(value,astToTokens);};var parse$1=parse_1;var MATCH$1={type:'Match'};var MISMATCH$1={type:'Mismatch'};var DISALLOW_EMPTY$1={type:'DisallowEmpty'};var LEFTPARENTHESIS$6=40;// (
1003var RIGHTPARENTHESIS$6=41;// )
1004function createCondition(match,thenBranch,elseBranch){// reduce node count
1005if(thenBranch===MATCH$1&&elseBranch===MISMATCH$1){return match;}if(match===MATCH$1&&thenBranch===MATCH$1&&elseBranch===MATCH$1){return match;}if(match.type==='If'&&match["else"]===MISMATCH$1&&thenBranch===MATCH$1){thenBranch=match.then;match=match.match;}return{type:'If',match:match,then:thenBranch,"else":elseBranch};}function isFunctionType(name){return name.length>2&&name.charCodeAt(name.length-2)===LEFTPARENTHESIS$6&&name.charCodeAt(name.length-1)===RIGHTPARENTHESIS$6;}function isEnumCapatible(term){return term.type==='Keyword'||term.type==='AtKeyword'||term.type==='Function'||term.type==='Type'&&isFunctionType(term.name);}function buildGroupMatchGraph(combinator,terms,atLeastOneTermMatched){switch(combinator){case' ':// Juxtaposing components means that all of them must occur, in the given order.
1006//
1007// a b c
1008// =
1009// match a
1010// then match b
1011// then match c
1012// then MATCH
1013// else MISMATCH
1014// else MISMATCH
1015// else MISMATCH
1016var result=MATCH$1;for(var i=terms.length-1;i>=0;i--){var term=terms[i];result=createCondition(term,result,MISMATCH$1);}return result;case'|':// A bar (|) separates two or more alternatives: exactly one of them must occur.
1017//
1018// a | b | c
1019// =
1020// match a
1021// then MATCH
1022// else match b
1023// then MATCH
1024// else match c
1025// then MATCH
1026// else MISMATCH
1027var result=MISMATCH$1;var map=null;for(var i=terms.length-1;i>=0;i--){var term=terms[i];// reduce sequence of keywords into a Enum
1028if(isEnumCapatible(term)){if(map===null&&i>0&&isEnumCapatible(terms[i-1])){map=Object.create(null);result=createCondition({type:'Enum',map:map},MATCH$1,result);}if(map!==null){var key=(isFunctionType(term.name)?term.name.slice(0,-1):term.name).toLowerCase();if(key in map===false){map[key]=term;continue;}}}map=null;// create a new conditonal node
1029result=createCondition(term,MATCH$1,result);}return result;case'&&':// A double ampersand (&&) separates two or more components,
1030// all of which must occur, in any order.
1031// Use MatchOnce for groups with a large number of terms,
1032// since &&-groups produces at least N!-node trees
1033if(terms.length>5){return{type:'MatchOnce',terms:terms,all:true};}// Use a combination tree for groups with small number of terms
1034//
1035// a && b && c
1036// =
1037// match a
1038// then [b && c]
1039// else match b
1040// then [a && c]
1041// else match c
1042// then [a && b]
1043// else MISMATCH
1044//
1045// a && b
1046// =
1047// match a
1048// then match b
1049// then MATCH
1050// else MISMATCH
1051// else match b
1052// then match a
1053// then MATCH
1054// else MISMATCH
1055// else MISMATCH
1056var result=MISMATCH$1;for(var i=terms.length-1;i>=0;i--){var term=terms[i];var thenClause;if(terms.length>1){thenClause=buildGroupMatchGraph(combinator,terms.filter(function(newGroupTerm){return newGroupTerm!==term;}),false);}else{thenClause=MATCH$1;}result=createCondition(term,thenClause,result);}return result;case'||':// A double bar (||) separates two or more options:
1057// one or more of them must occur, in any order.
1058// Use MatchOnce for groups with a large number of terms,
1059// since ||-groups produces at least N!-node trees
1060if(terms.length>5){return{type:'MatchOnce',terms:terms,all:false};}// Use a combination tree for groups with small number of terms
1061//
1062// a || b || c
1063// =
1064// match a
1065// then [b || c]
1066// else match b
1067// then [a || c]
1068// else match c
1069// then [a || b]
1070// else MISMATCH
1071//
1072// a || b
1073// =
1074// match a
1075// then match b
1076// then MATCH
1077// else MATCH
1078// else match b
1079// then match a
1080// then MATCH
1081// else MATCH
1082// else MISMATCH
1083var result=atLeastOneTermMatched?MATCH$1:MISMATCH$1;for(var i=terms.length-1;i>=0;i--){var term=terms[i];var thenClause;if(terms.length>1){thenClause=buildGroupMatchGraph(combinator,terms.filter(function(newGroupTerm){return newGroupTerm!==term;}),true);}else{thenClause=MATCH$1;}result=createCondition(term,thenClause,result);}return result;}}function buildMultiplierMatchGraph(node){var result=MATCH$1;var matchTerm=buildMatchGraph$1(node.term);if(node.max===0){// disable repeating of empty match to prevent infinite loop
1084matchTerm=createCondition(matchTerm,DISALLOW_EMPTY$1,MISMATCH$1);// an occurrence count is not limited, make a cycle;
1085// to collect more terms on each following matching mismatch
1086result=createCondition(matchTerm,null,// will be a loop
1087MISMATCH$1);result.then=createCondition(MATCH$1,MATCH$1,result// make a loop
1088);if(node.comma){result.then["else"]=createCondition({type:'Comma',syntax:node},result,MISMATCH$1);}}else{// create a match node chain for [min .. max] interval with optional matches
1089for(var i=node.min||1;i<=node.max;i++){if(node.comma&&result!==MATCH$1){result=createCondition({type:'Comma',syntax:node},result,MISMATCH$1);}result=createCondition(matchTerm,createCondition(MATCH$1,MATCH$1,result),MISMATCH$1);}}if(node.min===0){// allow zero match
1090result=createCondition(MATCH$1,MATCH$1,result);}else{// create a match node chain to collect [0 ... min - 1] required matches
1091for(var i=0;i<node.min-1;i++){if(node.comma&&result!==MATCH$1){result=createCondition({type:'Comma',syntax:node},result,MISMATCH$1);}result=createCondition(matchTerm,result,MISMATCH$1);}}return result;}function buildMatchGraph$1(node){if(typeof node==='function'){return{type:'Generic',fn:node};}switch(node.type){case'Group':var result=buildGroupMatchGraph(node.combinator,node.terms.map(buildMatchGraph$1),false);if(node.disallowEmpty){result=createCondition(result,DISALLOW_EMPTY$1,MISMATCH$1);}return result;case'Multiplier':return buildMultiplierMatchGraph(node);case'Type':case'Property':return{type:node.type,name:node.name,syntax:node};case'Keyword':return{type:node.type,name:node.name.toLowerCase(),syntax:node};case'AtKeyword':return{type:node.type,name:'@'+node.name.toLowerCase(),syntax:node};case'Function':return{type:node.type,name:node.name.toLowerCase()+'(',syntax:node};case'String':// convert a one char length String to a Token
1092if(node.value.length===3){return{type:'Token',value:node.value.charAt(1),syntax:node};}// otherwise use it as is
1093return{type:node.type,value:node.value.substr(1,node.value.length-2).replace(/\\'/g,'\''),syntax:node};case'Token':return{type:node.type,value:node.value,syntax:node};case'Comma':return{type:node.type,syntax:node};default:throw new Error('Unknown node type:',node.type);}}var matchGraph$1={MATCH:MATCH$1,MISMATCH:MISMATCH$1,DISALLOW_EMPTY:DISALLOW_EMPTY$1,buildMatchGraph:function buildMatchGraph(syntaxTree,ref){if(typeof syntaxTree==='string'){syntaxTree=parse$1(syntaxTree);}return{type:'MatchGraph',match:buildMatchGraph$1(syntaxTree),syntax:ref||null,source:syntaxTree};}};var hasOwnProperty$6=Object.prototype.hasOwnProperty;var matchGraph=matchGraph$1;var MATCH=matchGraph.MATCH;var MISMATCH=matchGraph.MISMATCH;var DISALLOW_EMPTY=matchGraph.DISALLOW_EMPTY;var TYPE$B=_const.TYPE;var STUB=0;var TOKEN=1;var OPEN_SYNTAX=2;var CLOSE_SYNTAX=3;var EXIT_REASON_MATCH='Match';var EXIT_REASON_MISMATCH='Mismatch';var EXIT_REASON_ITERATION_LIMIT='Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)';var ITERATION_LIMIT=15000;var totalIterationCount=0;function reverseList(list){var prev=null;var next=null;var item=list;while(item!==null){next=item.prev;item.prev=prev;prev=item;item=next;}return prev;}function areStringsEqualCaseInsensitive(testStr,referenceStr){if(testStr.length!==referenceStr.length){return false;}for(var i=0;i<testStr.length;i++){var testCode=testStr.charCodeAt(i);var referenceCode=referenceStr.charCodeAt(i);// testCode.toLowerCase() for U+0041 LATIN CAPITAL LETTER A (A) .. U+005A LATIN CAPITAL LETTER Z (Z).
1094if(testCode>=0x0041&&testCode<=0x005A){testCode=testCode|32;}if(testCode!==referenceCode){return false;}}return true;}function isContextEdgeDelim(token){if(token.type!==TYPE$B.Delim){return false;}// Fix matching for unicode-range: U+30??, U+FF00-FF9F
1095// Probably we need to check out previous match instead
1096return token.value!=='?';}function isCommaContextStart(token){if(token===null){return true;}return token.type===TYPE$B.Comma||token.type===TYPE$B.Function||token.type===TYPE$B.LeftParenthesis||token.type===TYPE$B.LeftSquareBracket||token.type===TYPE$B.LeftCurlyBracket||isContextEdgeDelim(token);}function isCommaContextEnd(token){if(token===null){return true;}return token.type===TYPE$B.RightParenthesis||token.type===TYPE$B.RightSquareBracket||token.type===TYPE$B.RightCurlyBracket||token.type===TYPE$B.Delim;}function internalMatch(tokens,state,syntaxes){function moveToNextToken(){do{tokenIndex++;token=tokenIndex<tokens.length?tokens[tokenIndex]:null;}while(token!==null&&(token.type===TYPE$B.WhiteSpace||token.type===TYPE$B.Comment));}function getNextToken(offset){var nextIndex=tokenIndex+offset;return nextIndex<tokens.length?tokens[nextIndex]:null;}function stateSnapshotFromSyntax(nextState,prev){return{nextState:nextState,matchStack:matchStack,syntaxStack:syntaxStack,thenStack:thenStack,tokenIndex:tokenIndex,prev:prev};}function pushThenStack(nextState){thenStack={nextState:nextState,matchStack:matchStack,syntaxStack:syntaxStack,prev:thenStack};}function pushElseStack(nextState){elseStack=stateSnapshotFromSyntax(nextState,elseStack);}function addTokenToMatch(){matchStack={type:TOKEN,syntax:state.syntax,token:token,prev:matchStack};moveToNextToken();syntaxStash=null;if(tokenIndex>longestMatch){longestMatch=tokenIndex;}}function openSyntax(){syntaxStack={syntax:state.syntax,opts:state.syntax.opts||syntaxStack!==null&&syntaxStack.opts||null,prev:syntaxStack};matchStack={type:OPEN_SYNTAX,syntax:state.syntax,token:matchStack.token,prev:matchStack};}function closeSyntax(){if(matchStack.type===OPEN_SYNTAX){matchStack=matchStack.prev;}else{matchStack={type:CLOSE_SYNTAX,syntax:syntaxStack.syntax,token:matchStack.token,prev:matchStack};}syntaxStack=syntaxStack.prev;}var syntaxStack=null;var thenStack=null;var elseStack=null;// null – stashing allowed, nothing stashed
1097// false – stashing disabled, nothing stashed
1098// anithing else – fail stashable syntaxes, some syntax stashed
1099var syntaxStash=null;var iterationCount=0;// count iterations and prevent infinite loop
1100var exitReason=null;var token=null;var tokenIndex=-1;var longestMatch=0;var matchStack={type:STUB,syntax:null,token:null,prev:null};moveToNextToken();while(exitReason===null&&++iterationCount<ITERATION_LIMIT){// function mapList(list, fn) {
1101// var result = [];
1102// while (list) {
1103// result.unshift(fn(list));
1104// list = list.prev;
1105// }
1106// return result;
1107// }
1108// console.log('--\n',
1109// '#' + iterationCount,
1110// require('util').inspect({
1111// match: mapList(matchStack, x => x.type === TOKEN ? x.token && x.token.value : x.syntax ? ({ [OPEN_SYNTAX]: '<', [CLOSE_SYNTAX]: '</' }[x.type] || x.type) + '!' + x.syntax.name : null),
1112// token: token && token.value,
1113// tokenIndex,
1114// syntax: syntax.type + (syntax.id ? ' #' + syntax.id : '')
1115// }, { depth: null })
1116// );
1117switch(state.type){case'Match':if(thenStack===null){// turn to MISMATCH when some tokens left unmatched
1118if(token!==null){// doesn't mismatch if just one token left and it's an IE hack
1119if(tokenIndex!==tokens.length-1||token.value!=='\\0'&&token.value!=='\\9'){state=MISMATCH;break;}}// break the main loop, return a result - MATCH
1120exitReason=EXIT_REASON_MATCH;break;}// go to next syntax (`then` branch)
1121state=thenStack.nextState;// check match is not empty
1122if(state===DISALLOW_EMPTY){if(thenStack.matchStack===matchStack){state=MISMATCH;break;}else{state=MATCH;}}// close syntax if needed
1123while(thenStack.syntaxStack!==syntaxStack){closeSyntax();}// pop stack
1124thenStack=thenStack.prev;break;case'Mismatch':// when some syntax is stashed
1125if(syntaxStash!==null&&syntaxStash!==false){// there is no else branches or a branch reduce match stack
1126if(elseStack===null||tokenIndex>elseStack.tokenIndex){// restore state from the stash
1127elseStack=syntaxStash;syntaxStash=false;// disable stashing
1128}}else if(elseStack===null){// no else branches -> break the main loop
1129// return a result - MISMATCH
1130exitReason=EXIT_REASON_MISMATCH;break;}// go to next syntax (`else` branch)
1131state=elseStack.nextState;// restore all the rest stack states
1132thenStack=elseStack.thenStack;syntaxStack=elseStack.syntaxStack;matchStack=elseStack.matchStack;tokenIndex=elseStack.tokenIndex;token=tokenIndex<tokens.length?tokens[tokenIndex]:null;// pop stack
1133elseStack=elseStack.prev;break;case'MatchGraph':state=state.match;break;case'If':// IMPORTANT: else stack push must go first,
1134// since it stores the state of thenStack before changes
1135if(state["else"]!==MISMATCH){pushElseStack(state["else"]);}if(state.then!==MATCH){pushThenStack(state.then);}state=state.match;break;case'MatchOnce':state={type:'MatchOnceBuffer',syntax:state,index:0,mask:0};break;case'MatchOnceBuffer':var terms=state.syntax.terms;if(state.index===terms.length){// no matches at all or it's required all terms to be matched
1136if(state.mask===0||state.syntax.all){state=MISMATCH;break;}// a partial match is ok
1137state=MATCH;break;}// all terms are matched
1138if(state.mask===(1<<terms.length)-1){state=MATCH;break;}for(;state.index<terms.length;state.index++){var matchFlag=1<<state.index;if((state.mask&matchFlag)===0){// IMPORTANT: else stack push must go first,
1139// since it stores the state of thenStack before changes
1140pushElseStack(state);pushThenStack({type:'AddMatchOnce',syntax:state.syntax,mask:state.mask|matchFlag});// match
1141state=terms[state.index++];break;}}break;case'AddMatchOnce':state={type:'MatchOnceBuffer',syntax:state.syntax,index:0,mask:state.mask};break;case'Enum':if(token!==null){var name=token.value.toLowerCase();// drop \0 and \9 hack from keyword name
1142if(name.indexOf('\\')!==-1){name=name.replace(/\\[09].*$/,'');}if(hasOwnProperty$6.call(state.map,name)){state=state.map[name];break;}}state=MISMATCH;break;case'Generic':var opts=syntaxStack!==null?syntaxStack.opts:null;var lastTokenIndex=tokenIndex+Math.floor(state.fn(token,getNextToken,opts));if(!isNaN(lastTokenIndex)&&lastTokenIndex>tokenIndex){while(tokenIndex<lastTokenIndex){addTokenToMatch();}state=MATCH;}else{state=MISMATCH;}break;case'Type':case'Property':var syntaxDict=state.type==='Type'?'types':'properties';var dictSyntax=hasOwnProperty$6.call(syntaxes,syntaxDict)?syntaxes[syntaxDict][state.name]:null;if(!dictSyntax||!dictSyntax.match){throw new Error('Bad syntax reference: '+(state.type==='Type'?'<'+state.name+'>':'<\''+state.name+'\'>'));}// stash a syntax for types with low priority
1143if(syntaxStash!==false&&token!==null&&state.type==='Type'){var lowPriorityMatching=// https://drafts.csswg.org/css-values-4/#custom-idents
1144// When parsing positionally-ambiguous keywords in a property value, a <custom-ident> production
1145// can only claim the keyword if no other unfulfilled production can claim it.
1146state.name==='custom-ident'&&token.type===TYPE$B.Ident||// https://drafts.csswg.org/css-values-4/#lengths
1147// ... if a `0` could be parsed as either a <number> or a <length> in a property (such as line-height),
1148// it must parse as a <number>
1149state.name==='length'&&token.value==='0';if(lowPriorityMatching){if(syntaxStash===null){syntaxStash=stateSnapshotFromSyntax(state,elseStack);}state=MISMATCH;break;}}openSyntax();state=dictSyntax.match;break;case'Keyword':var name=state.name;if(token!==null){var keywordName=token.value;// drop \0 and \9 hack from keyword name
1150if(keywordName.indexOf('\\')!==-1){keywordName=keywordName.replace(/\\[09].*$/,'');}if(areStringsEqualCaseInsensitive(keywordName,name)){addTokenToMatch();state=MATCH;break;}}state=MISMATCH;break;case'AtKeyword':case'Function':if(token!==null&&areStringsEqualCaseInsensitive(token.value,state.name)){addTokenToMatch();state=MATCH;break;}state=MISMATCH;break;case'Token':if(token!==null&&token.value===state.value){addTokenToMatch();state=MATCH;break;}state=MISMATCH;break;case'Comma':if(token!==null&&token.type===TYPE$B.Comma){if(isCommaContextStart(matchStack.token)){state=MISMATCH;}else{addTokenToMatch();state=isCommaContextEnd(token)?MISMATCH:MATCH;}}else{state=isCommaContextStart(matchStack.token)||isCommaContextEnd(token)?MATCH:MISMATCH;}break;case'String':var string='';for(var lastTokenIndex=tokenIndex;lastTokenIndex<tokens.length&&string.length<state.value.length;lastTokenIndex++){string+=tokens[lastTokenIndex].value;}if(areStringsEqualCaseInsensitive(string,state.value)){while(tokenIndex<lastTokenIndex){addTokenToMatch();}state=MATCH;}else{state=MISMATCH;}break;default:throw new Error('Unknown node type: '+state.type);}}totalIterationCount+=iterationCount;switch(exitReason){case null:console.warn('[csstree-match] BREAK after '+ITERATION_LIMIT+' iterations');exitReason=EXIT_REASON_ITERATION_LIMIT;matchStack=null;break;case EXIT_REASON_MATCH:while(syntaxStack!==null){closeSyntax();}break;default:matchStack=null;}return{tokens:tokens,reason:exitReason,iterations:iterationCount,match:matchStack,longestMatch:longestMatch};}function matchAsList(tokens,matchGraph,syntaxes){var matchResult=internalMatch(tokens,matchGraph,syntaxes||{});if(matchResult.match!==null){var item=reverseList(matchResult.match).prev;matchResult.match=[];while(item!==null){switch(item.type){case STUB:break;case OPEN_SYNTAX:case CLOSE_SYNTAX:matchResult.match.push({type:item.type,syntax:item.syntax});break;default:matchResult.match.push({token:item.token.value,node:item.token.node});break;}item=item.prev;}}return matchResult;}function matchAsTree$1(tokens,matchGraph,syntaxes){var matchResult=internalMatch(tokens,matchGraph,syntaxes||{});if(matchResult.match===null){return matchResult;}var item=matchResult.match;var host=matchResult.match={syntax:matchGraph.syntax||null,match:[]};var hostStack=[host];// revert a list and start with 2nd item since 1st is a stub item
1151item=reverseList(item).prev;// build a tree
1152while(item!==null){switch(item.type){case OPEN_SYNTAX:host.match.push(host={syntax:item.syntax,match:[]});hostStack.push(host);break;case CLOSE_SYNTAX:hostStack.pop();host=hostStack[hostStack.length-1];break;default:host.match.push({syntax:item.syntax||null,token:item.token.value,node:item.token.node});}item=item.prev;}return matchResult;}var match={matchAsList:matchAsList,matchAsTree:matchAsTree$1,getTotalIterationCount:function getTotalIterationCount(){return totalIterationCount;}};function getTrace(node){function shouldPutToTrace(syntax){if(syntax===null){return false;}return syntax.type==='Type'||syntax.type==='Property'||syntax.type==='Keyword';}function hasMatch(matchNode){if(Array.isArray(matchNode.match)){// use for-loop for better perfomance
1153for(var i=0;i<matchNode.match.length;i++){if(hasMatch(matchNode.match[i])){if(shouldPutToTrace(matchNode.syntax)){result.unshift(matchNode.syntax);}return true;}}}else if(matchNode.node===node){result=shouldPutToTrace(matchNode.syntax)?[matchNode.syntax]:[];return true;}return false;}var result=null;if(this.matched!==null){hasMatch(this.matched);}return result;}function testNode(match,node,fn){var trace=getTrace.call(match,node);if(trace===null){return false;}return trace.some(fn);}function isType(node,type){return testNode(this,node,function(matchNode){return matchNode.type==='Type'&&matchNode.name===type;});}function isProperty(node,property){return testNode(this,node,function(matchNode){return matchNode.type==='Property'&&matchNode.name===property;});}function isKeyword(node){return testNode(this,node,function(matchNode){return matchNode.type==='Keyword';});}var trace$1={getTrace:getTrace,isType:isType,isProperty:isProperty,isKeyword:isKeyword};var List$5=List_1;function getFirstMatchNode(matchNode){if('node'in matchNode){return matchNode.node;}return getFirstMatchNode(matchNode.match[0]);}function getLastMatchNode(matchNode){if('node'in matchNode){return matchNode.node;}return getLastMatchNode(matchNode.match[matchNode.match.length-1]);}function matchFragments(lexer,ast,match,type,name){function findFragments(matchNode){if(matchNode.syntax!==null&&matchNode.syntax.type===type&&matchNode.syntax.name===name){var start=getFirstMatchNode(matchNode);var end=getLastMatchNode(matchNode);lexer.syntax.walk(ast,function(node,item,list){if(node===start){var nodes=new List$5();do{nodes.appendData(item.data);if(item.data===end){break;}item=item.next;}while(item!==null);fragments.push({parent:list,nodes:nodes});}});}if(Array.isArray(matchNode.match)){matchNode.match.forEach(findFragments);}}var fragments=[];if(match.matched!==null){findFragments(match.matched);}return fragments;}var search$1={matchFragments:matchFragments};var List$4=List_1;var hasOwnProperty$5=Object.prototype.hasOwnProperty;function isValidNumber(value){// Number.isInteger(value) && value >= 0
1154return typeof value==='number'&&isFinite(value)&&Math.floor(value)===value&&value>=0;}function isValidLocation(loc){return Boolean(loc)&&isValidNumber(loc.offset)&&isValidNumber(loc.line)&&isValidNumber(loc.column);}function createNodeStructureChecker(type,fields){return function checkNode(node,warn){if(!node||node.constructor!==Object){return warn(node,'Type of node should be an Object');}for(var key in node){var valid=true;if(hasOwnProperty$5.call(node,key)===false){continue;}if(key==='type'){if(node.type!==type){warn(node,'Wrong node type `'+node.type+'`, expected `'+type+'`');}}else if(key==='loc'){if(node.loc===null){continue;}else if(node.loc&&node.loc.constructor===Object){if(typeof node.loc.source!=='string'){key+='.source';}else if(!isValidLocation(node.loc.start)){key+='.start';}else if(!isValidLocation(node.loc.end)){key+='.end';}else{continue;}}valid=false;}else if(fields.hasOwnProperty(key)){for(var i=0,valid=false;!valid&&i<fields[key].length;i++){var fieldType=fields[key][i];switch(fieldType){case String:valid=typeof node[key]==='string';break;case Boolean:valid=typeof node[key]==='boolean';break;case null:valid=node[key]===null;break;default:if(typeof fieldType==='string'){valid=node[key]&&node[key].type===fieldType;}else if(Array.isArray(fieldType)){valid=node[key]instanceof List$4;}}}}else{warn(node,'Unknown field `'+key+'` for '+type+' node type');}if(!valid){warn(node,'Bad value for `'+type+'.'+key+'`');}}for(var key in fields){if(hasOwnProperty$5.call(fields,key)&&hasOwnProperty$5.call(node,key)===false){warn(node,'Field `'+type+'.'+key+'` is missed');}}};}function processStructure(name,nodeType){var structure=nodeType.structure;var fields={type:String,loc:true};var docs={type:'"'+name+'"'};for(var key in structure){if(hasOwnProperty$5.call(structure,key)===false){continue;}var docsTypes=[];var fieldTypes=fields[key]=Array.isArray(structure[key])?structure[key].slice():[structure[key]];for(var i=0;i<fieldTypes.length;i++){var fieldType=fieldTypes[i];if(fieldType===String||fieldType===Boolean){docsTypes.push(fieldType.name);}else if(fieldType===null){docsTypes.push('null');}else if(typeof fieldType==='string'){docsTypes.push('<'+fieldType+'>');}else if(Array.isArray(fieldType)){docsTypes.push('List');// TODO: use type enum
1155}else{throw new Error('Wrong value `'+fieldType+'` in `'+name+'.'+key+'` structure definition');}}docs[key]=docsTypes.join(' | ');}return{docs:docs,check:createNodeStructureChecker(name,fields)};}var structure={getStructureFromConfig:function getStructureFromConfig(config){var structure={};if(config.node){for(var name in config.node){if(hasOwnProperty$5.call(config.node,name)){var nodeType=config.node[name];if(nodeType.structure){structure[name]=processStructure(name,nodeType);}else{throw new Error('Missed `structure` field in `'+name+'` node type definition');}}}}return structure;}};var SyntaxReferenceError=error.SyntaxReferenceError;var SyntaxMatchError=error.SyntaxMatchError;var names$1=names$2;var generic=generic$1;var parse=parse_1;var generate=generate_1;var walk=walk$1;var prepareTokens=prepareTokens_1;var buildMatchGraph=matchGraph$1.buildMatchGraph;var matchAsTree=match.matchAsTree;var trace=trace$1;var search=search$1;var getStructureFromConfig=structure.getStructureFromConfig;var cssWideKeywords=buildMatchGraph('inherit | initial | unset');var cssWideKeywordsWithExpression=buildMatchGraph('inherit | initial | unset | <-ms-legacy-expression>');function dumpMapSyntax(map,compact,syntaxAsAst){var result={};for(var name in map){if(map[name].syntax){result[name]=syntaxAsAst?map[name].syntax:generate(map[name].syntax,{compact:compact});}}return result;}function dumpAtruleMapSyntax(map,compact,syntaxAsAst){var result={};for(var _i5=0,_Object$entries=Object.entries(map);_i5<_Object$entries.length;_i5++){var _Object$entries$_i=(0,_slicedToArray2["default"])(_Object$entries[_i5],2),_name=_Object$entries$_i[0],_atrule=_Object$entries$_i[1];result[_name]={prelude:_atrule.prelude&&(syntaxAsAst?_atrule.prelude.syntax:generate(_atrule.prelude.syntax,{compact:compact})),descriptors:_atrule.descriptors&&dumpMapSyntax(_atrule.descriptors,compact,syntaxAsAst)};}return result;}function valueHasVar(tokens){for(var i=0;i<tokens.length;i++){if(tokens[i].value.toLowerCase()==='var('){return true;}}return false;}function buildMatchResult(match,error,iterations){return{matched:match,iterations:iterations,error:error,getTrace:trace.getTrace,isType:trace.isType,isProperty:trace.isProperty,isKeyword:trace.isKeyword};}function matchSyntax(lexer,syntax,value,useCommon){var tokens=prepareTokens(value,lexer.syntax);var result;if(valueHasVar(tokens)){return buildMatchResult(null,new Error('Matching for a tree with var() is not supported'));}if(useCommon){result=matchAsTree(tokens,lexer.valueCommonSyntax,lexer);}if(!useCommon||!result.match){result=matchAsTree(tokens,syntax.match,lexer);if(!result.match){return buildMatchResult(null,new SyntaxMatchError(result.reason,syntax.syntax,value,result),result.iterations);}}return buildMatchResult(result.match,null,result.iterations);}var Lexer$1=function Lexer$1(config,syntax,structure){this.valueCommonSyntax=cssWideKeywords;this.syntax=syntax;this.generic=false;this.atrules={};this.properties={};this.types={};this.structure=structure||getStructureFromConfig(config);if(config){if(config.types){for(var name in config.types){this.addType_(name,config.types[name]);}}if(config.generic){this.generic=true;for(var name in generic){this.addType_(name,generic[name]);}}if(config.atrules){for(var name in config.atrules){this.addAtrule_(name,config.atrules[name]);}}if(config.properties){for(var name in config.properties){this.addProperty_(name,config.properties[name]);}}}};Lexer$1.prototype={structure:{},checkStructure:function checkStructure(ast){function collectWarning(node,message){warns.push({node:node,message:message});}var structure=this.structure;var warns=[];this.syntax.walk(ast,function(node){if(structure.hasOwnProperty(node.type)){structure[node.type].check(node,collectWarning);}else{collectWarning(node,'Unknown node type `'+node.type+'`');}});return warns.length?warns:false;},createDescriptor:function createDescriptor(syntax,type,name){var parent=arguments.length>3&&arguments[3]!==undefined?arguments[3]:null;var ref={type:type,name:name};var descriptor={type:type,name:name,parent:parent,syntax:null,match:null};if(typeof syntax==='function'){descriptor.match=buildMatchGraph(syntax,ref);}else{if(typeof syntax==='string'){// lazy parsing on first access
1156Object.defineProperty(descriptor,'syntax',{get:function get(){Object.defineProperty(descriptor,'syntax',{value:parse(syntax)});return descriptor.syntax;}});}else{descriptor.syntax=syntax;}// lazy graph build on first access
1157Object.defineProperty(descriptor,'match',{get:function get(){Object.defineProperty(descriptor,'match',{value:buildMatchGraph(descriptor.syntax,ref)});return descriptor.match;}});}return descriptor;},addAtrule_:function addAtrule_(name,syntax){var _this11=this;if(!syntax){return;}this.atrules[name]={type:'Atrule',name:name,prelude:syntax.prelude?this.createDescriptor(syntax.prelude,'AtrulePrelude',name):null,descriptors:syntax.descriptors?Object.keys(syntax.descriptors).reduce(function(res,descName){res[descName]=_this11.createDescriptor(syntax.descriptors[descName],'AtruleDescriptor',descName,name);return res;},{}):null};},addProperty_:function addProperty_(name,syntax){if(!syntax){return;}this.properties[name]=this.createDescriptor(syntax,'Property',name);},addType_:function addType_(name,syntax){if(!syntax){return;}this.types[name]=this.createDescriptor(syntax,'Type',name);if(syntax===generic['-ms-legacy-expression']){this.valueCommonSyntax=cssWideKeywordsWithExpression;}},checkAtruleName:function checkAtruleName(atruleName){if(!this.getAtrule(atruleName)){return new SyntaxReferenceError('Unknown at-rule','@'+atruleName);}},checkAtrulePrelude:function checkAtrulePrelude(atruleName,prelude){var error=this.checkAtruleName(atruleName);if(error){return error;}var atrule=this.getAtrule(atruleName);if(!atrule.prelude&&prelude){return new SyntaxError('At-rule `@'+atruleName+'` should not contain a prelude');}if(atrule.prelude&&!prelude){return new SyntaxError('At-rule `@'+atruleName+'` should contain a prelude');}},checkAtruleDescriptorName:function checkAtruleDescriptorName(atruleName,descriptorName){var error=this.checkAtruleName(atruleName);if(error){return error;}var atrule=this.getAtrule(atruleName);var descriptor=names$1.keyword(descriptorName);if(!atrule.descriptors){return new SyntaxError('At-rule `@'+atruleName+'` has no known descriptors');}if(!atrule.descriptors[descriptor.name]&&!atrule.descriptors[descriptor.basename]){return new SyntaxReferenceError('Unknown at-rule descriptor',descriptorName);}},checkPropertyName:function checkPropertyName(propertyName){var property=names$1.property(propertyName);// don't match syntax for a custom property
1158if(property.custom){return new Error('Lexer matching doesn\'t applicable for custom properties');}if(!this.getProperty(propertyName)){return new SyntaxReferenceError('Unknown property',propertyName);}},matchAtrulePrelude:function matchAtrulePrelude(atruleName,prelude){var error=this.checkAtrulePrelude(atruleName,prelude);if(error){return buildMatchResult(null,error);}if(!prelude){return buildMatchResult(null,null);}return matchSyntax(this,this.getAtrule(atruleName).prelude,prelude,false);},matchAtruleDescriptor:function matchAtruleDescriptor(atruleName,descriptorName,value){var error=this.checkAtruleDescriptorName(atruleName,descriptorName);if(error){return buildMatchResult(null,error);}var atrule=this.getAtrule(atruleName);var descriptor=names$1.keyword(descriptorName);return matchSyntax(this,atrule.descriptors[descriptor.name]||atrule.descriptors[descriptor.basename],value,false);},matchDeclaration:function matchDeclaration(node){if(node.type!=='Declaration'){return buildMatchResult(null,new Error('Not a Declaration node'));}return this.matchProperty(node.property,node.value);},matchProperty:function matchProperty(propertyName,value){var error=this.checkPropertyName(propertyName);if(error){return buildMatchResult(null,error);}return matchSyntax(this,this.getProperty(propertyName),value,true);},matchType:function matchType(typeName,value){var typeSyntax=this.getType(typeName);if(!typeSyntax){return buildMatchResult(null,new SyntaxReferenceError('Unknown type',typeName));}return matchSyntax(this,typeSyntax,value,false);},match:function match(syntax,value){if(typeof syntax!=='string'&&(!syntax||!syntax.type)){return buildMatchResult(null,new SyntaxReferenceError('Bad syntax'));}if(typeof syntax==='string'||!syntax.match){syntax=this.createDescriptor(syntax,'Type','anonymous');}return matchSyntax(this,syntax,value,false);},findValueFragments:function findValueFragments(propertyName,value,type,name){return search.matchFragments(this,value,this.matchProperty(propertyName,value),type,name);},findDeclarationValueFragments:function findDeclarationValueFragments(declaration,type,name){return search.matchFragments(this,declaration.value,this.matchDeclaration(declaration),type,name);},findAllFragments:function findAllFragments(ast,type,name){var result=[];this.syntax.walk(ast,{visit:'Declaration',enter:function(declaration){result.push.apply(result,this.findDeclarationValueFragments(declaration,type,name));}.bind(this)});return result;},getAtrule:function getAtrule(atruleName){var fallbackBasename=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var atrule=names$1.keyword(atruleName);var atruleEntry=atrule.vendor&&fallbackBasename?this.atrules[atrule.name]||this.atrules[atrule.basename]:this.atrules[atrule.name];return atruleEntry||null;},getAtrulePrelude:function getAtrulePrelude(atruleName){var fallbackBasename=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var atrule=this.getAtrule(atruleName,fallbackBasename);return atrule&&atrule.prelude||null;},getAtruleDescriptor:function getAtruleDescriptor(atruleName,name){return this.atrules.hasOwnProperty(atruleName)&&this.atrules.declarators?this.atrules[atruleName].declarators[name]||null:null;},getProperty:function getProperty(propertyName){var fallbackBasename=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var property=names$1.property(propertyName);var propertyEntry=property.vendor&&fallbackBasename?this.properties[property.name]||this.properties[property.basename]:this.properties[property.name];return propertyEntry||null;},getType:function getType(name){return this.types.hasOwnProperty(name)?this.types[name]:null;},validate:function validate(){function validate(syntax,name,broken,descriptor){if(broken.hasOwnProperty(name)){return broken[name];}broken[name]=false;if(descriptor.syntax!==null){walk(descriptor.syntax,function(node){if(node.type!=='Type'&&node.type!=='Property'){return;}var map=node.type==='Type'?syntax.types:syntax.properties;var brokenMap=node.type==='Type'?brokenTypes:brokenProperties;if(!map.hasOwnProperty(node.name)||validate(syntax,node.name,brokenMap,map[node.name])){broken[name]=true;}},this);}}var brokenTypes={};var brokenProperties={};for(var key in this.types){validate(this,key,brokenTypes,this.types[key]);}for(var key in this.properties){validate(this,key,brokenProperties,this.properties[key]);}brokenTypes=Object.keys(brokenTypes).filter(function(name){return brokenTypes[name];});brokenProperties=Object.keys(brokenProperties).filter(function(name){return brokenProperties[name];});if(brokenTypes.length||brokenProperties.length){return{types:brokenTypes,properties:brokenProperties};}return null;},dump:function dump(syntaxAsAst,pretty){return{generic:this.generic,types:dumpMapSyntax(this.types,!pretty,syntaxAsAst),properties:dumpMapSyntax(this.properties,!pretty,syntaxAsAst),atrules:dumpAtruleMapSyntax(this.atrules,!pretty,syntaxAsAst)};},toString:function toString(){return JSON.stringify(this.dump());}};var Lexer_1=Lexer$1;var definitionSyntax$1={SyntaxError:_SyntaxError,parse:parse_1,generate:generate_1,walk:walk$1};var adoptBuffer=adoptBuffer$2;var isBOM=tokenizer$3.isBOM;var N$1=10;var F=12;var R=13;function computeLinesAndColumns(host,source){var sourceLength=source.length;var lines=adoptBuffer(host.lines,sourceLength);// +1
1159var line=host.startLine;var columns=adoptBuffer(host.columns,sourceLength);var column=host.startColumn;var startOffset=source.length>0?isBOM(source.charCodeAt(0)):0;for(var i=startOffset;i<sourceLength;i++){// -1
1160var code=source.charCodeAt(i);lines[i]=line;columns[i]=column++;if(code===N$1||code===R||code===F){if(code===R&&i+1<sourceLength&&source.charCodeAt(i+1)===N$1){i++;lines[i]=line;columns[i]=column;}line++;column=1;}}lines[i]=line;columns[i]=column;host.lines=lines;host.columns=columns;}var OffsetToLocation$1=function OffsetToLocation$1(){this.lines=null;this.columns=null;this.linesAndColumnsComputed=false;};OffsetToLocation$1.prototype={setSource:function setSource(source,startOffset,startLine,startColumn){this.source=source;this.startOffset=typeof startOffset==='undefined'?0:startOffset;this.startLine=typeof startLine==='undefined'?1:startLine;this.startColumn=typeof startColumn==='undefined'?1:startColumn;this.linesAndColumnsComputed=false;},ensureLinesAndColumnsComputed:function ensureLinesAndColumnsComputed(){if(!this.linesAndColumnsComputed){computeLinesAndColumns(this,this.source);this.linesAndColumnsComputed=true;}},getLocation:function getLocation(offset,filename){this.ensureLinesAndColumnsComputed();return{source:filename,offset:this.startOffset+offset,line:this.lines[offset],column:this.columns[offset]};},getLocationRange:function getLocationRange(start,end,filename){this.ensureLinesAndColumnsComputed();return{source:filename,start:{offset:this.startOffset+start,line:this.lines[start],column:this.columns[start]},end:{offset:this.startOffset+end,line:this.lines[end],column:this.columns[end]}};}};var OffsetToLocation_1=OffsetToLocation$1;var TYPE$A=tokenizer$3.TYPE;var WHITESPACE$a=TYPE$A.WhiteSpace;var COMMENT$8=TYPE$A.Comment;var sequence$1=function readSequence(recognizer){var children=this.createList();var child=null;var context={recognizer:recognizer,space:null,ignoreWS:false,ignoreWSAfter:false};this.scanner.skipSC();while(!this.scanner.eof){switch(this.scanner.tokenType){case COMMENT$8:this.scanner.next();continue;case WHITESPACE$a:if(context.ignoreWS){this.scanner.next();}else{context.space=this.WhiteSpace();}continue;}child=recognizer.getNode.call(this,context);if(child===undefined){break;}if(context.space!==null){children.push(context.space);context.space=null;}children.push(child);if(context.ignoreWSAfter){context.ignoreWSAfter=false;context.ignoreWS=true;}else{context.ignoreWS=false;}}return children;};var OffsetToLocation=OffsetToLocation_1;var SyntaxError$2=_SyntaxError$1;var TokenStream$1=TokenStream_1;var List$3=List_1;var tokenize$1=tokenizer$3;var constants=_const;var findWhiteSpaceStart=utils$2.findWhiteSpaceStart,cmpStr$2=utils$2.cmpStr;var sequence=sequence$1;var noop$1=function noop$1(){};var TYPE$z=constants.TYPE;var NAME$1=constants.NAME;var WHITESPACE$9=TYPE$z.WhiteSpace;var COMMENT$7=TYPE$z.Comment;var IDENT$g=TYPE$z.Ident;var FUNCTION$6=TYPE$z.Function;var URL$4=TYPE$z.Url;var HASH$5=TYPE$z.Hash;var PERCENTAGE$3=TYPE$z.Percentage;var NUMBER$7=TYPE$z.Number;var NUMBERSIGN$3=0x0023;// U+0023 NUMBER SIGN (#)
1161var NULL=0;function createParseContext(name){return function(){return this[name]();};}function processConfig(config){var parserConfig={context:{},scope:{},atrule:{},pseudo:{}};if(config.parseContext){for(var name in config.parseContext){switch((0,_typeof2["default"])(config.parseContext[name])){case'function':parserConfig.context[name]=config.parseContext[name];break;case'string':parserConfig.context[name]=createParseContext(config.parseContext[name]);break;}}}if(config.scope){for(var name in config.scope){parserConfig.scope[name]=config.scope[name];}}if(config.atrule){for(var name in config.atrule){var atrule=config.atrule[name];if(atrule.parse){parserConfig.atrule[name]=atrule.parse;}}}if(config.pseudo){for(var name in config.pseudo){var pseudo=config.pseudo[name];if(pseudo.parse){parserConfig.pseudo[name]=pseudo.parse;}}}if(config.node){for(var name in config.node){parserConfig[name]=config.node[name].parse;}}return parserConfig;}var create$4=function createParser(config){var parser={scanner:new TokenStream$1(),locationMap:new OffsetToLocation(),filename:'<unknown>',needPositions:false,onParseError:noop$1,onParseErrorThrow:false,parseAtrulePrelude:true,parseRulePrelude:true,parseValue:true,parseCustomProperty:false,readSequence:sequence,createList:function createList(){return new List$3();},createSingleNodeList:function createSingleNodeList(node){return new List$3().appendData(node);},getFirstListNode:function getFirstListNode(list){return list&&list.first();},getLastListNode:function getLastListNode(list){return list.last();},parseWithFallback:function parseWithFallback(consumer,fallback){var startToken=this.scanner.tokenIndex;try{return consumer.call(this);}catch(e){if(this.onParseErrorThrow){throw e;}var fallbackNode=fallback.call(this,startToken);this.onParseErrorThrow=true;this.onParseError(e,fallbackNode);this.onParseErrorThrow=false;return fallbackNode;}},lookupNonWSType:function lookupNonWSType(offset){do{var type=this.scanner.lookupType(offset++);if(type!==WHITESPACE$9){return type;}}while(type!==NULL);return NULL;},eat:function eat(tokenType){if(this.scanner.tokenType!==tokenType){var offset=this.scanner.tokenStart;var message=NAME$1[tokenType]+' is expected';// tweak message and offset
1162switch(tokenType){case IDENT$g:// when identifier is expected but there is a function or url
1163if(this.scanner.tokenType===FUNCTION$6||this.scanner.tokenType===URL$4){offset=this.scanner.tokenEnd-1;message='Identifier is expected but function found';}else{message='Identifier is expected';}break;case HASH$5:if(this.scanner.isDelim(NUMBERSIGN$3)){this.scanner.next();offset++;message='Name is expected';}break;case PERCENTAGE$3:if(this.scanner.tokenType===NUMBER$7){offset=this.scanner.tokenEnd;message='Percent sign is expected';}break;default:// when test type is part of another token show error for current position + 1
1164// e.g. eat(HYPHENMINUS) will fail on "-foo", but pointing on "-" is odd
1165if(this.scanner.source.charCodeAt(this.scanner.tokenStart)===tokenType){offset=offset+1;}}this.error(message,offset);}this.scanner.next();},consume:function consume(tokenType){var value=this.scanner.getTokenValue();this.eat(tokenType);return value;},consumeFunctionName:function consumeFunctionName(){var name=this.scanner.source.substring(this.scanner.tokenStart,this.scanner.tokenEnd-1);this.eat(FUNCTION$6);return name;},getLocation:function getLocation(start,end){if(this.needPositions){return this.locationMap.getLocationRange(start,end,this.filename);}return null;},getLocationFromList:function getLocationFromList(list){if(this.needPositions){var head=this.getFirstListNode(list);var tail=this.getLastListNode(list);return this.locationMap.getLocationRange(head!==null?head.loc.start.offset-this.locationMap.startOffset:this.scanner.tokenStart,tail!==null?tail.loc.end.offset-this.locationMap.startOffset:this.scanner.tokenStart,this.filename);}return null;},error:function error(message,offset){var location=typeof offset!=='undefined'&&offset<this.scanner.source.length?this.locationMap.getLocation(offset):this.scanner.eof?this.locationMap.getLocation(findWhiteSpaceStart(this.scanner.source,this.scanner.source.length-1)):this.locationMap.getLocation(this.scanner.tokenStart);throw new SyntaxError$2(message||'Unexpected input',this.scanner.source,location.offset,location.line,location.column);}};config=processConfig(config||{});for(var key in config){parser[key]=config[key];}return function(source,options){options=options||{};var context=options.context||'default';var onComment=options.onComment;var ast;tokenize$1(source,parser.scanner);parser.locationMap.setSource(source,options.offset,options.line,options.column);parser.filename=options.filename||'<unknown>';parser.needPositions=Boolean(options.positions);parser.onParseError=typeof options.onParseError==='function'?options.onParseError:noop$1;parser.onParseErrorThrow=false;parser.parseAtrulePrelude='parseAtrulePrelude'in options?Boolean(options.parseAtrulePrelude):true;parser.parseRulePrelude='parseRulePrelude'in options?Boolean(options.parseRulePrelude):true;parser.parseValue='parseValue'in options?Boolean(options.parseValue):true;parser.parseCustomProperty='parseCustomProperty'in options?Boolean(options.parseCustomProperty):false;if(!parser.context.hasOwnProperty(context)){throw new Error('Unknown context `'+context+'`');}if(typeof onComment==='function'){parser.scanner.forEachToken(function(type,start,end){if(type===COMMENT$7){var loc=parser.getLocation(start,end);var _value=cmpStr$2(source,end-2,end,'*/')?source.slice(start+2,end-2):source.slice(start+2,end);onComment(_value,loc);}});}ast=parser.context[context].call(parser,options);if(!parser.scanner.eof){parser.error();}return ast;};};var sourceMapGenerator={};var base64Vlq={};var base64$1={};/* -*- Mode: js; js-indent-level: 2; -*- */ /*
1166 * Copyright 2011 Mozilla Foundation and contributors
1167 * Licensed under the New BSD license. See LICENSE or:
1168 * http://opensource.org/licenses/BSD-3-Clause
1169 */var intToCharMap='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');/**
1170 * Encode an integer in the range of 0 to 63 to a single base 64 digit.
1171 */base64$1.encode=function(number){if(0<=number&&number<intToCharMap.length){return intToCharMap[number];}throw new TypeError("Must be between 0 and 63: "+number);};/**
1172 * Decode a single base 64 character code digit to an integer. Returns -1 on
1173 * failure.
1174 */base64$1.decode=function(charCode){var bigA=65;// 'A'
1175var bigZ=90;// 'Z'
1176var littleA=97;// 'a'
1177var littleZ=122;// 'z'
1178var zero=48;// '0'
1179var nine=57;// '9'
1180var plus=43;// '+'
1181var slash=47;// '/'
1182var littleOffset=26;var numberOffset=52;// 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ
1183if(bigA<=charCode&&charCode<=bigZ){return charCode-bigA;}// 26 - 51: abcdefghijklmnopqrstuvwxyz
1184if(littleA<=charCode&&charCode<=littleZ){return charCode-littleA+littleOffset;}// 52 - 61: 0123456789
1185if(zero<=charCode&&charCode<=nine){return charCode-zero+numberOffset;}// 62: +
1186if(charCode==plus){return 62;}// 63: /
1187if(charCode==slash){return 63;}// Invalid base64 digit.
1188return-1;};/* -*- Mode: js; js-indent-level: 2; -*- */ /*
1189 * Copyright 2011 Mozilla Foundation and contributors
1190 * Licensed under the New BSD license. See LICENSE or:
1191 * http://opensource.org/licenses/BSD-3-Clause
1192 *
1193 * Based on the Base 64 VLQ implementation in Closure Compiler:
1194 * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java
1195 *
1196 * Copyright 2011 The Closure Compiler Authors. All rights reserved.
1197 * Redistribution and use in source and binary forms, with or without
1198 * modification, are permitted provided that the following conditions are
1199 * met:
1200 *
1201 * * Redistributions of source code must retain the above copyright
1202 * notice, this list of conditions and the following disclaimer.
1203 * * Redistributions in binary form must reproduce the above
1204 * copyright notice, this list of conditions and the following
1205 * disclaimer in the documentation and/or other materials provided
1206 * with the distribution.
1207 * * Neither the name of Google Inc. nor the names of its
1208 * contributors may be used to endorse or promote products derived
1209 * from this software without specific prior written permission.
1210 *
1211 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
1212 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
1213 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
1214 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
1215 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
1216 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
1217 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
1218 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
1219 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1220 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
1221 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1222 */var base64=base64$1;// A single base 64 digit can contain 6 bits of data. For the base 64 variable
1223// length quantities we use in the source map spec, the first bit is the sign,
1224// the next four bits are the actual value, and the 6th bit is the
1225// continuation bit. The continuation bit tells us whether there are more
1226// digits in this value following this digit.
1227//
1228// Continuation
1229// | Sign
1230// | |
1231// V V
1232// 101011
1233var VLQ_BASE_SHIFT=5;// binary: 100000
1234var VLQ_BASE=1<<VLQ_BASE_SHIFT;// binary: 011111
1235var VLQ_BASE_MASK=VLQ_BASE-1;// binary: 100000
1236var VLQ_CONTINUATION_BIT=VLQ_BASE;/**
1237 * Converts from a two-complement value to a value where the sign bit is
1238 * placed in the least significant bit. For example, as decimals:
1239 * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)
1240 * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)
1241 */function toVLQSigned(aValue){return aValue<0?(-aValue<<1)+1:(aValue<<1)+0;}/**
1242 * Converts to a two-complement value from a value where the sign bit is
1243 * placed in the least significant bit. For example, as decimals:
1244 * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1
1245 * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2
1246 */function fromVLQSigned(aValue){var isNegative=(aValue&1)===1;var shifted=aValue>>1;return isNegative?-shifted:shifted;}/**
1247 * Returns the base 64 VLQ encoded value.
1248 */base64Vlq.encode=function base64VLQ_encode(aValue){var encoded="";var digit;var vlq=toVLQSigned(aValue);do{digit=vlq&VLQ_BASE_MASK;vlq>>>=VLQ_BASE_SHIFT;if(vlq>0){// There are still more digits in this value, so we must make sure the
1249// continuation bit is marked.
1250digit|=VLQ_CONTINUATION_BIT;}encoded+=base64.encode(digit);}while(vlq>0);return encoded;};/**
1251 * Decodes the next base 64 VLQ value from the given string and returns the
1252 * value and the rest of the string via the out parameter.
1253 */base64Vlq.decode=function base64VLQ_decode(aStr,aIndex,aOutParam){var strLen=aStr.length;var result=0;var shift=0;var continuation,digit;do{if(aIndex>=strLen){throw new Error("Expected more digits in base 64 VLQ value.");}digit=base64.decode(aStr.charCodeAt(aIndex++));if(digit===-1){throw new Error("Invalid base64 digit: "+aStr.charAt(aIndex-1));}continuation=!!(digit&VLQ_CONTINUATION_BIT);digit&=VLQ_BASE_MASK;result=result+(digit<<shift);shift+=VLQ_BASE_SHIFT;}while(continuation);aOutParam.value=fromVLQSigned(result);aOutParam.rest=aIndex;};var util$3={};/* -*- Mode: js; js-indent-level: 2; -*- */(function(exports){/*
1254 * Copyright 2011 Mozilla Foundation and contributors
1255 * Licensed under the New BSD license. See LICENSE or:
1256 * http://opensource.org/licenses/BSD-3-Clause
1257 */ /**
1258 * This is a helper function for getting values from parameter/options
1259 * objects.
1260 *
1261 * @param args The object we are extracting values from
1262 * @param name The name of the property we are getting.
1263 * @param defaultValue An optional value to return if the property is missing
1264 * from the object. If this is not specified and the property is missing, an
1265 * error will be thrown.
1266 */function getArg(aArgs,aName,aDefaultValue){if(aName in aArgs){return aArgs[aName];}else if(arguments.length===3){return aDefaultValue;}else{throw new Error('"'+aName+'" is a required argument.');}}exports.getArg=getArg;var urlRegexp=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;var dataUrlRegexp=/^data:.+\,.+$/;function urlParse(aUrl){var match=aUrl.match(urlRegexp);if(!match){return null;}return{scheme:match[1],auth:match[2],host:match[3],port:match[4],path:match[5]};}exports.urlParse=urlParse;function urlGenerate(aParsedUrl){var url='';if(aParsedUrl.scheme){url+=aParsedUrl.scheme+':';}url+='//';if(aParsedUrl.auth){url+=aParsedUrl.auth+'@';}if(aParsedUrl.host){url+=aParsedUrl.host;}if(aParsedUrl.port){url+=":"+aParsedUrl.port;}if(aParsedUrl.path){url+=aParsedUrl.path;}return url;}exports.urlGenerate=urlGenerate;/**
1267 * Normalizes a path, or the path portion of a URL:
1268 *
1269 * - Replaces consecutive slashes with one slash.
1270 * - Removes unnecessary '.' parts.
1271 * - Removes unnecessary '<dir>/..' parts.
1272 *
1273 * Based on code in the Node.js 'path' core module.
1274 *
1275 * @param aPath The path or url to normalize.
1276 */function normalize(aPath){var path=aPath;var url=urlParse(aPath);if(url){if(!url.path){return aPath;}path=url.path;}var isAbsolute=exports.isAbsolute(path);var parts=path.split(/\/+/);for(var part,up=0,i=parts.length-1;i>=0;i--){part=parts[i];if(part==='.'){parts.splice(i,1);}else if(part==='..'){up++;}else if(up>0){if(part===''){// The first part is blank if the path is absolute. Trying to go
1277// above the root is a no-op. Therefore we can remove all '..' parts
1278// directly after the root.
1279parts.splice(i+1,up);up=0;}else{parts.splice(i,2);up--;}}}path=parts.join('/');if(path===''){path=isAbsolute?'/':'.';}if(url){url.path=path;return urlGenerate(url);}return path;}exports.normalize=normalize;/**
1280 * Joins two paths/URLs.
1281 *
1282 * @param aRoot The root path or URL.
1283 * @param aPath The path or URL to be joined with the root.
1284 *
1285 * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a
1286 * scheme-relative URL: Then the scheme of aRoot, if any, is prepended
1287 * first.
1288 * - Otherwise aPath is a path. If aRoot is a URL, then its path portion
1289 * is updated with the result and aRoot is returned. Otherwise the result
1290 * is returned.
1291 * - If aPath is absolute, the result is aPath.
1292 * - Otherwise the two paths are joined with a slash.
1293 * - Joining for example 'http://' and 'www.example.com' is also supported.
1294 */function join(aRoot,aPath){if(aRoot===""){aRoot=".";}if(aPath===""){aPath=".";}var aPathUrl=urlParse(aPath);var aRootUrl=urlParse(aRoot);if(aRootUrl){aRoot=aRootUrl.path||'/';}// `join(foo, '//www.example.org')`
1295if(aPathUrl&&!aPathUrl.scheme){if(aRootUrl){aPathUrl.scheme=aRootUrl.scheme;}return urlGenerate(aPathUrl);}if(aPathUrl||aPath.match(dataUrlRegexp)){return aPath;}// `join('http://', 'www.example.com')`
1296if(aRootUrl&&!aRootUrl.host&&!aRootUrl.path){aRootUrl.host=aPath;return urlGenerate(aRootUrl);}var joined=aPath.charAt(0)==='/'?aPath:normalize(aRoot.replace(/\/+$/,'')+'/'+aPath);if(aRootUrl){aRootUrl.path=joined;return urlGenerate(aRootUrl);}return joined;}exports.join=join;exports.isAbsolute=function(aPath){return aPath.charAt(0)==='/'||urlRegexp.test(aPath);};/**
1297 * Make a path relative to a URL or another path.
1298 *
1299 * @param aRoot The root path or URL.
1300 * @param aPath The path or URL to be made relative to aRoot.
1301 */function relative(aRoot,aPath){if(aRoot===""){aRoot=".";}aRoot=aRoot.replace(/\/$/,'');// It is possible for the path to be above the root. In this case, simply
1302// checking whether the root is a prefix of the path won't work. Instead, we
1303// need to remove components from the root one by one, until either we find
1304// a prefix that fits, or we run out of components to remove.
1305var level=0;while(aPath.indexOf(aRoot+'/')!==0){var index=aRoot.lastIndexOf("/");if(index<0){return aPath;}// If the only part of the root that is left is the scheme (i.e. http://,
1306// file:///, etc.), one or more slashes (/), or simply nothing at all, we
1307// have exhausted all components, so the path is not relative to the root.
1308aRoot=aRoot.slice(0,index);if(aRoot.match(/^([^\/]+:\/)?\/*$/)){return aPath;}++level;}// Make sure we add a "../" for each component we removed from the root.
1309return Array(level+1).join("../")+aPath.substr(aRoot.length+1);}exports.relative=relative;var supportsNullProto=function(){var obj=Object.create(null);return!('__proto__'in obj);}();function identity(s){return s;}/**
1310 * Because behavior goes wacky when you set `__proto__` on objects, we
1311 * have to prefix all the strings in our set with an arbitrary character.
1312 *
1313 * See https://github.com/mozilla/source-map/pull/31 and
1314 * https://github.com/mozilla/source-map/issues/30
1315 *
1316 * @param String aStr
1317 */function toSetString(aStr){if(isProtoString(aStr)){return'$'+aStr;}return aStr;}exports.toSetString=supportsNullProto?identity:toSetString;function fromSetString(aStr){if(isProtoString(aStr)){return aStr.slice(1);}return aStr;}exports.fromSetString=supportsNullProto?identity:fromSetString;function isProtoString(s){if(!s){return false;}var length=s.length;if(length<9/* "__proto__".length */){return false;}if(s.charCodeAt(length-1)!==95/* '_' */||s.charCodeAt(length-2)!==95/* '_' */||s.charCodeAt(length-3)!==111/* 'o' */||s.charCodeAt(length-4)!==116/* 't' */||s.charCodeAt(length-5)!==111/* 'o' */||s.charCodeAt(length-6)!==114/* 'r' */||s.charCodeAt(length-7)!==112/* 'p' */||s.charCodeAt(length-8)!==95/* '_' */||s.charCodeAt(length-9)!==95/* '_' */){return false;}for(var i=length-10;i>=0;i--){if(s.charCodeAt(i)!==36/* '$' */){return false;}}return true;}/**
1318 * Comparator between two mappings where the original positions are compared.
1319 *
1320 * Optionally pass in `true` as `onlyCompareGenerated` to consider two
1321 * mappings with the same original source/line/column, but different generated
1322 * line and column the same. Useful when searching for a mapping with a
1323 * stubbed out mapping.
1324 */function compareByOriginalPositions(mappingA,mappingB,onlyCompareOriginal){var cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp;}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp;}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0||onlyCompareOriginal){return cmp;}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp;}cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp;}return strcmp(mappingA.name,mappingB.name);}exports.compareByOriginalPositions=compareByOriginalPositions;/**
1325 * Comparator between two mappings with deflated source and name indices where
1326 * the generated positions are compared.
1327 *
1328 * Optionally pass in `true` as `onlyCompareGenerated` to consider two
1329 * mappings with the same generated line and column, but different
1330 * source/name/original line and column the same. Useful when searching for a
1331 * mapping with a stubbed out mapping.
1332 */function compareByGeneratedPositionsDeflated(mappingA,mappingB,onlyCompareGenerated){var cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp;}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0||onlyCompareGenerated){return cmp;}cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp;}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp;}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp;}return strcmp(mappingA.name,mappingB.name);}exports.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function strcmp(aStr1,aStr2){if(aStr1===aStr2){return 0;}if(aStr1===null){return 1;// aStr2 !== null
1333}if(aStr2===null){return-1;// aStr1 !== null
1334}if(aStr1>aStr2){return 1;}return-1;}/**
1335 * Comparator between two mappings with inflated source and name strings where
1336 * the generated positions are compared.
1337 */function compareByGeneratedPositionsInflated(mappingA,mappingB){var cmp=mappingA.generatedLine-mappingB.generatedLine;if(cmp!==0){return cmp;}cmp=mappingA.generatedColumn-mappingB.generatedColumn;if(cmp!==0){return cmp;}cmp=strcmp(mappingA.source,mappingB.source);if(cmp!==0){return cmp;}cmp=mappingA.originalLine-mappingB.originalLine;if(cmp!==0){return cmp;}cmp=mappingA.originalColumn-mappingB.originalColumn;if(cmp!==0){return cmp;}return strcmp(mappingA.name,mappingB.name);}exports.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;/**
1338 * Strip any JSON XSSI avoidance prefix from the string (as documented
1339 * in the source maps specification), and then parse the string as
1340 * JSON.
1341 */function parseSourceMapInput(str){return JSON.parse(str.replace(/^\)]}'[^\n]*\n/,''));}exports.parseSourceMapInput=parseSourceMapInput;/**
1342 * Compute the URL of a source given the the source root, the source's
1343 * URL, and the source map's URL.
1344 */function computeSourceURL(sourceRoot,sourceURL,sourceMapURL){sourceURL=sourceURL||'';if(sourceRoot){// This follows what Chrome does.
1345if(sourceRoot[sourceRoot.length-1]!=='/'&&sourceURL[0]!=='/'){sourceRoot+='/';}// The spec says:
1346// Line 4: An optional source root, useful for relocating source
1347// files on a server or removing repeated values in the
1348// “sources” entry. This value is prepended to the individual
1349// entries in the “source” field.
1350sourceURL=sourceRoot+sourceURL;}// Historically, SourceMapConsumer did not take the sourceMapURL as
1351// a parameter. This mode is still somewhat supported, which is why
1352// this code block is conditional. However, it's preferable to pass
1353// the source map URL to SourceMapConsumer, so that this function
1354// can implement the source URL resolution algorithm as outlined in
1355// the spec. This block is basically the equivalent of:
1356// new URL(sourceURL, sourceMapURL).toString()
1357// ... except it avoids using URL, which wasn't available in the
1358// older releases of node still supported by this library.
1359//
1360// The spec says:
1361// If the sources are not absolute URLs after prepending of the
1362// “sourceRoot”, the sources are resolved relative to the
1363// SourceMap (like resolving script src in a html document).
1364if(sourceMapURL){var parsed=urlParse(sourceMapURL);if(!parsed){throw new Error("sourceMapURL could not be parsed");}if(parsed.path){// Strip the last path component, but keep the "/".
1365var index=parsed.path.lastIndexOf('/');if(index>=0){parsed.path=parsed.path.substring(0,index+1);}}sourceURL=join(urlGenerate(parsed),sourceURL);}return normalize(sourceURL);}exports.computeSourceURL=computeSourceURL;})(util$3);var arraySet={};/* -*- Mode: js; js-indent-level: 2; -*- */ /*
1366 * Copyright 2011 Mozilla Foundation and contributors
1367 * Licensed under the New BSD license. See LICENSE or:
1368 * http://opensource.org/licenses/BSD-3-Clause
1369 */var util$2=util$3;var has$1=Object.prototype.hasOwnProperty;var hasNativeMap=typeof Map!=="undefined";/**
1370 * A data structure which is a combination of an array and a set. Adding a new
1371 * member is O(1), testing for membership is O(1), and finding the index of an
1372 * element is O(1). Removing elements from the set is not supported. Only
1373 * strings are supported for membership.
1374 */function ArraySet$1(){this._array=[];this._set=hasNativeMap?new Map():Object.create(null);}/**
1375 * Static method for creating ArraySet instances from an existing array.
1376 */ArraySet$1.fromArray=function ArraySet_fromArray(aArray,aAllowDuplicates){var set=new ArraySet$1();for(var i=0,len=aArray.length;i<len;i++){set.add(aArray[i],aAllowDuplicates);}return set;};/**
1377 * Return how many unique items are in this ArraySet. If duplicates have been
1378 * added, than those do not count towards the size.
1379 *
1380 * @returns Number
1381 */ArraySet$1.prototype.size=function ArraySet_size(){return hasNativeMap?this._set.size:Object.getOwnPropertyNames(this._set).length;};/**
1382 * Add the given string to this set.
1383 *
1384 * @param String aStr
1385 */ArraySet$1.prototype.add=function ArraySet_add(aStr,aAllowDuplicates){var sStr=hasNativeMap?aStr:util$2.toSetString(aStr);var isDuplicate=hasNativeMap?this.has(aStr):has$1.call(this._set,sStr);var idx=this._array.length;if(!isDuplicate||aAllowDuplicates){this._array.push(aStr);}if(!isDuplicate){if(hasNativeMap){this._set.set(aStr,idx);}else{this._set[sStr]=idx;}}};/**
1386 * Is the given string a member of this set?
1387 *
1388 * @param String aStr
1389 */ArraySet$1.prototype.has=function ArraySet_has(aStr){if(hasNativeMap){return this._set.has(aStr);}else{var sStr=util$2.toSetString(aStr);return has$1.call(this._set,sStr);}};/**
1390 * What is the index of the given string in the array?
1391 *
1392 * @param String aStr
1393 */ArraySet$1.prototype.indexOf=function ArraySet_indexOf(aStr){if(hasNativeMap){var idx=this._set.get(aStr);if(idx>=0){return idx;}}else{var sStr=util$2.toSetString(aStr);if(has$1.call(this._set,sStr)){return this._set[sStr];}}throw new Error('"'+aStr+'" is not in the set.');};/**
1394 * What is the element at the given index?
1395 *
1396 * @param Number aIdx
1397 */ArraySet$1.prototype.at=function ArraySet_at(aIdx){if(aIdx>=0&&aIdx<this._array.length){return this._array[aIdx];}throw new Error('No element indexed by '+aIdx);};/**
1398 * Returns the array representation of this set (which has the proper indices
1399 * indicated by indexOf). Note that this is a copy of the internal array used
1400 * for storing the members so that no one can mess with internal state.
1401 */ArraySet$1.prototype.toArray=function ArraySet_toArray(){return this._array.slice();};arraySet.ArraySet=ArraySet$1;var mappingList={};/* -*- Mode: js; js-indent-level: 2; -*- */ /*
1402 * Copyright 2014 Mozilla Foundation and contributors
1403 * Licensed under the New BSD license. See LICENSE or:
1404 * http://opensource.org/licenses/BSD-3-Clause
1405 */var util$1=util$3;/**
1406 * Determine whether mappingB is after mappingA with respect to generated
1407 * position.
1408 */function generatedPositionAfter(mappingA,mappingB){// Optimized for most common case
1409var lineA=mappingA.generatedLine;var lineB=mappingB.generatedLine;var columnA=mappingA.generatedColumn;var columnB=mappingB.generatedColumn;return lineB>lineA||lineB==lineA&&columnB>=columnA||util$1.compareByGeneratedPositionsInflated(mappingA,mappingB)<=0;}/**
1410 * A data structure to provide a sorted view of accumulated mappings in a
1411 * performance conscious manner. It trades a neglibable overhead in general
1412 * case for a large speedup in case of mappings being added in order.
1413 */function MappingList$1(){this._array=[];this._sorted=true;// Serves as infimum
1414this._last={generatedLine:-1,generatedColumn:0};}/**
1415 * Iterate through internal items. This method takes the same arguments that
1416 * `Array.prototype.forEach` takes.
1417 *
1418 * NOTE: The order of the mappings is NOT guaranteed.
1419 */MappingList$1.prototype.unsortedForEach=function MappingList_forEach(aCallback,aThisArg){this._array.forEach(aCallback,aThisArg);};/**
1420 * Add the given source mapping.
1421 *
1422 * @param Object aMapping
1423 */MappingList$1.prototype.add=function MappingList_add(aMapping){if(generatedPositionAfter(this._last,aMapping)){this._last=aMapping;this._array.push(aMapping);}else{this._sorted=false;this._array.push(aMapping);}};/**
1424 * Returns the flat, sorted array of mappings. The mappings are sorted by
1425 * generated position.
1426 *
1427 * WARNING: This method returns internal data without copying, for
1428 * performance. The return value must NOT be mutated, and should be treated as
1429 * an immutable borrow. If you want to take ownership, you must make your own
1430 * copy.
1431 */MappingList$1.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(util$1.compareByGeneratedPositionsInflated);this._sorted=true;}return this._array;};mappingList.MappingList=MappingList$1;/* -*- Mode: js; js-indent-level: 2; -*- */ /*
1432 * Copyright 2011 Mozilla Foundation and contributors
1433 * Licensed under the New BSD license. See LICENSE or:
1434 * http://opensource.org/licenses/BSD-3-Clause
1435 */var base64VLQ=base64Vlq;var util=util$3;var ArraySet=arraySet.ArraySet;var MappingList=mappingList.MappingList;/**
1436 * An instance of the SourceMapGenerator represents a source map which is
1437 * being built incrementally. You may pass an object with the following
1438 * properties:
1439 *
1440 * - file: The filename of the generated source.
1441 * - sourceRoot: A root for all relative URLs in this source map.
1442 */function SourceMapGenerator$1(aArgs){if(!aArgs){aArgs={};}this._file=util.getArg(aArgs,'file',null);this._sourceRoot=util.getArg(aArgs,'sourceRoot',null);this._skipValidation=util.getArg(aArgs,'skipValidation',false);this._sources=new ArraySet();this._names=new ArraySet();this._mappings=new MappingList();this._sourcesContents=null;}SourceMapGenerator$1.prototype._version=3;/**
1443 * Creates a new SourceMapGenerator based on a SourceMapConsumer
1444 *
1445 * @param aSourceMapConsumer The SourceMap.
1446 */SourceMapGenerator$1.fromSourceMap=function SourceMapGenerator_fromSourceMap(aSourceMapConsumer){var sourceRoot=aSourceMapConsumer.sourceRoot;var generator=new SourceMapGenerator$1({file:aSourceMapConsumer.file,sourceRoot:sourceRoot});aSourceMapConsumer.eachMapping(function(mapping){var newMapping={generated:{line:mapping.generatedLine,column:mapping.generatedColumn}};if(mapping.source!=null){newMapping.source=mapping.source;if(sourceRoot!=null){newMapping.source=util.relative(sourceRoot,newMapping.source);}newMapping.original={line:mapping.originalLine,column:mapping.originalColumn};if(mapping.name!=null){newMapping.name=mapping.name;}}generator.addMapping(newMapping);});aSourceMapConsumer.sources.forEach(function(sourceFile){var sourceRelative=sourceFile;if(sourceRoot!==null){sourceRelative=util.relative(sourceRoot,sourceFile);}if(!generator._sources.has(sourceRelative)){generator._sources.add(sourceRelative);}var content=aSourceMapConsumer.sourceContentFor(sourceFile);if(content!=null){generator.setSourceContent(sourceFile,content);}});return generator;};/**
1447 * Add a single mapping from original source line and column to the generated
1448 * source's line and column for this source map being created. The mapping
1449 * object should have the following properties:
1450 *
1451 * - generated: An object with the generated line and column positions.
1452 * - original: An object with the original line and column positions.
1453 * - source: The original source file (relative to the sourceRoot).
1454 * - name: An optional original token name for this mapping.
1455 */SourceMapGenerator$1.prototype.addMapping=function SourceMapGenerator_addMapping(aArgs){var generated=util.getArg(aArgs,'generated');var original=util.getArg(aArgs,'original',null);var source=util.getArg(aArgs,'source',null);var name=util.getArg(aArgs,'name',null);if(!this._skipValidation){this._validateMapping(generated,original,source,name);}if(source!=null){source=String(source);if(!this._sources.has(source)){this._sources.add(source);}}if(name!=null){name=String(name);if(!this._names.has(name)){this._names.add(name);}}this._mappings.add({generatedLine:generated.line,generatedColumn:generated.column,originalLine:original!=null&&original.line,originalColumn:original!=null&&original.column,source:source,name:name});};/**
1456 * Set the source content for a source file.
1457 */SourceMapGenerator$1.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(aSourceFile,aSourceContent){var source=aSourceFile;if(this._sourceRoot!=null){source=util.relative(this._sourceRoot,source);}if(aSourceContent!=null){// Add the source content to the _sourcesContents map.
1458// Create a new _sourcesContents map if the property is null.
1459if(!this._sourcesContents){this._sourcesContents=Object.create(null);}this._sourcesContents[util.toSetString(source)]=aSourceContent;}else if(this._sourcesContents){// Remove the source file from the _sourcesContents map.
1460// If the _sourcesContents map is empty, set the property to null.
1461delete this._sourcesContents[util.toSetString(source)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null;}}};/**
1462 * Applies the mappings of a sub-source-map for a specific source file to the
1463 * source map being generated. Each mapping to the supplied source file is
1464 * rewritten using the supplied source map. Note: The resolution for the
1465 * resulting mappings is the minimium of this map and the supplied map.
1466 *
1467 * @param aSourceMapConsumer The source map to be applied.
1468 * @param aSourceFile Optional. The filename of the source file.
1469 * If omitted, SourceMapConsumer's file property will be used.
1470 * @param aSourceMapPath Optional. The dirname of the path to the source map
1471 * to be applied. If relative, it is relative to the SourceMapConsumer.
1472 * This parameter is needed when the two source maps aren't in the same
1473 * directory, and the source map to be applied contains relative source
1474 * paths. If so, those relative source paths need to be rewritten
1475 * relative to the SourceMapGenerator.
1476 */SourceMapGenerator$1.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(aSourceMapConsumer,aSourceFile,aSourceMapPath){var sourceFile=aSourceFile;// If aSourceFile is omitted, we will use the file property of the SourceMap
1477if(aSourceFile==null){if(aSourceMapConsumer.file==null){throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, '+'or the source map\'s "file" property. Both were omitted.');}sourceFile=aSourceMapConsumer.file;}var sourceRoot=this._sourceRoot;// Make "sourceFile" relative if an absolute Url is passed.
1478if(sourceRoot!=null){sourceFile=util.relative(sourceRoot,sourceFile);}// Applying the SourceMap can add and remove items from the sources and
1479// the names array.
1480var newSources=new ArraySet();var newNames=new ArraySet();// Find mappings for the "sourceFile"
1481this._mappings.unsortedForEach(function(mapping){if(mapping.source===sourceFile&&mapping.originalLine!=null){// Check if it can be mapped by the source map, then update the mapping.
1482var original=aSourceMapConsumer.originalPositionFor({line:mapping.originalLine,column:mapping.originalColumn});if(original.source!=null){// Copy mapping
1483mapping.source=original.source;if(aSourceMapPath!=null){mapping.source=util.join(aSourceMapPath,mapping.source);}if(sourceRoot!=null){mapping.source=util.relative(sourceRoot,mapping.source);}mapping.originalLine=original.line;mapping.originalColumn=original.column;if(original.name!=null){mapping.name=original.name;}}}var source=mapping.source;if(source!=null&&!newSources.has(source)){newSources.add(source);}var name=mapping.name;if(name!=null&&!newNames.has(name)){newNames.add(name);}},this);this._sources=newSources;this._names=newNames;// Copy sourcesContents of applied map.
1484aSourceMapConsumer.sources.forEach(function(sourceFile){var content=aSourceMapConsumer.sourceContentFor(sourceFile);if(content!=null){if(aSourceMapPath!=null){sourceFile=util.join(aSourceMapPath,sourceFile);}if(sourceRoot!=null){sourceFile=util.relative(sourceRoot,sourceFile);}this.setSourceContent(sourceFile,content);}},this);};/**
1485 * A mapping can have one of the three levels of data:
1486 *
1487 * 1. Just the generated position.
1488 * 2. The Generated position, original position, and original source.
1489 * 3. Generated and original position, original source, as well as a name
1490 * token.
1491 *
1492 * To maintain consistency, we validate that any new mapping being added falls
1493 * in to one of these categories.
1494 */SourceMapGenerator$1.prototype._validateMapping=function SourceMapGenerator_validateMapping(aGenerated,aOriginal,aSource,aName){// When aOriginal is truthy but has empty values for .line and .column,
1495// it is most likely a programmer error. In this case we throw a very
1496// specific error message to try to guide them the right way.
1497// For example: https://github.com/Polymer/polymer-bundler/pull/519
1498if(aOriginal&&typeof aOriginal.line!=='number'&&typeof aOriginal.column!=='number'){throw new Error('original.line and original.column are not numbers -- you probably meant to omit '+'the original mapping entirely and only map the generated position. If so, pass '+'null for the original mapping instead of an object with empty or null values.');}if(aGenerated&&'line'in aGenerated&&'column'in aGenerated&&aGenerated.line>0&&aGenerated.column>=0&&!aOriginal&&!aSource&&!aName){// Case 1.
1499return;}else if(aGenerated&&'line'in aGenerated&&'column'in aGenerated&&aOriginal&&'line'in aOriginal&&'column'in aOriginal&&aGenerated.line>0&&aGenerated.column>=0&&aOriginal.line>0&&aOriginal.column>=0&&aSource){// Cases 2 and 3.
1500return;}else{throw new Error('Invalid mapping: '+JSON.stringify({generated:aGenerated,source:aSource,original:aOriginal,name:aName}));}};/**
1501 * Serialize the accumulated mappings in to the stream of base 64 VLQs
1502 * specified by the source map format.
1503 */SourceMapGenerator$1.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var previousGeneratedColumn=0;var previousGeneratedLine=1;var previousOriginalColumn=0;var previousOriginalLine=0;var previousName=0;var previousSource=0;var result='';var next;var mapping;var nameIdx;var sourceIdx;var mappings=this._mappings.toArray();for(var i=0,len=mappings.length;i<len;i++){mapping=mappings[i];next='';if(mapping.generatedLine!==previousGeneratedLine){previousGeneratedColumn=0;while(mapping.generatedLine!==previousGeneratedLine){next+=';';previousGeneratedLine++;}}else{if(i>0){if(!util.compareByGeneratedPositionsInflated(mapping,mappings[i-1])){continue;}next+=',';}}next+=base64VLQ.encode(mapping.generatedColumn-previousGeneratedColumn);previousGeneratedColumn=mapping.generatedColumn;if(mapping.source!=null){sourceIdx=this._sources.indexOf(mapping.source);next+=base64VLQ.encode(sourceIdx-previousSource);previousSource=sourceIdx;// lines are stored 0-based in SourceMap spec version 3
1504next+=base64VLQ.encode(mapping.originalLine-1-previousOriginalLine);previousOriginalLine=mapping.originalLine-1;next+=base64VLQ.encode(mapping.originalColumn-previousOriginalColumn);previousOriginalColumn=mapping.originalColumn;if(mapping.name!=null){nameIdx=this._names.indexOf(mapping.name);next+=base64VLQ.encode(nameIdx-previousName);previousName=nameIdx;}}result+=next;}return result;};SourceMapGenerator$1.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(aSources,aSourceRoot){return aSources.map(function(source){if(!this._sourcesContents){return null;}if(aSourceRoot!=null){source=util.relative(aSourceRoot,source);}var key=util.toSetString(source);return Object.prototype.hasOwnProperty.call(this._sourcesContents,key)?this._sourcesContents[key]:null;},this);};/**
1505 * Externalize the source map.
1506 */SourceMapGenerator$1.prototype.toJSON=function SourceMapGenerator_toJSON(){var map={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){map.file=this._file;}if(this._sourceRoot!=null){map.sourceRoot=this._sourceRoot;}if(this._sourcesContents){map.sourcesContent=this._generateSourcesContent(map.sources,map.sourceRoot);}return map;};/**
1507 * Render the source map being generated to a string.
1508 */SourceMapGenerator$1.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON());};sourceMapGenerator.SourceMapGenerator=SourceMapGenerator$1;var SourceMapGenerator=sourceMapGenerator.SourceMapGenerator;var trackNodes={Atrule:true,Selector:true,Declaration:true};var sourceMap$1=function generateSourceMap(handlers){var map=new SourceMapGenerator();var line=1;var column=0;var generated={line:1,column:0};var original={line:0,// should be zero to add first mapping
1509column:0};var sourceMappingActive=false;var activatedGenerated={line:1,column:0};var activatedMapping={generated:activatedGenerated};var handlersNode=handlers.node;handlers.node=function(node){if(node.loc&&node.loc.start&&trackNodes.hasOwnProperty(node.type)){var nodeLine=node.loc.start.line;var nodeColumn=node.loc.start.column-1;if(original.line!==nodeLine||original.column!==nodeColumn){original.line=nodeLine;original.column=nodeColumn;generated.line=line;generated.column=column;if(sourceMappingActive){sourceMappingActive=false;if(generated.line!==activatedGenerated.line||generated.column!==activatedGenerated.column){map.addMapping(activatedMapping);}}sourceMappingActive=true;map.addMapping({source:node.loc.source,original:original,generated:generated});}}handlersNode.call(this,node);if(sourceMappingActive&&trackNodes.hasOwnProperty(node.type)){activatedGenerated.line=line;activatedGenerated.column=column;}};var handlersChunk=handlers.chunk;handlers.chunk=function(chunk){for(var i=0;i<chunk.length;i++){if(chunk.charCodeAt(i)===10){// \n
1510line++;column=0;}else{column++;}}handlersChunk(chunk);};var handlersResult=handlers.result;handlers.result=function(){if(sourceMappingActive){map.addMapping(activatedMapping);}return{css:handlersResult(),map:map};};return handlers;};var sourceMap=sourceMap$1;var hasOwnProperty$4=Object.prototype.hasOwnProperty;function processChildren(node,delimeter){var list=node.children;var prev=null;if(typeof delimeter!=='function'){list.forEach(this.node,this);}else{list.forEach(function(node){if(prev!==null){delimeter.call(this,prev);}this.node(node);prev=node;},this);}}var create$3=function createGenerator(config){function processNode(node){if(hasOwnProperty$4.call(types,node.type)){types[node.type].call(this,node);}else{throw new Error('Unknown node type: '+node.type);}}var types={};if(config.node){for(var name in config.node){types[name]=config.node[name].generate;}}return function(node,options){var buffer='';var handlers={children:processChildren,node:processNode,chunk:function chunk(_chunk2){buffer+=_chunk2;},result:function result(){return buffer;}};if(options){if(typeof options.decorator==='function'){handlers=options.decorator(handlers);}if(options.sourceMap){handlers=sourceMap(handlers);}}handlers.node(node);return handlers.result();};};var List$2=List_1;var create$2=function createConvertors(walk){return{fromPlainObject:function fromPlainObject(ast){walk(ast,{enter:function enter(node){if(node.children&&node.children instanceof List$2===false){node.children=new List$2().fromArray(node.children);}}});return ast;},toPlainObject:function toPlainObject(ast){walk(ast,{leave:function leave(node){if(node.children&&node.children instanceof List$2){node.children=node.children.toArray();}}});return ast;}};};var hasOwnProperty$3=Object.prototype.hasOwnProperty;var noop=function noop(){};function ensureFunction(value){return typeof value==='function'?value:noop;}function invokeForType(fn,type){return function(node,item,list){if(node.type===type){fn.call(this,node,item,list);}};}function getWalkersFromStructure(name,nodeType){var structure=nodeType.structure;var walkers=[];for(var key in structure){if(hasOwnProperty$3.call(structure,key)===false){continue;}var fieldTypes=structure[key];var walker={name:key,type:false,nullable:false};if(!Array.isArray(structure[key])){fieldTypes=[structure[key]];}for(var i=0;i<fieldTypes.length;i++){var fieldType=fieldTypes[i];if(fieldType===null){walker.nullable=true;}else if(typeof fieldType==='string'){walker.type='node';}else if(Array.isArray(fieldType)){walker.type='list';}}if(walker.type){walkers.push(walker);}}if(walkers.length){return{context:nodeType.walkContext,fields:walkers};}return null;}function getTypesFromConfig(config){var types={};for(var name in config.node){if(hasOwnProperty$3.call(config.node,name)){var nodeType=config.node[name];if(!nodeType.structure){throw new Error('Missed `structure` field in `'+name+'` node type definition');}types[name]=getWalkersFromStructure(name,nodeType);}}return types;}function createTypeIterator(config,reverse){var fields=config.fields.slice();var contextName=config.context;var useContext=typeof contextName==='string';if(reverse){fields.reverse();}return function(node,context,walk,walkReducer){var prevContextValue;if(useContext){prevContextValue=context[contextName];context[contextName]=node;}for(var i=0;i<fields.length;i++){var field=fields[i];var ref=node[field.name];if(!field.nullable||ref){if(field.type==='list'){var breakWalk=reverse?ref.reduceRight(walkReducer,false):ref.reduce(walkReducer,false);if(breakWalk){return true;}}else if(walk(ref)){return true;}}}if(useContext){context[contextName]=prevContextValue;}};}function createFastTraveralMap(iterators){return{Atrule:{StyleSheet:iterators.StyleSheet,Atrule:iterators.Atrule,Rule:iterators.Rule,Block:iterators.Block},Rule:{StyleSheet:iterators.StyleSheet,Atrule:iterators.Atrule,Rule:iterators.Rule,Block:iterators.Block},Declaration:{StyleSheet:iterators.StyleSheet,Atrule:iterators.Atrule,Rule:iterators.Rule,Block:iterators.Block,DeclarationList:iterators.DeclarationList}};}var create$1=function createWalker(config){var types=getTypesFromConfig(config);var iteratorsNatural={};var iteratorsReverse={};var breakWalk=Symbol('break-walk');var skipNode=Symbol('skip-node');for(var name in types){if(hasOwnProperty$3.call(types,name)&&types[name]!==null){iteratorsNatural[name]=createTypeIterator(types[name],false);iteratorsReverse[name]=createTypeIterator(types[name],true);}}var fastTraversalIteratorsNatural=createFastTraveralMap(iteratorsNatural);var fastTraversalIteratorsReverse=createFastTraveralMap(iteratorsReverse);var walk=function walk(root,options){function walkNode(node,item,list){var enterRet=enter.call(context,node,item,list);if(enterRet===breakWalk){debugger;return true;}if(enterRet===skipNode){return false;}if(iterators.hasOwnProperty(node.type)){if(iterators[node.type](node,context,walkNode,walkReducer)){return true;}}if(leave.call(context,node,item,list)===breakWalk){return true;}return false;}var walkReducer=function walkReducer(ret,data,item,list){return ret||walkNode(data,item,list);};var enter=noop;var leave=noop;var iterators=iteratorsNatural;var context={"break":breakWalk,skip:skipNode,root:root,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,"function":null};if(typeof options==='function'){enter=options;}else if(options){enter=ensureFunction(options.enter);leave=ensureFunction(options.leave);if(options.reverse){iterators=iteratorsReverse;}if(options.visit){if(fastTraversalIteratorsNatural.hasOwnProperty(options.visit)){iterators=options.reverse?fastTraversalIteratorsReverse[options.visit]:fastTraversalIteratorsNatural[options.visit];}else if(!types.hasOwnProperty(options.visit)){throw new Error('Bad value `'+options.visit+'` for `visit` option (should be: '+Object.keys(types).join(', ')+')');}enter=invokeForType(enter,options.visit);leave=invokeForType(leave,options.visit);}}if(enter===noop&&leave===noop){throw new Error('Neither `enter` nor `leave` walker handler is set or both aren\'t a function');}walkNode(root);};walk["break"]=breakWalk;walk.skip=skipNode;walk.find=function(ast,fn){var found=null;walk(ast,function(node,item,list){if(fn.call(this,node,item,list)){found=node;return breakWalk;}});return found;};walk.findLast=function(ast,fn){var found=null;walk(ast,{reverse:true,enter:function enter(node,item,list){if(fn.call(this,node,item,list)){found=node;return breakWalk;}}});return found;};walk.findAll=function(ast,fn){var found=[];walk(ast,function(node,item,list){if(fn.call(this,node,item,list)){found.push(node);}});return found;};return walk;};var List$1=List_1;var clone$1=function clone(node){var result={};for(var key in node){var value=node[key];if(value){if(Array.isArray(value)||value instanceof List$1){value=value.map(clone);}else if(value.constructor===Object){value=clone(value);}}result[key]=value;}return result;};var hasOwnProperty$2=Object.prototype.hasOwnProperty;var shape$1={generic:true,types:appendOrAssign,atrules:{prelude:appendOrAssignOrNull,descriptors:appendOrAssignOrNull},properties:appendOrAssign,parseContext:assign,scope:deepAssign,atrule:['parse'],pseudo:['parse'],node:['name','structure','parse','generate','walkContext']};function isObject$2(value){return value&&value.constructor===Object;}function copy(value){return isObject$2(value)?Object.assign({},value):value;}function assign(dest,src){return Object.assign(dest,src);}function deepAssign(dest,src){for(var key in src){if(hasOwnProperty$2.call(src,key)){if(isObject$2(dest[key])){deepAssign(dest[key],copy(src[key]));}else{dest[key]=copy(src[key]);}}}return dest;}function append(a,b){if(typeof b==='string'&&/^\s*\|/.test(b)){return typeof a==='string'?a+b:b.replace(/^\s*\|\s*/,'');}return b||null;}function appendOrAssign(a,b){if(typeof b==='string'){return append(a,b);}var result=Object.assign({},a);for(var key in b){if(hasOwnProperty$2.call(b,key)){result[key]=append(hasOwnProperty$2.call(a,key)?a[key]:undefined,b[key]);}}return result;}function appendOrAssignOrNull(a,b){var result=appendOrAssign(a,b);return!isObject$2(result)||Object.keys(result).length?result:null;}function mix$1(dest,src,shape){for(var key in shape){if(hasOwnProperty$2.call(shape,key)===false){continue;}if(shape[key]===true){if(key in src){if(hasOwnProperty$2.call(src,key)){dest[key]=copy(src[key]);}}}else if(shape[key]){if(typeof shape[key]==='function'){var fn=shape[key];dest[key]=fn({},dest[key]);dest[key]=fn(dest[key]||{},src[key]);}else if(isObject$2(shape[key])){var result={};for(var _name2 in dest[key]){result[_name2]=mix$1({},dest[key][_name2],shape[key]);}for(var _name3 in src[key]){result[_name3]=mix$1(result[_name3]||{},src[key][_name3],shape[key]);}dest[key]=result;}else if(Array.isArray(shape[key])){var res={};var innerShape=shape[key].reduce(function(s,k){s[k]=true;return s;},{});for(var _i6=0,_Object$entries2=Object.entries(dest[key]||{});_i6<_Object$entries2.length;_i6++){var _Object$entries2$_i=(0,_slicedToArray2["default"])(_Object$entries2[_i6],2),_name4=_Object$entries2$_i[0],_value2=_Object$entries2$_i[1];res[_name4]={};if(_value2){mix$1(res[_name4],_value2,innerShape);}}for(var _name5 in src[key]){if(hasOwnProperty$2.call(src[key],_name5)){if(!res[_name5]){res[_name5]={};}if(src[key]&&src[key][_name5]){mix$1(res[_name5],src[key][_name5],innerShape);}}}dest[key]=res;}}}return dest;}var mix_1=function mix_1(dest,src){return mix$1(dest,src,shape$1);};var List=List_1;var SyntaxError$1=_SyntaxError$1;var TokenStream=TokenStream_1;var Lexer=Lexer_1;var definitionSyntax=definitionSyntax$1;var tokenize=tokenizer$3;var createParser=create$4;var createGenerator=create$3;var createConvertor=create$2;var createWalker=create$1;var clone=clone$1;var names=names$2;var mix=mix_1;function _createSyntax(config){var parse=createParser(config);var walk=createWalker(config);var generate=createGenerator(config);var convert=createConvertor(walk);var syntax={List:List,SyntaxError:SyntaxError$1,TokenStream:TokenStream,Lexer:Lexer,vendorPrefix:names.vendorPrefix,keyword:names.keyword,property:names.property,isCustomProperty:names.isCustomProperty,definitionSyntax:definitionSyntax,lexer:null,createLexer:function createLexer(config){return new Lexer(config,syntax,syntax.lexer.structure);},tokenize:tokenize,parse:parse,walk:walk,generate:generate,find:walk.find,findLast:walk.findLast,findAll:walk.findAll,clone:clone,fromPlainObject:convert.fromPlainObject,toPlainObject:convert.toPlainObject,createSyntax:function createSyntax(config){return _createSyntax(mix({},config));},fork:function fork(extension){var base=mix({},config);// copy of config
1511return _createSyntax(typeof extension==='function'?extension(base,Object.assign):mix(base,extension));}};syntax.lexer=new Lexer({generic:true,types:config.types,atrules:config.atrules,properties:config.properties,node:config.node},syntax);return syntax;}create$5.create=function(config){return _createSyntax(mix({},config));};var require$$0={"@charset":{syntax:"@charset \"<charset>\";",groups:["CSS Charsets"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@charset"},"@counter-style":{syntax:"@counter-style <counter-style-name> {\n [ system: <counter-system>; ] ||\n [ symbols: <counter-symbols>; ] ||\n [ additive-symbols: <additive-symbols>; ] ||\n [ negative: <negative-symbol>; ] ||\n [ prefix: <prefix>; ] ||\n [ suffix: <suffix>; ] ||\n [ range: <range>; ] ||\n [ pad: <padding>; ] ||\n [ speak-as: <speak-as>; ] ||\n [ fallback: <counter-style-name>; ]\n}",interfaces:["CSSCounterStyleRule"],groups:["CSS Counter Styles"],descriptors:{"additive-symbols":{syntax:"[ <integer> && <symbol> ]#",media:"all",initial:"n/a (required)",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},fallback:{syntax:"<counter-style-name>",media:"all",initial:"decimal",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},negative:{syntax:"<symbol> <symbol>?",media:"all",initial:"\"-\" hyphen-minus",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},pad:{syntax:"<integer> && <symbol>",media:"all",initial:"0 \"\"",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},prefix:{syntax:"<symbol>",media:"all",initial:"\"\"",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},range:{syntax:"[ [ <integer> | infinite ]{2} ]# | auto",media:"all",initial:"auto",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},"speak-as":{syntax:"auto | bullets | numbers | words | spell-out | <counter-style-name>",media:"all",initial:"auto",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},suffix:{syntax:"<symbol>",media:"all",initial:"\". \"",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},symbols:{syntax:"<symbol>+",media:"all",initial:"n/a (required)",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},system:{syntax:"cyclic | numeric | alphabetic | symbolic | additive | [ fixed <integer>? ] | [ extends <counter-style-name> ]",media:"all",initial:"symbolic",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"}},status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@counter-style"},"@document":{syntax:"@document [ <url> | url-prefix(<string>) | domain(<string>) | media-document(<string>) | regexp(<string>) ]# {\n <group-rule-body>\n}",interfaces:["CSSGroupingRule","CSSConditionRule"],groups:["CSS Conditional Rules"],status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@document"},"@font-face":{syntax:"@font-face {\n [ font-family: <family-name>; ] ||\n [ src: <src>; ] ||\n [ unicode-range: <unicode-range>; ] ||\n [ font-variant: <font-variant>; ] ||\n [ font-feature-settings: <font-feature-settings>; ] ||\n [ font-variation-settings: <font-variation-settings>; ] ||\n [ font-stretch: <font-stretch>; ] ||\n [ font-weight: <font-weight>; ] ||\n [ font-style: <font-style>; ]\n}",interfaces:["CSSFontFaceRule"],groups:["CSS Fonts"],descriptors:{"font-display":{syntax:"[ auto | block | swap | fallback | optional ]",media:"visual",percentages:"no",initial:"auto",computed:"asSpecified",order:"uniqueOrder",status:"experimental"},"font-family":{syntax:"<family-name>",media:"all",initial:"n/a (required)",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"font-feature-settings":{syntax:"normal | <feature-tag-value>#",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},"font-variation-settings":{syntax:"normal | [ <string> <number> ]#",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},"font-stretch":{syntax:"<font-stretch-absolute>{1,2}",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"font-style":{syntax:"normal | italic | oblique <angle>{0,2}",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"font-weight":{syntax:"<font-weight-absolute>{1,2}",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"font-variant":{syntax:"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic(<feature-value-name>) || historical-forms || styleset(<feature-value-name>#) || character-variant(<feature-value-name>#) || swash(<feature-value-name>) || ornaments(<feature-value-name>) || annotation(<feature-value-name>) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]",media:"all",initial:"normal",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},src:{syntax:"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#",media:"all",initial:"n/a (required)",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},"unicode-range":{syntax:"<unicode-range>#",media:"all",initial:"U+0-10FFFF",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"}},status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@font-face"},"@font-feature-values":{syntax:"@font-feature-values <family-name># {\n <feature-value-block-list>\n}",interfaces:["CSSFontFeatureValuesRule"],groups:["CSS Fonts"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@font-feature-values"},"@import":{syntax:"@import [ <string> | <url> ] [ <media-query-list> ]?;",groups:["Media Queries"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@import"},"@keyframes":{syntax:"@keyframes <keyframes-name> {\n <keyframe-block-list>\n}",interfaces:["CSSKeyframeRule","CSSKeyframesRule"],groups:["CSS Animations"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@keyframes"},"@media":{syntax:"@media <media-query-list> {\n <group-rule-body>\n}",interfaces:["CSSGroupingRule","CSSConditionRule","CSSMediaRule","CSSCustomMediaRule"],groups:["CSS Conditional Rules","Media Queries"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@media"},"@namespace":{syntax:"@namespace <namespace-prefix>? [ <string> | <url> ];",groups:["CSS Namespaces"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@namespace"},"@page":{syntax:"@page <page-selector-list> {\n <page-body>\n}",interfaces:["CSSPageRule"],groups:["CSS Pages"],descriptors:{bleed:{syntax:"auto | <length>",media:["visual","paged"],initial:"auto",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},marks:{syntax:"none | [ crop || cross ]",media:["visual","paged"],initial:"none",percentages:"no",computed:"asSpecified",order:"orderOfAppearance",status:"standard"},size:{syntax:"<length>{1,2} | auto | [ <page-size> || [ portrait | landscape ] ]",media:["visual","paged"],initial:"auto",percentages:"no",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"orderOfAppearance",status:"standard"}},status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@page"},"@property":{syntax:"@property <custom-property-name> {\n <declaration-list>\n}",interfaces:["CSS","CSSPropertyRule"],groups:["CSS Houdini"],descriptors:{syntax:{syntax:"<string>",media:"all",percentages:"no",initial:"n/a (required)",computed:"asSpecified",order:"uniqueOrder",status:"experimental"},inherits:{syntax:"true | false",media:"all",percentages:"no",initial:"auto",computed:"asSpecified",order:"uniqueOrder",status:"experimental"},"initial-value":{syntax:"<string>",media:"all",initial:"n/a (required)",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"experimental"}},status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@property"},"@supports":{syntax:"@supports <supports-condition> {\n <group-rule-body>\n}",interfaces:["CSSGroupingRule","CSSConditionRule","CSSSupportsRule"],groups:["CSS Conditional Rules"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@supports"},"@viewport":{syntax:"@viewport {\n <group-rule-body>\n}",interfaces:["CSSViewportRule"],groups:["CSS Device Adaptation"],descriptors:{height:{syntax:"<viewport-length>{1,2}",media:["visual","continuous"],initial:["min-height","max-height"],percentages:["min-height","max-height"],computed:["min-height","max-height"],order:"orderOfAppearance",status:"standard"},"max-height":{syntax:"<viewport-length>",media:["visual","continuous"],initial:"auto",percentages:"referToHeightOfInitialViewport",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard"},"max-width":{syntax:"<viewport-length>",media:["visual","continuous"],initial:"auto",percentages:"referToWidthOfInitialViewport",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard"},"max-zoom":{syntax:"auto | <number> | <percentage>",media:["visual","continuous"],initial:"auto",percentages:"the zoom factor itself",computed:"autoNonNegativeOrPercentage",order:"uniqueOrder",status:"standard"},"min-height":{syntax:"<viewport-length>",media:["visual","continuous"],initial:"auto",percentages:"referToHeightOfInitialViewport",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard"},"min-width":{syntax:"<viewport-length>",media:["visual","continuous"],initial:"auto",percentages:"referToWidthOfInitialViewport",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard"},"min-zoom":{syntax:"auto | <number> | <percentage>",media:["visual","continuous"],initial:"auto",percentages:"the zoom factor itself",computed:"autoNonNegativeOrPercentage",order:"uniqueOrder",status:"standard"},orientation:{syntax:"auto | portrait | landscape",media:["visual","continuous"],initial:"auto",percentages:"referToSizeOfBoundingBox",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"user-zoom":{syntax:"zoom | fixed",media:["visual","continuous"],initial:"zoom",percentages:"referToSizeOfBoundingBox",computed:"asSpecified",order:"uniqueOrder",status:"standard"},"viewport-fit":{syntax:"auto | contain | cover",media:["visual","continuous"],initial:"auto",percentages:"no",computed:"asSpecified",order:"uniqueOrder",status:"standard"},width:{syntax:"<viewport-length>{1,2}",media:["visual","continuous"],initial:["min-width","max-width"],percentages:["min-width","max-width"],computed:["min-width","max-width"],order:"orderOfAppearance",status:"standard"},zoom:{syntax:"auto | <number> | <percentage>",media:["visual","continuous"],initial:"auto",percentages:"the zoom factor itself",computed:"autoNonNegativeOrPercentage",order:"uniqueOrder",status:"standard"}},status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/@viewport"}};var all={syntax:"initial | inherit | unset | revert",media:"noPracticalMedia",inherited:false,animationType:"eachOfShorthandPropertiesExceptUnicodeBiDiAndDirection",percentages:"no",groups:["CSS Miscellaneous"],initial:"noPracticalInitialValue",appliesto:"allElements",computed:"asSpecifiedAppliesToEachProperty",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/all"};var animation={syntax:"<single-animation>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:["animation-name","animation-duration","animation-timing-function","animation-delay","animation-iteration-count","animation-direction","animation-fill-mode","animation-play-state"],appliesto:"allElementsAndPseudos",computed:["animation-name","animation-duration","animation-timing-function","animation-delay","animation-direction","animation-iteration-count","animation-fill-mode","animation-play-state"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation"};var appearance={syntax:"none | auto | textfield | menulist-button | <compat-auto>",media:"all",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/appearance"};var azimuth={syntax:"<angle> | [ [ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards",media:"aural",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Speech"],initial:"center",appliesto:"allElements",computed:"normalizedAngle",order:"orderOfAppearance",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/azimuth"};var background={syntax:"[ <bg-layer> , ]* <final-bg-layer>",media:"visual",inherited:false,animationType:["background-color","background-image","background-clip","background-position","background-size","background-repeat","background-attachment"],percentages:["background-position","background-size"],groups:["CSS Backgrounds and Borders"],initial:["background-image","background-position","background-size","background-repeat","background-origin","background-clip","background-attachment","background-color"],appliesto:"allElements",computed:["background-image","background-position","background-size","background-repeat","background-origin","background-clip","background-attachment","background-color"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background"};var border={syntax:"<line-width> || <line-style> || <color>",media:"visual",inherited:false,animationType:["border-color","border-style","border-width"],percentages:"no",groups:["CSS Backgrounds and Borders"],initial:["border-width","border-style","border-color"],appliesto:"allElements",computed:["border-width","border-style","border-color"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border"};var bottom={syntax:"<length> | <percentage> | auto",media:"visual",inherited:false,animationType:"lpc",percentages:"referToContainingBlockHeight",groups:["CSS Positioning"],initial:"auto",appliesto:"positionedElements",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/bottom"};var clear={syntax:"none | left | right | both | inline-start | inline-end",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Positioning"],initial:"none",appliesto:"blockLevelElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/clear"};var clip={syntax:"<shape> | auto",media:"visual",inherited:false,animationType:"rectangle",percentages:"no",groups:["CSS Masking"],initial:"auto",appliesto:"absolutelyPositionedElements",computed:"autoOrRectangle",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/clip"};var color$1={syntax:"<color>",media:"visual",inherited:true,animationType:"color",percentages:"no",groups:["CSS Color"],initial:"variesFromBrowserToBrowser",appliesto:"allElements",computed:"translucentValuesRGBAOtherwiseRGB",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/color"};var columns={syntax:"<'column-width'> || <'column-count'>",media:"visual",inherited:false,animationType:["column-width","column-count"],percentages:"no",groups:["CSS Columns"],initial:["column-width","column-count"],appliesto:"blockContainersExceptTableWrappers",computed:["column-width","column-count"],order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/columns"};var contain={syntax:"none | strict | content | [ size || layout || style || paint ]",media:"all",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Containment"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/contain"};var content={syntax:"normal | none | [ <content-replacement> | <content-list> ] [/ <string> ]?",media:"all",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Generated Content"],initial:"normal",appliesto:"beforeAndAfterPseudos",computed:"normalOnElementsForPseudosNoneAbsoluteURIStringOrAsSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/content"};var cursor={syntax:"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing ] ]",media:["visual","interactive"],inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"auto",appliesto:"allElements",computed:"asSpecifiedURLsAbsolute",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/cursor"};var direction={syntax:"ltr | rtl",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Writing Modes"],initial:"ltr",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/direction"};var display={syntax:"[ <display-outside> || <display-inside> ] | <display-listitem> | <display-internal> | <display-box> | <display-legacy>",media:"all",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Display"],initial:"inline",appliesto:"allElements",computed:"asSpecifiedExceptPositionedFloatingAndRootElementsKeywordMaybeDifferent",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/display"};var filter={syntax:"none | <filter-function-list>",media:"visual",inherited:false,animationType:"filterList",percentages:"no",groups:["Filter Effects"],initial:"none",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/filter"};var flex={syntax:"none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]",media:"visual",inherited:false,animationType:["flex-grow","flex-shrink","flex-basis"],percentages:"no",groups:["CSS Flexible Box Layout"],initial:["flex-grow","flex-shrink","flex-basis"],appliesto:"flexItemsAndInFlowPseudos",computed:["flex-grow","flex-shrink","flex-basis"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/flex"};var _float={syntax:"left | right | none | inline-start | inline-end",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Positioning"],initial:"none",appliesto:"allElementsNoEffectIfDisplayNone",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/float"};var font={syntax:"[ [ <'font-style'> || <font-variant-css21> || <'font-weight'> || <'font-stretch'> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar",media:"visual",inherited:true,animationType:["font-style","font-variant","font-weight","font-stretch","font-size","line-height","font-family"],percentages:["font-size","line-height"],groups:["CSS Fonts"],initial:["font-style","font-variant","font-weight","font-stretch","font-size","line-height","font-family"],appliesto:"allElements",computed:["font-style","font-variant","font-weight","font-stretch","font-size","line-height","font-family"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font"};var gap={syntax:"<'row-gap'> <'column-gap'>?",media:"visual",inherited:false,animationType:["row-gap","column-gap"],percentages:"no",groups:["CSS Box Alignment"],initial:["row-gap","column-gap"],appliesto:"multiColumnElementsFlexContainersGridContainers",computed:["row-gap","column-gap"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/gap"};var grid={syntax:"<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>",media:"visual",inherited:false,animationType:"discrete",percentages:["grid-template-rows","grid-template-columns","grid-auto-rows","grid-auto-columns"],groups:["CSS Grid Layout"],initial:["grid-template-rows","grid-template-columns","grid-template-areas","grid-auto-rows","grid-auto-columns","grid-auto-flow","grid-column-gap","grid-row-gap","column-gap","row-gap"],appliesto:"gridContainers",computed:["grid-template-rows","grid-template-columns","grid-template-areas","grid-auto-rows","grid-auto-columns","grid-auto-flow","grid-column-gap","grid-row-gap","column-gap","row-gap"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid"};var height={syntax:"auto | <length> | <percentage> | min-content | max-content | fit-content(<length-percentage>)",media:"visual",inherited:false,animationType:"lpc",percentages:"regardingHeightOfGeneratedBoxContainingBlockPercentagesRelativeToContainingBlock",groups:["CSS Box Model"],initial:"auto",appliesto:"allElementsButNonReplacedAndTableColumns",computed:"percentageAutoOrAbsoluteLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/height"};var hyphens={syntax:"none | manual | auto",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"manual",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/hyphens"};var inset={syntax:"<'top'>{1,4}",media:"visual",inherited:false,animationType:"lpc",percentages:"logicalHeightOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"positionedElements",computed:"sameAsBoxOffsets",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/inset"};var isolation={syntax:"auto | isolate",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Compositing and Blending"],initial:"auto",appliesto:"allElementsSVGContainerGraphicsAndGraphicsReferencingElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/isolation"};var left={syntax:"<length> | <percentage> | auto",media:"visual",inherited:false,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Positioning"],initial:"auto",appliesto:"positionedElements",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/left"};var margin={syntax:"[ <length> | <percentage> | auto ]{1,4}",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:["margin-bottom","margin-left","margin-right","margin-top"],appliesto:"allElementsExceptTableDisplayTypes",computed:["margin-bottom","margin-left","margin-right","margin-top"],order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin"};var mask={syntax:"<mask-layer>#",media:"visual",inherited:false,animationType:["mask-image","mask-mode","mask-repeat","mask-position","mask-clip","mask-origin","mask-size","mask-composite"],percentages:["mask-position"],groups:["CSS Masking"],initial:["mask-image","mask-mode","mask-repeat","mask-position","mask-clip","mask-origin","mask-size","mask-composite"],appliesto:"allElementsSVGContainerElements",computed:["mask-image","mask-mode","mask-repeat","mask-position","mask-clip","mask-origin","mask-size","mask-composite"],order:"perGrammar",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask"};var offset={syntax:"[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?",media:"visual",inherited:false,animationType:["offset-position","offset-path","offset-distance","offset-anchor","offset-rotate"],percentages:["offset-position","offset-distance","offset-anchor"],groups:["CSS Motion Path"],initial:["offset-position","offset-path","offset-distance","offset-anchor","offset-rotate"],appliesto:"transformableElements",computed:["offset-position","offset-path","offset-distance","offset-anchor","offset-rotate"],order:"perGrammar",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/offset"};var opacity={syntax:"<alpha-value>",media:"visual",inherited:false,animationType:"number",percentages:"no",groups:["CSS Color"],initial:"1.0",appliesto:"allElements",computed:"specifiedValueClipped0To1",order:"uniqueOrder",alsoAppliesTo:["::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/opacity"};var order={syntax:"<integer>",media:"visual",inherited:false,animationType:"integer",percentages:"no",groups:["CSS Flexible Box Layout"],initial:"0",appliesto:"flexItemsGridItemsAbsolutelyPositionedContainerChildren",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/order"};var orphans={syntax:"<integer>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fragmentation"],initial:"2",appliesto:"blockContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/orphans"};var outline={syntax:"[ <'outline-color'> || <'outline-style'> || <'outline-width'> ]",media:["visual","interactive"],inherited:false,animationType:["outline-color","outline-width","outline-style"],percentages:"no",groups:["CSS Basic User Interface"],initial:["outline-color","outline-style","outline-width"],appliesto:"allElements",computed:["outline-color","outline-width","outline-style"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/outline"};var overflow={syntax:"[ visible | hidden | clip | scroll | auto ]{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Overflow"],initial:"visible",appliesto:"blockContainersFlexContainersGridContainers",computed:["overflow-x","overflow-y"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overflow"};var padding={syntax:"[ <length> | <percentage> ]{1,4}",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:["padding-bottom","padding-left","padding-right","padding-top"],appliesto:"allElementsExceptInternalTableDisplayTypes",computed:["padding-bottom","padding-left","padding-right","padding-top"],order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding"};var perspective={syntax:"none | <length>",media:"visual",inherited:false,animationType:"length",percentages:"no",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"absoluteLengthOrNone",order:"uniqueOrder",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/perspective"};var position$1={syntax:"static | relative | absolute | sticky | fixed",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Positioning"],initial:"static",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/position"};var quotes={syntax:"none | auto | [ <string> <string> ]+",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Generated Content"],initial:"dependsOnUserAgent",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/quotes"};var resize={syntax:"none | both | horizontal | vertical | block | inline",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"none",appliesto:"elementsWithOverflowNotVisibleAndReplacedElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/resize"};var right={syntax:"<length> | <percentage> | auto",media:"visual",inherited:false,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Positioning"],initial:"auto",appliesto:"positionedElements",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/right"};var rotate={syntax:"none | <angle> | [ x | y | z | <number>{3} ] && <angle>",media:"visual",inherited:false,animationType:"transform",percentages:"no",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"asSpecified",order:"perGrammar",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/rotate"};var scale={syntax:"none | <number>{1,3}",media:"visual",inherited:false,animationType:"transform",percentages:"no",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"asSpecified",order:"perGrammar",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scale"};var top={syntax:"<length> | <percentage> | auto",media:"visual",inherited:false,animationType:"lpc",percentages:"referToContainingBlockHeight",groups:["CSS Positioning"],initial:"auto",appliesto:"positionedElements",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/top"};var transform={syntax:"none | <transform-list>",media:"visual",inherited:false,animationType:"transform",percentages:"referToSizeOfBoundingBox",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transform"};var transition={syntax:"<single-transition>#",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Transitions"],initial:["transition-delay","transition-duration","transition-property","transition-timing-function"],appliesto:"allElementsAndPseudos",computed:["transition-delay","transition-duration","transition-property","transition-timing-function"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transition"};var translate={syntax:"none | <length-percentage> [ <length-percentage> <length>? ]?",media:"visual",inherited:false,animationType:"transform",percentages:"referToSizeOfBoundingBox",groups:["CSS Transforms"],initial:"none",appliesto:"transformableElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"perGrammar",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/translate"};var visibility={syntax:"visible | hidden | collapse",media:"visual",inherited:true,animationType:"visibility",percentages:"no",groups:["CSS Box Model"],initial:"visible",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/visibility"};var widows={syntax:"<integer>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fragmentation"],initial:"2",appliesto:"blockContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/widows"};var width={syntax:"auto | <length> | <percentage> | min-content | max-content | fit-content(<length-percentage>)",media:"visual",inherited:false,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"auto",appliesto:"allElementsButNonReplacedAndTableRows",computed:"percentageAutoOrAbsoluteLength",order:"lengthOrPercentageBeforeKeywordIfBothPresent",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/width"};var zoom={syntax:"normal | reset | <number> | <percentage>",media:"visual",inherited:false,animationType:"integer",percentages:"no",groups:["Microsoft Extensions"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/zoom"};var require$$1={"--*":{syntax:"<declaration-value>",media:"all",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Variables"],initial:"seeProse",appliesto:"allElements",computed:"asSpecifiedWithVarsSubstituted",order:"perGrammar",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/--*"},"-ms-accelerator":{syntax:"false | true",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"false",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-accelerator"},"-ms-block-progression":{syntax:"tb | rl | bt | lr",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"tb",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-block-progression"},"-ms-content-zoom-chaining":{syntax:"none | chained",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-chaining"},"-ms-content-zooming":{syntax:"none | zoom",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"zoomForTheTopLevelNoneForTheRest",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zooming"},"-ms-content-zoom-limit":{syntax:"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>",media:"interactive",inherited:false,animationType:"discrete",percentages:["-ms-content-zoom-limit-max","-ms-content-zoom-limit-min"],groups:["Microsoft Extensions"],initial:["-ms-content-zoom-limit-max","-ms-content-zoom-limit-min"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-content-zoom-limit-max","-ms-content-zoom-limit-min"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-limit"},"-ms-content-zoom-limit-max":{syntax:"<percentage>",media:"interactive",inherited:false,animationType:"discrete",percentages:"maxZoomFactor",groups:["Microsoft Extensions"],initial:"400%",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-limit-max"},"-ms-content-zoom-limit-min":{syntax:"<percentage>",media:"interactive",inherited:false,animationType:"discrete",percentages:"minZoomFactor",groups:["Microsoft Extensions"],initial:"100%",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-limit-min"},"-ms-content-zoom-snap":{syntax:"<'-ms-content-zoom-snap-type'> || <'-ms-content-zoom-snap-points'>",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:["-ms-content-zoom-snap-type","-ms-content-zoom-snap-points"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-content-zoom-snap-type","-ms-content-zoom-snap-points"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-snap"},"-ms-content-zoom-snap-points":{syntax:"snapInterval( <percentage>, <percentage> ) | snapList( <percentage># )",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"snapInterval(0%, 100%)",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-snap-points"},"-ms-content-zoom-snap-type":{syntax:"none | proximity | mandatory",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-content-zoom-snap-type"},"-ms-filter":{syntax:"<string>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"\"\"",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-filter"},"-ms-flow-from":{syntax:"[ none | <custom-ident> ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"nonReplacedElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-flow-from"},"-ms-flow-into":{syntax:"[ none | <custom-ident> ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"iframeElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-flow-into"},"-ms-grid-columns":{syntax:"none | <track-list> | <auto-track-list>",media:"visual",inherited:false,animationType:"simpleListOfLpcDifferenceLpc",percentages:"referToDimensionOfContentArea",groups:["CSS Grid Layout"],initial:"none",appliesto:"gridContainers",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-grid-columns"},"-ms-grid-rows":{syntax:"none | <track-list> | <auto-track-list>",media:"visual",inherited:false,animationType:"simpleListOfLpcDifferenceLpc",percentages:"referToDimensionOfContentArea",groups:["CSS Grid Layout"],initial:"none",appliesto:"gridContainers",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-grid-rows"},"-ms-high-contrast-adjust":{syntax:"auto | none",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-high-contrast-adjust"},"-ms-hyphenate-limit-chars":{syntax:"auto | <integer>{1,3}",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-hyphenate-limit-chars"},"-ms-hyphenate-limit-lines":{syntax:"no-limit | <integer>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"no-limit",appliesto:"blockContainerElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-hyphenate-limit-lines"},"-ms-hyphenate-limit-zone":{syntax:"<percentage> | <length>",media:"visual",inherited:true,animationType:"discrete",percentages:"referToLineBoxWidth",groups:["Microsoft Extensions"],initial:"0",appliesto:"blockContainerElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-hyphenate-limit-zone"},"-ms-ime-align":{syntax:"auto | after",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-ime-align"},"-ms-overflow-style":{syntax:"auto | none | scrollbar | -ms-autohiding-scrollbar",media:"interactive",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-overflow-style"},"-ms-scrollbar-3dlight-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"dependsOnUserAgent",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-3dlight-color"},"-ms-scrollbar-arrow-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ButtonText",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-arrow-color"},"-ms-scrollbar-base-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"dependsOnUserAgent",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-base-color"},"-ms-scrollbar-darkshadow-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ThreeDDarkShadow",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-darkshadow-color"},"-ms-scrollbar-face-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ThreeDFace",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-face-color"},"-ms-scrollbar-highlight-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ThreeDHighlight",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-highlight-color"},"-ms-scrollbar-shadow-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"ThreeDDarkShadow",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-shadow-color"},"-ms-scrollbar-track-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"Scrollbar",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scrollbar-track-color"},"-ms-scroll-chaining":{syntax:"chained | none",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"chained",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-chaining"},"-ms-scroll-limit":{syntax:"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:["-ms-scroll-limit-x-min","-ms-scroll-limit-y-min","-ms-scroll-limit-x-max","-ms-scroll-limit-y-max"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-scroll-limit-x-min","-ms-scroll-limit-y-min","-ms-scroll-limit-x-max","-ms-scroll-limit-y-max"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit"},"-ms-scroll-limit-x-max":{syntax:"auto | <length>",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-x-max"},"-ms-scroll-limit-x-min":{syntax:"<length>",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"0",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-x-min"},"-ms-scroll-limit-y-max":{syntax:"auto | <length>",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-y-max"},"-ms-scroll-limit-y-min":{syntax:"<length>",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"0",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-limit-y-min"},"-ms-scroll-rails":{syntax:"none | railed",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"railed",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-rails"},"-ms-scroll-snap-points-x":{syntax:"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"snapInterval(0px, 100%)",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-points-x"},"-ms-scroll-snap-points-y":{syntax:"snapInterval( <length-percentage>, <length-percentage> ) | snapList( <length-percentage># )",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"snapInterval(0px, 100%)",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-points-y"},"-ms-scroll-snap-type":{syntax:"none | proximity | mandatory",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-type"},"-ms-scroll-snap-x":{syntax:"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:["-ms-scroll-snap-type","-ms-scroll-snap-points-x"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-scroll-snap-type","-ms-scroll-snap-points-x"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-x"},"-ms-scroll-snap-y":{syntax:"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:["-ms-scroll-snap-type","-ms-scroll-snap-points-y"],appliesto:"nonReplacedBlockAndInlineBlockElements",computed:["-ms-scroll-snap-type","-ms-scroll-snap-points-y"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-snap-y"},"-ms-scroll-translation":{syntax:"none | vertical-to-horizontal",media:"interactive",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-scroll-translation"},"-ms-text-autospace":{syntax:"none | ideograph-alpha | ideograph-numeric | ideograph-parenthesis | ideograph-space",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-text-autospace"},"-ms-touch-select":{syntax:"grippers | none",media:"interactive",inherited:true,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"grippers",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-touch-select"},"-ms-user-select":{syntax:"none | element | text",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"text",appliesto:"nonReplacedElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-user-select"},"-ms-wrap-flow":{syntax:"auto | both | start | end | maximum | clear",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"auto",appliesto:"blockLevelElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-wrap-flow"},"-ms-wrap-margin":{syntax:"<length>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"0",appliesto:"exclusionElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-wrap-margin"},"-ms-wrap-through":{syntax:"wrap | none",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Microsoft Extensions"],initial:"wrap",appliesto:"blockLevelElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-ms-wrap-through"},"-moz-appearance":{syntax:"none | button | button-arrow-down | button-arrow-next | button-arrow-previous | button-arrow-up | button-bevel | button-focus | caret | checkbox | checkbox-container | checkbox-label | checkmenuitem | dualbutton | groupbox | listbox | listitem | menuarrow | menubar | menucheckbox | menuimage | menuitem | menuitemtext | menulist | menulist-button | menulist-text | menulist-textfield | menupopup | menuradio | menuseparator | meterbar | meterchunk | progressbar | progressbar-vertical | progresschunk | progresschunk-vertical | radio | radio-container | radio-label | radiomenuitem | range | range-thumb | resizer | resizerpanel | scale-horizontal | scalethumbend | scalethumb-horizontal | scalethumbstart | scalethumbtick | scalethumb-vertical | scale-vertical | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | separator | sheet | spinner | spinner-downbutton | spinner-textfield | spinner-upbutton | splitter | statusbar | statusbarpanel | tab | tabpanel | tabpanels | tab-scroll-arrow-back | tab-scroll-arrow-forward | textfield | textfield-multiline | toolbar | toolbarbutton | toolbarbutton-dropdown | toolbargripper | toolbox | tooltip | treeheader | treeheadercell | treeheadersortarrow | treeitem | treeline | treetwisty | treetwistyopen | treeview | -moz-mac-unified-toolbar | -moz-win-borderless-glass | -moz-win-browsertabbar-toolbox | -moz-win-communicationstext | -moz-win-communications-toolbox | -moz-win-exclude-glass | -moz-win-glass | -moz-win-mediatext | -moz-win-media-toolbox | -moz-window-button-box | -moz-window-button-box-maximized | -moz-window-button-close | -moz-window-button-maximize | -moz-window-button-minimize | -moz-window-button-restore | -moz-window-frame-bottom | -moz-window-frame-left | -moz-window-frame-right | -moz-window-titlebar | -moz-window-titlebar-maximized",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"noneButOverriddenInUserAgentCSS",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/appearance"},"-moz-binding":{syntax:"<url> | none",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElementsExceptGeneratedContentOrPseudoElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-binding"},"-moz-border-bottom-colors":{syntax:"<color>+ | none",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-border-bottom-colors"},"-moz-border-left-colors":{syntax:"<color>+ | none",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-border-left-colors"},"-moz-border-right-colors":{syntax:"<color>+ | none",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-border-right-colors"},"-moz-border-top-colors":{syntax:"<color>+ | none",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-border-top-colors"},"-moz-context-properties":{syntax:"none | [ fill | fill-opacity | stroke | stroke-opacity ]#",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElementsThatCanReferenceImages",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-context-properties"},"-moz-float-edge":{syntax:"border-box | content-box | margin-box | padding-box",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"content-box",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-float-edge"},"-moz-force-broken-image-icon":{syntax:"<integer [0,1]>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"0",appliesto:"images",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-force-broken-image-icon"},"-moz-image-region":{syntax:"<shape> | auto",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"auto",appliesto:"xulImageElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-image-region"},"-moz-orient":{syntax:"inline | block | horizontal | vertical",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"inline",appliesto:"anyElementEffectOnProgressAndMeter",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-orient"},"-moz-outline-radius":{syntax:"<outline-radius>{1,4} [ / <outline-radius>{1,4} ]?",media:"visual",inherited:false,animationType:["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],percentages:["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],groups:["Mozilla Extensions"],initial:["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],appliesto:"allElements",computed:["-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-outline-radius-bottomright","-moz-outline-radius-bottomleft"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius"},"-moz-outline-radius-bottomleft":{syntax:"<outline-radius>",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["Mozilla Extensions"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomleft"},"-moz-outline-radius-bottomright":{syntax:"<outline-radius>",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["Mozilla Extensions"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-bottomright"},"-moz-outline-radius-topleft":{syntax:"<outline-radius>",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["Mozilla Extensions"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topleft"},"-moz-outline-radius-topright":{syntax:"<outline-radius>",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["Mozilla Extensions"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-outline-radius-topright"},"-moz-stack-sizing":{syntax:"ignore | stretch-to-fit",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"stretch-to-fit",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-stack-sizing"},"-moz-text-blink":{syntax:"none | blink",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-text-blink"},"-moz-user-focus":{syntax:"ignore | normal | select-after | select-before | select-menu | select-same | select-all | none",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-user-focus"},"-moz-user-input":{syntax:"auto | none | enabled | disabled",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-user-input"},"-moz-user-modify":{syntax:"read-only | read-write | write-only",media:"interactive",inherited:true,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"read-only",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-user-modify"},"-moz-window-dragging":{syntax:"drag | no-drag",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"drag",appliesto:"allElementsCreatingNativeWindows",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-window-dragging"},"-moz-window-shadow":{syntax:"default | menu | tooltip | sheet | none",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"default",appliesto:"allElementsCreatingNativeWindows",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-moz-window-shadow"},"-webkit-appearance":{syntax:"none | button | button-bevel | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"noneButOverriddenInUserAgentCSS",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/appearance"},"-webkit-border-before":{syntax:"<'border-width'> || <'border-style'> || <'color'>",media:"visual",inherited:true,animationType:"discrete",percentages:["-webkit-border-before-width"],groups:["WebKit Extensions"],initial:["border-width","border-style","color"],appliesto:"allElements",computed:["border-width","border-style","color"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-border-before"},"-webkit-border-before-color":{syntax:"<'color'>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"nonstandard"},"-webkit-border-before-style":{syntax:"<'border-style'>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard"},"-webkit-border-before-width":{syntax:"<'border-width'>",media:"visual",inherited:true,animationType:"discrete",percentages:"logicalWidthOfContainingBlock",groups:["WebKit Extensions"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthZeroIfBorderStyleNoneOrHidden",order:"uniqueOrder",status:"nonstandard"},"-webkit-box-reflect":{syntax:"[ above | below | right | left ]? <length>? <image>?",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-box-reflect"},"-webkit-line-clamp":{syntax:"none | <integer>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["WebKit Extensions","CSS Overflow"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-line-clamp"},"-webkit-mask":{syntax:"[ <mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || [ <box> | border | padding | content | text ] || [ <box> | border | padding | content ] ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:["-webkit-mask-image","-webkit-mask-repeat","-webkit-mask-attachment","-webkit-mask-position","-webkit-mask-origin","-webkit-mask-clip"],appliesto:"allElements",computed:["-webkit-mask-image","-webkit-mask-repeat","-webkit-mask-attachment","-webkit-mask-position","-webkit-mask-origin","-webkit-mask-clip"],order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask"},"-webkit-mask-attachment":{syntax:"<attachment>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"scroll",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-attachment"},"-webkit-mask-clip":{syntax:"[ <box> | border | padding | content | text ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"border",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-clip"},"-webkit-mask-composite":{syntax:"<composite-style>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"source-over",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-composite"},"-webkit-mask-image":{syntax:"<mask-reference>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"none",appliesto:"allElements",computed:"absoluteURIOrNone",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-image"},"-webkit-mask-origin":{syntax:"[ <box> | border | padding | content ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"padding",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-origin"},"-webkit-mask-position":{syntax:"<position>#",media:"visual",inherited:false,animationType:"discrete",percentages:"referToSizeOfElement",groups:["WebKit Extensions"],initial:"0% 0%",appliesto:"allElements",computed:"absoluteLengthOrPercentage",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-position"},"-webkit-mask-position-x":{syntax:"[ <length-percentage> | left | center | right ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"referToSizeOfElement",groups:["WebKit Extensions"],initial:"0%",appliesto:"allElements",computed:"absoluteLengthOrPercentage",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-x"},"-webkit-mask-position-y":{syntax:"[ <length-percentage> | top | center | bottom ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"referToSizeOfElement",groups:["WebKit Extensions"],initial:"0%",appliesto:"allElements",computed:"absoluteLengthOrPercentage",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-position-y"},"-webkit-mask-repeat":{syntax:"<repeat-style>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"repeat",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-repeat"},"-webkit-mask-repeat-x":{syntax:"repeat | no-repeat | space | round",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"repeat",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-x"},"-webkit-mask-repeat-y":{syntax:"repeat | no-repeat | space | round",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"repeat",appliesto:"allElements",computed:"absoluteLengthOrPercentage",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-mask-repeat-y"},"-webkit-mask-size":{syntax:"<bg-size>#",media:"visual",inherited:false,animationType:"discrete",percentages:"relativeToBackgroundPositioningArea",groups:["WebKit Extensions"],initial:"auto auto",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-size"},"-webkit-overflow-scrolling":{syntax:"auto | touch",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"auto",appliesto:"scrollingBoxes",computed:"asSpecified",order:"orderOfAppearance",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-overflow-scrolling"},"-webkit-tap-highlight-color":{syntax:"<color>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"black",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-tap-highlight-color"},"-webkit-text-fill-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"color",percentages:"no",groups:["WebKit Extensions"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-fill-color"},"-webkit-text-stroke":{syntax:"<length> || <color>",media:"visual",inherited:true,animationType:["-webkit-text-stroke-width","-webkit-text-stroke-color"],percentages:"no",groups:["WebKit Extensions"],initial:["-webkit-text-stroke-width","-webkit-text-stroke-color"],appliesto:"allElements",computed:["-webkit-text-stroke-width","-webkit-text-stroke-color"],order:"canonicalOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke"},"-webkit-text-stroke-color":{syntax:"<color>",media:"visual",inherited:true,animationType:"color",percentages:"no",groups:["WebKit Extensions"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-color"},"-webkit-text-stroke-width":{syntax:"<length>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"0",appliesto:"allElements",computed:"absoluteLength",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-text-stroke-width"},"-webkit-touch-callout":{syntax:"default | none",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"default",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/-webkit-touch-callout"},"-webkit-user-modify":{syntax:"read-only | read-write | read-write-plaintext-only",media:"interactive",inherited:true,animationType:"discrete",percentages:"no",groups:["WebKit Extensions"],initial:"read-only",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard"},"align-content":{syntax:"normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"normal",appliesto:"multilineFlexContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/align-content"},"align-items":{syntax:"normal | stretch | <baseline-position> | [ <overflow-position>? <self-position> ]",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/align-items"},"align-self":{syntax:"auto | normal | stretch | <baseline-position> | <overflow-position>? <self-position>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"auto",appliesto:"flexItemsGridItemsAndAbsolutelyPositionedBoxes",computed:"autoOnAbsolutelyPositionedElementsValueOfAlignItemsOnParent",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/align-self"},"align-tracks":{syntax:"[ normal | <baseline-position> | <content-distribution> | <overflow-position>? <content-position> ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:"normal",appliesto:"gridContainersWithMasonryLayoutInTheirBlockAxis",computed:"asSpecified",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/align-tracks"},all:all,animation:animation,"animation-delay":{syntax:"<time>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:"0s",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation-delay"},"animation-direction":{syntax:"<single-animation-direction>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:"normal",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation-direction"},"animation-duration":{syntax:"<time>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:"0s",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation-duration"},"animation-fill-mode":{syntax:"<single-animation-fill-mode>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:"none",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation-fill-mode"},"animation-iteration-count":{syntax:"<single-animation-iteration-count>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:"1",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation-iteration-count"},"animation-name":{syntax:"[ none | <keyframes-name> ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:"none",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation-name"},"animation-play-state":{syntax:"<single-animation-play-state>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:"running",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation-play-state"},"animation-timing-function":{syntax:"<timing-function>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Animations"],initial:"ease",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/animation-timing-function"},appearance:appearance,"aspect-ratio":{syntax:"auto | <ratio>",media:"all",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"auto",appliesto:"allElementsExceptInlineBoxesAndInternalRubyOrTableBoxes",computed:"asSpecified",order:"perGrammar",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/aspect-ratio"},azimuth:azimuth,"backdrop-filter":{syntax:"none | <filter-function-list>",media:"visual",inherited:false,animationType:"filterList",percentages:"no",groups:["Filter Effects"],initial:"none",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/backdrop-filter"},"backface-visibility":{syntax:"visible | hidden",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Transforms"],initial:"visible",appliesto:"transformableElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/backface-visibility"},background:background,"background-attachment":{syntax:"<attachment>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"scroll",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-attachment"},"background-blend-mode":{syntax:"<blend-mode>#",media:"none",inherited:false,animationType:"discrete",percentages:"no",groups:["Compositing and Blending"],initial:"normal",appliesto:"allElementsSVGContainerGraphicsAndGraphicsReferencingElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-blend-mode"},"background-clip":{syntax:"<box>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"border-box",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-clip"},"background-color":{syntax:"<color>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"transparent",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-color"},"background-image":{syntax:"<bg-image>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"none",appliesto:"allElements",computed:"asSpecifiedURLsAbsolute",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-image"},"background-origin":{syntax:"<box>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"padding-box",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-origin"},"background-position":{syntax:"<bg-position>#",media:"visual",inherited:false,animationType:"repeatableListOfSimpleListOfLpc",percentages:"referToSizeOfBackgroundPositioningAreaMinusBackgroundImageSize",groups:["CSS Backgrounds and Borders"],initial:"0% 0%",appliesto:"allElements",computed:"listEachItemTwoKeywordsOriginOffsets",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-position"},"background-position-x":{syntax:"[ center | [ [ left | right | x-start | x-end ]? <length-percentage>? ]! ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"referToWidthOfBackgroundPositioningAreaMinusBackgroundImageHeight",groups:["CSS Backgrounds and Borders"],initial:"left",appliesto:"allElements",computed:"listEachItemConsistingOfAbsoluteLengthPercentageAndOrigin",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-position-x"},"background-position-y":{syntax:"[ center | [ [ top | bottom | y-start | y-end ]? <length-percentage>? ]! ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"referToHeightOfBackgroundPositioningAreaMinusBackgroundImageHeight",groups:["CSS Backgrounds and Borders"],initial:"top",appliesto:"allElements",computed:"listEachItemConsistingOfAbsoluteLengthPercentageAndOrigin",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-position-y"},"background-repeat":{syntax:"<repeat-style>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"repeat",appliesto:"allElements",computed:"listEachItemHasTwoKeywordsOnePerDimension",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-repeat"},"background-size":{syntax:"<bg-size>#",media:"visual",inherited:false,animationType:"repeatableListOfSimpleListOfLpc",percentages:"relativeToBackgroundPositioningArea",groups:["CSS Backgrounds and Borders"],initial:"auto auto",appliesto:"allElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/background-size"},"block-overflow":{syntax:"clip | ellipsis | <string>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Overflow"],initial:"clip",appliesto:"blockContainers",computed:"asSpecified",order:"perGrammar",status:"experimental"},"block-size":{syntax:"<'width'>",media:"visual",inherited:false,animationType:"lpc",percentages:"blockSizeOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"sameAsWidthAndHeight",computed:"sameAsWidthAndHeight",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/block-size"},border:border,"border-block":{syntax:"<'border-top-width'> || <'border-top-style'> || <'color'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:["border-top-width","border-top-style","border-top-color"],appliesto:"allElements",computed:["border-top-width","border-top-style","border-top-color"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block"},"border-block-color":{syntax:"<'border-top-color'>{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-color"},"border-block-style":{syntax:"<'border-top-style'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-style"},"border-block-width":{syntax:"<'border-top-width'>",media:"visual",inherited:false,animationType:"discrete",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthZeroIfBorderStyleNoneOrHidden",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-width"},"border-block-end":{syntax:"<'border-top-width'> || <'border-top-style'> || <'color'>",media:"visual",inherited:false,animationType:["border-block-end-color","border-block-end-style","border-block-end-width"],percentages:"no",groups:["CSS Logical Properties"],initial:["border-top-width","border-top-style","border-top-color"],appliesto:"allElements",computed:["border-top-width","border-top-style","border-top-color"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-end"},"border-block-end-color":{syntax:"<'border-top-color'>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Logical Properties"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-end-color"},"border-block-end-style":{syntax:"<'border-top-style'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-end-style"},"border-block-end-width":{syntax:"<'border-top-width'>",media:"visual",inherited:false,animationType:"length",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthZeroIfBorderStyleNoneOrHidden",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-end-width"},"border-block-start":{syntax:"<'border-top-width'> || <'border-top-style'> || <'color'>",media:"visual",inherited:false,animationType:["border-block-start-color","border-block-start-style","border-block-start-width"],percentages:"no",groups:["CSS Logical Properties"],initial:["border-width","border-style","color"],appliesto:"allElements",computed:["border-width","border-style","border-block-start-color"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-start"},"border-block-start-color":{syntax:"<'border-top-color'>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Logical Properties"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-start-color"},"border-block-start-style":{syntax:"<'border-top-style'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-start-style"},"border-block-start-width":{syntax:"<'border-top-width'>",media:"visual",inherited:false,animationType:"length",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthZeroIfBorderStyleNoneOrHidden",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-block-start-width"},"border-bottom":{syntax:"<line-width> || <line-style> || <color>",media:"visual",inherited:false,animationType:["border-bottom-color","border-bottom-style","border-bottom-width"],percentages:"no",groups:["CSS Backgrounds and Borders"],initial:["border-bottom-width","border-bottom-style","border-bottom-color"],appliesto:"allElements",computed:["border-bottom-width","border-bottom-style","border-bottom-color"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom"},"border-bottom-color":{syntax:"<'border-top-color'>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-color"},"border-bottom-left-radius":{syntax:"<length-percentage>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["CSS Backgrounds and Borders"],initial:"0",appliesto:"allElementsUAsNotRequiredWhenCollapse",computed:"twoAbsoluteLengthOrPercentages",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-left-radius"},"border-bottom-right-radius":{syntax:"<length-percentage>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["CSS Backgrounds and Borders"],initial:"0",appliesto:"allElementsUAsNotRequiredWhenCollapse",computed:"twoAbsoluteLengthOrPercentages",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-right-radius"},"border-bottom-style":{syntax:"<line-style>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-style"},"border-bottom-width":{syntax:"<line-width>",media:"visual",inherited:false,animationType:"length",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthOr0IfBorderBottomStyleNoneOrHidden",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-bottom-width"},"border-collapse":{syntax:"collapse | separate",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Table"],initial:"separate",appliesto:"tableElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-collapse"},"border-color":{syntax:"<color>{1,4}",media:"visual",inherited:false,animationType:["border-bottom-color","border-left-color","border-right-color","border-top-color"],percentages:"no",groups:["CSS Backgrounds and Borders"],initial:["border-top-color","border-right-color","border-bottom-color","border-left-color"],appliesto:"allElements",computed:["border-bottom-color","border-left-color","border-right-color","border-top-color"],order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-color"},"border-end-end-radius":{syntax:"<length-percentage>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElementsUAsNotRequiredWhenCollapse",computed:"twoAbsoluteLengthOrPercentages",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-end-end-radius"},"border-end-start-radius":{syntax:"<length-percentage>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElementsUAsNotRequiredWhenCollapse",computed:"twoAbsoluteLengthOrPercentages",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-end-start-radius"},"border-image":{syntax:"<'border-image-source'> || <'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? || <'border-image-repeat'>",media:"visual",inherited:false,animationType:"discrete",percentages:["border-image-slice","border-image-width"],groups:["CSS Backgrounds and Borders"],initial:["border-image-source","border-image-slice","border-image-width","border-image-outset","border-image-repeat"],appliesto:"allElementsExceptTableElementsWhenCollapse",computed:["border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width"],order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-image"},"border-image-outset":{syntax:"[ <length> | <number> ]{1,4}",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"0",appliesto:"allElementsExceptTableElementsWhenCollapse",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-image-outset"},"border-image-repeat":{syntax:"[ stretch | repeat | round | space ]{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"stretch",appliesto:"allElementsExceptTableElementsWhenCollapse",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-image-repeat"},"border-image-slice":{syntax:"<number-percentage>{1,4} && fill?",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"referToSizeOfBorderImage",groups:["CSS Backgrounds and Borders"],initial:"100%",appliesto:"allElementsExceptTableElementsWhenCollapse",computed:"oneToFourPercentagesOrAbsoluteLengthsPlusFill",order:"percentagesOrLengthsFollowedByFill",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-image-slice"},"border-image-source":{syntax:"none | <image>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"none",appliesto:"allElementsExceptTableElementsWhenCollapse",computed:"noneOrImageWithAbsoluteURI",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-image-source"},"border-image-width":{syntax:"[ <length-percentage> | <number> | auto ]{1,4}",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"referToWidthOrHeightOfBorderImageArea",groups:["CSS Backgrounds and Borders"],initial:"1",appliesto:"allElementsExceptTableElementsWhenCollapse",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-image-width"},"border-inline":{syntax:"<'border-top-width'> || <'border-top-style'> || <'color'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:["border-top-width","border-top-style","border-top-color"],appliesto:"allElements",computed:["border-top-width","border-top-style","border-top-color"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline"},"border-inline-end":{syntax:"<'border-top-width'> || <'border-top-style'> || <'color'>",media:"visual",inherited:false,animationType:["border-inline-end-color","border-inline-end-style","border-inline-end-width"],percentages:"no",groups:["CSS Logical Properties"],initial:["border-width","border-style","color"],appliesto:"allElements",computed:["border-width","border-style","border-inline-end-color"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-end"},"border-inline-color":{syntax:"<'border-top-color'>{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-color"},"border-inline-style":{syntax:"<'border-top-style'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-style"},"border-inline-width":{syntax:"<'border-top-width'>",media:"visual",inherited:false,animationType:"discrete",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthZeroIfBorderStyleNoneOrHidden",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-width"},"border-inline-end-color":{syntax:"<'border-top-color'>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Logical Properties"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-color"},"border-inline-end-style":{syntax:"<'border-top-style'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-style"},"border-inline-end-width":{syntax:"<'border-top-width'>",media:"visual",inherited:false,animationType:"length",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthZeroIfBorderStyleNoneOrHidden",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-end-width"},"border-inline-start":{syntax:"<'border-top-width'> || <'border-top-style'> || <'color'>",media:"visual",inherited:false,animationType:["border-inline-start-color","border-inline-start-style","border-inline-start-width"],percentages:"no",groups:["CSS Logical Properties"],initial:["border-width","border-style","color"],appliesto:"allElements",computed:["border-width","border-style","border-inline-start-color"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-start"},"border-inline-start-color":{syntax:"<'border-top-color'>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Logical Properties"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-color"},"border-inline-start-style":{syntax:"<'border-top-style'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Logical Properties"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-style"},"border-inline-start-width":{syntax:"<'border-top-width'>",media:"visual",inherited:false,animationType:"length",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthZeroIfBorderStyleNoneOrHidden",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-inline-start-width"},"border-left":{syntax:"<line-width> || <line-style> || <color>",media:"visual",inherited:false,animationType:["border-left-color","border-left-style","border-left-width"],percentages:"no",groups:["CSS Backgrounds and Borders"],initial:["border-left-width","border-left-style","border-left-color"],appliesto:"allElements",computed:["border-left-width","border-left-style","border-left-color"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-left"},"border-left-color":{syntax:"<color>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-left-color"},"border-left-style":{syntax:"<line-style>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-left-style"},"border-left-width":{syntax:"<line-width>",media:"visual",inherited:false,animationType:"length",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthOr0IfBorderLeftStyleNoneOrHidden",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-left-width"},"border-radius":{syntax:"<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?",media:"visual",inherited:false,animationType:["border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius"],percentages:"referToDimensionOfBorderBox",groups:["CSS Backgrounds and Borders"],initial:["border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius"],appliesto:"allElementsUAsNotRequiredWhenCollapse",computed:["border-bottom-left-radius","border-bottom-right-radius","border-top-left-radius","border-top-right-radius"],order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-radius"},"border-right":{syntax:"<line-width> || <line-style> || <color>",media:"visual",inherited:false,animationType:["border-right-color","border-right-style","border-right-width"],percentages:"no",groups:["CSS Backgrounds and Borders"],initial:["border-right-width","border-right-style","border-right-color"],appliesto:"allElements",computed:["border-right-width","border-right-style","border-right-color"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-right"},"border-right-color":{syntax:"<color>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-right-color"},"border-right-style":{syntax:"<line-style>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-right-style"},"border-right-width":{syntax:"<line-width>",media:"visual",inherited:false,animationType:"length",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthOr0IfBorderRightStyleNoneOrHidden",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-right-width"},"border-spacing":{syntax:"<length> <length>?",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Table"],initial:"0",appliesto:"tableElements",computed:"twoAbsoluteLengths",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-spacing"},"border-start-end-radius":{syntax:"<length-percentage>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElementsUAsNotRequiredWhenCollapse",computed:"twoAbsoluteLengthOrPercentages",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-start-end-radius"},"border-start-start-radius":{syntax:"<length-percentage>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElementsUAsNotRequiredWhenCollapse",computed:"twoAbsoluteLengthOrPercentages",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-start-start-radius"},"border-style":{syntax:"<line-style>{1,4}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:["border-top-style","border-right-style","border-bottom-style","border-left-style"],appliesto:"allElements",computed:["border-bottom-style","border-left-style","border-right-style","border-top-style"],order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-style"},"border-top":{syntax:"<line-width> || <line-style> || <color>",media:"visual",inherited:false,animationType:["border-top-color","border-top-style","border-top-width"],percentages:"no",groups:["CSS Backgrounds and Borders"],initial:["border-top-width","border-top-style","border-top-color"],appliesto:"allElements",computed:["border-top-width","border-top-style","border-top-color"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-top"},"border-top-color":{syntax:"<color>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-top-color"},"border-top-left-radius":{syntax:"<length-percentage>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["CSS Backgrounds and Borders"],initial:"0",appliesto:"allElementsUAsNotRequiredWhenCollapse",computed:"twoAbsoluteLengthOrPercentages",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-top-left-radius"},"border-top-right-radius":{syntax:"<length-percentage>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfBorderBox",groups:["CSS Backgrounds and Borders"],initial:"0",appliesto:"allElementsUAsNotRequiredWhenCollapse",computed:"twoAbsoluteLengthOrPercentages",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-top-right-radius"},"border-top-style":{syntax:"<line-style>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-top-style"},"border-top-width":{syntax:"<line-width>",media:"visual",inherited:false,animationType:"length",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"medium",appliesto:"allElements",computed:"absoluteLengthOr0IfBorderTopStyleNoneOrHidden",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-top-width"},"border-width":{syntax:"<line-width>{1,4}",media:"visual",inherited:false,animationType:["border-bottom-width","border-left-width","border-right-width","border-top-width"],percentages:"no",groups:["CSS Backgrounds and Borders"],initial:["border-top-width","border-right-width","border-bottom-width","border-left-width"],appliesto:"allElements",computed:["border-bottom-width","border-left-width","border-right-width","border-top-width"],order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/border-width"},bottom:bottom,"box-align":{syntax:"start | center | end | baseline | stretch",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"stretch",appliesto:"elementsWithDisplayBoxOrInlineBox",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-align"},"box-decoration-break":{syntax:"slice | clone",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Fragmentation"],initial:"slice",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-decoration-break"},"box-direction":{syntax:"normal | reverse | inherit",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"normal",appliesto:"elementsWithDisplayBoxOrInlineBox",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-direction"},"box-flex":{syntax:"<number>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"0",appliesto:"directChildrenOfElementsWithDisplayMozBoxMozInlineBox",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-flex"},"box-flex-group":{syntax:"<integer>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"1",appliesto:"inFlowChildrenOfBoxElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-flex-group"},"box-lines":{syntax:"single | multiple",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"single",appliesto:"boxElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-lines"},"box-ordinal-group":{syntax:"<integer>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"1",appliesto:"childrenOfBoxElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-ordinal-group"},"box-orient":{syntax:"horizontal | vertical | inline-axis | block-axis | inherit",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"inlineAxisHorizontalInXUL",appliesto:"elementsWithDisplayBoxOrInlineBox",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-orient"},"box-pack":{syntax:"start | center | end | justify",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions","WebKit Extensions"],initial:"start",appliesto:"elementsWithDisplayMozBoxMozInlineBox",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-pack"},"box-shadow":{syntax:"none | <shadow>#",media:"visual",inherited:false,animationType:"shadowList",percentages:"no",groups:["CSS Backgrounds and Borders"],initial:"none",appliesto:"allElements",computed:"absoluteLengthsSpecifiedColorAsSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-shadow"},"box-sizing":{syntax:"content-box | border-box",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"content-box",appliesto:"allElementsAcceptingWidthOrHeight",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/box-sizing"},"break-after":{syntax:"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Fragmentation"],initial:"auto",appliesto:"blockLevelElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/break-after"},"break-before":{syntax:"auto | avoid | always | all | avoid-page | page | left | right | recto | verso | avoid-column | column | avoid-region | region",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Fragmentation"],initial:"auto",appliesto:"blockLevelElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/break-before"},"break-inside":{syntax:"auto | avoid | avoid-page | avoid-column | avoid-region",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Fragmentation"],initial:"auto",appliesto:"blockLevelElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/break-inside"},"caption-side":{syntax:"top | bottom | block-start | block-end | inline-start | inline-end",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Table"],initial:"top",appliesto:"tableCaptionElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/caption-side"},"caret-color":{syntax:"auto | <color>",media:"interactive",inherited:true,animationType:"color",percentages:"no",groups:["CSS Basic User Interface"],initial:"auto",appliesto:"allElements",computed:"asAutoOrColor",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/caret-color"},clear:clear,clip:clip,"clip-path":{syntax:"<clip-source> | [ <basic-shape> || <geometry-box> ] | none",media:"visual",inherited:false,animationType:"basicShapeOtherwiseNo",percentages:"referToReferenceBoxWhenSpecifiedOtherwiseBorderBox",groups:["CSS Masking"],initial:"none",appliesto:"allElementsSVGContainerElements",computed:"asSpecifiedURLsAbsolute",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/clip-path"},color:color$1,"color-adjust":{syntax:"economy | exact",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Color"],initial:"economy",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/color-adjust"},"column-count":{syntax:"<integer> | auto",media:"visual",inherited:false,animationType:"integer",percentages:"no",groups:["CSS Columns"],initial:"auto",appliesto:"blockContainersExceptTableWrappers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-count"},"column-fill":{syntax:"auto | balance | balance-all",media:"visualInContinuousMediaNoEffectInOverflowColumns",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Columns"],initial:"balance",appliesto:"multicolElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-fill"},"column-gap":{syntax:"normal | <length-percentage>",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfContentArea",groups:["CSS Box Alignment"],initial:"normal",appliesto:"multiColumnElementsFlexContainersGridContainers",computed:"asSpecifiedWithLengthsAbsoluteAndNormalComputingToZeroExceptMultiColumn",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-gap"},"column-rule":{syntax:"<'column-rule-width'> || <'column-rule-style'> || <'column-rule-color'>",media:"visual",inherited:false,animationType:["column-rule-color","column-rule-style","column-rule-width"],percentages:"no",groups:["CSS Columns"],initial:["column-rule-width","column-rule-style","column-rule-color"],appliesto:"multicolElements",computed:["column-rule-color","column-rule-style","column-rule-width"],order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-rule"},"column-rule-color":{syntax:"<color>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Columns"],initial:"currentcolor",appliesto:"multicolElements",computed:"computedColor",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-rule-color"},"column-rule-style":{syntax:"<'border-style'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Columns"],initial:"none",appliesto:"multicolElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-rule-style"},"column-rule-width":{syntax:"<'border-width'>",media:"visual",inherited:false,animationType:"length",percentages:"no",groups:["CSS Columns"],initial:"medium",appliesto:"multicolElements",computed:"absoluteLength0IfColumnRuleStyleNoneOrHidden",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-rule-width"},"column-span":{syntax:"none | all",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Columns"],initial:"none",appliesto:"inFlowBlockLevelElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-span"},"column-width":{syntax:"<length> | auto",media:"visual",inherited:false,animationType:"length",percentages:"no",groups:["CSS Columns"],initial:"auto",appliesto:"blockContainersExceptTableWrappers",computed:"absoluteLengthZeroOrLarger",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-width"},columns:columns,contain:contain,content:content,"counter-increment":{syntax:"[ <custom-ident> <integer>? ]+ | none",media:"all",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Counter Styles"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/counter-increment"},"counter-reset":{syntax:"[ <custom-ident> <integer>? ]+ | none",media:"all",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Counter Styles"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/counter-reset"},"counter-set":{syntax:"[ <custom-ident> <integer>? ]+ | none",media:"all",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Counter Styles"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/counter-set"},cursor:cursor,direction:direction,display:display,"empty-cells":{syntax:"show | hide",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Table"],initial:"show",appliesto:"tableCellElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/empty-cells"},filter:filter,flex:flex,"flex-basis":{syntax:"content | <'width'>",media:"visual",inherited:false,animationType:"lpc",percentages:"referToFlexContainersInnerMainSize",groups:["CSS Flexible Box Layout"],initial:"auto",appliesto:"flexItemsAndInFlowPseudos",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"lengthOrPercentageBeforeKeywordIfBothPresent",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/flex-basis"},"flex-direction":{syntax:"row | row-reverse | column | column-reverse",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Flexible Box Layout"],initial:"row",appliesto:"flexContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/flex-direction"},"flex-flow":{syntax:"<'flex-direction'> || <'flex-wrap'>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Flexible Box Layout"],initial:["flex-direction","flex-wrap"],appliesto:"flexContainers",computed:["flex-direction","flex-wrap"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/flex-flow"},"flex-grow":{syntax:"<number>",media:"visual",inherited:false,animationType:"number",percentages:"no",groups:["CSS Flexible Box Layout"],initial:"0",appliesto:"flexItemsAndInFlowPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/flex-grow"},"flex-shrink":{syntax:"<number>",media:"visual",inherited:false,animationType:"number",percentages:"no",groups:["CSS Flexible Box Layout"],initial:"1",appliesto:"flexItemsAndInFlowPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/flex-shrink"},"flex-wrap":{syntax:"nowrap | wrap | wrap-reverse",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Flexible Box Layout"],initial:"nowrap",appliesto:"flexContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/flex-wrap"},"float":_float,font:font,"font-family":{syntax:"[ <family-name> | <generic-family> ]#",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"dependsOnUserAgent",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-family"},"font-feature-settings":{syntax:"normal | <feature-tag-value>#",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-feature-settings"},"font-kerning":{syntax:"auto | normal | none",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-kerning"},"font-language-override":{syntax:"normal | <string>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-language-override"},"font-optical-sizing":{syntax:"auto | none",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-optical-sizing"},"font-variation-settings":{syntax:"normal | [ <string> <number> ]#",media:"visual",inherited:true,animationType:"transform",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-variation-settings"},"font-size":{syntax:"<absolute-size> | <relative-size> | <length-percentage>",media:"visual",inherited:true,animationType:"length",percentages:"referToParentElementsFontSize",groups:["CSS Fonts"],initial:"medium",appliesto:"allElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-size"},"font-size-adjust":{syntax:"none | <number>",media:"visual",inherited:true,animationType:"number",percentages:"no",groups:["CSS Fonts"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-size-adjust"},"font-smooth":{syntax:"auto | never | always | <absolute-size> | <length>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-smooth"},"font-stretch":{syntax:"<font-stretch-absolute>",media:"visual",inherited:true,animationType:"fontStretch",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-stretch"},"font-style":{syntax:"normal | italic | oblique <angle>?",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-style"},"font-synthesis":{syntax:"none | [ weight || style ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"weight style",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-synthesis"},"font-variant":{syntax:"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> || stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) || [ small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps ] || <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero || <east-asian-variant-values> || <east-asian-width-values> || ruby ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-variant"},"font-variant-alternates":{syntax:"normal | [ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-alternates"},"font-variant-caps":{syntax:"normal | small-caps | all-small-caps | petite-caps | all-petite-caps | unicase | titling-caps",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-caps"},"font-variant-east-asian":{syntax:"normal | [ <east-asian-variant-values> || <east-asian-width-values> || ruby ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-east-asian"},"font-variant-ligatures":{syntax:"normal | none | [ <common-lig-values> || <discretionary-lig-values> || <historical-lig-values> || <contextual-alt-values> ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-ligatures"},"font-variant-numeric":{syntax:"normal | [ <numeric-figure-values> || <numeric-spacing-values> || <numeric-fraction-values> || ordinal || slashed-zero ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-numeric"},"font-variant-position":{syntax:"normal | sub | super",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-variant-position"},"font-weight":{syntax:"<font-weight-absolute> | bolder | lighter",media:"visual",inherited:true,animationType:"fontWeight",percentages:"no",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"keywordOrNumericalValueBolderLighterTransformedToRealValue",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/font-weight"},gap:gap,grid:grid,"grid-area":{syntax:"<grid-line> [ / <grid-line> ]{0,3}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:["grid-row-start","grid-column-start","grid-row-end","grid-column-end"],appliesto:"gridItemsAndBoxesWithinGridContainer",computed:["grid-row-start","grid-column-start","grid-row-end","grid-column-end"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-area"},"grid-auto-columns":{syntax:"<track-size>+",media:"visual",inherited:false,animationType:"discrete",percentages:"referToDimensionOfContentArea",groups:["CSS Grid Layout"],initial:"auto",appliesto:"gridContainers",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-auto-columns"},"grid-auto-flow":{syntax:"[ row | column ] || dense",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:"row",appliesto:"gridContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-auto-flow"},"grid-auto-rows":{syntax:"<track-size>+",media:"visual",inherited:false,animationType:"discrete",percentages:"referToDimensionOfContentArea",groups:["CSS Grid Layout"],initial:"auto",appliesto:"gridContainers",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-auto-rows"},"grid-column":{syntax:"<grid-line> [ / <grid-line> ]?",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:["grid-column-start","grid-column-end"],appliesto:"gridItemsAndBoxesWithinGridContainer",computed:["grid-column-start","grid-column-end"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-column"},"grid-column-end":{syntax:"<grid-line>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:"auto",appliesto:"gridItemsAndBoxesWithinGridContainer",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-column-end"},"grid-column-gap":{syntax:"<length-percentage>",media:"visual",inherited:false,animationType:"length",percentages:"referToDimensionOfContentArea",groups:["CSS Grid Layout"],initial:"0",appliesto:"gridContainers",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/column-gap"},"grid-column-start":{syntax:"<grid-line>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:"auto",appliesto:"gridItemsAndBoxesWithinGridContainer",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-column-start"},"grid-gap":{syntax:"<'grid-row-gap'> <'grid-column-gap'>?",media:"visual",inherited:false,animationType:["grid-row-gap","grid-column-gap"],percentages:"no",groups:["CSS Grid Layout"],initial:["grid-row-gap","grid-column-gap"],appliesto:"gridContainers",computed:["grid-row-gap","grid-column-gap"],order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/gap"},"grid-row":{syntax:"<grid-line> [ / <grid-line> ]?",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:["grid-row-start","grid-row-end"],appliesto:"gridItemsAndBoxesWithinGridContainer",computed:["grid-row-start","grid-row-end"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-row"},"grid-row-end":{syntax:"<grid-line>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:"auto",appliesto:"gridItemsAndBoxesWithinGridContainer",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-row-end"},"grid-row-gap":{syntax:"<length-percentage>",media:"visual",inherited:false,animationType:"length",percentages:"referToDimensionOfContentArea",groups:["CSS Grid Layout"],initial:"0",appliesto:"gridContainers",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/row-gap"},"grid-row-start":{syntax:"<grid-line>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:"auto",appliesto:"gridItemsAndBoxesWithinGridContainer",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-row-start"},"grid-template":{syntax:"none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?",media:"visual",inherited:false,animationType:"discrete",percentages:["grid-template-columns","grid-template-rows"],groups:["CSS Grid Layout"],initial:["grid-template-columns","grid-template-rows","grid-template-areas"],appliesto:"gridContainers",computed:["grid-template-columns","grid-template-rows","grid-template-areas"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-template"},"grid-template-areas":{syntax:"none | <string>+",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:"none",appliesto:"gridContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-template-areas"},"grid-template-columns":{syntax:"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?",media:"visual",inherited:false,animationType:"simpleListOfLpcDifferenceLpc",percentages:"referToDimensionOfContentArea",groups:["CSS Grid Layout"],initial:"none",appliesto:"gridContainers",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-template-columns"},"grid-template-rows":{syntax:"none | <track-list> | <auto-track-list> | subgrid <line-name-list>?",media:"visual",inherited:false,animationType:"simpleListOfLpcDifferenceLpc",percentages:"referToDimensionOfContentArea",groups:["CSS Grid Layout"],initial:"none",appliesto:"gridContainers",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/grid-template-rows"},"hanging-punctuation":{syntax:"none | [ first || [ force-end | allow-end ] || last ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/hanging-punctuation"},height:height,hyphens:hyphens,"image-orientation":{syntax:"from-image | <angle> | [ <angle>? flip ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Images"],initial:"from-image",appliesto:"allElements",computed:"angleRoundedToNextQuarter",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/image-orientation"},"image-rendering":{syntax:"auto | crisp-edges | pixelated",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Images"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/image-rendering"},"image-resolution":{syntax:"[ from-image || <resolution> ] && snap?",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Images"],initial:"1dppx",appliesto:"allElements",computed:"asSpecifiedWithExceptionOfResolution",order:"uniqueOrder",status:"experimental"},"ime-mode":{syntax:"auto | normal | active | inactive | disabled",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"auto",appliesto:"textFields",computed:"asSpecified",order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/ime-mode"},"initial-letter":{syntax:"normal | [ <number> <integer>? ]",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Inline"],initial:"normal",appliesto:"firstLetterPseudoElementsAndInlineLevelFirstChildren",computed:"asSpecified",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/initial-letter"},"initial-letter-align":{syntax:"[ auto | alphabetic | hanging | ideographic ]",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Inline"],initial:"auto",appliesto:"firstLetterPseudoElementsAndInlineLevelFirstChildren",computed:"asSpecified",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/initial-letter-align"},"inline-size":{syntax:"<'width'>",media:"visual",inherited:false,animationType:"lpc",percentages:"inlineSizeOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"sameAsWidthAndHeight",computed:"sameAsWidthAndHeight",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/inline-size"},inset:inset,"inset-block":{syntax:"<'top'>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"logicalHeightOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"positionedElements",computed:"sameAsBoxOffsets",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/inset-block"},"inset-block-end":{syntax:"<'top'>",media:"visual",inherited:false,animationType:"lpc",percentages:"logicalHeightOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"positionedElements",computed:"sameAsBoxOffsets",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/inset-block-end"},"inset-block-start":{syntax:"<'top'>",media:"visual",inherited:false,animationType:"lpc",percentages:"logicalHeightOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"positionedElements",computed:"sameAsBoxOffsets",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/inset-block-start"},"inset-inline":{syntax:"<'top'>{1,2}",media:"visual",inherited:false,animationType:"lpc",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"positionedElements",computed:"sameAsBoxOffsets",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/inset-inline"},"inset-inline-end":{syntax:"<'top'>",media:"visual",inherited:false,animationType:"lpc",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"positionedElements",computed:"sameAsBoxOffsets",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/inset-inline-end"},"inset-inline-start":{syntax:"<'top'>",media:"visual",inherited:false,animationType:"lpc",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"auto",appliesto:"positionedElements",computed:"sameAsBoxOffsets",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/inset-inline-start"},isolation:isolation,"justify-content":{syntax:"normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ]",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"normal",appliesto:"flexContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/justify-content"},"justify-items":{syntax:"normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ] | legacy | legacy && [ left | right | center ]",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"legacy",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/justify-items"},"justify-self":{syntax:"auto | normal | stretch | <baseline-position> | <overflow-position>? [ <self-position> | left | right ]",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"auto",appliesto:"blockLevelBoxesAndAbsolutelyPositionedBoxesAndGridItems",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/justify-self"},"justify-tracks":{syntax:"[ normal | <content-distribution> | <overflow-position>? [ <content-position> | left | right ] ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:"normal",appliesto:"gridContainersWithMasonryLayoutInTheirInlineAxis",computed:"asSpecified",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/justify-tracks"},left:left,"letter-spacing":{syntax:"normal | <length>",media:"visual",inherited:true,animationType:"length",percentages:"no",groups:["CSS Text"],initial:"normal",appliesto:"allElements",computed:"optimumValueOfAbsoluteLengthOrNormal",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/letter-spacing"},"line-break":{syntax:"auto | loose | normal | strict | anywhere",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/line-break"},"line-clamp":{syntax:"none | <integer>",media:"visual",inherited:false,animationType:"integer",percentages:"no",groups:["CSS Overflow"],initial:"none",appliesto:"blockContainersExceptMultiColumnContainers",computed:"asSpecified",order:"perGrammar",status:"experimental"},"line-height":{syntax:"normal | <number> | <length> | <percentage>",media:"visual",inherited:true,animationType:"numberOrLength",percentages:"referToElementFontSize",groups:["CSS Fonts"],initial:"normal",appliesto:"allElements",computed:"absoluteLengthOrAsSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/line-height"},"line-height-step":{syntax:"<length>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Fonts"],initial:"0",appliesto:"blockContainers",computed:"absoluteLength",order:"perGrammar",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/line-height-step"},"list-style":{syntax:"<'list-style-type'> || <'list-style-position'> || <'list-style-image'>",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Lists and Counters"],initial:["list-style-type","list-style-position","list-style-image"],appliesto:"listItems",computed:["list-style-image","list-style-position","list-style-type"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/list-style"},"list-style-image":{syntax:"<url> | none",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Lists and Counters"],initial:"none",appliesto:"listItems",computed:"noneOrImageWithAbsoluteURI",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/list-style-image"},"list-style-position":{syntax:"inside | outside",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Lists and Counters"],initial:"outside",appliesto:"listItems",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/list-style-position"},"list-style-type":{syntax:"<counter-style> | <string> | none",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Lists and Counters"],initial:"disc",appliesto:"listItems",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/list-style-type"},margin:margin,"margin-block":{syntax:"<'margin-left'>{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"dependsOnLayoutModel",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsMargin",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-block"},"margin-block-end":{syntax:"<'margin-left'>",media:"visual",inherited:false,animationType:"length",percentages:"dependsOnLayoutModel",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsMargin",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-block-end"},"margin-block-start":{syntax:"<'margin-left'>",media:"visual",inherited:false,animationType:"length",percentages:"dependsOnLayoutModel",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsMargin",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-block-start"},"margin-bottom":{syntax:"<length> | <percentage> | auto",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"0",appliesto:"allElementsExceptTableDisplayTypes",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-bottom"},"margin-inline":{syntax:"<'margin-left'>{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"dependsOnLayoutModel",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsMargin",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-inline"},"margin-inline-end":{syntax:"<'margin-left'>",media:"visual",inherited:false,animationType:"length",percentages:"dependsOnLayoutModel",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsMargin",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-inline-end"},"margin-inline-start":{syntax:"<'margin-left'>",media:"visual",inherited:false,animationType:"length",percentages:"dependsOnLayoutModel",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsMargin",computed:"lengthAbsolutePercentageAsSpecifiedOtherwiseAuto",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-inline-start"},"margin-left":{syntax:"<length> | <percentage> | auto",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"0",appliesto:"allElementsExceptTableDisplayTypes",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-left"},"margin-right":{syntax:"<length> | <percentage> | auto",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"0",appliesto:"allElementsExceptTableDisplayTypes",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-right"},"margin-top":{syntax:"<length> | <percentage> | auto",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"0",appliesto:"allElementsExceptTableDisplayTypes",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-top"},"margin-trim":{syntax:"none | in-flow | all",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Model"],initial:"none",appliesto:"blockContainersAndMultiColumnContainers",computed:"asSpecified",order:"perGrammar",alsoAppliesTo:["::first-letter","::first-line"],status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/margin-trim"},mask:mask,"mask-border":{syntax:"<'mask-border-source'> || <'mask-border-slice'> [ / <'mask-border-width'>? [ / <'mask-border-outset'> ]? ]? || <'mask-border-repeat'> || <'mask-border-mode'>",media:"visual",inherited:false,animationType:["mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width"],percentages:["mask-border-slice","mask-border-width"],groups:["CSS Masking"],initial:["mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width"],appliesto:"allElementsSVGContainerElements",computed:["mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width"],order:"perGrammar",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-border"},"mask-border-mode":{syntax:"luminance | alpha",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"alpha",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-mode"},"mask-border-outset":{syntax:"[ <length> | <number> ]{1,4}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"0",appliesto:"allElementsSVGContainerElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-outset"},"mask-border-repeat":{syntax:"[ stretch | repeat | round | space ]{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"stretch",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-repeat"},"mask-border-slice":{syntax:"<number-percentage>{1,4} fill?",media:"visual",inherited:false,animationType:"discrete",percentages:"referToSizeOfMaskBorderImage",groups:["CSS Masking"],initial:"0",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-slice"},"mask-border-source":{syntax:"none | <image>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"none",appliesto:"allElementsSVGContainerElements",computed:"asSpecifiedURLsAbsolute",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-source"},"mask-border-width":{syntax:"[ <length-percentage> | <number> | auto ]{1,4}",media:"visual",inherited:false,animationType:"discrete",percentages:"relativeToMaskBorderImageArea",groups:["CSS Masking"],initial:"auto",appliesto:"allElementsSVGContainerElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-border-width"},"mask-clip":{syntax:"[ <geometry-box> | no-clip ]#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"border-box",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-clip"},"mask-composite":{syntax:"<compositing-operator>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"add",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-composite"},"mask-image":{syntax:"<mask-reference>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"none",appliesto:"allElementsSVGContainerElements",computed:"asSpecifiedURLsAbsolute",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-image"},"mask-mode":{syntax:"<masking-mode>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"match-source",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-mode"},"mask-origin":{syntax:"<geometry-box>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"border-box",appliesto:"allElementsSVGContainerElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-origin"},"mask-position":{syntax:"<position>#",media:"visual",inherited:false,animationType:"repeatableListOfSimpleListOfLpc",percentages:"referToSizeOfMaskPaintingArea",groups:["CSS Masking"],initial:"center",appliesto:"allElementsSVGContainerElements",computed:"consistsOfTwoKeywordsForOriginAndOffsets",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-position"},"mask-repeat":{syntax:"<repeat-style>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"no-repeat",appliesto:"allElementsSVGContainerElements",computed:"consistsOfTwoDimensionKeywords",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-repeat"},"mask-size":{syntax:"<bg-size>#",media:"visual",inherited:false,animationType:"repeatableListOfSimpleListOfLpc",percentages:"no",groups:["CSS Masking"],initial:"auto",appliesto:"allElementsSVGContainerElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-size"},"mask-type":{syntax:"luminance | alpha",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Masking"],initial:"luminance",appliesto:"maskElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mask-type"},"masonry-auto-flow":{syntax:"[ pack | next ] || [ definite-first | ordered ]",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Grid Layout"],initial:"pack",appliesto:"gridContainersWithMasonryLayout",computed:"asSpecified",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/masonry-auto-flow"},"math-style":{syntax:"normal | compact",media:"visual",inherited:true,animationType:"notAnimatable",percentages:"no",groups:["MathML"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/math-style"},"max-block-size":{syntax:"<'max-width'>",media:"visual",inherited:false,animationType:"lpc",percentages:"blockSizeOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsWidthAndHeight",computed:"sameAsMaxWidthAndMaxHeight",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/max-block-size"},"max-height":{syntax:"none | <length-percentage> | min-content | max-content | fit-content(<length-percentage>)",media:"visual",inherited:false,animationType:"lpc",percentages:"regardingHeightOfGeneratedBoxContainingBlockPercentagesNone",groups:["CSS Box Model"],initial:"none",appliesto:"allElementsButNonReplacedAndTableColumns",computed:"percentageAsSpecifiedAbsoluteLengthOrNone",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/max-height"},"max-inline-size":{syntax:"<'max-width'>",media:"visual",inherited:false,animationType:"lpc",percentages:"inlineSizeOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsWidthAndHeight",computed:"sameAsMaxWidthAndMaxHeight",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/max-inline-size"},"max-lines":{syntax:"none | <integer>",media:"visual",inherited:false,animationType:"integer",percentages:"no",groups:["CSS Overflow"],initial:"none",appliesto:"blockContainersExceptMultiColumnContainers",computed:"asSpecified",order:"perGrammar",status:"experimental"},"max-width":{syntax:"none | <length-percentage> | min-content | max-content | fit-content(<length-percentage>)",media:"visual",inherited:false,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"none",appliesto:"allElementsButNonReplacedAndTableRows",computed:"percentageAsSpecifiedAbsoluteLengthOrNone",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/max-width"},"min-block-size":{syntax:"<'min-width'>",media:"visual",inherited:false,animationType:"lpc",percentages:"blockSizeOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsWidthAndHeight",computed:"sameAsMinWidthAndMinHeight",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/min-block-size"},"min-height":{syntax:"auto | <length> | <percentage> | min-content | max-content | fit-content(<length-percentage>)",media:"visual",inherited:false,animationType:"lpc",percentages:"regardingHeightOfGeneratedBoxContainingBlockPercentages0",groups:["CSS Box Model"],initial:"auto",appliesto:"allElementsButNonReplacedAndTableColumns",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/min-height"},"min-inline-size":{syntax:"<'min-width'>",media:"visual",inherited:false,animationType:"lpc",percentages:"inlineSizeOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"sameAsWidthAndHeight",computed:"sameAsMinWidthAndMinHeight",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/min-inline-size"},"min-width":{syntax:"auto | <length> | <percentage> | min-content | max-content | fit-content(<length-percentage>)",media:"visual",inherited:false,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"auto",appliesto:"allElementsButNonReplacedAndTableRows",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/min-width"},"mix-blend-mode":{syntax:"<blend-mode>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Compositing and Blending"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/mix-blend-mode"},"object-fit":{syntax:"fill | contain | cover | none | scale-down",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Images"],initial:"fill",appliesto:"replacedElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/object-fit"},"object-position":{syntax:"<position>",media:"visual",inherited:true,animationType:"repeatableListOfSimpleListOfLpc",percentages:"referToWidthAndHeightOfElement",groups:["CSS Images"],initial:"50% 50%",appliesto:"replacedElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/object-position"},offset:offset,"offset-anchor":{syntax:"auto | <position>",media:"visual",inherited:false,animationType:"position",percentages:"relativeToWidthAndHeight",groups:["CSS Motion Path"],initial:"auto",appliesto:"transformableElements",computed:"forLengthAbsoluteValueOtherwisePercentage",order:"perGrammar",status:"standard"},"offset-distance":{syntax:"<length-percentage>",media:"visual",inherited:false,animationType:"lpc",percentages:"referToTotalPathLength",groups:["CSS Motion Path"],initial:"0",appliesto:"transformableElements",computed:"forLengthAbsoluteValueOtherwisePercentage",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/offset-distance"},"offset-path":{syntax:"none | ray( [ <angle> && <size> && contain? ] ) | <path()> | <url> | [ <basic-shape> || <geometry-box> ]",media:"visual",inherited:false,animationType:"angleOrBasicShapeOrPath",percentages:"no",groups:["CSS Motion Path"],initial:"none",appliesto:"transformableElements",computed:"asSpecified",order:"perGrammar",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/offset-path"},"offset-position":{syntax:"auto | <position>",media:"visual",inherited:false,animationType:"position",percentages:"referToSizeOfContainingBlock",groups:["CSS Motion Path"],initial:"auto",appliesto:"transformableElements",computed:"forLengthAbsoluteValueOtherwisePercentage",order:"perGrammar",status:"experimental"},"offset-rotate":{syntax:"[ auto | reverse ] || <angle>",media:"visual",inherited:false,animationType:"angleOrBasicShapeOrPath",percentages:"no",groups:["CSS Motion Path"],initial:"auto",appliesto:"transformableElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/offset-rotate"},opacity:opacity,order:order,orphans:orphans,outline:outline,"outline-color":{syntax:"<color> | invert",media:["visual","interactive"],inherited:false,animationType:"color",percentages:"no",groups:["CSS Basic User Interface"],initial:"invertOrCurrentColor",appliesto:"allElements",computed:"invertForTranslucentColorRGBAOtherwiseRGB",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/outline-color"},"outline-offset":{syntax:"<length>",media:["visual","interactive"],inherited:false,animationType:"length",percentages:"no",groups:["CSS Basic User Interface"],initial:"0",appliesto:"allElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/outline-offset"},"outline-style":{syntax:"auto | <'border-style'>",media:["visual","interactive"],inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/outline-style"},"outline-width":{syntax:"<line-width>",media:["visual","interactive"],inherited:false,animationType:"length",percentages:"no",groups:["CSS Basic User Interface"],initial:"medium",appliesto:"allElements",computed:"absoluteLength0ForNone",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/outline-width"},overflow:overflow,"overflow-anchor":{syntax:"auto | none",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Scroll Anchoring"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard"},"overflow-block":{syntax:"visible | hidden | clip | scroll | auto",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Overflow"],initial:"auto",appliesto:"blockContainersFlexContainersGridContainers",computed:"asSpecifiedButVisibleOrClipReplacedToAutoOrHiddenIfOtherValueDifferent",order:"perGrammar",status:"standard"},"overflow-clip-box":{syntax:"padding-box | content-box",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Mozilla Extensions"],initial:"padding-box",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Mozilla/CSS/overflow-clip-box"},"overflow-inline":{syntax:"visible | hidden | clip | scroll | auto",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Overflow"],initial:"auto",appliesto:"blockContainersFlexContainersGridContainers",computed:"asSpecifiedButVisibleOrClipReplacedToAutoOrHiddenIfOtherValueDifferent",order:"perGrammar",status:"standard"},"overflow-wrap":{syntax:"normal | break-word | anywhere",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"normal",appliesto:"nonReplacedInlineElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap"},"overflow-x":{syntax:"visible | hidden | clip | scroll | auto",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Overflow"],initial:"visible",appliesto:"blockContainersFlexContainersGridContainers",computed:"asSpecifiedButVisibleOrClipReplacedToAutoOrHiddenIfOtherValueDifferent",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overflow-x"},"overflow-y":{syntax:"visible | hidden | clip | scroll | auto",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Overflow"],initial:"visible",appliesto:"blockContainersFlexContainersGridContainers",computed:"asSpecifiedButVisibleOrClipReplacedToAutoOrHiddenIfOtherValueDifferent",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overflow-y"},"overscroll-behavior":{syntax:"[ contain | none | auto ]{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Model"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior"},"overscroll-behavior-block":{syntax:"contain | none | auto",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Model"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-block"},"overscroll-behavior-inline":{syntax:"contain | none | auto",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Model"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-inline"},"overscroll-behavior-x":{syntax:"contain | none | auto",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Model"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-x"},"overscroll-behavior-y":{syntax:"contain | none | auto",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Model"],initial:"auto",appliesto:"nonReplacedBlockAndInlineBlockElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overscroll-behavior-y"},padding:padding,"padding-block":{syntax:"<'padding-left'>{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElements",computed:"asLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-block"},"padding-block-end":{syntax:"<'padding-left'>",media:"visual",inherited:false,animationType:"length",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElements",computed:"asLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-block-end"},"padding-block-start":{syntax:"<'padding-left'>",media:"visual",inherited:false,animationType:"length",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElements",computed:"asLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-block-start"},"padding-bottom":{syntax:"<length> | <percentage>",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"0",appliesto:"allElementsExceptInternalTableDisplayTypes",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-bottom"},"padding-inline":{syntax:"<'padding-left'>{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElements",computed:"asLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-inline"},"padding-inline-end":{syntax:"<'padding-left'>",media:"visual",inherited:false,animationType:"length",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElements",computed:"asLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-inline-end"},"padding-inline-start":{syntax:"<'padding-left'>",media:"visual",inherited:false,animationType:"length",percentages:"logicalWidthOfContainingBlock",groups:["CSS Logical Properties"],initial:"0",appliesto:"allElements",computed:"asLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-inline-start"},"padding-left":{syntax:"<length> | <percentage>",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"0",appliesto:"allElementsExceptInternalTableDisplayTypes",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-left"},"padding-right":{syntax:"<length> | <percentage>",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"0",appliesto:"allElementsExceptInternalTableDisplayTypes",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-right"},"padding-top":{syntax:"<length> | <percentage>",media:"visual",inherited:false,animationType:"length",percentages:"referToWidthOfContainingBlock",groups:["CSS Box Model"],initial:"0",appliesto:"allElementsExceptInternalTableDisplayTypes",computed:"percentageAsSpecifiedOrAbsoluteLength",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/padding-top"},"page-break-after":{syntax:"auto | always | avoid | left | right | recto | verso",media:["visual","paged"],inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Pages"],initial:"auto",appliesto:"blockElementsInNormalFlow",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/page-break-after"},"page-break-before":{syntax:"auto | always | avoid | left | right | recto | verso",media:["visual","paged"],inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Pages"],initial:"auto",appliesto:"blockElementsInNormalFlow",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/page-break-before"},"page-break-inside":{syntax:"auto | avoid",media:["visual","paged"],inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Pages"],initial:"auto",appliesto:"blockElementsInNormalFlow",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/page-break-inside"},"paint-order":{syntax:"normal | [ fill || stroke || markers ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"normal",appliesto:"textElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/paint-order"},perspective:perspective,"perspective-origin":{syntax:"<position>",media:"visual",inherited:false,animationType:"simpleListOfLpc",percentages:"referToSizeOfBoundingBox",groups:["CSS Transforms"],initial:"50% 50%",appliesto:"transformableElements",computed:"forLengthAbsoluteValueOtherwisePercentage",order:"oneOrTwoValuesLengthAbsoluteKeywordsPercentages",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/perspective-origin"},"place-content":{syntax:"<'align-content'> <'justify-content'>?",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:"normal",appliesto:"multilineFlexContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/place-content"},"place-items":{syntax:"<'align-items'> <'justify-items'>?",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:["align-items","justify-items"],appliesto:"allElements",computed:["align-items","justify-items"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/place-items"},"place-self":{syntax:"<'align-self'> <'justify-self'>?",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Box Alignment"],initial:["align-self","justify-self"],appliesto:"blockLevelBoxesAndAbsolutelyPositionedBoxesAndGridItems",computed:["align-self","justify-self"],order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/place-self"},"pointer-events":{syntax:"auto | none | visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | inherit",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["Pointer Events"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/pointer-events"},position:position$1,quotes:quotes,resize:resize,right:right,rotate:rotate,"row-gap":{syntax:"normal | <length-percentage>",media:"visual",inherited:false,animationType:"lpc",percentages:"referToDimensionOfContentArea",groups:["CSS Box Alignment"],initial:"normal",appliesto:"multiColumnElementsFlexContainersGridContainers",computed:"asSpecifiedWithLengthsAbsoluteAndNormalComputingToZeroExceptMultiColumn",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/row-gap"},"ruby-align":{syntax:"start | center | space-between | space-around",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Ruby"],initial:"space-around",appliesto:"rubyBasesAnnotationsBaseAnnotationContainers",computed:"asSpecified",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/ruby-align"},"ruby-merge":{syntax:"separate | collapse | auto",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Ruby"],initial:"separate",appliesto:"rubyAnnotationsContainers",computed:"asSpecified",order:"uniqueOrder",status:"experimental"},"ruby-position":{syntax:"over | under | inter-character",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Ruby"],initial:"over",appliesto:"rubyAnnotationsContainers",computed:"asSpecified",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/ruby-position"},scale:scale,"scrollbar-color":{syntax:"auto | dark | light | <color>{2}",media:"visual",inherited:true,animationType:"color",percentages:"no",groups:["CSS Scrollbars"],initial:"auto",appliesto:"scrollingBoxes",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-color"},"scrollbar-gutter":{syntax:"auto | [ stable | always ] && both? && force?",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Overflow"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-gutter"},"scrollbar-width":{syntax:"auto | thin | none",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Scrollbars"],initial:"auto",appliesto:"scrollingBoxes",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scrollbar-width"},"scroll-behavior":{syntax:"auto | smooth",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSSOM View"],initial:"auto",appliesto:"scrollingBoxes",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-behavior"},"scroll-margin":{syntax:"<length>{1,4}",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin"},"scroll-margin-block":{syntax:"<length>{1,2}",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block"},"scroll-margin-block-start":{syntax:"<length>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-start"},"scroll-margin-block-end":{syntax:"<length>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-block-end"},"scroll-margin-bottom":{syntax:"<length>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-bottom"},"scroll-margin-inline":{syntax:"<length>{1,2}",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline"},"scroll-margin-inline-start":{syntax:"<length>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-start"},"scroll-margin-inline-end":{syntax:"<length>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-inline-end"},"scroll-margin-left":{syntax:"<length>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-left"},"scroll-margin-right":{syntax:"<length>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-right"},"scroll-margin-top":{syntax:"<length>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"no",groups:["CSS Scroll Snap"],initial:"0",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-margin-top"},"scroll-padding":{syntax:"[ auto | <length-percentage> ]{1,4}",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding"},"scroll-padding-block":{syntax:"[ auto | <length-percentage> ]{1,2}",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block"},"scroll-padding-block-start":{syntax:"auto | <length-percentage>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-start"},"scroll-padding-block-end":{syntax:"auto | <length-percentage>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-block-end"},"scroll-padding-bottom":{syntax:"auto | <length-percentage>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-bottom"},"scroll-padding-inline":{syntax:"[ auto | <length-percentage> ]{1,2}",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline"},"scroll-padding-inline-start":{syntax:"auto | <length-percentage>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-start"},"scroll-padding-inline-end":{syntax:"auto | <length-percentage>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-inline-end"},"scroll-padding-left":{syntax:"auto | <length-percentage>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-left"},"scroll-padding-right":{syntax:"auto | <length-percentage>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-right"},"scroll-padding-top":{syntax:"auto | <length-percentage>",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"relativeToTheScrollContainersScrollport",groups:["CSS Scroll Snap"],initial:"auto",appliesto:"scrollContainers",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-padding-top"},"scroll-snap-align":{syntax:"[ none | start | end | center ]{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Scroll Snap"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-align"},"scroll-snap-coordinate":{syntax:"none | <position>#",media:"interactive",inherited:false,animationType:"position",percentages:"referToBorderBox",groups:["CSS Scroll Snap"],initial:"none",appliesto:"allElements",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-coordinate"},"scroll-snap-destination":{syntax:"<position>",media:"interactive",inherited:false,animationType:"position",percentages:"relativeToScrollContainerPaddingBoxAxis",groups:["CSS Scroll Snap"],initial:"0px 0px",appliesto:"scrollContainers",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-destination"},"scroll-snap-points-x":{syntax:"none | repeat( <length-percentage> )",media:"interactive",inherited:false,animationType:"discrete",percentages:"relativeToScrollContainerPaddingBoxAxis",groups:["CSS Scroll Snap"],initial:"none",appliesto:"scrollContainers",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-x"},"scroll-snap-points-y":{syntax:"none | repeat( <length-percentage> )",media:"interactive",inherited:false,animationType:"discrete",percentages:"relativeToScrollContainerPaddingBoxAxis",groups:["CSS Scroll Snap"],initial:"none",appliesto:"scrollContainers",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-points-y"},"scroll-snap-stop":{syntax:"normal | always",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Scroll Snap"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-stop"},"scroll-snap-type":{syntax:"none | [ x | y | block | inline | both ] [ mandatory | proximity ]?",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Scroll Snap"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type"},"scroll-snap-type-x":{syntax:"none | mandatory | proximity",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Scroll Snap"],initial:"none",appliesto:"scrollContainers",computed:"asSpecified",order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-x"},"scroll-snap-type-y":{syntax:"none | mandatory | proximity",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Scroll Snap"],initial:"none",appliesto:"scrollContainers",computed:"asSpecified",order:"uniqueOrder",status:"obsolete",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/scroll-snap-type-y"},"shape-image-threshold":{syntax:"<alpha-value>",media:"visual",inherited:false,animationType:"number",percentages:"no",groups:["CSS Shapes"],initial:"0.0",appliesto:"floats",computed:"specifiedValueNumberClipped0To1",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/shape-image-threshold"},"shape-margin":{syntax:"<length-percentage>",media:"visual",inherited:false,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Shapes"],initial:"0",appliesto:"floats",computed:"asSpecifiedRelativeToAbsoluteLengths",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/shape-margin"},"shape-outside":{syntax:"none | <shape-box> || <basic-shape> | <image>",media:"visual",inherited:false,animationType:"basicShapeOtherwiseNo",percentages:"no",groups:["CSS Shapes"],initial:"none",appliesto:"floats",computed:"asDefinedForBasicShapeWithAbsoluteURIOtherwiseAsSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/shape-outside"},"tab-size":{syntax:"<integer> | <length>",media:"visual",inherited:true,animationType:"length",percentages:"no",groups:["CSS Text"],initial:"8",appliesto:"blockContainers",computed:"specifiedIntegerOrAbsoluteLength",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/tab-size"},"table-layout":{syntax:"auto | fixed",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Table"],initial:"auto",appliesto:"tableElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/table-layout"},"text-align":{syntax:"start | end | left | right | center | justify | match-parent",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"startOrNamelessValueIfLTRRightIfRTL",appliesto:"blockContainers",computed:"asSpecifiedExceptMatchParent",order:"orderOfAppearance",alsoAppliesTo:["::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-align"},"text-align-last":{syntax:"auto | start | end | left | right | center | justify",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"auto",appliesto:"blockContainers",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-align-last"},"text-combine-upright":{syntax:"none | all | [ digits <integer>? ]",media:"visual",inherited:true,animationType:"notAnimatable",percentages:"no",groups:["CSS Writing Modes"],initial:"none",appliesto:"nonReplacedInlineElements",computed:"keywordPlusIntegerIfDigits",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-combine-upright"},"text-decoration":{syntax:"<'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> || <'text-decoration-thickness'>",media:"visual",inherited:false,animationType:["text-decoration-color","text-decoration-style","text-decoration-line","text-decoration-thickness"],percentages:"no",groups:["CSS Text Decoration"],initial:["text-decoration-color","text-decoration-style","text-decoration-line"],appliesto:"allElements",computed:["text-decoration-line","text-decoration-style","text-decoration-color","text-decoration-thickness"],order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration"},"text-decoration-color":{syntax:"<color>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Text Decoration"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-color"},"text-decoration-line":{syntax:"none | [ underline || overline || line-through || blink ] | spelling-error | grammar-error",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Text Decoration"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-line"},"text-decoration-skip":{syntax:"none | [ objects || [ spaces | [ leading-spaces || trailing-spaces ] ] || edges || box-decoration ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text Decoration"],initial:"objects",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip"},"text-decoration-skip-ink":{syntax:"auto | all | none",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text Decoration"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-skip-ink"},"text-decoration-style":{syntax:"solid | double | dotted | dashed | wavy",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Text Decoration"],initial:"solid",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-style"},"text-decoration-thickness":{syntax:"auto | from-font | <length> | <percentage> ",media:"visual",inherited:false,animationType:"byComputedValueType",percentages:"referToElementFontSize",groups:["CSS Text Decoration"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-decoration-thickness"},"text-emphasis":{syntax:"<'text-emphasis-style'> || <'text-emphasis-color'>",media:"visual",inherited:false,animationType:["text-emphasis-color","text-emphasis-style"],percentages:"no",groups:["CSS Text Decoration"],initial:["text-emphasis-style","text-emphasis-color"],appliesto:"allElements",computed:["text-emphasis-style","text-emphasis-color"],order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis"},"text-emphasis-color":{syntax:"<color>",media:"visual",inherited:false,animationType:"color",percentages:"no",groups:["CSS Text Decoration"],initial:"currentcolor",appliesto:"allElements",computed:"computedColor",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-color"},"text-emphasis-position":{syntax:"[ over | under ] && [ right | left ]",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Text Decoration"],initial:"over right",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-position"},"text-emphasis-style":{syntax:"none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Text Decoration"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-emphasis-style"},"text-indent":{syntax:"<length-percentage> && hanging? && each-line?",media:"visual",inherited:true,animationType:"lpc",percentages:"referToWidthOfContainingBlock",groups:["CSS Text"],initial:"0",appliesto:"blockContainers",computed:"percentageOrAbsoluteLengthPlusKeywords",order:"lengthOrPercentageBeforeKeywords",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-indent"},"text-justify":{syntax:"auto | inter-character | inter-word | none",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"auto",appliesto:"inlineLevelAndTableCellElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-justify"},"text-orientation":{syntax:"mixed | upright | sideways",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Writing Modes"],initial:"mixed",appliesto:"allElementsExceptTableRowGroupsRowsColumnGroupsAndColumns",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-orientation"},"text-overflow":{syntax:"[ clip | ellipsis | <string> ]{1,2}",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"clip",appliesto:"blockContainerElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-overflow"},"text-rendering":{syntax:"auto | optimizeSpeed | optimizeLegibility | geometricPrecision",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Miscellaneous"],initial:"auto",appliesto:"textElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-rendering"},"text-shadow":{syntax:"none | <shadow-t>#",media:"visual",inherited:true,animationType:"shadowList",percentages:"no",groups:["CSS Text Decoration"],initial:"none",appliesto:"allElements",computed:"colorPlusThreeAbsoluteLengths",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-shadow"},"text-size-adjust":{syntax:"none | auto | <percentage>",media:"visual",inherited:true,animationType:"discrete",percentages:"referToSizeOfFont",groups:["CSS Text"],initial:"autoForSmartphoneBrowsersSupportingInflation",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"experimental",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-size-adjust"},"text-transform":{syntax:"none | capitalize | uppercase | lowercase | full-width | full-size-kana",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"none",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-transform"},"text-underline-offset":{syntax:"auto | <length> | <percentage> ",media:"visual",inherited:true,animationType:"byComputedValueType",percentages:"referToElementFontSize",groups:["CSS Text Decoration"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-underline-offset"},"text-underline-position":{syntax:"auto | from-font | [ under || [ left | right ] ]",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text Decoration"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"orderOfAppearance",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/text-underline-position"},top:top,"touch-action":{syntax:"auto | none | [ [ pan-x | pan-left | pan-right ] || [ pan-y | pan-up | pan-down ] || pinch-zoom ] | manipulation",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["Pointer Events"],initial:"auto",appliesto:"allElementsExceptNonReplacedInlineElementsTableRowsColumnsRowColumnGroups",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/touch-action"},transform:transform,"transform-box":{syntax:"content-box | border-box | fill-box | stroke-box | view-box",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Transforms"],initial:"view-box",appliesto:"transformableElements",computed:"asSpecified",order:"perGrammar",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transform-box"},"transform-origin":{syntax:"[ <length-percentage> | left | center | right | top | bottom ] | [ [ <length-percentage> | left | center | right ] && [ <length-percentage> | top | center | bottom ] ] <length>?",media:"visual",inherited:false,animationType:"simpleListOfLpc",percentages:"referToSizeOfBoundingBox",groups:["CSS Transforms"],initial:"50% 50% 0",appliesto:"transformableElements",computed:"forLengthAbsoluteValueOtherwisePercentage",order:"oneOrTwoValuesLengthAbsoluteKeywordsPercentages",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transform-origin"},"transform-style":{syntax:"flat | preserve-3d",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Transforms"],initial:"flat",appliesto:"transformableElements",computed:"asSpecified",order:"uniqueOrder",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transform-style"},transition:transition,"transition-delay":{syntax:"<time>#",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Transitions"],initial:"0s",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transition-delay"},"transition-duration":{syntax:"<time>#",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Transitions"],initial:"0s",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transition-duration"},"transition-property":{syntax:"none | <single-transition-property>#",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Transitions"],initial:"all",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transition-property"},"transition-timing-function":{syntax:"<timing-function>#",media:"interactive",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Transitions"],initial:"ease",appliesto:"allElementsAndPseudos",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/transition-timing-function"},translate:translate,"unicode-bidi":{syntax:"normal | embed | isolate | bidi-override | isolate-override | plaintext",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Writing Modes"],initial:"normal",appliesto:"allElementsSomeValuesNoEffectOnNonInlineElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/unicode-bidi"},"user-select":{syntax:"auto | text | none | contain | all",media:"visual",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Basic User Interface"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"nonstandard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/user-select"},"vertical-align":{syntax:"baseline | sub | super | text-top | text-bottom | middle | top | bottom | <percentage> | <length>",media:"visual",inherited:false,animationType:"length",percentages:"referToLineHeight",groups:["CSS Table"],initial:"baseline",appliesto:"inlineLevelAndTableCellElements",computed:"absoluteLengthOrKeyword",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/vertical-align"},visibility:visibility,"white-space":{syntax:"normal | pre | nowrap | pre-wrap | pre-line | break-spaces",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/white-space"},widows:widows,width:width,"will-change":{syntax:"auto | <animateable-feature>#",media:"all",inherited:false,animationType:"discrete",percentages:"no",groups:["CSS Will Change"],initial:"auto",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/will-change"},"word-break":{syntax:"normal | break-all | keep-all | break-word",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"normal",appliesto:"allElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/word-break"},"word-spacing":{syntax:"normal | <length-percentage>",media:"visual",inherited:true,animationType:"length",percentages:"referToWidthOfAffectedGlyph",groups:["CSS Text"],initial:"normal",appliesto:"allElements",computed:"optimumMinAndMaxValueOfAbsoluteLengthPercentageOrNormal",order:"uniqueOrder",alsoAppliesTo:["::first-letter","::first-line","::placeholder"],status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/word-spacing"},"word-wrap":{syntax:"normal | break-word",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Text"],initial:"normal",appliesto:"nonReplacedInlineElements",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/overflow-wrap"},"writing-mode":{syntax:"horizontal-tb | vertical-rl | vertical-lr | sideways-rl | sideways-lr",media:"visual",inherited:true,animationType:"discrete",percentages:"no",groups:["CSS Writing Modes"],initial:"horizontal-tb",appliesto:"allElementsExceptTableRowColumnGroupsTableRowsColumns",computed:"asSpecified",order:"uniqueOrder",status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/writing-mode"},"z-index":{syntax:"auto | <integer>",media:"visual",inherited:false,animationType:"integer",percentages:"no",groups:["CSS Positioning"],initial:"auto",appliesto:"positionedElements",computed:"asSpecified",order:"uniqueOrder",stacking:true,status:"standard",mdn_url:"https://developer.mozilla.org/docs/Web/CSS/z-index"},zoom:zoom};var attachment={syntax:"scroll | fixed | local"};var box={syntax:"border-box | padding-box | content-box"};var color={syntax:"<rgb()> | <rgba()> | <hsl()> | <hsla()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color>"};var combinator={syntax:"'>' | '+' | '~' | [ '||' ]"};var gradient={syntax:"<linear-gradient()> | <repeating-linear-gradient()> | <radial-gradient()> | <repeating-radial-gradient()> | <conic-gradient()>"};var hue={syntax:"<number> | <angle>"};var image={syntax:"<url> | <image()> | <image-set()> | <element()> | <paint()> | <cross-fade()> | <gradient>"};var nth$1={syntax:"<an-plus-b> | even | odd"};var position={syntax:"[ [ left | center | right ] || [ top | center | bottom ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]? | [ [ left | right ] <length-percentage> ] && [ [ top | bottom ] <length-percentage> ] ]"};var quote={syntax:"open-quote | close-quote | no-open-quote | no-close-quote"};var shadow={syntax:"inset? && <length>{2,4} && <color>?"};var shape={syntax:"rect(<top>, <right>, <bottom>, <left>)"};var size={syntax:"closest-side | farthest-side | closest-corner | farthest-corner | <length> | <length-percentage>{2}"};var symbol={syntax:"<string> | <image> | <custom-ident>"};var target={syntax:"<target-counter()> | <target-counters()> | <target-text()>"};var require$$2={"absolute-size":{syntax:"xx-small | x-small | small | medium | large | x-large | xx-large | xxx-large"},"alpha-value":{syntax:"<number> | <percentage>"},"angle-percentage":{syntax:"<angle> | <percentage>"},"angular-color-hint":{syntax:"<angle-percentage>"},"angular-color-stop":{syntax:"<color> && <color-stop-angle>?"},"angular-color-stop-list":{syntax:"[ <angular-color-stop> [, <angular-color-hint>]? ]# , <angular-color-stop>"},"animateable-feature":{syntax:"scroll-position | contents | <custom-ident>"},attachment:attachment,"attr()":{syntax:"attr( <attr-name> <type-or-unit>? [, <attr-fallback> ]? )"},"attr-matcher":{syntax:"[ '~' | '|' | '^' | '$' | '*' ]? '='"},"attr-modifier":{syntax:"i | s"},"attribute-selector":{syntax:"'[' <wq-name> ']' | '[' <wq-name> <attr-matcher> [ <string-token> | <ident-token> ] <attr-modifier>? ']'"},"auto-repeat":{syntax:"repeat( [ auto-fill | auto-fit ] , [ <line-names>? <fixed-size> ]+ <line-names>? )"},"auto-track-list":{syntax:"[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>? <auto-repeat>\n[ <line-names>? [ <fixed-size> | <fixed-repeat> ] ]* <line-names>?"},"baseline-position":{syntax:"[ first | last ]? baseline"},"basic-shape":{syntax:"<inset()> | <circle()> | <ellipse()> | <polygon()> | <path()>"},"bg-image":{syntax:"none | <image>"},"bg-layer":{syntax:"<bg-image> || <bg-position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box>"},"bg-position":{syntax:"[ [ left | center | right | top | bottom | <length-percentage> ] | [ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ] | [ center | [ left | right ] <length-percentage>? ] && [ center | [ top | bottom ] <length-percentage>? ] ]"},"bg-size":{syntax:"[ <length-percentage> | auto ]{1,2} | cover | contain"},"blur()":{syntax:"blur( <length> )"},"blend-mode":{syntax:"normal | multiply | screen | overlay | darken | lighten | color-dodge | color-burn | hard-light | soft-light | difference | exclusion | hue | saturation | color | luminosity"},box:box,"brightness()":{syntax:"brightness( <number-percentage> )"},"calc()":{syntax:"calc( <calc-sum> )"},"calc-sum":{syntax:"<calc-product> [ [ '+' | '-' ] <calc-product> ]*"},"calc-product":{syntax:"<calc-value> [ '*' <calc-value> | '/' <number> ]*"},"calc-value":{syntax:"<number> | <dimension> | <percentage> | ( <calc-sum> )"},"cf-final-image":{syntax:"<image> | <color>"},"cf-mixing-image":{syntax:"<percentage>? && <image>"},"circle()":{syntax:"circle( [ <shape-radius> ]? [ at <position> ]? )"},"clamp()":{syntax:"clamp( <calc-sum>#{3} )"},"class-selector":{syntax:"'.' <ident-token>"},"clip-source":{syntax:"<url>"},color:color,"color-stop":{syntax:"<color-stop-length> | <color-stop-angle>"},"color-stop-angle":{syntax:"<angle-percentage>{1,2}"},"color-stop-length":{syntax:"<length-percentage>{1,2}"},"color-stop-list":{syntax:"[ <linear-color-stop> [, <linear-color-hint>]? ]# , <linear-color-stop>"},combinator:combinator,"common-lig-values":{syntax:"[ common-ligatures | no-common-ligatures ]"},"compat-auto":{syntax:"searchfield | textarea | push-button | slider-horizontal | checkbox | radio | square-button | menulist | listbox | meter | progress-bar | button"},"composite-style":{syntax:"clear | copy | source-over | source-in | source-out | source-atop | destination-over | destination-in | destination-out | destination-atop | xor"},"compositing-operator":{syntax:"add | subtract | intersect | exclude"},"compound-selector":{syntax:"[ <type-selector>? <subclass-selector>* [ <pseudo-element-selector> <pseudo-class-selector>* ]* ]!"},"compound-selector-list":{syntax:"<compound-selector>#"},"complex-selector":{syntax:"<compound-selector> [ <combinator>? <compound-selector> ]*"},"complex-selector-list":{syntax:"<complex-selector>#"},"conic-gradient()":{syntax:"conic-gradient( [ from <angle> ]? [ at <position> ]?, <angular-color-stop-list> )"},"contextual-alt-values":{syntax:"[ contextual | no-contextual ]"},"content-distribution":{syntax:"space-between | space-around | space-evenly | stretch"},"content-list":{syntax:"[ <string> | contents | <image> | <quote> | <target> | <leader()> ]+"},"content-position":{syntax:"center | start | end | flex-start | flex-end"},"content-replacement":{syntax:"<image>"},"contrast()":{syntax:"contrast( [ <number-percentage> ] )"},"counter()":{syntax:"counter( <custom-ident>, <counter-style>? )"},"counter-style":{syntax:"<counter-style-name> | symbols()"},"counter-style-name":{syntax:"<custom-ident>"},"counters()":{syntax:"counters( <custom-ident>, <string>, <counter-style>? )"},"cross-fade()":{syntax:"cross-fade( <cf-mixing-image> , <cf-final-image>? )"},"cubic-bezier-timing-function":{syntax:"ease | ease-in | ease-out | ease-in-out | cubic-bezier(<number [0,1]>, <number>, <number [0,1]>, <number>)"},"deprecated-system-color":{syntax:"ActiveBorder | ActiveCaption | AppWorkspace | Background | ButtonFace | ButtonHighlight | ButtonShadow | ButtonText | CaptionText | GrayText | Highlight | HighlightText | InactiveBorder | InactiveCaption | InactiveCaptionText | InfoBackground | InfoText | Menu | MenuText | Scrollbar | ThreeDDarkShadow | ThreeDFace | ThreeDHighlight | ThreeDLightShadow | ThreeDShadow | Window | WindowFrame | WindowText"},"discretionary-lig-values":{syntax:"[ discretionary-ligatures | no-discretionary-ligatures ]"},"display-box":{syntax:"contents | none"},"display-inside":{syntax:"flow | flow-root | table | flex | grid | ruby"},"display-internal":{syntax:"table-row-group | table-header-group | table-footer-group | table-row | table-cell | table-column-group | table-column | table-caption | ruby-base | ruby-text | ruby-base-container | ruby-text-container"},"display-legacy":{syntax:"inline-block | inline-list-item | inline-table | inline-flex | inline-grid"},"display-listitem":{syntax:"<display-outside>? && [ flow | flow-root ]? && list-item"},"display-outside":{syntax:"block | inline | run-in"},"drop-shadow()":{syntax:"drop-shadow( <length>{2,3} <color>? )"},"east-asian-variant-values":{syntax:"[ jis78 | jis83 | jis90 | jis04 | simplified | traditional ]"},"east-asian-width-values":{syntax:"[ full-width | proportional-width ]"},"element()":{syntax:"element( <id-selector> )"},"ellipse()":{syntax:"ellipse( [ <shape-radius>{2} ]? [ at <position> ]? )"},"ending-shape":{syntax:"circle | ellipse"},"env()":{syntax:"env( <custom-ident> , <declaration-value>? )"},"explicit-track-list":{syntax:"[ <line-names>? <track-size> ]+ <line-names>?"},"family-name":{syntax:"<string> | <custom-ident>+"},"feature-tag-value":{syntax:"<string> [ <integer> | on | off ]?"},"feature-type":{syntax:"@stylistic | @historical-forms | @styleset | @character-variant | @swash | @ornaments | @annotation"},"feature-value-block":{syntax:"<feature-type> '{' <feature-value-declaration-list> '}'"},"feature-value-block-list":{syntax:"<feature-value-block>+"},"feature-value-declaration":{syntax:"<custom-ident>: <integer>+;"},"feature-value-declaration-list":{syntax:"<feature-value-declaration>"},"feature-value-name":{syntax:"<custom-ident>"},"fill-rule":{syntax:"nonzero | evenodd"},"filter-function":{syntax:"<blur()> | <brightness()> | <contrast()> | <drop-shadow()> | <grayscale()> | <hue-rotate()> | <invert()> | <opacity()> | <saturate()> | <sepia()>"},"filter-function-list":{syntax:"[ <filter-function> | <url> ]+"},"final-bg-layer":{syntax:"<'background-color'> || <bg-image> || <bg-position> [ / <bg-size> ]? || <repeat-style> || <attachment> || <box> || <box>"},"fit-content()":{syntax:"fit-content( [ <length> | <percentage> ] )"},"fixed-breadth":{syntax:"<length-percentage>"},"fixed-repeat":{syntax:"repeat( [ <positive-integer> ] , [ <line-names>? <fixed-size> ]+ <line-names>? )"},"fixed-size":{syntax:"<fixed-breadth> | minmax( <fixed-breadth> , <track-breadth> ) | minmax( <inflexible-breadth> , <fixed-breadth> )"},"font-stretch-absolute":{syntax:"normal | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | <percentage>"},"font-variant-css21":{syntax:"[ normal | small-caps ]"},"font-weight-absolute":{syntax:"normal | bold | <number [1,1000]>"},"frequency-percentage":{syntax:"<frequency> | <percentage>"},"general-enclosed":{syntax:"[ <function-token> <any-value> ) ] | ( <ident> <any-value> )"},"generic-family":{syntax:"serif | sans-serif | cursive | fantasy | monospace"},"generic-name":{syntax:"serif | sans-serif | cursive | fantasy | monospace"},"geometry-box":{syntax:"<shape-box> | fill-box | stroke-box | view-box"},gradient:gradient,"grayscale()":{syntax:"grayscale( <number-percentage> )"},"grid-line":{syntax:"auto | <custom-ident> | [ <integer> && <custom-ident>? ] | [ span && [ <integer> || <custom-ident> ] ]"},"historical-lig-values":{syntax:"[ historical-ligatures | no-historical-ligatures ]"},"hsl()":{syntax:"hsl( <hue> <percentage> <percentage> [ / <alpha-value> ]? ) | hsl( <hue>, <percentage>, <percentage>, <alpha-value>? )"},"hsla()":{syntax:"hsla( <hue> <percentage> <percentage> [ / <alpha-value> ]? ) | hsla( <hue>, <percentage>, <percentage>, <alpha-value>? )"},hue:hue,"hue-rotate()":{syntax:"hue-rotate( <angle> )"},"id-selector":{syntax:"<hash-token>"},image:image,"image()":{syntax:"image( <image-tags>? [ <image-src>? , <color>? ]! )"},"image-set()":{syntax:"image-set( <image-set-option># )"},"image-set-option":{syntax:"[ <image> | <string> ] <resolution>"},"image-src":{syntax:"<url> | <string>"},"image-tags":{syntax:"ltr | rtl"},"inflexible-breadth":{syntax:"<length> | <percentage> | min-content | max-content | auto"},"inset()":{syntax:"inset( <length-percentage>{1,4} [ round <'border-radius'> ]? )"},"invert()":{syntax:"invert( <number-percentage> )"},"keyframes-name":{syntax:"<custom-ident> | <string>"},"keyframe-block":{syntax:"<keyframe-selector># {\n <declaration-list>\n}"},"keyframe-block-list":{syntax:"<keyframe-block>+"},"keyframe-selector":{syntax:"from | to | <percentage>"},"leader()":{syntax:"leader( <leader-type> )"},"leader-type":{syntax:"dotted | solid | space | <string>"},"length-percentage":{syntax:"<length> | <percentage>"},"line-names":{syntax:"'[' <custom-ident>* ']'"},"line-name-list":{syntax:"[ <line-names> | <name-repeat> ]+"},"line-style":{syntax:"none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset"},"line-width":{syntax:"<length> | thin | medium | thick"},"linear-color-hint":{syntax:"<length-percentage>"},"linear-color-stop":{syntax:"<color> <color-stop-length>?"},"linear-gradient()":{syntax:"linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )"},"mask-layer":{syntax:"<mask-reference> || <position> [ / <bg-size> ]? || <repeat-style> || <geometry-box> || [ <geometry-box> | no-clip ] || <compositing-operator> || <masking-mode>"},"mask-position":{syntax:"[ <length-percentage> | left | center | right ] [ <length-percentage> | top | center | bottom ]?"},"mask-reference":{syntax:"none | <image> | <mask-source>"},"mask-source":{syntax:"<url>"},"masking-mode":{syntax:"alpha | luminance | match-source"},"matrix()":{syntax:"matrix( <number>#{6} )"},"matrix3d()":{syntax:"matrix3d( <number>#{16} )"},"max()":{syntax:"max( <calc-sum># )"},"media-and":{syntax:"<media-in-parens> [ and <media-in-parens> ]+"},"media-condition":{syntax:"<media-not> | <media-and> | <media-or> | <media-in-parens>"},"media-condition-without-or":{syntax:"<media-not> | <media-and> | <media-in-parens>"},"media-feature":{syntax:"( [ <mf-plain> | <mf-boolean> | <mf-range> ] )"},"media-in-parens":{syntax:"( <media-condition> ) | <media-feature> | <general-enclosed>"},"media-not":{syntax:"not <media-in-parens>"},"media-or":{syntax:"<media-in-parens> [ or <media-in-parens> ]+"},"media-query":{syntax:"<media-condition> | [ not | only ]? <media-type> [ and <media-condition-without-or> ]?"},"media-query-list":{syntax:"<media-query>#"},"media-type":{syntax:"<ident>"},"mf-boolean":{syntax:"<mf-name>"},"mf-name":{syntax:"<ident>"},"mf-plain":{syntax:"<mf-name> : <mf-value>"},"mf-range":{syntax:"<mf-name> [ '<' | '>' ]? '='? <mf-value>\n| <mf-value> [ '<' | '>' ]? '='? <mf-name>\n| <mf-value> '<' '='? <mf-name> '<' '='? <mf-value>\n| <mf-value> '>' '='? <mf-name> '>' '='? <mf-value>"},"mf-value":{syntax:"<number> | <dimension> | <ident> | <ratio>"},"min()":{syntax:"min( <calc-sum># )"},"minmax()":{syntax:"minmax( [ <length> | <percentage> | min-content | max-content | auto ] , [ <length> | <percentage> | <flex> | min-content | max-content | auto ] )"},"named-color":{syntax:"transparent | 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 | darkgreen | darkgrey | 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 | green | greenyellow | grey | honeydew | hotpink | indianred | indigo | ivory | khaki | lavender | lavenderblush | lawngreen | lemonchiffon | lightblue | lightcoral | lightcyan | lightgoldenrodyellow | lightgray | lightgreen | lightgrey | 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"},"namespace-prefix":{syntax:"<ident>"},"ns-prefix":{syntax:"[ <ident-token> | '*' ]? '|'"},"number-percentage":{syntax:"<number> | <percentage>"},"numeric-figure-values":{syntax:"[ lining-nums | oldstyle-nums ]"},"numeric-fraction-values":{syntax:"[ diagonal-fractions | stacked-fractions ]"},"numeric-spacing-values":{syntax:"[ proportional-nums | tabular-nums ]"},nth:nth$1,"opacity()":{syntax:"opacity( [ <number-percentage> ] )"},"overflow-position":{syntax:"unsafe | safe"},"outline-radius":{syntax:"<length> | <percentage>"},"page-body":{syntax:"<declaration>? [ ; <page-body> ]? | <page-margin-box> <page-body>"},"page-margin-box":{syntax:"<page-margin-box-type> '{' <declaration-list> '}'"},"page-margin-box-type":{syntax:"@top-left-corner | @top-left | @top-center | @top-right | @top-right-corner | @bottom-left-corner | @bottom-left | @bottom-center | @bottom-right | @bottom-right-corner | @left-top | @left-middle | @left-bottom | @right-top | @right-middle | @right-bottom"},"page-selector-list":{syntax:"[ <page-selector># ]?"},"page-selector":{syntax:"<pseudo-page>+ | <ident> <pseudo-page>*"},"path()":{syntax:"path( [ <fill-rule>, ]? <string> )"},"paint()":{syntax:"paint( <ident>, <declaration-value>? )"},"perspective()":{syntax:"perspective( <length> )"},"polygon()":{syntax:"polygon( <fill-rule>? , [ <length-percentage> <length-percentage> ]# )"},position:position,"pseudo-class-selector":{syntax:"':' <ident-token> | ':' <function-token> <any-value> ')'"},"pseudo-element-selector":{syntax:"':' <pseudo-class-selector>"},"pseudo-page":{syntax:": [ left | right | first | blank ]"},quote:quote,"radial-gradient()":{syntax:"radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )"},"relative-selector":{syntax:"<combinator>? <complex-selector>"},"relative-selector-list":{syntax:"<relative-selector>#"},"relative-size":{syntax:"larger | smaller"},"repeat-style":{syntax:"repeat-x | repeat-y | [ repeat | space | round | no-repeat ]{1,2}"},"repeating-linear-gradient()":{syntax:"repeating-linear-gradient( [ <angle> | to <side-or-corner> ]? , <color-stop-list> )"},"repeating-radial-gradient()":{syntax:"repeating-radial-gradient( [ <ending-shape> || <size> ]? [ at <position> ]? , <color-stop-list> )"},"rgb()":{syntax:"rgb( <percentage>{3} [ / <alpha-value> ]? ) | rgb( <number>{3} [ / <alpha-value> ]? ) | rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )"},"rgba()":{syntax:"rgba( <percentage>{3} [ / <alpha-value> ]? ) | rgba( <number>{3} [ / <alpha-value> ]? ) | rgba( <percentage>#{3} , <alpha-value>? ) | rgba( <number>#{3} , <alpha-value>? )"},"rotate()":{syntax:"rotate( [ <angle> | <zero> ] )"},"rotate3d()":{syntax:"rotate3d( <number> , <number> , <number> , [ <angle> | <zero> ] )"},"rotateX()":{syntax:"rotateX( [ <angle> | <zero> ] )"},"rotateY()":{syntax:"rotateY( [ <angle> | <zero> ] )"},"rotateZ()":{syntax:"rotateZ( [ <angle> | <zero> ] )"},"saturate()":{syntax:"saturate( <number-percentage> )"},"scale()":{syntax:"scale( <number> , <number>? )"},"scale3d()":{syntax:"scale3d( <number> , <number> , <number> )"},"scaleX()":{syntax:"scaleX( <number> )"},"scaleY()":{syntax:"scaleY( <number> )"},"scaleZ()":{syntax:"scaleZ( <number> )"},"self-position":{syntax:"center | start | end | self-start | self-end | flex-start | flex-end"},"shape-radius":{syntax:"<length-percentage> | closest-side | farthest-side"},"skew()":{syntax:"skew( [ <angle> | <zero> ] , [ <angle> | <zero> ]? )"},"skewX()":{syntax:"skewX( [ <angle> | <zero> ] )"},"skewY()":{syntax:"skewY( [ <angle> | <zero> ] )"},"sepia()":{syntax:"sepia( <number-percentage> )"},shadow:shadow,"shadow-t":{syntax:"[ <length>{2,3} && <color>? ]"},shape:shape,"shape-box":{syntax:"<box> | margin-box"},"side-or-corner":{syntax:"[ left | right ] || [ top | bottom ]"},"single-animation":{syntax:"<time> || <timing-function> || <time> || <single-animation-iteration-count> || <single-animation-direction> || <single-animation-fill-mode> || <single-animation-play-state> || [ none | <keyframes-name> ]"},"single-animation-direction":{syntax:"normal | reverse | alternate | alternate-reverse"},"single-animation-fill-mode":{syntax:"none | forwards | backwards | both"},"single-animation-iteration-count":{syntax:"infinite | <number>"},"single-animation-play-state":{syntax:"running | paused"},"single-transition":{syntax:"[ none | <single-transition-property> ] || <time> || <timing-function> || <time>"},"single-transition-property":{syntax:"all | <custom-ident>"},size:size,"step-position":{syntax:"jump-start | jump-end | jump-none | jump-both | start | end"},"step-timing-function":{syntax:"step-start | step-end | steps(<integer>[, <step-position>]?)"},"subclass-selector":{syntax:"<id-selector> | <class-selector> | <attribute-selector> | <pseudo-class-selector>"},"supports-condition":{syntax:"not <supports-in-parens> | <supports-in-parens> [ and <supports-in-parens> ]* | <supports-in-parens> [ or <supports-in-parens> ]*"},"supports-in-parens":{syntax:"( <supports-condition> ) | <supports-feature> | <general-enclosed>"},"supports-feature":{syntax:"<supports-decl> | <supports-selector-fn>"},"supports-decl":{syntax:"( <declaration> )"},"supports-selector-fn":{syntax:"selector( <complex-selector> )"},symbol:symbol,target:target,"target-counter()":{syntax:"target-counter( [ <string> | <url> ] , <custom-ident> , <counter-style>? )"},"target-counters()":{syntax:"target-counters( [ <string> | <url> ] , <custom-ident> , <string> , <counter-style>? )"},"target-text()":{syntax:"target-text( [ <string> | <url> ] , [ content | before | after | first-letter ]? )"},"time-percentage":{syntax:"<time> | <percentage>"},"timing-function":{syntax:"linear | <cubic-bezier-timing-function> | <step-timing-function>"},"track-breadth":{syntax:"<length-percentage> | <flex> | min-content | max-content | auto"},"track-list":{syntax:"[ <line-names>? [ <track-size> | <track-repeat> ] ]+ <line-names>?"},"track-repeat":{syntax:"repeat( [ <positive-integer> ] , [ <line-names>? <track-size> ]+ <line-names>? )"},"track-size":{syntax:"<track-breadth> | minmax( <inflexible-breadth> , <track-breadth> ) | fit-content( [ <length> | <percentage> ] )"},"transform-function":{syntax:"<matrix()> | <translate()> | <translateX()> | <translateY()> | <scale()> | <scaleX()> | <scaleY()> | <rotate()> | <skew()> | <skewX()> | <skewY()> | <matrix3d()> | <translate3d()> | <translateZ()> | <scale3d()> | <scaleZ()> | <rotate3d()> | <rotateX()> | <rotateY()> | <rotateZ()> | <perspective()>"},"transform-list":{syntax:"<transform-function>+"},"translate()":{syntax:"translate( <length-percentage> , <length-percentage>? )"},"translate3d()":{syntax:"translate3d( <length-percentage> , <length-percentage> , <length> )"},"translateX()":{syntax:"translateX( <length-percentage> )"},"translateY()":{syntax:"translateY( <length-percentage> )"},"translateZ()":{syntax:"translateZ( <length> )"},"type-or-unit":{syntax:"string | color | url | integer | number | length | angle | time | frequency | cap | ch | em | ex | ic | lh | rlh | rem | vb | vi | vw | vh | vmin | vmax | mm | Q | cm | in | pt | pc | px | deg | grad | rad | turn | ms | s | Hz | kHz | %"},"type-selector":{syntax:"<wq-name> | <ns-prefix>? '*'"},"var()":{syntax:"var( <custom-property-name> , <declaration-value>? )"},"viewport-length":{syntax:"auto | <length-percentage>"},"wq-name":{syntax:"<ns-prefix>? <ident-token>"}};var atrules={charset:{prelude:"<string>"},"font-face":{descriptors:{"unicode-range":{comment:"replaces <unicode-range>, an old production name",syntax:"<urange>#"}}}};var properties={"-moz-background-clip":{comment:"deprecated syntax in old Firefox, https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"padding | border"},"-moz-border-radius-bottomleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius",syntax:"<'border-bottom-left-radius'>"},"-moz-border-radius-bottomright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-border-radius-topleft":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius",syntax:"<'border-top-left-radius'>"},"-moz-border-radius-topright":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius",syntax:"<'border-bottom-right-radius'>"},"-moz-control-character-visibility":{comment:"firefox specific keywords, https://bugzilla.mozilla.org/show_bug.cgi?id=947588",syntax:"visible | hidden"},"-moz-osx-font-smoothing":{comment:"misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | grayscale"},"-moz-user-select":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"none | text | all | -moz-none"},"-ms-flex-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"start | end | center | baseline | stretch"},"-ms-flex-item-align":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align",syntax:"auto | start | end | center | baseline | stretch"},"-ms-flex-line-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack",syntax:"start | end | center | justify | distribute | stretch"},"-ms-flex-negative":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-shrink'>"},"-ms-flex-pack":{comment:"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack",syntax:"start | end | center | justify | distribute"},"-ms-flex-order":{comment:"misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx",syntax:"<integer>"},"-ms-flex-positive":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-grow'>"},"-ms-flex-preferred-size":{comment:"misssed old syntax implemented in IE; TODO: find references for comfirmation",syntax:"<'flex-basis'>"},"-ms-interpolation-mode":{comment:"https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx",syntax:"nearest-neighbor | bicubic"},"-ms-grid-column-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx",syntax:"start | end | center | stretch"},"-ms-grid-row-align":{comment:"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx",syntax:"start | end | center | stretch"},"-ms-hyphenate-limit-last":{comment:"misssed old syntax implemented in IE; https://www.w3.org/TR/css-text-4/#hyphenate-line-limits",syntax:"none | always | column | page | spread"},"-webkit-appearance":{comment:"webkit specific keywords",references:["http://css-infos.net/property/-webkit-appearance"],syntax:"none | button | button-bevel | caps-lock-indicator | caret | checkbox | default-button | inner-spin-button | listbox | listitem | media-controls-background | media-controls-fullscreen-background | media-current-time-display | media-enter-fullscreen-button | media-exit-fullscreen-button | media-fullscreen-button | media-mute-button | media-overlay-play-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | media-time-remaining-display | media-toggle-closed-captions-button | media-volume-slider | media-volume-slider-container | media-volume-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | meter | progress-bar | progress-bar-value | push-button | radio | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield | -apple-pay-button"},"-webkit-background-clip":{comment:"https://developer.mozilla.org/en/docs/Web/CSS/background-clip",syntax:"[ <box> | border | padding | content | text ]#"},"-webkit-column-break-after":{comment:"added, http://help.dottoro.com/lcrthhhv.php",syntax:"always | auto | avoid"},"-webkit-column-break-before":{comment:"added, http://help.dottoro.com/lcxquvkf.php",syntax:"always | auto | avoid"},"-webkit-column-break-inside":{comment:"added, http://help.dottoro.com/lclhnthl.php",syntax:"always | auto | avoid"},"-webkit-font-smoothing":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth",syntax:"auto | none | antialiased | subpixel-antialiased"},"-webkit-mask-box-image":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"[ <url> | <gradient> | none ] [ <length-percentage>{4} <-webkit-mask-box-repeat>{2} ]?"},"-webkit-print-color-adjust":{comment:"missed",references:["https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust"],syntax:"economy | exact"},"-webkit-text-security":{comment:"missed; http://help.dottoro.com/lcbkewgt.php",syntax:"none | circle | disc | square"},"-webkit-user-drag":{comment:"missed; http://help.dottoro.com/lcbixvwm.php",syntax:"none | element | auto"},"-webkit-user-select":{comment:"auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select",syntax:"auto | none | text | all"},"alignment-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty"],syntax:"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical"},"baseline-shift":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty"],syntax:"baseline | sub | super | <svg-length>"},behavior:{comment:"added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx",syntax:"<url>+"},"clip-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty"],syntax:"nonzero | evenodd"},cue:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'cue-before'> <'cue-after'>?"},"cue-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},"cue-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<url> <decibel>? | none"},cursor:{comment:"added legacy keywords: hand, -webkit-grab. -webkit-grabbing, -webkit-zoom-in, -webkit-zoom-out, -moz-grab, -moz-grabbing, -moz-zoom-in, -moz-zoom-out",references:["https://www.sitepoint.com/css3-cursor-styles/"],syntax:"[ [ <url> [ <x> <y> ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]"},display:{comment:"extended with -ms-flexbox",syntax:"| <-non-standard-display>"},position:{comment:"extended with -webkit-sticky",syntax:"| -webkit-sticky"},"dominant-baseline":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty"],syntax:"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge"},"image-rendering":{comment:"extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality",references:["https://developer.mozilla.org/en/docs/Web/CSS/image-rendering","https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty"],syntax:"| optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>"},fill:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<paint>"},"fill-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"<number-zero-one>"},"fill-rule":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#FillProperty"],syntax:"nonzero | evenodd"},filter:{comment:"extend with IE legacy syntaxes",syntax:"| <-ms-filter-function-list>"},"glyph-orientation-horizontal":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty"],syntax:"<angle>"},"glyph-orientation-vertical":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty"],syntax:"<angle>"},kerning:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#KerningProperty"],syntax:"auto | <svg-length>"},"letter-spacing":{comment:"fix syntax <length> -> <length-percentage>",references:["https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing"],syntax:"normal | <length-percentage>"},marker:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-end":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-mid":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"marker-start":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#MarkerProperties"],syntax:"none | <url>"},"max-width":{comment:"fix auto -> none (https://github.com/mdn/data/pull/431); extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width",syntax:"none | <length-percentage> | min-content | max-content | fit-content(<length-percentage>) | <-non-standard-width>"},width:{comment:"per spec fit-content should be a function, however browsers are supporting it as a keyword (https://github.com/csstree/stylelint-validator/issues/29)",syntax:"| fit-content | -moz-fit-content | -webkit-fit-content"},"min-width":{comment:"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"auto | <length-percentage> | min-content | max-content | fit-content(<length-percentage>) | <-non-standard-width>"},overflow:{comment:"extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"| <-non-standard-overflow>"},pause:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'pause-before'> <'pause-after'>?"},"pause-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"pause-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},rest:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<'rest-before'> <'rest-after'>?"},"rest-after":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"rest-before":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<time> | none | x-weak | weak | medium | strong | x-strong"},"shape-rendering":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#ShapeRenderingPropert"],syntax:"auto | optimizeSpeed | crispEdges | geometricPrecision"},src:{comment:"added @font-face's src property https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/src",syntax:"[ <url> [ format( <string># ) ]? | local( <family-name> ) ]#"},speak:{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | none | normal"},"speak-as":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | spell-out || digits || [ literal-punctuation | no-punctuation ]"},stroke:{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<paint>"},"stroke-dasharray":{comment:"added SVG property; a list of comma and/or white space separated <length>s and <percentage>s",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"none | [ <svg-length>+ ]#"},"stroke-dashoffset":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"stroke-linecap":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"butt | round | square"},"stroke-linejoin":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"miter | round | bevel"},"stroke-miterlimit":{comment:"added SVG property (<miterlimit> = <number-one-or-greater>) ",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-one-or-greater>"},"stroke-opacity":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<number-zero-one>"},"stroke-width":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/painting.html#StrokeProperties"],syntax:"<svg-length>"},"text-anchor":{comment:"added SVG property",references:["https://www.w3.org/TR/SVG/text.html#TextAlignmentProperties"],syntax:"start | middle | end"},"unicode-bidi":{comment:"added prefixed keywords https://developer.mozilla.org/en-US/docs/Web/CSS/unicode-bidi",syntax:"| -moz-isolate | -moz-isolate-override | -moz-plaintext | -webkit-isolate | -webkit-isolate-override | -webkit-plaintext"},"unicode-range":{comment:"added missed property https://developer.mozilla.org/en-US/docs/Web/CSS/%40font-face/unicode-range",syntax:"<urange>#"},"voice-balance":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<number> | left | center | right | leftwards | rightwards"},"voice-duration":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"auto | <time>"},"voice-family":{comment:"<name> -> <family-name>, https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ [ <family-name> | <generic-voice> ] , ]* [ <family-name> | <generic-voice> ] | preserve"},"voice-pitch":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-range":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"<frequency> && absolute | [ [ x-low | low | medium | high | x-high ] || [ <frequency> | <semitones> | <percentage> ] ]"},"voice-rate":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"[ normal | x-slow | slow | medium | fast | x-fast ] || <percentage>"},"voice-stress":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"normal | strong | moderate | none | reduced"},"voice-volume":{comment:"https://www.w3.org/TR/css3-speech/#property-index",syntax:"silent | [ [ x-soft | soft | medium | loud | x-loud ] || <decibel> ]"},"writing-mode":{comment:"extend with SVG keywords",syntax:"| <svg-writing-mode>"}};var syntaxes={"-legacy-gradient":{comment:"added collection of legacy gradient syntaxes",syntax:"<-webkit-gradient()> | <-legacy-linear-gradient> | <-legacy-repeating-linear-gradient> | <-legacy-radial-gradient> | <-legacy-repeating-radial-gradient>"},"-legacy-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-repeating-linear-gradient":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> ) | -o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )"},"-legacy-linear-gradient-arguments":{comment:"like standard syntax but w/o `to` keyword https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient",syntax:"[ <angle> | <side-or-corner> ]? , <color-stop-list>"},"-legacy-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-repeating-radial-gradient":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> ) | -o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )"},"-legacy-radial-gradient-arguments":{comment:"deprecated syntax that implemented by some browsers https://www.w3.org/TR/2011/WD-css3-images-20110908/#radial-gradients",syntax:"[ <position> , ]? [ [ [ <-legacy-radial-gradient-shape> || <-legacy-radial-gradient-size> ] | [ <length> | <percentage> ]{2} ] , ]? <color-stop-list>"},"-legacy-radial-gradient-size":{comment:"before a standard it contains 2 extra keywords (`contain` and `cover`) https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltsize",syntax:"closest-side | closest-corner | farthest-side | farthest-corner | contain | cover"},"-legacy-radial-gradient-shape":{comment:"define to double sure it doesn't extends in future https://www.w3.org/TR/2011/WD-css3-images-20110908/#ltshape",syntax:"circle | ellipse"},"-non-standard-font":{comment:"non standard fonts",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"-apple-system-body | -apple-system-headline | -apple-system-subheadline | -apple-system-caption1 | -apple-system-caption2 | -apple-system-footnote | -apple-system-short-body | -apple-system-short-headline | -apple-system-short-subheadline | -apple-system-short-caption1 | -apple-system-short-footnote | -apple-system-tall-body"},"-non-standard-color":{comment:"non standard colors",references:["http://cssdot.ru/%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_CSS/color-i305.html","https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Mozilla_Color_Preference_Extensions"],syntax:"-moz-ButtonDefault | -moz-ButtonHoverFace | -moz-ButtonHoverText | -moz-CellHighlight | -moz-CellHighlightText | -moz-Combobox | -moz-ComboboxText | -moz-Dialog | -moz-DialogText | -moz-dragtargetzone | -moz-EvenTreeRow | -moz-Field | -moz-FieldText | -moz-html-CellHighlight | -moz-html-CellHighlightText | -moz-mac-accentdarkestshadow | -moz-mac-accentdarkshadow | -moz-mac-accentface | -moz-mac-accentlightesthighlight | -moz-mac-accentlightshadow | -moz-mac-accentregularhighlight | -moz-mac-accentregularshadow | -moz-mac-chrome-active | -moz-mac-chrome-inactive | -moz-mac-focusring | -moz-mac-menuselect | -moz-mac-menushadow | -moz-mac-menutextselect | -moz-MenuHover | -moz-MenuHoverText | -moz-MenuBarText | -moz-MenuBarHoverText | -moz-nativehyperlinktext | -moz-OddTreeRow | -moz-win-communicationstext | -moz-win-mediatext | -moz-activehyperlinktext | -moz-default-background-color | -moz-default-color | -moz-hyperlinktext | -moz-visitedhyperlinktext | -webkit-activelink | -webkit-focus-ring-color | -webkit-link | -webkit-text"},"-non-standard-image-rendering":{comment:"non-standard keywords http://phrogz.net/tmp/canvas_image_zoom.html",syntax:"optimize-contrast | -moz-crisp-edges | -o-crisp-edges | -webkit-optimize-contrast"},"-non-standard-overflow":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow",syntax:"-moz-scrollbars-none | -moz-scrollbars-horizontal | -moz-scrollbars-vertical | -moz-hidden-unscrollable"},"-non-standard-width":{comment:"non-standard keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width",syntax:"fill-available | min-intrinsic | intrinsic | -moz-available | -moz-fit-content | -moz-min-content | -moz-max-content | -webkit-min-content | -webkit-max-content"},"-webkit-gradient()":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/ - TODO: simplify when after match algorithm improvement ( [, point, radius | , point] -> [, radius]? , point )",syntax:"-webkit-gradient( <-webkit-gradient-type>, <-webkit-gradient-point> [, <-webkit-gradient-point> | , <-webkit-gradient-radius>, <-webkit-gradient-point> ] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )"},"-webkit-gradient-color-stop":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"from( <color> ) | color-stop( [ <number-zero-one> | <percentage> ] , <color> ) | to( <color> )"},"-webkit-gradient-point":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"[ left | center | right | <length-percentage> ] [ top | center | bottom | <length-percentage> ]"},"-webkit-gradient-radius":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"<length> | <percentage>"},"-webkit-gradient-type":{comment:"first Apple proposal gradient syntax https://webkit.org/blog/175/introducing-css-gradients/",syntax:"linear | radial"},"-webkit-mask-box-repeat":{comment:"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image",syntax:"repeat | stretch | round"},"-webkit-mask-clip-style":{comment:"missed; there is no enough information about `-webkit-mask-clip` property, but looks like all those keywords are working",syntax:"border | border-box | padding | padding-box | content | content-box | text"},"-ms-filter-function-list":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function>+"},"-ms-filter-function":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<-ms-filter-function-progid> | <-ms-filter-function-legacy>"},"-ms-filter-function-progid":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"'progid:' [ <ident-token> '.' ]* [ <ident-token> | <function-token> <any-value>? ) ]"},"-ms-filter-function-legacy":{comment:"https://developer.mozilla.org/en-US/docs/Web/CSS/-ms-filter",syntax:"<ident-token> | <function-token> <any-value>? )"},"-ms-filter":{syntax:"<string>"},age:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"child | young | old"},"attr-name":{syntax:"<wq-name>"},"attr-fallback":{syntax:"<any-value>"},"border-radius":{comment:"missed, https://drafts.csswg.org/css-backgrounds-3/#the-border-radius",syntax:"<length-percentage>{1,2}"},bottom:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"content-list":{comment:"missed -> https://drafts.csswg.org/css-content/#typedef-content-list (document-url, <target> and leader() is omitted util stabilization)",syntax:"[ <string> | contents | <image> | <quote> | <target> | <leader()> | <attr()> | counter( <ident>, <'list-style-type'>? ) ]+"},"element()":{comment:"https://drafts.csswg.org/css-gcpm/#element-syntax & https://drafts.csswg.org/css-images-4/#element-notation",syntax:"element( <custom-ident> , [ first | start | last | first-except ]? ) | element( <id-selector> )"},"generic-voice":{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"[ <age>? <gender> <integer>? ]"},gender:{comment:"https://www.w3.org/TR/css3-speech/#voice-family",syntax:"male | female | neutral"},"generic-family":{comment:"added -apple-system",references:["https://webkit.org/blog/3709/using-the-system-font-in-web-content/"],syntax:"| -apple-system"},gradient:{comment:"added legacy syntaxes support",syntax:"| <-legacy-gradient>"},left:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"mask-image":{comment:"missed; https://drafts.fxtf.org/css-masking-1/#the-mask-image",syntax:"<mask-reference>#"},"name-repeat":{comment:"missed, and looks like obsolete, keep it as is since other property syntaxes should be changed too; https://www.w3.org/TR/2015/WD-css-grid-1-20150917/#typedef-name-repeat",syntax:"repeat( [ <positive-integer> | auto-fill ], <line-names>+)"},"named-color":{comment:"added non standard color names",syntax:"| <-non-standard-color>"},paint:{comment:"used by SVG https://www.w3.org/TR/SVG/painting.html#SpecifyingPaint",syntax:"none | <color> | <url> [ none | <color> ]? | context-fill | context-stroke"},"page-size":{comment:"https://www.w3.org/TR/css-page-3/#typedef-page-size-page-size",syntax:"A5 | A4 | A3 | B5 | B4 | JIS-B5 | JIS-B4 | letter | legal | ledger"},ratio:{comment:"missed, https://drafts.csswg.org/mediaqueries-4/#typedef-ratio",syntax:"<integer> / <integer>"},right:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},shape:{comment:"missed spaces in function body and add backwards compatible syntax",syntax:"rect( <top>, <right>, <bottom>, <left> ) | rect( <top> <right> <bottom> <left> )"},"svg-length":{comment:"All coordinates and lengths in SVG can be specified with or without a unit identifier",references:["https://www.w3.org/TR/SVG11/coords.html#Units"],syntax:"<percentage> | <length> | <number>"},"svg-writing-mode":{comment:"SVG specific keywords (deprecated for CSS)",references:["https://developer.mozilla.org/en/docs/Web/CSS/writing-mode","https://www.w3.org/TR/SVG/text.html#WritingModeProperty"],syntax:"lr-tb | rl-tb | tb-rl | lr | rl | tb"},top:{comment:"missed; not sure we should add it, but no others except `shape` is using it so it's ok for now; https://drafts.fxtf.org/css-masking-1/#funcdef-clip-rect",syntax:"<length> | auto"},"track-group":{comment:"used by old grid-columns and grid-rows syntax v0",syntax:"'(' [ <string>* <track-minmax> <string>* ]+ ')' [ '[' <positive-integer> ']' ]? | <track-minmax>"},"track-list-v0":{comment:"used by old grid-columns and grid-rows syntax v0",syntax:"[ <string>* <track-group> <string>* ]+ | none"},"track-minmax":{comment:"used by old grid-columns and grid-rows syntax v0",syntax:"minmax( <track-breadth> , <track-breadth> ) | auto | <track-breadth> | fit-content"},x:{comment:"missed; not sure we should add it, but no others except `cursor` is using it so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},y:{comment:"missed; not sure we should add it, but no others except `cursor` is using so it's ok for now; https://drafts.csswg.org/css-ui-3/#cursor",syntax:"<number>"},declaration:{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"<ident-token> : <declaration-value>? [ '!' important ]?"},"declaration-list":{comment:"missed, restored by https://drafts.csswg.org/css-syntax",syntax:"[ <declaration>? ';' ]* <declaration>?"},url:{comment:"https://drafts.csswg.org/css-values-4/#urls",syntax:"url( <string> <url-modifier>* ) | <url-token>"},"url-modifier":{comment:"https://drafts.csswg.org/css-values-4/#typedef-url-modifier",syntax:"<ident> | <function-token> <any-value> )"},"number-zero-one":{syntax:"<number [0,1]>"},"number-one-or-greater":{syntax:"<number [1,∞]>"},"positive-integer":{syntax:"<integer [0,∞]>"},"-non-standard-display":{syntax:"-ms-inline-flexbox | -ms-grid | -ms-inline-grid | -webkit-flex | -webkit-inline-flex | -webkit-box | -webkit-inline-box | -moz-inline-stack | -moz-box | -moz-inline-box"}};var require$$3={atrules:atrules,properties:properties,syntaxes:syntaxes};var mdnAtrules=require$$0;var mdnProperties=require$$1;var mdnSyntaxes=require$$2;var patch=require$$3;var extendSyntax=/^\s*\|\s*/;function preprocessAtrules(dict){var result=Object.create(null);for(var atruleName in dict){var _atrule2=dict[atruleName];var descriptors=null;if(_atrule2.descriptors){descriptors=Object.create(null);for(var descriptor in _atrule2.descriptors){descriptors[descriptor]=_atrule2.descriptors[descriptor].syntax;}}result[atruleName.substr(1)]={prelude:_atrule2.syntax.trim().match(/^@\S+\s+([^;\{]*)/)[1].trim()||null,descriptors:descriptors};}return result;}function patchDictionary(dict,patchDict){var result={};// copy all syntaxes for an original dict
1512for(var key in dict){result[key]=dict[key].syntax||dict[key];}// apply a patch
1513for(var _key in patchDict){if(_key in dict){if(patchDict[_key].syntax){result[_key]=extendSyntax.test(patchDict[_key].syntax)?result[_key]+' '+patchDict[_key].syntax.trim():patchDict[_key].syntax;}else{delete result[_key];}}else{if(patchDict[_key].syntax){result[_key]=patchDict[_key].syntax.replace(extendSyntax,'');}}}return result;}function unpackSyntaxes(dict){var result={};for(var key in dict){result[key]=dict[key].syntax;}return result;}function patchAtrules(dict,patchDict){var result={};// copy all syntaxes for an original dict
1514for(var key in dict){var patchDescriptors=patchDict[key]&&patchDict[key].descriptors||null;result[key]={prelude:key in patchDict&&'prelude'in patchDict[key]?patchDict[key].prelude:dict[key].prelude||null,descriptors:dict[key].descriptors?patchDictionary(dict[key].descriptors,patchDescriptors||{}):patchDescriptors&&unpackSyntaxes(patchDescriptors)};}// apply a patch
1515for(var _key2 in patchDict){if(!hasOwnProperty.call(dict,_key2)){result[_key2]={prelude:patchDict[_key2].prelude||null,descriptors:patchDict[_key2].descriptors&&unpackSyntaxes(patchDict[_key2].descriptors)};}}return result;}var data$1={types:patchDictionary(mdnSyntaxes,patch.syntaxes),atrules:patchAtrules(preprocessAtrules(mdnAtrules),patch.atrules),properties:patchDictionary(mdnProperties,patch.properties)};var cmpChar$2=tokenizer$3.cmpChar;var isDigit$1=tokenizer$3.isDigit;var TYPE$y=tokenizer$3.TYPE;var WHITESPACE$8=TYPE$y.WhiteSpace;var COMMENT$6=TYPE$y.Comment;var IDENT$f=TYPE$y.Ident;var NUMBER$6=TYPE$y.Number;var DIMENSION$5=TYPE$y.Dimension;var PLUSSIGN$5=0x002B;// U+002B PLUS SIGN (+)
1516var HYPHENMINUS$2=0x002D;// U+002D HYPHEN-MINUS (-)
1517var N=0x006E;// U+006E LATIN SMALL LETTER N (n)
1518var DISALLOW_SIGN=true;var ALLOW_SIGN=false;function checkInteger(offset,disallowSign){var pos=this.scanner.tokenStart+offset;var code=this.scanner.source.charCodeAt(pos);if(code===PLUSSIGN$5||code===HYPHENMINUS$2){if(disallowSign){this.error('Number sign is not allowed');}pos++;}for(;pos<this.scanner.tokenEnd;pos++){if(!isDigit$1(this.scanner.source.charCodeAt(pos))){this.error('Integer is expected',pos);}}}function checkTokenIsInteger(disallowSign){return checkInteger.call(this,0,disallowSign);}function expectCharCode(offset,code){if(!cmpChar$2(this.scanner.source,this.scanner.tokenStart+offset,code)){var msg='';switch(code){case N:msg='N is expected';break;case HYPHENMINUS$2:msg='HyphenMinus is expected';break;}this.error(msg,this.scanner.tokenStart+offset);}}// ... <signed-integer>
1519// ... ['+' | '-'] <signless-integer>
1520function consumeB(){var offset=0;var sign=0;var type=this.scanner.tokenType;while(type===WHITESPACE$8||type===COMMENT$6){type=this.scanner.lookupType(++offset);}if(type!==NUMBER$6){if(this.scanner.isDelim(PLUSSIGN$5,offset)||this.scanner.isDelim(HYPHENMINUS$2,offset)){sign=this.scanner.isDelim(PLUSSIGN$5,offset)?PLUSSIGN$5:HYPHENMINUS$2;do{type=this.scanner.lookupType(++offset);}while(type===WHITESPACE$8||type===COMMENT$6);if(type!==NUMBER$6){this.scanner.skip(offset);checkTokenIsInteger.call(this,DISALLOW_SIGN);}}else{return null;}}if(offset>0){this.scanner.skip(offset);}if(sign===0){type=this.scanner.source.charCodeAt(this.scanner.tokenStart);if(type!==PLUSSIGN$5&&type!==HYPHENMINUS$2){this.error('Number sign is expected');}}checkTokenIsInteger.call(this,sign!==0);return sign===HYPHENMINUS$2?'-'+this.consume(NUMBER$6):this.consume(NUMBER$6);}// An+B microsyntax https://www.w3.org/TR/css-syntax-3/#anb
1521var AnPlusB={name:'AnPlusB',structure:{a:[String,null],b:[String,null]},parse:function parse(){/* eslint-disable brace-style*/var start=this.scanner.tokenStart;var a=null;var b=null;// <integer>
1522if(this.scanner.tokenType===NUMBER$6){checkTokenIsInteger.call(this,ALLOW_SIGN);b=this.consume(NUMBER$6);}// -n
1523// -n <signed-integer>
1524// -n ['+' | '-'] <signless-integer>
1525// -n- <signless-integer>
1526// <dashndashdigit-ident>
1527else if(this.scanner.tokenType===IDENT$f&&cmpChar$2(this.scanner.source,this.scanner.tokenStart,HYPHENMINUS$2)){a='-1';expectCharCode.call(this,1,N);switch(this.scanner.getTokenLength()){// -n
1528// -n <signed-integer>
1529// -n ['+' | '-'] <signless-integer>
1530case 2:this.scanner.next();b=consumeB.call(this);break;// -n- <signless-integer>
1531case 3:expectCharCode.call(this,2,HYPHENMINUS$2);this.scanner.next();this.scanner.skipSC();checkTokenIsInteger.call(this,DISALLOW_SIGN);b='-'+this.consume(NUMBER$6);break;// <dashndashdigit-ident>
1532default:expectCharCode.call(this,2,HYPHENMINUS$2);checkInteger.call(this,3,DISALLOW_SIGN);this.scanner.next();b=this.scanner.substrToCursor(start+2);}}// '+'? n
1533// '+'? n <signed-integer>
1534// '+'? n ['+' | '-'] <signless-integer>
1535// '+'? n- <signless-integer>
1536// '+'? <ndashdigit-ident>
1537else if(this.scanner.tokenType===IDENT$f||this.scanner.isDelim(PLUSSIGN$5)&&this.scanner.lookupType(1)===IDENT$f){var sign=0;a='1';// just ignore a plus
1538if(this.scanner.isDelim(PLUSSIGN$5)){sign=1;this.scanner.next();}expectCharCode.call(this,0,N);switch(this.scanner.getTokenLength()){// '+'? n
1539// '+'? n <signed-integer>
1540// '+'? n ['+' | '-'] <signless-integer>
1541case 1:this.scanner.next();b=consumeB.call(this);break;// '+'? n- <signless-integer>
1542case 2:expectCharCode.call(this,1,HYPHENMINUS$2);this.scanner.next();this.scanner.skipSC();checkTokenIsInteger.call(this,DISALLOW_SIGN);b='-'+this.consume(NUMBER$6);break;// '+'? <ndashdigit-ident>
1543default:expectCharCode.call(this,1,HYPHENMINUS$2);checkInteger.call(this,2,DISALLOW_SIGN);this.scanner.next();b=this.scanner.substrToCursor(start+sign+1);}}// <ndashdigit-dimension>
1544// <ndash-dimension> <signless-integer>
1545// <n-dimension>
1546// <n-dimension> <signed-integer>
1547// <n-dimension> ['+' | '-'] <signless-integer>
1548else if(this.scanner.tokenType===DIMENSION$5){var code=this.scanner.source.charCodeAt(this.scanner.tokenStart);var sign=code===PLUSSIGN$5||code===HYPHENMINUS$2;for(var i=this.scanner.tokenStart+sign;i<this.scanner.tokenEnd;i++){if(!isDigit$1(this.scanner.source.charCodeAt(i))){break;}}if(i===this.scanner.tokenStart+sign){this.error('Integer is expected',this.scanner.tokenStart+sign);}expectCharCode.call(this,i-this.scanner.tokenStart,N);a=this.scanner.source.substring(start,i);// <n-dimension>
1549// <n-dimension> <signed-integer>
1550// <n-dimension> ['+' | '-'] <signless-integer>
1551if(i+1===this.scanner.tokenEnd){this.scanner.next();b=consumeB.call(this);}else{expectCharCode.call(this,i-this.scanner.tokenStart+1,HYPHENMINUS$2);// <ndash-dimension> <signless-integer>
1552if(i+2===this.scanner.tokenEnd){this.scanner.next();this.scanner.skipSC();checkTokenIsInteger.call(this,DISALLOW_SIGN);b='-'+this.consume(NUMBER$6);}// <ndashdigit-dimension>
1553else{checkInteger.call(this,i-this.scanner.tokenStart+2,DISALLOW_SIGN);this.scanner.next();b=this.scanner.substrToCursor(i+1);}}}else{this.error();}if(a!==null&&a.charCodeAt(0)===PLUSSIGN$5){a=a.substr(1);}if(b!==null&&b.charCodeAt(0)===PLUSSIGN$5){b=b.substr(1);}return{type:'AnPlusB',loc:this.getLocation(start,this.scanner.tokenStart),a:a,b:b};},generate:function generate(node){var a=node.a!==null&&node.a!==undefined;var b=node.b!==null&&node.b!==undefined;if(a){this.chunk(node.a==='+1'?'+n':// eslint-disable-line operator-linebreak, indent
1554node.a==='1'?'n':// eslint-disable-line operator-linebreak, indent
1555node.a==='-1'?'-n':// eslint-disable-line operator-linebreak, indent
1556node.a+'n'// eslint-disable-line operator-linebreak, indent
1557);if(b){b=String(node.b);if(b.charAt(0)==='-'||b.charAt(0)==='+'){this.chunk(b.charAt(0));this.chunk(b.substr(1));}else{this.chunk('+');this.chunk(b);}}}else{this.chunk(String(node.b));}}};var tokenizer=tokenizer$3;var TYPE$x=tokenizer.TYPE;var WhiteSpace$1=TYPE$x.WhiteSpace;var Semicolon=TYPE$x.Semicolon;var LeftCurlyBracket=TYPE$x.LeftCurlyBracket;var Delim=TYPE$x.Delim;var EXCLAMATIONMARK$2=0x0021;// U+0021 EXCLAMATION MARK (!)
1558function getOffsetExcludeWS(){if(this.scanner.tokenIndex>0){if(this.scanner.lookupType(-1)===WhiteSpace$1){return this.scanner.tokenIndex>1?this.scanner.getTokenStart(this.scanner.tokenIndex-1):this.scanner.firstCharOffset;}}return this.scanner.tokenStart;}// 0, 0, false
1559function balanceEnd(){return 0;}// LEFTCURLYBRACKET, 0, false
1560function leftCurlyBracket(tokenType){return tokenType===LeftCurlyBracket?1:0;}// LEFTCURLYBRACKET, SEMICOLON, false
1561function leftCurlyBracketOrSemicolon(tokenType){return tokenType===LeftCurlyBracket||tokenType===Semicolon?1:0;}// EXCLAMATIONMARK, SEMICOLON, false
1562function exclamationMarkOrSemicolon(tokenType,source,offset){if(tokenType===Delim&&source.charCodeAt(offset)===EXCLAMATIONMARK$2){return 1;}return tokenType===Semicolon?1:0;}// 0, SEMICOLON, true
1563function semicolonIncluded(tokenType){return tokenType===Semicolon?2:0;}var Raw={name:'Raw',structure:{value:String},parse:function parse(startToken,mode,excludeWhiteSpace){var startOffset=this.scanner.getTokenStart(startToken);var endOffset;this.scanner.skip(this.scanner.getRawLength(startToken,mode||balanceEnd));if(excludeWhiteSpace&&this.scanner.tokenStart>startOffset){endOffset=getOffsetExcludeWS.call(this);}else{endOffset=this.scanner.tokenStart;}return{type:'Raw',loc:this.getLocation(startOffset,endOffset),value:this.scanner.source.substring(startOffset,endOffset)};},generate:function generate(node){this.chunk(node.value);},mode:{"default":balanceEnd,leftCurlyBracket:leftCurlyBracket,leftCurlyBracketOrSemicolon:leftCurlyBracketOrSemicolon,exclamationMarkOrSemicolon:exclamationMarkOrSemicolon,semicolonIncluded:semicolonIncluded}};var TYPE$w=tokenizer$3.TYPE;var rawMode$5=Raw.mode;var ATKEYWORD$2=TYPE$w.AtKeyword;var SEMICOLON$4=TYPE$w.Semicolon;var LEFTCURLYBRACKET$3=TYPE$w.LeftCurlyBracket;var RIGHTCURLYBRACKET$1=TYPE$w.RightCurlyBracket;function consumeRaw$5(startToken){return this.Raw(startToken,rawMode$5.leftCurlyBracketOrSemicolon,true);}function isDeclarationBlockAtrule(){for(var offset=1,type;type=this.scanner.lookupType(offset);offset++){if(type===RIGHTCURLYBRACKET$1){return true;}if(type===LEFTCURLYBRACKET$3||type===ATKEYWORD$2){return false;}}return false;}var Atrule={name:'Atrule',structure:{name:String,prelude:['AtrulePrelude','Raw',null],block:['Block',null]},parse:function parse(){var start=this.scanner.tokenStart;var name;var nameLowerCase;var prelude=null;var block=null;this.eat(ATKEYWORD$2);name=this.scanner.substrToCursor(start+1);nameLowerCase=name.toLowerCase();this.scanner.skipSC();// parse prelude
1564if(this.scanner.eof===false&&this.scanner.tokenType!==LEFTCURLYBRACKET$3&&this.scanner.tokenType!==SEMICOLON$4){if(this.parseAtrulePrelude){prelude=this.parseWithFallback(this.AtrulePrelude.bind(this,name),consumeRaw$5);// turn empty AtrulePrelude into null
1565if(prelude.type==='AtrulePrelude'&&prelude.children.head===null){prelude=null;}}else{prelude=consumeRaw$5.call(this,this.scanner.tokenIndex);}this.scanner.skipSC();}switch(this.scanner.tokenType){case SEMICOLON$4:this.scanner.next();break;case LEFTCURLYBRACKET$3:if(this.atrule.hasOwnProperty(nameLowerCase)&&typeof this.atrule[nameLowerCase].block==='function'){block=this.atrule[nameLowerCase].block.call(this);}else{// TODO: should consume block content as Raw?
1566block=this.Block(isDeclarationBlockAtrule.call(this));}break;}return{type:'Atrule',loc:this.getLocation(start,this.scanner.tokenStart),name:name,prelude:prelude,block:block};},generate:function generate(node){this.chunk('@');this.chunk(node.name);if(node.prelude!==null){this.chunk(' ');this.node(node.prelude);}if(node.block){this.node(node.block);}else{this.chunk(';');}},walkContext:'atrule'};var TYPE$v=tokenizer$3.TYPE;var SEMICOLON$3=TYPE$v.Semicolon;var LEFTCURLYBRACKET$2=TYPE$v.LeftCurlyBracket;var AtrulePrelude={name:'AtrulePrelude',structure:{children:[[]]},parse:function parse(name){var children=null;if(name!==null){name=name.toLowerCase();}this.scanner.skipSC();if(this.atrule.hasOwnProperty(name)&&typeof this.atrule[name].prelude==='function'){// custom consumer
1567children=this.atrule[name].prelude.call(this);}else{// default consumer
1568children=this.readSequence(this.scope.AtrulePrelude);}this.scanner.skipSC();if(this.scanner.eof!==true&&this.scanner.tokenType!==LEFTCURLYBRACKET$2&&this.scanner.tokenType!==SEMICOLON$3){this.error('Semicolon or block is expected');}if(children===null){children=this.createList();}return{type:'AtrulePrelude',loc:this.getLocationFromList(children),children:children};},generate:function generate(node){this.children(node);},walkContext:'atrulePrelude'};var TYPE$u=tokenizer$3.TYPE;var IDENT$e=TYPE$u.Ident;var STRING$3=TYPE$u.String;var COLON$6=TYPE$u.Colon;var LEFTSQUAREBRACKET$3=TYPE$u.LeftSquareBracket;var RIGHTSQUAREBRACKET$1=TYPE$u.RightSquareBracket;var DOLLARSIGN$1=0x0024;// U+0024 DOLLAR SIGN ($)
1569var ASTERISK$5=0x002A;// U+002A ASTERISK (*)
1570var EQUALSSIGN=0x003D;// U+003D EQUALS SIGN (=)
1571var CIRCUMFLEXACCENT=0x005E;// U+005E (^)
1572var VERTICALLINE$2=0x007C;// U+007C VERTICAL LINE (|)
1573var TILDE$2=0x007E;// U+007E TILDE (~)
1574function getAttributeName(){if(this.scanner.eof){this.error('Unexpected end of input');}var start=this.scanner.tokenStart;var expectIdent=false;var checkColon=true;if(this.scanner.isDelim(ASTERISK$5)){expectIdent=true;checkColon=false;this.scanner.next();}else if(!this.scanner.isDelim(VERTICALLINE$2)){this.eat(IDENT$e);}if(this.scanner.isDelim(VERTICALLINE$2)){if(this.scanner.source.charCodeAt(this.scanner.tokenStart+1)!==EQUALSSIGN){this.scanner.next();this.eat(IDENT$e);}else if(expectIdent){this.error('Identifier is expected',this.scanner.tokenEnd);}}else if(expectIdent){this.error('Vertical line is expected');}if(checkColon&&this.scanner.tokenType===COLON$6){this.scanner.next();this.eat(IDENT$e);}return{type:'Identifier',loc:this.getLocation(start,this.scanner.tokenStart),name:this.scanner.substrToCursor(start)};}function getOperator(){var start=this.scanner.tokenStart;var code=this.scanner.source.charCodeAt(start);if(code!==EQUALSSIGN&&// =
1575code!==TILDE$2&&// ~=
1576code!==CIRCUMFLEXACCENT&&// ^=
1577code!==DOLLARSIGN$1&&// $=
1578code!==ASTERISK$5&&// *=
1579code!==VERTICALLINE$2// |=
1580){this.error('Attribute selector (=, ~=, ^=, $=, *=, |=) is expected');}this.scanner.next();if(code!==EQUALSSIGN){if(!this.scanner.isDelim(EQUALSSIGN)){this.error('Equal sign is expected');}this.scanner.next();}return this.scanner.substrToCursor(start);}// '[' <wq-name> ']'
1581// '[' <wq-name> <attr-matcher> [ <string-token> | <ident-token> ] <attr-modifier>? ']'
1582var AttributeSelector={name:'AttributeSelector',structure:{name:'Identifier',matcher:[String,null],value:['String','Identifier',null],flags:[String,null]},parse:function parse(){var start=this.scanner.tokenStart;var name;var matcher=null;var value=null;var flags=null;this.eat(LEFTSQUAREBRACKET$3);this.scanner.skipSC();name=getAttributeName.call(this);this.scanner.skipSC();if(this.scanner.tokenType!==RIGHTSQUAREBRACKET$1){// avoid case `[name i]`
1583if(this.scanner.tokenType!==IDENT$e){matcher=getOperator.call(this);this.scanner.skipSC();value=this.scanner.tokenType===STRING$3?this.String():this.Identifier();this.scanner.skipSC();}// attribute flags
1584if(this.scanner.tokenType===IDENT$e){flags=this.scanner.getTokenValue();this.scanner.next();this.scanner.skipSC();}}this.eat(RIGHTSQUAREBRACKET$1);return{type:'AttributeSelector',loc:this.getLocation(start,this.scanner.tokenStart),name:name,matcher:matcher,value:value,flags:flags};},generate:function generate(node){var flagsPrefix=' ';this.chunk('[');this.node(node.name);if(node.matcher!==null){this.chunk(node.matcher);if(node.value!==null){this.node(node.value);// space between string and flags is not required
1585if(node.value.type==='String'){flagsPrefix='';}}}if(node.flags!==null){this.chunk(flagsPrefix);this.chunk(node.flags);}this.chunk(']');}};var TYPE$t=tokenizer$3.TYPE;var rawMode$4=Raw.mode;var WHITESPACE$7=TYPE$t.WhiteSpace;var COMMENT$5=TYPE$t.Comment;var SEMICOLON$2=TYPE$t.Semicolon;var ATKEYWORD$1=TYPE$t.AtKeyword;var LEFTCURLYBRACKET$1=TYPE$t.LeftCurlyBracket;var RIGHTCURLYBRACKET=TYPE$t.RightCurlyBracket;function consumeRaw$4(startToken){return this.Raw(startToken,null,true);}function consumeRule(){return this.parseWithFallback(this.Rule,consumeRaw$4);}function consumeRawDeclaration(startToken){return this.Raw(startToken,rawMode$4.semicolonIncluded,true);}function consumeDeclaration(){if(this.scanner.tokenType===SEMICOLON$2){return consumeRawDeclaration.call(this,this.scanner.tokenIndex);}var node=this.parseWithFallback(this.Declaration,consumeRawDeclaration);if(this.scanner.tokenType===SEMICOLON$2){this.scanner.next();}return node;}var Block={name:'Block',structure:{children:[['Atrule','Rule','Declaration']]},parse:function parse(isDeclaration){var consumer=isDeclaration?consumeDeclaration:consumeRule;var start=this.scanner.tokenStart;var children=this.createList();this.eat(LEFTCURLYBRACKET$1);scan:while(!this.scanner.eof){switch(this.scanner.tokenType){case RIGHTCURLYBRACKET:break scan;case WHITESPACE$7:case COMMENT$5:this.scanner.next();break;case ATKEYWORD$1:children.push(this.parseWithFallback(this.Atrule,consumeRaw$4));break;default:children.push(consumer.call(this));}}if(!this.scanner.eof){this.eat(RIGHTCURLYBRACKET);}return{type:'Block',loc:this.getLocation(start,this.scanner.tokenStart),children:children};},generate:function generate(node){this.chunk('{');this.children(node,function(prev){if(prev.type==='Declaration'){this.chunk(';');}});this.chunk('}');},walkContext:'block'};var TYPE$s=tokenizer$3.TYPE;var LEFTSQUAREBRACKET$2=TYPE$s.LeftSquareBracket;var RIGHTSQUAREBRACKET=TYPE$s.RightSquareBracket;var Brackets={name:'Brackets',structure:{children:[[]]},parse:function parse(readSequence,recognizer){var start=this.scanner.tokenStart;var children=null;this.eat(LEFTSQUAREBRACKET$2);children=readSequence.call(this,recognizer);if(!this.scanner.eof){this.eat(RIGHTSQUAREBRACKET);}return{type:'Brackets',loc:this.getLocation(start,this.scanner.tokenStart),children:children};},generate:function generate(node){this.chunk('[');this.children(node);this.chunk(']');}};var CDC$1=tokenizer$3.TYPE.CDC;var CDC_1={name:'CDC',structure:[],parse:function parse(){var start=this.scanner.tokenStart;this.eat(CDC$1);// -->
1586return{type:'CDC',loc:this.getLocation(start,this.scanner.tokenStart)};},generate:function generate(){this.chunk('-->');}};var CDO$1=tokenizer$3.TYPE.CDO;var CDO_1={name:'CDO',structure:[],parse:function parse(){var start=this.scanner.tokenStart;this.eat(CDO$1);// <!--
1587return{type:'CDO',loc:this.getLocation(start,this.scanner.tokenStart)};},generate:function generate(){this.chunk('<!--');}};var TYPE$r=tokenizer$3.TYPE;var IDENT$d=TYPE$r.Ident;var FULLSTOP$2=0x002E;// U+002E FULL STOP (.)
1588// '.' ident
1589var ClassSelector={name:'ClassSelector',structure:{name:String},parse:function parse(){if(!this.scanner.isDelim(FULLSTOP$2)){this.error('Full stop is expected');}this.scanner.next();return{type:'ClassSelector',loc:this.getLocation(this.scanner.tokenStart-1,this.scanner.tokenEnd),name:this.consume(IDENT$d)};},generate:function generate(node){this.chunk('.');this.chunk(node.name);}};var TYPE$q=tokenizer$3.TYPE;var IDENT$c=TYPE$q.Ident;var PLUSSIGN$4=0x002B;// U+002B PLUS SIGN (+)
1590var SOLIDUS$5=0x002F;// U+002F SOLIDUS (/)
1591var GREATERTHANSIGN$1=0x003E;// U+003E GREATER-THAN SIGN (>)
1592var TILDE$1=0x007E;// U+007E TILDE (~)
1593// + | > | ~ | /deep/
1594var Combinator={name:'Combinator',structure:{name:String},parse:function parse(){var start=this.scanner.tokenStart;var code=this.scanner.source.charCodeAt(this.scanner.tokenStart);switch(code){case GREATERTHANSIGN$1:case PLUSSIGN$4:case TILDE$1:this.scanner.next();break;case SOLIDUS$5:this.scanner.next();if(this.scanner.tokenType!==IDENT$c||this.scanner.lookupValue(0,'deep')===false){this.error('Identifier `deep` is expected');}this.scanner.next();if(!this.scanner.isDelim(SOLIDUS$5)){this.error('Solidus is expected');}this.scanner.next();break;default:this.error('Combinator is expected');}return{type:'Combinator',loc:this.getLocation(start,this.scanner.tokenStart),name:this.scanner.substrToCursor(start)};},generate:function generate(node){this.chunk(node.name);}};var TYPE$p=tokenizer$3.TYPE;var COMMENT$4=TYPE$p.Comment;var ASTERISK$4=0x002A;// U+002A ASTERISK (*)
1595var SOLIDUS$4=0x002F;// U+002F SOLIDUS (/)
1596// '/*' .* '*/'
1597var Comment={name:'Comment',structure:{value:String},parse:function parse(){var start=this.scanner.tokenStart;var end=this.scanner.tokenEnd;this.eat(COMMENT$4);if(end-start+2>=2&&this.scanner.source.charCodeAt(end-2)===ASTERISK$4&&this.scanner.source.charCodeAt(end-1)===SOLIDUS$4){end-=2;}return{type:'Comment',loc:this.getLocation(start,this.scanner.tokenStart),value:this.scanner.source.substring(start+2,end)};},generate:function generate(node){this.chunk('/*');this.chunk(node.value);this.chunk('*/');}};var isCustomProperty=names$2.isCustomProperty;var TYPE$o=tokenizer$3.TYPE;var rawMode$3=Raw.mode;var IDENT$b=TYPE$o.Ident;var HASH$4=TYPE$o.Hash;var COLON$5=TYPE$o.Colon;var SEMICOLON$1=TYPE$o.Semicolon;var DELIM$4=TYPE$o.Delim;var WHITESPACE$6=TYPE$o.WhiteSpace;var EXCLAMATIONMARK$1=0x0021;// U+0021 EXCLAMATION MARK (!)
1598var NUMBERSIGN$2=0x0023;// U+0023 NUMBER SIGN (#)
1599var DOLLARSIGN=0x0024;// U+0024 DOLLAR SIGN ($)
1600var AMPERSAND=0x0026;// U+0026 ANPERSAND (&)
1601var ASTERISK$3=0x002A;// U+002A ASTERISK (*)
1602var PLUSSIGN$3=0x002B;// U+002B PLUS SIGN (+)
1603var SOLIDUS$3=0x002F;// U+002F SOLIDUS (/)
1604function consumeValueRaw(startToken){return this.Raw(startToken,rawMode$3.exclamationMarkOrSemicolon,true);}function consumeCustomPropertyRaw(startToken){return this.Raw(startToken,rawMode$3.exclamationMarkOrSemicolon,false);}function consumeValue(){var startValueToken=this.scanner.tokenIndex;var value=this.Value();if(value.type!=='Raw'&&this.scanner.eof===false&&this.scanner.tokenType!==SEMICOLON$1&&this.scanner.isDelim(EXCLAMATIONMARK$1)===false&&this.scanner.isBalanceEdge(startValueToken)===false){this.error();}return value;}var Declaration={name:'Declaration',structure:{important:[Boolean,String],property:String,value:['Value','Raw']},parse:function parse(){var start=this.scanner.tokenStart;var startToken=this.scanner.tokenIndex;var property=readProperty.call(this);var customProperty=isCustomProperty(property);var parseValue=customProperty?this.parseCustomProperty:this.parseValue;var consumeRaw=customProperty?consumeCustomPropertyRaw:consumeValueRaw;var important=false;var value;this.scanner.skipSC();this.eat(COLON$5);var valueStart=this.scanner.tokenIndex;if(!customProperty){this.scanner.skipSC();}if(parseValue){value=this.parseWithFallback(consumeValue,consumeRaw);}else{value=consumeRaw.call(this,this.scanner.tokenIndex);}if(customProperty&&value.type==='Value'&&value.children.isEmpty()){for(var _offset=valueStart-this.scanner.tokenIndex;_offset<=0;_offset++){if(this.scanner.lookupType(_offset)===WHITESPACE$6){value.children.appendData({type:'WhiteSpace',loc:null,value:' '});break;}}}if(this.scanner.isDelim(EXCLAMATIONMARK$1)){important=getImportant.call(this);this.scanner.skipSC();}// Do not include semicolon to range per spec
1605// https://drafts.csswg.org/css-syntax/#declaration-diagram
1606if(this.scanner.eof===false&&this.scanner.tokenType!==SEMICOLON$1&&this.scanner.isBalanceEdge(startToken)===false){this.error();}return{type:'Declaration',loc:this.getLocation(start,this.scanner.tokenStart),important:important,property:property,value:value};},generate:function generate(node){this.chunk(node.property);this.chunk(':');this.node(node.value);if(node.important){this.chunk(node.important===true?'!important':'!'+node.important);}},walkContext:'declaration'};function readProperty(){var start=this.scanner.tokenStart;// hacks
1607if(this.scanner.tokenType===DELIM$4){switch(this.scanner.source.charCodeAt(this.scanner.tokenStart)){case ASTERISK$3:case DOLLARSIGN:case PLUSSIGN$3:case NUMBERSIGN$2:case AMPERSAND:this.scanner.next();break;// TODO: not sure we should support this hack
1608case SOLIDUS$3:this.scanner.next();if(this.scanner.isDelim(SOLIDUS$3)){this.scanner.next();}break;}}if(this.scanner.tokenType===HASH$4){this.eat(HASH$4);}else{this.eat(IDENT$b);}return this.scanner.substrToCursor(start);}// ! ws* important
1609function getImportant(){this.eat(DELIM$4);this.scanner.skipSC();var important=this.consume(IDENT$b);// store original value in case it differ from `important`
1610// for better original source restoring and hacks like `!ie` support
1611return important==='important'?true:important;}var TYPE$n=tokenizer$3.TYPE;var rawMode$2=Raw.mode;var WHITESPACE$5=TYPE$n.WhiteSpace;var COMMENT$3=TYPE$n.Comment;var SEMICOLON=TYPE$n.Semicolon;function consumeRaw$3(startToken){return this.Raw(startToken,rawMode$2.semicolonIncluded,true);}var DeclarationList={name:'DeclarationList',structure:{children:[['Declaration']]},parse:function parse(){var children=this.createList();while(!this.scanner.eof){switch(this.scanner.tokenType){case WHITESPACE$5:case COMMENT$3:case SEMICOLON:this.scanner.next();break;default:children.push(this.parseWithFallback(this.Declaration,consumeRaw$3));}}return{type:'DeclarationList',loc:this.getLocationFromList(children),children:children};},generate:function generate(node){this.children(node,function(prev){if(prev.type==='Declaration'){this.chunk(';');}});}};var consumeNumber$2=utils$2.consumeNumber;var TYPE$m=tokenizer$3.TYPE;var DIMENSION$4=TYPE$m.Dimension;var Dimension={name:'Dimension',structure:{value:String,unit:String},parse:function parse(){var start=this.scanner.tokenStart;var numberEnd=consumeNumber$2(this.scanner.source,start);this.eat(DIMENSION$4);return{type:'Dimension',loc:this.getLocation(start,this.scanner.tokenStart),value:this.scanner.source.substring(start,numberEnd),unit:this.scanner.source.substring(numberEnd,this.scanner.tokenStart)};},generate:function generate(node){this.chunk(node.value);this.chunk(node.unit);}};var TYPE$l=tokenizer$3.TYPE;var RIGHTPARENTHESIS$5=TYPE$l.RightParenthesis;// <function-token> <sequence> )
1612var _Function={name:'Function',structure:{name:String,children:[[]]},parse:function parse(readSequence,recognizer){var start=this.scanner.tokenStart;var name=this.consumeFunctionName();var nameLowerCase=name.toLowerCase();var children;children=recognizer.hasOwnProperty(nameLowerCase)?recognizer[nameLowerCase].call(this,recognizer):readSequence.call(this,recognizer);if(!this.scanner.eof){this.eat(RIGHTPARENTHESIS$5);}return{type:'Function',loc:this.getLocation(start,this.scanner.tokenStart),name:name,children:children};},generate:function generate(node){this.chunk(node.name);this.chunk('(');this.children(node);this.chunk(')');},walkContext:'function'};var TYPE$k=tokenizer$3.TYPE;var HASH$3=TYPE$k.Hash;// '#' ident
1613var Hash={name:'Hash',structure:{value:String},parse:function parse(){var start=this.scanner.tokenStart;this.eat(HASH$3);return{type:'Hash',loc:this.getLocation(start,this.scanner.tokenStart),value:this.scanner.substrToCursor(start+1)};},generate:function generate(node){this.chunk('#');this.chunk(node.value);}};var TYPE$j=tokenizer$3.TYPE;var IDENT$a=TYPE$j.Ident;var Identifier={name:'Identifier',structure:{name:String},parse:function parse(){return{type:'Identifier',loc:this.getLocation(this.scanner.tokenStart,this.scanner.tokenEnd),name:this.consume(IDENT$a)};},generate:function generate(node){this.chunk(node.name);}};var TYPE$i=tokenizer$3.TYPE;var HASH$2=TYPE$i.Hash;// <hash-token>
1614var IdSelector={name:'IdSelector',structure:{name:String},parse:function parse(){var start=this.scanner.tokenStart;// TODO: check value is an ident
1615this.eat(HASH$2);return{type:'IdSelector',loc:this.getLocation(start,this.scanner.tokenStart),name:this.scanner.substrToCursor(start+1)};},generate:function generate(node){this.chunk('#');this.chunk(node.name);}};var TYPE$h=tokenizer$3.TYPE;var IDENT$9=TYPE$h.Ident;var NUMBER$5=TYPE$h.Number;var DIMENSION$3=TYPE$h.Dimension;var LEFTPARENTHESIS$5=TYPE$h.LeftParenthesis;var RIGHTPARENTHESIS$4=TYPE$h.RightParenthesis;var COLON$4=TYPE$h.Colon;var DELIM$3=TYPE$h.Delim;var MediaFeature={name:'MediaFeature',structure:{name:String,value:['Identifier','Number','Dimension','Ratio',null]},parse:function parse(){var start=this.scanner.tokenStart;var name;var value=null;this.eat(LEFTPARENTHESIS$5);this.scanner.skipSC();name=this.consume(IDENT$9);this.scanner.skipSC();if(this.scanner.tokenType!==RIGHTPARENTHESIS$4){this.eat(COLON$4);this.scanner.skipSC();switch(this.scanner.tokenType){case NUMBER$5:if(this.lookupNonWSType(1)===DELIM$3){value=this.Ratio();}else{value=this.Number();}break;case DIMENSION$3:value=this.Dimension();break;case IDENT$9:value=this.Identifier();break;default:this.error('Number, dimension, ratio or identifier is expected');}this.scanner.skipSC();}this.eat(RIGHTPARENTHESIS$4);return{type:'MediaFeature',loc:this.getLocation(start,this.scanner.tokenStart),name:name,value:value};},generate:function generate(node){this.chunk('(');this.chunk(node.name);if(node.value!==null){this.chunk(':');this.node(node.value);}this.chunk(')');}};var TYPE$g=tokenizer$3.TYPE;var WHITESPACE$4=TYPE$g.WhiteSpace;var COMMENT$2=TYPE$g.Comment;var IDENT$8=TYPE$g.Ident;var LEFTPARENTHESIS$4=TYPE$g.LeftParenthesis;var MediaQuery={name:'MediaQuery',structure:{children:[['Identifier','MediaFeature','WhiteSpace']]},parse:function parse(){this.scanner.skipSC();var children=this.createList();var child=null;var space=null;scan:while(!this.scanner.eof){switch(this.scanner.tokenType){case COMMENT$2:this.scanner.next();continue;case WHITESPACE$4:space=this.WhiteSpace();continue;case IDENT$8:child=this.Identifier();break;case LEFTPARENTHESIS$4:child=this.MediaFeature();break;default:break scan;}if(space!==null){children.push(space);space=null;}children.push(child);}if(child===null){this.error('Identifier or parenthesis is expected');}return{type:'MediaQuery',loc:this.getLocationFromList(children),children:children};},generate:function generate(node){this.children(node);}};var COMMA$3=tokenizer$3.TYPE.Comma;var MediaQueryList={name:'MediaQueryList',structure:{children:[['MediaQuery']]},parse:function parse(relative){var children=this.createList();this.scanner.skipSC();while(!this.scanner.eof){children.push(this.MediaQuery(relative));if(this.scanner.tokenType!==COMMA$3){break;}this.scanner.next();}return{type:'MediaQueryList',loc:this.getLocationFromList(children),children:children};},generate:function generate(node){this.children(node,function(){this.chunk(',');});}};var Nth={name:'Nth',structure:{nth:['AnPlusB','Identifier'],selector:['SelectorList',null]},parse:function parse(allowOfClause){this.scanner.skipSC();var start=this.scanner.tokenStart;var end=start;var selector=null;var query;if(this.scanner.lookupValue(0,'odd')||this.scanner.lookupValue(0,'even')){query=this.Identifier();}else{query=this.AnPlusB();}this.scanner.skipSC();if(allowOfClause&&this.scanner.lookupValue(0,'of')){this.scanner.next();selector=this.SelectorList();if(this.needPositions){end=this.getLastListNode(selector.children).loc.end.offset;}}else{if(this.needPositions){end=query.loc.end.offset;}}return{type:'Nth',loc:this.getLocation(start,end),nth:query,selector:selector};},generate:function generate(node){this.node(node.nth);if(node.selector!==null){this.chunk(' of ');this.node(node.selector);}}};var NUMBER$4=tokenizer$3.TYPE.Number;var _Number={name:'Number',structure:{value:String},parse:function parse(){return{type:'Number',loc:this.getLocation(this.scanner.tokenStart,this.scanner.tokenEnd),value:this.consume(NUMBER$4)};},generate:function generate(node){this.chunk(node.value);}};// '/' | '*' | ',' | ':' | '+' | '-'
1616var Operator={name:'Operator',structure:{value:String},parse:function parse(){var start=this.scanner.tokenStart;this.scanner.next();return{type:'Operator',loc:this.getLocation(start,this.scanner.tokenStart),value:this.scanner.substrToCursor(start)};},generate:function generate(node){this.chunk(node.value);}};var TYPE$f=tokenizer$3.TYPE;var LEFTPARENTHESIS$3=TYPE$f.LeftParenthesis;var RIGHTPARENTHESIS$3=TYPE$f.RightParenthesis;var Parentheses={name:'Parentheses',structure:{children:[[]]},parse:function parse(readSequence,recognizer){var start=this.scanner.tokenStart;var children=null;this.eat(LEFTPARENTHESIS$3);children=readSequence.call(this,recognizer);if(!this.scanner.eof){this.eat(RIGHTPARENTHESIS$3);}return{type:'Parentheses',loc:this.getLocation(start,this.scanner.tokenStart),children:children};},generate:function generate(node){this.chunk('(');this.children(node);this.chunk(')');}};var consumeNumber$1=utils$2.consumeNumber;var TYPE$e=tokenizer$3.TYPE;var PERCENTAGE$2=TYPE$e.Percentage;var Percentage={name:'Percentage',structure:{value:String},parse:function parse(){var start=this.scanner.tokenStart;var numberEnd=consumeNumber$1(this.scanner.source,start);this.eat(PERCENTAGE$2);return{type:'Percentage',loc:this.getLocation(start,this.scanner.tokenStart),value:this.scanner.source.substring(start,numberEnd)};},generate:function generate(node){this.chunk(node.value);this.chunk('%');}};var TYPE$d=tokenizer$3.TYPE;var IDENT$7=TYPE$d.Ident;var FUNCTION$5=TYPE$d.Function;var COLON$3=TYPE$d.Colon;var RIGHTPARENTHESIS$2=TYPE$d.RightParenthesis;// : [ <ident> | <function-token> <any-value>? ) ]
1617var PseudoClassSelector={name:'PseudoClassSelector',structure:{name:String,children:[['Raw'],null]},parse:function parse(){var start=this.scanner.tokenStart;var children=null;var name;var nameLowerCase;this.eat(COLON$3);if(this.scanner.tokenType===FUNCTION$5){name=this.consumeFunctionName();nameLowerCase=name.toLowerCase();if(this.pseudo.hasOwnProperty(nameLowerCase)){this.scanner.skipSC();children=this.pseudo[nameLowerCase].call(this);this.scanner.skipSC();}else{children=this.createList();children.push(this.Raw(this.scanner.tokenIndex,null,false));}this.eat(RIGHTPARENTHESIS$2);}else{name=this.consume(IDENT$7);}return{type:'PseudoClassSelector',loc:this.getLocation(start,this.scanner.tokenStart),name:name,children:children};},generate:function generate(node){this.chunk(':');this.chunk(node.name);if(node.children!==null){this.chunk('(');this.children(node);this.chunk(')');}},walkContext:'function'};var TYPE$c=tokenizer$3.TYPE;var IDENT$6=TYPE$c.Ident;var FUNCTION$4=TYPE$c.Function;var COLON$2=TYPE$c.Colon;var RIGHTPARENTHESIS$1=TYPE$c.RightParenthesis;// :: [ <ident> | <function-token> <any-value>? ) ]
1618var PseudoElementSelector={name:'PseudoElementSelector',structure:{name:String,children:[['Raw'],null]},parse:function parse(){var start=this.scanner.tokenStart;var children=null;var name;var nameLowerCase;this.eat(COLON$2);this.eat(COLON$2);if(this.scanner.tokenType===FUNCTION$4){name=this.consumeFunctionName();nameLowerCase=name.toLowerCase();if(this.pseudo.hasOwnProperty(nameLowerCase)){this.scanner.skipSC();children=this.pseudo[nameLowerCase].call(this);this.scanner.skipSC();}else{children=this.createList();children.push(this.Raw(this.scanner.tokenIndex,null,false));}this.eat(RIGHTPARENTHESIS$1);}else{name=this.consume(IDENT$6);}return{type:'PseudoElementSelector',loc:this.getLocation(start,this.scanner.tokenStart),name:name,children:children};},generate:function generate(node){this.chunk('::');this.chunk(node.name);if(node.children!==null){this.chunk('(');this.children(node);this.chunk(')');}},walkContext:'function'};var isDigit=tokenizer$3.isDigit;var TYPE$b=tokenizer$3.TYPE;var NUMBER$3=TYPE$b.Number;var DELIM$2=TYPE$b.Delim;var SOLIDUS$2=0x002F;// U+002F SOLIDUS (/)
1619var FULLSTOP$1=0x002E;// U+002E FULL STOP (.)
1620// Terms of <ratio> should be a positive numbers (not zero or negative)
1621// (see https://drafts.csswg.org/mediaqueries-3/#values)
1622// However, -o-min-device-pixel-ratio takes fractional values as a ratio's term
1623// and this is using by various sites. Therefore we relax checking on parse
1624// to test a term is unsigned number without an exponent part.
1625// Additional checking may be applied on lexer validation.
1626function consumeNumber(){this.scanner.skipWS();var value=this.consume(NUMBER$3);for(var i=0;i<value.length;i++){var code=value.charCodeAt(i);if(!isDigit(code)&&code!==FULLSTOP$1){this.error('Unsigned number is expected',this.scanner.tokenStart-value.length+i);}}if(Number(value)===0){this.error('Zero number is not allowed',this.scanner.tokenStart-value.length);}return value;}// <positive-integer> S* '/' S* <positive-integer>
1627var Ratio={name:'Ratio',structure:{left:String,right:String},parse:function parse(){var start=this.scanner.tokenStart;var left=consumeNumber.call(this);var right;this.scanner.skipWS();if(!this.scanner.isDelim(SOLIDUS$2)){this.error('Solidus is expected');}this.eat(DELIM$2);right=consumeNumber.call(this);return{type:'Ratio',loc:this.getLocation(start,this.scanner.tokenStart),left:left,right:right};},generate:function generate(node){this.chunk(node.left);this.chunk('/');this.chunk(node.right);}};var TYPE$a=tokenizer$3.TYPE;var rawMode$1=Raw.mode;var LEFTCURLYBRACKET=TYPE$a.LeftCurlyBracket;function consumeRaw$2(startToken){return this.Raw(startToken,rawMode$1.leftCurlyBracket,true);}function consumePrelude(){var prelude=this.SelectorList();if(prelude.type!=='Raw'&&this.scanner.eof===false&&this.scanner.tokenType!==LEFTCURLYBRACKET){this.error();}return prelude;}var Rule={name:'Rule',structure:{prelude:['SelectorList','Raw'],block:['Block']},parse:function parse(){var startToken=this.scanner.tokenIndex;var startOffset=this.scanner.tokenStart;var prelude;var block;if(this.parseRulePrelude){prelude=this.parseWithFallback(consumePrelude,consumeRaw$2);}else{prelude=consumeRaw$2.call(this,startToken);}block=this.Block(true);return{type:'Rule',loc:this.getLocation(startOffset,this.scanner.tokenStart),prelude:prelude,block:block};},generate:function generate(node){this.node(node.prelude);this.node(node.block);},walkContext:'rule'};var Selector={name:'Selector',structure:{children:[['TypeSelector','IdSelector','ClassSelector','AttributeSelector','PseudoClassSelector','PseudoElementSelector','Combinator','WhiteSpace']]},parse:function parse(){var children=this.readSequence(this.scope.Selector);// nothing were consumed
1628if(this.getFirstListNode(children)===null){this.error('Selector is expected');}return{type:'Selector',loc:this.getLocationFromList(children),children:children};},generate:function generate(node){this.children(node);}};var TYPE$9=tokenizer$3.TYPE;var COMMA$2=TYPE$9.Comma;var SelectorList={name:'SelectorList',structure:{children:[['Selector','Raw']]},parse:function parse(){var children=this.createList();while(!this.scanner.eof){children.push(this.Selector());if(this.scanner.tokenType===COMMA$2){this.scanner.next();continue;}break;}return{type:'SelectorList',loc:this.getLocationFromList(children),children:children};},generate:function generate(node){this.children(node,function(){this.chunk(',');});},walkContext:'selector'};var STRING$2=tokenizer$3.TYPE.String;var _String={name:'String',structure:{value:String},parse:function parse(){return{type:'String',loc:this.getLocation(this.scanner.tokenStart,this.scanner.tokenEnd),value:this.consume(STRING$2)};},generate:function generate(node){this.chunk(node.value);}};var TYPE$8=tokenizer$3.TYPE;var WHITESPACE$3=TYPE$8.WhiteSpace;var COMMENT$1=TYPE$8.Comment;var ATKEYWORD=TYPE$8.AtKeyword;var CDO=TYPE$8.CDO;var CDC=TYPE$8.CDC;var EXCLAMATIONMARK=0x0021;// U+0021 EXCLAMATION MARK (!)
1629function consumeRaw$1(startToken){return this.Raw(startToken,null,false);}var StyleSheet={name:'StyleSheet',structure:{children:[['Comment','CDO','CDC','Atrule','Rule','Raw']]},parse:function parse(){var start=this.scanner.tokenStart;var children=this.createList();var child;while(!this.scanner.eof){switch(this.scanner.tokenType){case WHITESPACE$3:this.scanner.next();continue;case COMMENT$1:// ignore comments except exclamation comments (i.e. /*! .. */) on top level
1630if(this.scanner.source.charCodeAt(this.scanner.tokenStart+2)!==EXCLAMATIONMARK){this.scanner.next();continue;}child=this.Comment();break;case CDO:// <!--
1631child=this.CDO();break;case CDC:// -->
1632child=this.CDC();break;// CSS Syntax Module Level 3
1633// §2.2 Error handling
1634// At the "top level" of a stylesheet, an <at-keyword-token> starts an at-rule.
1635case ATKEYWORD:child=this.parseWithFallback(this.Atrule,consumeRaw$1);break;// Anything else starts a qualified rule ...
1636default:child=this.parseWithFallback(this.Rule,consumeRaw$1);}children.push(child);}return{type:'StyleSheet',loc:this.getLocation(start,this.scanner.tokenStart),children:children};},generate:function generate(node){this.children(node);},walkContext:'stylesheet'};var TYPE$7=tokenizer$3.TYPE;var IDENT$5=TYPE$7.Ident;var ASTERISK$2=0x002A;// U+002A ASTERISK (*)
1637var VERTICALLINE$1=0x007C;// U+007C VERTICAL LINE (|)
1638function eatIdentifierOrAsterisk(){if(this.scanner.tokenType!==IDENT$5&&this.scanner.isDelim(ASTERISK$2)===false){this.error('Identifier or asterisk is expected');}this.scanner.next();}// ident
1639// ident|ident
1640// ident|*
1641// *
1642// *|ident
1643// *|*
1644// |ident
1645// |*
1646var TypeSelector={name:'TypeSelector',structure:{name:String},parse:function parse(){var start=this.scanner.tokenStart;if(this.scanner.isDelim(VERTICALLINE$1)){this.scanner.next();eatIdentifierOrAsterisk.call(this);}else{eatIdentifierOrAsterisk.call(this);if(this.scanner.isDelim(VERTICALLINE$1)){this.scanner.next();eatIdentifierOrAsterisk.call(this);}}return{type:'TypeSelector',loc:this.getLocation(start,this.scanner.tokenStart),name:this.scanner.substrToCursor(start)};},generate:function generate(node){this.chunk(node.name);}};var isHexDigit=tokenizer$3.isHexDigit;var cmpChar$1=tokenizer$3.cmpChar;var TYPE$6=tokenizer$3.TYPE;var NAME=tokenizer$3.NAME;var IDENT$4=TYPE$6.Ident;var NUMBER$2=TYPE$6.Number;var DIMENSION$2=TYPE$6.Dimension;var PLUSSIGN$2=0x002B;// U+002B PLUS SIGN (+)
1647var HYPHENMINUS$1=0x002D;// U+002D HYPHEN-MINUS (-)
1648var QUESTIONMARK=0x003F;// U+003F QUESTION MARK (?)
1649var U$1=0x0075;// U+0075 LATIN SMALL LETTER U (u)
1650function eatHexSequence(offset,allowDash){for(var pos=this.scanner.tokenStart+offset,len=0;pos<this.scanner.tokenEnd;pos++){var code=this.scanner.source.charCodeAt(pos);if(code===HYPHENMINUS$1&&allowDash&&len!==0){if(eatHexSequence.call(this,offset+len+1,false)===0){this.error();}return-1;}if(!isHexDigit(code)){this.error(allowDash&&len!==0?'HyphenMinus'+(len<6?' or hex digit':'')+' is expected':len<6?'Hex digit is expected':'Unexpected input',pos);}if(++len>6){this.error('Too many hex digits',pos);}}this.scanner.next();return len;}function eatQuestionMarkSequence(max){var count=0;while(this.scanner.isDelim(QUESTIONMARK)){if(++count>max){this.error('Too many question marks');}this.scanner.next();}}function startsWith(code){if(this.scanner.source.charCodeAt(this.scanner.tokenStart)!==code){this.error(NAME[code]+' is expected');}}// https://drafts.csswg.org/css-syntax/#urange
1651// Informally, the <urange> production has three forms:
1652// U+0001
1653// Defines a range consisting of a single code point, in this case the code point "1".
1654// U+0001-00ff
1655// Defines a range of codepoints between the first and the second value, in this case
1656// the range between "1" and "ff" (255 in decimal) inclusive.
1657// U+00??
1658// Defines a range of codepoints where the "?" characters range over all hex digits,
1659// in this case defining the same as the value U+0000-00ff.
1660// In each form, a maximum of 6 digits is allowed for each hexadecimal number (if you treat "?" as a hexadecimal digit).
1661//
1662// <urange> =
1663// u '+' <ident-token> '?'* |
1664// u <dimension-token> '?'* |
1665// u <number-token> '?'* |
1666// u <number-token> <dimension-token> |
1667// u <number-token> <number-token> |
1668// u '+' '?'+
1669function scanUnicodeRange(){var hexLength=0;// u '+' <ident-token> '?'*
1670// u '+' '?'+
1671if(this.scanner.isDelim(PLUSSIGN$2)){this.scanner.next();if(this.scanner.tokenType===IDENT$4){hexLength=eatHexSequence.call(this,0,true);if(hexLength>0){eatQuestionMarkSequence.call(this,6-hexLength);}return;}if(this.scanner.isDelim(QUESTIONMARK)){this.scanner.next();eatQuestionMarkSequence.call(this,5);return;}this.error('Hex digit or question mark is expected');return;}// u <number-token> '?'*
1672// u <number-token> <dimension-token>
1673// u <number-token> <number-token>
1674if(this.scanner.tokenType===NUMBER$2){startsWith.call(this,PLUSSIGN$2);hexLength=eatHexSequence.call(this,1,true);if(this.scanner.isDelim(QUESTIONMARK)){eatQuestionMarkSequence.call(this,6-hexLength);return;}if(this.scanner.tokenType===DIMENSION$2||this.scanner.tokenType===NUMBER$2){startsWith.call(this,HYPHENMINUS$1);eatHexSequence.call(this,1,false);return;}return;}// u <dimension-token> '?'*
1675if(this.scanner.tokenType===DIMENSION$2){startsWith.call(this,PLUSSIGN$2);hexLength=eatHexSequence.call(this,1,true);if(hexLength>0){eatQuestionMarkSequence.call(this,6-hexLength);}return;}this.error();}var UnicodeRange={name:'UnicodeRange',structure:{value:String},parse:function parse(){var start=this.scanner.tokenStart;// U or u
1676if(!cmpChar$1(this.scanner.source,start,U$1)){this.error('U is expected');}if(!cmpChar$1(this.scanner.source,start+1,PLUSSIGN$2)){this.error('Plus sign is expected');}this.scanner.next();scanUnicodeRange.call(this);return{type:'UnicodeRange',loc:this.getLocation(start,this.scanner.tokenStart),value:this.scanner.substrToCursor(start)};},generate:function generate(node){this.chunk(node.value);}};var isWhiteSpace=tokenizer$3.isWhiteSpace;var cmpStr$1=tokenizer$3.cmpStr;var TYPE$5=tokenizer$3.TYPE;var FUNCTION$3=TYPE$5.Function;var URL$3=TYPE$5.Url;var RIGHTPARENTHESIS=TYPE$5.RightParenthesis;// <url-token> | <function-token> <string> )
1677var Url={name:'Url',structure:{value:['String','Raw']},parse:function parse(){var start=this.scanner.tokenStart;var value;switch(this.scanner.tokenType){case URL$3:var rawStart=start+4;var rawEnd=this.scanner.tokenEnd-1;while(rawStart<rawEnd&&isWhiteSpace(this.scanner.source.charCodeAt(rawStart))){rawStart++;}while(rawStart<rawEnd&&isWhiteSpace(this.scanner.source.charCodeAt(rawEnd-1))){rawEnd--;}value={type:'Raw',loc:this.getLocation(rawStart,rawEnd),value:this.scanner.source.substring(rawStart,rawEnd)};this.eat(URL$3);break;case FUNCTION$3:if(!cmpStr$1(this.scanner.source,this.scanner.tokenStart,this.scanner.tokenEnd,'url(')){this.error('Function name must be `url`');}this.eat(FUNCTION$3);this.scanner.skipSC();value=this.String();this.scanner.skipSC();this.eat(RIGHTPARENTHESIS);break;default:this.error('Url or Function is expected');}return{type:'Url',loc:this.getLocation(start,this.scanner.tokenStart),value:value};},generate:function generate(node){this.chunk('url');this.chunk('(');this.node(node.value);this.chunk(')');}};var Value={name:'Value',structure:{children:[[]]},parse:function parse(){var start=this.scanner.tokenStart;var children=this.readSequence(this.scope.Value);return{type:'Value',loc:this.getLocation(start,this.scanner.tokenStart),children:children};},generate:function generate(node){this.children(node);}};var WHITESPACE$2=tokenizer$3.TYPE.WhiteSpace;var SPACE=Object.freeze({type:'WhiteSpace',loc:null,value:' '});var WhiteSpace={name:'WhiteSpace',structure:{value:String},parse:function parse(){this.eat(WHITESPACE$2);return SPACE;// return {
1678// type: 'WhiteSpace',
1679// loc: this.getLocation(this.scanner.tokenStart, this.scanner.tokenEnd),
1680// value: this.consume(WHITESPACE)
1681// };
1682},generate:function generate(node){this.chunk(node.value);}};var node={AnPlusB:AnPlusB,Atrule:Atrule,AtrulePrelude:AtrulePrelude,AttributeSelector:AttributeSelector,Block:Block,Brackets:Brackets,CDC:CDC_1,CDO:CDO_1,ClassSelector:ClassSelector,Combinator:Combinator,Comment:Comment,Declaration:Declaration,DeclarationList:DeclarationList,Dimension:Dimension,Function:_Function,Hash:Hash,Identifier:Identifier,IdSelector:IdSelector,MediaFeature:MediaFeature,MediaQuery:MediaQuery,MediaQueryList:MediaQueryList,Nth:Nth,Number:_Number,Operator:Operator,Parentheses:Parentheses,Percentage:Percentage,PseudoClassSelector:PseudoClassSelector,PseudoElementSelector:PseudoElementSelector,Ratio:Ratio,Raw:Raw,Rule:Rule,Selector:Selector,SelectorList:SelectorList,String:_String,StyleSheet:StyleSheet,TypeSelector:TypeSelector,UnicodeRange:UnicodeRange,Url:Url,Value:Value,WhiteSpace:WhiteSpace};var data=data$1;var lexer={generic:true,types:data.types,atrules:data.atrules,properties:data.properties,node:node};var cmpChar=tokenizer$3.cmpChar;var cmpStr=tokenizer$3.cmpStr;var TYPE$4=tokenizer$3.TYPE;var IDENT$3=TYPE$4.Ident;var STRING$1=TYPE$4.String;var NUMBER$1=TYPE$4.Number;var FUNCTION$2=TYPE$4.Function;var URL$2=TYPE$4.Url;var HASH$1=TYPE$4.Hash;var DIMENSION$1=TYPE$4.Dimension;var PERCENTAGE$1=TYPE$4.Percentage;var LEFTPARENTHESIS$2=TYPE$4.LeftParenthesis;var LEFTSQUAREBRACKET$1=TYPE$4.LeftSquareBracket;var COMMA$1=TYPE$4.Comma;var DELIM$1=TYPE$4.Delim;var NUMBERSIGN$1=0x0023;// U+0023 NUMBER SIGN (#)
1683var ASTERISK$1=0x002A;// U+002A ASTERISK (*)
1684var PLUSSIGN$1=0x002B;// U+002B PLUS SIGN (+)
1685var HYPHENMINUS=0x002D;// U+002D HYPHEN-MINUS (-)
1686var SOLIDUS$1=0x002F;// U+002F SOLIDUS (/)
1687var U=0x0075;// U+0075 LATIN SMALL LETTER U (u)
1688var _default=function defaultRecognizer(context){switch(this.scanner.tokenType){case HASH$1:return this.Hash();case COMMA$1:context.space=null;context.ignoreWSAfter=true;return this.Operator();case LEFTPARENTHESIS$2:return this.Parentheses(this.readSequence,context.recognizer);case LEFTSQUAREBRACKET$1:return this.Brackets(this.readSequence,context.recognizer);case STRING$1:return this.String();case DIMENSION$1:return this.Dimension();case PERCENTAGE$1:return this.Percentage();case NUMBER$1:return this.Number();case FUNCTION$2:return cmpStr(this.scanner.source,this.scanner.tokenStart,this.scanner.tokenEnd,'url(')?this.Url():this.Function(this.readSequence,context.recognizer);case URL$2:return this.Url();case IDENT$3:// check for unicode range, it should start with u+ or U+
1689if(cmpChar(this.scanner.source,this.scanner.tokenStart,U)&&cmpChar(this.scanner.source,this.scanner.tokenStart+1,PLUSSIGN$1)){return this.UnicodeRange();}else{return this.Identifier();}case DELIM$1:var code=this.scanner.source.charCodeAt(this.scanner.tokenStart);if(code===SOLIDUS$1||code===ASTERISK$1||code===PLUSSIGN$1||code===HYPHENMINUS){return this.Operator();// TODO: replace with Delim
1690}// TODO: produce a node with Delim node type
1691if(code===NUMBERSIGN$1){this.error('Hex or identifier is expected',this.scanner.tokenStart+1);}break;}};var atrulePrelude={getNode:_default};var TYPE$3=tokenizer$3.TYPE;var DELIM=TYPE$3.Delim;var IDENT$2=TYPE$3.Ident;var DIMENSION=TYPE$3.Dimension;var PERCENTAGE=TYPE$3.Percentage;var NUMBER=TYPE$3.Number;var HASH=TYPE$3.Hash;var COLON$1=TYPE$3.Colon;var LEFTSQUAREBRACKET=TYPE$3.LeftSquareBracket;var NUMBERSIGN=0x0023;// U+0023 NUMBER SIGN (#)
1692var ASTERISK=0x002A;// U+002A ASTERISK (*)
1693var PLUSSIGN=0x002B;// U+002B PLUS SIGN (+)
1694var SOLIDUS=0x002F;// U+002F SOLIDUS (/)
1695var FULLSTOP=0x002E;// U+002E FULL STOP (.)
1696var GREATERTHANSIGN=0x003E;// U+003E GREATER-THAN SIGN (>)
1697var VERTICALLINE=0x007C;// U+007C VERTICAL LINE (|)
1698var TILDE=0x007E;// U+007E TILDE (~)
1699function getNode(context){switch(this.scanner.tokenType){case LEFTSQUAREBRACKET:return this.AttributeSelector();case HASH:return this.IdSelector();case COLON$1:if(this.scanner.lookupType(1)===COLON$1){return this.PseudoElementSelector();}else{return this.PseudoClassSelector();}case IDENT$2:return this.TypeSelector();case NUMBER:case PERCENTAGE:return this.Percentage();case DIMENSION:// throws when .123ident
1700if(this.scanner.source.charCodeAt(this.scanner.tokenStart)===FULLSTOP){this.error('Identifier is expected',this.scanner.tokenStart+1);}break;case DELIM:var code=this.scanner.source.charCodeAt(this.scanner.tokenStart);switch(code){case PLUSSIGN:case GREATERTHANSIGN:case TILDE:context.space=null;context.ignoreWSAfter=true;return this.Combinator();case SOLIDUS:// /deep/
1701return this.Combinator();case FULLSTOP:return this.ClassSelector();case ASTERISK:case VERTICALLINE:return this.TypeSelector();case NUMBERSIGN:return this.IdSelector();}break;}}var selector={getNode:getNode};// legacy IE function
1702// expression( <any-value> )
1703var expression=function expression(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,false));};var TYPE$2=tokenizer$3.TYPE;var rawMode=Raw.mode;var COMMA=TYPE$2.Comma;var WHITESPACE$1=TYPE$2.WhiteSpace;// var( <ident> , <value>? )
1704var _var=function _var(){var children=this.createList();this.scanner.skipSC();// NOTE: Don't check more than a first argument is an ident, rest checks are for lexer
1705children.push(this.Identifier());this.scanner.skipSC();if(this.scanner.tokenType===COMMA){children.push(this.Operator());var startIndex=this.scanner.tokenIndex;var _value3=this.parseCustomProperty?this.Value(null):this.Raw(this.scanner.tokenIndex,rawMode.exclamationMarkOrSemicolon,false);if(_value3.type==='Value'&&_value3.children.isEmpty()){for(var _offset2=startIndex-this.scanner.tokenIndex;_offset2<=0;_offset2++){if(this.scanner.lookupType(_offset2)===WHITESPACE$1){_value3.children.appendData({type:'WhiteSpace',loc:null,value:' '});break;}}}children.push(_value3);}return children;};var value$2={getNode:_default,'expression':expression,'var':_var};var scope={AtrulePrelude:atrulePrelude,Selector:selector,Value:value$2};var fontFace={parse:{prelude:null,block:function block(){return this.Block(true);}}};var TYPE$1=tokenizer$3.TYPE;var STRING=TYPE$1.String;var IDENT$1=TYPE$1.Ident;var URL$1=TYPE$1.Url;var FUNCTION$1=TYPE$1.Function;var LEFTPARENTHESIS$1=TYPE$1.LeftParenthesis;var _import={parse:{prelude:function prelude(){var children=this.createList();this.scanner.skipSC();switch(this.scanner.tokenType){case STRING:children.push(this.String());break;case URL$1:case FUNCTION$1:children.push(this.Url());break;default:this.error('String or url() is expected');}if(this.lookupNonWSType(0)===IDENT$1||this.lookupNonWSType(0)===LEFTPARENTHESIS$1){children.push(this.WhiteSpace());children.push(this.MediaQueryList());}return children;},block:null}};var media={parse:{prelude:function prelude(){return this.createSingleNodeList(this.MediaQueryList());},block:function block(){return this.Block(false);}}};var page={parse:{prelude:function prelude(){return this.createSingleNodeList(this.SelectorList());},block:function block(){return this.Block(true);}}};var TYPE=tokenizer$3.TYPE;var WHITESPACE=TYPE.WhiteSpace;var COMMENT=TYPE.Comment;var IDENT=TYPE.Ident;var FUNCTION=TYPE.Function;var COLON=TYPE.Colon;var LEFTPARENTHESIS=TYPE.LeftParenthesis;function consumeRaw(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,false));}function parentheses(){this.scanner.skipSC();if(this.scanner.tokenType===IDENT&&this.lookupNonWSType(1)===COLON){return this.createSingleNodeList(this.Declaration());}return readSequence.call(this);}function readSequence(){var children=this.createList();var space=null;var child;this.scanner.skipSC();scan:while(!this.scanner.eof){switch(this.scanner.tokenType){case WHITESPACE:space=this.WhiteSpace();continue;case COMMENT:this.scanner.next();continue;case FUNCTION:child=this.Function(consumeRaw,this.scope.AtrulePrelude);break;case IDENT:child=this.Identifier();break;case LEFTPARENTHESIS:child=this.Parentheses(parentheses,this.scope.AtrulePrelude);break;default:break scan;}if(space!==null){children.push(space);space=null;}children.push(child);}return children;}var supports={parse:{prelude:function prelude(){var children=readSequence.call(this);if(this.getFirstListNode(children)===null){this.error('Condition is expected');}return children;},block:function block(){return this.Block(false);}}};var atrule={'font-face':fontFace,'import':_import,'media':media,'page':page,'supports':supports};var dir={parse:function parse(){return this.createSingleNodeList(this.Identifier());}};var has={parse:function parse(){return this.createSingleNodeList(this.SelectorList());}};var lang={parse:function parse(){return this.createSingleNodeList(this.Identifier());}};var selectorList={parse:function selectorList(){return this.createSingleNodeList(this.SelectorList());}};var matches=selectorList;var not=selectorList;var ALLOW_OF_CLAUSE=true;var nthWithOfClause={parse:function nthWithOfClause(){return this.createSingleNodeList(this.Nth(ALLOW_OF_CLAUSE));}};var nthChild=nthWithOfClause;var nthLastChild=nthWithOfClause;var DISALLOW_OF_CLAUSE=false;var nth={parse:function nth(){return this.createSingleNodeList(this.Nth(DISALLOW_OF_CLAUSE));}};var nthLastOfType=nth;var nthOfType=nth;var slotted={parse:function compoundSelector(){return this.createSingleNodeList(this.Selector());}};var pseudo={'dir':dir,'has':has,'lang':lang,'matches':matches,'not':not,'nth-child':nthChild,'nth-last-child':nthLastChild,'nth-last-of-type':nthLastOfType,'nth-of-type':nthOfType,'slotted':slotted};var parser={parseContext:{"default":'StyleSheet',stylesheet:'StyleSheet',atrule:'Atrule',atrulePrelude:function atrulePrelude(options){return this.AtrulePrelude(options.atrule?String(options.atrule):null);},mediaQueryList:'MediaQueryList',mediaQuery:'MediaQuery',rule:'Rule',selectorList:'SelectorList',selector:'Selector',block:function block(){return this.Block(true);},declarationList:'DeclarationList',declaration:'Declaration',value:'Value'},scope:scope,atrule:atrule,pseudo:pseudo,node:node};var walker={node:node};var name="css-tree";var version="1.1.3";var description="A tool set for CSS: fast detailed parser (CSS → AST), walker (AST traversal), generator (AST → CSS) and lexer (validation and matching) based on specs and browser implementations";var author="Roman Dvornov <rdvornov@gmail.com> (https://github.com/lahmatiy)";var license="MIT";var repository="csstree/csstree";var keywords=["css","ast","tokenizer","parser","walker","lexer","generator","utils","syntax","validation"];var main="lib/index.js";var unpkg="dist/csstree.min.js";var jsdelivr="dist/csstree.min.js";var scripts={build:"rollup --config",lint:"eslint data lib scripts test && node scripts/review-syntax-patch --lint && node scripts/update-docs --lint","lint-and-test":"npm run lint && npm test","update:docs":"node scripts/update-docs","review:syntax-patch":"node scripts/review-syntax-patch",test:"mocha --reporter progress",coverage:"nyc npm test",travis:"nyc npm run lint-and-test && npm run coveralls",coveralls:"nyc report --reporter=text-lcov | coveralls",prepublishOnly:"npm run build",hydrogen:"node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --trace_hydrogen_file=code.cfg --print-opt-code bin/parse --stat -o /dev/null"};var dependencies={"mdn-data":"2.0.14","source-map":"^0.6.1"};var devDependencies={"@rollup/plugin-commonjs":"^11.0.2","@rollup/plugin-json":"^4.0.2","@rollup/plugin-node-resolve":"^7.1.1",coveralls:"^3.0.9",eslint:"^6.8.0","json-to-ast":"^2.1.0",mocha:"^6.2.3",nyc:"^14.1.1",rollup:"^1.32.1","rollup-plugin-terser":"^5.3.0"};var engines={node:">=8.0.0"};var files=["data","dist","lib"];var require$$4={name:name,version:version,description:description,author:author,license:license,repository:repository,keywords:keywords,main:main,unpkg:unpkg,jsdelivr:jsdelivr,scripts:scripts,dependencies:dependencies,devDependencies:devDependencies,engines:engines,files:files};function merge(){var dest={};for(var i=0;i<arguments.length;i++){var src=arguments[i];for(var key in src){dest[key]=src[key];}}return dest;}syntax.exports=create$5.create(merge(lexer,parser,walker));syntax.exports.version=require$$4.version;var lib=syntax.exports;var Sheet=/*#__PURE__*/function(){function Sheet(url,hooks){(0,_classCallCheck2["default"])(this,Sheet);if(hooks){this.hooks=hooks;}else{this.hooks={};this.hooks.onUrl=new Hook(this);this.hooks.onAtPage=new Hook(this);this.hooks.onAtMedia=new Hook(this);this.hooks.onRule=new Hook(this);this.hooks.onDeclaration=new Hook(this);this.hooks.onSelector=new Hook(this);this.hooks.onPseudoSelector=new Hook(this);this.hooks.onContent=new Hook(this);this.hooks.onImport=new Hook(this);this.hooks.beforeTreeParse=new Hook(this);this.hooks.beforeTreeWalk=new Hook(this);this.hooks.afterTreeWalk=new Hook(this);}try{this.url=new URL(url,window.location.href);}catch(e){this.url=new URL(window.location.href);}}// parse
1706(0,_createClass2["default"])(Sheet,[{key:"parse",value:function(){var _parse=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee15(text){return _regenerator["default"].wrap(function _callee15$(_context18){while(1){switch(_context18.prev=_context18.next){case 0:this.text=text;_context18.next=3;return this.hooks.beforeTreeParse.trigger(this.text,this);case 3:// send to csstree
1707this.ast=lib.parse(this._text);_context18.next=6;return this.hooks.beforeTreeWalk.trigger(this.ast);case 6:// Replace urls
1708this.replaceUrls(this.ast);// Scope
1709this.id=UUID();// this.addScope(this.ast, this.uuid);
1710// Replace IDs with data-id
1711this.replaceIds(this.ast);this.imported=[];// Trigger Hooks
1712this.urls(this.ast);this.rules(this.ast);this.atrules(this.ast);_context18.next=15;return this.hooks.afterTreeWalk.trigger(this.ast,this);case 15:return _context18.abrupt("return",this.ast);case 16:case"end":return _context18.stop();}}},_callee15,this);}));function parse(_x20){return _parse.apply(this,arguments);}return parse;}()},{key:"insertRule",value:function insertRule(rule){var inserted=this.ast.children.appendData(rule);this.declarations(rule);return inserted;}},{key:"urls",value:function urls(ast){var _this12=this;lib.walk(ast,{visit:"Url",enter:function enter(node,item,list){_this12.hooks.onUrl.trigger(node,item,list);}});}},{key:"atrules",value:function atrules(ast){var _this13=this;lib.walk(ast,{visit:"Atrule",enter:function enter(node,item,list){var basename=lib.keyword(node.name).basename;if(basename==="page"){_this13.hooks.onAtPage.trigger(node,item,list);_this13.declarations(node,item,list);}if(basename==="media"){_this13.hooks.onAtMedia.trigger(node,item,list);_this13.declarations(node,item,list);}if(basename==="import"){_this13.hooks.onImport.trigger(node,item,list);_this13.imports(node,item,list);}}});}},{key:"rules",value:function rules(ast){var _this14=this;lib.walk(ast,{visit:"Rule",enter:function enter(ruleNode,ruleItem,rulelist){_this14.hooks.onRule.trigger(ruleNode,ruleItem,rulelist);_this14.declarations(ruleNode,ruleItem,rulelist);_this14.onSelector(ruleNode,ruleItem,rulelist);}});}},{key:"declarations",value:function declarations(ruleNode,ruleItem,rulelist){var _this15=this;lib.walk(ruleNode,{visit:"Declaration",enter:function enter(declarationNode,dItem,dList){_this15.hooks.onDeclaration.trigger(declarationNode,dItem,dList,{ruleNode:ruleNode,ruleItem:ruleItem,rulelist:rulelist});if(declarationNode.property==="content"){lib.walk(declarationNode,{visit:"Function",enter:function enter(funcNode,fItem,fList){_this15.hooks.onContent.trigger(funcNode,fItem,fList,{declarationNode:declarationNode,dItem:dItem,dList:dList},{ruleNode:ruleNode,ruleItem:ruleItem,rulelist:rulelist});}});}}});}// add pseudo elements to parser
1713},{key:"onSelector",value:function onSelector(ruleNode,ruleItem,rulelist){var _this16=this;lib.walk(ruleNode,{visit:"Selector",enter:function enter(selectNode,selectItem,selectList){_this16.hooks.onSelector.trigger(selectNode,selectItem,selectList,{ruleNode:ruleNode,ruleItem:ruleItem,rulelist:rulelist});if(selectNode.children.forEach(function(node){if(node.type==="PseudoElementSelector"){lib.walk(node,{visit:"PseudoElementSelector",enter:function enter(pseudoNode,pItem,pList){_this16.hooks.onPseudoSelector.trigger(pseudoNode,pItem,pList,{selectNode:selectNode,selectItem:selectItem,selectList:selectList},{ruleNode:ruleNode,ruleItem:ruleItem,rulelist:rulelist});}});}}));}});}},{key:"replaceUrls",value:function replaceUrls(ast){var _this17=this;lib.walk(ast,{visit:"Url",enter:function enter(node,item,list){var content=node.value.value;if(node.value.type==="Raw"&&content.startsWith("data:")||node.value.type==="String"&&(content.startsWith("\"data:")||content.startsWith("'data:")));else{var href=content.replace(/["']/g,"");var url=new URL(href,_this17.url);node.value.value=url.toString();}}});}},{key:"addScope",value:function addScope(ast,id){// Get all selector lists
1714// add an id
1715lib.walk(ast,{visit:"Selector",enter:function enter(node,item,list){var children=node.children;children.prepend(children.createItem({type:"WhiteSpace",value:" "}));children.prepend(children.createItem({type:"IdSelector",name:id,loc:null,children:null}));}});}},{key:"getNamedPageSelectors",value:function getNamedPageSelectors(ast){var namedPageSelectors={};lib.walk(ast,{visit:"Rule",enter:function enter(node,item,list){lib.walk(node,{visit:"Declaration",enter:function enter(declaration,dItem,dList){if(declaration.property==="page"){var _value4=declaration.value.children.first();var _name6=_value4.name;var _selector=lib.generate(node.prelude);namedPageSelectors[_name6]={name:_name6,selector:_selector};// dList.remove(dItem);
1716// Add in page break
1717declaration.property="break-before";_value4.type="Identifier";_value4.name="always";}}});}});return namedPageSelectors;}},{key:"replaceIds",value:function replaceIds(ast){lib.walk(ast,{visit:"Rule",enter:function enter(node,item,list){lib.walk(node,{visit:"IdSelector",enter:function enter(idNode,idItem,idList){var name=idNode.name;idNode.flags=null;idNode.matcher="=";idNode.name={type:"Identifier",loc:null,name:"data-id"};idNode.type="AttributeSelector";idNode.value={type:"String",loc:null,value:"\"".concat(name,"\"")};}});}});}},{key:"imports",value:function imports(node,item,list){var _this18=this;// console.log("import", node, item, list);
1718var queries=[];lib.walk(node,{visit:"MediaQuery",enter:function enter(mqNode,mqItem,mqList){lib.walk(mqNode,{visit:"Identifier",enter:function enter(identNode,identItem,identList){queries.push(identNode.name);}});}});// Just basic media query support for now
1719var shouldNotApply=queries.some(function(query,index){var q=query;if(q==="not"){q=queries[index+1];return!(q==="screen"||q==="speech");}else{return q==="screen"||q==="speech";}});if(shouldNotApply){return;}lib.walk(node,{visit:"String",enter:function enter(urlNode,urlItem,urlList){var href=urlNode.value.replace(/["']/g,"");var url=new URL(href,_this18.url);var value=url.toString();_this18.imported.push(value);// Remove the original
1720list.remove(item);}});}},{key:"text",get:function get(){return this._text;}// generate string
1721,set:function set(t){this._text=t;}},{key:"toString",value:function toString(ast){return lib.generate(ast||this.ast);}}]);return Sheet;}();var baseStyles="\n:root {\n\t--pagedjs-width: 8.5in;\n\t--pagedjs-height: 11in;\n\t--pagedjs-width-right: 8.5in;\n\t--pagedjs-height-right: 11in;\n\t--pagedjs-width-left: 8.5in;\n\t--pagedjs-height-left: 11in;\n\t--pagedjs-pagebox-width: 8.5in;\n\t--pagedjs-pagebox-height: 11in;\n\t--pagedjs-footnotes-height: 0mm;\n\t--pagedjs-margin-top: 1in;\n\t--pagedjs-margin-right: 1in;\n\t--pagedjs-margin-bottom: 1in;\n\t--pagedjs-margin-left: 1in;\n\t--pagedjs-padding-top: 0mm;\n\t--pagedjs-padding-right: 0mm;\n\t--pagedjs-padding-bottom: 0mm;\n\t--pagedjs-padding-left: 0mm;\n\t--pagedjs-border-top: 0mm;\n\t--pagedjs-border-right: 0mm;\n\t--pagedjs-border-bottom: 0mm;\n\t--pagedjs-border-left: 0mm;\n\t--pagedjs-bleed-top: 0mm;\n\t--pagedjs-bleed-right: 0mm;\n\t--pagedjs-bleed-bottom: 0mm;\n\t--pagedjs-bleed-left: 0mm;\n\t--pagedjs-bleed-right-top: 0mm;\n\t--pagedjs-bleed-right-right: 0mm;\n\t--pagedjs-bleed-right-bottom: 0mm;\n\t--pagedjs-bleed-right-left: 0mm;\n\t--pagedjs-bleed-left-top: 0mm;\n\t--pagedjs-bleed-left-right: 0mm;\n\t--pagedjs-bleed-left-bottom: 0mm;\n\t--pagedjs-bleed-left-left: 0mm;\n\t--pagedjs-crop-color: black;\n\t--pagedjs-crop-shadow: white;\n\t--pagedjs-crop-offset: 2mm;\n\t--pagedjs-crop-stroke: 1px;\n\t--pagedjs-cross-size: 5mm;\n\t--pagedjs-mark-cross-display: none;\n\t--pagedjs-mark-crop-display: none;\n\t--pagedjs-page-count: 0;\n\t--pagedjs-page-counter-increment: 1;\n\t--pagedjs-footnotes-count: 0;\n}\n\n@page {\n\tsize: letter;\n\tmargin: 0;\n}\n\n.pagedjs_sheet {\n\tbox-sizing: border-box;\n\twidth: var(--pagedjs-width);\n\theight: var(--pagedjs-height);\n\toverflow: hidden;\n\tposition: relative;\n\tdisplay: grid;\n\tgrid-template-columns: [bleed-left] var(--pagedjs-bleed-left) [sheet-center] calc(var(--pagedjs-width) - var(--pagedjs-bleed-left) - var(--pagedjs-bleed-right)) [bleed-right] var(--pagedjs-bleed-right);\n\tgrid-template-rows: [bleed-top] var(--pagedjs-bleed-top) [sheet-middle] calc(var(--pagedjs-height) - var(--pagedjs-bleed-top) - var(--pagedjs-bleed-bottom)) [bleed-bottom] var(--pagedjs-bleed-bottom);\n}\n\n.pagedjs_right_page .pagedjs_sheet {\n\twidth: var(--pagedjs-width-right);\n\theight: var(--pagedjs-height-right);\n\tgrid-template-columns: [bleed-left] var(--pagedjs-bleed-right-left) [sheet-center] calc(var(--pagedjs-width) - var(--pagedjs-bleed-right-left) - var(--pagedjs-bleed-right-right)) [bleed-right] var(--pagedjs-bleed-right-right);\n\tgrid-template-rows: [bleed-top] var(--pagedjs-bleed-right-top) [sheet-middle] calc(var(--pagedjs-height) - var(--pagedjs-bleed-right-top) - var(--pagedjs-bleed-right-bottom)) [bleed-bottom] var(--pagedjs-bleed-right-bottom);\n}\n\n.pagedjs_left_page .pagedjs_sheet {\n\twidth: var(--pagedjs-width-left);\n\theight: var(--pagedjs-height-left);\n\tgrid-template-columns: [bleed-left] var(--pagedjs-bleed-left-left) [sheet-center] calc(var(--pagedjs-width) - var(--pagedjs-bleed-left-left) - var(--pagedjs-bleed-left-right)) [bleed-right] var(--pagedjs-bleed-left-right);\n\tgrid-template-rows: [bleed-top] var(--pagedjs-bleed-left-top) [sheet-middle] calc(var(--pagedjs-height) - var(--pagedjs-bleed-left-top) - var(--pagedjs-bleed-left-bottom)) [bleed-bottom] var(--pagedjs-bleed-left-bottom);\n}\n\n.pagedjs_bleed {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-wrap: nowrap;\n\toverflow: hidden;\n}\n\n.pagedjs_bleed-top {\n\tgrid-column: bleed-left / -1;\n\tgrid-row: bleed-top;\n\tflex-direction: row;\n}\n\n.pagedjs_bleed-bottom {\n\tgrid-column: bleed-left / -1;\n\tgrid-row: bleed-bottom;\n\tflex-direction: row;\n}\n\n.pagedjs_bleed-left {\n\tgrid-column: bleed-left;\n\tgrid-row: bleed-top / -1;\n\tflex-direction: column;\n}\n\n.pagedjs_bleed-right {\n\tgrid-column: bleed-right;\n\tgrid-row: bleed-top / -1;\n\tflex-direction: column;\n}\n\n.pagedjs_marks-crop {\n\tdisplay: var(--pagedjs-mark-crop-display);\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tz-index: 9999999999;\n}\n\n.pagedjs_bleed-top .pagedjs_marks-crop:nth-child(1),\n.pagedjs_bleed-bottom .pagedjs_marks-crop:nth-child(1) {\n\twidth: calc(var(--pagedjs-bleed-left) - var(--pagedjs-crop-stroke));\n\tborder-right: var(--pagedjs-crop-stroke) solid var(--pagedjs-crop-color);\n\tbox-shadow: 1px 0px 0px 0px var(--pagedjs-crop-shadow);\n}\n\n.pagedjs_right_page .pagedjs_bleed-top .pagedjs_marks-crop:nth-child(1),\n.pagedjs_right_page .pagedjs_bleed-bottom .pagedjs_marks-crop:nth-child(1) {\n\twidth: calc(var(--pagedjs-bleed-right-left) - var(--pagedjs-crop-stroke));\n}\n\n.pagedjs_left_page .pagedjs_bleed-top .pagedjs_marks-crop:nth-child(1),\n.pagedjs_left_page .pagedjs_bleed-bottom .pagedjs_marks-crop:nth-child(1) {\n\twidth: calc(var(--pagedjs-bleed-left-left) - var(--pagedjs-crop-stroke));\n}\n\n.pagedjs_bleed-top .pagedjs_marks-crop:nth-child(3),\n.pagedjs_bleed-bottom .pagedjs_marks-crop:nth-child(3) {\n\twidth: calc(var(--pagedjs-bleed-right) - var(--pagedjs-crop-stroke));\n\tborder-left: var(--pagedjs-crop-stroke) solid var(--pagedjs-crop-color);\n\tbox-shadow: -1px 0px 0px 0px var(--pagedjs-crop-shadow);\n}\n\n.pagedjs_right_page .pagedjs_bleed-top .pagedjs_marks-crop:nth-child(3),\n.pagedjs_right_page .pagedjs_bleed-bottom .pagedjs_marks-crop:nth-child(3) {\n\twidth: calc(var(--pagedjs-bleed-right-right) - var(--pagedjs-crop-stroke));\n}\n\n.pagedjs_left_page .pagedjs_bleed-top .pagedjs_marks-crop:nth-child(3),\n.pagedjs_left_page .pagedjs_bleed-bottom .pagedjs_marks-crop:nth-child(3) {\n\twidth: calc(var(--pagedjs-bleed-left-right) - var(--pagedjs-crop-stroke));\n}\n\n.pagedjs_bleed-top .pagedjs_marks-crop {\n\talign-self: flex-start;\n\theight: calc(var(--pagedjs-bleed-top) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_right_page .pagedjs_bleed-top .pagedjs_marks-crop {\n\theight: calc(var(--pagedjs-bleed-right-top) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_left_page .pagedjs_bleed-top .pagedjs_marks-crop {\n\theight: calc(var(--pagedjs-bleed-left-top) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_bleed-bottom .pagedjs_marks-crop {\n\talign-self: flex-end;\n\theight: calc(var(--pagedjs-bleed-bottom) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_right_page .pagedjs_bleed-bottom .pagedjs_marks-crop {\n\theight: calc(var(--pagedjs-bleed-right-bottom) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_left_page .pagedjs_bleed-bottom .pagedjs_marks-crop {\n\theight: calc(var(--pagedjs-bleed-left-bottom) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_bleed-left .pagedjs_marks-crop:nth-child(1),\n.pagedjs_bleed-right .pagedjs_marks-crop:nth-child(1) {\n\theight: calc(var(--pagedjs-bleed-top) - var(--pagedjs-crop-stroke));\n\tborder-bottom: var(--pagedjs-crop-stroke) solid var(--pagedjs-crop-color);\n\tbox-shadow: 0px 1px 0px 0px var(--pagedjs-crop-shadow);\n}\n\n.pagedjs_right_page .pagedjs_bleed-left .pagedjs_marks-crop:nth-child(1),\n.pagedjs_right_page .pagedjs_bleed-right .pagedjs_marks-crop:nth-child(1) {\n\theight: calc(var(--pagedjs-bleed-right-top) - var(--pagedjs-crop-stroke));\n}\n\n.pagedjs_left_page .pagedjs_bleed-left .pagedjs_marks-crop:nth-child(1),\n.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-crop:nth-child(1) {\n\theight: calc(var(--pagedjs-bleed-left-top) - var(--pagedjs-crop-stroke));\n}\n\n.pagedjs_bleed-left .pagedjs_marks-crop:nth-child(3),\n.pagedjs_bleed-right .pagedjs_marks-crop:nth-child(3) {\n\theight: calc(var(--pagedjs-bleed-bottom) - var(--pagedjs-crop-stroke));\n\tborder-top: var(--pagedjs-crop-stroke) solid var(--pagedjs-crop-color);\n\tbox-shadow: 0px -1px 0px 0px var(--pagedjs-crop-shadow);\n}\n\n.pagedjs_right_page .pagedjs_bleed-left .pagedjs_marks-crop:nth-child(3),\n.pagedjs_right_page .pagedjs_bleed-right .pagedjs_marks-crop:nth-child(3) {\n\theight: calc(var(--pagedjs-bleed-right-bottom) - var(--pagedjs-crop-stroke));\n}\n\n.pagedjs_left_page .pagedjs_bleed-left .pagedjs_marks-crop:nth-child(3),\n.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-crop:nth-child(3) {\n\theight: calc(var(--pagedjs-bleed-left-bottom) - var(--pagedjs-crop-stroke));\n}\n\n.pagedjs_bleed-left .pagedjs_marks-crop {\n\twidth: calc(var(--pagedjs-bleed-left) - var(--pagedjs-crop-offset));\n\talign-self: flex-start;\n}\n\n.pagedjs_right_page .pagedjs_bleed-left .pagedjs_marks-crop {\n\twidth: calc(var(--pagedjs-bleed-right-left) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_left_page .pagedjs_bleed-left .pagedjs_marks-crop {\n\twidth: calc(var(--pagedjs-bleed-left-left) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_bleed-right .pagedjs_marks-crop {\n\twidth: calc(var(--pagedjs-bleed-right) - var(--pagedjs-crop-offset));\n\talign-self: flex-end;\n}\n\n.pagedjs_right_page .pagedjs_bleed-right .pagedjs_marks-crop {\n\twidth: calc(var(--pagedjs-bleed-right-right) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_left_page .pagedjs_bleed-right .pagedjs_marks-crop {\n\twidth: calc(var(--pagedjs-bleed-left-right) - var(--pagedjs-crop-offset));\n}\n\n.pagedjs_marks-middle {\n\tdisplay: flex;\n\tflex-grow: 1;\n\tflex-shrink: 0;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.pagedjs_marks-cross {\n\tdisplay: var(--pagedjs-mark-cross-display);\n\tbackground-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPjxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSIzMi41MzdweCIgaGVpZ2h0PSIzMi41MzdweCIgdmlld0JveD0iMC4xMDQgMC4xMDQgMzIuNTM3IDMyLjUzNyIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwLjEwNCAwLjEwNCAzMi41MzcgMzIuNTM3IiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSJub25lIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMy4zODkzIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik0yOS45MzEsMTYuMzczYzAsNy40ODktNi4wNjgsMTMuNTYtMTMuNTU4LDEzLjU2Yy03LjQ4MywwLTEzLjU1Ny02LjA3Mi0xMy41NTctMTMuNTZjMC03LjQ4Niw2LjA3NC0xMy41NTQsMTMuNTU3LTEzLjU1NEMyMy44NjIsMi44MTksMjkuOTMxLDguODg3LDI5LjkzMSwxNi4zNzN6Ii8+PGxpbmUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjMuMzg5MyIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiB4MT0iMC4xMDQiIHkxPSIxNi4zNzMiIHgyPSIzMi42NDIiIHkyPSIxNi4zNzMiLz48bGluZSBmaWxsPSJub25lIiBzdHJva2U9IiNGRkZGRkYiIHN0cm9rZS13aWR0aD0iMy4zODkzIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIHgxPSIxNi4zNzMiIHkxPSIwLjEwNCIgeDI9IjE2LjM3MyIgeTI9IjMyLjY0MiIvPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIzLjM4OTMiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgZD0iTTI0LjUwOCwxNi4zNzNjMCw0LjQ5Ni0zLjYzOCw4LjEzNS04LjEzNSw4LjEzNWMtNC40OTEsMC04LjEzNS0zLjYzOC04LjEzNS04LjEzNWMwLTQuNDg5LDMuNjQ0LTguMTM1LDguMTM1LTguMTM1QzIwLjg2OSw4LjIzOSwyNC41MDgsMTEuODg0LDI0LjUwOCwxNi4zNzN6Ii8+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjAuNjc3OCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBkPSJNMjkuOTMxLDE2LjM3M2MwLDcuNDg5LTYuMDY4LDEzLjU2LTEzLjU1OCwxMy41NmMtNy40ODMsMC0xMy41NTctNi4wNzItMTMuNTU3LTEzLjU2YzAtNy40ODYsNi4wNzQtMTMuNTU0LDEzLjU1Ny0xMy41NTRDMjMuODYyLDIuODE5LDI5LjkzMSw4Ljg4NywyOS45MzEsMTYuMzczeiIvPjxsaW5lIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIwLjY3NzgiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgeDE9IjAuMTA0IiB5MT0iMTYuMzczIiB4Mj0iMzIuNjQyIiB5Mj0iMTYuMzczIi8+PGxpbmUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjAuNjc3OCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiB4MT0iMTYuMzczIiB5MT0iMC4xMDQiIHgyPSIxNi4zNzMiIHkyPSIzMi42NDIiLz48cGF0aCBkPSJNMjQuNTA4LDE2LjM3M2MwLDQuNDk2LTMuNjM4LDguMTM1LTguMTM1LDguMTM1Yy00LjQ5MSwwLTguMTM1LTMuNjM4LTguMTM1LTguMTM1YzAtNC40ODksMy42NDQtOC4xMzUsOC4xMzUtOC4xMzVDMjAuODY5LDguMjM5LDI0LjUwOCwxMS44ODQsMjQuNTA4LDE2LjM3MyIvPjxsaW5lIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIwLjY3NzgiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIgeDE9IjguMjM5IiB5MT0iMTYuMzczIiB4Mj0iMjQuNTA4IiB5Mj0iMTYuMzczIi8+PGxpbmUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjAuNjc3OCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiB4MT0iMTYuMzczIiB5MT0iOC4yMzkiIHgyPSIxNi4zNzMiIHkyPSIyNC41MDgiLz48L3N2Zz4=);\n background-repeat: no-repeat;\n background-position: 50% 50%;\n background-size: var(--pagedjs-cross-size);\n\n z-index: 2147483647;\n\twidth: var(--pagedjs-cross-size);\n\theight: var(--pagedjs-cross-size);\n}\n\n.pagedjs_pagebox {\n\tbox-sizing: border-box;\n\twidth: var(--pagedjs-pagebox-width);\n\theight: var(--pagedjs-pagebox-height);\n\tposition: relative;\n\tdisplay: grid;\n\tgrid-template-columns: [left] var(--pagedjs-margin-left) [center] calc(var(--pagedjs-pagebox-width) - var(--pagedjs-margin-left) - var(--pagedjs-margin-right)) [right] var(--pagedjs-margin-right);\n\tgrid-template-rows: [header] var(--pagedjs-margin-top) [page] calc(var(--pagedjs-pagebox-height) - var(--pagedjs-margin-top) - var(--pagedjs-margin-bottom)) [footer] var(--pagedjs-margin-bottom);\n\tgrid-column: sheet-center;\n\tgrid-row: sheet-middle;\n}\n\n.pagedjs_pagebox * {\n\tbox-sizing: border-box;\n}\n\n.pagedjs_margin-top {\n\twidth: calc(var(--pagedjs-pagebox-width) - var(--pagedjs-margin-left) - var(--pagedjs-margin-right));\n\theight: var(--pagedjs-margin-top);\n\tgrid-column: center;\n\tgrid-row: header;\n\tflex-wrap: nowrap;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, 1fr);\n\tgrid-template-rows: 100%;\n}\n\n.pagedjs_margin-top-left-corner-holder {\n\twidth: var(--pagedjs-margin-left);\n\theight: var(--pagedjs-margin-top);\n\tdisplay: flex;\n\tgrid-column: left;\n\tgrid-row: header;\n}\n\n.pagedjs_margin-top-right-corner-holder {\n\twidth: var(--pagedjs-margin-right);\n\theight: var(--pagedjs-margin-top);\n\tdisplay: flex;\n\tgrid-column: right;\n\tgrid-row: header;\n}\n\n.pagedjs_margin-top-left-corner {\n\twidth: var(--pagedjs-margin-left);\n}\n\n.pagedjs_margin-top-right-corner {\n\twidth: var(--pagedjs-margin-right);\n}\n\n.pagedjs_margin-right {\n\theight: calc(var(--pagedjs-pagebox-height) - var(--pagedjs-margin-top) - var(--pagedjs-margin-bottom));\n\twidth: var(--pagedjs-margin-right);\n\tright: 0;\n\tgrid-column: right;\n\tgrid-row: page;\n\tdisplay: grid;\n\tgrid-template-rows: repeat(3, 33.3333%);\n\tgrid-template-columns: 100%;\n}\n\n.pagedjs_margin-bottom {\n\twidth: calc(var(--pagedjs-pagebox-width) - var(--pagedjs-margin-left) - var(--pagedjs-margin-right));\n\theight: var(--pagedjs-margin-bottom);\n\tgrid-column: center;\n\tgrid-row: footer;\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, 1fr);\n\tgrid-template-rows: 100%;\n}\n\n.pagedjs_margin-bottom-left-corner-holder {\n\twidth: var(--pagedjs-margin-left);\n\theight: var(--pagedjs-margin-bottom);\n\tdisplay: flex;\n\tgrid-column: left;\n\tgrid-row: footer;\n}\n\n.pagedjs_margin-bottom-right-corner-holder {\n\twidth: var(--pagedjs-margin-right);\n\theight: var(--pagedjs-margin-bottom);\n\tdisplay: flex;\n\tgrid-column: right;\n\tgrid-row: footer;\n}\n\n.pagedjs_margin-bottom-left-corner {\n\twidth: var(--pagedjs-margin-left);\n}\n\n.pagedjs_margin-bottom-right-corner {\n\twidth: var(--pagedjs-margin-right);\n}\n\n\n\n.pagedjs_margin-left {\n\theight: calc(var(--pagedjs-pagebox-height) - var(--pagedjs-margin-top) - var(--pagedjs-margin-bottom));\n\twidth: var(--pagedjs-margin-left);\n\tgrid-column: left;\n\tgrid-row: page;\n\tdisplay: grid;\n\tgrid-template-rows: repeat(3, 33.33333%);\n\tgrid-template-columns: 100%;\n}\n\n.pagedjs_pages .pagedjs_pagebox .pagedjs_margin:not(.hasContent) {\n\tvisibility: hidden;\n}\n\n.pagedjs_pagebox > .pagedjs_area {\n\tgrid-column: center;\n\tgrid-row: page;\n\twidth: 100%;\n\theight: 100%;\n\tpadding: var(--pagedjs-padding-top) var(--pagedjs-padding-right) var(--pagedjs-padding-bottom) var(--pagedjs-padding-left);\n\tborder-top: var(--pagedjs-border-top);\n\tborder-right: var(--pagedjs-border-right);\n\tborder-bottom: var(--pagedjs-border-bottom);\n\tborder-left: var(--pagedjs-border-left);\n}\n\n.pagedjs_pagebox > .pagedjs_area > .pagedjs_page_content {\n\twidth: 100%;\n\theight: calc(100% - var(--pagedjs-footnotes-height));\n\tposition: relative;\n\tcolumn-fill: auto;\n}\n\n.pagedjs_pagebox > .pagedjs_area > .pagedjs_page_content > div {\n\theight: inherit;\n}\n\n.pagedjs_pagebox > .pagedjs_area > .pagedjs_footnote_area {\n\tposition: relative;\n\toverflow: hidden;\n\theight: var(--pagedjs-footnotes-height);\n\tdisplay: flex;\n justify-content: flex-end;\n flex-flow: column;\n}\n\n.pagedjs_pagebox > .pagedjs_area > .pagedjs_footnote_area > .pagedjs_footnote_content {\n\toverflow: hidden;\n}\n\n.pagedjs_pagebox > .pagedjs_area > .pagedjs_footnote_area > .pagedjs_footnote_inner_content {\n\toverflow: hidden;\n}\n\n.pagedjs_area [data-footnote-call] {\n\tall: unset;\n\tcounter-increment: footnote;\n}\n\n.pagedjs_area [data-split-from] {\n\tcounter-increment: unset;\n\tcounter-reset: unset;\n}\n\n[data-footnote-call]::after {\n\tvertical-align: super;\n\tfont-size: 65%;\n\tline-height: normal;\n\tcontent: counter(footnote);\n}\n\n@supports ( font-variant-position: super ) {\n\t[data-footnote-call]::after {\n\t\tvertical-align: baseline;\n\t\tfont-size: 100%;\n\t\tline-height: inherit;\n\t\tfont-variant-position: super;\n\t}\n}\n\n.pagedjs_footnote_empty {\n\tdisplay: none;\n}\n\n.pagedjs_area [data-split-from] {\n\tcounter-increment: unset;\n\tcounter-reset: unset;\n}\n\n[data-footnote-marker]:not([data-split-from]) {\n\tcounter-increment: footnote-marker;\n\ttext-indent: 0;\n\tdisplay: list-item;\n\tlist-style-position: inside;\n}\n\n[data-footnote-marker]::marker {\n\tcontent: counter(footnote-marker) \". \";\n}\n\n[data-footnote-marker][data-split-from]::marker {\n\tcontent: unset;\n}\n\n.pagedjs_area .pagedjs_footnote_inner_content [data-note-display=\"inline\"] {\n \tdisplay: inline;\n}\n\n.pagedjs_page {\n\tcounter-increment: page var(--pagedjs-page-counter-increment);\n\twidth: var(--pagedjs-width);\n\theight: var(--pagedjs-height);\n}\n\n.pagedjs_page.pagedjs_right_page {\n\twidth: var(--pagedjs-width-right);\n\theight: var(--pagedjs-height-right);\n}\n\n.pagedjs_page.pagedjs_left_page {\n\twidth: var(--pagedjs-width-left);\n\theight: var(--pagedjs-height-left);\n}\n\n.pagedjs_pages {\n\tcounter-reset: pages var(--pagedjs-page-count) footnote var(--pagedjs-footnotes-count) footnote-marker var(--pagedjs-footnotes-count);\n}\n\n.pagedjs_pagebox .pagedjs_margin-top-left-corner,\n.pagedjs_pagebox .pagedjs_margin-top-right-corner,\n.pagedjs_pagebox .pagedjs_margin-bottom-left-corner,\n.pagedjs_pagebox .pagedjs_margin-bottom-right-corner,\n.pagedjs_pagebox .pagedjs_margin-top-left,\n.pagedjs_pagebox .pagedjs_margin-top-right,\n.pagedjs_pagebox .pagedjs_margin-bottom-left,\n.pagedjs_pagebox .pagedjs_margin-bottom-right,\n.pagedjs_pagebox .pagedjs_margin-top-center,\n.pagedjs_pagebox .pagedjs_margin-bottom-center,\n.pagedjs_pagebox .pagedjs_margin-top-center,\n.pagedjs_pagebox .pagedjs_margin-bottom-center,\n.pagedjs_margin-right-middle,\n.pagedjs_margin-left-middle {\n\tdisplay: flex;\n\talign-items: center;\n}\n\n.pagedjs_margin-right-top,\n.pagedjs_margin-left-top {\n\tdisplay: flex;\n\talign-items: flex-top;\n}\n\n\n.pagedjs_margin-right-bottom,\n.pagedjs_margin-left-bottom {\n\tdisplay: flex;\n\talign-items: flex-end;\n}\n\n\n\n/*\n.pagedjs_pagebox .pagedjs_margin-top-center,\n.pagedjs_pagebox .pagedjs_margin-bottom-center {\n\theight: 100%;\n\tdisplay: none;\n\talign-items: center;\n\tflex: 1 0 33%;\n\tmargin: 0 auto;\n}\n\n.pagedjs_pagebox .pagedjs_margin-top-left-corner,\n.pagedjs_pagebox .pagedjs_margin-top-right-corner,\n.pagedjs_pagebox .pagedjs_margin-bottom-right-corner,\n.pagedjs_pagebox .pagedjs_margin-bottom-left-corner {\n\tdisplay: none;\n\talign-items: center;\n}\n\n.pagedjs_pagebox .pagedjs_margin-left-top,\n.pagedjs_pagebox .pagedjs_margin-right-top {\n\tdisplay: none;\n\talign-items: flex-start;\n}\n\n.pagedjs_pagebox .pagedjs_margin-right-middle,\n.pagedjs_pagebox .pagedjs_margin-left-middle {\n\tdisplay: none;\n\talign-items: center;\n}\n\n.pagedjs_pagebox .pagedjs_margin-left-bottom,\n.pagedjs_pagebox .pagedjs_margin-right-bottom {\n\tdisplay: none;\n\talign-items: flex-end;\n}\n*/\n\n.pagedjs_pagebox .pagedjs_margin-top-left,\n.pagedjs_pagebox .pagedjs_margin-top-right-corner,\n.pagedjs_pagebox .pagedjs_margin-bottom-left,\n.pagedjs_pagebox .pagedjs_margin-bottom-right-corner { text-align: left; }\n\n.pagedjs_pagebox .pagedjs_margin-top-left-corner,\n.pagedjs_pagebox .pagedjs_margin-top-right,\n.pagedjs_pagebox .pagedjs_margin-bottom-left-corner,\n.pagedjs_pagebox .pagedjs_margin-bottom-right { text-align: right; }\n\n.pagedjs_pagebox .pagedjs_margin-top-center,\n.pagedjs_pagebox .pagedjs_margin-bottom-center,\n.pagedjs_pagebox .pagedjs_margin-left-top,\n.pagedjs_pagebox .pagedjs_margin-left-middle,\n.pagedjs_pagebox .pagedjs_margin-left-bottom,\n.pagedjs_pagebox .pagedjs_margin-right-top,\n.pagedjs_pagebox .pagedjs_margin-right-middle,\n.pagedjs_pagebox .pagedjs_margin-right-bottom { text-align: center; }\n\n.pagedjs_pages .pagedjs_margin .pagedjs_margin-content {\n\twidth: 100%;\n}\n\n.pagedjs_pages .pagedjs_margin-left .pagedjs_margin-content::after,\n.pagedjs_pages .pagedjs_margin-top .pagedjs_margin-content::after,\n.pagedjs_pages .pagedjs_margin-right .pagedjs_margin-content::after,\n.pagedjs_pages .pagedjs_margin-bottom .pagedjs_margin-content::after {\n\tdisplay: block;\n}\n\n.pagedjs_pages > .pagedjs_page > .pagedjs_sheet > .pagedjs_pagebox > .pagedjs_area > div [data-split-to] {\n\tmargin-bottom: unset;\n\tpadding-bottom: unset;\n}\n\n.pagedjs_pages > .pagedjs_page > .pagedjs_sheet > .pagedjs_pagebox > .pagedjs_area > div [data-split-from] {\n\ttext-indent: unset;\n\tmargin-top: unset;\n\tpadding-top: unset;\n\tinitial-letter: unset;\n}\n\n.pagedjs_pages > .pagedjs_page > .pagedjs_sheet > .pagedjs_pagebox > .pagedjs_area > div [data-split-from] > *::first-letter,\n.pagedjs_pages > .pagedjs_page > .pagedjs_sheet > .pagedjs_pagebox > .pagedjs_area > div [data-split-from]::first-letter {\n\tcolor: unset;\n\tfont-size: unset;\n\tfont-weight: unset;\n\tfont-family: unset;\n\tcolor: unset;\n\tline-height: unset;\n\tfloat: unset;\n\tpadding: unset;\n\tmargin: unset;\n}\n\n.pagedjs_pages > .pagedjs_page > .pagedjs_sheet > .pagedjs_pagebox > .pagedjs_area > div [data-split-to]:not([data-footnote-call]):after,\n.pagedjs_pages > .pagedjs_page > .pagedjs_sheet > .pagedjs_pagebox > .pagedjs_area > div [data-split-to]:not([data-footnote-call])::after {\n\tcontent: unset;\n}\n\n.pagedjs_pages > .pagedjs_page > .pagedjs_sheet > .pagedjs_pagebox > .pagedjs_area > div [data-split-from]:not([data-footnote-call]):before,\n.pagedjs_pages > .pagedjs_page > .pagedjs_sheet > .pagedjs_pagebox > .pagedjs_area > div [data-split-from]:not([data-footnote-call])::before {\n\tcontent: unset;\n}\n\n.pagedjs_pages > .pagedjs_page > .pagedjs_sheet > .pagedjs_pagebox > .pagedjs_area > div li[data-split-from]:first-of-type {\n\tlist-style: none;\n}\n\n/*\n[data-page]:not([data-split-from]),\n[data-break-before=\"page\"]:not([data-split-from]),\n[data-break-before=\"always\"]:not([data-split-from]),\n[data-break-before=\"left\"]:not([data-split-from]),\n[data-break-before=\"right\"]:not([data-split-from]),\n[data-break-before=\"recto\"]:not([data-split-from]),\n[data-break-before=\"verso\"]:not([data-split-from])\n{\n\tbreak-before: column;\n}\n\n[data-page]:not([data-split-to]),\n[data-break-after=\"page\"]:not([data-split-to]),\n[data-break-after=\"always\"]:not([data-split-to]),\n[data-break-after=\"left\"]:not([data-split-to]),\n[data-break-after=\"right\"]:not([data-split-to]),\n[data-break-after=\"recto\"]:not([data-split-to]),\n[data-break-after=\"verso\"]:not([data-split-to])\n{\n\tbreak-after: column;\n}\n*/\n\n.pagedjs_clear-after::after {\n\tcontent: none !important;\n}\n\n[data-align-last-split-element='justify'] {\n\ttext-align-last: justify;\n}\n\n\n@media print {\n\thtml {\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\t-webkit-print-color-adjust: exact;\n\t\tprint-color-adjust: exact;\n\t}\n\tbody {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\twidth: 100% !important;\n\t\theight: 100% !important;\n\t\tmin-width: 100%;\n\t\tmax-width: 100%;\n\t\tmin-height: 100%;\n\t\tmax-height: 100%;\n\t}\n\t.pagedjs_pages {\n\t\twidth: auto;\n\t\tdisplay: block !important;\n\t\ttransform: none !important;\n\t\theight: 100% !important;\n\t\tmin-height: 100%;\n\t\tmax-height: 100%;\n\t\toverflow: visible;\n\t}\n\t.pagedjs_page {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tmax-height: 100%;\n\t\tmin-height: 100%;\n\t\theight: 100% !important;\n\t\tpage-break-after: always;\n\t\tbreak-after: page;\n\t}\n\t.pagedjs_sheet {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tmax-height: 100%;\n\t\tmin-height: 100%;\n\t\theight: 100% !important;\n\t}\n}\n";function request(_x21){return _request.apply(this,arguments);}function _request(){_request=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee21(url){var options,_args24=arguments;return _regenerator["default"].wrap(function _callee21$(_context24){while(1){switch(_context24.prev=_context24.next){case 0:options=_args24.length>1&&_args24[1]!==undefined?_args24[1]:{};return _context24.abrupt("return",new Promise(function(resolve,reject){var request=new XMLHttpRequest();request.open(options.method||"get",url,true);for(var _i20 in options.headers){request.setRequestHeader(_i20,options.headers[_i20]);}request.withCredentials=options.credentials==="include";request.onload=function(){// Chrome returns a status code of 0 for local files
1722var status=request.status===0&&url.startsWith("file://")?200:request.status;resolve(new Response(request.responseText,{status:status}));};request.onerror=reject;request.send(options.body||null);}));case 2:case"end":return _context24.stop();}}},_callee21);}));return _request.apply(this,arguments);}var Polisher=/*#__PURE__*/function(){function Polisher(setup){(0,_classCallCheck2["default"])(this,Polisher);this.sheets=[];this.inserted=[];this.hooks={};this.hooks.onUrl=new Hook(this);this.hooks.onAtPage=new Hook(this);this.hooks.onAtMedia=new Hook(this);this.hooks.onRule=new Hook(this);this.hooks.onDeclaration=new Hook(this);this.hooks.onContent=new Hook(this);this.hooks.onSelector=new Hook(this);this.hooks.onPseudoSelector=new Hook(this);this.hooks.onImport=new Hook(this);this.hooks.beforeTreeParse=new Hook(this);this.hooks.beforeTreeWalk=new Hook(this);this.hooks.afterTreeWalk=new Hook(this);if(setup!==false){this.setup();}}(0,_createClass2["default"])(Polisher,[{key:"setup",value:function setup(){this.base=this.insert(baseStyles);this.styleEl=document.createElement("style");document.head.appendChild(this.styleEl);this.styleSheet=this.styleEl.sheet;return this.styleSheet;}},{key:"add",value:function(){var _add=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee17(){var _arguments=arguments,_this19=this;var fetched,urls,i,f,_loop,url,_args20=arguments;return _regenerator["default"].wrap(function _callee17$(_context20){while(1){switch(_context20.prev=_context20.next){case 0:fetched=[];urls=[];for(i=0;i<_args20.length;i++){f=void 0;if((0,_typeof2["default"])(_args20[i])==="object"){_loop=function _loop(url){var obj=_arguments[i];f=new Promise(function(resolve,reject){urls.push(url);resolve(obj[url]);});};for(url in _args20[i]){_loop(url);}}else{urls.push(_args20[i]);f=request(_args20[i]).then(function(response){return response.text();});}fetched.push(f);}_context20.next=5;return Promise.all(fetched).then(/*#__PURE__*/function(){var _ref5=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee16(originals){var text,index;return _regenerator["default"].wrap(function _callee16$(_context19){while(1){switch(_context19.prev=_context19.next){case 0:text="";index=0;case 2:if(!(index<originals.length)){_context19.next=10;break;}_context19.next=5;return _this19.convertViaSheet(originals[index],urls[index]);case 5:text=_context19.sent;_this19.insert(text);case 7:index++;_context19.next=2;break;case 10:return _context19.abrupt("return",text);case 11:case"end":return _context19.stop();}}},_callee16);}));return function(_x22){return _ref5.apply(this,arguments);};}());case 5:return _context20.abrupt("return",_context20.sent);case 6:case"end":return _context20.stop();}}},_callee17);}));function add(){return _add.apply(this,arguments);}return add;}()},{key:"convertViaSheet",value:function(){var _convertViaSheet=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee18(cssStr,href){var sheet,_iterator3,_step3,url,_str,text;return _regenerator["default"].wrap(function _callee18$(_context21){while(1){switch(_context21.prev=_context21.next){case 0:sheet=new Sheet(href,this.hooks);_context21.next=3;return sheet.parse(cssStr);case 3:// Insert the imported sheets first
1723_iterator3=_createForOfIteratorHelper(sheet.imported);_context21.prev=4;_iterator3.s();case 6:if((_step3=_iterator3.n()).done){_context21.next=17;break;}url=_step3.value;_context21.next=10;return request(url).then(function(response){return response.text();});case 10:_str=_context21.sent;_context21.next=13;return this.convertViaSheet(_str,url);case 13:text=_context21.sent;this.insert(text);case 15:_context21.next=6;break;case 17:_context21.next=22;break;case 19:_context21.prev=19;_context21.t0=_context21["catch"](4);_iterator3.e(_context21.t0);case 22:_context21.prev=22;_iterator3.f();return _context21.finish(22);case 25:this.sheets.push(sheet);if(typeof sheet.width!=="undefined"){this.width=sheet.width;}if(typeof sheet.height!=="undefined"){this.height=sheet.height;}if(typeof sheet.orientation!=="undefined"){this.orientation=sheet.orientation;}return _context21.abrupt("return",sheet.toString());case 30:case"end":return _context21.stop();}}},_callee18,this,[[4,19,22,25]]);}));function convertViaSheet(_x23,_x24){return _convertViaSheet.apply(this,arguments);}return convertViaSheet;}()},{key:"insert",value:function insert(text){var head=document.querySelector("head");var style=document.createElement("style");style.setAttribute("data-pagedjs-inserted-styles","true");style.appendChild(document.createTextNode(text));head.appendChild(style);this.inserted.push(style);return style;}},{key:"destroy",value:function destroy(){this.styleEl.remove();this.inserted.forEach(function(s){s.remove();});this.sheets=[];}}]);return Polisher;}();var Handler=/*#__PURE__*/(0,_createClass2["default"])(function Handler(chunker,polisher,caller){(0,_classCallCheck2["default"])(this,Handler);var hooks=Object.assign({},chunker&&chunker.hooks,polisher&&polisher.hooks,caller&&caller.hooks);this.chunker=chunker;this.polisher=polisher;this.caller=caller;for(var _name7 in hooks){if(_name7 in this){var hook=hooks[_name7];hook.register(this[_name7].bind(this));}}});EventEmitter(Handler.prototype);// https://www.w3.org/TR/css3-page/#page-size-prop
1724var pageSizes={"A0":{width:{value:841,unit:"mm"},height:{value:1189,unit:"mm"}},"A1":{width:{value:594,unit:"mm"},height:{value:841,unit:"mm"}},"A2":{width:{value:420,unit:"mm"},height:{value:594,unit:"mm"}},"A3":{width:{value:297,unit:"mm"},height:{value:420,unit:"mm"}},"A4":{width:{value:210,unit:"mm"},height:{value:297,unit:"mm"}},"A5":{width:{value:148,unit:"mm"},height:{value:210,unit:"mm"}},"A6":{width:{value:105,unit:"mm"},height:{value:148,unit:"mm"}},"A7":{width:{value:74,unit:"mm"},height:{value:105,unit:"mm"}},"A8":{width:{value:52,unit:"mm"},height:{value:74,unit:"mm"}},"A9":{width:{value:37,unit:"mm"},height:{value:52,unit:"mm"}},"A10":{width:{value:26,unit:"mm"},height:{value:37,unit:"mm"}},"B4":{width:{value:250,unit:"mm"},height:{value:353,unit:"mm"}},"B5":{width:{value:176,unit:"mm"},height:{value:250,unit:"mm"}},"letter":{width:{value:8.5,unit:"in"},height:{value:11,unit:"in"}},"legal":{width:{value:8.5,unit:"in"},height:{value:14,unit:"in"}},"ledger":{width:{value:11,unit:"in"},height:{value:17,unit:"in"}}};var AtPage=/*#__PURE__*/function(_Handler){(0,_inherits2["default"])(AtPage,_Handler);var _super2=_createSuper(AtPage);function AtPage(chunker,polisher,caller){var _this20;(0,_classCallCheck2["default"])(this,AtPage);_this20=_super2.call(this,chunker,polisher,caller);_this20.pages={};_this20.width=undefined;_this20.height=undefined;_this20.orientation=undefined;_this20.marginalia={};return _this20;}(0,_createClass2["default"])(AtPage,[{key:"pageModel",value:function pageModel(selector){return{selector:selector,name:undefined,psuedo:undefined,nth:undefined,marginalia:{},width:undefined,height:undefined,orientation:undefined,margin:{top:{},right:{},left:{},bottom:{}},padding:{top:{},right:{},left:{},bottom:{}},border:{top:{},right:{},left:{},bottom:{}},backgroundOrigin:undefined,block:{},marks:undefined,notes:undefined,added:false};}// Find and Remove @page rules
1725},{key:"onAtPage",value:function onAtPage(node,item,list){var page,marginalia;var selector="";var named,psuedo,nth;var needsMerge=false;if(node.prelude){named=this.getTypeSelector(node);psuedo=this.getPsuedoSelector(node);nth=this.getNthSelector(node);selector=lib.generate(node.prelude);}else{selector="*";}if(selector in this.pages){// this.pages[selector] = Object.assign(this.pages[selector], page);
1726// console.log("after", selector, this.pages[selector]);
1727// this.pages[selector].added = false;
1728page=this.pages[selector];marginalia=this.replaceMarginalia(node);needsMerge=true;// Mark page for getting classes added again
1729page.added=false;}else{page=this.pageModel(selector);marginalia=this.replaceMarginalia(node);this.pages[selector]=page;}page.name=named;page.psuedo=psuedo;page.nth=nth;if(needsMerge){page.marginalia=Object.assign(page.marginalia,marginalia);}else{page.marginalia=marginalia;}var notes=this.replaceNotes(node);page.notes=notes;var declarations=this.replaceDeclarations(node);if(declarations.size){page.size=declarations.size;page.width=declarations.size.width;page.height=declarations.size.height;page.orientation=declarations.size.orientation;page.format=declarations.size.format;}if(declarations.bleed&&declarations.bleed[0]!="auto"){switch(declarations.bleed.length){case 4:// top right bottom left
1730page.bleed={top:declarations.bleed[0],right:declarations.bleed[1],bottom:declarations.bleed[2],left:declarations.bleed[3]};break;case 3:// top right bottom right
1731page.bleed={top:declarations.bleed[0],right:declarations.bleed[1],bottom:declarations.bleed[2],left:declarations.bleed[1]};break;case 2:// top right top right
1732page.bleed={top:declarations.bleed[0],right:declarations.bleed[1],bottom:declarations.bleed[0],left:declarations.bleed[1]};break;default:page.bleed={top:declarations.bleed[0],right:declarations.bleed[0],bottom:declarations.bleed[0],left:declarations.bleed[0]};}}if(declarations.marks){if(!declarations.bleed||declarations.bleed&&declarations.bleed[0]==="auto"){// Spec say 6pt, but needs more space for marks
1733page.bleed={top:{value:6,unit:"mm"},right:{value:6,unit:"mm"},bottom:{value:6,unit:"mm"},left:{value:6,unit:"mm"}};}page.marks=declarations.marks;}if(declarations.margin){page.margin=declarations.margin;}if(declarations.padding){page.padding=declarations.padding;}if(declarations.border){page.border=declarations.border;}if(declarations.marks){page.marks=declarations.marks;}if(needsMerge){page.block.children.appendList(node.block.children);}else{page.block=node.block;}// Remove the rule
1734list.remove(item);}/* Handled in breaks */ /*
1735 afterParsed(parsed) {
1736 for (let b in this.named) {
1737 // Find elements
1738 let elements = parsed.querySelectorAll(b);
1739 // Add break data
1740 for (var i = 0; i < elements.length; i++) {
1741 elements[i].setAttribute("data-page", this.named[b]);
1742 }
1743 }
1744 }
1745 */},{key:"afterTreeWalk",value:function afterTreeWalk(ast,sheet){var dirtyPage="*"in this.pages&&this.pages["*"].added===false;this.addPageClasses(this.pages,ast,sheet);if(dirtyPage){var _width2=this.pages["*"].width;var _height2=this.pages["*"].height;var format=this.pages["*"].format;var orientation=this.pages["*"].orientation;var bleed=this.pages["*"].bleed;var marks=this.pages["*"].marks;var bleedverso=undefined;var bleedrecto=undefined;if(":left"in this.pages){bleedverso=this.pages[":left"].bleed;}if(":right"in this.pages){bleedrecto=this.pages[":right"].bleed;}if(_width2&&_height2&&(this.width!==_width2||this.height!==_height2)){this.width=_width2;this.height=_height2;this.format=format;this.orientation=orientation;this.addRootVars(ast,_width2,_height2,orientation,bleed,bleedrecto,bleedverso,marks);this.addRootPage(ast,this.pages["*"].size,bleed,bleedrecto,bleedverso);this.emit("size",{width:_width2,height:_height2,orientation:orientation,format:format,bleed:bleed});this.emit("atpages",this.pages);}}}},{key:"getTypeSelector",value:function getTypeSelector(ast){// Find page name
1746var name;lib.walk(ast,{visit:"TypeSelector",enter:function enter(node,item,list){name=node.name;}});return name;}},{key:"getPsuedoSelector",value:function getPsuedoSelector(ast){// Find if it has :left & :right & :black & :first
1747var name;lib.walk(ast,{visit:"PseudoClassSelector",enter:function enter(node,item,list){if(node.name!=="nth"){name=node.name;}}});return name;}},{key:"getNthSelector",value:function getNthSelector(ast){// Find if it has :nth
1748var nth;lib.walk(ast,{visit:"PseudoClassSelector",enter:function enter(node,item,list){if(node.name==="nth"&&node.children){var raw=node.children.first();nth=raw.value;}}});return nth;}},{key:"replaceMarginalia",value:function replaceMarginalia(ast){var parsed={};var MARGINS=["top-left-corner","top-left","top","top-center","top-right","top-right-corner","bottom-left-corner","bottom-left","bottom","bottom-center","bottom-right","bottom-right-corner","left-top","left-middle","left","left-bottom","top-right-corner","right-top","right-middle","right","right-bottom","right-right-corner"];lib.walk(ast.block,{visit:"Atrule",enter:function enter(node,item,list){var name=node.name;if(MARGINS.includes(name)){if(name==="top"){name="top-center";}if(name==="right"){name="right-middle";}if(name==="left"){name="left-middle";}if(name==="bottom"){name="bottom-center";}parsed[name]=node.block;list.remove(item);}}});return parsed;}},{key:"replaceNotes",value:function replaceNotes(ast){var parsed={};lib.walk(ast.block,{visit:"Atrule",enter:function enter(node,item,list){var name=node.name;if(name==="footnote"){parsed[name]=node.block;list.remove(item);}}});return parsed;}},{key:"replaceDeclarations",value:function replaceDeclarations(ast){var _this21=this;var parsed={};lib.walk(ast.block,{visit:"Declaration",enter:function enter(declaration,dItem,dList){var prop=lib.property(declaration.property).name;// let value = declaration.value;
1749if(prop==="marks"){parsed.marks=[];lib.walk(declaration,{visit:"Identifier",enter:function enter(ident){parsed.marks.push(ident.name);}});dList.remove(dItem);}else if(prop==="margin"){parsed.margin=_this21.getMargins(declaration);dList.remove(dItem);}else if(prop.indexOf("margin-")===0){var m=prop.substring("margin-".length);if(!parsed.margin){parsed.margin={top:{},right:{},left:{},bottom:{}};}parsed.margin[m]=declaration.value.children.first();dList.remove(dItem);}else if(prop==="padding"){parsed.padding=_this21.getPaddings(declaration.value);dList.remove(dItem);}else if(prop.indexOf("padding-")===0){var p=prop.substring("padding-".length);if(!parsed.padding){parsed.padding={top:{},right:{},left:{},bottom:{}};}parsed.padding[p]=declaration.value.children.first();dList.remove(dItem);}else if(prop==="border"){if(!parsed.border){parsed.border={top:{},right:{},left:{},bottom:{}};}parsed.border.top=lib.generate(declaration.value);parsed.border.right=lib.generate(declaration.value);parsed.border.left=lib.generate(declaration.value);parsed.border.bottom=lib.generate(declaration.value);dList.remove(dItem);}else if(prop.indexOf("border-")===0){if(!parsed.border){parsed.border={top:{},right:{},left:{},bottom:{}};}var _p=prop.substring("border-".length);parsed.border[_p]=lib.generate(declaration.value);dList.remove(dItem);}else if(prop==="size"){parsed.size=_this21.getSize(declaration);dList.remove(dItem);}else if(prop==="bleed"){parsed.bleed=[];lib.walk(declaration,{enter:function enter(subNode){switch(subNode.type){case"String":// bleed: "auto"
1750if(subNode.value.indexOf("auto")>-1){parsed.bleed.push("auto");}break;case"Dimension":// bleed: 1in 2in, bleed: 20px ect.
1751parsed.bleed.push({value:subNode.value,unit:subNode.unit});break;case"Number":parsed.bleed.push({value:subNode.value,unit:"px"});break;// ignore
1752}}});dList.remove(dItem);}}});return parsed;}},{key:"getSize",value:function getSize(declaration){var width,height,orientation,format;// Get size: Xmm Ymm
1753lib.walk(declaration,{visit:"Dimension",enter:function enter(node,item,list){var value=node.value,unit=node.unit;if(typeof width==="undefined"){width={value:value,unit:unit};}else if(typeof height==="undefined"){height={value:value,unit:unit};}}});// Get size: "A4"
1754lib.walk(declaration,{visit:"String",enter:function enter(node,item,list){var name=node.value.replace(/["|']/g,"");var s=pageSizes[name];if(s){width=s.width;height=s.height;}}});// Get Format or Landscape or Portrait
1755lib.walk(declaration,{visit:"Identifier",enter:function enter(node,item,list){var name=node.name;if(name==="landscape"||name==="portrait"){orientation=node.name;}else if(name!=="auto"){var s=pageSizes[name];if(s){width=s.width;height=s.height;}format=name;}}});return{width:width,height:height,orientation:orientation,format:format};}},{key:"getMargins",value:function getMargins(declaration){var margins=[];var margin={top:{},right:{},left:{},bottom:{}};lib.walk(declaration,{enter:function enter(node){switch(node.type){case"Dimension":// margin: 1in 2in, margin: 20px, etc...
1756margins.push(node);break;case"Number":// margin: 0
1757margins.push({value:node.value,unit:"px"});break;// ignore
1758}}});if(margins.length===1){for(var m in margin){margin[m]=margins[0];}}else if(margins.length===2){margin.top=margins[0];margin.right=margins[1];margin.bottom=margins[0];margin.left=margins[1];}else if(margins.length===3){margin.top=margins[0];margin.right=margins[1];margin.bottom=margins[2];margin.left=margins[1];}else if(margins.length===4){margin.top=margins[0];margin.right=margins[1];margin.bottom=margins[2];margin.left=margins[3];}return margin;}},{key:"getPaddings",value:function getPaddings(declaration){var paddings=[];var padding={top:{},right:{},left:{},bottom:{}};lib.walk(declaration,{enter:function enter(node){switch(node.type){case"Dimension":// padding: 1in 2in, padding: 20px, etc...
1759paddings.push(node);break;case"Number":// padding: 0
1760paddings.push({value:node.value,unit:"px"});break;// ignore
1761}}});if(paddings.length===1){for(var p in padding){padding[p]=paddings[0];}}else if(paddings.length===2){padding.top=paddings[0];padding.right=paddings[1];padding.bottom=paddings[0];padding.left=paddings[1];}else if(paddings.length===3){padding.top=paddings[0];padding.right=paddings[1];padding.bottom=paddings[2];padding.left=paddings[1];}else if(paddings.length===4){padding.top=paddings[0];padding.right=paddings[1];padding.bottom=paddings[2];padding.left=paddings[3];}return padding;}// get values for the border on the @page to pass them to the element with the .pagedjs_area class
1762},{key:"getBorders",value:function getBorders(declaration){var border={top:{},right:{},left:{},bottom:{}};if(declaration.prop=="border"){border.top=lib.generate(declaration.value);border.right=lib.generate(declaration.value);border.bottom=lib.generate(declaration.value);border.left=lib.generate(declaration.value);}else if(declaration.prop=="border-top"){border.top=lib.generate(declaration.value);}else if(declaration.prop=="border-right"){border.right=lib.generate(declaration.value);}else if(declaration.prop=="border-bottom"){border.bottom=lib.generate(declaration.value);}else if(declaration.prop=="border-left"){border.left=lib.generate(declaration.value);}return border;}},{key:"addPageClasses",value:function addPageClasses(pages,ast,sheet){// First add * page
1763if("*"in pages&&pages["*"].added===false){var p=this.createPage(pages["*"],ast.children,sheet);sheet.insertRule(p);pages["*"].added=true;}// Add :left & :right
1764if(":left"in pages&&pages[":left"].added===false){var _left2=this.createPage(pages[":left"],ast.children,sheet);sheet.insertRule(_left2);pages[":left"].added=true;}if(":right"in pages&&pages[":right"].added===false){var _right2=this.createPage(pages[":right"],ast.children,sheet);sheet.insertRule(_right2);pages[":right"].added=true;}// Add :first & :blank
1765if(":first"in pages&&pages[":first"].added===false){var first=this.createPage(pages[":first"],ast.children,sheet);sheet.insertRule(first);pages[":first"].added=true;}if(":blank"in pages&&pages[":blank"].added===false){var blank=this.createPage(pages[":blank"],ast.children,sheet);sheet.insertRule(blank);pages[":blank"].added=true;}// Add nth pages
1766for(var pg in pages){if(pages[pg].nth&&pages[pg].added===false){var _nth=this.createPage(pages[pg],ast.children,sheet);sheet.insertRule(_nth);pages[pg].added=true;}}// Add named pages
1767for(var _pg in pages){if(pages[_pg].name&&pages[_pg].added===false){var named=this.createPage(pages[_pg],ast.children,sheet);sheet.insertRule(named);pages[_pg].added=true;}}}},{key:"createPage",value:function createPage(page,ruleList,sheet){var selectors=this.selectorsForPage(page);var children=page.block.children.copy();var block={type:"Block",loc:0,children:children};var rule=this.createRule(selectors,block);this.addMarginVars(page.margin,children,children.first());this.addPaddingVars(page.padding,children,children.first());this.addBorderVars(page.border,children,children.first());if(page.width){this.addDimensions(page.width,page.height,page.orientation,children,children.first());}if(page.marginalia){this.addMarginaliaStyles(page,ruleList,rule,sheet);this.addMarginaliaContent(page,ruleList,rule,sheet);}if(page.notes){this.addNotesStyles(page.notes,page,ruleList,rule,sheet);}return rule;}},{key:"addMarginVars",value:function addMarginVars(margin,list,item){// variables for margins
1768for(var m in margin){if(typeof margin[m].value!=="undefined"){var _value5=margin[m].value+(margin[m].unit||"");var mVar=list.createItem({type:"Declaration",property:"--pagedjs-margin-"+m,value:{type:"Raw",value:_value5}});list.append(mVar,item);}}}},{key:"addPaddingVars",value:function addPaddingVars(padding,list,item){// variables for padding
1769for(var p in padding){if(typeof padding[p].value!=="undefined"){var _value6=padding[p].value+(padding[p].unit||"");var pVar=list.createItem({type:"Declaration",property:"--pagedjs-padding-"+p,value:{type:"Raw",value:_value6}});list.append(pVar,item);}}}},{key:"addBorderVars",value:function addBorderVars(border,list,item){// variables for borders
1770for(var _i7=0,_Object$keys=Object.keys(border);_i7<_Object$keys.length;_i7++){var _name8=_Object$keys[_i7];var _value7=border[_name8];// value is an empty object when undefined
1771if(typeof _value7==="string"){var borderItem=list.createItem({type:"Declaration",property:"--pagedjs-border-"+_name8,value:{type:"Raw",value:_value7}});list.append(borderItem,item);}}}},{key:"addDimensions",value:function addDimensions(width,height,orientation,list,item){var widthString,heightString;widthString=CSSValueToString(width);heightString=CSSValueToString(height);if(orientation&&orientation!=="portrait"){// reverse for orientation
1772var _ref6=[heightString,widthString];widthString=_ref6[0];heightString=_ref6[1];}// width variable
1773var wVar=this.createVariable("--pagedjs-pagebox-width",widthString);list.appendData(wVar);// height variable
1774var hVar=this.createVariable("--pagedjs-pagebox-height",heightString);list.appendData(hVar);// let w = this.createDimension("width", width);
1775// let h = this.createDimension("height", height);
1776// list.appendData(w);
1777// list.appendData(h);
1778}},{key:"addMarginaliaStyles",value:function addMarginaliaStyles(page,list,item,sheet){var _this22=this;var _loop2=function _loop2(loc){var block=lib.clone(page.marginalia[loc]);var hasContent=false;if(block.children.isEmpty()){return"continue";}lib.walk(block,{visit:"Declaration",enter:function enter(node,item,list){if(node.property==="content"){if(node.value.children&&node.value.children.first().name==="none"){hasContent=false;}else{hasContent=true;}list.remove(item);}if(node.property==="vertical-align"){lib.walk(node,{visit:"Identifier",enter:function enter(identNode,identItem,identlist){var name=identNode.name;if(name==="top"){identNode.name="flex-start";}else if(name==="middle"){identNode.name="center";}else if(name==="bottom"){identNode.name="flex-end";}}});node.property="align-items";}if(node.property==="width"&&(loc==="top-left"||loc==="top-center"||loc==="top-right"||loc==="bottom-left"||loc==="bottom-center"||loc==="bottom-right")){var c=lib.clone(node);c.property="max-width";list.appendData(c);}if(node.property==="height"&&(loc==="left-top"||loc==="left-middle"||loc==="left-bottom"||loc==="right-top"||loc==="right-middle"||loc==="right-bottom")){var _c=lib.clone(node);_c.property="max-height";list.appendData(_c);}}});var marginSelectors=_this22.selectorsForPageMargin(page,loc);var marginRule=_this22.createRule(marginSelectors,block);list.appendData(marginRule);var sel=lib.generate({type:"Selector",children:marginSelectors});_this22.marginalia[sel]={page:page,selector:sel,block:page.marginalia[loc],hasContent:hasContent};};for(var loc in page.marginalia){var _ret=_loop2(loc);if(_ret==="continue")continue;}}},{key:"addMarginaliaContent",value:function addMarginaliaContent(page,list,item,sheet){var displayNone;// Just content
1779for(var loc in page.marginalia){var _content=lib.clone(page.marginalia[loc]);lib.walk(_content,{visit:"Declaration",enter:function enter(node,item,list){if(node.property!=="content"){list.remove(item);}if(node.value.children&&node.value.children.first().name==="none"){displayNone=true;}}});if(_content.children.isEmpty()){continue;}var displaySelectors=this.selectorsForPageMargin(page,loc);var displayDeclaration=void 0;displaySelectors.insertData({type:"Combinator",name:">"});displaySelectors.insertData({type:"ClassSelector",name:"pagedjs_margin-content"});displaySelectors.insertData({type:"Combinator",name:">"});displaySelectors.insertData({type:"TypeSelector",name:"*"});if(displayNone){displayDeclaration=this.createDeclaration("display","none");}else{displayDeclaration=this.createDeclaration("display","block");}var displayRule=this.createRule(displaySelectors,[displayDeclaration]);sheet.insertRule(displayRule);// insert content rule
1780var contentSelectors=this.selectorsForPageMargin(page,loc);contentSelectors.insertData({type:"Combinator",name:">"});contentSelectors.insertData({type:"ClassSelector",name:"pagedjs_margin-content"});contentSelectors.insertData({type:"PseudoElementSelector",name:"after",children:null});var contentRule=this.createRule(contentSelectors,_content);sheet.insertRule(contentRule);}}},{key:"addRootVars",value:function addRootVars(ast,width,height,orientation,bleed,bleedrecto,bleedverso,marks){var _this23=this;var rules=[];var selectors=new lib.List();selectors.insertData({type:"PseudoClassSelector",name:"root",children:null});var widthString,heightString;var widthStringRight,heightStringRight;var widthStringLeft,heightStringLeft;if(!bleed){widthString=CSSValueToString(width);heightString=CSSValueToString(height);widthStringRight=CSSValueToString(width);heightStringRight=CSSValueToString(height);widthStringLeft=CSSValueToString(width);heightStringLeft=CSSValueToString(height);}else{widthString="calc( ".concat(CSSValueToString(width)," + ").concat(CSSValueToString(bleed.left)," + ").concat(CSSValueToString(bleed.right)," )");heightString="calc( ".concat(CSSValueToString(height)," + ").concat(CSSValueToString(bleed.top)," + ").concat(CSSValueToString(bleed.bottom)," )");widthStringRight="calc( ".concat(CSSValueToString(width)," + ").concat(CSSValueToString(bleed.left)," + ").concat(CSSValueToString(bleed.right)," )");heightStringRight="calc( ".concat(CSSValueToString(height)," + ").concat(CSSValueToString(bleed.top)," + ").concat(CSSValueToString(bleed.bottom)," )");widthStringLeft="calc( ".concat(CSSValueToString(width)," + ").concat(CSSValueToString(bleed.left)," + ").concat(CSSValueToString(bleed.right)," )");heightStringLeft="calc( ".concat(CSSValueToString(height)," + ").concat(CSSValueToString(bleed.top)," + ").concat(CSSValueToString(bleed.bottom)," )");var bleedTop=this.createVariable("--pagedjs-bleed-top",CSSValueToString(bleed.top));var bleedRight=this.createVariable("--pagedjs-bleed-right",CSSValueToString(bleed.right));var bleedBottom=this.createVariable("--pagedjs-bleed-bottom",CSSValueToString(bleed.bottom));var bleedLeft=this.createVariable("--pagedjs-bleed-left",CSSValueToString(bleed.left));var bleedTopRecto=this.createVariable("--pagedjs-bleed-right-top",CSSValueToString(bleed.top));var bleedRightRecto=this.createVariable("--pagedjs-bleed-right-right",CSSValueToString(bleed.right));var bleedBottomRecto=this.createVariable("--pagedjs-bleed-right-bottom",CSSValueToString(bleed.bottom));var bleedLeftRecto=this.createVariable("--pagedjs-bleed-right-left",CSSValueToString(bleed.left));var bleedTopVerso=this.createVariable("--pagedjs-bleed-left-top",CSSValueToString(bleed.top));var bleedRightVerso=this.createVariable("--pagedjs-bleed-left-right",CSSValueToString(bleed.right));var bleedBottomVerso=this.createVariable("--pagedjs-bleed-left-bottom",CSSValueToString(bleed.bottom));var bleedLeftVerso=this.createVariable("--pagedjs-bleed-left-left",CSSValueToString(bleed.left));if(bleedrecto){bleedTopRecto=this.createVariable("--pagedjs-bleed-right-top",CSSValueToString(bleedrecto.top));bleedRightRecto=this.createVariable("--pagedjs-bleed-right-right",CSSValueToString(bleedrecto.right));bleedBottomRecto=this.createVariable("--pagedjs-bleed-right-bottom",CSSValueToString(bleedrecto.bottom));bleedLeftRecto=this.createVariable("--pagedjs-bleed-right-left",CSSValueToString(bleedrecto.left));widthStringRight="calc( ".concat(CSSValueToString(width)," + ").concat(CSSValueToString(bleedrecto.left)," + ").concat(CSSValueToString(bleedrecto.right)," )");heightStringRight="calc( ".concat(CSSValueToString(height)," + ").concat(CSSValueToString(bleedrecto.top)," + ").concat(CSSValueToString(bleedrecto.bottom)," )");}if(bleedverso){bleedTopVerso=this.createVariable("--pagedjs-bleed-left-top",CSSValueToString(bleedverso.top));bleedRightVerso=this.createVariable("--pagedjs-bleed-left-right",CSSValueToString(bleedverso.right));bleedBottomVerso=this.createVariable("--pagedjs-bleed-left-bottom",CSSValueToString(bleedverso.bottom));bleedLeftVerso=this.createVariable("--pagedjs-bleed-left-left",CSSValueToString(bleedverso.left));widthStringLeft="calc( ".concat(CSSValueToString(width)," + ").concat(CSSValueToString(bleedverso.left)," + ").concat(CSSValueToString(bleedverso.right)," )");heightStringLeft="calc( ".concat(CSSValueToString(height)," + ").concat(CSSValueToString(bleedverso.top)," + ").concat(CSSValueToString(bleedverso.bottom)," )");}var pageWidthVar=this.createVariable("--pagedjs-width",CSSValueToString(width));var pageHeightVar=this.createVariable("--pagedjs-height",CSSValueToString(height));rules.push(bleedTop,bleedRight,bleedBottom,bleedLeft,bleedTopRecto,bleedRightRecto,bleedBottomRecto,bleedLeftRecto,bleedTopVerso,bleedRightVerso,bleedBottomVerso,bleedLeftVerso,pageWidthVar,pageHeightVar);}if(marks){marks.forEach(function(mark){var markDisplay=_this23.createVariable("--pagedjs-mark-"+mark+"-display","block");rules.push(markDisplay);});}// orientation variable
1781if(orientation){var oVar=this.createVariable("--pagedjs-orientation",orientation);rules.push(oVar);if(orientation!=="portrait"){// reverse for orientation
1782var _ref7=[heightString,widthString];widthString=_ref7[0];heightString=_ref7[1];var _ref8=[heightStringRight,widthStringRight];widthStringRight=_ref8[0];heightStringRight=_ref8[1];var _ref9=[heightStringLeft,widthStringLeft];widthStringLeft=_ref9[0];heightStringLeft=_ref9[1];}}var wVar=this.createVariable("--pagedjs-width",widthString);var hVar=this.createVariable("--pagedjs-height",heightString);var wVarR=this.createVariable("--pagedjs-width-right",widthStringRight);var hVarR=this.createVariable("--pagedjs-height-right",heightStringRight);var wVarL=this.createVariable("--pagedjs-width-left",widthStringLeft);var hVarL=this.createVariable("--pagedjs-height-left",heightStringLeft);rules.push(wVar,hVar,wVarR,hVarR,wVarL,hVarL);var rule=this.createRule(selectors,rules);ast.children.appendData(rule);}},{key:"addNotesStyles",value:function addNotesStyles(notes,page,list,item,sheet){for(var note in notes){var selectors=this.selectorsForPage(page);selectors.insertData({type:"Combinator",name:" "});selectors.insertData({type:"ClassSelector",name:"pagedjs_"+note+"_content"});var notesRule=this.createRule(selectors,notes[note]);list.appendData(notesRule);}}/*
1783 @page {
1784 size: var(--pagedjs-width) var(--pagedjs-height);
1785 margin: 0;
1786 padding: 0;
1787 }
1788 */},{key:"addRootPage",value:function addRootPage(ast,size,bleed,bleedrecto,bleedverso){var width=size.width,height=size.height,orientation=size.orientation,format=size.format;var children=new lib.List();var childrenLeft=new lib.List();var childrenRight=new lib.List();var dimensions=new lib.List();var dimensionsLeft=new lib.List();var dimensionsRight=new lib.List();if(bleed){var widthCalculations=new lib.List();var heightCalculations=new lib.List();// width
1789widthCalculations.appendData({type:"Dimension",unit:width.unit,value:width.value});widthCalculations.appendData({type:"WhiteSpace",value:" "});widthCalculations.appendData({type:"Operator",value:"+"});widthCalculations.appendData({type:"WhiteSpace",value:" "});widthCalculations.appendData({type:"Dimension",unit:bleed.left.unit,value:bleed.left.value});widthCalculations.appendData({type:"WhiteSpace",value:" "});widthCalculations.appendData({type:"Operator",value:"+"});widthCalculations.appendData({type:"WhiteSpace",value:" "});widthCalculations.appendData({type:"Dimension",unit:bleed.right.unit,value:bleed.right.value});// height
1790heightCalculations.appendData({type:"Dimension",unit:height.unit,value:height.value});heightCalculations.appendData({type:"WhiteSpace",value:" "});heightCalculations.appendData({type:"Operator",value:"+"});heightCalculations.appendData({type:"WhiteSpace",value:" "});heightCalculations.appendData({type:"Dimension",unit:bleed.top.unit,value:bleed.top.value});heightCalculations.appendData({type:"WhiteSpace",value:" "});heightCalculations.appendData({type:"Operator",value:"+"});heightCalculations.appendData({type:"WhiteSpace",value:" "});heightCalculations.appendData({type:"Dimension",unit:bleed.bottom.unit,value:bleed.bottom.value});dimensions.appendData({type:"Function",name:"calc",children:widthCalculations});dimensions.appendData({type:"WhiteSpace",value:" "});dimensions.appendData({type:"Function",name:"calc",children:heightCalculations});}else if(format){dimensions.appendData({type:"Identifier",name:format});if(orientation){dimensions.appendData({type:"WhiteSpace",value:" "});dimensions.appendData({type:"Identifier",name:orientation});}}else{dimensions.appendData({type:"Dimension",unit:width.unit,value:width.value});dimensions.appendData({type:"WhiteSpace",value:" "});dimensions.appendData({type:"Dimension",unit:height.unit,value:height.value});}children.appendData({type:"Declaration",property:"size",loc:null,value:{type:"Value",children:dimensions}});children.appendData({type:"Declaration",property:"margin",loc:null,value:{type:"Value",children:[{type:"Dimension",unit:"px",value:0}]}});children.appendData({type:"Declaration",property:"padding",loc:null,value:{type:"Value",children:[{type:"Dimension",unit:"px",value:0}]}});children.appendData({type:"Declaration",property:"padding",loc:null,value:{type:"Value",children:[{type:"Dimension",unit:"px",value:0}]}});var rule=ast.children.createItem({type:"Atrule",prelude:null,name:"page",block:{type:"Block",loc:null,children:children}});ast.children.append(rule);if(bleedverso){var widthCalculationsLeft=new lib.List();var heightCalculationsLeft=new lib.List();// width
1791widthCalculationsLeft.appendData({type:"Dimension",unit:width.unit,value:width.value});widthCalculationsLeft.appendData({type:"WhiteSpace",value:" "});widthCalculationsLeft.appendData({type:"Operator",value:"+"});widthCalculationsLeft.appendData({type:"WhiteSpace",value:" "});widthCalculationsLeft.appendData({type:"Dimension",unit:bleedverso.left.unit,value:bleedverso.left.value});widthCalculationsLeft.appendData({type:"WhiteSpace",value:" "});widthCalculationsLeft.appendData({type:"Operator",value:"+"});widthCalculationsLeft.appendData({type:"WhiteSpace",value:" "});widthCalculationsLeft.appendData({type:"Dimension",unit:bleedverso.right.unit,value:bleedverso.right.value});// height
1792heightCalculationsLeft.appendData({type:"Dimension",unit:height.unit,value:height.value});heightCalculationsLeft.appendData({type:"WhiteSpace",value:" "});heightCalculationsLeft.appendData({type:"Operator",value:"+"});heightCalculationsLeft.appendData({type:"WhiteSpace",value:" "});heightCalculationsLeft.appendData({type:"Dimension",unit:bleedverso.top.unit,value:bleedverso.top.value});heightCalculationsLeft.appendData({type:"WhiteSpace",value:" "});heightCalculationsLeft.appendData({type:"Operator",value:"+"});heightCalculationsLeft.appendData({type:"WhiteSpace",value:" "});heightCalculationsLeft.appendData({type:"Dimension",unit:bleedverso.bottom.unit,value:bleedverso.bottom.value});dimensionsLeft.appendData({type:"Function",name:"calc",children:widthCalculationsLeft});dimensionsLeft.appendData({type:"WhiteSpace",value:" "});dimensionsLeft.appendData({type:"Function",name:"calc",children:heightCalculationsLeft});childrenLeft.appendData({type:"Declaration",property:"size",loc:null,value:{type:"Value",children:dimensionsLeft}});var ruleLeft=ast.children.createItem({type:"Atrule",prelude:null,name:"page :left",block:{type:"Block",loc:null,children:childrenLeft}});ast.children.append(ruleLeft);}if(bleedrecto){var widthCalculationsRight=new lib.List();var heightCalculationsRight=new lib.List();// width
1793widthCalculationsRight.appendData({type:"Dimension",unit:width.unit,value:width.value});widthCalculationsRight.appendData({type:"WhiteSpace",value:" "});widthCalculationsRight.appendData({type:"Operator",value:"+"});widthCalculationsRight.appendData({type:"WhiteSpace",value:" "});widthCalculationsRight.appendData({type:"Dimension",unit:bleedrecto.left.unit,value:bleedrecto.left.value});widthCalculationsRight.appendData({type:"WhiteSpace",value:" "});widthCalculationsRight.appendData({type:"Operator",value:"+"});widthCalculationsRight.appendData({type:"WhiteSpace",value:" "});widthCalculationsRight.appendData({type:"Dimension",unit:bleedrecto.right.unit,value:bleedrecto.right.value});// height
1794heightCalculationsRight.appendData({type:"Dimension",unit:height.unit,value:height.value});heightCalculationsRight.appendData({type:"WhiteSpace",value:" "});heightCalculationsRight.appendData({type:"Operator",value:"+"});heightCalculationsRight.appendData({type:"WhiteSpace",value:" "});heightCalculationsRight.appendData({type:"Dimension",unit:bleedrecto.top.unit,value:bleedrecto.top.value});heightCalculationsRight.appendData({type:"WhiteSpace",value:" "});heightCalculationsRight.appendData({type:"Operator",value:"+"});heightCalculationsRight.appendData({type:"WhiteSpace",value:" "});heightCalculationsRight.appendData({type:"Dimension",unit:bleedrecto.bottom.unit,value:bleedrecto.bottom.value});dimensionsRight.appendData({type:"Function",name:"calc",children:widthCalculationsRight});dimensionsRight.appendData({type:"WhiteSpace",value:" "});dimensionsRight.appendData({type:"Function",name:"calc",children:heightCalculationsRight});childrenRight.appendData({type:"Declaration",property:"size",loc:null,value:{type:"Value",children:dimensionsRight}});var ruleRight=ast.children.createItem({type:"Atrule",prelude:null,name:"page :right",block:{type:"Block",loc:null,children:childrenRight}});ast.children.append(ruleRight);}}},{key:"getNth",value:function getNth(nth){var n=nth.indexOf("n");var plus=nth.indexOf("+");var splitN=nth.split("n");var splitP=nth.split("+");var a=null;var b=null;if(n>-1){a=splitN[0];if(plus>-1){b=splitP[1];}}else{b=nth;}return{type:"Nth",loc:null,selector:null,nth:{type:"AnPlusB",loc:null,a:a,b:b}};}},{key:"addPageAttributes",value:function addPageAttributes(page,start,pages){var namedPages=[start.dataset.page];if(namedPages&&namedPages.length){var _iterator4=_createForOfIteratorHelper(namedPages),_step4;try{for(_iterator4.s();!(_step4=_iterator4.n()).done;){var named=_step4.value;if(!named){continue;}page.name=named;page.element.classList.add("pagedjs_named_page");page.element.classList.add("pagedjs_"+named+"_page");if(!start.dataset.splitFrom){page.element.classList.add("pagedjs_"+named+"_first_page");}}}catch(err){_iterator4.e(err);}finally{_iterator4.f();}}}},{key:"getStartElement",value:function getStartElement(content,breakToken){var node=breakToken&&breakToken.node;if(!content&&!breakToken){return;}// No break
1795if(!node){return content.children[0];}// Top level element
1796if(node.nodeType===1&&node.parentNode.nodeType===11){return node;}// Named page
1797if(node.nodeType===1&&node.dataset.page){return node;}// Get top level Named parent
1798var fragment=rebuildAncestors(node);var pages=fragment.querySelectorAll("[data-page]");if(pages.length){return pages[pages.length-1];}else{return fragment.children[0];}}},{key:"beforePageLayout",value:function beforePageLayout(page,contents,breakToken,chunker){var start=this.getStartElement(contents,breakToken);if(start){this.addPageAttributes(page,start,chunker.pages);}// page.element.querySelector('.paged_area').style.color = red;
1799}},{key:"afterPageLayout",value:function afterPageLayout(fragment,page,breakToken,chunker){for(var m in this.marginalia){var _margin=this.marginalia[m];var sels=m.split(" ");var _content2=void 0;if(page.element.matches(sels[0])&&_margin.hasContent){_content2=page.element.querySelector(sels[1]);_content2.classList.add("hasContent");}}// check center
1800["top","bottom"].forEach(function(loc){var marginGroup=page.element.querySelector(".pagedjs_margin-"+loc);var center=page.element.querySelector(".pagedjs_margin-"+loc+"-center");var left=page.element.querySelector(".pagedjs_margin-"+loc+"-left");var right=page.element.querySelector(".pagedjs_margin-"+loc+"-right");var centerContent=center.classList.contains("hasContent");var leftContent=left.classList.contains("hasContent");var rightContent=right.classList.contains("hasContent");var centerWidth,leftWidth,rightWidth;if(leftContent){leftWidth=window.getComputedStyle(left)["max-width"];}if(rightContent){rightWidth=window.getComputedStyle(right)["max-width"];}if(centerContent){centerWidth=window.getComputedStyle(center)["max-width"];if(centerWidth==="none"||centerWidth==="auto"){if(!leftContent&&!rightContent){marginGroup.style["grid-template-columns"]="0 1fr 0";}else if(leftContent){if(!rightContent){if(leftWidth!=="none"&&leftWidth!=="auto"){marginGroup.style["grid-template-columns"]=leftWidth+" 1fr "+leftWidth;}else{marginGroup.style["grid-template-columns"]="auto auto 1fr";left.style["white-space"]="nowrap";center.style["white-space"]="nowrap";var leftOuterWidth=left.offsetWidth;var centerOuterWidth=center.offsetWidth;var outerwidths=leftOuterWidth+centerOuterWidth;var newcenterWidth=centerOuterWidth*100/outerwidths;marginGroup.style["grid-template-columns"]="minmax(16.66%, 1fr) minmax(33%, "+newcenterWidth+"%) minmax(16.66%, 1fr)";left.style["white-space"]="normal";center.style["white-space"]="normal";}}else{if(leftWidth!=="none"&&leftWidth!=="auto"){if(rightWidth!=="none"&&rightWidth!=="auto"){marginGroup.style["grid-template-columns"]=leftWidth+" 1fr "+rightWidth;}else{marginGroup.style["grid-template-columns"]=leftWidth+" 1fr "+leftWidth;}}else{if(rightWidth!=="none"&&rightWidth!=="auto"){marginGroup.style["grid-template-columns"]=rightWidth+" 1fr "+rightWidth;}else{marginGroup.style["grid-template-columns"]="auto auto 1fr";left.style["white-space"]="nowrap";center.style["white-space"]="nowrap";right.style["white-space"]="nowrap";var _leftOuterWidth=left.offsetWidth;var _centerOuterWidth=center.offsetWidth;var rightOuterWidth=right.offsetWidth;var _outerwidths=_leftOuterWidth+_centerOuterWidth+rightOuterWidth;var _newcenterWidth=_centerOuterWidth*100/_outerwidths;if(_newcenterWidth>40){marginGroup.style["grid-template-columns"]="minmax(16.66%, 1fr) minmax(33%, "+_newcenterWidth+"%) minmax(16.66%, 1fr)";}else{marginGroup.style["grid-template-columns"]="repeat(3, 1fr)";}left.style["white-space"]="normal";center.style["white-space"]="normal";right.style["white-space"]="normal";}}}}else{if(rightWidth!=="none"&&rightWidth!=="auto"){marginGroup.style["grid-template-columns"]=rightWidth+" 1fr "+rightWidth;}else{marginGroup.style["grid-template-columns"]="auto auto 1fr";right.style["white-space"]="nowrap";center.style["white-space"]="nowrap";var _rightOuterWidth=right.offsetWidth;var _centerOuterWidth2=center.offsetWidth;var _outerwidths2=_rightOuterWidth+_centerOuterWidth2;var _newcenterWidth2=_centerOuterWidth2*100/_outerwidths2;marginGroup.style["grid-template-columns"]="minmax(16.66%, 1fr) minmax(33%, "+_newcenterWidth2+"%) minmax(16.66%, 1fr)";right.style["white-space"]="normal";center.style["white-space"]="normal";}}}else if(centerWidth!=="none"&&centerWidth!=="auto"){if(leftContent&&leftWidth!=="none"&&leftWidth!=="auto"){marginGroup.style["grid-template-columns"]=leftWidth+" "+centerWidth+" 1fr";}else if(rightContent&&rightWidth!=="none"&&rightWidth!=="auto"){marginGroup.style["grid-template-columns"]="1fr "+centerWidth+" "+rightWidth;}else{marginGroup.style["grid-template-columns"]="1fr "+centerWidth+" 1fr";}}}else{if(leftContent){if(!rightContent){marginGroup.style["grid-template-columns"]="1fr 0 0";}else{if(leftWidth!=="none"&&leftWidth!=="auto"){if(rightWidth!=="none"&&rightWidth!=="auto"){marginGroup.style["grid-template-columns"]=leftWidth+" 1fr "+rightWidth;}else{marginGroup.style["grid-template-columns"]=leftWidth+" 0 1fr";}}else{if(rightWidth!=="none"&&rightWidth!=="auto"){marginGroup.style["grid-template-columns"]="1fr 0 "+rightWidth;}else{marginGroup.style["grid-template-columns"]="auto 1fr auto";left.style["white-space"]="nowrap";right.style["white-space"]="nowrap";var _leftOuterWidth2=left.offsetWidth;var _rightOuterWidth2=right.offsetWidth;var _outerwidths3=_leftOuterWidth2+_rightOuterWidth2;var newLeftWidth=_leftOuterWidth2*100/_outerwidths3;marginGroup.style["grid-template-columns"]="minmax(16.66%, "+newLeftWidth+"%) 0 1fr";left.style["white-space"]="normal";right.style["white-space"]="normal";}}}}else{if(rightWidth!=="none"&&rightWidth!=="auto"){marginGroup.style["grid-template-columns"]="1fr 0 "+rightWidth;}else{marginGroup.style["grid-template-columns"]="0 0 1fr";}}}});// check middle
1801["left","right"].forEach(function(loc){var middle=page.element.querySelector(".pagedjs_margin-"+loc+"-middle.hasContent");var marginGroup=page.element.querySelector(".pagedjs_margin-"+loc);var top=page.element.querySelector(".pagedjs_margin-"+loc+"-top");var bottom=page.element.querySelector(".pagedjs_margin-"+loc+"-bottom");var topContent=top.classList.contains("hasContent");var bottomContent=bottom.classList.contains("hasContent");var middleHeight,topHeight,bottomHeight;if(topContent){topHeight=window.getComputedStyle(top)["max-height"];}if(bottomContent){bottomHeight=window.getComputedStyle(bottom)["max-height"];}if(middle){middleHeight=window.getComputedStyle(middle)["max-height"];if(middleHeight==="none"||middleHeight==="auto"){if(!topContent&&!bottomContent){marginGroup.style["grid-template-rows"]="0 1fr 0";}else if(topContent){if(!bottomContent){if(topHeight!=="none"&&topHeight!=="auto"){marginGroup.style["grid-template-rows"]=topHeight+" calc(100% - "+topHeight+"*2) "+topHeight;}}else{if(topHeight!=="none"&&topHeight!=="auto"){if(bottomHeight!=="none"&&bottomHeight!=="auto"){marginGroup.style["grid-template-rows"]=topHeight+" calc(100% - "+topHeight+" - "+bottomHeight+") "+bottomHeight;}else{marginGroup.style["grid-template-rows"]=topHeight+" calc(100% - "+topHeight+"*2) "+topHeight;}}else{if(bottomHeight!=="none"&&bottomHeight!=="auto"){marginGroup.style["grid-template-rows"]=bottomHeight+" calc(100% - "+bottomHeight+"*2) "+bottomHeight;}}}}else{if(bottomHeight!=="none"&&bottomHeight!=="auto"){marginGroup.style["grid-template-rows"]=bottomHeight+" calc(100% - "+bottomHeight+"*2) "+bottomHeight;}}}else{if(topContent&&topHeight!=="none"&&topHeight!=="auto"){marginGroup.style["grid-template-rows"]=topHeight+" "+middleHeight+" calc(100% - ("+topHeight+" + "+middleHeight+"))";}else if(bottomContent&&bottomHeight!=="none"&&bottomHeight!=="auto"){marginGroup.style["grid-template-rows"]="1fr "+middleHeight+" "+bottomHeight;}else{marginGroup.style["grid-template-rows"]="calc((100% - "+middleHeight+")/2) "+middleHeight+" calc((100% - "+middleHeight+")/2)";}}}else{if(topContent){if(!bottomContent){marginGroup.style["grid-template-rows"]="1fr 0 0";}else{if(topHeight!=="none"&&topHeight!=="auto"){if(bottomHeight!=="none"&&bottomHeight!=="auto"){marginGroup.style["grid-template-rows"]=topHeight+" 1fr "+bottomHeight;}else{marginGroup.style["grid-template-rows"]=topHeight+" 0 1fr";}}else{if(bottomHeight!=="none"&&bottomHeight!=="auto"){marginGroup.style["grid-template-rows"]="1fr 0 "+bottomHeight;}else{marginGroup.style["grid-template-rows"]="1fr 0 1fr";}}}}else{if(bottomHeight!=="none"&&bottomHeight!=="auto"){marginGroup.style["grid-template-rows"]="1fr 0 "+bottomHeight;}else{marginGroup.style["grid-template-rows"]="0 0 1fr";}}}});}// CSS Tree Helpers
1802},{key:"selectorsForPage",value:function selectorsForPage(page){var nthlist;var nth;var selectors=new lib.List();selectors.insertData({type:"ClassSelector",name:"pagedjs_page"});// Named page
1803if(page.name){selectors.insertData({type:"ClassSelector",name:"pagedjs_named_page"});selectors.insertData({type:"ClassSelector",name:"pagedjs_"+page.name+"_page"});}// PsuedoSelector
1804if(page.psuedo&&!(page.name&&page.psuedo==="first")){selectors.insertData({type:"ClassSelector",name:"pagedjs_"+page.psuedo+"_page"});}if(page.name&&page.psuedo==="first"){selectors.insertData({type:"ClassSelector",name:"pagedjs_"+page.name+"_"+page.psuedo+"_page"});}// Nth
1805if(page.nth){nthlist=new lib.List();nth=this.getNth(page.nth);nthlist.insertData(nth);selectors.insertData({type:"PseudoClassSelector",name:"nth-of-type",children:nthlist});}return selectors;}},{key:"selectorsForPageMargin",value:function selectorsForPageMargin(page,margin){var selectors=this.selectorsForPage(page);selectors.insertData({type:"Combinator",name:" "});selectors.insertData({type:"ClassSelector",name:"pagedjs_margin-"+margin});return selectors;}},{key:"createDeclaration",value:function createDeclaration(property,value,important){var children=new lib.List();children.insertData({type:"Identifier",loc:null,name:value});return{type:"Declaration",loc:null,important:important,property:property,value:{type:"Value",loc:null,children:children}};}},{key:"createVariable",value:function createVariable(property,value){return{type:"Declaration",loc:null,property:property,value:{type:"Raw",value:value}};}},{key:"createCalculatedDimension",value:function createCalculatedDimension(property,items,important){var operator=arguments.length>3&&arguments[3]!==undefined?arguments[3]:"+";var children=new lib.List();var calculations=new lib.List();items.forEach(function(item,index){calculations.appendData({type:"Dimension",unit:item.unit,value:item.value});calculations.appendData({type:"WhiteSpace",value:" "});if(index+1<items.length){calculations.appendData({type:"Operator",value:operator});calculations.appendData({type:"WhiteSpace",value:" "});}});children.insertData({type:"Function",loc:null,name:"calc",children:calculations});return{type:"Declaration",loc:null,important:important,property:property,value:{type:"Value",loc:null,children:children}};}},{key:"createDimension",value:function createDimension(property,cssValue,important){var children=new lib.List();children.insertData({type:"Dimension",loc:null,value:cssValue.value,unit:cssValue.unit});return{type:"Declaration",loc:null,important:important,property:property,value:{type:"Value",loc:null,children:children}};}},{key:"createBlock",value:function createBlock(declarations){var block=new lib.List();declarations.forEach(function(declaration){block.insertData(declaration);});return{type:"Block",loc:null,children:block};}},{key:"createRule",value:function createRule(selectors,block){var selectorList=new lib.List();selectorList.insertData({type:"Selector",children:selectors});if(Array.isArray(block)){block=this.createBlock(block);}return{type:"Rule",prelude:{type:"SelectorList",children:selectorList},block:block};}}]);return AtPage;}(Handler);var Breaks=/*#__PURE__*/function(_Handler2){(0,_inherits2["default"])(Breaks,_Handler2);var _super3=_createSuper(Breaks);function Breaks(chunker,polisher,caller){var _this24;(0,_classCallCheck2["default"])(this,Breaks);_this24=_super3.call(this,chunker,polisher,caller);_this24.breaks={};return _this24;}(0,_createClass2["default"])(Breaks,[{key:"onDeclaration",value:function onDeclaration(declaration,dItem,dList,rule){var _this25=this;var property=declaration.property;if(property==="page"){var children=declaration.value.children.first();var _value8=children.name;var _selector2=lib.generate(rule.ruleNode.prelude);var _name9=_value8;var breaker={property:property,value:_value8,selector:_selector2,name:_name9};_selector2.split(",").forEach(function(s){if(!_this25.breaks[s]){_this25.breaks[s]=[breaker];}else{_this25.breaks[s].push(breaker);}});dList.remove(dItem);}if(property==="break-before"||property==="break-after"||property==="page-break-before"||property==="page-break-after"){var _child=declaration.value.children.first();var _value9=_child.name;var _selector3=lib.generate(rule.ruleNode.prelude);if(property==="page-break-before"){property="break-before";}else if(property==="page-break-after"){property="break-after";}var _breaker={property:property,value:_value9,selector:_selector3};_selector3.split(",").forEach(function(s){if(!_this25.breaks[s]){_this25.breaks[s]=[_breaker];}else{_this25.breaks[s].push(_breaker);}});// Remove from CSS -- handle right / left in module
1806dList.remove(dItem);}}},{key:"afterParsed",value:function afterParsed(parsed){this.processBreaks(parsed,this.breaks);}},{key:"processBreaks",value:function processBreaks(parsed,breaks){for(var b in breaks){// Find elements
1807var elements=parsed.querySelectorAll(b);// Add break data
1808for(var i=0;i<elements.length;i++){var _iterator5=_createForOfIteratorHelper(breaks[b]),_step5;try{for(_iterator5.s();!(_step5=_iterator5.n()).done;){var prop=_step5.value;if(prop.property==="break-after"){var _nodeAfter=displayedElementAfter(elements[i],parsed);elements[i].setAttribute("data-break-after",prop.value);if(_nodeAfter){_nodeAfter.setAttribute("data-previous-break-after",prop.value);}}else if(prop.property==="break-before"){var _nodeBefore=displayedElementBefore(elements[i],parsed);// Breaks are only allowed between siblings, not between a box and its container.
1809// If we cannot find a node before we should not break!
1810// https://drafts.csswg.org/css-break-3/#break-propagation
1811if(_nodeBefore){if(prop.value==="page"&&needsPageBreak(elements[i],_nodeBefore)){// we ignore this explicit page break because an implicit page break is already needed
1812continue;}elements[i].setAttribute("data-break-before",prop.value);_nodeBefore.setAttribute("data-next-break-before",prop.value);}}else if(prop.property==="page"){elements[i].setAttribute("data-page",prop.value);var _nodeAfter2=displayedElementAfter(elements[i],parsed);if(_nodeAfter2){_nodeAfter2.setAttribute("data-after-page",prop.value);}}else{elements[i].setAttribute("data-"+prop.property,prop.value);}}}catch(err){_iterator5.e(err);}finally{_iterator5.f();}}}}},{key:"mergeBreaks",value:function mergeBreaks(pageBreaks,newBreaks){for(var b in newBreaks){if(b in pageBreaks){pageBreaks[b]=pageBreaks[b].concat(newBreaks[b]);}else{pageBreaks[b]=newBreaks[b];}}return pageBreaks;}},{key:"addBreakAttributes",value:function addBreakAttributes(pageElement,page){var before=pageElement.querySelector("[data-break-before]");var after=pageElement.querySelector("[data-break-after]");var previousBreakAfter=pageElement.querySelector("[data-previous-break-after]");if(before){if(before.dataset.splitFrom){page.splitFrom=before.dataset.splitFrom;pageElement.setAttribute("data-split-from",before.dataset.splitFrom);}else if(before.dataset.breakBefore&&before.dataset.breakBefore!=="avoid"){page.breakBefore=before.dataset.breakBefore;pageElement.setAttribute("data-break-before",before.dataset.breakBefore);}}if(after&&after.dataset){if(after.dataset.splitTo){page.splitTo=after.dataset.splitTo;pageElement.setAttribute("data-split-to",after.dataset.splitTo);}else if(after.dataset.breakAfter&&after.dataset.breakAfter!=="avoid"){page.breakAfter=after.dataset.breakAfter;pageElement.setAttribute("data-break-after",after.dataset.breakAfter);}}if(previousBreakAfter&&previousBreakAfter.dataset){if(previousBreakAfter.dataset.previousBreakAfter&&previousBreakAfter.dataset.previousBreakAfter!=="avoid"){page.previousBreakAfter=previousBreakAfter.dataset.previousBreakAfter;}}}},{key:"afterPageLayout",value:function afterPageLayout(pageElement,page){this.addBreakAttributes(pageElement,page);}}]);return Breaks;}(Handler);var PrintMedia=/*#__PURE__*/function(_Handler3){(0,_inherits2["default"])(PrintMedia,_Handler3);var _super4=_createSuper(PrintMedia);function PrintMedia(chunker,polisher,caller){(0,_classCallCheck2["default"])(this,PrintMedia);return _super4.call(this,chunker,polisher,caller);}(0,_createClass2["default"])(PrintMedia,[{key:"onAtMedia",value:function onAtMedia(node,item,list){var media=this.getMediaName(node);var rules;if(media.includes("print")){rules=node.block.children;// Append rules to the end of main rules list
1813// TODO: this isn't working right, needs to check what is in the prelude
1814/*
1815 rules.forEach((selectList) => {
1816 if (selectList.prelude) {
1817 selectList.prelude.children.forEach((rule) => {
1818
1819 rule.children.prependData({
1820 type: "Combinator",
1821 name: " "
1822 });
1823
1824 rule.children.prependData({
1825 type: "ClassSelector",
1826 name: "pagedjs_page"
1827 });
1828 });
1829 }
1830 });
1831
1832 list.insertList(rules, item);
1833 */ // Append rules to the end of main rules list
1834list.appendList(rules);// Remove rules from the @media block
1835list.remove(item);}else if(!media.includes("all")&&!media.includes("pagedjs-ignore")){list.remove(item);}}},{key:"getMediaName",value:function getMediaName(node){var media=[];if(typeof node.prelude==="undefined"||node.prelude.type!=="AtrulePrelude"){return;}lib.walk(node.prelude,{visit:"Identifier",enter:function enter(identNode,iItem,iList){media.push(identNode.name);}});return media;}}]);return PrintMedia;}(Handler);var Splits=/*#__PURE__*/function(_Handler4){(0,_inherits2["default"])(Splits,_Handler4);var _super5=_createSuper(Splits);function Splits(chunker,polisher,caller){(0,_classCallCheck2["default"])(this,Splits);return _super5.call(this,chunker,polisher,caller);}(0,_createClass2["default"])(Splits,[{key:"afterPageLayout",value:function afterPageLayout(pageElement,page,breakToken,chunker){var splits=Array.from(pageElement.querySelectorAll("[data-split-from]"));var pages=pageElement.parentNode;var index=Array.prototype.indexOf.call(pages.children,pageElement);var prevPage;if(index===0){return;}prevPage=pages.children[index-1];var from;// Capture the last from element
1836splits.forEach(function(split){var ref=split.dataset.ref;from=prevPage.querySelector("[data-ref='"+ref+"']:not([data-split-to])");if(from){from.dataset.splitTo=ref;if(!from.dataset.splitFrom){from.dataset.splitOriginal=true;}}});// Fix alignment on the deepest split element
1837if(from){this.handleAlignment(from);}}},{key:"handleAlignment",value:function handleAlignment(node){var styles=window.getComputedStyle(node);var align=styles["text-align"];var alignLast=styles["text-align-last"];node.dataset.lastSplitElement="true";if(align==="justify"&&alignLast==="auto"){node.dataset.alignLastSplitElement="justify";}else{node.dataset.alignLastSplitElement=alignLast;}}}]);return Splits;}(Handler);var Counters=/*#__PURE__*/function(_Handler5){(0,_inherits2["default"])(Counters,_Handler5);var _super6=_createSuper(Counters);function Counters(chunker,polisher,caller){var _this26;(0,_classCallCheck2["default"])(this,Counters);_this26=_super6.call(this,chunker,polisher,caller);_this26.styleSheet=polisher.styleSheet;_this26.counters={};_this26.resetCountersMap=new Map();return _this26;}(0,_createClass2["default"])(Counters,[{key:"onDeclaration",value:function onDeclaration(declaration,dItem,dList,rule){var property=declaration.property;if(property==="counter-increment"){this.handleIncrement(declaration,rule);// clean up empty declaration
1838var hasProperities=false;declaration.value.children.forEach(function(data){if(data.type&&data.type!=="WhiteSpace"){hasProperities=true;}});if(!hasProperities){dList.remove(dItem);}}else if(property==="counter-reset"){this.handleReset(declaration,rule);// clean up empty declaration
1839var _hasProperities=false;declaration.value.children.forEach(function(data){if(data.type&&data.type!=="WhiteSpace"){_hasProperities=true;}});if(!_hasProperities){dList.remove(dItem);}}}},{key:"afterParsed",value:function afterParsed(parsed){this.processCounters(parsed,this.counters);this.scopeCounters(this.counters);}},{key:"addCounter",value:function addCounter(name){if(name in this.counters){return this.counters[name];}this.counters[name]={name:name,increments:{},resets:{}};return this.counters[name];}},{key:"handleIncrement",value:function handleIncrement(declaration,rule){var _this27=this;var increments=[];var children=declaration.value.children;children.forEach(function(data,item){if(data.type&&data.type==="Identifier"){var _name10=data.name;if(_name10==="page"||_name10.indexOf("target-counter-")===0){return;}var whitespace,_number,_value10;if(item.next&&item.next.data.type==="WhiteSpace"){whitespace=item.next;}if(whitespace&&whitespace.next&&whitespace.next.data.type==="Number"){_number=whitespace.next;_value10=parseInt(_number.data.value);}var _selector4=lib.generate(rule.ruleNode.prelude);var counter;if(!(_name10 in _this27.counters)){counter=_this27.addCounter(_name10);}else{counter=_this27.counters[_name10];}var increment={selector:_selector4,number:_value10||1};counter.increments[_selector4]=increment;increments.push(increment);// Remove the parsed resets
1840children.remove(item);if(whitespace){children.remove(whitespace);}if(_number){children.remove(_number);}}});return increments;}},{key:"handleReset",value:function handleReset(declaration,rule){var _this28=this;var resets=[];var children=declaration.value.children;children.forEach(function(data,item){if(data.type&&data.type==="Identifier"){var _name11=data.name;var whitespace,_number2,_value11;if(item.next&&item.next.data.type==="WhiteSpace"){whitespace=item.next;}if(whitespace&&whitespace.next&&whitespace.next.data.type==="Number"){_number2=whitespace.next;_value11=parseInt(_number2.data.value);}var counter;var _selector5;var prelude=rule.ruleNode.prelude;if(rule.ruleNode.type==="Atrule"&&rule.ruleNode.name==="page"){_selector5=".pagedjs_page";}else{_selector5=lib.generate(prelude||rule.ruleNode);}if(_name11==="footnote"){_this28.addFootnoteMarkerCounter(declaration.value.children);}if(!(_name11 in _this28.counters)){counter=_this28.addCounter(_name11);}else{counter=_this28.counters[_name11];}var reset={selector:_selector5,number:_value11||0};counter.resets[_selector5]=reset;resets.push(reset);if(_selector5!==".pagedjs_page"){// Remove the parsed resets
1841children.remove(item);if(whitespace){children.remove(whitespace);}if(_number2){children.remove(_number2);}}}});return resets;}},{key:"processCounters",value:function processCounters(parsed,counters){var counter;for(var c in counters){counter=this.counters[c];this.processCounterIncrements(parsed,counter);this.processCounterResets(parsed,counter);if(c!=="page"){this.addCounterValues(parsed,counter);}}}},{key:"scopeCounters",value:function scopeCounters(counters){var countersArray=[];for(var c in counters){if(c!=="page"){countersArray.push("".concat(counters[c].name," 0"));}}// Add to pages to allow cross page scope
1842this.insertRule(".pagedjs_pages { counter-reset: ".concat(countersArray.join(" ")," page 0 pages var(--pagedjs-page-count) footnote var(--pagedjs-footnotes-count) footnote-marker var(--pagedjs-footnotes-count)}"));}},{key:"insertRule",value:function insertRule(rule){this.styleSheet.insertRule(rule,this.styleSheet.cssRules.length);}},{key:"processCounterIncrements",value:function processCounterIncrements(parsed,counter){var increment;for(var inc in counter.increments){increment=counter.increments[inc];// Find elements for increments
1843var incrementElements=parsed.querySelectorAll(increment.selector);// Add counter data
1844for(var _i8=0;_i8<incrementElements.length;_i8++){incrementElements[_i8].setAttribute("data-counter-"+counter.name+"-increment",increment.number);if(incrementElements[_i8].getAttribute("data-counter-increment")){incrementElements[_i8].setAttribute("data-counter-increment",incrementElements[_i8].getAttribute("data-counter-increment")+" "+counter.name);}else{incrementElements[_i8].setAttribute("data-counter-increment",counter.name);}}}}},{key:"processCounterResets",value:function processCounterResets(parsed,counter){var reset;for(var r in counter.resets){reset=counter.resets[r];// Find elements for resets
1845var resetElements=parsed.querySelectorAll(reset.selector);// Add counter data
1846for(var i=0;i<resetElements.length;i++){resetElements[i].setAttribute("data-counter-"+counter.name+"-reset",reset.number);if(resetElements[i].getAttribute("data-counter-reset")){resetElements[i].setAttribute("data-counter-reset",resetElements[i].getAttribute("data-counter-reset")+" "+counter.name);}else{resetElements[i].setAttribute("data-counter-reset",counter.name);}}}}},{key:"addCounterValues",value:function addCounterValues(parsed,counter){var counterName=counter.name;if(counterName==="page"||counterName==="footnote"){return;}var elements=parsed.querySelectorAll("[data-counter-"+counterName+"-reset], [data-counter-"+counterName+"-increment]");var count=0;var element;var increment,reset;var resetValue,incrementValue,resetDelta;var incrementArray;for(var _i9=0;_i9<elements.length;_i9++){element=elements[_i9];resetDelta=0;incrementArray=[];if(element.hasAttribute("data-counter-"+counterName+"-reset")){reset=element.getAttribute("data-counter-"+counterName+"-reset");resetValue=parseInt(reset);// Use negative increment value inplace of reset
1847resetDelta=resetValue-count;incrementArray.push("".concat(counterName," ").concat(resetDelta));count=resetValue;}if(element.hasAttribute("data-counter-"+counterName+"-increment")){increment=element.getAttribute("data-counter-"+counterName+"-increment");incrementValue=parseInt(increment);count+=incrementValue;element.setAttribute("data-counter-"+counterName+"-value",count);incrementArray.push("".concat(counterName," ").concat(incrementValue));}if(incrementArray.length>0){this.incrementCounterForElement(element,incrementArray);}}}},{key:"addFootnoteMarkerCounter",value:function addFootnoteMarkerCounter(list){var markers=[];lib.walk(list,{visit:"Identifier",enter:function enter(identNode,iItem,iList){markers.push(identNode.name);}});// Already added
1848if(markers.includes("footnote-maker")){return;}list.insertData({type:"WhiteSpace",value:" "});list.insertData({type:"Identifier",name:"footnote-marker"});list.insertData({type:"WhiteSpace",value:" "});list.insertData({type:"Number",value:0});}},{key:"incrementCounterForElement",value:function incrementCounterForElement(element,incrementArray){if(!element||!incrementArray||incrementArray.length===0)return;var ref=element.dataset.ref;var prevIncrements=Array.from(this.styleSheet.cssRules).filter(function(rule){return rule.selectorText==="[data-ref=\"".concat(element.dataset.ref,"\"]:not([data-split-from])")&&rule.style[0]==="counter-increment";});var increments=[];var _iterator6=_createForOfIteratorHelper(prevIncrements),_step6;try{for(_iterator6.s();!(_step6=_iterator6.n()).done;){var styleRule=_step6.value;var values=styleRule.style.counterIncrement.split(" ");for(var _i10=0;_i10<values.length;_i10+=2){increments.push(values[_i10]+" "+values[_i10+1]);}}}catch(err){_iterator6.e(err);}finally{_iterator6.f();}Array.prototype.push.apply(increments,incrementArray);this.insertRule("[data-ref=\"".concat(ref,"\"]:not([data-split-from]) { counter-increment: ").concat(increments.join(" ")," }"));}},{key:"afterPageLayout",value:function afterPageLayout(pageElement,page){var _this29=this;var resets=[];var pgreset=pageElement.querySelectorAll("[data-counter-page-reset]:not([data-split-from])");pgreset.forEach(function(reset){var ref=reset.dataset&&reset.dataset.ref;if(ref&&_this29.resetCountersMap.has(ref));else{if(ref){_this29.resetCountersMap.set(ref,"");}var _value12=reset.dataset.counterPageReset;resets.push("page ".concat(_value12));}});var notereset=pageElement.querySelectorAll("[data-counter-footnote-reset]:not([data-split-from])");notereset.forEach(function(reset){var value=reset.dataset.counterFootnoteReset;resets.push("footnote ".concat(value));resets.push("footnote-marker ".concat(value));});if(resets.length){this.styleSheet.insertRule("[data-page-number=\"".concat(pageElement.dataset.pageNumber,"\"] { counter-increment: none; counter-reset: ").concat(resets.join(" ")," }"),this.styleSheet.cssRules.length);}}}]);return Counters;}(Handler);var Lists=/*#__PURE__*/function(_Handler6){(0,_inherits2["default"])(Lists,_Handler6);var _super7=_createSuper(Lists);function Lists(chunker,polisher,caller){(0,_classCallCheck2["default"])(this,Lists);return _super7.call(this,chunker,polisher,caller);}(0,_createClass2["default"])(Lists,[{key:"afterParsed",value:function afterParsed(content){var orderedLists=content.querySelectorAll("ol");var _iterator7=_createForOfIteratorHelper(orderedLists),_step7;try{for(_iterator7.s();!(_step7=_iterator7.n()).done;){var list=_step7.value;this.addDataNumbers(list);}}catch(err){_iterator7.e(err);}finally{_iterator7.f();}}},{key:"afterPageLayout",value:function afterPageLayout(pageElement,page,breakToken,chunker){var orderedLists=pageElement.getElementsByTagName("ol");var _iterator8=_createForOfIteratorHelper(orderedLists),_step8;try{for(_iterator8.s();!(_step8=_iterator8.n()).done;){var list=_step8.value;if(list.firstElementChild){list.start=list.firstElementChild.dataset.itemNum;}}}catch(err){_iterator8.e(err);}finally{_iterator8.f();}}},{key:"addDataNumbers",value:function addDataNumbers(list){var start=1;if(list.hasAttribute("start")){start=parseInt(list.getAttribute("start"),10);if(isNaN(start)){start=1;}}var items=list.children;for(var i=0;i<items.length;i++){items[i].setAttribute("data-item-num",i+start);}}}]);return Lists;}(Handler);var PositionFixed=/*#__PURE__*/function(_Handler7){(0,_inherits2["default"])(PositionFixed,_Handler7);var _super8=_createSuper(PositionFixed);function PositionFixed(chunker,polisher,caller){var _this30;(0,_classCallCheck2["default"])(this,PositionFixed);_this30=_super8.call(this,chunker,polisher,caller);_this30.styleSheet=polisher.styleSheet;_this30.fixedElementsSelector=[];_this30.fixedElements=[];return _this30;}(0,_createClass2["default"])(PositionFixed,[{key:"onDeclaration",value:function onDeclaration(declaration,dItem,dList,rule){if(declaration.property==="position"&&declaration.value.children.first().name==="fixed"){var _selector6=lib.generate(rule.ruleNode.prelude);this.fixedElementsSelector.push(_selector6);dList.remove(dItem);}}},{key:"afterParsed",value:function afterParsed(fragment){var _this31=this;this.fixedElementsSelector.forEach(function(fixedEl){fragment.querySelectorAll("".concat(fixedEl)).forEach(function(el){el.style.setProperty("position","absolute");_this31.fixedElements.push(el);el.remove();});});}},{key:"afterPageLayout",value:function afterPageLayout(pageElement,page,breakToken){this.fixedElements.forEach(function(el){var clone=el.cloneNode(true);pageElement.querySelector(".pagedjs_pagebox").insertAdjacentElement("afterbegin",clone);});}}]);return PositionFixed;}(Handler);var PageCounterIncrement=/*#__PURE__*/function(_Handler8){(0,_inherits2["default"])(PageCounterIncrement,_Handler8);var _super9=_createSuper(PageCounterIncrement);function PageCounterIncrement(chunker,polisher,caller){var _this32;(0,_classCallCheck2["default"])(this,PageCounterIncrement);_this32=_super9.call(this,chunker,polisher,caller);_this32.styleSheet=polisher.styleSheet;_this32.pageCounter={name:"page",increments:{},resets:{}};return _this32;}(0,_createClass2["default"])(PageCounterIncrement,[{key:"onDeclaration",value:function onDeclaration(declaration,dItem,dList,rule){var property=declaration.property;if(property==="counter-increment"){var inc=this.handleIncrement(declaration,rule);if(inc){dList.remove(dItem);}}}},{key:"afterParsed",value:function afterParsed(_){for(var inc in this.pageCounter.increments){var increment=this.pageCounter.increments[inc];this.insertRule("".concat(increment.selector," { --pagedjs-page-counter-increment: ").concat(increment.number," }"));}}},{key:"handleIncrement",value:function handleIncrement(declaration,rule){var identifier=declaration.value.children.first();var number=declaration.value.children.getSize()>1?declaration.value.children.last().value:1;var name=identifier&&identifier.name;if(name&&name.indexOf("target-counter-")===0){return;}// A counter named page is automatically created and incremented by 1 on every page of the document,
1849// unless the counter-increment property in the page context explicitly specifies a different increment for the page counter.
1850// https://www.w3.org/TR/css-page-3/#page-based-counters
1851if(name!=="page"){return;}// the counter-increment property is not defined on the page context (i.e. @page rule), ignoring...
1852if(rule.ruleNode.name==="page"&&rule.ruleNode.type==="Atrule"){return;}var selector=lib.generate(rule.ruleNode.prelude);return this.pageCounter.increments[selector]={selector:selector,number:number};}},{key:"insertRule",value:function insertRule(rule){this.styleSheet.insertRule(rule,this.styleSheet.cssRules.length);}}]);return PageCounterIncrement;}(Handler);var NthOfType=/*#__PURE__*/function(_Handler9){(0,_inherits2["default"])(NthOfType,_Handler9);var _super10=_createSuper(NthOfType);function NthOfType(chunker,polisher,caller){var _this33;(0,_classCallCheck2["default"])(this,NthOfType);_this33=_super10.call(this,chunker,polisher,caller);_this33.styleSheet=polisher.styleSheet;_this33.selectors={};return _this33;}(0,_createClass2["default"])(NthOfType,[{key:"onRule",value:function onRule(ruleNode,ruleItem,rulelist){var _this34=this;var selector=lib.generate(ruleNode.prelude);if(selector.match(/:(first|last|nth)-of-type/)){var declarations=lib.generate(ruleNode.block);declarations=declarations.replace(/[{}]/g,"");var uuid="nth-of-type-"+UUID();selector.split(",").forEach(function(s){if(!_this34.selectors[s]){_this34.selectors[s]=[uuid,declarations];}else{_this34.selectors[s][1]="".concat(_this34.selectors[s][1],";").concat(declarations);}});rulelist.remove(ruleItem);}}},{key:"afterParsed",value:function afterParsed(parsed){this.processSelectors(parsed,this.selectors);}},{key:"processSelectors",value:function processSelectors(parsed,selectors){// add the new attributes to matching elements
1853for(var s in selectors){var elements=parsed.querySelectorAll(s);for(var i=0;i<elements.length;i++){var dataNthOfType=elements[i].getAttribute("data-nth-of-type");if(dataNthOfType&&dataNthOfType!=""){dataNthOfType="".concat(dataNthOfType,",").concat(selectors[s][0]);elements[i].setAttribute("data-nth-of-type",dataNthOfType);}else{elements[i].setAttribute("data-nth-of-type",selectors[s][0]);}}var rule="*[data-nth-of-type*='".concat(selectors[s][0],"'] { ").concat(selectors[s][1],"; }");this.styleSheet.insertRule(rule,this.styleSheet.cssRules.length);}}}]);return NthOfType;}(Handler);var Following=/*#__PURE__*/function(_Handler10){(0,_inherits2["default"])(Following,_Handler10);var _super11=_createSuper(Following);function Following(chunker,polisher,caller){var _this35;(0,_classCallCheck2["default"])(this,Following);_this35=_super11.call(this,chunker,polisher,caller);_this35.styleSheet=polisher.styleSheet;_this35.selectors={};return _this35;}(0,_createClass2["default"])(Following,[{key:"onRule",value:function onRule(ruleNode,ruleItem,rulelist){var _this36=this;var selector=lib.generate(ruleNode.prelude);if(selector.match(/\+/)){var declarations=lib.generate(ruleNode.block);declarations=declarations.replace(/[{}]/g,"");var uuid="following-"+UUID();selector.split(",").forEach(function(s){if(!_this36.selectors[s]){_this36.selectors[s]=[uuid,declarations];}else{_this36.selectors[s][1]="".concat(_this36.selectors[s][1],";").concat(declarations);}});rulelist.remove(ruleItem);}}},{key:"afterParsed",value:function afterParsed(parsed){this.processSelectors(parsed,this.selectors);}},{key:"processSelectors",value:function processSelectors(parsed,selectors){// add the new attributes to matching elements
1854for(var s in selectors){var elements=parsed.querySelectorAll(s);for(var i=0;i<elements.length;i++){var dataFollowing=elements[i].getAttribute("data-following");if(dataFollowing&&dataFollowing!=""){dataFollowing="".concat(dataFollowing,",").concat(selectors[s][0]);elements[i].setAttribute("data-following",dataFollowing);}else{elements[i].setAttribute("data-following",selectors[s][0]);}}var rule="*[data-following*='".concat(selectors[s][0],"'] { ").concat(selectors[s][1],"; }");this.styleSheet.insertRule(rule,this.styleSheet.cssRules.length);}}}]);return Following;}(Handler);var Footnotes=/*#__PURE__*/function(_Handler11){(0,_inherits2["default"])(Footnotes,_Handler11);var _super12=_createSuper(Footnotes);function Footnotes(chunker,polisher,caller){var _this37;(0,_classCallCheck2["default"])(this,Footnotes);_this37=_super12.call(this,chunker,polisher,caller);_this37.footnotes={};_this37.needsLayout=[];return _this37;}(0,_createClass2["default"])(Footnotes,[{key:"onDeclaration",value:function onDeclaration(declaration,dItem,dList,rule){var property=declaration.property;if(property==="float"){var identifier=declaration.value.children&&declaration.value.children.first();var location=identifier&&identifier.name;if(location==="footnote"){var _selector7=lib.generate(rule.ruleNode.prelude);this.footnotes[_selector7]={selector:_selector7,policy:"auto",display:"block"};dList.remove(dItem);}}if(property==="footnote-policy"){var _identifier=declaration.value.children&&declaration.value.children.first();var policy=_identifier&&_identifier.name;if(policy){var _selector8=lib.generate(rule.ruleNode.prelude);var note=this.footnotes[_selector8];if(note){note.policy=policy;}}}if(property==="footnote-display"){var _identifier2=declaration.value.children&&declaration.value.children.first();var _display=_identifier2&&_identifier2.name;var _selector9=lib.generate(rule.ruleNode.prelude);if(_display&&this.footnotes[_selector9]){var _note=this.footnotes[_selector9];if(_note){_note.display=_display;}}}}},{key:"onPseudoSelector",value:function onPseudoSelector(pseudoNode,pItem,pList,selector,rule){var name=pseudoNode.name;if(name==="footnote-marker"){// switch ::footnote-marker to [data-footnote-marker]::before
1855var prelude=rule.ruleNode.prelude;var newPrelude=new lib.List();// Can't get remove to work, so just copying everything else
1856prelude.children.first().children.each(function(node){if(node.type!=="PseudoElementSelector"){newPrelude.appendData(node);}});// Add our data call
1857newPrelude.appendData({type:"AttributeSelector",name:{type:"Identifier",name:"data-footnote-marker"},flags:null,loc:null,matcher:null,value:null});// Add new pseudo element
1858newPrelude.appendData({type:"PseudoElementSelector",name:"marker",loc:null,children:null});prelude.children.first().children=newPrelude;}if(name==="footnote-call"){// switch ::footnote-call to [data-footnote-call]::after
1859var _prelude=rule.ruleNode.prelude;var _newPrelude=new lib.List();// Can't get remove to work, so just copying everything else
1860_prelude.children.first().children.each(function(node){if(node.type!=="PseudoElementSelector"){_newPrelude.appendData(node);}});// Add our data call
1861_newPrelude.appendData({type:"AttributeSelector",name:{type:"Identifier",name:"data-footnote-call"},flags:null,loc:null,matcher:null,value:null});// Add new pseudo element
1862_newPrelude.appendData({type:"PseudoElementSelector",name:"after",loc:null,children:null});_prelude.children.first().children=_newPrelude;}}},{key:"afterParsed",value:function afterParsed(parsed){this.processFootnotes(parsed,this.footnotes);}},{key:"processFootnotes",value:function processFootnotes(parsed,notes){for(var n in notes){// Find elements
1863var elements=parsed.querySelectorAll(n);var element=void 0;var note=notes[n];for(var i=0;i<elements.length;i++){element=elements[i];// Add note type
1864element.setAttribute("data-note","footnote");element.setAttribute("data-break-before","avoid");element.setAttribute("data-note-policy",note.policy||"auto");element.setAttribute("data-note-display",note.display||"block");// Mark all parents
1865this.processFootnoteContainer(element);}}}},{key:"processFootnoteContainer",value:function processFootnoteContainer(node){// Find the container
1866var element=node.parentElement;var prevElement=element;// Walk up the dom until we find a container element
1867while(element){if(isContainer(element)){// Add flag to the previous non-container element that will render with children
1868prevElement.setAttribute("data-has-notes","true");break;}prevElement=element;element=element.parentElement;// If no containers were found and there are no further parents flag the last element
1869if(!element){prevElement.setAttribute("data-has-notes","true");}}}},{key:"renderNode",value:function renderNode(node){if(node.nodeType==1){// Get all notes
1870var notes;// Ingnore html element nodes, like mathml
1871if(!node.dataset){return;}if(node.dataset.note==="footnote"){notes=[node];}else if(node.dataset.hasNotes||node.querySelectorAll("[data-note='footnote']")){notes=node.querySelectorAll("[data-note='footnote']");}if(notes&&notes.length){this.findVisibleFootnotes(notes,node);}}}},{key:"findVisibleFootnotes",value:function findVisibleFootnotes(notes,node){var area,size,right;area=node.closest(".pagedjs_page_content");size=area.getBoundingClientRect();right=size.left+size.width;for(var _i11=0;_i11<notes.length;++_i11){var currentNote=notes[_i11];var bounds=currentNote.getBoundingClientRect();var _left3=bounds.left;if(_left3<right){// Add call for the note
1872this.moveFootnote(currentNote,node.closest(".pagedjs_area"),true);}}}},{key:"moveFootnote",value:function moveFootnote(node,pageArea,needsNoteCall){// let pageArea = node.closest(".pagedjs_area");
1873var noteArea=pageArea.querySelector(".pagedjs_footnote_area");var noteContent=noteArea.querySelector(".pagedjs_footnote_content");var noteInnerContent=noteContent.querySelector(".pagedjs_footnote_inner_content");if(!isElement(node)){return;}// Add call for the note
1874var noteCall;if(needsNoteCall){noteCall=this.createFootnoteCall(node);}// Remove the break before attribute for future layout
1875node.removeAttribute("data-break-before");// Check if note already exists for overflow
1876var existing=noteInnerContent.querySelector("[data-ref=\"".concat(node.dataset.ref,"\"]"));if(existing){// Remove the note from the flow but no need to render it again
1877node.remove();return;}// Add the note node
1878noteInnerContent.appendChild(node);// Remove empty class
1879if(noteContent.classList.contains("pagedjs_footnote_empty")){noteContent.classList.remove("pagedjs_footnote_empty");}// Add marker
1880node.dataset.footnoteMarker=node.dataset.ref;// Add Id
1881node.id="note-".concat(node.dataset.ref);// Get note content size
1882var height=noteContent.scrollHeight;// Check the noteCall is still on screen
1883var area=pageArea.querySelector(".pagedjs_page_content");var size=area.getBoundingClientRect();var right=size.left+size.width;// TODO: add a max height in CSS
1884// Check element sizes
1885var noteCallBounds=noteCall&&noteCall.getBoundingClientRect();var noteAreaBounds=noteArea.getBoundingClientRect();// Get the @footnote margins
1886var noteContentMargins=this.marginsHeight(noteContent);var noteContentPadding=this.paddingHeight(noteContent);var noteContentBorders=this.borderHeight(noteContent);var total=noteContentMargins+noteContentPadding+noteContentBorders;// Get the top of the @footnote area
1887var notAreaTop=Math.floor(noteAreaBounds.top);// If the height isn't set yet, remove the margins from the top
1888if(noteAreaBounds.height===0){notAreaTop-=this.marginsHeight(noteContent,false);notAreaTop-=this.paddingHeight(noteContent,false);notAreaTop-=this.borderHeight(noteContent,false);}// Determine the note call position and offset per policy
1889var notePolicy=node.dataset.notePolicy;var noteCallPosition=0;var noteCallOffset=0;if(noteCall){// Get the correct line bottom for super or sub styled callouts
1890var prevSibling=noteCall.previousSibling;var range=new Range();if(prevSibling){range.setStartBefore(prevSibling);}else{range.setStartBefore(noteCall);}range.setEndAfter(noteCall);var rangeBounds=range.getBoundingClientRect();noteCallPosition=rangeBounds.bottom;if(!notePolicy||notePolicy==="auto"){noteCallOffset=Math.ceil(rangeBounds.bottom);}else if(notePolicy==="line"){noteCallOffset=Math.ceil(rangeBounds.top);}else if(notePolicy==="block"){// Check that there is a previous element on the page
1891var parentParagraph=noteCall.closest("p").previousElementSibling;if(parentParagraph){noteCallOffset=Math.ceil(parentParagraph.getBoundingClientRect().bottom);}else{noteCallOffset=Math.ceil(rangeBounds.bottom);}}}var contentDelta=height+total-noteAreaBounds.height;// Space between the top of the footnotes area and the bottom of the footnote call
1892var noteDelta=noteCallPosition?notAreaTop-noteCallPosition:0;// Space needed for the force a break for the policy of the footnote
1893var notePolicyDelta=noteCallPosition?Math.floor(noteAreaBounds.top)-noteCallOffset:0;var hasNotes=noteArea.querySelector("[data-note='footnote']");if(needsNoteCall&&noteCallBounds.left>right){// Note is offscreen and will be chunked to the next page on overflow
1894node.remove();}else if(!hasNotes&&needsNoteCall&&total>noteDelta){// No space to add even the footnote area
1895pageArea.style.setProperty("--pagedjs-footnotes-height","0px");// Add a wrapper as this div is removed later
1896var wrapperDiv=document.createElement("div");wrapperDiv.appendChild(node);// Push to the layout queue for the next page
1897this.needsLayout.push(wrapperDiv);}else if(!needsNoteCall){// Call was previously added, force adding footnote
1898pageArea.style.setProperty("--pagedjs-footnotes-height","".concat(height+total,"px"));}else if(noteCallPosition<noteAreaBounds.top-contentDelta){// the current note content will fit without pushing the call to the next page
1899pageArea.style.setProperty("--pagedjs-footnotes-height","".concat(height+noteContentMargins+noteContentBorders,"px"));}else{// set height to just before note call
1900pageArea.style.setProperty("--pagedjs-footnotes-height","".concat(noteAreaBounds.height+notePolicyDelta,"px"));noteInnerContent.style.height=noteAreaBounds.height+notePolicyDelta-total+"px";}}},{key:"createFootnoteCall",value:function createFootnoteCall(node){var parentElement=node.parentElement;var footnoteCall=document.createElement("a");var _iterator9=_createForOfIteratorHelper(node.classList),_step9;try{for(_iterator9.s();!(_step9=_iterator9.n()).done;){var className=_step9.value;footnoteCall.classList.add("".concat(className));}}catch(err){_iterator9.e(err);}finally{_iterator9.f();}footnoteCall.dataset.footnoteCall=node.dataset.ref;footnoteCall.dataset.ref=node.dataset.ref;// Increment for counters
1901footnoteCall.dataset.dataCounterFootnoteIncrement=1;// Add link
1902footnoteCall.href="#note-".concat(node.dataset.ref);parentElement.insertBefore(footnoteCall,node);return footnoteCall;}},{key:"afterPageLayout",value:function afterPageLayout(pageElement,page,breakToken,chunker){var pageArea=pageElement.querySelector(".pagedjs_area");var noteArea=page.footnotesArea;var noteContent=noteArea.querySelector(".pagedjs_footnote_content");var noteInnerContent=noteArea.querySelector(".pagedjs_footnote_inner_content");var noteContentBounds=noteContent.getBoundingClientRect();var width=noteContentBounds.width;noteInnerContent.style.columnWidth=Math.round(width)+"px";noteInnerContent.style.columnGap="calc(var(--pagedjs-margin-right) + var(--pagedjs-margin-left))";// Get overflow
1903var layout=new Layout(noteArea,undefined,chunker.settings);var overflow=layout.findOverflow(noteInnerContent,noteContentBounds);if(overflow){var startContainer=overflow.startContainer,startOffset=overflow.startOffset;var startIsNode;if(isElement(startContainer)){var start=startContainer.childNodes[startOffset];startIsNode=isElement(start)&&start.hasAttribute("data-footnote-marker");}var extracted=overflow.extractContents();if(!startIsNode){var splitChild=extracted.firstElementChild;splitChild.dataset.splitFrom=splitChild.dataset.ref;this.handleAlignment(noteInnerContent.lastElementChild);}this.needsLayout.push(extracted);noteContent.style.removeProperty("height");noteInnerContent.style.removeProperty("height");var noteInnerContentBounds=noteInnerContent.getBoundingClientRect();var _height3=noteInnerContentBounds.height;// Get the @footnote margins
1904var noteContentMargins=this.marginsHeight(noteContent);var noteContentPadding=this.paddingHeight(noteContent);var noteContentBorders=this.borderHeight(noteContent);pageArea.style.setProperty("--pagedjs-footnotes-height","".concat(_height3+noteContentMargins+noteContentBorders+noteContentPadding,"px"));// Hide footnote content if empty
1905if(noteInnerContent.childNodes.length===0){noteContent.classList.add("pagedjs_footnote_empty");}if(!breakToken){chunker.clonePage(page);}else{var breakBefore,previousBreakAfter;if(breakToken.node&&typeof breakToken.node.dataset!=="undefined"&&typeof breakToken.node.dataset.previousBreakAfter!=="undefined"){previousBreakAfter=breakToken.node.dataset.previousBreakAfter;}if(breakToken.node&&typeof breakToken.node.dataset!=="undefined"&&typeof breakToken.node.dataset.breakBefore!=="undefined"){breakBefore=breakToken.node.dataset.breakBefore;}if(breakBefore||previousBreakAfter){chunker.clonePage(page);}}}noteInnerContent.style.height="auto";}},{key:"handleAlignment",value:function handleAlignment(node){var styles=window.getComputedStyle(node);var alignLast=styles["text-align-last"];node.dataset.lastSplitElement="true";if(alignLast==="auto"){node.dataset.alignLastSplitElement="justify";}else{node.dataset.alignLastSplitElement=alignLast;}}},{key:"beforePageLayout",value:function beforePageLayout(page){var _this38=this;while(this.needsLayout.length){var fragment=this.needsLayout.shift();Array.from(fragment.childNodes).forEach(function(node){_this38.moveFootnote(node,page.element.querySelector(".pagedjs_area"),false);});}}},{key:"afterOverflowRemoved",value:function afterOverflowRemoved(removed,rendered){// Find the page area
1906var area=rendered.closest(".pagedjs_area");// Get any rendered footnotes
1907var notes=area.querySelectorAll(".pagedjs_footnote_area [data-note='footnote']");for(var n=0;n<notes.length;n++){var note=notes[n];// Check if the call for that footnote has been removed with the overflow
1908var _call=removed.querySelector("[data-footnote-call=\"".concat(note.dataset.ref,"\"]"));if(_call){note.remove();}}// Hide footnote content if empty
1909var noteInnerContent=area.querySelector(".pagedjs_footnote_inner_content");if(noteInnerContent&&noteInnerContent.childNodes.length===0){noteInnerContent.parentElement.classList.add("pagedjs_footnote_empty");}}},{key:"marginsHeight",value:function marginsHeight(element){var total=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var styles=window.getComputedStyle(element);var marginTop=parseInt(styles.marginTop);var marginBottom=parseInt(styles.marginBottom);var margin=0;if(marginTop){margin+=marginTop;}if(marginBottom&&total){margin+=marginBottom;}return margin;}},{key:"paddingHeight",value:function paddingHeight(element){var total=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var styles=window.getComputedStyle(element);var paddingTop=parseInt(styles.paddingTop);var paddingBottom=parseInt(styles.paddingBottom);var padding=0;if(paddingTop){padding+=paddingTop;}if(paddingBottom&&total){padding+=paddingBottom;}return padding;}},{key:"borderHeight",value:function borderHeight(element){var total=arguments.length>1&&arguments[1]!==undefined?arguments[1]:true;var styles=window.getComputedStyle(element);var borderTop=parseInt(styles.borderTop);var borderBottom=parseInt(styles.borderBottom);var borders=0;if(borderTop){borders+=borderTop;}if(borderBottom&&total){borders+=borderBottom;}return borders;}}]);return Footnotes;}(Handler);var pagedMediaHandlers=[PrintMedia,AtPage,Breaks,Splits,Counters,Lists,PositionFixed,PageCounterIncrement,NthOfType,Following,Footnotes];var RunningHeaders=/*#__PURE__*/function(_Handler12){(0,_inherits2["default"])(RunningHeaders,_Handler12);var _super13=_createSuper(RunningHeaders);function RunningHeaders(chunker,polisher,caller){var _this39;(0,_classCallCheck2["default"])(this,RunningHeaders);_this39=_super13.call(this,chunker,polisher,caller);_this39.runningSelectors={};_this39.elements={};return _this39;}(0,_createClass2["default"])(RunningHeaders,[{key:"onDeclaration",value:function onDeclaration(declaration,dItem,dList,rule){var _this40=this;if(declaration.property==="position"){var _selector10=lib.generate(rule.ruleNode.prelude);var identifier=declaration.value.children.first().name;if(identifier==="running"){var _value13;lib.walk(declaration,{visit:"Function",enter:function enter(node,item,list){_value13=node.children.first().name;}});this.runningSelectors[_value13]={identifier:identifier,value:_value13,selector:_selector10};}}if(declaration.property==="content"){lib.walk(declaration,{visit:"Function",enter:function enter(funcNode,fItem,fList){if(funcNode.name.indexOf("element")>-1){var _selector11=lib.generate(rule.ruleNode.prelude);var _func=funcNode.name;var _value14=funcNode.children.first().name;var args=[_value14];// we only handle first for now
1910var style="first";_selector11.split(",").forEach(function(s){// remove before / after
1911s=s.replace(/::after|::before/,"");_this40.elements[s]={func:_func,args:args,value:_value14,style:style,selector:s,fullSelector:_selector11};});}}});}}},{key:"afterParsed",value:function afterParsed(fragment){for(var _i12=0,_Object$keys2=Object.keys(this.runningSelectors);_i12<_Object$keys2.length;_i12++){var _name12=_Object$keys2[_i12];var set=this.runningSelectors[_name12];var selected=Array.from(fragment.querySelectorAll(set.selector));if(set.identifier==="running"){var _iterator10=_createForOfIteratorHelper(selected),_step10;try{for(_iterator10.s();!(_step10=_iterator10.n()).done;){var header=_step10.value;header.style.display="none";}}catch(err){_iterator10.e(err);}finally{_iterator10.f();}}}}},{key:"afterPageLayout",value:function afterPageLayout(fragment){for(var _i13=0,_Object$keys3=Object.keys(this.runningSelectors);_i13<_Object$keys3.length;_i13++){var _name13=_Object$keys3[_i13];var set=this.runningSelectors[_name13];if(!set.first){var selected=fragment.querySelector(set.selector);if(selected){// let cssVar;
1912if(set.identifier==="running"){// cssVar = selected.textContent.replace(/\\([\s\S])|(["|'])/g,"\\$1$2");
1913// this.styleSheet.insertRule(`:root { --string-${name}: "${cssVar}"; }`, this.styleSheet.cssRules.length);
1914// fragment.style.setProperty(`--string-${name}`, `"${cssVar}"`);
1915set.first=selected;}else{console.warn(set.value+"needs css replacement");}}}}// move elements
1916if(!this.orderedSelectors){this.orderedSelectors=this.orderSelectors(this.elements);}var _iterator11=_createForOfIteratorHelper(this.orderedSelectors),_step11;try{for(_iterator11.s();!(_step11=_iterator11.n()).done;){var _selector12=_step11.value;if(_selector12){var el=this.elements[_selector12];var _selected=fragment.querySelector(_selector12);if(_selected){var running=this.runningSelectors[el.args[0]];if(running&&running.first){_selected.innerHTML="";// Clear node
1917// selected.classList.add("pagedjs_clear-after"); // Clear ::after
1918var _clone=running.first.cloneNode(true);_clone.style.display=null;_selected.appendChild(_clone);}}}}}catch(err){_iterator11.e(err);}finally{_iterator11.f();}}/**
1919 * Assign a weight to @page selector classes
1920 * 1) page
1921 * 2) left & right
1922 * 3) blank
1923 * 4) first & nth
1924 * 5) named page
1925 * 6) named left & right
1926 * 7) named first & nth
1927 * @param {string} [s] selector string
1928 * @return {int} weight
1929 */},{key:"pageWeight",value:function pageWeight(s){var weight=1;var selector=s.split(" ");var parts=selector.length&&selector[0].split(".");parts.shift();// remove empty first part
1930switch(parts.length){case 4:if(/^pagedjs_[\w-]+_first_page$/.test(parts[3])){weight=7;}else if(parts[3]==="pagedjs_left_page"||parts[3]==="pagedjs_right_page"){weight=6;}break;case 3:if(parts[1]==="pagedjs_named_page"){if(parts[2].indexOf(":nth-of-type")>-1){weight=7;}else{weight=5;}}break;case 2:if(parts[1]==="pagedjs_first_page"){weight=4;}else if(parts[1]==="pagedjs_blank_page"){weight=3;}else if(parts[1]==="pagedjs_left_page"||parts[1]==="pagedjs_right_page"){weight=2;}break;default:if(parts[0].indexOf(":nth-of-type")>-1){weight=4;}else{weight=1;}}return weight;}/**
1931 * Orders the selectors based on weight
1932 *
1933 * Does not try to deduplicate base on specifity of the selector
1934 * Previous matched selector will just be overwritten
1935 * @param {obj} [obj] selectors object
1936 * @return {Array} orderedSelectors
1937 */},{key:"orderSelectors",value:function orderSelectors(obj){var selectors=Object.keys(obj);var weighted={1:[],2:[],3:[],4:[],5:[],6:[],7:[]};var orderedSelectors=[];for(var _i14=0,_selectors=selectors;_i14<_selectors.length;_i14++){var s=_selectors[_i14];var w=this.pageWeight(s);weighted[w].unshift(s);}for(var i=1;i<=7;i++){orderedSelectors=orderedSelectors.concat(weighted[i]);}return orderedSelectors;}},{key:"beforeTreeParse",value:function beforeTreeParse(text,sheet){// element(x) is parsed as image element selector, so update element to element-ident
1938sheet.text=text.replace(/element[\s]*\(([^|^#)]*)\)/g,"element-ident($1)");}}]);return RunningHeaders;}(Handler);function cleanPseudoContent(el){var trim=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"\"' ";if(el==null)return;return el.replace(new RegExp("^[".concat(trim,"]+")),"").replace(new RegExp("[".concat(trim,"]+$")),"").replace(/["']/g,function(match){return"\\"+match;}).replace(/[\n]/g,function(match){return"\\00000A";});}function cleanSelector(el){if(el==null)return;return el.replace(new RegExp("::footnote-call","g"),"").replace(new RegExp("::footnote-marker","g"),"");}var StringSets=/*#__PURE__*/function(_Handler13){(0,_inherits2["default"])(StringSets,_Handler13);var _super14=_createSuper(StringSets);function StringSets(chunker,polisher,caller){var _this41;(0,_classCallCheck2["default"])(this,StringSets);_this41=_super14.call(this,chunker,polisher,caller);_this41.stringSetSelectors={};_this41.type;// pageLastString = last string variable defined on the page
1939_this41.pageLastString;return _this41;}(0,_createClass2["default"])(StringSets,[{key:"onDeclaration",value:function onDeclaration(declaration,dItem,dList,rule){if(declaration.property==="string-set"){var _selector13=lib.generate(rule.ruleNode.prelude);var identifier=declaration.value.children.first().name;var _value15;lib.walk(declaration,{visit:"Function",enter:function enter(node,item,list){_value15=lib.generate(node);}});this.stringSetSelectors[identifier]={identifier:identifier,value:_value15,selector:_selector13};}}},{key:"onContent",value:function onContent(funcNode,fItem,fList,declaration,rule){if(funcNode.name==="string"){var identifier=funcNode.children&&funcNode.children.first().name;this.type=funcNode.children.last().name;funcNode.name="var";funcNode.children=new lib.List();if(this.type==="first"||this.type==="last"||this.type==="start"||this.type==="first-except"){funcNode.children.append(funcNode.children.createItem({type:"Identifier",loc:null,name:"--pagedjs-string-"+this.type+"-"+identifier}));}else{funcNode.children.append(funcNode.children.createItem({type:"Identifier",loc:null,name:"--pagedjs-string-first-"+identifier}));}}}},{key:"afterPageLayout",value:function afterPageLayout(fragment){var _this42=this;if(this.pageLastString===undefined){this.pageLastString={};}var _loop3=function _loop3(){var name=_Object$keys4[_i15];var set=_this42.stringSetSelectors[name];var selected=fragment.querySelectorAll(set.selector);// Get the last found string for the current identifier
1940var stringPrevPage=name in _this42.pageLastString?_this42.pageLastString[name]:"";var varFirst=void 0,varLast=void 0,varStart=void 0,varFirstExcept=void 0;if(selected.length==0){// if there is no sel. on the page
1941varFirst=stringPrevPage;varLast=stringPrevPage;varStart=stringPrevPage;varFirstExcept=stringPrevPage;}else{selected.forEach(function(sel){// push each content into the array to define in the variable the first and the last element of the page.
1942_this42.pageLastString[name]=selected[selected.length-1].textContent;});/* FIRST */varFirst=selected[0].textContent;/* LAST */varLast=selected[selected.length-1].textContent;/* START */ // Hack to find if the sel. is the first elem of the page / find a better way
1943var selTop=selected[0].getBoundingClientRect().top;var pageContent=selected[0].closest(".pagedjs_page_content");var pageContentTop=pageContent.getBoundingClientRect().top;if(selTop==pageContentTop){varStart=varFirst;}else{varStart=stringPrevPage;}/* FIRST EXCEPT */varFirstExcept="";}fragment.style.setProperty("--pagedjs-string-first-".concat(name),"\"".concat(cleanPseudoContent(varFirst)));fragment.style.setProperty("--pagedjs-string-last-".concat(name),"\"".concat(cleanPseudoContent(varLast)));fragment.style.setProperty("--pagedjs-string-start-".concat(name),"\"".concat(cleanPseudoContent(varStart)));fragment.style.setProperty("--pagedjs-string-first-except-".concat(name),"\"".concat(cleanPseudoContent(varFirstExcept)));};for(var _i15=0,_Object$keys4=Object.keys(this.stringSetSelectors);_i15<_Object$keys4.length;_i15++){_loop3();}}}]);return StringSets;}(Handler);var TargetCounters=/*#__PURE__*/function(_Handler14){(0,_inherits2["default"])(TargetCounters,_Handler14);var _super15=_createSuper(TargetCounters);function TargetCounters(chunker,polisher,caller){var _this43;(0,_classCallCheck2["default"])(this,TargetCounters);_this43=_super15.call(this,chunker,polisher,caller);_this43.styleSheet=polisher.styleSheet;_this43.counterTargets={};return _this43;}(0,_createClass2["default"])(TargetCounters,[{key:"onContent",value:function onContent(funcNode,fItem,fList,declaration,rule){var _this44=this;if(funcNode.name==="target-counter"){var _selector14=lib.generate(rule.ruleNode.prelude);var first=funcNode.children.first();var _func2=first.name;var _value16=lib.generate(funcNode);var args=[];first.children.forEach(function(child){if(child.type==="Identifier"){args.push(child.name);}});var counter;var style;var styleIdentifier;funcNode.children.forEach(function(child){if(child.type==="Identifier"){if(!counter){counter=child.name;}else if(!style){styleIdentifier=lib.clone(child);style=child.name;}}});var variable="target-counter-"+UUID();_selector14.split(",").forEach(function(s){_this44.counterTargets[s]={func:_func2,args:args,value:_value16,counter:counter,style:style,selector:s,fullSelector:_selector14,variable:variable};});// Replace with counter
1944funcNode.name="counter";funcNode.children=new lib.List();funcNode.children.appendData({type:"Identifier",loc:0,name:variable});if(styleIdentifier){funcNode.children.appendData({type:"Operator",loc:null,value:","});funcNode.children.appendData(styleIdentifier);}}}},{key:"afterPageLayout",value:function afterPageLayout(fragment,page,breakToken,chunker){var _this45=this;Object.keys(this.counterTargets).forEach(function(name){var target=_this45.counterTargets[name];var split=target.selector.split(/::?/g);var query=split[0];var queried=chunker.pagesArea.querySelectorAll(query+":not([data-"+target.variable+"])");queried.forEach(function(selected,index){// TODO: handle func other than attr
1945if(target.func!=="attr"){return;}var val=attr(selected,target.args);var element=chunker.pagesArea.querySelector(querySelectorEscape(val));if(element){var _selector15=UUID();selected.setAttribute("data-"+target.variable,_selector15);// TODO: handle other counter types (by query)
1946var _pseudo="";if(split.length>1){_pseudo+="::"+split[1];}if(target.counter==="page"){var pages=chunker.pagesArea.querySelectorAll(".pagedjs_page");var pg=0;for(var _i16=0;_i16<pages.length;_i16++){var _page2=pages[_i16];var styles=window.getComputedStyle(_page2);var reset=styles["counter-reset"].replace("page","").trim();var increment=styles["counter-increment"].replace("page","").trim();if(reset!=="none"){pg=parseInt(reset);}if(increment!=="none"){pg+=parseInt(increment);}if(_page2.contains(element)){break;}}_this45.styleSheet.insertRule("[data-".concat(target.variable,"=\"").concat(_selector15,"\"]").concat(_pseudo," { counter-reset: ").concat(target.variable," ").concat(pg,"; }"),_this45.styleSheet.cssRules.length);}else{var _value17=element.getAttribute("data-counter-".concat(target.counter,"-value"));if(_value17){_this45.styleSheet.insertRule("[data-".concat(target.variable,"=\"").concat(_selector15,"\"]").concat(_pseudo," { counter-reset: ").concat(target.variable," ").concat(target.variable," ").concat(parseInt(_value17),"; }"),_this45.styleSheet.cssRules.length);}}// force redraw
1947var el=document.querySelector("[data-".concat(target.variable,"=\"").concat(_selector15,"\"]"));if(el){el.style.display="none";el.clientHeight;el.style.removeProperty("display");}}});});}}]);return TargetCounters;}(Handler);// import { nodeAfter } from "../../utils/dom";
1948var TargetText=/*#__PURE__*/function(_Handler15){(0,_inherits2["default"])(TargetText,_Handler15);var _super16=_createSuper(TargetText);function TargetText(chunker,polisher,caller){var _this46;(0,_classCallCheck2["default"])(this,TargetText);_this46=_super16.call(this,chunker,polisher,caller);_this46.styleSheet=polisher.styleSheet;_this46.textTargets={};_this46.beforeContent="";_this46.afterContent="";_this46.selector={};return _this46;}(0,_createClass2["default"])(TargetText,[{key:"onContent",value:function onContent(funcNode,fItem,fList,declaration,rule){var _this47=this;if(funcNode.name==="target-text"){this.selector=lib.generate(rule.ruleNode.prelude);var first=funcNode.children.first();var last=funcNode.children.last();var _func3=first.name;var _value18=lib.generate(funcNode);var args=[];first.children.forEach(function(child){if(child.type==="Identifier"){args.push(child.name);}});var style;if(last!==first){style=last.name;}var variable="--pagedjs-"+UUID();this.selector.split(",").forEach(function(s){_this47.textTargets[s]={func:_func3,args:args,value:_value18,style:style||"content",selector:s,fullSelector:_this47.selector,variable:variable};});// Replace with variable
1949funcNode.name="var";funcNode.children=new lib.List();funcNode.children.appendData({type:"Identifier",loc:0,name:variable});}}// parse this on the ONCONTENT : get all before and after and replace the value with a variable
1950},{key:"onPseudoSelector",value:function onPseudoSelector(pseudoNode,pItem,pList,selector,rule){var _this48=this;// console.log(pseudoNode);
1951// console.log(rule);
1952rule.ruleNode.block.children.forEach(function(properties){if(pseudoNode.name==="before"&&properties.property==="content"){// let beforeVariable = "--pagedjs-" + UUID();
1953var contenu=properties.value.children;contenu.forEach(function(prop){if(prop.type==="String"){_this48.beforeContent=prop.value;}});}else if(pseudoNode.name==="after"&&properties.property==="content"){properties.value.children.forEach(function(prop){if(prop.type==="String"){_this48.afterContent=prop.value;}});}});}},{key:"afterParsed",value:function afterParsed(fragment){var _this49=this;Object.keys(this.textTargets).forEach(function(name){var target=_this49.textTargets[name];var split=target.selector.split("::");var query=split[0];var queried=fragment.querySelectorAll(query);var textContent;queried.forEach(function(selected,index){var val=attr(selected,target.args);var element=fragment.querySelector(querySelectorEscape(val));if(element){// content & first-letter & before & after refactorized
1954if(target.style){_this49.selector=UUID();selected.setAttribute("data-target-text",_this49.selector);var psuedo="";if(split.length>1){psuedo+="::"+split[1];}if(target.style==="before"||target.style==="after"){var pseudoType="".concat(target.style,"Content");textContent=cleanPseudoContent(_this49[pseudoType]);}else{textContent=cleanPseudoContent(element.textContent," ");}textContent=target.style==="first-letter"?textContent.charAt(0):textContent;_this49.styleSheet.insertRule("[data-target-text=\"".concat(_this49.selector,"\"]").concat(psuedo," { ").concat(target.variable,": \"").concat(textContent,"\" }"));}else{console.warn("missed target",val);}}});});}}]);return TargetText;}(Handler);var generatedContentHandlers=[RunningHeaders,StringSets,TargetCounters,TargetText];var WhiteSpaceFilter=/*#__PURE__*/function(_Handler16){(0,_inherits2["default"])(WhiteSpaceFilter,_Handler16);var _super17=_createSuper(WhiteSpaceFilter);function WhiteSpaceFilter(chunker,polisher,caller){(0,_classCallCheck2["default"])(this,WhiteSpaceFilter);return _super17.call(this,chunker,polisher,caller);}(0,_createClass2["default"])(WhiteSpaceFilter,[{key:"filter",value:function filter(content){var _this50=this;filterTree(content,function(node){return _this50.filterEmpty(node);},NodeFilter.SHOW_TEXT);}},{key:"filterEmpty",value:function filterEmpty(node){if(node.textContent.length>1&&isIgnorable(node)){// Do not touch the content if text is pre-formatted
1955var parent=node.parentNode;var pre=isElement(parent)&&parent.closest("pre");if(pre){return NodeFilter.FILTER_REJECT;}var previousSibling=previousSignificantNode(node);var nextSibling=nextSignificantNode(node);if(nextSibling===null&&previousSibling===null){// we should not remove a Node that does not have any siblings.
1956node.textContent=" ";return NodeFilter.FILTER_REJECT;}if(nextSibling===null){// we can safely remove this node
1957return NodeFilter.FILTER_ACCEPT;}if(previousSibling===null){// we can safely remove this node
1958return NodeFilter.FILTER_ACCEPT;}// replace the content with a single space
1959node.textContent=" ";// TODO: we also need to preserve sequences of white spaces when the parent has "white-space" rule:
1960// pre
1961// Sequences of white space are preserved. Lines are only broken at newline characters in the source and at <br> elements.
1962//
1963// pre-wrap
1964// Sequences of white space are preserved. Lines are broken at newline characters, at <br>, and as necessary to fill line boxes.
1965//
1966// pre-line
1967// Sequences of white space are collapsed. Lines are broken at newline characters, at <br>, and as necessary to fill line boxes.
1968//
1969// break-spaces
1970// The behavior is identical to that of pre-wrap, except that:
1971// - Any sequence of preserved white space always takes up space, including at the end of the line.
1972// - A line breaking opportunity exists after every preserved white space character, including between white space characters.
1973// - Such preserved spaces take up space and do not hang, and thus affect the box’s intrinsic sizes (min-content size and max-content size).
1974//
1975// See: https://developer.mozilla.org/en-US/docs/Web/CSS/white-space#Values
1976return NodeFilter.FILTER_REJECT;}else{return NodeFilter.FILTER_REJECT;}}}]);return WhiteSpaceFilter;}(Handler);var CommentsFilter=/*#__PURE__*/function(_Handler17){(0,_inherits2["default"])(CommentsFilter,_Handler17);var _super18=_createSuper(CommentsFilter);function CommentsFilter(chunker,polisher,caller){(0,_classCallCheck2["default"])(this,CommentsFilter);return _super18.call(this,chunker,polisher,caller);}(0,_createClass2["default"])(CommentsFilter,[{key:"filter",value:function filter(content){filterTree(content,null,NodeFilter.SHOW_COMMENT);}}]);return CommentsFilter;}(Handler);var ScriptsFilter=/*#__PURE__*/function(_Handler18){(0,_inherits2["default"])(ScriptsFilter,_Handler18);var _super19=_createSuper(ScriptsFilter);function ScriptsFilter(chunker,polisher,caller){(0,_classCallCheck2["default"])(this,ScriptsFilter);return _super19.call(this,chunker,polisher,caller);}(0,_createClass2["default"])(ScriptsFilter,[{key:"filter",value:function filter(content){content.querySelectorAll("script").forEach(function(script){script.remove();});}}]);return ScriptsFilter;}(Handler);var clearCut={};/**
1977 * Originally ported from https://github.com/keeganstreet/specificity/blob/866bf7ab4e7f62a7179c15b13a95af4e1c7b1afa/specificity.js
1978 *
1979 * Calculates the specificity of CSS selectors
1980 * http://www.w3.org/TR/css3-selectors/#specificity
1981 *
1982 * Returns a selector integer value
1983 */(function(exports){// The following regular expressions assume that selectors matching the preceding regular expressions have been removed
1984var attributeRegex=/(\[[^\]]+\])/g;var idRegex=/(#[^\s\+>~\.\[:]+)/g;var classRegex=/(\.[^\s\+>~\.\[:]+)/g;var pseudoElementRegex=/(::[^\s\+>~\.\[:]+|:first-line|:first-letter|:before|:after)/g;var pseudoClassRegex=/(:[^\s\+>~\.\[:]+)/g;var elementRegex=/([^\s\+>~\.\[:]+)/g;var notRegex=/:not\(([^\)]*)\)/g;var ruleRegex=/\{[^]*/gm;var separatorRegex=/[\*\s\+>~]/g;var straysRegex=/[#\.]/g;// Find matches for a regular expression in a string and push their details to parts
1985// Type is "a" for IDs, "b" for classes, attributes and pseudo-classes and "c" for elements and pseudo-elements
1986var findMatch=function findMatch(regex,type,types,selector){var matches=selector.match(regex);if(matches){for(var i=0;i<matches.length;i++){types[type]++;// Replace this simple selector with whitespace so it won't be counted in further simple selectors
1987selector=selector.replace(matches[i],' ');}}return selector;};// Calculate the specificity for a selector by dividing it into simple selectors and counting them
1988var calculate=function calculate(selector){var commaIndex=selector.indexOf(',');if(commaIndex!==-1){selector=selector.substring(0,commaIndex);}var types={a:0,b:0,c:0};// Remove the negation psuedo-class (:not) but leave its argument because specificity is calculated on its argument
1989selector=selector.replace(notRegex,' $1 ');// Remove anything after a left brace in case a user has pasted in a rule, not just a selector
1990selector=selector.replace(ruleRegex,' ');// Add attribute selectors to parts collection (type b)
1991selector=findMatch(attributeRegex,'b',types,selector);// Add ID selectors to parts collection (type a)
1992selector=findMatch(idRegex,'a',types,selector);// Add class selectors to parts collection (type b)
1993selector=findMatch(classRegex,'b',types,selector);// Add pseudo-element selectors to parts collection (type c)
1994selector=findMatch(pseudoElementRegex,'c',types,selector);// Add pseudo-class selectors to parts collection (type b)
1995selector=findMatch(pseudoClassRegex,'b',types,selector);// Remove universal selector and separator characters
1996selector=selector.replace(separatorRegex,' ');// Remove any stray dots or hashes which aren't attached to words
1997// These may be present if the user is live-editing this selector
1998selector=selector.replace(straysRegex,' ');// The only things left should be element selectors (type c)
1999findMatch(elementRegex,'c',types,selector);return types.a*100+types.b*10+types.c*1;};var specificityCache={};exports.calculateSpecificity=function(selector){var specificity=specificityCache[selector];if(specificity===undefined){specificity=calculate(selector);specificityCache[selector]=specificity;}return specificity;};var validSelectorCache={};var testSelectorElement=null;exports.isSelectorValid=function(selector){var valid=validSelectorCache[selector];if(valid===undefined){if(testSelectorElement==null){testSelectorElement=document.createElement('div');}try{testSelectorElement.querySelector(selector);valid=true;}catch(error){valid=false;}validSelectorCache[selector]=valid;}return valid;};exports.validateSelector=function(selector){if(!exports.isSelectorValid(selector)){var error=new SyntaxError(selector+' is not a valid selector');error.code='EBADSELECTOR';throw error;}};})(clearCut);var UndisplayedFilter=/*#__PURE__*/function(_Handler19){(0,_inherits2["default"])(UndisplayedFilter,_Handler19);var _super20=_createSuper(UndisplayedFilter);function UndisplayedFilter(chunker,polisher,caller){var _this51;(0,_classCallCheck2["default"])(this,UndisplayedFilter);_this51=_super20.call(this,chunker,polisher,caller);_this51.displayRules={};return _this51;}(0,_createClass2["default"])(UndisplayedFilter,[{key:"onDeclaration",value:function onDeclaration(declaration,dItem,dList,rule){var _this52=this;if(declaration.property==="display"){var _selector16=lib.generate(rule.ruleNode.prelude);var _value19=declaration.value.children.first().name;_selector16.split(",").forEach(function(s){_this52.displayRules[s]={value:_value19,selector:s,specificity:clearCut.calculateSpecificity(s),important:declaration.important};});}}},{key:"filter",value:function filter(content){var _this$sortDisplayedSe=this.sortDisplayedSelectors(content,this.displayRules),matches=_this$sortDisplayedSe.matches,selectors=_this$sortDisplayedSe.selectors;// Find matching elements that have display styles
2000for(var _i17=0;_i17<matches.length;_i17++){var element=matches[_i17];var _selector17=selectors[_i17];var displayValue=_selector17[_selector17.length-1].value;if(this.removable(element)&&displayValue==="none"){element.dataset.undisplayed="undisplayed";}}// Find elements that have inline styles
2001var styledElements=content.querySelectorAll("[style]");for(var _i18=0;_i18<styledElements.length;_i18++){var _element=styledElements[_i18];if(this.removable(_element)){_element.dataset.undisplayed="undisplayed";}}}},{key:"sorter",value:function sorter(a,b){if(a.important&&!b.important){return 1;}if(b.important&&!a.important){return-1;}return a.specificity-b.specificity;}},{key:"sortDisplayedSelectors",value:function sortDisplayedSelectors(content){var displayRules=arguments.length>1&&arguments[1]!==undefined?arguments[1]:[];var matches=[];var selectors=[];for(var _d in displayRules){var displayItem=displayRules[_d];var _selector18=displayItem.selector;var query=[];try{try{query=content.querySelectorAll(_selector18);}catch(e){query=content.querySelectorAll(cleanSelector(_selector18));}}catch(e){query=[];}var elements=Array.from(query);for(var _i19=0,_elements=elements;_i19<_elements.length;_i19++){var e=_elements[_i19];if(matches.includes(e)){var index=matches.indexOf(e);selectors[index].push(displayItem);selectors[index]=selectors[index].sort(this.sorter);}else{matches.push(e);selectors.push([displayItem]);}}}return{matches:matches,selectors:selectors};}},{key:"removable",value:function removable(element){if(element.style&&element.style.display!==""&&element.style.display!=="none"){return false;}return true;}}]);return UndisplayedFilter;}(Handler);var filters=[WhiteSpaceFilter,CommentsFilter,ScriptsFilter,UndisplayedFilter];var isImplemented$3=function isImplemented$3(){var from=Array.from,arr,result;if(typeof from!=="function")return false;arr=["raz","dwa"];result=from(arr);return Boolean(result&&result!==arr&&result[1]==="dwa");};var validTypes={object:true,symbol:true};var isImplemented$2=function isImplemented$2(){var symbol;if(typeof Symbol!=='function')return false;symbol=Symbol('test symbol');try{String(symbol);}catch(e){return false;}// Return 'true' also for polyfills
2002if(!validTypes[(0,_typeof2["default"])(Symbol.iterator)])return false;if(!validTypes[(0,_typeof2["default"])(Symbol.toPrimitive)])return false;if(!validTypes[(0,_typeof2["default"])(Symbol.toStringTag)])return false;return true;};var isSymbol$1=function isSymbol$1(x){if(!x)return false;if((0,_typeof2["default"])(x)==='symbol')return true;if(!x.constructor)return false;if(x.constructor.name!=='Symbol')return false;return x[x.constructor.toStringTag]==='Symbol';};var isSymbol=isSymbol$1;var validateSymbol$1=function validateSymbol$1(value){if(!isSymbol(value))throw new TypeError(value+" is not a symbol");return value;};var d$1=d$3.exports,validateSymbol=validateSymbol$1,create=Object.create,defineProperties=Object.defineProperties,defineProperty$2=Object.defineProperty,objPrototype=Object.prototype,NativeSymbol,SymbolPolyfill,HiddenSymbol,globalSymbols=create(null),isNativeSafe;if(typeof Symbol==='function'){NativeSymbol=Symbol;try{String(NativeSymbol());isNativeSafe=true;}catch(ignore){}}var generateName=function(){var created=create(null);return function(desc){var postfix=0,name,ie11BugWorkaround;while(created[desc+(postfix||'')]){++postfix;}desc+=postfix||'';created[desc]=true;name='@@'+desc;defineProperty$2(objPrototype,name,d$1.gs(null,function(value){// For IE11 issue see:
2003// https://connect.microsoft.com/IE/feedbackdetail/view/1928508/
2004// ie11-broken-getters-on-dom-objects
2005// https://github.com/medikoo/es6-symbol/issues/12
2006if(ie11BugWorkaround)return;ie11BugWorkaround=true;defineProperty$2(this,name,d$1(value));ie11BugWorkaround=false;}));return name;};}();// Internal constructor (not one exposed) for creating Symbol instances.
2007// This one is used to ensure that `someSymbol instanceof Symbol` always return false
2008HiddenSymbol=function _Symbol(description){if(this instanceof HiddenSymbol)throw new TypeError('Symbol is not a constructor');return SymbolPolyfill(description);};// Exposed `Symbol` constructor
2009// (returns instances of HiddenSymbol)
2010var polyfill=SymbolPolyfill=function _Symbol2(description){var symbol;if(this instanceof _Symbol2)throw new TypeError('Symbol is not a constructor');if(isNativeSafe)return NativeSymbol(description);symbol=create(HiddenSymbol.prototype);description=description===undefined?'':String(description);return defineProperties(symbol,{__description__:d$1('',description),__name__:d$1('',generateName(description))});};defineProperties(SymbolPolyfill,{"for":d$1(function(key){if(globalSymbols[key])return globalSymbols[key];return globalSymbols[key]=SymbolPolyfill(String(key));}),keyFor:d$1(function(s){var key;validateSymbol(s);for(key in globalSymbols){if(globalSymbols[key]===s)return key;}}),// To ensure proper interoperability with other native functions (e.g. Array.from)
2011// fallback to eventual native implementation of given symbol
2012hasInstance:d$1('',NativeSymbol&&NativeSymbol.hasInstance||SymbolPolyfill('hasInstance')),isConcatSpreadable:d$1('',NativeSymbol&&NativeSymbol.isConcatSpreadable||SymbolPolyfill('isConcatSpreadable')),iterator:d$1('',NativeSymbol&&NativeSymbol.iterator||SymbolPolyfill('iterator')),match:d$1('',NativeSymbol&&NativeSymbol.match||SymbolPolyfill('match')),replace:d$1('',NativeSymbol&&NativeSymbol.replace||SymbolPolyfill('replace')),search:d$1('',NativeSymbol&&NativeSymbol.search||SymbolPolyfill('search')),species:d$1('',NativeSymbol&&NativeSymbol.species||SymbolPolyfill('species')),split:d$1('',NativeSymbol&&NativeSymbol.split||SymbolPolyfill('split')),toPrimitive:d$1('',NativeSymbol&&NativeSymbol.toPrimitive||SymbolPolyfill('toPrimitive')),toStringTag:d$1('',NativeSymbol&&NativeSymbol.toStringTag||SymbolPolyfill('toStringTag')),unscopables:d$1('',NativeSymbol&&NativeSymbol.unscopables||SymbolPolyfill('unscopables'))});// Internal tweaks for real symbol producer
2013defineProperties(HiddenSymbol.prototype,{constructor:d$1(SymbolPolyfill),toString:d$1('',function(){return this.__name__;})});// Proper implementation of methods exposed on Symbol.prototype
2014// They won't be accessible on produced symbol instances as they derive from HiddenSymbol.prototype
2015defineProperties(SymbolPolyfill.prototype,{toString:d$1(function(){return'Symbol ('+validateSymbol(this).__description__+')';}),valueOf:d$1(function(){return validateSymbol(this);})});defineProperty$2(SymbolPolyfill.prototype,SymbolPolyfill.toPrimitive,d$1('',function(){var symbol=validateSymbol(this);if((0,_typeof2["default"])(symbol)==='symbol')return symbol;return symbol.toString();}));defineProperty$2(SymbolPolyfill.prototype,SymbolPolyfill.toStringTag,d$1('c','Symbol'));// Proper implementaton of toPrimitive and toStringTag for returned symbol instances
2016defineProperty$2(HiddenSymbol.prototype,SymbolPolyfill.toStringTag,d$1('c',SymbolPolyfill.prototype[SymbolPolyfill.toStringTag]));// Note: It's important to define `toPrimitive` as last one, as some implementations
2017// implement `toPrimitive` natively without implementing `toStringTag` (or other specified symbols)
2018// And that may invoke error in definition flow:
2019// See: https://github.com/medikoo/es6-symbol/issues/13#issuecomment-164146149
2020defineProperty$2(HiddenSymbol.prototype,SymbolPolyfill.toPrimitive,d$1('c',SymbolPolyfill.prototype[SymbolPolyfill.toPrimitive]));var es6Symbol=isImplemented$2()?Symbol:polyfill;var objToString$2=Object.prototype.toString,id$2=objToString$2.call(function(){return arguments;}());var isArguments$1=function isArguments$1(value){return objToString$2.call(value)===id$2;};var objToString$1=Object.prototype.toString,id$1=objToString$1.call(noop$4);var isFunction$1=function isFunction$1(value){return typeof value==="function"&&objToString$1.call(value)===id$1;};var isImplemented$1=function isImplemented$1(){var sign=Math.sign;if(typeof sign!=="function")return false;return sign(10)===1&&sign(-20)===-1;};var shim$2=function shim$2(value){value=Number(value);if(isNaN(value)||value===0)return value;return value>0?1:-1;};var sign$1=isImplemented$1()?Math.sign:shim$2;var sign=sign$1,abs$1=Math.abs,floor$1=Math.floor;var toInteger$1=function toInteger$1(value){if(isNaN(value))return 0;value=Number(value);if(value===0||!isFinite(value))return value;return sign(value)*floor$1(abs$1(value));};var toInteger=toInteger$1,max=Math.max;var toPosInteger=function toPosInteger(value){return max(0,toInteger(value));};var objToString=Object.prototype.toString,id=objToString.call("");var isString$1=function isString$1(value){return typeof value==="string"||value&&(0,_typeof2["default"])(value)==="object"&&(value instanceof String||objToString.call(value)===id)||false;};var iteratorSymbol=es6Symbol.iterator,isArguments=isArguments$1,isFunction=isFunction$1,toPosInt$1=toPosInteger,callable=validCallable,validValue=validValue$1,isValue$1=isValue$5,isString=isString$1,isArray=Array.isArray,call=Function.prototype.call,desc={configurable:true,enumerable:true,writable:true,value:null},defineProperty$1=Object.defineProperty;// eslint-disable-next-line complexity
2021var shim$1=function shim$1(arrayLike/*, mapFn, thisArg*/){var mapFn=arguments[1],thisArg=arguments[2],Context,i,j,arr,length,code,iterator,result,getIterator,value;arrayLike=Object(validValue(arrayLike));if(isValue$1(mapFn))callable(mapFn);if(!this||this===Array||!isFunction(this)){// Result: Plain array
2022if(!mapFn){if(isArguments(arrayLike)){// Source: Arguments
2023length=arrayLike.length;if(length!==1)return Array.apply(null,arrayLike);arr=new Array(1);arr[0]=arrayLike[0];return arr;}if(isArray(arrayLike)){// Source: Array
2024arr=new Array(length=arrayLike.length);for(i=0;i<length;++i){arr[i]=arrayLike[i];}return arr;}}arr=[];}else{// Result: Non plain array
2025Context=this;}if(!isArray(arrayLike)){if((getIterator=arrayLike[iteratorSymbol])!==undefined){// Source: Iterator
2026iterator=callable(getIterator).call(arrayLike);if(Context)arr=new Context();result=iterator.next();i=0;while(!result.done){value=mapFn?call.call(mapFn,thisArg,result.value,i):result.value;if(Context){desc.value=value;defineProperty$1(arr,i,desc);}else{arr[i]=value;}result=iterator.next();++i;}length=i;}else if(isString(arrayLike)){// Source: String
2027length=arrayLike.length;if(Context)arr=new Context();for(i=0,j=0;i<length;++i){value=arrayLike[i];if(i+1<length){code=value.charCodeAt(0);// eslint-disable-next-line max-depth
2028if(code>=0xd800&&code<=0xdbff)value+=arrayLike[++i];}value=mapFn?call.call(mapFn,thisArg,value,j):value;if(Context){desc.value=value;defineProperty$1(arr,j,desc);}else{arr[j]=value;}++j;}length=j;}}if(length===undefined){// Source: array or array-like
2029length=toPosInt$1(arrayLike.length);if(Context)arr=new Context(length);for(i=0;i<length;++i){value=mapFn?call.call(mapFn,thisArg,arrayLike[i],i):arrayLike[i];if(Context){desc.value=value;defineProperty$1(arr,i,desc);}else{arr[i]=value;}}}if(Context){desc.value=null;arr.length=length;}return arr;};var from=isImplemented$3()?Array.from:shim$1;var isImplemented=function isImplemented(){var numberIsNaN=Number.isNaN;if(typeof numberIsNaN!=="function")return false;return!numberIsNaN({})&&numberIsNaN(NaN)&&!numberIsNaN(34);};var shim=function shim(value){// eslint-disable-next-line no-self-compare
2030return value!==value;};var isNan=isImplemented()?Number.isNaN:shim;var numberIsNaN=isNan,toPosInt=toPosInteger,value$1=validValue$1,indexOf$1=Array.prototype.indexOf,objHasOwnProperty=Object.prototype.hasOwnProperty,abs=Math.abs,floor=Math.floor;var eIndexOf=function eIndexOf(searchElement/*, fromIndex*/){var i,length,fromIndex,val;if(!numberIsNaN(searchElement))return indexOf$1.apply(this,arguments);length=toPosInt(value$1(this).length);fromIndex=arguments[1];if(isNaN(fromIndex))fromIndex=0;else if(fromIndex>=0)fromIndex=floor(fromIndex);else fromIndex=toPosInt(this.length)-floor(abs(fromIndex));for(i=fromIndex;i<length;++i){if(objHasOwnProperty.call(this,i)){val=this[i];if(numberIsNaN(val))return i;// Jslint: ignore
2031}}return-1;};var indexOf=eIndexOf,forEach=Array.prototype.forEach,splice=Array.prototype.splice;// eslint-disable-next-line no-unused-vars
2032var remove$1=function remove$1(itemToRemove/*, …item*/){forEach.call(arguments,function(item){var index=indexOf.call(this,item);if(index!==-1)splice.call(this,index,1);},this);};var isValue=isValue$5;var map={"function":true,object:true};var isObject$1=function isObject$1(value){return isValue(value)&&map[(0,_typeof2["default"])(value)]||false;};var isObject=isObject$1;var validObject=function validObject(value){if(!isObject(value))throw new TypeError(value+" is not an Object");return value;};var aFrom=from,remove=remove$1,value=validObject,d=d$3.exports,emit=eventEmitter.exports.methods.emit,defineProperty=Object.defineProperty,hasOwnProperty$1=Object.prototype.hasOwnProperty,getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor;var pipe=function pipe(e1,e2/*, name*/){var pipes,pipe,desc,name;value(e1)&&value(e2);name=arguments[2];if(name===undefined)name='emit';pipe={close:function close(){remove.call(pipes,e2);}};if(hasOwnProperty$1.call(e1,'__eePipes__')){(pipes=e1.__eePipes__).push(e2);return pipe;}defineProperty(e1,'__eePipes__',d('c',pipes=[e2]));desc=getOwnPropertyDescriptor(e1,name);if(!desc){desc=d('c',undefined);}else{delete desc.get;delete desc.set;}desc.value=function(){var i,emitter,data=aFrom(pipes);emit.apply(this,arguments);for(i=0;emitter=data[i];++i){emit.apply(emitter,arguments);}};defineProperty(e1,name,desc);return pipe;};var registeredHandlers=[].concat(pagedMediaHandlers,generatedContentHandlers,filters);var Handlers=/*#__PURE__*/(0,_createClass2["default"])(function Handlers(chunker,polisher,caller){var _this53=this;(0,_classCallCheck2["default"])(this,Handlers);registeredHandlers.forEach(function(Handler){var handler=new Handler(chunker,polisher,caller);pipe(handler,_this53);});});EventEmitter(Handlers.prototype);function _registerHandlers(){for(var i=0;i<arguments.length;i++){registeredHandlers.push(arguments[i]);}}function _initializeHandlers(chunker,polisher,caller){var handlers=new Handlers(chunker,polisher,caller);return handlers;}var Previewer=/*#__PURE__*/function(){function Previewer(options){var _this54=this;(0,_classCallCheck2["default"])(this,Previewer);// this.preview = this.getParams("preview") !== "false";
2033this.settings=options||{};// Process styles
2034this.polisher=new Polisher(false);// Chunk contents
2035this.chunker=new Chunker(undefined,undefined,this.settings);// Hooks
2036this.hooks={};this.hooks.beforePreview=new Hook(this);this.hooks.afterPreview=new Hook(this);// default size
2037this.size={width:{value:8.5,unit:"in"},height:{value:11,unit:"in"},format:undefined,orientation:undefined};this.chunker.on("page",function(page){_this54.emit("page",page);});this.chunker.on("rendering",function(){_this54.emit("rendering",_this54.chunker);});}(0,_createClass2["default"])(Previewer,[{key:"initializeHandlers",value:function initializeHandlers(){var _this55=this;var handlers=_initializeHandlers(this.chunker,this.polisher,this);handlers.on("size",function(size){_this55.size=size;_this55.emit("size",size);});handlers.on("atpages",function(pages){_this55.atpages=pages;_this55.emit("atpages",pages);});return handlers;}},{key:"registerHandlers",value:function registerHandlers(){return _registerHandlers.apply(_registerHandlers,arguments);}},{key:"getParams",value:function getParams(name){var param;var url=new URL(window.location);var params=new URLSearchParams(url.search);var _iterator12=_createForOfIteratorHelper(params.entries()),_step12;try{for(_iterator12.s();!(_step12=_iterator12.n()).done;){var pair=_step12.value;if(pair[0]===name){param=pair[1];}}}catch(err){_iterator12.e(err);}finally{_iterator12.f();}return param;}},{key:"wrapContent",value:function wrapContent(){// Wrap body in template tag
2038var body=document.querySelector("body");// Check if a template exists
2039var template;template=body.querySelector(":scope > template[data-ref='pagedjs-content']");if(!template){// Otherwise create one
2040template=document.createElement("template");template.dataset.ref="pagedjs-content";template.innerHTML=body.innerHTML;body.innerHTML="";body.appendChild(template);}return template.content;}},{key:"removeStyles",value:function removeStyles(){var doc=arguments.length>0&&arguments[0]!==undefined?arguments[0]:document;// Get all stylesheets
2041var stylesheets=Array.from(doc.querySelectorAll("link[rel='stylesheet']:not([data-pagedjs-ignore], [media~='screen'])"));// Get inline styles
2042var inlineStyles=Array.from(doc.querySelectorAll("style:not([data-pagedjs-inserted-styles], [data-pagedjs-ignore], [media~='screen'])"));var elements=[].concat((0,_toConsumableArray2["default"])(stylesheets),(0,_toConsumableArray2["default"])(inlineStyles));return elements// preserve order
2043.sort(function(element1,element2){var position=element1.compareDocumentPosition(element2);if(position===Node.DOCUMENT_POSITION_PRECEDING){return 1;}else if(position===Node.DOCUMENT_POSITION_FOLLOWING){return-1;}return 0;})// extract the href
2044.map(function(element){if(element.nodeName==="STYLE"){var obj={};obj[window.location.href]=element.textContent;element.remove();return obj;}if(element.nodeName==="LINK"){element.remove();return element.href;}// ignore
2045console.warn("Unable to process: ".concat(element,", ignoring."));});}},{key:"preview",value:function(){var _preview=(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee19(content,stylesheets,renderTo){var _this$polisher;var startTime,flow,endTime;return _regenerator["default"].wrap(function _callee19$(_context22){while(1){switch(_context22.prev=_context22.next){case 0:_context22.next=2;return this.hooks.beforePreview.trigger(content,renderTo);case 2:if(!content){content=this.wrapContent();}if(!stylesheets){stylesheets=this.removeStyles();}this.polisher.setup();this.handlers=this.initializeHandlers();_context22.next=8;return(_this$polisher=this.polisher).add.apply(_this$polisher,(0,_toConsumableArray2["default"])(stylesheets));case 8:startTime=performance.now();// Render flow
2046_context22.next=11;return this.chunker.flow(content,renderTo);case 11:flow=_context22.sent;endTime=performance.now();flow.performance=endTime-startTime;flow.size=this.size;this.emit("rendered",flow);_context22.next=18;return this.hooks.afterPreview.trigger(flow.pages);case 18:return _context22.abrupt("return",flow);case 19:case"end":return _context22.stop();}}},_callee19,this);}));function preview(_x25,_x26,_x27){return _preview.apply(this,arguments);}return preview;}()}]);return Previewer;}();EventEmitter(Previewer.prototype);var Paged=/*#__PURE__*/Object.freeze({__proto__:null,Chunker:Chunker,Polisher:Polisher,Previewer:Previewer,Handler:Handler,registerHandlers:_registerHandlers,initializeHandlers:_initializeHandlers});window.Paged=Paged;var ready=new Promise(function(resolve,reject){if(document.readyState==="interactive"||document.readyState==="complete"){resolve(document.readyState);return;}document.onreadystatechange=function($){if(document.readyState==="interactive"){resolve(document.readyState);}};});var config=window.PagedConfig||{auto:true,before:undefined,after:undefined,content:undefined,stylesheets:undefined,renderTo:undefined,settings:undefined};var previewer=new Previewer(config.settings);ready.then(/*#__PURE__*/(0,_asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee20(){var done;return _regenerator["default"].wrap(function _callee20$(_context23){while(1){switch(_context23.prev=_context23.next){case 0:if(!config.before){_context23.next=3;break;}_context23.next=3;return config.before();case 3:if(!(config.auto!==false)){_context23.next=7;break;}_context23.next=6;return previewer.preview(config.content,config.stylesheets,config.renderTo);case 6:done=_context23.sent;case 7:if(!config.after){_context23.next=10;break;}_context23.next=10;return config.after(done);case 10:case"end":return _context23.stop();}}},_callee20);})));return previewer;});