feat(compiler): update the schema by extracting from latest chrome (#17858)
adds: - the slot element, - the slot attribute on [Element], - a few other attributes.
This commit is contained in:
parent
b116901400
commit
dd7c1134e3
|
@ -76,14 +76,14 @@ const OBJECT = 'object';
|
||||||
//
|
//
|
||||||
// =================================================================================================
|
// =================================================================================================
|
||||||
|
|
||||||
const SCHEMA:
|
const SCHEMA: string[] = [
|
||||||
string[] =
|
'[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop,slot' +
|
||||||
[
|
/* added manually to avoid breaking changes */
|
||||||
'[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop',
|
',*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored',
|
||||||
'[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate',
|
'[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',
|
||||||
'abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate',
|
'abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',
|
||||||
'media^[HTMLElement]|!autoplay,!controls,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,#playbackRate,preload,src,%srcObject,#volume',
|
'media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,src,%srcObject,#volume',
|
||||||
':svg:^[HTMLElement]|*abort,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex',
|
':svg:^[HTMLElement]|*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex',
|
||||||
':svg:graphics^:svg:|',
|
':svg:graphics^:svg:|',
|
||||||
':svg:animation^:svg:|*begin,*end,*repeat',
|
':svg:animation^:svg:|*begin,*end,*repeat',
|
||||||
':svg:geometry^:svg:|',
|
':svg:geometry^:svg:|',
|
||||||
|
@ -92,7 +92,7 @@ const SCHEMA:
|
||||||
':svg:textContent^:svg:graphics|',
|
':svg:textContent^:svg:graphics|',
|
||||||
':svg:textPositioning^:svg:textContent|',
|
':svg:textPositioning^:svg:textContent|',
|
||||||
'a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username',
|
'a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username',
|
||||||
'area^[HTMLElement]|alt,coords,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,search,shape,target,username',
|
'area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,search,shape,target,username',
|
||||||
'audio^media|',
|
'audio^media|',
|
||||||
'br^[HTMLElement]|clear',
|
'br^[HTMLElement]|clear',
|
||||||
'base^[HTMLElement]|href,target',
|
'base^[HTMLElement]|href,target',
|
||||||
|
@ -119,11 +119,10 @@ const SCHEMA:
|
||||||
'iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width',
|
'iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width',
|
||||||
'img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width',
|
'img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width',
|
||||||
'input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width',
|
'input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width',
|
||||||
'keygen^[HTMLElement]|!autofocus,challenge,!disabled,keytype,name',
|
|
||||||
'li^[HTMLElement]|type,#value',
|
'li^[HTMLElement]|type,#value',
|
||||||
'label^[HTMLElement]|htmlFor',
|
'label^[HTMLElement]|htmlFor',
|
||||||
'legend^[HTMLElement]|align',
|
'legend^[HTMLElement]|align',
|
||||||
'link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,rel,%relList,rev,%sizes,target,type',
|
'link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type',
|
||||||
'map^[HTMLElement]|name',
|
'map^[HTMLElement]|name',
|
||||||
'marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width',
|
'marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width',
|
||||||
'menu^[HTMLElement]|!compact',
|
'menu^[HTMLElement]|!compact',
|
||||||
|
@ -144,6 +143,7 @@ const SCHEMA:
|
||||||
'script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type',
|
'script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type',
|
||||||
'select^[HTMLElement]|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value',
|
'select^[HTMLElement]|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value',
|
||||||
'shadow^[HTMLElement]|',
|
'shadow^[HTMLElement]|',
|
||||||
|
'slot^[HTMLElement]|name',
|
||||||
'source^[HTMLElement]|media,sizes,src,srcset,type',
|
'source^[HTMLElement]|media,sizes,src,srcset,type',
|
||||||
'span^[HTMLElement]|',
|
'span^[HTMLElement]|',
|
||||||
'style^[HTMLElement]|!disabled,media,type',
|
'style^[HTMLElement]|!disabled,media,type',
|
||||||
|
@ -166,7 +166,6 @@ const SCHEMA:
|
||||||
':svg:animateTransform^:svg:animation|',
|
':svg:animateTransform^:svg:animation|',
|
||||||
':svg:circle^:svg:geometry|',
|
':svg:circle^:svg:geometry|',
|
||||||
':svg:clipPath^:svg:graphics|',
|
':svg:clipPath^:svg:graphics|',
|
||||||
':svg:cursor^:svg:|',
|
|
||||||
':svg:defs^:svg:graphics|',
|
':svg:defs^:svg:graphics|',
|
||||||
':svg:desc^:svg:|',
|
':svg:desc^:svg:|',
|
||||||
':svg:discard^:svg:|',
|
':svg:discard^:svg:|',
|
||||||
|
@ -226,10 +225,12 @@ const SCHEMA:
|
||||||
':svg:use^:svg:graphics|',
|
':svg:use^:svg:graphics|',
|
||||||
':svg:view^:svg:|#zoomAndPan',
|
':svg:view^:svg:|#zoomAndPan',
|
||||||
'data^[HTMLElement]|value',
|
'data^[HTMLElement]|value',
|
||||||
|
'keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name',
|
||||||
'menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default',
|
'menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default',
|
||||||
'summary^[HTMLElement]|',
|
'summary^[HTMLElement]|',
|
||||||
'time^[HTMLElement]|dateTime',
|
'time^[HTMLElement]|dateTime',
|
||||||
];
|
':svg:cursor^:svg:|',
|
||||||
|
];
|
||||||
|
|
||||||
const _ATTR_TO_PROP: {[name: string]: string} = {
|
const _ATTR_TO_PROP: {[name: string]: string} = {
|
||||||
'class': 'className',
|
'class': 'className',
|
||||||
|
|
|
@ -35,6 +35,7 @@ const MISSING_FROM_CHROME: {[el: string]: string[]} = {
|
||||||
['type', 'label', 'icon', '!disabled', '!checked', 'radiogroup', '!default'],
|
['type', 'label', 'icon', '!disabled', '!checked', 'radiogroup', '!default'],
|
||||||
'summary^[HTMLElement]': [],
|
'summary^[HTMLElement]': [],
|
||||||
'time^[HTMLElement]': ['dateTime'],
|
'time^[HTMLElement]': ['dateTime'],
|
||||||
|
':svg:cursor^:svg:': [],
|
||||||
};
|
};
|
||||||
|
|
||||||
const _G: any = global;
|
const _G: any = global;
|
||||||
|
@ -45,19 +46,7 @@ export function extractSchema(): Map<string, string[]>|null {
|
||||||
const SVGGraphicsElement = _G['SVGGraphicsElement'];
|
const SVGGraphicsElement = _G['SVGGraphicsElement'];
|
||||||
if (!SVGGraphicsElement) return null;
|
if (!SVGGraphicsElement) return null;
|
||||||
|
|
||||||
const SVGAnimationElement = _G['SVGAnimationElement'];
|
|
||||||
const SVGGeometryElement = _G['SVGGeometryElement'];
|
|
||||||
const SVGComponentTransferFunctionElement = _G['SVGComponentTransferFunctionElement'];
|
|
||||||
const SVGGradientElement = _G['SVGGradientElement'];
|
|
||||||
const SVGTextContentElement = _G['SVGTextContentElement'];
|
|
||||||
const SVGTextPositioningElement = _G['SVGTextPositioningElement'];
|
|
||||||
const element = document.createElement('video');
|
const element = document.createElement('video');
|
||||||
const svgAnimation = document.createElementNS('http://www.w3.org/2000/svg', 'set');
|
|
||||||
const svgPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
||||||
const svgFeFuncA = document.createElementNS('http://www.w3.org/2000/svg', 'feFuncA');
|
|
||||||
const svgGradient = document.createElementNS('http://www.w3.org/2000/svg', 'linearGradient');
|
|
||||||
const svgText = document.createElementNS('http://www.w3.org/2000/svg', 'text');
|
|
||||||
|
|
||||||
const descMap: Map<string, string[]> = new Map();
|
const descMap: Map<string, string[]> = new Map();
|
||||||
const visited: {[name: string]: boolean} = {};
|
const visited: {[name: string]: boolean} = {};
|
||||||
|
|
||||||
|
@ -69,6 +58,19 @@ export function extractSchema(): Map<string, string[]>|null {
|
||||||
extractProperties(HTMLMediaElement, element, visited, descMap, 'media', HTMLELEMENT_IF);
|
extractProperties(HTMLMediaElement, element, visited, descMap, 'media', HTMLELEMENT_IF);
|
||||||
|
|
||||||
// SVG top level
|
// SVG top level
|
||||||
|
const svgAnimation = document.createElementNS('http://www.w3.org/2000/svg', 'set');
|
||||||
|
const svgPath = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
||||||
|
const svgFeFuncA = document.createElementNS('http://www.w3.org/2000/svg', 'feFuncA');
|
||||||
|
const svgGradient = document.createElementNS('http://www.w3.org/2000/svg', 'linearGradient');
|
||||||
|
const svgText = document.createElementNS('http://www.w3.org/2000/svg', 'text');
|
||||||
|
|
||||||
|
const SVGAnimationElement = _G['SVGAnimationElement'];
|
||||||
|
const SVGGeometryElement = _G['SVGGeometryElement'];
|
||||||
|
const SVGComponentTransferFunctionElement = _G['SVGComponentTransferFunctionElement'];
|
||||||
|
const SVGGradientElement = _G['SVGGradientElement'];
|
||||||
|
const SVGTextContentElement = _G['SVGTextContentElement'];
|
||||||
|
const SVGTextPositioningElement = _G['SVGTextPositioningElement'];
|
||||||
|
|
||||||
extractProperties(SVGElement, svgText, visited, descMap, SVG_PREFIX, HTMLELEMENT_IF);
|
extractProperties(SVGElement, svgText, visited, descMap, SVG_PREFIX, HTMLELEMENT_IF);
|
||||||
extractProperties(
|
extractProperties(
|
||||||
SVGGraphicsElement, svgText, visited, descMap, SVG_PREFIX + 'graphics', SVG_PREFIX);
|
SVGGraphicsElement, svgText, visited, descMap, SVG_PREFIX + 'graphics', SVG_PREFIX);
|
||||||
|
|
|
@ -213,19 +213,19 @@ export function attributeType(element: string, attribute: string): string|string
|
||||||
return compose(elements[element.toUpperCase()] || defaultAttributes)[attribute.toLowerCase()];
|
return compose(elements[element.toUpperCase()] || defaultAttributes)[attribute.toLowerCase()];
|
||||||
}
|
}
|
||||||
|
|
||||||
// This section is describes the DOM property surface of a DOM element and is dervided from
|
// This section is describes the DOM property surface of a DOM element and is derivgulp formated
|
||||||
|
// from
|
||||||
// from the SCHEMA strings from the security context information. SCHEMA is copied here because
|
// from the SCHEMA strings from the security context information. SCHEMA is copied here because
|
||||||
// it would be an unnecessary risk to allow this array to be imported from the security context
|
// it would be an unnecessary risk to allow this array to be imported from the security context
|
||||||
// schema registry.
|
// schema registry.
|
||||||
|
const SCHEMA: string[] = [
|
||||||
const SCHEMA:
|
'[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop,slot' +
|
||||||
string[] =
|
/* added manually to avoid breaking changes */
|
||||||
[
|
',*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored',
|
||||||
'[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop',
|
'[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',
|
||||||
'[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate',
|
'abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',
|
||||||
'abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*beforecopy,*beforecut,*beforepaste,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*copy,*cuechange,*cut,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*message,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*paste,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*search,*seeked,*seeking,*select,*selectstart,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerText,!spellcheck,%style,#tabIndex,title,!translate',
|
'media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,src,%srcObject,#volume',
|
||||||
'media^[HTMLElement]|!autoplay,!controls,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,#playbackRate,preload,src,%srcObject,#volume',
|
':svg:^[HTMLElement]|*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex',
|
||||||
':svg:^[HTMLElement]|*abort,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex',
|
|
||||||
':svg:graphics^:svg:|',
|
':svg:graphics^:svg:|',
|
||||||
':svg:animation^:svg:|*begin,*end,*repeat',
|
':svg:animation^:svg:|*begin,*end,*repeat',
|
||||||
':svg:geometry^:svg:|',
|
':svg:geometry^:svg:|',
|
||||||
|
@ -234,7 +234,7 @@ const SCHEMA:
|
||||||
':svg:textContent^:svg:graphics|',
|
':svg:textContent^:svg:graphics|',
|
||||||
':svg:textPositioning^:svg:textContent|',
|
':svg:textPositioning^:svg:textContent|',
|
||||||
'a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username',
|
'a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username',
|
||||||
'area^[HTMLElement]|alt,coords,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,search,shape,target,username',
|
'area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,search,shape,target,username',
|
||||||
'audio^media|',
|
'audio^media|',
|
||||||
'br^[HTMLElement]|clear',
|
'br^[HTMLElement]|clear',
|
||||||
'base^[HTMLElement]|href,target',
|
'base^[HTMLElement]|href,target',
|
||||||
|
@ -261,11 +261,10 @@ const SCHEMA:
|
||||||
'iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width',
|
'iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width',
|
||||||
'img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width',
|
'img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width',
|
||||||
'input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width',
|
'input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width',
|
||||||
'keygen^[HTMLElement]|!autofocus,challenge,!disabled,keytype,name',
|
|
||||||
'li^[HTMLElement]|type,#value',
|
'li^[HTMLElement]|type,#value',
|
||||||
'label^[HTMLElement]|htmlFor',
|
'label^[HTMLElement]|htmlFor',
|
||||||
'legend^[HTMLElement]|align',
|
'legend^[HTMLElement]|align',
|
||||||
'link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,rel,%relList,rev,%sizes,target,type',
|
'link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type',
|
||||||
'map^[HTMLElement]|name',
|
'map^[HTMLElement]|name',
|
||||||
'marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width',
|
'marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width',
|
||||||
'menu^[HTMLElement]|!compact',
|
'menu^[HTMLElement]|!compact',
|
||||||
|
@ -286,6 +285,7 @@ const SCHEMA:
|
||||||
'script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type',
|
'script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type',
|
||||||
'select^[HTMLElement]|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value',
|
'select^[HTMLElement]|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value',
|
||||||
'shadow^[HTMLElement]|',
|
'shadow^[HTMLElement]|',
|
||||||
|
'slot^[HTMLElement]|name',
|
||||||
'source^[HTMLElement]|media,sizes,src,srcset,type',
|
'source^[HTMLElement]|media,sizes,src,srcset,type',
|
||||||
'span^[HTMLElement]|',
|
'span^[HTMLElement]|',
|
||||||
'style^[HTMLElement]|!disabled,media,type',
|
'style^[HTMLElement]|!disabled,media,type',
|
||||||
|
@ -308,7 +308,6 @@ const SCHEMA:
|
||||||
':svg:animateTransform^:svg:animation|',
|
':svg:animateTransform^:svg:animation|',
|
||||||
':svg:circle^:svg:geometry|',
|
':svg:circle^:svg:geometry|',
|
||||||
':svg:clipPath^:svg:graphics|',
|
':svg:clipPath^:svg:graphics|',
|
||||||
':svg:cursor^:svg:|',
|
|
||||||
':svg:defs^:svg:graphics|',
|
':svg:defs^:svg:graphics|',
|
||||||
':svg:desc^:svg:|',
|
':svg:desc^:svg:|',
|
||||||
':svg:discard^:svg:|',
|
':svg:discard^:svg:|',
|
||||||
|
@ -368,10 +367,12 @@ const SCHEMA:
|
||||||
':svg:use^:svg:graphics|',
|
':svg:use^:svg:graphics|',
|
||||||
':svg:view^:svg:|#zoomAndPan',
|
':svg:view^:svg:|#zoomAndPan',
|
||||||
'data^[HTMLElement]|value',
|
'data^[HTMLElement]|value',
|
||||||
|
'keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name',
|
||||||
'menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default',
|
'menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default',
|
||||||
'summary^[HTMLElement]|',
|
'summary^[HTMLElement]|',
|
||||||
'time^[HTMLElement]|dateTime',
|
'time^[HTMLElement]|dateTime',
|
||||||
];
|
':svg:cursor^:svg:|',
|
||||||
|
];
|
||||||
|
|
||||||
const attrToPropMap: {[name: string]: string} = <any>{
|
const attrToPropMap: {[name: string]: string} = <any>{
|
||||||
'class': 'className',
|
'class': 'className',
|
||||||
|
|
Loading…
Reference in New Issue