mirror of https://gitee.com/antv-l7/antv-l7
176 lines
6.1 KiB
JavaScript
176 lines
6.1 KiB
JavaScript
'use strict';
|
|
|
|
var map = function (arr, mapper) {
|
|
var mapped = [];
|
|
for (var i = 0; i < arr.length; i += 1) {
|
|
mapped.push(mapper(arr[i], i));
|
|
}
|
|
return mapped;
|
|
};
|
|
|
|
var expecteds = [
|
|
['HTMLElement', 'article'],
|
|
['HTMLElement', 'section'],
|
|
['HTMLBaseFontElement', 'basefont', 'HTMLBaseFontElementConstructor'], // Safari 5.1
|
|
['HTMLPhraseElement', 'cite', 'HTMLElement'], // Safari 5.1
|
|
['HTMLElement', 'noscript'],
|
|
['HTMLBGSoundElement', 'bgsound', 'HTMLElement'], // Safari 5.1
|
|
['HTMLPhraseElement', 'blink', 'HTMLElement'], // Safari 5.1
|
|
['HTMLElement', 'multicol'],
|
|
['HTMLNextIdElement', 'nextid', 'HTMLElement'], // Safari 5.1
|
|
['HTMLElement', 'rb'],
|
|
['HTMLElement', 'spacer'],
|
|
['HTMLAnchorElement', 'a', 'HTMLElement'], // Safari 5.1
|
|
// ['HTMLAppletElement', 'applet'], // commented out due to IE 11 java update popup
|
|
['HTMLAreaElement', 'area', 'HTMLElement'], // Safari 5.1
|
|
['HTMLAudioElement', 'audio', 'HTMLElement'], // Safari 5.1
|
|
['HTMLBaseElement', 'base', 'HTMLElement'], // Safari 5.1
|
|
['HTMLBodyElement', 'body', 'HTMLElement'], // Safari 5.1
|
|
['HTMLBRElement', 'br', 'HTMLElement'], // Safari 5.1
|
|
['HTMLButtonElement', 'button'],
|
|
['HTMLCanvasElement', 'canvas'],
|
|
['HTMLContentElement', 'content', 'HTMLElement'], // Safari 5.1
|
|
['HTMLDataElement', 'data', 'HTMLElement'], // Safari 5.1
|
|
['HTMLDataListElement', 'datalist'],
|
|
['HTMLDialogElement', 'dialog', 'HTMLElement'], // Safari 5.1
|
|
['HTMLDirectoryElement', 'dir'],
|
|
['HTMLDivElement', 'div'],
|
|
['HTMLDListElement', 'dl'],
|
|
['HTMLEmbedElement', 'embed'],
|
|
['HTMLFieldSetElement', 'fieldset'],
|
|
['HTMLFontElement', 'font'],
|
|
['HTMLFormElement', 'form'],
|
|
['HTMLFrameElement', 'frame'],
|
|
['HTMLFrameSetElement', 'frameset'],
|
|
['HTMLHeadElement', 'head'],
|
|
['HTMLHeadingElement', 'h1'],
|
|
['HTMLHeadingElement', 'h2'],
|
|
['HTMLHeadingElement', 'h3'],
|
|
['HTMLHeadingElement', 'h4'],
|
|
['HTMLHeadingElement', 'h5'],
|
|
['HTMLHeadingElement', 'h6'],
|
|
['HTMLHtmlElement', 'html'],
|
|
['HTMLHRElement', 'hr'],
|
|
['HTMLIFrameElement', 'iframe'],
|
|
['HTMLImageElement', 'img'],
|
|
['HTMLInputElement', 'input'],
|
|
['HTMLIsIndexElement', 'index', 'HTMLElement'], // in HTML5, this is HTMLUnknownElement (Safari 5.1 for HTMLElement)
|
|
['HTMLKeygenElement', 'keygen', 'HTMLBlockElement'],
|
|
['HTMLLabelElement', 'label'],
|
|
['HTMLLegendElement', 'legend'],
|
|
['HTMLLIElement', 'li'],
|
|
['HTMLLinkElement', 'link'],
|
|
['HTMLElement', 'main'], // in IE 9-11, this is HTMLUnknownElement
|
|
['HTMLMapElement', 'map'],
|
|
['HTMLMarqueeElement', 'marquee'],
|
|
['HTMLMenuElement', 'menu'],
|
|
['HTMLMetaElement', 'meta'],
|
|
['HTMLMeterElement', 'meter', 'HTMLElement'], // Safari 5.1
|
|
['HTMLModElement', 'del'],
|
|
['HTMLModElement', 'ins'],
|
|
['HTMLObjectElement', 'object'],
|
|
['HTMLOListElement', 'ol'],
|
|
['HTMLOptGroupElement', 'optgroup'],
|
|
['HTMLOptionElement', 'option'],
|
|
['HTMLOutputElement', 'output'],
|
|
['HTMLParagraphElement', 'p'],
|
|
['HTMLParamElement', 'param'],
|
|
['HTMLPictureElement', 'picture', 'HTMLElement'], // Safari 5.1
|
|
['HTMLPreElement', 'pre'],
|
|
['HTMLProgressElement', 'progress', 'HTMLElement'], // Safari 5.1
|
|
['HTMLQuoteElement', 'q', 'HTMLBlockquoteElement'], // Safari 5.1
|
|
['HTMLQuoteElement', 'blockquote', 'HTMLBlockElement', 'HTMLBlockquoteElement'], // Safari 5.1
|
|
['HTMLScriptElement', 'script'],
|
|
['HTMLSelectElement', 'select'],
|
|
['HTMLShadowElement', 'shadow', 'HTMLElement'], // Safari 5.1
|
|
['HTMLSourceElement', 'source'],
|
|
['HTMLSpanElement', 'span', 'HTMLElement'], // Safari 5.1
|
|
['HTMLStyleElement', 'style'],
|
|
['HTMLTableElement', 'table'],
|
|
['HTMLTableCaptionElement', 'caption'],
|
|
['HTMLTableCellElement', 'td', 'HTMLTableDataCellElement'],
|
|
['HTMLTableCellElement', 'th', 'HTMLTableHeaderCellElement'],
|
|
['HTMLTableRowElement', 'tr'],
|
|
['HTMLTableColElement', 'col'],
|
|
['HTMLTableColElement', 'colgroup'],
|
|
['HTMLTableSectionElement', 'tbody'],
|
|
['HTMLTableSectionElement', 'thead'],
|
|
['HTMLTableSectionElement', 'tfoot'],
|
|
['HTMLTemplateElement', 'template', 'HTMLElement'], // Safari 5.1
|
|
['HTMLTextAreaElement', 'textarea'],
|
|
['HTMLTimeElement', 'time', 'HTMLElement'], // Safari 5.1
|
|
['HTMLTitleElement', 'title'],
|
|
['HTMLTrackElement', 'track', 'HTMLElement'], // Safari 5.1
|
|
['HTMLUListElement', 'ul'],
|
|
['HTMLVideoElement', 'video'],
|
|
['HTMLElement', 'abbr'],
|
|
['HTMLElement', 'address'],
|
|
['HTMLElement', 'aside'],
|
|
['HTMLElement', 'b'],
|
|
['HTMLElement', 'bdi'],
|
|
['HTMLElement', 'bdo'],
|
|
['HTMLElement', 'code'],
|
|
['HTMLElement', 'dd'],
|
|
['HTMLDetailsElement', 'details', 'HTMLElement'], // Safari 5.1
|
|
['HTMLElement', 'dfn'],
|
|
['HTMLElement', 'dt'],
|
|
['HTMLElement', 'em'],
|
|
['HTMLElement', 'figcaption'],
|
|
['HTMLElement', 'figure'],
|
|
['HTMLElement', 'footer'],
|
|
['HTMLElement', 'header'],
|
|
['HTMLElement', 'hgroup'],
|
|
['HTMLElement', 'i'],
|
|
['HTMLElement', 'kbd'],
|
|
['HTMLElement', 'mark'],
|
|
['HTMLElement', 'nav'],
|
|
['HTMLElement', 'rp'],
|
|
['HTMLElement', 'rt'],
|
|
['HTMLElement', 'ruby'],
|
|
['HTMLElement', 's'],
|
|
['HTMLElement', 'samp'],
|
|
['HTMLSlotElement', 'slot', 'HTMLElement'], // Safari 5.1
|
|
['HTMLElement', 'small'],
|
|
['HTMLElement', 'strong'],
|
|
['HTMLElement', 'summary'],
|
|
['HTMLElement', 'u'],
|
|
['HTMLElement', 'var'],
|
|
['HTMLElement', 'wbr']
|
|
];
|
|
|
|
// eslint-disable-next-line consistent-return, max-params
|
|
var getConstructor = function getTagConstructor(tag, constructor, unknown) {
|
|
if (typeof document !== 'undefined' && typeof document.createElement === 'function') {
|
|
var actual = document.createElement(tag).constructor;
|
|
if (actual !== unknown) {
|
|
return actual;
|
|
}
|
|
}
|
|
};
|
|
|
|
module.exports = function getData() {
|
|
var unknown = global.HTMLUnknownElement;
|
|
return {
|
|
all: global.HTMLElement,
|
|
elements: map(expecteds, function (expected) {
|
|
var constructorName = expected[0];
|
|
var tag = expected[1];
|
|
var alternate;
|
|
var altConstructor;
|
|
for (var i = 2; i < arguments.length && !altConstructor; i += 1) {
|
|
alternate = expected[i];
|
|
altConstructor = alternate && global[alternate];
|
|
}
|
|
var constructor = global[constructorName];
|
|
|
|
return {
|
|
constructor: getConstructor(tag, altConstructor || constructor, unknown),
|
|
constructorName: altConstructor ? alternate : constructorName,
|
|
expectedConstructor: altConstructor || constructor,
|
|
tag: tag
|
|
};
|
|
}),
|
|
unknown: unknown
|
|
};
|
|
};
|