antv-l7/node_modules/html-element-map/getData.js

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
};
};