@tarojs/components
Version:
14,982 lines • 707 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
/*!
Stencil Mock Doc v2.22.3 | MIT Licensed | https://stenciljs.com
*/
const CONTENT_REF_ID = 'r';
const ORG_LOCATION_ID = 'o';
const SLOT_NODE_ID = 's';
const TEXT_NODE_ID = 't';
const XLINK_NS = 'http://www.w3.org/1999/xlink';
const attrHandler = {
get(obj, prop) {
if (prop in obj) {
return obj[prop];
}
if (typeof prop !== 'symbol' && !isNaN(prop)) {
return obj.__items[prop];
}
return undefined;
},
};
const createAttributeProxy = (caseInsensitive) => new Proxy(new MockAttributeMap(caseInsensitive), attrHandler);
class MockAttributeMap {
constructor(caseInsensitive = false) {
this.caseInsensitive = caseInsensitive;
this.__items = [];
}
get length() {
return this.__items.length;
}
item(index) {
return this.__items[index] || null;
}
setNamedItem(attr) {
attr.namespaceURI = null;
this.setNamedItemNS(attr);
}
setNamedItemNS(attr) {
if (attr != null && attr.value != null) {
attr.value = String(attr.value);
}
const existingAttr = this.__items.find((a) => a.name === attr.name && a.namespaceURI === attr.namespaceURI);
if (existingAttr != null) {
existingAttr.value = attr.value;
}
else {
this.__items.push(attr);
}
}
getNamedItem(attrName) {
if (this.caseInsensitive) {
attrName = attrName.toLowerCase();
}
return this.getNamedItemNS(null, attrName);
}
getNamedItemNS(namespaceURI, attrName) {
namespaceURI = getNamespaceURI(namespaceURI);
return (this.__items.find((attr) => attr.name === attrName && getNamespaceURI(attr.namespaceURI) === namespaceURI) || null);
}
removeNamedItem(attr) {
this.removeNamedItemNS(attr);
}
removeNamedItemNS(attr) {
for (let i = 0, ii = this.__items.length; i < ii; i++) {
if (this.__items[i].name === attr.name && this.__items[i].namespaceURI === attr.namespaceURI) {
this.__items.splice(i, 1);
break;
}
}
}
[Symbol.iterator]() {
let i = 0;
return {
next: () => ({
done: i === this.length,
value: this.item(i++),
}),
};
}
get [Symbol.toStringTag]() {
return 'MockAttributeMap';
}
}
function getNamespaceURI(namespaceURI) {
return namespaceURI === XLINK_NS ? null : namespaceURI;
}
function cloneAttributes(srcAttrs, sortByName = false) {
const dstAttrs = new MockAttributeMap(srcAttrs.caseInsensitive);
if (srcAttrs != null) {
const attrLen = srcAttrs.length;
if (sortByName && attrLen > 1) {
const sortedAttrs = [];
for (let i = 0; i < attrLen; i++) {
const srcAttr = srcAttrs.item(i);
const dstAttr = new MockAttr(srcAttr.name, srcAttr.value, srcAttr.namespaceURI);
sortedAttrs.push(dstAttr);
}
sortedAttrs.sort(sortAttributes).forEach((attr) => {
dstAttrs.setNamedItemNS(attr);
});
}
else {
for (let i = 0; i < attrLen; i++) {
const srcAttr = srcAttrs.item(i);
const dstAttr = new MockAttr(srcAttr.name, srcAttr.value, srcAttr.namespaceURI);
dstAttrs.setNamedItemNS(dstAttr);
}
}
}
return dstAttrs;
}
function sortAttributes(a, b) {
if (a.name < b.name)
return -1;
if (a.name > b.name)
return 1;
return 0;
}
class MockAttr {
constructor(attrName, attrValue, namespaceURI = null) {
this._name = attrName;
this._value = String(attrValue);
this._namespaceURI = namespaceURI;
}
get name() {
return this._name;
}
set name(value) {
this._name = value;
}
get value() {
return this._value;
}
set value(value) {
this._value = String(value);
}
get nodeName() {
return this._name;
}
set nodeName(value) {
this._name = value;
}
get nodeValue() {
return this._value;
}
set nodeValue(value) {
this._value = String(value);
}
get namespaceURI() {
return this._namespaceURI;
}
set namespaceURI(namespaceURI) {
this._namespaceURI = namespaceURI;
}
}
class MockClassList {
constructor(elm) {
this.elm = elm;
}
add(...classNames) {
const clsNames = getItems(this.elm);
let updated = false;
classNames.forEach((className) => {
className = String(className);
validateClass(className);
if (clsNames.includes(className) === false) {
clsNames.push(className);
updated = true;
}
});
if (updated) {
this.elm.setAttributeNS(null, 'class', clsNames.join(' '));
}
}
remove(...classNames) {
const clsNames = getItems(this.elm);
let updated = false;
classNames.forEach((className) => {
className = String(className);
validateClass(className);
const index = clsNames.indexOf(className);
if (index > -1) {
clsNames.splice(index, 1);
updated = true;
}
});
if (updated) {
this.elm.setAttributeNS(null, 'class', clsNames.filter((c) => c.length > 0).join(' '));
}
}
contains(className) {
className = String(className);
return getItems(this.elm).includes(className);
}
toggle(className) {
className = String(className);
if (this.contains(className) === true) {
this.remove(className);
}
else {
this.add(className);
}
}
get length() {
return getItems(this.elm).length;
}
item(index) {
return getItems(this.elm)[index];
}
toString() {
return getItems(this.elm).join(' ');
}
}
function validateClass(className) {
if (className === '') {
throw new Error('The token provided must not be empty.');
}
if (/\s/.test(className)) {
throw new Error(`The token provided ('${className}') contains HTML space characters, which are not valid in tokens.`);
}
}
function getItems(elm) {
const className = elm.getAttribute('class');
if (typeof className === 'string' && className.length > 0) {
return className
.trim()
.split(' ')
.filter((c) => c.length > 0);
}
return [];
}
class MockCSSStyleDeclaration {
constructor() {
this._styles = new Map();
}
setProperty(prop, value) {
prop = jsCaseToCssCase(prop);
if (value == null || value === '') {
this._styles.delete(prop);
}
else {
this._styles.set(prop, String(value));
}
}
getPropertyValue(prop) {
prop = jsCaseToCssCase(prop);
return String(this._styles.get(prop) || '');
}
removeProperty(prop) {
prop = jsCaseToCssCase(prop);
this._styles.delete(prop);
}
get length() {
return this._styles.size;
}
get cssText() {
const cssText = [];
this._styles.forEach((value, prop) => {
cssText.push(`${prop}: ${value};`);
});
return cssText.join(' ').trim();
}
set cssText(cssText) {
if (cssText == null || cssText === '') {
this._styles.clear();
return;
}
cssText.split(';').forEach((rule) => {
rule = rule.trim();
if (rule.length > 0) {
const splt = rule.split(':');
if (splt.length > 1) {
const prop = splt[0].trim();
const value = splt.slice(1).join(':').trim();
if (prop !== '' && value !== '') {
this._styles.set(jsCaseToCssCase(prop), value);
}
}
}
});
}
}
function createCSSStyleDeclaration() {
return new Proxy(new MockCSSStyleDeclaration(), cssProxyHandler);
}
const cssProxyHandler = {
get(cssStyle, prop) {
if (prop in cssStyle) {
return cssStyle[prop];
}
prop = cssCaseToJsCase(prop);
return cssStyle.getPropertyValue(prop);
},
set(cssStyle, prop, value) {
if (prop in cssStyle) {
cssStyle[prop] = value;
}
else {
cssStyle.setProperty(prop, value);
}
return true;
},
};
function cssCaseToJsCase(str) {
// font-size to fontSize
if (str.length > 1 && str.includes('-') === true) {
str = str
.toLowerCase()
.split('-')
.map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))
.join('');
str = str.slice(0, 1).toLowerCase() + str.slice(1);
}
return str;
}
function jsCaseToCssCase(str) {
// fontSize to font-size
if (str.length > 1 && str.includes('-') === false && /[A-Z]/.test(str) === true) {
str = str
.replace(/([A-Z])/g, (g) => ' ' + g[0])
.trim()
.replace(/ /g, '-')
.toLowerCase();
}
return str;
}
class MockCustomElementRegistry {
constructor(win) {
this.win = win;
}
define(tagName, cstr, options) {
if (tagName.toLowerCase() !== tagName) {
throw new Error(`Failed to execute 'define' on 'CustomElementRegistry': "${tagName}" is not a valid custom element name`);
}
if (this.__registry == null) {
this.__registry = new Map();
}
this.__registry.set(tagName, { cstr, options });
if (this.__whenDefined != null) {
const whenDefinedResolveFns = this.__whenDefined.get(tagName);
if (whenDefinedResolveFns != null) {
whenDefinedResolveFns.forEach((whenDefinedResolveFn) => {
whenDefinedResolveFn();
});
whenDefinedResolveFns.length = 0;
this.__whenDefined.delete(tagName);
}
}
const doc = this.win.document;
if (doc != null) {
const hosts = doc.querySelectorAll(tagName);
hosts.forEach((host) => {
if (upgradedElements.has(host) === false) {
tempDisableCallbacks.add(doc);
const upgradedCmp = createCustomElement(this, doc, tagName);
for (let i = 0; i < host.childNodes.length; i++) {
const childNode = host.childNodes[i];
childNode.remove();
upgradedCmp.appendChild(childNode);
}
tempDisableCallbacks.delete(doc);
if (proxyElements.has(host)) {
proxyElements.set(host, upgradedCmp);
}
}
fireConnectedCallback(host);
});
}
}
get(tagName) {
if (this.__registry != null) {
const def = this.__registry.get(tagName.toLowerCase());
if (def != null) {
return def.cstr;
}
}
return undefined;
}
upgrade(_rootNode) {
//
}
clear() {
if (this.__registry != null) {
this.__registry.clear();
}
if (this.__whenDefined != null) {
this.__whenDefined.clear();
}
}
whenDefined(tagName) {
tagName = tagName.toLowerCase();
if (this.__registry != null && this.__registry.has(tagName) === true) {
return Promise.resolve(this.__registry.get(tagName).cstr);
}
return new Promise((resolve) => {
if (this.__whenDefined == null) {
this.__whenDefined = new Map();
}
let whenDefinedResolveFns = this.__whenDefined.get(tagName);
if (whenDefinedResolveFns == null) {
whenDefinedResolveFns = [];
this.__whenDefined.set(tagName, whenDefinedResolveFns);
}
whenDefinedResolveFns.push(resolve);
});
}
}
function createCustomElement(customElements, ownerDocument, tagName) {
const Cstr = customElements.get(tagName);
if (Cstr != null) {
const cmp = new Cstr(ownerDocument);
cmp.nodeName = tagName.toUpperCase();
upgradedElements.add(cmp);
return cmp;
}
const host = new Proxy({}, {
get(obj, prop) {
const elm = proxyElements.get(host);
if (elm != null) {
return elm[prop];
}
return obj[prop];
},
set(obj, prop, val) {
const elm = proxyElements.get(host);
if (elm != null) {
elm[prop] = val;
}
else {
obj[prop] = val;
}
return true;
},
has(obj, prop) {
const elm = proxyElements.get(host);
if (prop in elm) {
return true;
}
if (prop in obj) {
return true;
}
return false;
},
});
const elm = new MockHTMLElement(ownerDocument, tagName);
proxyElements.set(host, elm);
return host;
}
const proxyElements = new WeakMap();
const upgradedElements = new WeakSet();
function connectNode(ownerDocument, node) {
node.ownerDocument = ownerDocument;
if (node.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */) {
if (ownerDocument != null && node.nodeName.includes('-')) {
const win = ownerDocument.defaultView;
if (win != null && typeof node.connectedCallback === 'function' && node.isConnected) {
fireConnectedCallback(node);
}
const shadowRoot = node.shadowRoot;
if (shadowRoot != null) {
shadowRoot.childNodes.forEach((childNode) => {
connectNode(ownerDocument, childNode);
});
}
}
node.childNodes.forEach((childNode) => {
connectNode(ownerDocument, childNode);
});
}
else {
node.childNodes.forEach((childNode) => {
childNode.ownerDocument = ownerDocument;
});
}
}
function fireConnectedCallback(node) {
if (typeof node.connectedCallback === 'function') {
if (tempDisableCallbacks.has(node.ownerDocument) === false) {
try {
node.connectedCallback();
}
catch (e) {
console.error(e);
}
}
}
}
function disconnectNode(node) {
if (node.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */) {
if (node.nodeName.includes('-') === true && typeof node.disconnectedCallback === 'function') {
if (tempDisableCallbacks.has(node.ownerDocument) === false) {
try {
node.disconnectedCallback();
}
catch (e) {
console.error(e);
}
}
}
node.childNodes.forEach(disconnectNode);
}
}
function attributeChanged(node, attrName, oldValue, newValue) {
attrName = attrName.toLowerCase();
const observedAttributes = node.constructor.observedAttributes;
if (Array.isArray(observedAttributes) === true &&
observedAttributes.some((obs) => obs.toLowerCase() === attrName) === true) {
try {
node.attributeChangedCallback(attrName, oldValue, newValue);
}
catch (e) {
console.error(e);
}
}
}
function checkAttributeChanged(node) {
return node.nodeName.includes('-') === true && typeof node.attributeChangedCallback === 'function';
}
const tempDisableCallbacks = new Set();
function dataset(elm) {
const ds = {};
const attributes = elm.attributes;
const attrLen = attributes.length;
for (let i = 0; i < attrLen; i++) {
const attr = attributes.item(i);
const nodeName = attr.nodeName;
if (nodeName.startsWith('data-')) {
ds[dashToPascalCase(nodeName)] = attr.nodeValue;
}
}
return new Proxy(ds, {
get(_obj, camelCaseProp) {
return ds[camelCaseProp];
},
set(_obj, camelCaseProp, value) {
const dataAttr = toDataAttribute(camelCaseProp);
elm.setAttribute(dataAttr, value);
return true;
},
});
}
function toDataAttribute(str) {
return ('data-' +
String(str)
.replace(/([A-Z0-9])/g, (g) => ' ' + g[0])
.trim()
.replace(/ /g, '-')
.toLowerCase());
}
function dashToPascalCase(str) {
str = String(str).slice(5);
return str
.split('-')
.map((segment, index) => {
if (index === 0) {
return segment.charAt(0).toLowerCase() + segment.slice(1);
}
return segment.charAt(0).toUpperCase() + segment.slice(1);
})
.join('');
}
class MockEvent {
constructor(type, eventInitDict) {
this.bubbles = false;
this.cancelBubble = false;
this.cancelable = false;
this.composed = false;
this.currentTarget = null;
this.defaultPrevented = false;
this.srcElement = null;
this.target = null;
if (typeof type !== 'string') {
throw new Error(`Event type required`);
}
this.type = type;
this.timeStamp = Date.now();
if (eventInitDict != null) {
Object.assign(this, eventInitDict);
}
}
preventDefault() {
this.defaultPrevented = true;
}
stopPropagation() {
this.cancelBubble = true;
}
stopImmediatePropagation() {
this.cancelBubble = true;
}
composedPath() {
const composedPath = [];
let currentElement = this.target;
while (currentElement) {
composedPath.push(currentElement);
if (!currentElement.parentElement && currentElement.nodeName === "#document" /* NODE_NAMES.DOCUMENT_NODE */) {
// the current element doesn't have a parent, but we've detected it's our root document node. push the window
// object associated with the document onto the path
composedPath.push(currentElement.defaultView);
break;
}
currentElement = currentElement.parentElement;
}
return composedPath;
}
}
class MockCustomEvent extends MockEvent {
constructor(type, customEventInitDic) {
super(type);
this.detail = null;
if (customEventInitDic != null) {
Object.assign(this, customEventInitDic);
}
}
}
class MockKeyboardEvent extends MockEvent {
constructor(type, keyboardEventInitDic) {
super(type);
this.code = '';
this.key = '';
this.altKey = false;
this.ctrlKey = false;
this.metaKey = false;
this.shiftKey = false;
this.location = 0;
this.repeat = false;
if (keyboardEventInitDic != null) {
Object.assign(this, keyboardEventInitDic);
}
}
}
class MockMouseEvent extends MockEvent {
constructor(type, mouseEventInitDic) {
super(type);
this.screenX = 0;
this.screenY = 0;
this.clientX = 0;
this.clientY = 0;
this.ctrlKey = false;
this.shiftKey = false;
this.altKey = false;
this.metaKey = false;
this.button = 0;
this.buttons = 0;
this.relatedTarget = null;
if (mouseEventInitDic != null) {
Object.assign(this, mouseEventInitDic);
}
}
}
class MockUIEvent extends MockEvent {
constructor(type, uiEventInitDic) {
super(type);
this.detail = null;
this.view = null;
if (uiEventInitDic != null) {
Object.assign(this, uiEventInitDic);
}
}
}
class MockFocusEvent extends MockUIEvent {
constructor(type, focusEventInitDic) {
super(type);
this.relatedTarget = null;
if (focusEventInitDic != null) {
Object.assign(this, focusEventInitDic);
}
}
}
class MockEventListener {
constructor(type, handler) {
this.type = type;
this.handler = handler;
}
}
function addEventListener(elm, type, handler) {
const target = elm;
if (target.__listeners == null) {
target.__listeners = [];
}
target.__listeners.push(new MockEventListener(type, handler));
}
function removeEventListener(elm, type, handler) {
const target = elm;
if (target != null && Array.isArray(target.__listeners) === true) {
const elmListener = target.__listeners.find((e) => e.type === type && e.handler === handler);
if (elmListener != null) {
const index = target.__listeners.indexOf(elmListener);
target.__listeners.splice(index, 1);
}
}
}
function resetEventListeners(target) {
if (target != null && target.__listeners != null) {
target.__listeners = null;
}
}
function triggerEventListener(elm, ev) {
if (elm == null || ev.cancelBubble === true) {
return;
}
const target = elm;
ev.currentTarget = elm;
if (Array.isArray(target.__listeners) === true) {
const listeners = target.__listeners.filter((e) => e.type === ev.type);
listeners.forEach((listener) => {
try {
listener.handler.call(target, ev);
}
catch (err) {
console.error(err);
}
});
}
if (ev.bubbles === false) {
return;
}
if (elm.nodeName === "#document" /* NODE_NAMES.DOCUMENT_NODE */) {
triggerEventListener(elm.defaultView, ev);
}
else {
triggerEventListener(elm.parentElement, ev);
}
}
function dispatchEvent(currentTarget, ev) {
ev.target = currentTarget;
triggerEventListener(currentTarget, ev);
return true;
}
// Parse5 7.1.2
const e=function(e){const t=new Set([65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111]),s="�";var a;!function(e){e[e.EOF=-1]="EOF",e[e.NULL=0]="NULL",e[e.TABULATION=9]="TABULATION",e[e.CARRIAGE_RETURN=13]="CARRIAGE_RETURN",e[e.LINE_FEED=10]="LINE_FEED",e[e.FORM_FEED=12]="FORM_FEED",e[e.SPACE=32]="SPACE",e[e.EXCLAMATION_MARK=33]="EXCLAMATION_MARK",e[e.QUOTATION_MARK=34]="QUOTATION_MARK",e[e.NUMBER_SIGN=35]="NUMBER_SIGN",e[e.AMPERSAND=38]="AMPERSAND",e[e.APOSTROPHE=39]="APOSTROPHE",e[e.HYPHEN_MINUS=45]="HYPHEN_MINUS",e[e.SOLIDUS=47]="SOLIDUS",e[e.DIGIT_0=48]="DIGIT_0",e[e.DIGIT_9=57]="DIGIT_9",e[e.SEMICOLON=59]="SEMICOLON",e[e.LESS_THAN_SIGN=60]="LESS_THAN_SIGN",e[e.EQUALS_SIGN=61]="EQUALS_SIGN",e[e.GREATER_THAN_SIGN=62]="GREATER_THAN_SIGN",e[e.QUESTION_MARK=63]="QUESTION_MARK",e[e.LATIN_CAPITAL_A=65]="LATIN_CAPITAL_A",e[e.LATIN_CAPITAL_F=70]="LATIN_CAPITAL_F",e[e.LATIN_CAPITAL_X=88]="LATIN_CAPITAL_X",e[e.LATIN_CAPITAL_Z=90]="LATIN_CAPITAL_Z",e[e.RIGHT_SQUARE_BRACKET=93]="RIGHT_SQUARE_BRACKET",e[e.GRAVE_ACCENT=96]="GRAVE_ACCENT",e[e.LATIN_SMALL_A=97]="LATIN_SMALL_A",e[e.LATIN_SMALL_F=102]="LATIN_SMALL_F",e[e.LATIN_SMALL_X=120]="LATIN_SMALL_X",e[e.LATIN_SMALL_Z=122]="LATIN_SMALL_Z",e[e.REPLACEMENT_CHARACTER=65533]="REPLACEMENT_CHARACTER";}(a=a||(a={}));const r="[CDATA[",n="doctype",i="script";function o(e){return e>=55296&&e<=57343}function c(e){return 32!==e&&10!==e&&13!==e&&9!==e&&12!==e&&e>=1&&e<=31||e>=127&&e<=159}function E(e){return e>=64976&&e<=65007||t.has(e)}var T,h;!function(e){e.controlCharacterInInputStream="control-character-in-input-stream",e.noncharacterInInputStream="noncharacter-in-input-stream",e.surrogateInInputStream="surrogate-in-input-stream",e.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",e.endTagWithAttributes="end-tag-with-attributes",e.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",e.unexpectedSolidusInTag="unexpected-solidus-in-tag",e.unexpectedNullCharacter="unexpected-null-character",e.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",e.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",e.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",e.missingEndTagName="missing-end-tag-name",e.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",e.unknownNamedCharacterReference="unknown-named-character-reference",e.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",e.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",e.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",e.eofBeforeTagName="eof-before-tag-name",e.eofInTag="eof-in-tag",e.missingAttributeValue="missing-attribute-value",e.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",e.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",e.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",e.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",e.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",e.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",e.missingDoctypePublicIdentifier="missing-doctype-public-identifier",e.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",e.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",e.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",e.cdataInHtmlContent="cdata-in-html-content",e.incorrectlyOpenedComment="incorrectly-opened-comment",e.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",e.eofInDoctype="eof-in-doctype",e.nestedComment="nested-comment",e.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",e.eofInComment="eof-in-comment",e.incorrectlyClosedComment="incorrectly-closed-comment",e.eofInCdata="eof-in-cdata",e.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",e.nullCharacterReference="null-character-reference",e.surrogateCharacterReference="surrogate-character-reference",e.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",e.controlCharacterReference="control-character-reference",e.noncharacterCharacterReference="noncharacter-character-reference",e.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",e.missingDoctypeName="missing-doctype-name",e.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",e.duplicateAttribute="duplicate-attribute",e.nonConformingDoctype="non-conforming-doctype",e.missingDoctype="missing-doctype",e.misplacedDoctype="misplaced-doctype",e.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",e.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",e.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",e.openElementsLeftAfterEof="open-elements-left-after-eof",e.abandonedHeadElementChild="abandoned-head-element-child",e.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",e.nestedNoscriptInHead="nested-noscript-in-head",e.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text";}(T=T||(T={}));class _{constructor(e){this.handler=e,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=65536,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1;}get col(){return this.pos-this.lineStartPos+Number(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(e){const{line:t,col:s,offset:a}=this;return {code:e,startLine:t,endLine:t,startCol:s,endCol:s,startOffset:a,endOffset:a}}_err(e){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(e)));}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos;}_processSurrogate(e){if(this.pos!==this.html.length-1){const t=this.html.charCodeAt(this.pos+1);if(function(e){return e>=56320&&e<=57343}(t))return this.pos++,this._addGap(),1024*(e-55296)+9216+t}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,a.EOF;return this._err(T.surrogateInInputStream),e}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0);}write(e,t){this.html.length>0?this.html+=e:this.html=e,this.endOfChunkHit=!1,this.lastChunkWritten=t;}insertHtmlAtCurrentPos(e){this.html=this.html.substring(0,this.pos+1)+e+this.html.substring(this.pos+1),this.endOfChunkHit=!1;}startsWith(e,t){if(this.pos+e.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(t)return this.html.startsWith(e,this.pos);for(let t=0;t<e.length;t++)if((32|this.html.charCodeAt(this.pos+t))!==e.charCodeAt(t))return !1;return !0}peek(e){const t=this.pos+e;if(t>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,a.EOF;const s=this.html.charCodeAt(t);return s===a.CARRIAGE_RETURN?a.LINE_FEED:s}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,a.EOF;let e=this.html.charCodeAt(this.pos);return e===a.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,a.LINE_FEED):e===a.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,o(e)&&(e=this._processSurrogate(e)),null===this.handler.onParseError||e>31&&e<127||e===a.LINE_FEED||e===a.CARRIAGE_RETURN||e>159&&e<64976||this._checkForProblematicCharacters(e),e)}_checkForProblematicCharacters(e){c(e)?this._err(T.controlCharacterInInputStream):E(e)&&this._err(T.noncharacterInInputStream);}retreat(e){for(this.pos-=e;this.pos<this.lastGapPos;)this.lastGapPos=this.gapStack.pop(),this.pos--;this.isEol=!1;}}function A(e,t){for(let s=e.attrs.length-1;s>=0;s--)if(e.attrs[s].name===t)return e.attrs[s].value;return null}!function(e){e[e.CHARACTER=0]="CHARACTER",e[e.NULL_CHARACTER=1]="NULL_CHARACTER",e[e.WHITESPACE_CHARACTER=2]="WHITESPACE_CHARACTER",e[e.START_TAG=3]="START_TAG",e[e.END_TAG=4]="END_TAG",e[e.COMMENT=5]="COMMENT",e[e.DOCTYPE=6]="DOCTYPE",e[e.EOF=7]="EOF",e[e.HIBERNATION=8]="HIBERNATION";}(h=h||(h={}));var l="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function m(e,t,s){return e(s={path:t,exports:{},require:function(e,t){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==t&&s.path)}},s.exports),s.exports}var p,d,I,N,u,C=m((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗ĀeiቻDzኀ\0ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtèa;䎖r;愨pf;愤cr;쀀𝒵ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀𝔟gcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭒\0᯽\0ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\0\0aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧\0耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀𝔫ȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀𝔬ͯ\0\0\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\0\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ脀¶;l䂶leìЃɩ\0\0m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⋢⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roðtré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜtré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map((function(e){return e.charCodeAt(0)})));})),D=m((function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map((function(e){return e.charCodeAt(0)})));})),S=m((function(e,t){var s;Object.defineProperty(t,"__esModule",{value:!0}),t.replaceCodePoint=t.fromCodePoint=void 0;var a=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function r(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=a.get(e))&&void 0!==t?t:e}t.fromCodePoint=null!==(s=String.fromCodePoint)&&void 0!==s?s:function(e){var t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+String.fromCharCode(e)},t.replaceCodePoint=r,t.default=function(e){return (0, t.fromCodePoint)(r(e))};})),R=m((function(e,t){var s=l&&l.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXML=t.decodeHTMLStrict=t.decodeHTML=t.determineBranch=t.BinTrieFlags=t.fromCodePoint=t.replaceCodePoint=t.decodeCodePoint=t.xmlDecodeTree=t.htmlDecodeTree=void 0;var a=s(C);t.htmlDecodeTree=a.default;var r=s(D);t.xmlDecodeTree=r.default;var n=s(S);t.decodeCodePoint=n.default;var i,o,c=S;function E(e){return function(t,s){for(var a="",r=0,c=0;(c=t.indexOf("&",c))>=0;)if(a+=t.slice(r,c),r=c,c+=1,t.charCodeAt(c)!==i.NUM){for(var E=0,h=1,_=0,A=e[_];c<t.length&&!((_=T(e,A,_+1,t.charCodeAt(c)))<0);c++,h++){var l=(A=e[_])&o.VALUE_LENGTH;if(l){var m;if(s&&t.charCodeAt(c)!==i.SEMI||(E=_,h=0),0==(m=(l>>14)-1))break;_+=m;}}0!==E&&(a+=1==(m=(e[E]&o.VALUE_LENGTH)>>14)?String.fromCharCode(e[E]&~o.VALUE_LENGTH):2===m?String.fromCharCode(e[E+1]):String.fromCharCode(e[E+1],e[E+2]),r=c-h+1);}else {var p=c+1,d=10,I=t.charCodeAt(p);(I|i.To_LOWER_BIT)===i.LOWER_X&&(d=16,c+=1,p+=1);do{I=t.charCodeAt(++c);}while(I>=i.ZERO&&I<=i.NINE||16===d&&(I|i.To_LOWER_BIT)>=i.LOWER_A&&(I|i.To_LOWER_BIT)<=i.LOWER_F);if(p!==c){var N=t.substring(p,c),u=parseInt(N,d);if(t.charCodeAt(c)===i.SEMI)c+=1;else if(s)continue;a+=(0, n.default)(u),r=c;}}return a+t.slice(r)}}function T(e,t,s,a){var r=(t&o.BRANCH_LENGTH)>>7,n=t&o.JUMP_TABLE;if(0===r)return 0!==n&&a===n?s:-1;if(n){var i=a-n;return i<0||i>=r?-1:e[s+i]-1}for(var c=s,E=c+r-1;c<=E;){var T=c+E>>>1,h=e[T];if(h<a)c=T+1;else {if(!(h>a))return e[T+r];E=T-1;}}return -1}Object.defineProperty(t,"replaceCodePoint",{enumerable:!0,get:function(){return c.replaceCodePoint}}),Object.defineProperty(t,"fromCodePoint",{enumerable:!0,get:function(){return c.fromCodePoint}}),function(e){e[e.NUM=35]="NUM",e[e.SEMI=59]="SEMI",e[e.ZERO=48]="ZERO",e[e.NINE=57]="NINE",e[e.LOWER_A=97]="LOWER_A",e[e.LOWER_F=102]="LOWER_F",e[e.LOWER_X=120]="LOWER_X",e[e.To_LOWER_BIT=32]="To_LOWER_BIT";}(i||(i={})),function(e){e[e.VALUE_LENGTH=49152]="VALUE_LENGTH",e[e.BRANCH_LENGTH=16256]="BRANCH_LENGTH",e[e.JUMP_TABLE=127]="JUMP_TABLE";}(o=t.BinTrieFlags||(t.BinTrieFlags={})),t.determineBranch=T;var h=E(a.default),_=E(r.default);t.decodeHTML=function(e){return h(e,!1)},t.decodeHTMLStrict=function(e){return h(e,!0)},t.decodeXML=function(e){return _(e,!0)};}));!function(e){e.HTML="http://www.w3.org/1999/xhtml",e.MATHML="http://www.w3.org/1998/Math/MathML",e.SVG="http://www.w3.org/2000/svg",e.XLINK="http://www.w3.org/1999/xlink",e.XML="http://www.w3.org/XML/1998/namespace",e.XMLNS="http://www.w3.org/2000/xmlns/";}(p=p||(p={})),function(e){e.TYPE="type",e.ACTION="action",e.ENCODING="encoding",e.PROMPT="prompt",e.NAME="name",e.COLOR="color",e.FACE="face",e.SIZE="size";}(d=d||(d={})),function(e){e.NO_QUIRKS="no-quirks",e.QUIRKS="quirks",e.LIMITED_QUIRKS="limited-quirks";}(I=I||(I={})),function(e){e.A="a",e.ADDRESS="address",e.ANNOTATION_XML="annotation-xml",e.APPLET="applet",e.AREA="area",e.ARTICLE="article",e.ASIDE="aside",e.B="b",e.BASE="base",e.BASEFONT="basefont",e.BGSOUND="bgsound",e.BIG="big",e.BLOCKQUOTE="blockquote",e.BODY="body",e.BR="br",e.BUTTON="button",e.CAPTION="caption",e.CENTER="center",e.CODE="code",e.COL="col",e.COLGROUP="colgroup",e.DD="dd",e.DESC="desc",e.DETAILS="details",e.DIALOG="dialog",e.DIR="dir",e.DIV="div",e.DL="dl",e.DT="dt",e.EM="em",e.EMBED="embed",e.FIELDSET="fieldset",e.FIGCAPTION="figcaption",e.FIGURE="figure",e.FONT="font",e.FOOTER="footer",e.FOREIGN_OBJECT="foreignObject",e.FORM="form",e.FRAME="frame",e.FRAMESET="frameset",e.H1="h1",e.H2="h2",e.H3="h3",e.H4="h4",e.H5="h5",e.H6="h6",e.HEAD="head",e.HEADER="header",e.HGROUP="hgroup",e.HR="hr",e.HTML="html",e.I="i",e.IMG="img",e.IMAGE="image",e.INPUT="input",e.IFRAME="iframe",e.KEYGEN="keygen",e.LABEL="label",e.LI="li",e.LINK="link",e.LISTING="listing",e.MAIN="main",e.MALIGNMARK="malignmark",e.MARQUEE="marquee",e.MATH="math",e.MENU="menu",e.META="meta",e.MGLYPH="mglyph",e.MI="mi",e.MO="mo",e.MN="mn",e.MS="ms",e.MTEXT="mtext",e.NAV="nav",e.NOBR="nobr",e.NOFRAMES="noframes",e.NOEMBED="noembed",e.NOSCRIPT="noscript",e.OBJECT="object",e.OL="ol",e.OPTGROUP="optgroup",e.OPTION="option",e.P="p",e.PARAM="param",e.PLAINTEXT="plaintext",e.PRE="pre",e.RB="rb",e.RP="rp",e.RT="rt",e.RTC="rtc",e.RUBY="ruby",e.S="s",e.SCRIPT="script",e.SECTION="section",e.SELECT="select",e.SOURCE="source",e.SMALL="small",e.SPAN="span",e.STRIKE="strike",e.STRONG="strong",e.STYLE="style",e.SUB="sub",e.SUMMARY="summary",e.SUP="sup",e.TABLE="table",e.TBODY="tbody",e.TEMPLATE="template",e.TEXTAREA="textarea",e.TFOOT="tfoot",e.TD="td",e.TH="th",e.THEAD="thead",e.TITLE="title",e.TR="tr",e.TRACK="track",e.TT="tt",e.U="u",e.UL="ul",e.SVG="svg",e.VAR="var",e.WBR="wbr",e.XMP="xmp";}(N=N||(N={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.A=1]="A",e[e.ADDRESS=2]="ADDRESS",e[e.ANNOTATION_XML=3]="ANNOTATION_XML",e[e.APPLET=4]="APPLET",e[e.AREA=5]="AREA",e[e.ARTICLE=6]="ARTICLE",e[e.ASIDE=7]="ASIDE",e[e.B=8]="B",e[e.BASE=9]="BASE",e[e.BASEFONT=10]="BASEFONT",e[e.BGSOUND=11]="BGSOUND",e[e.BIG=12]="BIG",e[e.BLOCKQUOTE=13]="BLOCKQUOTE",e[e.BODY=14]="BODY",e[e.BR=15]="BR",e[e.BUTTON=16]="BUTTON",e[e.CAPTION=17]="CAPTION",e[e.CENTER=18]="CENTER",e[e.CODE=19]="CODE",e[e.COL=20]="COL",e[e.COLGROUP=21]="COLGROUP",e[e.DD=22]="DD",e[e.DESC=23]="DESC",e[e.DETAILS=24]="DETAILS",e[e.DIALOG=25]="DIALOG",e[e.DIR=26]="DIR",e[e.DIV=27]="DIV",e[e.DL=28]="DL",e[e.DT=29]="DT",e[e.EM=30]="EM",e[e.EMBED=31]="EMBED",e[e.FIELDSET=32]="FIELDSET",e[e.FIGCAPTION=33]="FIGCAPTION",e[e.FIGURE=34]="FIGURE",e[e.FONT=35]="FONT",e[e.FOOTER=36]="FOOTER",e[e.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",e[e.FORM=38]="FORM",e[e.FRAME=39]="FRAME",e[e.FRAMESET=40]="FRAMESET",e[e.H1=41]="H1",e[e.H2=42]="H2",e[e.H3=43]="H3",e[e.H4=44]="H4",e[e.H5=45]="H5",e[e.H6=46]="H6",e[e.HEAD=47]="HEAD",e[e.HEADER=48]="HEADER",e[e.HGROUP=49]="HGROUP",e[e.HR=50]="HR",e[e.HTML=51]="HTML",e[e.I=52]="I",e[e.IMG=53]="IMG",e[e.IMAGE=54]="IMAGE",e[e.INPUT=55]="INPUT",e[e.IFRAME=56]="IFRAME",e[e.KEYGEN=57]="KEYGEN",e[e.LABEL=58]="LABEL",e[e.LI=59]="LI",e[e.LINK=60]="LINK",e[e.LISTING=61]="LISTING",e[e.MAIN=62]="MAIN",e[e.MALIGNMARK=63]="MALIGNMARK",e[e.MARQUEE=64]="MARQUEE",e[e.MATH=65]="MATH",e[e.MENU=66]="MENU",e[e.META=67]="META",e[e.MGLYPH=68]="MGLYPH",e[e.MI=69]="MI",e[e.MO=70]="MO",e[e.MN=71]="MN",e[e.MS=72]="MS",e[e.MTEXT=73]="MTEXT",e[e.NAV=74]="NAV",e[e.NOBR=75]="NOBR",e[e.NOFRAMES=76]="NOFRAMES",e[e.NOEMBED=77]="NOEMBED",e[e.NOSCRIPT=78]="NOSCRIPT",e[e.OBJECT=79]="OBJECT",e[e.OL=80]="OL",e[e.OPTGROUP=81]="OPTGROUP",e[e.OPTION=82]="OPTION",e[e.P=83]="P",e[e.PARAM=84]="PARAM",e[e.PLAINTEXT=85]="PLAINTEXT",e[e.PRE=86]="PRE",e[e.RB=87]="RB",e[e.RP=88]="RP",e[e.RT=89]="RT",e[e.RTC=90]="RTC",e[e.RUBY=91]="RUBY",e[e.S=92]="S",e[e.SCRIPT=93]="SCRIPT",e[e.SECTION=94]="SECTION",e[e.SELECT=95]="SELECT",e[e.SOURCE=96]="SOURCE",e[e.SMALL=97]="SMALL",e[e.SPAN=98]="SPAN",e[e.STRIKE=99]="STRIKE",e[e.STRONG=100]="STRONG",e[e.STYLE=101]="STYLE",e[e.SUB=102]="SUB",e[e.SUMMARY=103]="SUMMARY",e[e.SUP=104]="SUP",e[e.TABLE=105]="TABLE",e[e.TBODY=106]="TBODY",e[e.TEMPLATE=107]="TEMPLATE",e[e.TEXTAREA=108]="TEXTAREA",e[e.TFOOT=109]="TFOOT",e[e.TD=110]="TD",e[e.TH=111]="TH",e[e.THEAD=112]="THEAD",e[e.TITLE=113]="TITLE",e[e.TR=114]="TR",e[e.TRACK=115]="TRACK",e[e.TT=116]="TT",e[e.U=117]="U",e[e.UL=118]="UL",e[e.SVG=119]="SVG",e[e.VAR=120]="VAR",e[e.WBR=121]="WBR",e[e.XMP=122]="XMP";}(u=u||(u={}));const O=new Map([[N.A,u.A],[N.ADDRESS,u.ADDRESS],[N.ANNOTATION_XML,u.ANNOTATION_XML],[N.APPLET,u.APPLET],[N.AREA,u.AREA],[N.ARTICLE,u.ARTICLE],[N.ASIDE,u.ASIDE],[N.B,u.B],[N.BASE,u.BASE],[N.BASEFONT,u.BASEFONT],[N.BGSOUND,u.BGSOUND],[N.BIG,u.BIG],[N.BLOCKQUOTE,u.BLOCKQUOTE],[N.BODY,u.BODY],[N.BR,u.BR],[N.BUTTON,u.BUTTON],[N.CAPTION,u.CAPTION],[N.CENTER,u.CENTER],[N.CODE,u.CODE],[N.COL,u.COL],[N.COLGROUP,u.COLGROUP],[N.DD,u.DD],[N.DESC,u.DESC],[N.DETAILS,u.DETAILS],[N.DIALOG,u.DIALOG],[N.DIR,u.DIR],[N.DIV,u.DIV],[N.DL,u.DL],[N.DT,u.DT],[N.EM,u.EM],[N.EMBED,u.EMBED],[N.FIELDSET,u.FIELDSET],[N.FIGCAPTION,u.FIGCAPTION],[N.FIGURE,u.FIGURE],[N.FONT,u.FONT],[N.FOOTER,u.FOOTER],[N.FOREIGN_OBJECT,u.FOREIGN_OBJECT],[N.FORM,u.FORM],[N.FRAME,u.FRAME],[N.FRAMESET,u.FRAMESET],[N.H1,u.H1],[N.H2,u.H2],[N.H3,u.H3],[N.H4,u.H4],[N.H5,u.H5],[N.H6,u.H6],[N.HEAD,u.HEAD],[N.HEADER,u.HEADER],[N.HGROUP,u.HGROUP],[N.HR,u.HR],[N.HTML,u.HTML],[N.I,u.I],[N.IMG,u.IMG],[N.IMAGE,u.IMAGE],[N.INPUT,u.INPUT],[N.IFRAME,u.IFRAME],[N.KEYGEN,u.KEYGEN],[N.LABEL,u.LABEL],[N.LI,u.LI],[N.LINK,u.LINK],[N.LISTING,u.LISTING],[N.MAIN,u.MAIN],[N.MALIGNMARK,u.MALIGNMARK],[N.MARQUEE,u.MARQUEE],[N.MATH,u.MATH],[N.MENU,u.MENU],[N.META,u.META],[N.MGLYPH,u.MGLYPH],[N.MI,u.MI],[N.MO,u.MO],[N.MN,u.MN],[N.MS,u.MS],[N.MTEXT,u.MTEXT],[N.NAV,u.NAV],[N.NOBR,u.NOBR],[N.NOFRAMES,u.NOFRAMES],[N.NOEMBED,u.NOEMBED],[N.NOSCRIPT,u.NOSCRIPT],[N.OBJECT,u.OBJECT],[N.OL,u.OL],[N.OPTGROUP,u.OPTGROUP],[N.OPTION,u.OPTION],[N.P,u.P],[N.PARAM,u.PARAM],[N.PLAINTEXT,u.PLAINTEXT],[N.PRE,u.PRE],[N.RB,u.RB],[N.RP,u.RP],[N.RT,u.RT],[N.RTC,u.RTC],[N.RUBY,u.RUBY],[N.S,u.S],[N.SCRIPT,u.SCRIPT],[N.SECTION,u.SECTION],[N.SELECT,u.SELECT],[N.SOURCE,u.SOURCE],[N.SMALL,u.SMALL],[N.SPAN,u.SPAN],[N.STRIKE,u.STRIKE],[N.STRONG,u.STRONG],[N.STYLE,u.STYLE],[N.SUB,u.SUB],[N.SUMMARY,u.SUMMARY],[N.SUP,u.SUP],[N.TABLE,u.TABLE],[N.TBODY,u.TBODY],[N.TEMPLATE,u.TEMPLATE],[N.TEXTAREA,u.TEXTAREA],[N.TFOOT,u.TFOOT],[N.TD,u.TD],[N.TH,u.TH],[N.THEAD,u.THEAD],[N.TITLE,u.TITLE],[N.TR,u.TR],[N.TRACK,u.TRACK],[N.TT,u.TT],[N.U,u.U],[N.UL,u.UL],[N.SVG,u.SVG],[N.VAR,u.VAR],[N.WBR,u.WBR],[N.XMP,u.XMP]]);function f(e){var t;return null!==(t=O.get(e))&&void 0!==t?t:u.UNKNOWN}const L=u,g={[p.HTML]:new Set([L.ADDRESS,L.APPLET,L.AREA,L.ARTICLE,L.ASIDE,L.BASE,L.BASEFONT,L.BGSOUND,L.BLOCKQUOTE,L.BODY,L.BR,L.BUTTON,L.CAPTION,L.CENTER,L.COL,L.COLGROUP,L.DD,L.DETAILS,L.DIR,L.DIV,L.DL,L.DT,L.EMBED,L.FIELDSET,L.FIGCAPTION,L.FIGURE,L.FOOTER,L.FORM,L.FRAME,L.FRAMESET,L.H1,L.H2,L.H3,L.H4,L.H5,L.H6,L.HEAD,L.HEADER,L.HGROUP,L.HR,L.HTML,L.IFRAME,L.IMG,L.INPUT,L.LI,L.LINK,L.LISTING,L.MAIN,L.MARQUEE,L.MENU,L.META,L.NAV,L.NOEMBED,L.NOFRAMES,L.NOSCRIPT,L.OBJECT,L.OL,L.P,L.PARAM,L.PLAINTEXT,L.PRE,L.SCRIPT,L.SECTION,L.SELECT,L.SOURCE,L.STYLE,L.SUMMARY,L.TABLE,L.TBODY,L.TD,L.TEMPLATE,L.TEXTAREA,L.TFOOT,L.TH,L.THEAD,L.TITLE,L.TR,L.TRACK,L.UL,L.WBR,L.XMP]),[p.MATHML]:new Set([L.MI,L.MO,L.MN,L.MS,L.MTEXT,L.ANNOTATION_XML]),[p.SVG]:new Set([L.TITLE,L.FOREIGN_OBJECT,L.DESC]),[p.XLINK]:new Set,[p.XML]:new Set,[p.XMLNS]:new Set};function M(e){return e===L.H1||e===L.H2||e===L.H3||e===L.H4||e===L.H5||e===L.H6}new Set([N.STYLE,N.SCRIPT,N.XMP,N.IFRAME,N.NOEMBED,N.NOFRAMES,N.PLAINTEXT]);const k=new Map([[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);var P;!function(e){e[e.DATA=0]="DATA",e[e.RCDATA=1]="RCDATA",e[e.RAWTEXT=2]="RAWTEXT",e[e.SCRIPT_DATA=3]="SCRIPT_DATA",e[e.PLAINTEXT=4]="PLAINTEXT",e[e.TAG_OPEN=5]="TAG_OPEN",e[e.END_TAG_OPEN=6]="END_TAG_OPEN",e[e.TAG_NAME=7]="TAG_NAME",e[e.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",e[e.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",e[e.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",e[e.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",e[e.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",e[e.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",e[e.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",e[e.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",e[e.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",e[e.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",e[e.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",e[e.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",e[e.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",e[e.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",e[e.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",e[e.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",e[e.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",e[e.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",e[e.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",e[e.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",e[e.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",e[e.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",e[e.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",e[e.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",e[e.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",e[e.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",e[e.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",e[e.BOGUS_COMMENT=40]="BOGUS_COMMENT",e[e.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",e[e.COMMENT_START=42]="COMMENT_START",e[e.COMMENT_START_DASH=43]="COMMENT_START_DASH",e[e.COMMENT=44]="COMMENT",e[e.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",e[e.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",e[e.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",e[e.COMMENT_END_DASH=49]="COMMENT_END_DASH",e[e.COMMENT_END=50]="COMMENT_END",e[e.COMMENT_END_BANG=51]="COMMENT_END_BANG",e[e.DOCTYPE=52]="DOCTYPE",e[e.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",e[e.DOCTYPE_NAME=54]="DOCTYPE_NAME",e[e.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",e[e.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",e[e.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",e[e.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",e[e.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",e[e.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",e[e.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",e[e.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",e[e.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",e[e.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",e[e.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",e[e.CDATA_SECTION=68]="CDATA_SECTION",e[e.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",e[e.CDATA_SECTION_END=70]="CDATA_SECTION_END",e[e.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",e[e.NAMED_CHARACTER_REFERENCE=72]="NAMED_CHARACTER_REFERENCE",e[e.AMBIGUOUS_AMPERSAND=73]="AMBIGUOUS_AMPERSAND",e[e.NUMERIC_CHARACTER_REFERENCE=74]="NUMERIC_CHARACTER_REFERENCE",e[e.HEXADEMICAL_CHARACTER_REFERENCE_START=75]="HEXADEMICAL_CHARACTER_REFERENCE_START",e[e.HEXADEMICAL_CHARACTER_REFERENCE=76]="HEXADEMICAL_CHARACTER_REFERENCE",e[e.DECIMAL_CHARACTER_REFERENCE=77]="DECIMAL_CHARACTER_REFERENCE",e[e.NUMERIC_CHARACTER_REFERENCE_END=78]="NUMERIC_CHARACTER_REFERENCE_END";}(P||(P={}));const b={DATA:P.DATA,RCDATA:P.RCDATA,RAWTEXT:P.RAWTEXT,SCRIPT_DATA:P.SCRIPT_DATA,PLAINTEXT:P.PLAINTEXT,CDATA_SECTION:P.CDATA_SECTION};function B(e){return e>=a.DIGIT_0&&e<=a.DIGIT_9}function H(e){return e>=a.LATIN_CAPITAL_A&&e<=a.LATIN_CAPITAL_Z}function F(e){return function(e){return e>=a.LATIN_SMALL_A&&e<=a.LATIN_SMALL_Z}(e)||H(e)}function U(e){return F(e)||B(e)}function G(e){return e>=a.LATIN_CAPITAL_A&&e<=a.LATIN_CAPITAL_F}function y(e){return e>=a.LATIN_SMALL_A&&e<=a.LATIN_SMALL_F}function w(e){return e+32}function Y(e){return e===a.SPACE||e===a.LINE_FEED||e===a.TABULATION||e===a.FORM_FEED}function x(e){return Y(e)||e===a.SOLIDUS||e===a.GREATER_THAN_SIGN}class v{constructor(e,t){this.options=e,this.handler=t,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=P.DATA,this.returnState=P.DATA,this.charRefCode=-1,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new _(t),this.currentLocation=this.getCurrentLocation(-1);}_err(e){var t,s;null===(s=(t=this.handler).onParseError)||void 0===s||s.call(t,this.preprocessor.getError(e));}getCurrentLocation(e){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-e,startOffset:this.preprocessor.offset-e,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;const e=this._consume();this._ensureHibernation()||this._callState(e);}this.inLoop=!1;}}pause(){this.paused=!0;}resume(e){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,this.inLoop||(this._runParsingLoop(),this.paused||null==e||e());}write(e,t,s){this.active=!0,this.preprocessor.write(e,t),this._runParsingLoop(),this.paused||null==s||s();}insertHtmlAtCurrentPos(e){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(e),this._runParsingLoop();}_ensureHibernation(){return !!this.preprocessor.endOfChunkHit&&(this._unconsume(this.consumedAfterSnapshot),this.active=!1,!0)}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_unconsume(e){this.consumedAfterSnapshot-=e,this.preprocessor.retreat(e);}_reconsumeInState(e,t){this.state=e,this._callState(t);}_advanceBy(e){this.consumedAfterSnapshot+=e;for(let t=0;t<e;t++)this.preprocessor.advance();}_consumeSequenceIfMatch(e,t){return !!this.preprocessor.startsWith(e,t)&&(this._advanceBy(e.length-1),!0)}_createStartTagToken(){this.currentToken={type:h.START_TAG,tagName:"",tagID:u.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(1)};}_createEndTagToken(){this.currentToken={type:h.END_TAG,tagName:"",tagID:u.UNKNOWN,selfClosing:!1,ackSelfClosing:!1,attrs:[],location:this.getCurrentLocation(2)};}_createCommentToken(e){this.currentToken={type:h.COMMENT,data:"",location:this.getCurrentLocation(e)};}_createDoctypeToken(e){this.currentToken={type:h.DOCTYPE,name:e,forceQuirks:!1,publicId:null,systemId:null,location:this.currentLocation};}_createCharacterToken(e,t){this.currentCharacterToken={type:e,chars:t,location:this.currentLocation};}_createAttr(e){this.currentAttr={name:e,value:""},this.currentLocation=this.getCurrentLocation(0);}_leaveAttrName(){var e,t;const s=this.currentToken;null===A(s,this.currentAttr.name)?(s.attrs.push(this.currentAttr),s.location&&this.currentLocation&&((null!==(e=(t=s.location).attrs)&&void 0!==e?e:t.attrs=Object.create(null))[this.currentAttr.name]=this.currentLocation,this._leaveAttrValue())):this._err(T.duplicateAttribute);}_leaveAttrValue(){this.currentLocation&&(this.currentLocation.endLine=this.preprocessor.line,this.currentLocation.endCol=this.preprocessor.col,this.currentLocation.endOffset=this.preprocessor.offset);}prepareToken(e){this._emitCurrentCharacterToken(e.location),this.currentToken=null,e.location&&(e.location.endLine=this.preprocessor.line,e.location.endCol=this.preprocessor.col+1,e.location.endOffset=this.preprocessor.offset+1),this.currentLocation=this.getCurrentLocation(-1);}emitCurrentTagToken(){const e=this.currentToken;this.prepareToken(e),e.tagID=f(e.tagName),e.type===h.START_TAG?(this.lastStartTagName=e.tagName,this.handler.onStartTag(e)):(e.attrs.length>0&&this._err(T.endTagWithAttributes),e.selfClosing&&this._err(T.endTagWithTrailingSolidus),this.handler.onEndTag(e)),this.preprocessor.dropParsedChunk();}emitCurrentComment(e){this.prepareToken(e),this.handler.onComment(e),this.preprocessor.dropParsedChunk();}emitCurrentDoctype(e){this.prepareToken(e),this.handler.onDoctype(e),this.preprocessor.dropParsedChunk();}_emitCurrentCharacterToken(e){if(this.currentCharacterToken){switch(e&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=e.startLine,this.currentCharacterToken.location.endCol=e.startCol,this.currentCharacterToken.location.endOffset=e.startOffset),this.currentCharacterToken.type){case h.CHARACTER:this.handler.onCharacter(this.currentCharacterToken);break;case h.NULL_CHARACTER:this.handler.onNullCharacter(this.currentCharacterToken);break;case h.WHITESPACE_CHARACTER:this.handler.onWhitespaceCharacter(this.currentCharacterToken);}this.currentCharacterToken=null;}}_emitEOFToken(){const e=this.getCurrentLocation(0);e&&(e.endLine=e.startLine,e.endCol=e.startCol,e.endOffset=e.startOffset),this._emitCurrentCharacterToken(e),this.handler.onEof({type:h.EOF,location:e}),this.active=!1;}_appendCharToCurrentCharacterToken(e,t){if(this.currentCharacterToken){if(this.currentCharacterToken.type===e)return void(this.currentCharacterToken.chars+=t);this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk();}this._createCharacterToken(e,t);}_emitCodePoint(e){const t=Y(e)?h.WHITESPACE_CHARACTER:e===a.NULL?h.NULL_CHARACTER:h.CHARACTER;this._appendCharToCurrentCharacterToken(t,String.fromCodePoint(e));}_emitChars(e){this._appendCharToCurrentCharacterToken(h.CHARACTER,e);}_matchNamedCharacterReference(e){let t=null,s=0,r=!1;for(let i=0,o=R.htmlDecodeTree[0];i>=0&&(i=R.determineBranch(R.htmlDecodeTree,o,i+1,e),!(i<0));e=this._consume()){s+=1,o=R.htmlDecodeTree[i];const c=o&R.BinTrieFlags.VALUE_LENGTH;if(c){const o=(c>>14)-1;if(e!==a.SEMICOLON&&this._isCharacterReferenceInAttribute()&&((n=this.preprocessor.peek(1))===a.EQUALS_SIGN||U(n))?(t=[a.AMPERSAND],i+=o):(t=0===o?[R.htmlDecodeTree[i]&~R.BinTrieFlags.VALUE_LENGTH]:1===o?[R.htmlDecodeTree[++i]]:[R.htmlDecodeTree[++i],R.htmlDecodeTree[++i]],s=0,r=e!==a.SEMICOLON),0===o){this._consume();break}}}var n;return this._unconsume(s),r&&!this.preprocessor.endOfChunkHit&&this._err(T.missingSemicolonAfterCharacterReference),this._unconsume(1),t}_isCharacterReferenceInAttribute(){return this.returnState===P.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===P.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===P.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(e){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(e):this._emitCodePoint(e);}_callState(e){switch(this.state){case P.DATA:this._stateData(e);break;case P.RCDATA:this._stateRcdata(e);break;case P.RAWTEXT:this._stateRawtext(e);break;case P.SCRIPT_DATA:this._stateScriptData(e);break;case P.PLAINTEXT:this._statePlaintext(e);break;case P.TAG_OPEN:this._stateTagOpen(e);break;case P.END_TAG_OPEN:this._stateEndTagOpen(e);break;case P.TAG_NAME:this._stateTagName(e);break;case P.RCDATA_LESS_THAN_SIGN:this._stateRcdataLessThanSign(e);break;case P.RCDATA_END_TAG_OPEN:this._stateRcdataEndTagOpen(e);break;case P.RCDATA_END_TAG_NAME:this._stateRcdataEndTagName(e);break;case P.RAWTEXT_LESS_THAN_SIGN:this._stateRawtextLessThanSign(e);break;case P.RAWTEXT_END_TAG_OPEN:this._stateRawtextEndTagOpen(e);break;case P.RAWTEXT_END_TAG_NAME:this._stateRawtextEndTagName(e);break;case P.SCRIPT_DATA_LESS_THAN_SIGN:this._stateScriptDataLessThanSign(e);break;case P.SCRIPT_DATA_END_TAG_OPEN:this._stateScriptDataEndTagOpen(e);break;case P.SCRIPT_DATA_END_TAG_NAME:this._stateScriptDataEndTagName(e);break;case P.SCRIPT_DATA_ESCAPE_START:this._stateScriptDataEscapeStart(e);break;case P.SCRIPT_DATA_ESCAPE_START_DASH:this._stateScriptDataEscapeStartDash(e);break;case P.SCRIPT_DATA_ESCAPED:this._stateScriptDataEscaped(e);break;case P.SCRIPT_DATA_ESCAPED_DASH:this._stateScriptDataEscapedDash(e);break;case P.SCRIPT_DATA_ESCAPED_DASH_DASH:this._stateScriptDataEscapedDashDash(e);break;case P.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataEscapedLessThanSign(e);break;case P.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:this._stateScriptDataEscapedEndTagOpen(e);break;case P.SCRIPT_DATA_ESCAPED_END_TAG_NAME:this._stateScriptDataEscapedEndTagName(e);break;case P.SCRIPT_DATA_DOUBLE_ESCAPE_START:this._stateScriptDataDoubleEscapeStart(e);break;case P.SCRIPT_DATA_DOUBLE_ESCAPED:this._stateScriptDataDoubleEscaped(e);break;case P.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:this._stateScriptDataDoubleEscapedDash(e);break;case P.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:this._stateScriptDataDoubleEscapedDashDash(e);break;case P.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:this._stateScriptDataDoubleEscapedLessThanSign(e);break;case P.SCRIPT_DATA_DOUBLE_ESCAPE_END:this._stateScriptDataDoubleEscapeEnd(e);break;case P.BEFORE_ATTRIBUTE_NAME:this._stateBeforeAttributeName(e);break;case P.ATTRIBUTE_NAME:this._stateAttributeName(e);break;case P.AFTER_ATTRIBUTE_NAME:this._stateAfterAttributeName(e);break;case P.BEFORE_ATTRIBUTE_VALUE:this._stateBeforeAttributeValue(e);break;case P.ATTRIBUTE_VALUE_DOUBLE_QUOTED:this._stateAttributeValueDoubleQuoted(e);break;case P.ATTRIBUTE_VALUE_SINGLE_QUOTED:this._stateAttributeValueSingleQuoted(e);break;case P.ATTRIBUTE_VALUE_UNQUOTED:this._stateAttributeValueUnquoted(e);break;case P.AFTER_ATTRIBUTE_VALUE_QUOTED:this._stateAfterAttributeValueQuoted(e);break;case P.SELF_CLOSING_START_TAG:this._stateSelfClosingStartTag(e);break;case P.BOGUS_COMMENT:this._stateBogusComment(e);break;case P.MARKUP_DECLARATION_OPEN:this._stateMarkupDeclarationOpen(e);break;case P.COMMENT_START:this._stateCommentStart(e);break;case P.COMMENT_START_DASH:this._stateCommentStartDash(e);break;case P.COMMENT:this._stateComment(e);break;case P.COMMENT_LESS_THAN_SIGN:this._stateCommentLessThanSign(e);break;case P.COMMENT_LESS_THAN_SIGN_BANG:this._stateCommentLessThanSignBang(e);break;case P.COMMENT_LESS_THAN_SIGN_BANG_DASH:this._stateCommentLessThanSignBangDash(e);break;case P.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:this._stateCommentLessThanSignBangDashDash(e);break;case P.COMMENT_END_DASH:this._stateCommentEndDash(e);break;case P.COMMENT_END:this._stateCommentEnd(e);break;case P.COMMENT_END_BANG:this._stateCommentEndBang(e);break;case P.DOCTYPE:this._stateDoctype(e);break;case P.BEFORE_DOCTYPE_NAME:this._stateBeforeDoctypeName(e);break;case P.DOCTYPE_NAME:this._stateDoctypeName(e);break;case P.AFTER_DOCTYPE_NAME:this._stateAfterDoctypeName(e);break;case P.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._stateAfterDoctypePublicKeyword(e);break;case P.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:this._stateBeforeDoctypePublicIdentifier(e);break;case P.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypePublicIdentifierDoubleQuoted(e);break;case P.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypePublicIdentifierSingleQuoted(e);break;case P.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:this._stateAfterDoctypePublicIdentifier(e);break;case P.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:this._stateBetweenDoctypePublicAndSystemIdentifiers(e);break;case P.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._stateAfterDoctypeSystemKeyword(e);break;case P.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:this._stateBeforeDoctypeSystemIdentifier(e);break;case P.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:this._stateDoctypeSystemIdentifierDoubleQuoted(e);break;case P.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:this._stateDoctypeSystemIdentifierSingleQuoted(e);break;case P.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:this._stateAfterDoctypeSystemIdentifier(e);break;case P.BOGUS_DOCTYPE:this._stateBogusDoctype(e);break;case P.CDATA_SECTION:this._stateCdataSection(e);break;case P.CDATA_SECTION_BRACKET:this._stateCdataSectionBracket(e);break;case P.CDATA_SECTION_END:this._stateCdataSectionEnd(e);break;case P.CHARACTER_REFERENCE:this._stateCharacterReference(e);break;case P.NAMED_CHARACTER_REFERENCE:this._stateNamedCharacterReference(e);break;case P.AMBIGUOUS_AMPERSAND:this._stateAmbiguousAmpersand(e);break;case P.NUMERIC_CHARACTER_REFERENCE:this._stateNumericCharacterReference(e);break;case P.HEXADEMICAL_CHARACTER_REFERENCE_START:this._stateHexademicalCharacterReferenceStart(e);break;case P.HEXADEMICAL_CHARACTER_REFERENCE:this._stateHexademicalCharacterReference(e);break;case P.DECIMAL_CHARACTER_REFERENCE:this._stateDecimalCharacterReference(e);break;case P.NUMERIC_CHARACTER_REFERENCE_END:this._stateNumericCharacterReferenceEnd(e);break;default:throw new Error("Unknown state")}}_stateData(e){switch(e){case a.LESS_THAN_SIGN:this.state=P.TAG_OPEN;break;case a.AMPERSAND:this.returnState=P.DATA,this.state=P.CHARACTER_REFERENCE;break;case a.NULL:this._err(T.unexpectedNullCharacter),this._emitCodePoint(e);break;case a.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e);}}_stateRcdata(e){switch(e){case a.AMPERSAND:this.returnState=P.RCDATA,this.state=P.CHARACTER_REFERENCE;break;case a.LESS_THAN_SIGN:this.state=P.RCDATA_LESS_THAN_SIGN;break;case a.NULL:this._err(T.unexpectedNullCharacter),this._emitChars(s);break;case a.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e);}}_stateRawtext(e){switch(e){case a.LESS_THAN_SIGN:this.state=P.RAWTEXT_LESS_THAN_SIGN;break;case a.NULL:this._err(T.unexpectedNullCharacter),this._emitChars(s);break;case a.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e);}}_stateScriptData(e){switch(e){case a.LESS_THAN_SIGN:this.state=P.SCRIPT_DATA_LESS_THAN_SIGN;break;case a.NULL:this._err(T.unexpectedNullCharacter),this._emitChars(s);break;case a.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e);}}_statePlaintext(e){switch(e){case a.NULL:this._err(T.unexpectedNullCharacter),this._emitChars(s);break;case a.EOF:this._emitEOFToken();break;default:this._emitCodePoint(e);}}_stateTagOpen(e){if(F(e))this._createStartTagToken(),this.state=P.TAG_NAME,this._stateTagName(e);else switch(e){case a.EXCLAMATION_MARK:this.state=P.MARKUP_DECLARATION_OPEN;break;case a.SOLIDUS:this.state=P.END_TAG_OPEN;break;case a.QUESTION_MARK:this._err(T.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=P.BOGUS_COMMENT,this._stateBogusComment(e);break;case a.EOF:this._err(T.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break;default:this._err(T.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=P.DATA,this._stateData(e);}}_stateEndTagOpen(e){if(F(e))this._createEndTagToken(),this.state=P.TAG_NAME,this._stateTagName(e);else switch(e){case a.GREATER_THAN_SIGN:this._err(T.missingEndTagName),this.state=P.DATA;break;case a.EOF:this._err(T.eofBeforeTagName),this._emitChars("</"),this._emitEOFToken();break;default:this._err(T.invalidFirstCharacterOfTagName),this._createCommentToken(2),this.state=P.BOGUS_COMMENT,this._stateBogusComment(e);}}_stateTagName(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:this.state=P.BEFORE_ATTRIBUTE_NAME;break;case a.SOLIDUS:this.state=P.SELF_CLOSING_START_TAG;break;case a.GREATER_THAN_SIGN:this.state=P.DATA,this.emitCurrentTagToken();break;case a.NULL:this._err(T.unexpectedNullCharacter),t.tagName+=s;break;case a.EOF:this._err(T.eofInTag),this._emitEOFToken();break;default:t.tagName+=String.fromCodePoint(H(e)?w(e):e);}}_stateRcdataLessThanSign(e){e===a.SOLIDUS?this.state=P.RCDATA_END_TAG_OPEN:(this._emitChars("<"),this.state=P.RCDATA,this._stateRcdata(e));}_stateRcdataEndTagOpen(e){F(e)?(this.state=P.RCDATA_END_TAG_NAME,this._stateRcdataEndTagName(e)):(this._emitChars("</"),this.state=P.RCDATA,this._stateRcdata(e));}handleSpecialEndTag(e){if(!this.preprocessor.startsWith(this.lastStartTagName,!1))return !this._ensureHibernation();switch(this._createEndTagToken(),this.currentToken.tagName=this.lastStartTagName,this.preprocessor.peek(this.lastStartTagName.length)){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:return this._advanceBy(this.lastStartTagName.length),this.state=P.BEFORE_ATTRIBUTE_NAME,!1;case a.SOLIDUS:return this._advanceBy(this.lastStartTagName.length),this.state=P.SELF_CLOSING_START_TAG,!1;case a.GREATER_THAN_SIGN:return this._advanceBy(this.lastStartTagName.length),this.emitCurrentTagToken(),this.state=P.DATA,!1;default:return !this._ensureHibernation()}}_stateRcdataEndTagName(e){this.handleSpecialEndTag(e)&&(this._emitChars("</"),this.state=P.RCDATA,this._stateRcdata(e));}_stateRawtextLessThanSign(e){e===a.SOLIDUS?this.state=P.RAWTEXT_END_TAG_OPEN:(this._emitChars("<"),this.state=P.RAWTEXT,this._stateRawtext(e));}_stateRawtextEndTagOpen(e){F(e)?(this.state=P.RAWTEXT_END_TAG_NAME,this._stateRawtextEndTagName(e)):(this._emitChars("</"),this.state=P.RAWTEXT,this._stateRawtext(e));}_stateRawtextEndTagName(e){this.handleSpecialEndTag(e)&&(this._emitChars("</"),this.state=P.RAWTEXT,this._stateRawtext(e));}_stateScriptDataLessThanSign(e){switch(e){case a.SOLIDUS:this.state=P.SCRIPT_DATA_END_TAG_OPEN;break;case a.EXCLAMATION_MARK:this.state=P.SCRIPT_DATA_ESCAPE_START,this._emitChars("<!");break;default:this._emitChars("<"),this.state=P.SCRIPT_DATA,this._stateScriptData(e);}}_stateScriptDataEndTagOpen(e){F(e)?(this.state=P.SCRIPT_DATA_END_TAG_NAME,this._stateScriptDataEndTagName(e)):(this._emitChars("</"),this.state=P.SCRIPT_DATA,this._stateScriptData(e));}_stateScriptDataEndTagName(e){this.handleSpecialEndTag(e)&&(this._emitChars("</"),this.state=P.SCRIPT_DATA,this._stateScriptData(e));}_stateScriptDataEscapeStart(e){e===a.HYPHEN_MINUS?(this.state=P.SCRIPT_DATA_ESCAPE_START_DASH,this._emitChars("-")):(this.state=P.SCRIPT_DATA,this._stateScriptData(e));}_stateScriptDataEscapeStartDash(e){e===a.HYPHEN_MINUS?(this.state=P.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-")):(this.state=P.SCRIPT_DATA,this._stateScriptData(e));}_stateScriptDataEscaped(e){switch(e){case a.HYPHEN_MINUS:this.state=P.SCRIPT_DATA_ESCAPED_DASH,this._emitChars("-");break;case a.LESS_THAN_SIGN:this.state=P.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break;case a.NULL:this._err(T.unexpectedNullCharacter),this._emitChars(s);break;case a.EOF:this._err(T.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this._emitCodePoint(e);}}_stateScriptDataEscapedDash(e){switch(e){case a.HYPHEN_MINUS:this.state=P.SCRIPT_DATA_ESCAPED_DASH_DASH,this._emitChars("-");break;case a.LESS_THAN_SIGN:this.state=P.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break;case a.NULL:this._err(T.unexpectedNullCharacter),this.state=P.SCRIPT_DATA_ESCAPED,this._emitChars(s);break;case a.EOF:this._err(T.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=P.SCRIPT_DATA_ESCAPED,this._emitCodePoint(e);}}_stateScriptDataEscapedDashDash(e){switch(e){case a.HYPHEN_MINUS:this._emitChars("-");break;case a.LESS_THAN_SIGN:this.state=P.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN;break;case a.GREATER_THAN_SIGN:this.state=P.SCRIPT_DATA,this._emitChars(">");break;case a.NULL:this._err(T.unexpectedNullCharacter),this.state=P.SCRIPT_DATA_ESCAPED,this._emitChars(s);break;case a.EOF:this._err(T.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=P.SCRIPT_DATA_ESCAPED,this._emitCodePoint(e);}}_stateScriptDataEscapedLessThanSign(e){e===a.SOLIDUS?this.state=P.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:F(e)?(this._emitChars("<"),this.state=P.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(e)):(this._emitChars("<"),this.state=P.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(e));}_stateScriptDataEscapedEndTagOpen(e){F(e)?(this.state=P.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(e)):(this._emitChars("</"),this.state=P.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(e));}_stateScriptDataEscapedEndTagName(e){this.handleSpecialEndTag(e)&&(this._emitChars("</"),this.state=P.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(e));}_stateScriptDataDoubleEscapeStart(e){if(this.preprocessor.startsWith(i,!1)&&x(this.preprocessor.peek(i.length))){this._emitCodePoint(e);for(let e=0;e<i.length;e++)this._emitCodePoint(this._consume());this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED;}else this._ensureHibernation()||(this.state=P.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(e));}_stateScriptDataDoubleEscaped(e){switch(e){case a.HYPHEN_MINUS:this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED_DASH,this._emitChars("-");break;case a.LESS_THAN_SIGN:this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break;case a.NULL:this._err(T.unexpectedNullCharacter),this._emitChars(s);break;case a.EOF:this._err(T.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this._emitCodePoint(e);}}_stateScriptDataDoubleEscapedDash(e){switch(e){case a.HYPHEN_MINUS:this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH,this._emitChars("-");break;case a.LESS_THAN_SIGN:this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break;case a.NULL:this._err(T.unexpectedNullCharacter),this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(s);break;case a.EOF:this._err(T.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(e);}}_stateScriptDataDoubleEscapedDashDash(e){switch(e){case a.HYPHEN_MINUS:this._emitChars("-");break;case a.LESS_THAN_SIGN:this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN,this._emitChars("<");break;case a.GREATER_THAN_SIGN:this.state=P.SCRIPT_DATA,this._emitChars(">");break;case a.NULL:this._err(T.unexpectedNullCharacter),this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(s);break;case a.EOF:this._err(T.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break;default:this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(e);}}_stateScriptDataDoubleEscapedLessThanSign(e){e===a.SOLIDUS?(this.state=P.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(e));}_stateScriptDataDoubleEscapeEnd(e){if(this.preprocessor.startsWith(i,!1)&&x(this.preprocessor.peek(i.length))){this._emitCodePoint(e);for(let e=0;e<i.length;e++)this._emitCodePoint(this._consume());this.state=P.SCRIPT_DATA_ESCAPED;}else this._ensureHibernation()||(this.state=P.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(e));}_stateBeforeAttributeName(e){switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:break;case a.SOLIDUS:case a.GREATER_THAN_SIGN:case a.EOF:this.state=P.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(e);break;case a.EQUALS_SIGN:this._err(T.unexpectedEqualsSignBeforeAttributeName),this._createAttr("="),this.state=P.ATTRIBUTE_NAME;break;default:this._createAttr(""),this.state=P.ATTRIBUTE_NAME,this._stateAttributeName(e);}}_stateAttributeName(e){switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:case a.SOLIDUS:case a.GREATER_THAN_SIGN:case a.EOF:this._leaveAttrName(),this.state=P.AFTER_ATTRIBUTE_NAME,this._stateAfterAttributeName(e);break;case a.EQUALS_SIGN:this._leaveAttrName(),this.state=P.BEFORE_ATTRIBUTE_VALUE;break;case a.QUOTATION_MARK:case a.APOSTROPHE:case a.LESS_THAN_SIGN:this._err(T.unexpectedCharacterInAttributeName),this.currentAttr.name+=String.fromCodePoint(e);break;case a.NULL:this._err(T.unexpectedNullCharacter),this.currentAttr.name+=s;break;default:this.currentAttr.name+=String.fromCodePoint(H(e)?w(e):e);}}_stateAfterAttributeName(e){switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:break;case a.SOLIDUS:this.state=P.SELF_CLOSING_START_TAG;break;case a.EQUALS_SIGN:this.state=P.BEFORE_ATTRIBUTE_VALUE;break;case a.GREATER_THAN_SIGN:this.state=P.DATA,this.emitCurrentTagToken();break;case a.EOF:this._err(T.eofInTag),this._emitEOFToken();break;default:this._createAttr(""),this.state=P.ATTRIBUTE_NAME,this._stateAttributeName(e);}}_stateBeforeAttributeValue(e){switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:break;case a.QUOTATION_MARK:this.state=P.ATTRIBUTE_VALUE_DOUBLE_QUOTED;break;case a.APOSTROPHE:this.state=P.ATTRIBUTE_VALUE_SINGLE_QUOTED;break;case a.GREATER_THAN_SIGN:this._err(T.missingAttributeValue),this.state=P.DATA,this.emitCurrentTagToken();break;default:this.state=P.ATTRIBUTE_VALUE_UNQUOTED,this._stateAttributeValueUnquoted(e);}}_stateAttributeValueDoubleQuoted(e){switch(e){case a.QUOTATION_MARK:this.state=P.AFTER_ATTRIBUTE_VALUE_QUOTED;break;case a.AMPERSAND:this.returnState=P.ATTRIBUTE_VALUE_DOUBLE_QUOTED,this.state=P.CHARACTER_REFERENCE;break;case a.NULL:this._err(T.unexpectedNullCharacter),this.currentAttr.value+=s;break;case a.EOF:this._err(T.eofInTag),this._emitEOFToken();break;default:this.currentAttr.value+=String.fromCodePoint(e);}}_stateAttributeValueSingleQuoted(e){switch(e){case a.APOSTROPHE:this.state=P.AFTER_ATTRIBUTE_VALUE_QUOTED;break;case a.AMPERSAND:this.returnState=P.ATTRIBUTE_VALUE_SINGLE_QUOTED,this.state=P.CHARACTER_REFERENCE;break;case a.NULL:this._err(T.unexpectedNullCharacter),this.currentAttr.value+=s;break;case a.EOF:this._err(T.eofInTag),this._emitEOFToken();break;default:this.currentAttr.value+=String.fromCodePoint(e);}}_stateAttributeValueUnquoted(e){switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:this._leaveAttrValue(),this.state=P.BEFORE_ATTRIBUTE_NAME;break;case a.AMPERSAND:this.returnState=P.ATTRIBUTE_VALUE_UNQUOTED,this.state=P.CHARACTER_REFERENCE;break;case a.GREATER_THAN_SIGN:this._leaveAttrValue(),this.state=P.DATA,this.emitCurrentTagToken();break;case a.NULL:this._err(T.unexpectedNullCharacter),this.currentAttr.value+=s;break;case a.QUOTATION_MARK:case a.APOSTROPHE:case a.LESS_THAN_SIGN:case a.EQUALS_SIGN:case a.GRAVE_ACCENT:this._err(T.unexpectedCharacterInUnquotedAttributeValue),this.currentAttr.value+=String.fromCodePoint(e);break;case a.EOF:this._err(T.eofInTag),this._emitEOFToken();break;default:this.currentAttr.value+=String.fromCodePoint(e);}}_stateAfterAttributeValueQuoted(e){switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:this._leaveAttrValue(),this.state=P.BEFORE_ATTRIBUTE_NAME;break;case a.SOLIDUS:this._leaveAttrValue(),this.state=P.SELF_CLOSING_START_TAG;break;case a.GREATER_THAN_SIGN:this._leaveAttrValue(),this.state=P.DATA,this.emitCurrentTagToken();break;case a.EOF:this._err(T.eofInTag),this._emitEOFToken();break;default:this._err(T.missingWhitespaceBetweenAttributes),this.state=P.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(e);}}_stateSelfClosingStartTag(e){switch(e){case a.GREATER_THAN_SIGN:this.currentToken.selfClosing=!0,this.state=P.DATA,this.emitCurrentTagToken();break;case a.EOF:this._err(T.eofInTag),this._emitEOFToken();break;default:this._err(T.unexpectedSolidusInTag),this.state=P.BEFORE_ATTRIBUTE_NAME,this._stateBeforeAttributeName(e);}}_stateBogusComment(e){const t=this.currentToken;switch(e){case a.GREATER_THAN_SIGN:this.state=P.DATA,this.emitCurrentComment(t);break;case a.EOF:this.emitCurrentComment(t),this._emitEOFToken();break;case a.NULL:this._err(T.unexpectedNullCharacter),t.data+=s;break;default:t.data+=String.fromCodePoint(e);}}_stateMarkupDeclarationOpen(e){this._consumeSequenceIfMatch("--",!0)?(this._createCommentToken("--".length+1),this.state=P.COMMENT_START):this._consumeSequenceIfMatch(n,!1)?(this.currentLocation=this.getCurrentLocation(n.length+1),this.state=P.DOCTYPE):this._consumeSequenceIfMatch(r,!0)?this.inForeignNode?this.state=P.CDATA_SECTION:(this._err(T.cdataInHtmlContent),this._createCommentToken(r.length+1),this.currentToken.data="[CDATA[",this.state=P.BOGUS_COMMENT):this._ensureHibernation()||(this._err(T.incorrectlyOpenedComment),this._createCommentToken(2),this.state=P.BOGUS_COMMENT,this._stateBogusComment(e));}_stateCommentStart(e){switch(e){case a.HYPHEN_MINUS:this.state=P.COMMENT_START_DASH;break;case a.GREATER_THAN_SIGN:{this._err(T.abruptClosingOfEmptyComment),this.state=P.DATA;const e=this.currentToken;this.emitCurrentComment(e);break}default:this.state=P.COMMENT,this._stateComment(e);}}_stateCommentStartDash(e){const t=this.currentToken;switch(e){case a.HYPHEN_MINUS:this.state=P.COMMENT_END;break;case a.GREATER_THAN_SIGN:this._err(T.abruptClosingOfEmptyComment),this.state=P.DATA,this.emitCurrentComment(t);break;case a.EOF:this._err(T.eofInComment),this.emitCurrentComment(t),this._emitEOFToken();break;default:t.data+="-",this.state=P.COMMENT,this._stateComment(e);}}_stateComment(e){const t=this.currentToken;switch(e){case a.HYPHEN_MINUS:this.state=P.COMMENT_END_DASH;break;case a.LESS_THAN_SIGN:t.data+="<",this.state=P.COMMENT_LESS_THAN_SIGN;break;case a.NULL:this._err(T.unexpectedNullCharacter),t.data+=s;break;case a.EOF:this._err(T.eofInComment),this.emitCurrentComment(t),this._emitEOFToken();break;default:t.data+=String.fromCodePoint(e);}}_stateCommentLessThanSign(e){const t=this.currentToken;switch(e){case a.EXCLAMATION_MARK:t.data+="!",this.state=P.COMMENT_LESS_THAN_SIGN_BANG;break;case a.LESS_THAN_SIGN:t.data+="<";break;default:this.state=P.COMMENT,this._stateComment(e);}}_stateCommentLessThanSignBang(e){e===a.HYPHEN_MINUS?this.state=P.COMMENT_LESS_THAN_SIGN_BANG_DASH:(this.state=P.COMMENT,this._stateComment(e));}_stateCommentLessThanSignBangDash(e){e===a.HYPHEN_MINUS?this.state=P.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:(this.state=P.COMMENT_END_DASH,this._stateCommentEndDash(e));}_stateCommentLessThanSignBangDashDash(e){e!==a.GREATER_THAN_SIGN&&e!==a.EOF&&this._err(T.nestedComment),this.state=P.COMMENT_END,this._stateCommentEnd(e);}_stateCommentEndDash(e){const t=this.currentToken;switch(e){case a.HYPHEN_MINUS:this.state=P.COMMENT_END;break;case a.EOF:this._err(T.eofInComment),this.emitCurrentComment(t),this._emitEOFToken();break;default:t.data+="-",this.state=P.COMMENT,this._stateComment(e);}}_stateCommentEnd(e){const t=this.currentToken;switch(e){case a.GREATER_THAN_SIGN:this.state=P.DATA,this.emitCurrentComment(t);break;case a.EXCLAMATION_MARK:this.state=P.COMMENT_END_BANG;break;case a.HYPHEN_MINUS:t.data+="-";break;case a.EOF:this._err(T.eofInComment),this.emitCurrentComment(t),this._emitEOFToken();break;default:t.data+="--",this.state=P.COMMENT,this._stateComment(e);}}_stateCommentEndBang(e){const t=this.currentToken;switch(e){case a.HYPHEN_MINUS:t.data+="--!",this.state=P.COMMENT_END_DASH;break;case a.GREATER_THAN_SIGN:this._err(T.incorrectlyClosedComment),this.state=P.DATA,this.emitCurrentComment(t);break;case a.EOF:this._err(T.eofInComment),this.emitCurrentComment(t),this._emitEOFToken();break;default:t.data+="--!",this.state=P.COMMENT,this._stateComment(e);}}_stateDoctype(e){switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:this.state=P.BEFORE_DOCTYPE_NAME;break;case a.GREATER_THAN_SIGN:this.state=P.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(e);break;case a.EOF:{this._err(T.eofInDoctype),this._createDoctypeToken(null);const e=this.currentToken;e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break}default:this._err(T.missingWhitespaceBeforeDoctypeName),this.state=P.BEFORE_DOCTYPE_NAME,this._stateBeforeDoctypeName(e);}}_stateBeforeDoctypeName(e){if(H(e))this._createDoctypeToken(String.fromCharCode(w(e))),this.state=P.DOCTYPE_NAME;else switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:break;case a.NULL:this._err(T.unexpectedNullCharacter),this._createDoctypeToken(s),this.state=P.DOCTYPE_NAME;break;case a.GREATER_THAN_SIGN:{this._err(T.missingDoctypeName),this._createDoctypeToken(null);const e=this.currentToken;e.forceQuirks=!0,this.emitCurrentDoctype(e),this.state=P.DATA;break}case a.EOF:{this._err(T.eofInDoctype),this._createDoctypeToken(null);const e=this.currentToken;e.forceQuirks=!0,this.emitCurrentDoctype(e),this._emitEOFToken();break}default:this._createDoctypeToken(String.fromCodePoint(e)),this.state=P.DOCTYPE_NAME;}}_stateDoctypeName(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:this.state=P.AFTER_DOCTYPE_NAME;break;case a.GREATER_THAN_SIGN:this.state=P.DATA,this.emitCurrentDoctype(t);break;case a.NULL:this._err(T.unexpectedNullCharacter),t.name+=s;break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:t.name+=String.fromCodePoint(H(e)?w(e):e);}}_stateAfterDoctypeName(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:break;case a.GREATER_THAN_SIGN:this.state=P.DATA,this.emitCurrentDoctype(t);break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:this._consumeSequenceIfMatch("public",!1)?this.state=P.AFTER_DOCTYPE_PUBLIC_KEYWORD:this._consumeSequenceIfMatch("system",!1)?this.state=P.AFTER_DOCTYPE_SYSTEM_KEYWORD:this._ensureHibernation()||(this._err(T.invalidCharacterSequenceAfterDoctypeName),t.forceQuirks=!0,this.state=P.BOGUS_DOCTYPE,this._stateBogusDoctype(e));}}_stateAfterDoctypePublicKeyword(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:this.state=P.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER;break;case a.QUOTATION_MARK:this._err(T.missingWhitespaceAfterDoctypePublicKeyword),t.publicId="",this.state=P.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break;case a.APOSTROPHE:this._err(T.missingWhitespaceAfterDoctypePublicKeyword),t.publicId="",this.state=P.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break;case a.GREATER_THAN_SIGN:this._err(T.missingDoctypePublicIdentifier),t.forceQuirks=!0,this.state=P.DATA,this.emitCurrentDoctype(t);break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:this._err(T.missingQuoteBeforeDoctypePublicIdentifier),t.forceQuirks=!0,this.state=P.BOGUS_DOCTYPE,this._stateBogusDoctype(e);}}_stateBeforeDoctypePublicIdentifier(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:break;case a.QUOTATION_MARK:t.publicId="",this.state=P.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED;break;case a.APOSTROPHE:t.publicId="",this.state=P.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED;break;case a.GREATER_THAN_SIGN:this._err(T.missingDoctypePublicIdentifier),t.forceQuirks=!0,this.state=P.DATA,this.emitCurrentDoctype(t);break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:this._err(T.missingQuoteBeforeDoctypePublicIdentifier),t.forceQuirks=!0,this.state=P.BOGUS_DOCTYPE,this._stateBogusDoctype(e);}}_stateDoctypePublicIdentifierDoubleQuoted(e){const t=this.currentToken;switch(e){case a.QUOTATION_MARK:this.state=P.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break;case a.NULL:this._err(T.unexpectedNullCharacter),t.publicId+=s;break;case a.GREATER_THAN_SIGN:this._err(T.abruptDoctypePublicIdentifier),t.forceQuirks=!0,this.emitCurrentDoctype(t),this.state=P.DATA;break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:t.publicId+=String.fromCodePoint(e);}}_stateDoctypePublicIdentifierSingleQuoted(e){const t=this.currentToken;switch(e){case a.APOSTROPHE:this.state=P.AFTER_DOCTYPE_PUBLIC_IDENTIFIER;break;case a.NULL:this._err(T.unexpectedNullCharacter),t.publicId+=s;break;case a.GREATER_THAN_SIGN:this._err(T.abruptDoctypePublicIdentifier),t.forceQuirks=!0,this.emitCurrentDoctype(t),this.state=P.DATA;break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:t.publicId+=String.fromCodePoint(e);}}_stateAfterDoctypePublicIdentifier(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:this.state=P.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS;break;case a.GREATER_THAN_SIGN:this.state=P.DATA,this.emitCurrentDoctype(t);break;case a.QUOTATION_MARK:this._err(T.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),t.systemId="",this.state=P.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break;case a.APOSTROPHE:this._err(T.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers),t.systemId="",this.state=P.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:this._err(T.missingQuoteBeforeDoctypeSystemIdentifier),t.forceQuirks=!0,this.state=P.BOGUS_DOCTYPE,this._stateBogusDoctype(e);}}_stateBetweenDoctypePublicAndSystemIdentifiers(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:break;case a.GREATER_THAN_SIGN:this.emitCurrentDoctype(t),this.state=P.DATA;break;case a.QUOTATION_MARK:t.systemId="",this.state=P.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break;case a.APOSTROPHE:t.systemId="",this.state=P.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:this._err(T.missingQuoteBeforeDoctypeSystemIdentifier),t.forceQuirks=!0,this.state=P.BOGUS_DOCTYPE,this._stateBogusDoctype(e);}}_stateAfterDoctypeSystemKeyword(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:this.state=P.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER;break;case a.QUOTATION_MARK:this._err(T.missingWhitespaceAfterDoctypeSystemKeyword),t.systemId="",this.state=P.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break;case a.APOSTROPHE:this._err(T.missingWhitespaceAfterDoctypeSystemKeyword),t.systemId="",this.state=P.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break;case a.GREATER_THAN_SIGN:this._err(T.missingDoctypeSystemIdentifier),t.forceQuirks=!0,this.state=P.DATA,this.emitCurrentDoctype(t);break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:this._err(T.missingQuoteBeforeDoctypeSystemIdentifier),t.forceQuirks=!0,this.state=P.BOGUS_DOCTYPE,this._stateBogusDoctype(e);}}_stateBeforeDoctypeSystemIdentifier(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:break;case a.QUOTATION_MARK:t.systemId="",this.state=P.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED;break;case a.APOSTROPHE:t.systemId="",this.state=P.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED;break;case a.GREATER_THAN_SIGN:this._err(T.missingDoctypeSystemIdentifier),t.forceQuirks=!0,this.state=P.DATA,this.emitCurrentDoctype(t);break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:this._err(T.missingQuoteBeforeDoctypeSystemIdentifier),t.forceQuirks=!0,this.state=P.BOGUS_DOCTYPE,this._stateBogusDoctype(e);}}_stateDoctypeSystemIdentifierDoubleQuoted(e){const t=this.currentToken;switch(e){case a.QUOTATION_MARK:this.state=P.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break;case a.NULL:this._err(T.unexpectedNullCharacter),t.systemId+=s;break;case a.GREATER_THAN_SIGN:this._err(T.abruptDoctypeSystemIdentifier),t.forceQuirks=!0,this.emitCurrentDoctype(t),this.state=P.DATA;break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:t.systemId+=String.fromCodePoint(e);}}_stateDoctypeSystemIdentifierSingleQuoted(e){const t=this.currentToken;switch(e){case a.APOSTROPHE:this.state=P.AFTER_DOCTYPE_SYSTEM_IDENTIFIER;break;case a.NULL:this._err(T.unexpectedNullCharacter),t.systemId+=s;break;case a.GREATER_THAN_SIGN:this._err(T.abruptDoctypeSystemIdentifier),t.forceQuirks=!0,this.emitCurrentDoctype(t),this.state=P.DATA;break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:t.systemId+=String.fromCodePoint(e);}}_stateAfterDoctypeSystemIdentifier(e){const t=this.currentToken;switch(e){case a.SPACE:case a.LINE_FEED:case a.TABULATION:case a.FORM_FEED:break;case a.GREATER_THAN_SIGN:this.emitCurrentDoctype(t),this.state=P.DATA;break;case a.EOF:this._err(T.eofInDoctype),t.forceQuirks=!0,this.emitCurrentDoctype(t),this._emitEOFToken();break;default:this._err(T.unexpectedCharacterAfterDoctypeSystemIdentifier),this.state=P.BOGUS_DOCTYPE,this._stateBogusDoctype(e);}}_stateBogusDoctype(e){const t=this.currentToken;switch(e){case a.GREATER_THAN_SIGN:this.emitCurrentDoctype(t),this.state=P.DATA;break;case a.NULL:this._err(T.unexpectedNullCharacter);break;case a.EOF:this.emitCurrentDoctype(t),this._emitEOFToken();}}_stateCdataSection(e){switch(e){case a.RIGHT_SQUARE_BRACKET:this.state=P.CDATA_SECTION_BRACKET;break;case a.EOF:this._err(T.eofInCdata),this._emitEOFToken();break;default:this._emitCodePoint(e);}}_stateCdataSectionBracket(e){e===a.RIGHT_SQUARE_BRACKET?this.state=P.CDATA_SECTION_END:(this._emitChars("]"),this.state=P.CDATA_SECTION,this._stateCdataSection(e));}_stateCdataSectionEnd(e){switch(e){case a.GREATER_THAN_SIGN:this.state=P.DATA;break;case a.RIGHT_SQUARE_BRACKET:this._emitChars("]");break;default:this._emitChars("]]"),this.state=P.CDATA_SECTION,this._stateCdataSection(e);}}_stateCharacterReference(e){e===a.NUMBER_SIGN?this.state=P.NUMERIC_CHARACTER_REFERENCE:U(e)?(this.state=P.NAMED_CHARACTER_REFERENCE,this._stateNamedCharacterReference(e)):(this._flushCodePointConsumedAsCharacterReference(a.AMPERSAND),this._reconsumeInState(this.returnState,e));}_stateNamedCharacterReference(e){const t=this._matchNamedCharacterReference(e);if(this._ensureHibernation());else if(t){for(let e=0;e<t.length;e++)this._flushCodePointConsumedAsCharacterReference(t[e]);this.state=this.returnState;}else this._flushCodePointConsumedAsCharacterReference(a.AMPERSAND),this.state=P.AMBIGUOUS_AMPERSAND;}_stateAmbiguousAmpersand(e){U(e)?this._flushCodePointConsumedAsCharacterReference(e):(e===a.SEMICOLON&&this._err(T.unknownNamedCharacterReference),this._reconsumeInState(this.returnState,e));}_stateNumericCharacterReference(e){this.charRefCode=0,e===a.LATIN_SMALL_X||e===a.LATIN_CAPITAL_X?this.state=P.HEXADEMICAL_CHARACTER_REFERENCE_START:B(e)?(this.state=P.DECIMAL_CHARACTER_REFERENCE,this._stateDecimalCharacterReference(e)):(this._err(T.absenceOfDigitsInNumericCharacterReference),this._flushCodePointConsumedAsCharacterReference(a.AMPERSAND),this._flushCodePointConsumedAsCharacterReference(a.NUMBER_SIGN),this._reconsumeInState(this.returnState,e));}_stateHexademicalCharacterReferenceStart(e){!function(e){return B(e)||G(e)||y(e)}(e)?(this._err(T.absenceOfDigitsInNumericCharacterReference),this._flushCodePointConsumedAsCharacterReference(a.AMPERSAND),this._flushCodePointConsumedAsCharacterReference(a.NUMBER_SIGN),this._unconsume(2),this.state=this.returnState):(this.state=P.HEXADEMICAL_CHARACTER_REFERENCE,this._stateHexademicalCharacterReference(e));}_stateHexademicalCharacterReference(e){G(e)?this.charRefCode=16*this.charRefCode+e-55:y(e)?this.charRefCode=16*this.charRefCode+e-87:B(e)?this.charRefCode=16*this.charRefCode+e-48:e===a.SEMICOLON?this.state=P.NUMERIC_CHARACTER_REFERENCE_END:(this._err(T.missingSemicolonAfterCharacterReference),this.state=P.NUMERIC_CHARACTER_REFERENCE_END,this._stateNumericCharacterReferenceEnd(e));}_stateDecimalCharacterReference(e){B(e)?this.charRefCode=10*this.charRefCode+e-48:e===a.SEMICOLON?this.state=P.NUMERIC_CHARACTER_REFERENCE_END:(this._err(T.missingSemicolonAfterCharacterReference),this.state=P.NUMERIC_CHARACTER_REFERENCE_END,this._stateNumericCharacterReferenceEnd(e));}_stateNumericCharacterReferenceEnd(e){if(this.charRefCode===a.NULL)this._err(T.nullCharacterReference),this.charRefCode=a.REPLACEMENT_CHARACTER;else if(this.charRefCode>1114111)this._err(T.characterReferenceOutsideUnicodeRange),this.charRefCode=a.REPLACEMENT_CHARACTER;else if(o(this.charRefCode))this._err(T.surrogateCharacterReference),this.charRefCode=a.REPLACEMENT_CHARACTER;else if(E(this.charRefCode))this._err(T.noncharacterCharacterReference);else if(c(this.charRefCode)||this.charRefCode===a.CARRIAGE_RETURN){this._err(T.controlCharacterReference);const e=k.get(this.charRefCode);void 0!==e&&(this.charRefCode=e);}this._flushCodePointConsumedAsCharacterReference(this.charRefCode),this._reconsumeInState(this.returnState,e);}}const Q=new Set([u.DD,u.DT,u.LI,u.OPTGROUP,u.OPTION,u.P,u.RB,u.RP,u.RT,u.RTC]),q=new Set([...Q,u.CAPTION,u.COLGROUP,u.TBODY,u.TD,u.TFOOT,u.TH,u.THEAD,u.TR]),W=new Map([[u.APPLET,p.HTML],[u.CAPTION,p.HTML],[u.HTML,p.HTML],[u.MARQUEE,p.HTML],[u.OBJECT,p.HTML],[u.TABLE,p.HTML],[u.TD,p.HTML],[u.TEMPLATE,p.HTML],[u.TH,p.HTML],[u.ANNOTATION_XML,p.MATHML],[u.MI,p.MATHML],[u.MN,p.MATHML],[u.MO,p.MATHML],[u.MS,p.MATHML],[u.MTEXT,p.MATHML],[u.DESC,p.SVG],[u.FOREIGN_OBJECT,p.SVG],[u.TITLE,p.SVG]]),X=[u.H1,u.H2,u.H3,u.H4,u.H5,u.H6],K=[u.TR,u.TEMPLATE,u.HTML],V=[u.TBODY,u.TFOOT,u.THEAD,u.TEMPLATE,u.HTML],z=[u.TABLE,u.TEMPLATE,u.HTML],j=[u.TD,u.TH];class J{get currentTmplContentOrNode(){return this._isInTemplate()?this.treeAdapter.getTemplateContent(this.current):this.current}constructor(e,t,s){this.treeAdapter=t,this.handler=s,this.items=[],this.tagIDs=[],this.stackTop=-1,this.tmplCount=0,this.currentTagId=u.UNKNOWN,this.current=e;}_indexOf(e){return this.items.lastIndexOf(e,this.stackTop)}_isInTemplate(){return this.currentTagId===u.TEMPLATE&&this.treeAdapter.getNamespaceURI(this.current)===p.HTML}_updateCurrentElement(){this.current=this.items[this.stackTop],this.currentTagId=this.tagIDs[this.stackTop];}push(e,t){this.stackTop++,this.items[this.stackTop]=e,this.current=e,this.tagIDs[this.stackTop]=t,this.currentTagId=t,this._isInTemplate()&&this.tmplCount++,this.handler.onItemPush(e,t,!0);}pop(){const e=this.current;this.tmplCount>0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!0);}replace(e,t){const s=this._indexOf(e);this.items[s]=t,s===this.stackTop&&(this.current=t);}insertAfter(e,t,s){const a=this._indexOf(e)+1;this.items.splice(a,0,t),this.tagIDs.splice(a,0,s),this.stackTop++,a===this.stackTop&&this._updateCurrentElement(),this.handler.onItemPush(this.current,this.currentTagId,a===this.stackTop);}popUntilTagNamePopped(e){let t=this.stackTop+1;do{t=this.tagIDs.lastIndexOf(e,t-1);}while(t>0&&this.treeAdapter.getNamespaceURI(this.items[t])!==p.HTML);this.shortenToLength(t<0?0:t);}shortenToLength(e){for(;this.stackTop>=e;){const t=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(t,this.stackTop<e);}}popUntilElementPopped(e){const t=this._indexOf(e);this.shortenToLength(t<0?0:t);}popUntilPopped(e,t){const s=this._indexOfTagNames(e,t);this.shortenToLength(s<0?0:s);}popUntilNumberedHeaderPopped(){this.popUntilPopped(X,p.HTML);}popUntilTableCellPopped(){this.popUntilPopped(j,p.HTML);}popAllUpToHtmlElement(){this.tmplCount=0,this.shortenToLength(1);}_indexOfTagNames(e,t){for(let s=this.stackTop;s>=0;s--)if(e.includes(this.tagIDs[s])&&this.treeAdapter.getNamespaceURI(this.items[s])===t)return s;return -1}clearBackTo(e,t){const s=this._indexOfTagNames(e,t);this.shortenToLength(s+1);}clearBackToTableContext(){this.clearBackTo(z,p.HTML);}clearBackToTableBodyContext(){this.clearBackTo(V,p.HTML);}clearBackToTableRowContext(){this.clearBackTo(K,p.HTML);}remove(e){const t=this._indexOf(e);t>=0&&(t===this.stackTop?this.pop():(this.items.splice(t,1),this.tagIDs.splice(t,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(e,!1)));}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===u.BODY?this.items[1]:null}contains(e){return this._indexOf(e)>-1}getCommonAncestor(e){const t=this._indexOf(e)-1;return t>=0?this.items[t]:null}isRootHtmlElementCurrent(){return 0===this.stackTop&&this.tagIDs[0]===u.HTML}hasInScope(e){for(let t=this.stackTop;t>=0;t--){const s=this.tagIDs[t],a=this.treeAdapter.getNamespaceURI(this.items[t]);if(s===e&&a===p.HTML)return !0;if(W.get(s)===a)return !1}return !0}hasNumberedHeaderInScope(){for(let e=this.stackTop;e>=0;e--){const t=this.tagIDs[e],s=this.treeAdapter.getNamespaceURI(this.items[e]);if(M(t)&&s===p.HTML)return !0;if(W.get(t)===s)return !1}return !0}hasInListItemScope(e){for(let t=this.stackTop;t>=0;t--){const s=this.tagIDs[t],a=this.treeAdapter.getNamespaceURI(this.items[t]);if(s===e&&a===p.HTML)return !0;if((s===u.UL||s===u.OL)&&a===p.HTML||W.get(s)===a)return !1}return !0}hasInButtonScope(e){for(let t=this.stackTop;t>=0;t--){const s=this.tagIDs[t],a=this.treeAdapter.getNamespaceURI(this.items[t]);if(s===e&&a===p.HTML)return !0;if(s===u.BUTTON&&a===p.HTML||W.get(s)===a)return !1}return !0}hasInTableScope(e){for(let t=this.stackTop;t>=0;t--){const s=this.tagIDs[t];if(this.treeAdapter.getNamespaceURI(this.items[t])===p.HTML){if(s===e)return !0;if(s===u.TABLE||s===u.TEMPLATE||s===u.HTML)return !1}}return !0}hasTableBodyContextInTableScope(){for(let e=this.stackTop;e>=0;e--){const t=this.tagIDs[e];if(this.treeAdapter.getNamespaceURI(this.items[e])===p.HTML){if(t===u.TBODY||t===u.THEAD||t===u.TFOOT)return !0;if(t===u.TABLE||t===u.HTML)return !1}}return !0}hasInSelectScope(e){for(let t=this.stackTop;t>=0;t--){const s=this.tagIDs[t];if(this.treeAdapter.getNamespaceURI(this.items[t])===p.HTML){if(s===e)return !0;if(s!==u.OPTION&&s!==u.OPTGROUP)return !1}}return !0}generateImpliedEndTags(){for(;Q.has(this.currentTagId);)this.pop();}generateImpliedEndTagsThoroughly(){for(;q.has(this.currentTagId);)this.pop();}generateImpliedEndTagsWithExclusion(e){for(;this.currentTagId!==e&&q.has(this.currentTagId);)this.pop();}}var Z;!function(e){e[e.Marker=0]="Marker",e[e.Element=1]="Element";}(Z=Z||(Z={}));const $={type:Z.Marker};class ee{constructor(e){this.treeAdapter=e,this.entries=[],this.bookmark=null;}_getNoahArkConditionCandidates(e,t){const s=[],a=t.length,r=this.treeAdapter.getTagName(e),n=this.treeAdapter.getNamespaceURI(e);for(let e=0;e<this.entries.length;e++){const t=this.entries[e];if(t.type===Z.Marker)break;const{element:i}=t;if(this.treeAdapter.getTagName(i)===r&&this.treeAdapter.getNamespaceURI(i)===n){const t=this.treeAdapter.getAttrList(i);t.length===a&&s.push({idx:e,attrs:t});}}return s}_ensureNoahArkCondition(e){if(this.entries.length<3)return;const t=this.treeAdapter.getAttrList(e),s=this._getNoahArkConditionCandidates(e,t);if(s.length<3)return;const a=new Map(t.map((e=>[e.name,e.value])));let r=0;for(let e=0;e<s.length;e++){const t=s[e];t.attrs.every((e=>a.get(e.name)===e.value))&&(r+=1,r>=3&&this.entries.splice(t.idx,1));}}insertMarker(){this.entries.unshift($);}pushElement(e,t){this._ensureNoahArkCondition(e),this.entries.unshift({type:Z.Element,element:e,token:t});}insertElementAfterBookmark(e,t){const s=this.entries.indexOf(this.bookmark);this.entries.splice(s,0,{type:Z.Element,element:e,token:t});}removeEntry(e){const t=this.entries.indexOf(e);t>=0&&this.entries.splice(t,1);}clearToLastMarker(){const e=this.entries.indexOf($);e>=0?this.entries.splice(0,e+1):this.entries.length=0;}getElementEntryInScopeWithTagName(e){const t=this.entries.find((t=>t.type===Z.Marker||this.treeAdapter.getTagName(t.element)===e));return t&&t.type===Z.Element?t:null}getElementEntry(e){return this.entries.find((t=>t.type===Z.Element&&t.element===e))}}function te(e){return {nodeName:"#text",value:e,parentNode:null}}const se={createDocument:()=>({nodeName:"#document",mode:I.NO_QUIRKS,childNodes:[]}),createDocumentFragment:()=>({nodeName:"#document-fragment",childNodes:[]}),createElement:(e,t,s)=>({nodeName:e,tagName:e,attrs:s,namespaceURI:t,childNodes:[],parentNode:null}),createCommentNode:e=>({nodeName:"#comment",data:e,parentNode:null}),appendChild(e,t){e.childNodes.push(t),t.parentNode=e;},insertBefore(e,t,s){const a=e.childNodes.indexOf(s);e.childNodes.splice(a,0,t),t.parentNode=e;},setTemplateContent(e,t){e.content=t;},getTemplateContent:e=>e.content,setDocumentType(e,t,s,a){const r=e.childNodes.find((e=>"#documentType"===e.nodeName));if(r)r.name=t,r.publicId=s,r.systemId=a;else {const r={nodeName:"#documentType",name:t,publicId:s,systemId:a,parentNode:null};se.appendChild(e,r);}},setDocumentMode(e,t){e.mode=t;},getDocumentMode:e=>e.mode,detachNode(e){if(e.parentNode){const t=e.parentNode.childNodes.indexOf(e);e.parentNode.childNodes.splice(t,1),e.parentNode=null;}},insertText(e,t){if(e.childNodes.length>0){const s=e.childNodes[e.childNodes.length-1];if(se.isTextNode(s))return void(s.value+=t)}se.appendChild(e,te(t));},insertTextBefore(e,t,s){const a=e.childNodes[e.childNodes.indexOf(s)-1];a&&se.isTextNode(a)?a.value+=t:se.insertBefore(e,te(t),s);},adoptAttributes(e,t){const s=new Set(e.attrs.map((e=>e.name)));for(let a=0;a<t.length;a++)s.has(t[a].name)||e.attrs.push(t[a]);},getFirstChild:e=>e.childNodes[0],getChildNodes:e=>e.childNodes,getParentNode:e=>e.parentNode,getAttrList:e=>e.attrs,getTagName:e=>e.tagName,getNamespaceURI:e=>e.namespaceURI,getTextNodeContent:e=>e.value,getCommentNodeContent:e=>e.data,getDocumentTypeNodeName:e=>e.name,getDocumentTypeNodePublicId:e=>e.publicId,getDocumentTypeNodeSystemId:e=>e.systemId,isTextNode:e=>"#text"===e.nodeName,isCommentNode:e=>"#comment"===e.nodeName,isDocumentTypeNode:e=>"#documentType"===e.nodeName,isElementNode:e=>Object.prototype.hasOwnProperty.call(e,"tagName"),setNodeSourceCodeLocation(e,t){e.sourceCodeLocation=t;},getNodeSourceCodeLocation:e=>e.sourceCodeLocation,updateNodeSourceCodeLocation(e,t){e.sourceCodeLocation={...e.sourceCodeLocation,...t};}},ae="html",re=["+//silmaril//dtd html pro v0r11 19970101//","-//as//dtd html 3.0 aswedit + extensions//","-//advasoft ltd//dtd html 3.0 aswedit + extensions//","-//ietf//dtd html 2.0 level 1//","-//ietf//dtd html 2.0 level 2//","-//ietf//dtd html 2.0 strict level 1//","-//ietf//dtd html 2.0 strict level 2//","-//ietf//dtd html 2.0 strict//","-//ietf//dtd html 2.0//","-//ietf//dtd html 2.1e//","-//ietf//dtd html 3.0//","-//ietf//dtd html 3.2 final//","-//ietf//dtd html 3.2//","-//ietf//dtd html 3//","-//ietf//dtd html level 0//","-//ietf//dtd html level 1//","-//ietf//dtd html level 2//","-//ietf//dtd html level 3//","-//ietf//dtd html strict level 0//","-//ietf//dtd html strict level 1//","-//ietf//dtd html strict level 2//","-//ietf//dtd html strict level 3//","-//ietf//dtd html strict//","-//ietf//dtd html//","-//metrius//dtd metrius presentational//","-//microsoft//dtd internet explorer 2.0 html strict//","-//microsoft//dtd internet explorer 2.0 html//","-//microsoft//dtd internet explorer 2.0 tables//","-//microsoft//dtd internet explorer 3.0 html strict//","-//microsoft//dtd internet explorer 3.0 html//","-//microsoft//dtd internet explorer 3.0 tables//","-//netscape comm. corp.//dtd html//","-//netscape comm. corp.//dtd strict html//","-//o'reilly and associates//dtd html 2.0//","-//o'reilly and associates//dtd html extended 1.0//","-//o'reilly and associates//dtd html extended relaxed 1.0//","-//sq//dtd html 2.0 hotmetal + extensions//","-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//","-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//","-//spyglass//dtd html 2.0 extended//","-//sun microsystems corp.//dtd hotjava html//","-//sun microsystems corp.//dtd hotjava strict html//","-//w3c//dtd html 3 1995-03-24//","-//w3c//dtd html 3.2 draft//","-//w3c//dtd html 3.2 final//","-//w3c//dtd html 3.2//","-//w3c//dtd html 3.2s draft//","-//w3c//dtd html 4.0 frameset//","-//w3c//dtd html 4.0 transitional//","-//w3c//dtd html experimental 19960712//","-//w3c//dtd html experimental 970421//","-//w3c//dtd w3 html//","-//w3o//dtd w3 html 3.0//","-//webtechs//dtd mozilla html 2.0//","-//webtechs//dtd mozilla html//"],ne=[...re,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"],ie=new Set(["-//w3o//dtd w3 html strict 3.0//en//","-/w3c/dtd html 4.0 transitional/en","html"]),oe=["-//w3c//dtd xhtml 1.0 frameset//","-//w3c//dtd xhtml 1.0 transitional//"],ce=[...oe,"-//w3c//dtd html 4.01 frameset//","-//w3c//dtd html 4.01 transitional//"];function Ee(e,t){return t.some((t=>e.startsWith(t)))}const Te=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map((e=>[e.toLowerCase(),e]))),he=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:p.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:p.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:p.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:p.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:p.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:p.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:p.XLINK}],["xml:base",{prefix:"xml",name:"base",namespace:p.XML}],["xml:lang",{prefix:"xml",name:"lang",namespace:p.XML}],["xml:space",{prefix:"xml",name:"space",namespace:p.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:p.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:p.XMLNS}]]),_e=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map((e=>[e.toLowerCase(),e]))),Ae=new Set([u.B,u.BIG,u.BLOCKQUOTE,u.BODY,u.BR,u.CENTER,u.CODE,u.DD,u.DIV,u.DL,u.DT,u.EM,u.EMBED,u.H1,u.H2,u.H3,u.H4,u.H5,u.H6,u.HEAD,u.HR,u.I,u.IMG,u.LI,u.LISTING,u.MENU,u.META,u.NOBR,u.OL,u.P,u.PRE,u.RUBY,u.S,u.SMALL,u.SPAN,u.STRONG,u.STRIKE,u.SUB,u.SUP,u.TABLE,u.TT,u.U,u.UL,u.VAR]);function le(e){for(let t=0;t<e.attrs.length;t++)if("definitionurl"===e.attrs[t].name){e.attrs[t].name="definitionURL";break}}function me(e){for(let t=0;t<e.attrs.length;t++){const s=Te.get(e.attrs[t].name);null!=s&&(e.attrs[t].name=s);}}function pe(e){for(let t=0;t<e.attrs.length;t++){const s=he.get(e.attrs[t].name);s&&(e.attrs[t].prefix=s.prefix,e.attrs[t].name=s.name,e.attrs[t].namespace=s.namespace);}}var de;!function(e){e[e.INITIAL=0]="INITIAL",e[e.BEFORE_HTML=1]="BEFORE_HTML",e[e.BEFORE_HEAD=2]="BEFORE_HEAD",e[e.IN_HEAD=3]="IN_HEAD",e[e.IN_HEAD_NO_SCRIPT=4]="IN_HEAD_NO_SCRIPT",e[e.AFTER_HEAD=5]="AFTER_HEAD",e[e.IN_BODY=6]="IN_BODY",e[e.TEXT=7]="TEXT",e[e.IN_TABLE=8]="IN_TABLE",e[e.IN_TABLE_TEXT=9]="IN_TABLE_TEXT",e[e.IN_CAPTION=10]="IN_CAPTION",e[e.IN_COLUMN_GROUP=11]="IN_COLUMN_GROUP",e[e.IN_TABLE_BODY=12]="IN_TABLE_BODY",e[e.IN_ROW=13]="IN_ROW",e[e.IN_CELL=14]="IN_CELL",e[e.IN_SELECT=15]="IN_SELECT",e[e.IN_SELECT_IN_TABLE=16]="IN_SELECT_IN_TABLE",e[e.IN_TEMPLATE=17]="IN_TEMPLATE",e[e.AFTER_BODY=18]="AFTER_BODY",e[e.IN_FRAMESET=19]="IN_FRAMESET",e[e.AFTER_FRAMESET=20]="AFTER_FRAMESET",e[e.AFTER_AFTER_BODY=21]="AFTER_AFTER_BODY",e[e.AFTER_AFTER_FRAMESET=22]="AFTER_AFTER_FRAMESET";}(de||(de={}));const Ie={startLine:-1,startCol:-1,startOffset:-1,endLine:-1,endCol:-1,endOffset:-1},Ne=new Set([u.TABLE,u.TBODY,u.TFOOT,u.THEAD,u.TR]),ue={scriptingEnabled:!0,sourceCodeLocationInfo:!1,treeAdapter:se,onParseError:null};class Ce{constructor(e,t,s=null,a=null){this.fragmentContext=s,this.scriptHandler=a,this.currentToken=null,this.stopped=!1,this.insertionMode=de.INITIAL,this.originalInsertionMode=de.INITIAL,this.headElement=null,this.formElement=null,this.currentNotInHTML=!1,this.tmplInsertionModeStack=[],this.pendingCharacterTokens=[],this.hasNonWhitespacePendingCharacterToken=!1,this.framesetOk=!0,this.skipNextNewLine=!1,this.fosterParentingEnabled=!1,this.options={...ue,...e},this.treeAdapter=this.options.treeAdapter,this.onParseError=this.options.onParseError,this.onParseError&&(this.options.sourceCodeLocationInfo=!0),this.document=null!=t?t:this.treeAdapter.createDocument(),this.tokenizer=new v(this.options,this),this.activeFormattingElements=new ee(this.treeAdapter),this.fragmentContextID=s?f(this.treeAdapter.getTagName(s)):u.UNKNOWN,this._setContextModes(null!=s?s:this.document,this.fragmentContextID),this.openElements=new J(this.document,this.treeAdapter,this);}static parse(e,t){const s=new this(t);return s.tokenizer.write(e,!0),s.document}static getFragmentParser(e,t){const s={...ue,...t};null!=e||(e=s.treeAdapter.createElement(N.TEMPLATE,p.HTML,[]));const a=s.treeAdapter.createElement("documentmock",p.HTML,[]),r=new this(s,a,e);return r.fragmentContextID===u.TEMPLATE&&r.tmplInsertionModeStack.unshift(de.IN_TEMPLATE),r._initTokenizerForFragmentParsing(),r._insertFakeRootElement(),r._resetInsertionMode(),r._findFormInFragmentContext(),r}getFragment(){const e=this.treeAdapter.getFirstChild(this.document),t=this.treeAdapter.createDocumentFragment();return this._adoptNodes(e,t),t}_err(e,t,s){var a;if(!this.onParseError)return;const r=null!==(a=e.location)&&void 0!==a?a:Ie,n={code:t,startLine:r.startLine,startCol:r.startCol,startOffset:r.startOffset,endLine:s?r.startLine:r.endLine,endCol:s?r.startCol:r.endCol,endOffset:s?r.startOffset:r.endOffset};this.onParseError(n);}onItemPush(e,t,s){var a,r;null===(r=(a=this.treeAdapter).onItemPush)||void 0===r||r.call(a,e),s&&this.openElements.stackTop>0&&this._setContextModes(e,t);}onItemPop(e,t){var s,a;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(e,this.currentToken),null===(a=(s=this.treeAdapter).onItemPop)||void 0===a||a.call(s,e,this.openElements.current),t){let e,t;0===this.openElements.stackTop&&this.fragmentContext?(e=this.fragmentContext,t=this.fragmentContextID):({current:e,currentTagId:t}=this.openElements),this._setContextModes(e,t);}}_setContextModes(e,t){const s=e===this.document||this.treeAdapter.getNamespaceURI(e)===p.HTML;this.currentNotInHTML=!s,this.tokenizer.inForeignNode=!s&&!this._isIntegrationPoint(t,e);}_switchToTextParsing(e,t){this._insertElement(e,p.HTML),this.tokenizer.state=t,this.originalInsertionMode=this.insertionMode,this.insertionMode=de.TEXT;}switchToPlaintextParsing(){this.insertionMode=de.TEXT,this.originalInsertionMode=de.IN_BODY,this.tokenizer.state=b.PLAINTEXT;}_getAdjustedCurrentElement(){return 0===this.openElements.stackTop&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let e=this.fragmentContext;for(;e;){if(this.treeAdapter.getTagName(e)===N.FORM){this.formElement=e;break}e=this.treeAdapter.getParentNode(e);}}_initTokenizerForFragmentParsing(){if(this.fragmentContext&&this.treeAdapter.getNamespaceURI(this.fragmentContext)===p.HTML)switch(this.fragmentContextID){case u.TITLE:case u.TEXTAREA:this.tokenizer.state=b.RCDATA;break;case u.STYLE:case u.XMP:case u.IFRAME:case u.NOEMBED:case u.NOFRAMES:case u.NOSCRIPT:this.tokenizer.state=b.RAWTEXT;break;case u.SCRIPT:this.tokenizer.state=b.SCRIPT_DATA;break;case u.PLAINTEXT:this.tokenizer.state=b.PLAINTEXT;}}_setDocumentType(e){const t=e.name||"",s=e.publicId||"",a=e.systemId||"";if(this.treeAdapter.setDocumentType(this.document,t,s,a),e.location){const t=this.treeAdapter.getChildNodes(this.document).find((e=>this.treeAdapter.isDocumentTypeNode(e)));t&&this.treeAdapter.setNodeSourceCodeLocation(t,e.location);}}_attachElementToTree(e,t){if(this.options.sourceCodeLocationInfo){const s=t&&{...t,startTag:t};this.treeAdapter.setNodeSourceCodeLocation(e,s);}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(e);else {const t=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(t,e);}}_appendElement(e,t){const s=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(s,e.location);}_insertElement(e,t){const s=this.treeAdapter.createElement(e.tagName,t,e.attrs);this._attachElementToTree(s,e.location),this.openElements.push(s,e.tagID);}_insertFakeElement(e,t){const s=this.treeAdapter.createElement(e,p.HTML,[]);this._attachElementToTree(s,null),this.openElements.push(s,t);}_insertTemplate(e){const t=this.treeAdapter.createElement(e.tagName,p.HTML,e.attrs),s=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(t,s),this._attachElementToTree(t,e.location),this.openElements.push(t,e.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(s,null);}_insertFakeRootElement(){const e=this.treeAdapter.createElement(N.HTML,p.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(e,null),this.treeAdapter.appendChild(this.openElements.current,e),this.openElements.push(e,u.HTML);}_appendCommentNode(e,t){const s=this.treeAdapter.createCommentNode(e.data);this.treeAdapter.appendChild(t,s),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(s,e.location);}_insertCharacters(e){let t,s;if(this._shouldFosterParentOnInsertion()?(({parent:t,beforeElement:s}=this._findFosterParentingLocation()),s?this.treeAdapter.insertTextBefore(t,e.chars,s):this.treeAdapter.insertText(t,e.chars)):(t=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(t,e.chars)),!e.location)return;const a=this.treeAdapter.getChildNodes(t),r=s?a.lastIndexOf(s):a.length,n=a[r-1];if(this.treeAdapter.getNodeSourceCodeLocation(n)){const{endLine:t,endCol:s,endOffset:a}=e.location;this.treeAdapter.updateNodeSourceCodeLocation(n,{endLine:t,endCol:s,endOffset:a});}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(n,e.location);}_adoptNodes(e,t){for(let s=this.treeAdapter.getFirstChild(e);s;s=this.treeAdapter.getFirstChild(e))this.treeAdapter.detachNode(s),this.treeAdapter.appendChild(t,s);}_setEndLocation(e,t){if(this.treeAdapter.getNodeSourceCodeLocation(e)&&t.location){const s=t.location,a=this.treeAdapter.getTagName(e),r=t.type===h.END_TAG&&a===t.tagName?{endTag:{...s},endLine:s.endLine,endCol:s.endCol,endOffset:s.endOffset}:{endLine:s.startLine,endCol:s.startCol,endOffset:s.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(e,r);}}shouldProcessStartTagTokenInForeignContent(e){if(!this.currentNotInHTML)return !1;let t,s;return 0===this.openElements.stackTop&&this.fragmentContext?(t=this.fragmentContext,s=this.fragmentContextID):({current:t,currentTagId:s}=this.openElements),(e.tagID!==u.SVG||this.treeAdapter.getTagName(t)!==N.ANNOTATION_XML||this.treeAdapter.getNamespaceURI(t)!==p.MATHML)&&(this.tokenizer.inForeignNode||(e.tagID===u.MGLYPH||e.tagID===u.MALIGNMARK)&&!this._isIntegrationPoint(s,t,p.HTML))}_processToken(e){switch(e.type){case h.CHARACTER:this.onCharacter(e);break;case h.NULL_CHARACTER:this.onNullCharacter(e);break;case h.COMMENT:this.onComment(e);break;case h.DOCTYPE:this.onDoctype(e);break;case h.START_TAG:this._processStartTag(e);break;case h.END_TAG:this.onEndTag(e);break;case h.EOF:this.onEof(e);break;case h.WHITESPACE_CHARACTER:this.onWhitespaceCharacter(e);}}_isIntegrationPoint(e,t,s){return function(e,t,s,a){return (!a||a===p.HTML)&&function(e,t,s){if(t===p.MATHML&&e===u.ANNOTATION_XML)for(let e=0;e<s.length;e++)if(s[e].name===d.ENCODING){const t=s[e].value.toLowerCase();return "text/html"===t||"application/xhtml+xml"===t}return t===p.SVG&&(e===u.FOREIGN_OBJECT||e===u.DESC||e===u.TITLE)}(e,t,s)||(!a||a===p.MATHML)&&function(e,t){return t===p.MATHML&&(e===u.MI||e===u.MO||e===u.MN||e===u.MS||e===u.MTEXT)}(e,t)}(e,this.treeAdapter.getNamespaceURI(t),this.treeAdapter.getAttrList(t),s)}_reconstructActiveFormattingElements(){const e=this.activeFormattingElements.entries.length;if(e){const t=this.activeFormattingElements.entries.findIndex((e=>e.type===Z.Marker||this.openElements.contains(e.element)));for(let s=t<0?e-1:t-1;s>=0;s--){const e=this.activeFormattingElements.entries[s];this._insertElement(e.token,this.treeAdapter.getNamespaceURI(e.element)),e.element=this.openElements.current;}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=de.IN_ROW;}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(u.P),this.openElements.popUntilTagNamePopped(u.P);}_resetInsertionMode(){for(let e=this.openElements.stackTop;e>=0;e--)switch(0===e&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[e]){case u.TR:return void(this.insertionMode=de.IN_ROW);case u.TBODY:case u.THEAD:case u.TFOOT:return void(this.insertionMode=de.IN_TABLE_BODY);case u.CAPTION:return void(this.insertionMode=de.IN_CAPTION);case u.COLGROUP:return void(this.insertionMode=de.IN_COLUMN_GROUP);case u.TABLE:return void(this.insertionMode=de.IN_TABLE);case u.BODY:return void(this.insertionMode=de.IN_BODY);case u.FRAMESET:return void(this.insertionMode=de.IN_FRAMESET);case u.SELECT:return void this._resetInsertionModeForSelect(e);case u.TEMPLATE:return void(this.insertionMode=this.tmplInsertionModeStack[0]);case u.HTML:return void(this.insertionMode=this.headElement?de.AFTER_HEAD:de.BEFORE_HEAD);case u.TD:case u.TH:if(e>0)return void(this.insertionMode=de.IN_CELL);break;case u.HEAD:if(e>0)return void(this.insertionMode=de.IN_HEAD)}this.insertionMode=de.IN_BODY;}_resetInsertionModeForSelect(e){if(e>0)for(let t=e-1;t>0;t--){const e=this.openElements.tagIDs[t];if(e===u.TEMPLATE)break;if(e===u.TABLE)return void(this.insertionMode=de.IN_SELECT_IN_TABLE)}this.insertionMode=de.IN_SELECT;}_isElementCausesFosterParenting(e){return Ne.has(e)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let e=this.openElements.stackTop;e>=0;e--){const t=this.openElements.items[e];switch(this.openElements.tagIDs[e]){case u.TEMPLATE:if(this.treeAdapter.getNamespaceURI(t)===p.HTML)return {parent:this.treeAdapter.getTemplateContent(t),beforeElement:null};break;case u.TABLE:{const s=this.treeAdapter.getParentNode(t);return s?{parent:s,beforeElement:t}:{parent:this.openElements.items[e-1],beforeElement:null}}}}return {parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(e){const t=this._findFosterParentingLocation();t.beforeElement?this.treeAdapter.insertBefore(t.parent,e,t.beforeElement):this.treeAdapter.appendChild(t.parent,e);}_isSpecialElement(e,t){const s=this.treeAdapter.getNamespaceURI(e);return g[s].has(t)}onCharacter(e){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode)!function(e,t){e._insertCharacters(t),e.framesetOk=!1;}(this,e);else switch(this.insertionMode){case de.INITIAL:Pe(this,e);break;case de.BEFORE_HTML:be(this,e);break;case de.BEFORE_HEAD:Be(this,e);break;case de.IN_HEAD:Ue(this,e);break;case de.IN_HEAD_NO_SCRIPT:Ge(this,e);break;case de.AFTER_HEAD:ye(this,e);break;case de.IN_BODY:case de.IN_CAPTION:case de.IN_CELL:case de.IN_TEMPLATE:xe(this,e);break;case de.TEXT:case de.IN_SELECT:case de.IN_SELECT_IN_TABLE:this._insertCharacters(e);break;case de.IN_TABLE:case de.IN_TABLE_BODY:case de.IN_ROW:je(this,e);break;case de.IN_TABLE_TEXT:tt(this,e);break;case de.IN_COLUMN_GROUP:nt(this,e);break;case de.AFTER_BODY:lt(this,e);break;case de.AFTER_AFTER_BODY:mt(this,e);}}onNullCharacter(e){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode)!function(e,t){t.chars=s,e._insertCharacters(t);}(this,e);else switch(this.insertionMode){case de.INITIAL:Pe(this,e);break;case de.BEFORE_HTML:be(this,e);break;case de.BEFORE_HEAD:Be(this,e);break;case de.IN_HEAD:Ue(this,e);break;case de.IN_HEAD_NO_SCRIPT:Ge(this,e);break;case de.AFTER_HEAD:ye(this,e);break;case de.TEXT:this._insertCharacters(e);break;case de.IN_TABLE:case de.IN_TABLE_BODY:case de.IN_ROW:je(this,e);break;case de.IN_COLUMN_GROUP:nt(this,e);break;case de.AFTER_BODY:lt(this,e);break;case de.AFTER_AFTER_BODY:mt(this,e);}}onComment(e){if(this.skipNextNewLine=!1,this.currentNotInHTML)Me(this,e);else switch(this.insertionMode){case de.INITIAL:case de.BEFORE_HTML:case de.BEFORE_HEAD:case de.IN_HEAD:case de.IN_HEAD_NO_SCRIPT:case de.AFTER_HEAD:case de.IN_BODY:case de.IN_TABLE:case de.IN_CAPTION:case de.IN_COLUMN_GROUP:case de.IN_TABLE_BODY:case de.IN_ROW:case de.IN_CELL:case de.IN_SELECT:case de.IN_SELECT_IN_TABLE:case de.IN_TEMPLATE:case de.IN_FRAMESET:case de.AFTER_FRAMESET:Me(this,e);break;case de.IN_TABLE_TEXT:st(this,e);break;case de.AFTER_BODY:!function(e,t){e._appendCommentNode(t,e.openElements.items[0]);}(this,e);break;case de.AFTER_AFTER_BODY:case de.AFTER_AFTER_FRAMESET:!function(e,t){e._appendCommentNode(t,e.document);}(this,e);}}onDoctype(e){switch(this.skipNextNewLine=!1,this.insertionMode){case de.INITIAL:!function(e,t){e._setDocumentType(t);const s=t.forceQuirks?I.QUIRKS:function(e){if(e.name!==ae)return I.QUIRKS;const{systemId:t}=e;if(t&&"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"===t.toLowerCase())return I.QUIRKS;let{publicId:s}=e;if(null!==s){if(s=s.toLowerCase(),ie.has(s))return I.QUIRKS;let e=null===t?ne:re;if(Ee(s,e))return I.QUIRKS;if(e=null===t?oe:ce,Ee(s,e))return I.LIMITED_QUIRKS}return I.NO_QUIRKS}(t);(function(e){return e.name===ae&&null===e.publicId&&(null===e.systemId||"about:legacy-compat"===e.systemId)})(t)||e._err(t,T.nonConformingDoctype),e.treeAdapter.setDocumentMode(e.document,s),e.insertionMode=de.BEFORE_HTML;}(this,e);break;case de.BEFORE_HEAD:case de.IN_HEAD:case de.IN_HEAD_NO_SCRIPT:case de.AFTER_HEAD:this._err(e,T.misplacedDoctype);break;case de.IN_TABLE_TEXT:st(this,e);}}onStartTag(e){this.skipNextNewLine=!1,this.currentToken=e,this._processStartTag(e),e.selfClosing&&!e.ackSelfClosing&&this._err(e,T.nonVoidHtmlElementStartTagWithTrailingSolidus);}_processStartTag(e){this.shouldProcessStartTagTokenInForeignContent(e)?function(e,t){if(function(e){const t=e.tagID;return t===u.FONT&&e.attrs.some((({name:e})=>e===d.COLOR||e===d.SIZE||e===d.FACE))||Ae.has(t)}(t))pt(e),e._startTagOutsideForeignContent(t);else {const s=e._getAdjustedCurrentElement(),a=e.treeAdapter.getNamespaceURI(s);a===p.MATHML?le(t):a===p.SVG&&(function(e){const t=_e.get(e.tagName);null!=t&&(e.tagName=t,e.tagID=f(e.tagName));}(t),me(t)),pe(t),t.selfClosing?e._appendElement(t,a):e._insertElement(t,a),t.ackSelfClosing=!0;}}(this,e):this._startTagOutsideForeignContent(e);}_startTagOutsideForeignContent(e){switch(this.insertionMode){case de.INITIAL:Pe(this,e);break;case de.BEFORE_HTML:!function(e,t){t.tagID===u.HTML?(e._insertElement(t,p.HTML),e.insertionMode=de.BEFORE_HEAD):be(e,t);}(this,e);break;case de.BEFORE_HEAD:!function(e,t){switch(t.tagID){case u.HTML:Xe(e,t);break;case u.HEAD:e._insertElement(t,p.HTML),e.headElement=e.openElements.current,e.insertionMode=de.IN_HEAD;break;default:Be(e,t);}}(this,e);break;case de.IN_HEAD:He(this,e);break;case de.IN_HEAD_NO_SCRIPT:!function(e,t){switch(t.tagID){case u.HTML:Xe(e,t);break;case u.BASEFONT:case u.BGSOUND:case u.HEAD:case u.LINK:case u.META:case u.NOFRAMES:case u.STYLE:He(e,t);break;case u.NOSCRIPT:e._err(t,T.nestedNoscriptInHead);break;default:Ge(e,t);}}(this,e);break;case de.AFTER_HEAD:!function(e,t){switch(t.tagID){case u.HTML:Xe(e,t);break;case u.BODY:e._insertElement(t,p.HTML),e.framesetOk=!1,e.insertionMode=de.IN_BODY;break;case u.FRAMESET:e._insertElement(t,p.HTML),e.insertionMode=de.IN_FRAMESET;break;case u.BASE:case u.BASEFONT:case u.BGSOUND:case u.LINK:case u.META:case u.NOFRAMES:case u.SCRIPT:case u.STYLE:case u.TEMPLATE:case u.TITLE:e._err(t,T.abandonedHeadElementChild),e.openElements.push(e.headElement,u.HEAD),He(e,t),e.openElements.remove(e.headElement);break;case u.HEAD:e._err(t,T.misplacedStartTagForHeadElement);break;default:ye(e,t);}}(this,e);break;case de.IN_BODY:Xe(this,e);break;case de.IN_TABLE:Je(this,e);break;case de.IN_TABLE_TEXT:st(this,e);break;case de.IN_CAPTION:!function(e,t){const s=t.tagID;at.has(s)?e.openElements.hasInTableScope(u.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(u.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=de.IN_TABLE,Je(e,t)):Xe(e,t);}(this,e);break;case de.IN_COLUMN_GROUP:rt(this,e);break;case de.IN_TABLE_BODY:it(this,e);break;case de.IN_ROW:ct(this,e);break;case de.IN_CELL:!function(e,t){const s=t.tagID;at.has(s)?(e.openElements.hasInTableScope(u.TD)||e.openElements.hasInTableScope(u.TH))&&(e._closeTableCell(),ct(e,t)):Xe(e,t);}(this,e);break;case de.IN_SELECT:Tt(this,e);break;case de.IN_SELECT_IN_TABLE:!function(e,t){const s=t.tagID;s===u.CAPTION||s===u.TABLE||s===u.TBODY||s===u.TFOOT||s===u.THEAD||s===u.TR||s===u.TD||s===u.TH?(e.openElements.popUntilTagNamePopped(u.SELECT),e._resetInsertionMode(),e._processStartTag(t)):Tt(e,t);}(this,e);break;case de.IN_TEMPLATE:!function(e,t){switch(t.tagID){case u.BASE:case u.BASEFONT:case u.BGSOUND:case u.LINK:case u.META:case u.NOFRAMES:case u.SCRIPT:case u.STYLE:case u.TEMPLATE:case u.TITLE:He(e,t);break;case u.CAPTION:case u.COLGROUP:case u.TBODY:case u.TFOOT:case u.THEAD:e.tmplInsertionModeStack[0]=de.IN_TABLE,e.insertionMode=de.IN_TABLE,Je(e,t);break;case u.COL:e.tmplInsertionModeStack[0]=de.IN_COLUMN_GROUP,e.insertionMode=de.IN_COLUMN_GROUP,rt(e,t);break;case u.TR:e.tmplInsertionModeStack[0]=de.IN_TABLE_BODY,e.insertionMode=de.IN_TABLE_BODY,it(e,t);break;case u.TD:case u.TH:e.tmplInsertionModeStack[0]=de.IN_ROW,e.insertionMode=de.IN_ROW,ct(e,t);break;default:e.tmplInsertionModeStack[0]=de.IN_BODY,e.insertionMode=de.IN_BODY,Xe(e,t);}}(this,e);break;case de.AFTER_BODY:!function(e,t){t.tagID===u.HTML?Xe(e,t):lt(e,t);}(this,e);break;case de.IN_FRAMESET:!function(e,t){switch(t.tagID){case u.HTML:Xe(e,t);break;case u.FRAMESET:e._insertElement(t,p.HTML);break;case u.FRAME:e._appendElement(t,p.HTML),t.ackSelfClosing=!0;break;case u.NOFRAMES:He(e,t);}}(this,e);break;case de.AFTER_FRAMESET:!function(e,t){switch(t.tagID){case u.HTML:Xe(e,t);break;case u.NOFRAMES:He(e,t);}}(this,e);break;case de.AFTER_AFTER_BODY:!function(e,t){t.tagID===u.HTML?Xe(e,t):mt(e,t);}(this,e);break;case de.AFTER_AFTER_FRAMESET:!function(e,t){switch(t.tagID){case u.HTML:Xe(e,t);break;case u.NOFRAMES:He(e,t);}}(this,e);}}onEndTag(e){this.skipNextNewLine=!1,this.currentToken=e,this.currentNotInHTML?function(e,t){if(t.tagID===u.P||t.tagID===u.BR)return pt(e),void e._endTagOutsideForeignContent(t);for(let s=e.openElements.stackTop;s>0;s--){const a=e.openElements.items[s];if(e.treeAdapter.getNamespaceURI(a)===p.HTML){e._endTagOutsideForeignContent(t);break}const r=e.treeAdapter.getTagName(a);if(r.toLowerCase()===t.tagName){t.tagName=r,e.openElements.shortenToLength(s);break}}}(this,e):this._endTagOutsideForeignContent(e);}_endTagOutsideForeignContent(e){switch(this.insertionMode){case de.INITIAL:Pe(this,e);break;case de.BEFORE_HTML:!function(e,t){const s=t.tagID;s!==u.HTML&&s!==u.HEAD&&s!==u.BODY&&s!==u.BR||be(e,t);}(this,e);break;case de.BEFORE_HEAD:!function(e,t){const s=t.tagID;s===u.HEAD||s===u.BODY||s===u.HTML||s===u.BR?Be(e,t):e._err(t,T.endTagWithoutMatchingOpenElement);}(this,e);break;case de.IN_HEAD:!function(e,t){switch(t.tagID){case u.HEAD:e.openElements.pop(),e.insertionMode=de.AFTER_HEAD;break;case u.BODY:case u.BR:case u.HTML:Ue(e,t);break;case u.TEMPLATE:Fe(e,t);break;default:e._err(t,T.endTagWithoutMatchingOpenElement);}}(this,e);break;case de.IN_HEAD_NO_SCRIPT:!function(e,t){switch(t.tagID){case u.NOSCRIPT:e.openElements.pop(),e.insertionMode=de.IN_HEAD;break;case u.BR:Ge(e,t);break;default:e._err(t,T.endTagWithoutMatchingOpenElement);}}(this,e);break;case de.AFTER_HEAD:!function(e,t){switch(t.tagID){case u.BODY:case u.HTML:case u.BR:ye(e,t);break;case u.TEMPLATE:Fe(e,t);break;default:e._err(t,T.endTagWithoutMatchingOpenElement);}}(this,e);break;case de.IN_BODY:Ve(this,e);break;case de.TEXT:!function(e,t){var s;t.tagID===u.SCRIPT&&(null===(s=e.scriptHandler)||void 0===s||s.call(e,e.openElements.current)),e.openElements.pop(),e.insertionMode=e.originalInsertionMode;}(this,e);break;case de.IN_TABLE:Ze(this,e);break;case de.IN_TABLE_TEXT:st(this,e);break;case de.IN_CAPTION:!function(e,t){const s=t.tagID;switch(s){case u.CAPTION:case u.TABLE:e.openElements.hasInTableScope(u.CAPTION)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(u.CAPTION),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=de.IN_TABLE,s===u.TABLE&&Ze(e,t));break;case u.BODY:case u.COL:case u.COLGROUP:case u.HTML:case u.TBODY:case u.TD:case u.TFOOT:case u.TH:case u.THEAD:case u.TR:break;default:Ve(e,t);}}(this,e);break;case de.IN_COLUMN_GROUP:!function(e,t){switch(t.tagID){case u.COLGROUP:e.openElements.currentTagId===u.COLGROUP&&(e.openElements.pop(),e.insertionMode=de.IN_TABLE);break;case u.TEMPLATE:Fe(e,t);break;case u.COL:break;default:nt(e,t);}}(this,e);break;case de.IN_TABLE_BODY:ot(this,e);break;case de.IN_ROW:Et(this,e);break;case de.IN_CELL:!function(e,t){const s=t.tagID;switch(s){case u.TD:case u.TH:e.openElements.hasInTableScope(s)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(s),e.activeFormattingElements.clearToLastMarker(),e.insertionMode=de.IN_ROW);break;case u.TABLE:case u.TBODY:case u.TFOOT:case u.THEAD:case u.TR:e.openElements.hasInTableScope(s)&&(e._closeTableCell(),Et(e,t));break;case u.BODY:case u.CAPTION:case u.COL:case u.COLGROUP:case u.HTML:break;default:Ve(e,t);}}(this,e);break;case de.IN_SELECT:ht(this,e);break;case de.IN_SELECT_IN_TABLE:!function(e,t){const s=t.tagID;s===u.CAPTION||s===u.TABLE||s===u.TBODY||s===u.TFOOT||s===u.THEAD||s===u.TR||s===u.TD||s===u.TH?e.openElements.hasInTableScope(s)&&(e.openElements.popUntilTagNamePopped(u.SELECT),e._resetInsertionMode(),e.onEndTag(t)):ht(e,t);}(this,e);break;case de.IN_TEMPLATE:!function(e,t){t.tagID===u.TEMPLATE&&Fe(e,t);}(this,e);break;case de.AFTER_BODY:At(this,e);break;case de.IN_FRAMESET:!function(e,t){t.tagID!==u.FRAMESET||e.openElements.isRootHtmlElementCurrent()||(e.openElements.pop(),e.fragmentContext||e.openElements.currentTagId===u.FRAMESET||(e.insertionMode=de.AFTER_FRAMESET));}(this,e);break;case de.AFTER_FRAMESET:!function(e,t){t.tagID===u.HTML&&(e.insertionMode=de.AFTER_AFTER_FRAMESET);}(this,e);break;case de.AFTER_AFTER_BODY:mt(this,e);}}onEof(e){switch(this.insertionMode){case de.INITIAL:Pe(this,e);break;case de.BEFORE_HTML:be(this,e);break;case de.BEFORE_HEAD:Be(this,e);break;case de.IN_HEAD:Ue(this,e);break;case de.IN_HEAD_NO_SCRIPT:Ge(this,e);break;case de.AFTER_HEAD:ye(this,e);break;case de.IN_BODY:case de.IN_TABLE:case de.IN_CAPTION:case de.IN_COLUMN_GROUP:case de.IN_TABLE_BODY:case de.IN_ROW:case de.IN_CELL:case de.IN_SELECT:case de.IN_SELECT_IN_TABLE:ze(this,e);break;case de.TEXT:!function(e,t){e._err(t,T.eofInElementThatCanContainOnlyText),e.openElements.pop(),e.insertionMode=e.originalInsertionMode,e.onEof(t);}(this,e);break;case de.IN_TABLE_TEXT:st(this,e);break;case de.IN_TEMPLATE:_t(this,e);break;case de.AFTER_BODY:case de.IN_FRAMESET:case de.AFTER_FRAMESET:case de.AFTER_AFTER_BODY:case de.AFTER_AFTER_FRAMESET:ke(this,e);}}onWhitespaceCharacter(e){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,e.chars.charCodeAt(0)===a.LINE_FEED)){if(1===e.chars.length)return;e.chars=e.chars.substr(1);}if(this.tokenizer.inForeignNode)this._insertCharacters(e);else switch(this.insertionMode){case de.IN_HEAD:case de.IN_HEAD_NO_SCRIPT:case de.AFTER_HEAD:case de.TEXT:case de.IN_COLUMN_GROUP:case de.IN_SELECT:case de.IN_SELECT_IN_TABLE:case de.IN_FRAMESET:case de.AFTER_FRAMESET:this._insertCharacters(e);break;case de.IN_BODY:case de.IN_CAPTION:case de.IN_CELL:case de.IN_TEMPLATE:case de.AFTER_BODY:case de.AFTER_AFTER_BODY:case de.AFTER_AFTER_FRAMESET:Ye(this,e);break;case de.IN_TABLE:case de.IN_TABLE_BODY:case de.IN_ROW:je(this,e);break;case de.IN_TABLE_TEXT:et(this,e);}}}function De(e,t){let s=e.activeFormattingElements.getElementEntryInScopeWithTagName(t.tagName);return s?e.openElements.contains(s.element)?e.openElements.hasInScope(t.tagID)||(s=null):(e.activeFormattingElements.removeEntry(s),s=null):Ke(e,t),s}function Se(e,t){let s=null,a=e.openElements.stackTop;for(;a>=0;a--){const r=e.openElements.items[a];if(r===t.element)break;e._isSpecialElement(r,e.openElements.tagIDs[a])&&(s=r);}return s||(e.openElements.shortenToLength(a<0?0:a),e.activeFormattingElements.removeEntry(t)),s}function Re(e,t,s){let a=t,r=e.openElements.getCommonAncestor(t);for(let n=0,i=r;i!==s;n++,i=r){r=e.openElements.getCommonAncestor(i);const s=e.activeFormattingElements.getElementEntry(i),o=s&&n>=3;!s||o?(o&&e.activeFormattingElements.removeEntry(s),e.openElements.remove(i)):(i=Oe(e,s),a===t&&(e.activeFormattingElements.bookmark=s),e.treeAdapter.detachNode(a),e.treeAdapter.appendChild(i,a),a=i);}return a}function Oe(e,t){const s=e.treeAdapter.getNamespaceURI(t.element),a=e.treeAdapter.createElement(t.token.tagName,s,t.token.attrs);return e.openElements.replace(t.element,a),t.element=a,a}function fe(e,t,s){const a=f(e.treeAdapter.getTagName(t));if(e._isElementCausesFosterParenting(a))e._fosterParentElement(s);else {const r=e.treeAdapter.getNamespaceURI(t);a===u.TEMPLATE&&r===p.HTML&&(t=e.treeAdapter.getTemplateContent(t)),e.treeAdapter.appendChild(t,s);}}function Le(e,t,s){const a=e.treeAdapter.getNamespaceURI(s.element),{token:r}=s,n=e.treeAdapter.createElement(r.tagName,a,r.attrs);e._adoptNodes(t,n),e.treeAdapter.appendChild(t,n),e.activeFormattingElements.insertElementAfterBookmark(n,r),e.activeFormattingElements.removeEntry(s),e.openElements.remove(s.element),e.openElements.insertAfter(t,n,r.tagID);}function ge(e,t){for(let s=0;s<8;s++){const s=De(e,t);if(!s)break;const a=Se(e,s);if(!a)break;e.activeFormattingElements.bookmark=s;const r=Re(e,a,s.element),n=e.openElements.getCommonAncestor(s.element);e.treeAdapter.detachNode(r),n&&fe(e,n,r),Le(e,a,s);}}function Me(e,t){e._appendCommentNode(t,e.openElements.currentTmplContentOrNode);}function ke(e,t){if(e.stopped=!0,t.location){const s=e.fragmentContext?0:2;for(let a=e.openElements.stackTop;a>=s;a--)e._setEndLocation(e.openElements.items[a],t);if(!e.fragmentContext&&e.openElements.stackTop>=0){const s=e.openElements.items[0],a=e.treeAdapter.getNodeSourceCodeLocation(s);if(a&&!a.endTag&&(e._setEndLocation(s,t),e.openElements.stackTop>=1)){const s=e.openElements.items[1],a=e.treeAdapter.getNodeSourceCodeLocation(s);a&&!a.endTag&&e._setEndLocation(s,t);}}}}function Pe(e,t){e._err(t,T.missingDoctype,!0),e.treeAdapter.setDocumentMode(e.document,I.QUIRKS),e.insertionMode=de.BEFORE_HTML,e._processToken(t);}function be(e,t){e._insertFakeRootElement(),e.insertionMode=de.BEFORE_HEAD,e._processToken(t);}function Be(e,t){e._insertFakeElement(N.HEAD,u.HEAD),e.headElement=e.openElements.current,e.insertionMode=de.IN_HEAD,e._processToken(t);}function He(e,t){switch(t.tagID){case u.HTML:Xe(e,t);break;case u.BASE:case u.BASEFONT:case u.BGSOUND:case u.LINK:case u.META:e._appendElement(t,p.HTML),t.ackSelfClosing=!0;break;case u.TITLE:e._switchToTextParsing(t,b.RCDATA);break;case u.NOSCRIPT:e.options.scriptingEnabled?e._switchToTextParsing(t,b.RAWTEXT):(e._insertElement(t,p.HTML),e.insertionMode=de.IN_HEAD_NO_SCRIPT);break;case u.NOFRAMES:case u.STYLE:e._switchToTextParsing(t,b.RAWTEXT);break;case u.SCRIPT:e._switchToTextParsing(t,b.SCRIPT_DATA);break;case u.TEMPLATE:e._insertTemplate(t),e.activeFormattingElements.insertMarker(),e.framesetOk=!1,e.insertionMode=de.IN_TEMPLATE,e.tmplInsertionModeStack.unshift(de.IN_TEMPLATE);break;case u.HEAD:e._err(t,T.misplacedStartTagForHeadElement);break;default:Ue(e,t);}}function Fe(e,t){e.openElements.tmplCount>0?(e.openElements.generateImpliedEndTagsThoroughly(),e.openElements.currentTagId!==u.TEMPLATE&&e._err(t,T.closingOfElementWithOpenChildElements),e.openElements.popUntilTagNamePopped(u.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode()):e._err(t,T.endTagWithoutMatchingOpenElement);}function Ue(e,t){e.openElements.pop(),e.insertionMode=de.AFTER_HEAD,e._processToken(t);}function Ge(e,t){const s=t.type===h.EOF?T.openElementsLeftAfterEof:T.disallowedContentInNoscriptInHead;e._err(t,s),e.openElements.pop(),e.insertionMode=de.IN_HEAD,e._processToken(t);}function ye(e,t){e._insertFakeElement(N.BODY,u.BODY),e.insertionMode=de.IN_BODY,we(e,t);}function we(e,t){switch(t.type){case h.CHARACTER:xe(e,t);break;case h.WHITESPACE_CHARACTER:Ye(e,t);break;case h.COMMENT:Me(e,t);break;case h.START_TAG:Xe(e,t);break;case h.END_TAG:Ve(e,t);break;case h.EOF:ze(e,t);}}function Ye(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t);}function xe(e,t){e._reconstructActiveFormattingElements(),e._insertCharacters(t),e.framesetOk=!1;}function ve(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,p.HTML),e.framesetOk=!1,t.ackSelfClosing=!0;}function Qe(e){const t=A(e,d.TYPE);return null!=t&&"hidden"===t.toLowerCase()}function qe(e,t){e._switchToTextParsing(t,b.RAWTEXT);}function We(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,p.HTML);}function Xe(e,t){switch(t.tagID){case u.I:case u.S:case u.B:case u.U:case u.EM:case u.TT:case u.BIG:case u.CODE:case u.FONT:case u.SMALL:case u.STRIKE:case u.STRONG:!function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,p.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t);}(e,t);break;case u.A:!function(e,t){const s=e.activeFormattingElements.getElementEntryInScopeWithTagName(N.A);s&&(ge(e,t),e.openElements.remove(s.element),e.activeFormattingElements.removeEntry(s)),e._reconstructActiveFormattingElements(),e._insertElement(t,p.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t);}(e,t);break;case u.H1:case u.H2:case u.H3:case u.H4:case u.H5:case u.H6:!function(e,t){e.openElements.hasInButtonScope(u.P)&&e._closePElement(),M(e.openElements.currentTagId)&&e.openElements.pop(),e._insertElement(t,p.HTML);}(e,t);break;case u.P:case u.DL:case u.OL:case u.UL:case u.DIV:case u.DIR:case u.NAV:case u.MAIN:case u.MENU:case u.ASIDE:case u.CENTER:case u.FIGURE:case u.FOOTER:case u.HEADER:case u.HGROUP:case u.DIALOG:case u.DETAILS:case u.ADDRESS:case u.ARTICLE:case u.SECTION:case u.SUMMARY:case u.FIELDSET:case u.BLOCKQUOTE:case u.FIGCAPTION:!function(e,t){e.openElements.hasInButtonScope(u.P)&&e._closePElement(),e._insertElement(t,p.HTML);}(e,t);break;case u.LI:case u.DD:case u.DT:!function(e,t){e.framesetOk=!1;const s=t.tagID;for(let t=e.openElements.stackTop;t>=0;t--){const a=e.openElements.tagIDs[t];if(s===u.LI&&a===u.LI||(s===u.DD||s===u.DT)&&(a===u.DD||a===u.DT)){e.openElements.generateImpliedEndTagsWithExclusion(a),e.openElements.popUntilTagNamePopped(a);break}if(a!==u.ADDRESS&&a!==u.DIV&&a!==u.P&&e._isSpecialElement(e.openElements.items[t],a))break}e.openElements.hasInButtonScope(u.P)&&e._closePElement(),e._insertElement(t,p.HTML);}(e,t);break;case u.BR:case u.IMG:case u.WBR:case u.AREA:case u.EMBED:case u.KEYGEN:ve(e,t);break;case u.HR:!function(e,t){e.openElements.hasInButtonScope(u.P)&&e._closePElement(),e._appendElement(t,p.HTML),e.framesetOk=!1,t.ackSelfClosing=!0;}(e,t);break;case u.RB:case u.RTC:!function(e,t){e.openElements.hasInScope(u.RUBY)&&e.openElements.generateImpliedEndTags(),e._insertElement(t,p.HTML);}(e,t);break;case u.RT:case u.RP:!function(e,t){e.openElements.hasInScope(u.RUBY)&&e.openElements.generateImpliedEndTagsWithExclusion(u.RTC),e._insertElement(t,p.HTML);}(e,t);break;case u.PRE:case u.LISTING:!function(e,t){e.openElements.hasInButtonScope(u.P)&&e._closePElement(),e._insertElement(t,p.HTML),e.skipNextNewLine=!0,e.framesetOk=!1;}(e,t);break;case u.XMP:!function(e,t){e.openElements.hasInButtonScope(u.P)&&e._closePElement(),e._reconstructActiveFormattingElements(),e.framesetOk=!1,e._switchToTextParsing(t,b.RAWTEXT);}(e,t);break;case u.SVG:!function(e,t){e._reconstructActiveFormattingElements(),me(t),pe(t),t.selfClosing?e._appendElement(t,p.SVG):e._insertElement(t,p.SVG),t.ackSelfClosing=!0;}(e,t);break;case u.HTML:!function(e,t){0===e.openElements.tmplCount&&e.treeAdapter.adoptAttributes(e.openElements.items[0],t.attrs);}(e,t);break;case u.BASE:case u.LINK:case u.META:case u.STYLE:case u.TITLE:case u.SCRIPT:case u.BGSOUND:case u.BASEFONT:case u.TEMPLATE:He(e,t);break;case u.BODY:!function(e,t){const s=e.openElements.tryPeekProperlyNestedBodyElement();s&&0===e.openElements.tmplCount&&(e.framesetOk=!1,e.treeAdapter.adoptAttributes(s,t.attrs));}(e,t);break;case u.FORM:!function(e,t){const s=e.openElements.tmplCount>0;e.formElement&&!s||(e.openElements.hasInButtonScope(u.P)&&e._closePElement(),e._insertElement(t,p.HTML),s||(e.formElement=e.openElements.current));}(e,t);break;case u.NOBR:!function(e,t){e._reconstructActiveFormattingElements(),e.openElements.hasInScope(u.NOBR)&&(ge(e,t),e._reconstructActiveFormattingElements()),e._insertElement(t,p.HTML),e.activeFormattingElements.pushElement(e.openElements.current,t);}(e,t);break;case u.MATH:!function(e,t){e._reconstructActiveFormattingElements(),le(t),pe(t),t.selfClosing?e._appendElement(t,p.MATHML):e._insertElement(t,p.MATHML),t.ackSelfClosing=!0;}(e,t);break;case u.TABLE:!function(e,t){e.treeAdapter.getDocumentMode(e.document)!==I.QUIRKS&&e.openElements.hasInButtonScope(u.P)&&e._closePElement(),e._insertElement(t,p.HTML),e.framesetOk=!1,e.insertionMode=de.IN_TABLE;}(e,t);break;case u.INPUT:!function(e,t){e._reconstructActiveFormattingElements(),e._appendElement(t,p.HTML),Qe(t)||(e.framesetOk=!1),t.ackSelfClosing=!0;}(e,t);break;case u.PARAM:case u.TRACK:case u.SOURCE:!function(e,t){e._appendElement(t,p.HTML),t.ackSelfClosing=!0;}(e,t);break;case u.IMAGE:!function(e,t){t.tagName=N.IMG,t.tagID=u.IMG,ve(e,t);}(e,t);break;case u.BUTTON:!function(e,t){e.openElements.hasInScope(u.BUTTON)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(u.BUTTON)),e._reconstructActiveFormattingElements(),e._insertElement(t,p.HTML),e.framesetOk=!1;}(e,t);break;case u.APPLET:case u.OBJECT:case u.MARQUEE:!function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,p.HTML),e.activeFormattingElements.insertMarker(),e.framesetOk=!1;}(e,t);break;case u.IFRAME:!function(e,t){e.framesetOk=!1,e._switchToTextParsing(t,b.RAWTEXT);}(e,t);break;case u.SELECT:!function(e,t){e._reconstructActiveFormattingElements(),e._insertElement(t,p.HTML),e.framesetOk=!1,e.insertionMode=e.insertionMode===de.IN_TABLE||e.insertionMode===de.IN_CAPTION||e.insertionMode===de.IN_TABLE_BODY||e.insertionMode===de.IN_ROW||e.insertionMode===de.IN_CELL?de.IN_SELECT_IN_TABLE:de.IN_SELECT;}(e,t);break;case u.OPTION:case u.OPTGROUP:!function(e,t){e.openElements.currentTagId===u.OPTION&&e.openElements.pop(),e._reconstructActiveFormattingElements(),e._insertElement(t,p.HTML);}(e,t);break;case u.NOEMBED:qe(e,t);break;case u.FRAMESET:!function(e,t){const s=e.openElements.tryPeekProperlyNestedBodyElement();e.framesetOk&&s&&(e.treeAdapter.detachNode(s),e.openElements.popAllUpToHtmlElement(),e._insertElement(t,p.HTML),e.insertionMode=de.IN_FRAMESET);}(e,t);break;case u.TEXTAREA:!function(e,t){e._insertElement(t,p.HTML),e.skipNextNewLine=!0,e.tokenizer.state=b.RCDATA,e.originalInsertionMode=e.insertionMode,e.framesetOk=!1,e.insertionMode=de.TEXT;}(e,t);break;case u.NOSCRIPT:e.options.scriptingEnabled?qe(e,t):We(e,t);break;case u.PLAINTEXT:!function(e,t){e.openElements.hasInButtonScope(u.P)&&e._closePElement(),e._insertElement(t,p.HTML),e.tokenizer.state=b.PLAINTEXT;}(e,t);break;case u.COL:case u.TH:case u.TD:case u.TR:case u.HEAD:case u.FRAME:case u.TBODY:case u.TFOOT:case u.THEAD:case u.CAPTION:case u.COLGROUP:break;default:We(e,t);}}function Ke(e,t){const s=t.tagName,a=t.tagID;for(let t=e.openElements.stackTop;t>0;t--){const r=e.openElements.items[t],n=e.openElements.tagIDs[t];if(a===n&&(a!==u.UNKNOWN||e.treeAdapter.getTagName(r)===s)){e.openElements.generateImpliedEndTagsWithExclusion(a),e.openElements.stackTop>=t&&e.openElements.shortenToLength(t);break}if(e._isSpecialElement(r,n))break}}function Ve(e,t){switch(t.tagID){case u.A:case u.B:case u.I:case u.S:case u.U:case u.EM:case u.TT:case u.BIG:case u.CODE:case u.FONT:case u.NOBR:case u.SMALL:case u.STRIKE:case u.STRONG:ge(e,t);break;case u.P:!function(e){e.openElements.hasInButtonScope(u.P)||e._insertFakeElement(N.P,u.P),e._closePElement();}(e);break;case u.DL:case u.UL:case u.OL:case u.DIR:case u.DIV:case u.NAV:case u.PRE:case u.MAIN:case u.MENU:case u.ASIDE:case u.BUTTON:case u.CENTER:case u.FIGURE:case u.FOOTER:case u.HEADER:case u.HGROUP:case u.DIALOG:case u.ADDRESS:case u.ARTICLE:case u.DETAILS:case u.SECTION:case u.SUMMARY:case u.LISTING:case u.FIELDSET:case u.BLOCKQUOTE:case u.FIGCAPTION:!function(e,t){const s=t.tagID;e.openElements.hasInScope(s)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(s));}(e,t);break;case u.LI:!function(e){e.openElements.hasInListItemScope(u.LI)&&(e.openElements.generateImpliedEndTagsWithExclusion(u.LI),e.openElements.popUntilTagNamePopped(u.LI));}(e);break;case u.DD:case u.DT:!function(e,t){const s=t.tagID;e.openElements.hasInScope(s)&&(e.openElements.generateImpliedEndTagsWithExclusion(s),e.openElements.popUntilTagNamePopped(s));}(e,t);break;case u.H1:case u.H2:case u.H3:case u.H4:case u.H5:case u.H6:!function(e){e.openElements.hasNumberedHeaderInScope()&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilNumberedHeaderPopped());}(e);break;case u.BR:!function(e){e._reconstructActiveFormattingElements(),e._insertFakeElement(N.BR,u.BR),e.openElements.pop(),e.framesetOk=!1;}(e);break;case u.BODY:!function(e,t){if(e.openElements.hasInScope(u.BODY)&&(e.insertionMode=de.AFTER_BODY,e.options.sourceCodeLocationInfo)){const s=e.openElements.tryPeekProperlyNestedBodyElement();s&&e._setEndLocation(s,t);}}(e,t);break;case u.HTML:!function(e,t){e.openElements.hasInScope(u.BODY)&&(e.insertionMode=de.AFTER_BODY,At(e,t));}(e,t);break;case u.FORM:!function(e){const t=e.openElements.tmplCount>0,{formElement:s}=e;t||(e.formElement=null),(s||t)&&e.openElements.hasInScope(u.FORM)&&(e.openElements.generateImpliedEndTags(),t?e.openElements.popUntilTagNamePopped(u.FORM):s&&e.openElements.remove(s));}(e);break;case u.APPLET:case u.OBJECT:case u.MARQUEE:!function(e,t){const s=t.tagID;e.openElements.hasInScope(s)&&(e.openElements.generateImpliedEndTags(),e.openElements.popUntilTagNamePopped(s),e.activeFormattingElements.clearToLastMarker());}(e,t);break;case u.TEMPLATE:Fe(e,t);break;default:Ke(e,t);}}function ze(e,t){e.tmplInsertionModeStack.length>0?_t(e,t):ke(e,t);}function je(e,t){if(Ne.has(e.openElements.currentTagId))switch(e.pendingCharacterTokens.length=0,e.hasNonWhitespacePendingCharacterToken=!1,e.originalInsertionMode=e.insertionMode,e.insertionMode=de.IN_TABLE_TEXT,t.type){case h.CHARACTER:tt(e,t);break;case h.WHITESPACE_CHARACTER:et(e,t);}else $e(e,t);}function Je(e,t){switch(t.tagID){case u.TD:case u.TH:case u.TR:!function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(N.TBODY,u.TBODY),e.insertionMode=de.IN_TABLE_BODY,it(e,t);}(e,t);break;case u.STYLE:case u.SCRIPT:case u.TEMPLATE:He(e,t);break;case u.COL:!function(e,t){e.openElements.clearBackToTableContext(),e._insertFakeElement(N.COLGROUP,u.COLGROUP),e.insertionMode=de.IN_COLUMN_GROUP,rt(e,t);}(e,t);break;case u.FORM:!function(e,t){e.formElement||0!==e.openElements.tmplCount||(e._insertElement(t,p.HTML),e.formElement=e.openElements.current,e.openElements.pop());}(e,t);break;case u.TABLE:!function(e,t){e.openElements.hasInTableScope(u.TABLE)&&(e.openElements.popUntilTagNamePopped(u.TABLE),e._resetInsertionMode(),e._processStartTag(t));}(e,t);break;case u.TBODY:case u.TFOOT:case u.THEAD:!function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,p.HTML),e.insertionMode=de.IN_TABLE_BODY;}(e,t);break;case u.INPUT:!function(e,t){Qe(t)?e._appendElement(t,p.HTML):$e(e,t),t.ackSelfClosing=!0;}(e,t);break;case u.CAPTION:!function(e,t){e.openElements.clearBackToTableContext(),e.activeFormattingElements.insertMarker(),e._insertElement(t,p.HTML),e.insertionMode=de.IN_CAPTION;}(e,t);break;case u.COLGROUP:!function(e,t){e.openElements.clearBackToTableContext(),e._insertElement(t,p.HTML),e.insertionMode=de.IN_COLUMN_GROUP;}(e,t);break;default:$e(e,t);}}function Ze(e,t){switch(t.tagID){case u.TABLE:e.openElements.hasInTableScope(u.TABLE)&&(e.openElements.popUntilTagNamePopped(u.TABLE),e._resetInsertionMode());break;case u.TEMPLATE:Fe(e,t);break;case u.BODY:case u.CAPTION:case u.COL:case u.COLGROUP:case u.HTML:case u.TBODY:case u.TD:case u.TFOOT:case u.TH:case u.THEAD:case u.TR:break;default:$e(e,t);}}function $e(e,t){const s=e.fosterParentingEnabled;e.fosterParentingEnabled=!0,we(e,t),e.fosterParentingEnabled=s;}function et(e,t){e.pendingCharacterTokens.push(t);}function tt(e,t){e.pendingCharacterTokens.push(t),e.hasNonWhitespacePendingCharacterToken=!0;}function st(e,t){let s=0;if(e.hasNonWhitespacePendingCharacterToken)for(;s<e.pendingCharacterTokens.length;s++)$e(e,e.pendingCharacterTokens[s]);else for(;s<e.pendingCharacterTokens.length;s++)e._insertCharacters(e.pendingCharacterTokens[s]);e.insertionMode=e.originalInsertionMode,e._processToken(t);}const at=new Set([u.CAPTION,u.COL,u.COLGROUP,u.TBODY,u.TD,u.TFOOT,u.TH,u.THEAD,u.TR]);function rt(e,t){switch(t.tagID){case u.HTML:Xe(e,t);break;case u.COL:e._appendElement(t,p.HTML),t.ackSelfClosing=!0;break;case u.TEMPLATE:He(e,t);break;default:nt(e,t);}}function nt(e,t){e.openElements.currentTagId===u.COLGROUP&&(e.openElements.pop(),e.insertionMode=de.IN_TABLE,e._processToken(t));}function it(e,t){switch(t.tagID){case u.TR:e.openElements.clearBackToTableBodyContext(),e._insertElement(t,p.HTML),e.insertionMode=de.IN_ROW;break;case u.TH:case u.TD:e.openElements.clearBackToTableBodyContext(),e._insertFakeElement(N.TR,u.TR),e.insertionMode=de.IN_ROW,ct(e,t);break;case u.CAPTION:case u.COL:case u.COLGROUP:case u.TBODY:case u.TFOOT:case u.THEAD:e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=de.IN_TABLE,Je(e,t));break;default:Je(e,t);}}function ot(e,t){const s=t.tagID;switch(t.tagID){case u.TBODY:case u.TFOOT:case u.THEAD:e.openElements.hasInTableScope(s)&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=de.IN_TABLE);break;case u.TABLE:e.openElements.hasTableBodyContextInTableScope()&&(e.openElements.clearBackToTableBodyContext(),e.openElements.pop(),e.insertionMode=de.IN_TABLE,Ze(e,t));break;case u.BODY:case u.CAPTION:case u.COL:case u.COLGROUP:case u.HTML:case u.TD:case u.TH:case u.TR:break;default:Ze(e,t);}}function ct(e,t){switch(t.tagID){case u.TH:case u.TD:e.openElements.clearBackToTableRowContext(),e._insertElement(t,p.HTML),e.insertionMode=de.IN_CELL,e.activeFormattingElements.insertMarker();break;case u.CAPTION:case u.COL:case u.COLGROUP:case u.TBODY:case u.TFOOT:case u.THEAD:case u.TR:e.openElements.hasInTableScope(u.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=de.IN_TABLE_BODY,it(e,t));break;default:Je(e,t);}}function Et(e,t){switch(t.tagID){case u.TR:e.openElements.hasInTableScope(u.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=de.IN_TABLE_BODY);break;case u.TABLE:e.openElements.hasInTableScope(u.TR)&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=de.IN_TABLE_BODY,ot(e,t));break;case u.TBODY:case u.TFOOT:case u.THEAD:(e.openElements.hasInTableScope(t.tagID)||e.openElements.hasInTableScope(u.TR))&&(e.openElements.clearBackToTableRowContext(),e.openElements.pop(),e.insertionMode=de.IN_TABLE_BODY,ot(e,t));break;case u.BODY:case u.CAPTION:case u.COL:case u.COLGROUP:case u.HTML:case u.TD:case u.TH:break;default:Ze(e,t);}}function Tt(e,t){switch(t.tagID){case u.HTML:Xe(e,t);break;case u.OPTION:e.openElements.currentTagId===u.OPTION&&e.openElements.pop(),e._insertElement(t,p.HTML);break;case u.OPTGROUP:e.openElements.currentTagId===u.OPTION&&e.openElements.pop(),e.openElements.currentTagId===u.OPTGROUP&&e.openElements.pop(),e._insertElement(t,p.HTML);break;case u.INPUT:case u.KEYGEN:case u.TEXTAREA:case u.SELECT:e.openElements.hasInSelectScope(u.SELECT)&&(e.openElements.popUntilTagNamePopped(u.SELECT),e._resetInsertionMode(),t.tagID!==u.SELECT&&e._processStartTag(t));break;case u.SCRIPT:case u.TEMPLATE:He(e,t);}}function ht(e,t){switch(t.tagID){case u.OPTGROUP:e.openElements.stackTop>0&&e.openElements.currentTagId===u.OPTION&&e.openElements.tagIDs[e.openElements.stackTop-1]===u.OPTGROUP&&e.openElements.pop(),e.openElements.currentTagId===u.OPTGROUP&&e.openElements.pop();break;case u.OPTION:e.openElements.currentTagId===u.OPTION&&e.openElements.pop();break;case u.SELECT:e.openElements.hasInSelectScope(u.SELECT)&&(e.openElements.popUntilTagNamePopped(u.SELECT),e._resetInsertionMode());break;case u.TEMPLATE:Fe(e,t);}}function _t(e,t){e.openElements.tmplCount>0?(e.openElements.popUntilTagNamePopped(u.TEMPLATE),e.activeFormattingElements.clearToLastMarker(),e.tmplInsertionModeStack.shift(),e._resetInsertionMode(),e.onEof(t)):ke(e,t);}function At(e,t){var s;if(t.tagID===u.HTML){if(e.fragmentContext||(e.insertionMode=de.AFTER_AFTER_BODY),e.options.sourceCodeLocationInfo&&e.openElements.tagIDs[0]===u.HTML){e._setEndLocation(e.openElements.items[0],t);const a=e.openElements.items[1];a&&!(null===(s=e.treeAdapter.getNodeSourceCodeLocation(a))||void 0===s?void 0:s.endTag)&&e._setEndLocation(a,t);}}else lt(e,t);}function lt(e,t){e.insertionMode=de.IN_BODY,we(e,t);}function mt(e,t){e.insertionMode=de.IN_BODY,we(e,t);}function pt(e){for(;e.treeAdapter.getNamespaceURI(e.openElements.current)!==p.HTML&&!e._isIntegrationPoint(e.openElements.currentTagId,e.openElements.current);)e.openElements.pop();}return new Set([N.AREA,N.BASE,N.BASEFONT,N.BGSOUND,N.BR,N.COL,N.EMBED,N.FRAME,N.HR,N.IMG,N.INPUT,N.KEYGEN,N.LINK,N.META,N.PARAM,N.SOURCE,N.TRACK,N.WBR]),e.parse=function(e,t){return Ce.parse(e,t)},e.parseFragment=function(e,t,s){"string"==typeof e&&(s=t,t=e,e=null);const a=Ce.getFragmentParser(e,s);return a.tokenizer.write(t,!0),a.getFragment()},Object.defineProperty(e,"__esModule",{value:!0}),e}({});const parse=e.parse;const parseFragment=e.parseFragment;
const docParser = new WeakMap();
function parseDocumentUtil(ownerDocument, html) {
const doc = parse(html.trim(), getParser(ownerDocument));
doc.documentElement = doc.firstElementChild;
doc.head = doc.documentElement.firstElementChild;
doc.body = doc.head.nextElementSibling;
return doc;
}
function parseFragmentUtil(ownerDocument, html) {
if (typeof html === 'string') {
html = html.trim();
}
else {
html = '';
}
const frag = parseFragment(html, getParser(ownerDocument));
return frag;
}
function getParser(ownerDocument) {
let parseOptions = docParser.get(ownerDocument);
if (parseOptions != null) {
return parseOptions;
}
const treeAdapter = {
createDocument() {
const doc = ownerDocument.createElement("#document" /* NODE_NAMES.DOCUMENT_NODE */);
doc['x-mode'] = 'no-quirks';
return doc;
},
setNodeSourceCodeLocation(node, location) {
node.sourceCodeLocation = location;
},
getNodeSourceCodeLocation(node) {
return node.sourceCodeLocation;
},
createDocumentFragment() {
return ownerDocument.createDocumentFragment();
},
createElement(tagName, namespaceURI, attrs) {
const elm = ownerDocument.createElementNS(namespaceURI, tagName);
for (let i = 0; i < attrs.length; i++) {
const attr = attrs[i];
if (attr.namespace == null || attr.namespace === 'http://www.w3.org/1999/xhtml') {
elm.setAttribute(attr.name, attr.value);
}
else {
elm.setAttributeNS(attr.namespace, attr.name, attr.value);
}
}
return elm;
},
createCommentNode(data) {
return ownerDocument.createComment(data);
},
appendChild(parentNode, newNode) {
parentNode.appendChild(newNode);
},
insertBefore(parentNode, newNode, referenceNode) {
parentNode.insertBefore(newNode, referenceNode);
},
setTemplateContent(templateElement, contentElement) {
templateElement.content = contentElement;
},
getTemplateContent(templateElement) {
return templateElement.content;
},
setDocumentType(doc, name, publicId, systemId) {
let doctypeNode = doc.childNodes.find((n) => n.nodeType === 10 /* NODE_TYPES.DOCUMENT_TYPE_NODE */);
if (doctypeNode == null) {
doctypeNode = ownerDocument.createDocumentTypeNode();
doc.insertBefore(doctypeNode, doc.firstChild);
}
doctypeNode.nodeValue = '!DOCTYPE';
doctypeNode['x-name'] = name;
doctypeNode['x-publicId'] = publicId;
doctypeNode['x-systemId'] = systemId;
},
setDocumentMode(doc, mode) {
doc['x-mode'] = mode;
},
getDocumentMode(doc) {
return doc['x-mode'];
},
detachNode(node) {
node.remove();
},
insertText(parentNode, text) {
const lastChild = parentNode.lastChild;
if (lastChild != null && lastChild.nodeType === 3 /* NODE_TYPES.TEXT_NODE */) {
lastChild.nodeValue += text;
}
else {
parentNode.appendChild(ownerDocument.createTextNode(text));
}
},
insertTextBefore(parentNode, text, referenceNode) {
const prevNode = parentNode.childNodes[parentNode.childNodes.indexOf(referenceNode) - 1];
if (prevNode != null && prevNode.nodeType === 3 /* NODE_TYPES.TEXT_NODE */) {
prevNode.nodeValue += text;
}
else {
parentNode.insertBefore(ownerDocument.createTextNode(text), referenceNode);
}
},
adoptAttributes(recipient, attrs) {
for (let i = 0; i < attrs.length; i++) {
const attr = attrs[i];
if (recipient.hasAttributeNS(attr.namespace, attr.name) === false) {
recipient.setAttributeNS(attr.namespace, attr.name, attr.value);
}
}
},
getFirstChild(node) {
return node.childNodes[0];
},
getChildNodes(node) {
return node.childNodes;
},
getParentNode(node) {
return node.parentNode;
},
getAttrList(element) {
const attrs = element.attributes.__items.map((attr) => {
return {
name: attr.name,
value: attr.value,
namespace: attr.namespaceURI,
prefix: null,
};
});
return attrs;
},
getTagName(element) {
if (element.namespaceURI === 'http://www.w3.org/1999/xhtml') {
return element.nodeName.toLowerCase();
}
else {
return element.nodeName;
}
},
getNamespaceURI(element) {
// mock-doc widens the type of an element's namespace uri to 'string | null'
// we use a type assertion here to adhere to parse5's type definitions
return element.namespaceURI;
},
getTextNodeContent(textNode) {
return textNode.nodeValue;
},
getCommentNodeContent(commentNode) {
return commentNode.nodeValue;
},
getDocumentTypeNodeName(doctypeNode) {
return doctypeNode['x-name'];
},
getDocumentTypeNodePublicId(doctypeNode) {
return doctypeNode['x-publicId'];
},
getDocumentTypeNodeSystemId(doctypeNode) {
return doctypeNode['x-systemId'];
},
// @ts-ignore - a `MockNode` will never be assignable to a `TreeAdapterTypeMap['text']`. As a result, we cannot
// complete this function signature
isTextNode(node) {
return node.nodeType === 3 /* NODE_TYPES.TEXT_NODE */;
},
// @ts-ignore - a `MockNode` will never be assignable to a `TreeAdapterTypeMap['comment']`. As a result, we cannot
// complete this function signature (which requires its return type to be a type predicate)
isCommentNode(node) {
return node.nodeType === 8 /* NODE_TYPES.COMMENT_NODE */;
},
// @ts-ignore - a `MockNode` will never be assignable to a `TreeAdapterTypeMap['document']`. As a result, we cannot
// complete this function signature (which requires its return type to be a type predicate)
isDocumentTypeNode(node) {
return node.nodeType === 10 /* NODE_TYPES.DOCUMENT_TYPE_NODE */;
},
// @ts-ignore - a `MockNode` will never be assignable to a `TreeAdapterTypeMap['element']`. As a result, we cannot
// complete this function signature (which requires its return type to be a type predicate)
isElementNode(node) {
return node.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */;
},
};
parseOptions = {
treeAdapter: treeAdapter,
};
docParser.set(ownerDocument, parseOptions);
return parseOptions;
}
// Sizzle 2.3.9
const Sizzle = (function() {
const window = {
document: {
createElement() {
return {};
},
nodeType: 9,
documentElement: {
nodeType: 1,
nodeName: 'HTML'
}
}
};
const module = { exports: {} };
/*! Sizzle v2.3.9 | (c) JS Foundation and other contributors | js.foundation */
!function(e){var t,n,r,i,o,u,l,a,s,c,f,d,p,h,g,m,y,v,w,b="sizzle"+1*new Date,N=e.document,C=0,x=0,S=ae(),E=ae(),A=ae(),D=ae(),T=function(e,t){return e===t&&(f=!0),0},L={}.hasOwnProperty,q=[],I=q.pop,B=q.push,R=q.push,k=q.slice,$=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return -1},H="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",P="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",z="\\["+M+"*("+P+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+P+"))|)"+M+"*\\]",F=":("+P+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+z+")*)|.*)\\)|)",O=new RegExp(M+"+","g"),j=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),G=new RegExp("^"+M+"*,"+M+"*"),U=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),V=new RegExp(M+"|>"),X=new RegExp(F),J=new RegExp("^"+P+"$"),K={ID:new RegExp("^#("+P+")"),CLASS:new RegExp("^\\.("+P+")"),TAG:new RegExp("^("+P+"|[*])"),ATTR:new RegExp("^"+z),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+H+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/HTML$/i,W=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){d();},ue=ve(function(e){return !0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{R.apply(q=k.call(N.childNodes),N.childNodes),q[N.childNodes.length].nodeType;}catch(e){R={apply:q.length?function(e,t){B.apply(e,k.call(t));}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1;}};}function le(e,t,r,i){var o,l,s,c,f,h,y,v=t&&t.ownerDocument,N=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==N&&9!==N&&11!==N)return r;if(!i&&(d(t),t=t||p,g)){if(11!==N&&(f=_.exec(e)))if(o=f[1]){if(9===N){if(!(s=t.getElementById(o)))return r;if(s.id===o)return r.push(s),r}else if(v&&(s=v.getElementById(o))&&w(t,s)&&s.id===o)return r.push(s),r}else {if(f[2])return R.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return R.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!D[e+" "]&&(!m||!m.test(e))&&(1!==N||"object"!==t.nodeName.toLowerCase())){if(y=e,v=t,1===N&&(V.test(e)||U.test(e))){(v=ee.test(e)&&ge(t.parentNode)||t)===t&&n.scope||((c=t.getAttribute("id"))?c=c.replace(re,ie):t.setAttribute("id",c=b)),l=(h=u(e)).length;while(l--)h[l]=(c?"#"+c:":scope")+" "+ye(h[l]);y=h.join(",");}try{if(n.cssSupportsSelector&&!CSS.supports("selector(:is("+y+"))"))throw new Error;return R.apply(r,v.querySelectorAll(y)),r}catch(t){D(e,!0);}finally{c===b&&t.removeAttribute("id");}}}return a(e.replace(j,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ce(e){var t=p.createElement("fieldset");try{return !!e(t)}catch(e){return !1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null;}}function fe(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t;}function de(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return -1;return e?1:-1}function pe(e){return function(t){return "form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ue(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),u=o.length;while(u--)n[i=o[u]]&&(n[i]=!(r[i]=n[i]));})})}function ge(e){return e&&void 0!==e.getElementsByTagName&&e}n=le.support={},o=le.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return !Q.test(t||n&&n.nodeName||"HTML")},d=le.setDocument=function(e){var t,i,u=e?e.ownerDocument||e:N;return u!=p&&9===u.nodeType&&u.documentElement?(p=u,h=p.documentElement,g=!o(p),N!=p&&(i=p.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",oe,!1):i.attachEvent&&i.attachEvent("onunload",oe)),n.scope=ce(function(e){return h.appendChild(e).appendChild(p.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),n.cssSupportsSelector=ce(function(){return CSS.supports("selector(*)")&&p.querySelectorAll(":is(:jqfake)")&&!CSS.supports("selector(:is(*,:jqfake))")}),n.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ce(function(e){return e.appendChild(p.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Z.test(p.getElementsByClassName),n.getById=ce(function(e){return h.appendChild(e).id=b,!p.getElementsByName||!p.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return [o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return [o]}return []}}),r.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},y=[],m=[],(n.qsa=Z.test(p.querySelectorAll))&&(ce(function(e){var t;h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+M+"*(?:value|"+H+")"),e.querySelectorAll("[id~="+b+"-]").length||m.push("~="),(t=p.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll("\\\f"),m.push("[\\r\\n\\f]");}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=p.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:");})),(n.matchesSelector=Z.test(v=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ce(function(e){n.disconnectedMatch=v.call(e,"*"),v.call(e,"[s!='']:x"),y.push("!=",F);}),n.cssSupportsSelector||m.push(":has"),m=m.length&&new RegExp(m.join("|")),y=y.length&&new RegExp(y.join("|")),t=Z.test(h.compareDocumentPosition),w=t||Z.test(h.contains)?function(e,t){var n=9===e.nodeType&&e.documentElement||e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return !0;return !1},T=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e==p||e.ownerDocument==N&&w(N,e)?-1:t==p||t.ownerDocument==N&&w(N,t)?1:c?$(c,e)-$(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,u=[e],l=[t];if(!i||!o)return e==p?-1:t==p?1:i?-1:o?1:c?$(c,e)-$(c,t):0;if(i===o)return de(e,t);n=e;while(n=n.parentNode)u.unshift(n);n=t;while(n=n.parentNode)l.unshift(n);while(u[r]===l[r])r++;return r?de(u[r],l[r]):u[r]==N?-1:l[r]==N?1:0},p):p},le.matches=function(e,t){return le(e,null,null,t)},le.matchesSelector=function(e,t){if(d(e),n.matchesSelector&&g&&!D[t+" "]&&(!y||!y.test(t))&&(!m||!m.test(t)))try{var r=v.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){D(t,!0);}return le(t,p,null,[e]).length>0},le.contains=function(e,t){return (e.ownerDocument||e)!=p&&d(e),w(e,t)},le.attr=function(e,t){(e.ownerDocument||e)!=p&&d(e);var i=r.attrHandle[t.toLowerCase()],o=i&&L.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},le.escape=function(e){return (e+"").replace(re,ie)},le.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},le.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(T),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1);}return c=null,e},i=le.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e);}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=le.selectors={cacheLength:50,createPseudo:se,match:K,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||le.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&le.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return K.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=u(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return "*"===e?function(){return !0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=S[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&S(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=le.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace(O," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),u="last"!==e.slice(-4),l="of-type"===t;return 1===r&&0===i?function(e){return !!e.parentNode}:function(t,n,a){var s,c,f,d,p,h,g=o!==u?"nextSibling":"previousSibling",m=t.parentNode,y=l&&t.nodeName.toLowerCase(),v=!a&&!l,w=!1;if(m){if(o){while(g){d=t;while(d=d[g])if(l?d.nodeName.toLowerCase()===y:1===d.nodeType)return !1;h=g="only"===e&&!h&&"nextSibling";}return !0}if(h=[u?m.firstChild:m.lastChild],u&&v){w=(p=(s=(c=(f=(d=m)[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===C&&s[1])&&s[2],d=p&&m.childNodes[p];while(d=++p&&d&&d[g]||(w=p=0)||h.pop())if(1===d.nodeType&&++w&&d===t){c[e]=[C,p,w];break}}else if(v&&(w=p=(s=(c=(f=(d=t)[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]||[])[0]===C&&s[1]),!1===w)while(d=++p&&d&&d[g]||(w=p=0)||h.pop())if((l?d.nodeName.toLowerCase()===y:1===d.nodeType)&&++w&&(v&&((c=(f=d[b]||(d[b]={}))[d.uniqueID]||(f[d.uniqueID]={}))[e]=[C,w]),d===t))break;return (w-=i)===r||w%r==0&&w/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||le.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),u=o.length;while(u--)e[r=$(e,o[u])]=!(n[r]=o[u]);}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=l(e.replace(j,"$1"));return r[b]?se(function(e,t,n,i){var o,u=r(e,null,i,[]),l=e.length;while(l--)(o=u[l])&&(e[l]=!(t[l]=o));}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return le(e,t).length>0}}),contains:se(function(e){return e=e.replace(te,ne),function(t){return (t.textContent||i(t)).indexOf(e)>-1}}),lang:se(function(e){return J.test(e||"")||le.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return (n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return !1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:pe(!1),disabled:pe(!0),checked:function(e){var t=e.nodeName.toLowerCase();return "input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return !1;return !0},parent:function(e){return !r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return W.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return "input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return "input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return [0]}),last:he(function(e,t){return [t-1]}),eq:he(function(e,t,n){return [n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n>t?t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in {radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=function(e){return function(t){return "input"===t.nodeName.toLowerCase()&&t.type===e}}(t);for(t in {submit:!0,reset:!0})r.pseudos[t]=function(e){return function(t){var n=t.nodeName.toLowerCase();return ("input"===n||"button"===n)&&t.type===e}}(t);function me(){}me.prototype=r.filters=r.pseudos,r.setFilters=new me,u=le.tokenize=function(e,t){var n,i,o,u,l,a,s,c=E[e+" "];if(c)return t?0:c.slice(0);l=e,a=[],s=r.preFilter;while(l){n&&!(i=G.exec(l))||(i&&(l=l.slice(i[0].length)||l),a.push(o=[])),n=!1,(i=U.exec(l))&&(n=i.shift(),o.push({value:n,type:i[0].replace(j," ")}),l=l.slice(n.length));for(u in r.filter)!(i=K[u].exec(l))||s[u]&&!(i=s[u](i))||(n=i.shift(),o.push({value:n,type:u,matches:i}),l=l.slice(n.length));if(!n)break}return t?l.length:l?le.error(e):E(e,a).slice(0)};function ye(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function ve(e,t,n){var r=t.dir,i=t.next,o=i||r,u=n&&"parentNode"===o,l=x++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||u)return e(t,n,i);return !1}:function(t,n,a){var s,c,f,d=[C,l];if(a){while(t=t[r])if((1===t.nodeType||u)&&e(t,n,a))return !0}else while(t=t[r])if(1===t.nodeType||u)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else {if((s=c[o])&&s[0]===C&&s[1]===l)return d[2]=s[2];if(c[o]=d,d[2]=e(t,n,a))return !0}return !1}}function we(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return !1;return !0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)le(e,t[r],n);return n}function Ne(e,t,n,r,i){for(var o,u=[],l=0,a=e.length,s=null!=t;l<a;l++)(o=e[l])&&(n&&!n(o,r,i)||(u.push(o),s&&t.push(l)));return u}function Ce(e,t,n,r,i,o){return r&&!r[b]&&(r=Ce(r)),i&&!i[b]&&(i=Ce(i,o)),se(function(o,u,l,a){var s,c,f,d=[],p=[],h=u.length,g=o||be(t||"*",l.nodeType?[l]:l,[]),m=!e||!o&&t?g:Ne(g,d,e,l,a),y=n?i||(o?e:h||r)?[]:u:m;if(n&&n(m,y,l,a),r){s=Ne(y,p),r(s,[],l,a),c=s.length;while(c--)(f=s[c])&&(y[p[c]]=!(m[p[c]]=f));}if(o){if(i||e){if(i){s=[],c=y.length;while(c--)(f=y[c])&&s.push(m[c]=f);i(null,y=[],s,a);}c=y.length;while(c--)(f=y[c])&&(s=i?$(o,f):d[c])>-1&&(o[s]=!(u[s]=f));}}else y=Ne(y===u?y.splice(h,y.length):y),i?i(null,u,y,a):R.apply(u,y);})}function xe(e){for(var t,n,i,o=e.length,u=r.relative[e[0].type],l=u||r.relative[" "],a=u?1:0,c=ve(function(e){return e===t},l,!0),f=ve(function(e){return $(t,e)>-1},l,!0),d=[function(e,n,r){var i=!u&&(r||n!==s)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];a<o;a++)if(n=r.relative[e[a].type])d=[ve(we(d),n)];else {if((n=r.filter[e[a].type].apply(null,e[a].matches))[b]){for(i=++a;i<o;i++)if(r.relative[e[i].type])break;return Ce(a>1&&we(d),a>1&&ye(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(j,"$1"),n,a<i&&xe(e.slice(a,i)),i<o&&xe(e=e.slice(i)),i<o&&ye(e))}d.push(n);}return we(d)}function Se(e,t){var n=t.length>0,i=e.length>0,o=function(o,u,l,a,c){var f,h,m,y=0,v="0",w=o&&[],b=[],N=s,x=o||i&&r.find.TAG("*",c),S=C+=null==N?1:Math.random()||.1,E=x.length;for(c&&(s=u==p||u||c);v!==E&&null!=(f=x[v]);v++){if(i&&f){h=0,u||f.ownerDocument==p||(d(f),l=!g);while(m=e[h++])if(m(f,u||p,l)){a.push(f);break}c&&(C=S);}n&&((f=!m&&f)&&y--,o&&w.push(f));}if(y+=v,n&&v!==y){h=0;while(m=t[h++])m(w,b,u,l);if(o){if(y>0)while(v--)w[v]||b[v]||(b[v]=I.call(a));b=Ne(b);}R.apply(a,b),c&&!o&&b.length>0&&y+t.length>1&&le.uniqueSort(a);}return c&&(C=S,s=N),w};return n?se(o):o}l=le.compile=function(e,t){var n,r=[],i=[],o=A[e+" "];if(!o){t||(t=u(e)),n=t.length;while(n--)(o=xe(t[n]))[b]?r.push(o):i.push(o);(o=A(e,Se(i,r))).selector=e;}return o},a=le.select=function(e,t,n,i){var o,a,s,c,f,d="function"==typeof e&&e,p=!i&&u(e=d.selector||e);if(n=n||[],1===p.length){if((a=p[0]=p[0].slice(0)).length>2&&"ID"===(s=a[0]).type&&9===t.nodeType&&g&&r.relative[a[1].type]){if(!(t=(r.find.ID(s.matches[0].replace(te,ne),t)||[])[0]))return n;d&&(t=t.parentNode),e=e.slice(a.shift().value.length);}o=K.needsContext.test(e)?0:a.length;while(o--){if(s=a[o],r.relative[c=s.type])break;if((f=r.find[c])&&(i=f(s.matches[0].replace(te,ne),ee.test(a[0].type)&&ge(t.parentNode)||t))){if(a.splice(o,1),!(e=i.length&&ye(a)))return R.apply(n,i),n;break}}}return (d||l(e,p))(i,t,!g,n,!t||ee.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(T).join("")===b,n.detectDuplicates=!!f,d(),n.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(p.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(H,function(e,t,n){var r;if(!n)return !0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null});var Ee=e.Sizzle;le.noConflict=function(){return e.Sizzle===le&&(e.Sizzle=Ee),le},"function"==typeof define&&define.amd?define(function(){return le}):"undefined"!=typeof module&&module.exports?module.exports=le:e.Sizzle=le;}(window);
//# sourceMappingURL=sizzle.min.map
return module.exports;
})();
function matches(selector, elm) {
const r = Sizzle.matches(selector, [elm]);
return r.length > 0;
}
function selectOne(selector, elm) {
const r = Sizzle(selector, elm);
return r[0] || null;
}
function selectAll(selector, elm) {
return Sizzle(selector, elm);
}
function serializeNodeToHtml(elm, opts = {}) {
const output = {
currentLineWidth: 0,
indent: 0,
isWithinBody: false,
text: [],
};
if (opts.prettyHtml) {
if (typeof opts.indentSpaces !== 'number') {
opts.indentSpaces = 2;
}
if (typeof opts.newLines !== 'boolean') {
opts.newLines = true;
}
opts.approximateLineWidth = -1;
}
else {
opts.prettyHtml = false;
if (typeof opts.newLines !== 'boolean') {
opts.newLines = false;
}
if (typeof opts.indentSpaces !== 'number') {
opts.indentSpaces = 0;
}
}
if (typeof opts.approximateLineWidth !== 'number') {
opts.approximateLineWidth = -1;
}
if (typeof opts.removeEmptyAttributes !== 'boolean') {
opts.removeEmptyAttributes = true;
}
if (typeof opts.removeAttributeQuotes !== 'boolean') {
opts.removeAttributeQuotes = false;
}
if (typeof opts.removeBooleanAttributeQuotes !== 'boolean') {
opts.removeBooleanAttributeQuotes = false;
}
if (typeof opts.removeHtmlComments !== 'boolean') {
opts.removeHtmlComments = false;
}
if (typeof opts.serializeShadowRoot !== 'boolean') {
opts.serializeShadowRoot = false;
}
if (opts.outerHtml) {
serializeToHtml(elm, opts, output, false);
}
else {
for (let i = 0, ii = elm.childNodes.length; i < ii; i++) {
serializeToHtml(elm.childNodes[i], opts, output, false);
}
}
if (output.text[0] === '\n') {
output.text.shift();
}
if (output.text[output.text.length - 1] === '\n') {
output.text.pop();
}
return output.text.join('');
}
function serializeToHtml(node, opts, output, isShadowRoot) {
if (node.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */ || isShadowRoot) {
const tagName = isShadowRoot ? 'mock:shadow-root' : getTagName(node);
if (tagName === 'body') {
output.isWithinBody = true;
}
const ignoreTag = opts.excludeTags != null && opts.excludeTags.includes(tagName);
if (ignoreTag === false) {
const isWithinWhitespaceSensitiveNode = opts.newLines || opts.indentSpaces > 0 ? isWithinWhitespaceSensitive(node) : false;
if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
output.text.push('\n');
output.currentLineWidth = 0;
}
if (opts.indentSpaces > 0 && !isWithinWhitespaceSensitiveNode) {
for (let i = 0; i < output.indent; i++) {
output.text.push(' ');
}
output.currentLineWidth += output.indent;
}
output.text.push('<' + tagName);
output.currentLineWidth += tagName.length + 1;
const attrsLength = node.attributes.length;
const attributes = opts.prettyHtml && attrsLength > 1
? cloneAttributes(node.attributes, true)
: node.attributes;
for (let i = 0; i < attrsLength; i++) {
const attr = attributes.item(i);
const attrName = attr.name;
if (attrName === 'style') {
continue;
}
let attrValue = attr.value;
if (opts.removeEmptyAttributes && attrValue === '' && REMOVE_EMPTY_ATTR.has(attrName)) {
continue;
}
const attrNamespaceURI = attr.namespaceURI;
if (attrNamespaceURI == null) {
output.currentLineWidth += attrName.length + 1;
if (opts.approximateLineWidth > 0 && output.currentLineWidth > opts.approximateLineWidth) {
output.text.push('\n' + attrName);
output.currentLineWidth = 0;
}
else {
output.text.push(' ' + attrName);
}
}
else if (attrNamespaceURI === 'http://www.w3.org/XML/1998/namespace') {
output.text.push(' xml:' + attrName);
output.currentLineWidth += attrName.length + 5;
}
else if (attrNamespaceURI === 'http://www.w3.org/2000/xmlns/') {
if (attrName !== 'xmlns') {
output.text.push(' xmlns:' + attrName);
output.currentLineWidth += attrName.length + 7;
}
else {
output.text.push(' ' + attrName);
output.currentLineWidth += attrName.length + 1;
}
}
else if (attrNamespaceURI === XLINK_NS) {
output.text.push(' xlink:' + attrName);
output.currentLineWidth += attrName.length + 7;
}
else {
output.text.push(' ' + attrNamespaceURI + ':' + attrName);
output.currentLineWidth += attrNamespaceURI.length + attrName.length + 2;
}
if (opts.prettyHtml && attrName === 'class') {
attrValue = attr.value = attrValue
.split(' ')
.filter((t) => t !== '')
.sort()
.join(' ')
.trim();
}
if (attrValue === '') {
if (opts.removeBooleanAttributeQuotes && BOOLEAN_ATTR.has(attrName)) {
continue;
}
if (opts.removeEmptyAttributes && attrName.startsWith('data-')) {
continue;
}
}
if (opts.removeAttributeQuotes && CAN_REMOVE_ATTR_QUOTES.test(attrValue)) {
output.text.push('=' + escapeString(attrValue, true));
output.currentLineWidth += attrValue.length + 1;
}
else {
output.text.push('="' + escapeString(attrValue, true) + '"');
output.currentLineWidth += attrValue.length + 3;
}
}
if (node.hasAttribute('style')) {
const cssText = node.style.cssText;
if (opts.approximateLineWidth > 0 &&
output.currentLineWidth + cssText.length + 10 > opts.approximateLineWidth) {
output.text.push(`\nstyle="${cssText}">`);
output.currentLineWidth = 0;
}
else {
output.text.push(` style="${cssText}">`);
output.currentLineWidth += cssText.length + 10;
}
}
else {
output.text.push('>');
output.currentLineWidth += 1;
}
}
if (EMPTY_ELEMENTS.has(tagName) === false) {
if (opts.serializeShadowRoot && node.shadowRoot != null) {
output.indent = output.indent + opts.indentSpaces;
serializeToHtml(node.shadowRoot, opts, output, true);
output.indent = output.indent - opts.indentSpaces;
if (opts.newLines &&
(node.childNodes.length === 0 ||
(node.childNodes.length === 1 &&
node.childNodes[0].nodeType === 3 /* NODE_TYPES.TEXT_NODE */ &&
node.childNodes[0].nodeValue.trim() === ''))) {
output.text.push('\n');
output.currentLineWidth = 0;
for (let i = 0; i < output.indent; i++) {
output.text.push(' ');
}
output.currentLineWidth += output.indent;
}
}
if (opts.excludeTagContent == null || opts.excludeTagContent.includes(tagName) === false) {
const childNodes = tagName === 'template' ? node.content.childNodes : node.childNodes;
const childNodeLength = childNodes.length;
if (childNodeLength > 0) {
if (childNodeLength === 1 &&
childNodes[0].nodeType === 3 /* NODE_TYPES.TEXT_NODE */ &&
(typeof childNodes[0].nodeValue !== 'string' || childNodes[0].nodeValue.trim() === '')) ;
else {
const isWithinWhitespaceSensitiveNode = opts.newLines || opts.indentSpaces > 0 ? isWithinWhitespaceSensitive(node) : false;
if (!isWithinWhitespaceSensitiveNode && opts.indentSpaces > 0 && ignoreTag === false) {
output.indent = output.indent + opts.indentSpaces;
}
for (let i = 0; i < childNodeLength; i++) {
serializeToHtml(childNodes[i], opts, output, false);
}
if (ignoreTag === false) {
if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
output.text.push('\n');
output.currentLineWidth = 0;
}
if (opts.indentSpaces > 0 && !isWithinWhitespaceSensitiveNode) {
output.indent = output.indent - opts.indentSpaces;
for (let i = 0; i < output.indent; i++) {
output.text.push(' ');
}
output.currentLineWidth += output.indent;
}
}
}
}
if (ignoreTag === false) {
output.text.push('</' + tagName + '>');
output.currentLineWidth += tagName.length + 3;
}
}
}
if (opts.approximateLineWidth > 0 && STRUCTURE_ELEMENTS.has(tagName)) {
output.text.push('\n');
output.currentLineWidth = 0;
}
if (tagName === 'body') {
output.isWithinBody = false;
}
}
else if (node.nodeType === 3 /* NODE_TYPES.TEXT_NODE */) {
let textContent = node.nodeValue;
if (typeof textContent === 'string') {
const trimmedTextContent = textContent.trim();
if (trimmedTextContent === '') {
// this text node is whitespace only
if (isWithinWhitespaceSensitive(node)) {
// whitespace matters within this element
// just add the exact text we were given
output.text.push(textContent);
output.currentLineWidth += textContent.length;
}
else if (opts.approximateLineWidth > 0 && !output.isWithinBody) ;
else if (!opts.prettyHtml) {
// this text node is only whitespace, and it's not
// within a whitespace sensitive element like <pre> or <code>
// so replace the entire white space with a single new line
output.currentLineWidth += 1;
if (opts.approximateLineWidth > 0 && output.currentLineWidth > opts.approximateLineWidth) {
// good enough for a new line
// for perf these are all just estimates
// we don't care to ensure exact line lengths
output.text.push('\n');
output.currentLineWidth = 0;
}
else {
// let's keep it all on the same line yet
output.text.push(' ');
}
}
}
else {
// this text node has text content
const isWithinWhitespaceSensitiveNode = opts.newLines || opts.indentSpaces > 0 || opts.prettyHtml ? isWithinWhitespaceSensitive(node) : false;
if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
output.text.push('\n');
output.currentLineWidth = 0;
}
if (opts.indentSpaces > 0 && !isWithinWhitespaceSensitiveNode) {
for (let i = 0; i < output.indent; i++) {
output.text.push(' ');
}
output.currentLineWidth += output.indent;
}
let textContentLength = textContent.length;
if (textContentLength > 0) {
// this text node has text content
const parentTagName = node.parentNode != null && node.parentNode.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */
? node.parentNode.nodeName
: null;
if (NON_ESCAPABLE_CONTENT.has(parentTagName)) {
// this text node cannot have its content escaped since it's going
// into an element like <style> or <script>
if (isWithinWhitespaceSensitive(node)) {
output.text.push(textContent);
}
else {
output.text.push(trimmedTextContent);
textContentLength = trimmedTextContent.length;
}
output.currentLineWidth += textContentLength;
}
else {
// this text node is going into a normal element and html can be escaped
if (opts.prettyHtml && !isWithinWhitespaceSensitiveNode) {
// pretty print the text node
output.text.push(escapeString(textContent.replace(/\s\s+/g, ' ').trim(), false));
output.currentLineWidth += textContentLength;
}
else {
// not pretty printing the text node
if (isWithinWhitespaceSensitive(node)) {
output.currentLineWidth += textContentLength;
}
else {
// this element is not a whitespace sensitive one, like <pre> or <code> so
// any whitespace at the start and end can be cleaned up to just be one space
if (/\s/.test(textContent.charAt(0))) {
textContent = ' ' + textContent.trimLeft();
}
textContentLength = textContent.length;
if (textContentLength > 1) {
if (/\s/.test(textContent.charAt(textContentLength - 1))) {
if (opts.approximateLineWidth > 0 &&
output.currentLineWidth + textContentLength > opts.approximateLineWidth) {
textContent = textContent.trimRight() + '\n';
output.currentLineWidth = 0;
}
else {
textContent = textContent.trimRight() + ' ';
}
}
}
output.currentLineWidth += textContentLength;
}
output.text.push(escapeString(textContent, false));
}
}
}
}
}
}
else if (node.nodeType === 8 /* NODE_TYPES.COMMENT_NODE */) {
const nodeValue = node.nodeValue;
if (opts.removeHtmlComments) {
const isHydrateAnnotation = nodeValue.startsWith(CONTENT_REF_ID + '.') ||
nodeValue.startsWith(ORG_LOCATION_ID + '.') ||
nodeValue.startsWith(SLOT_NODE_ID + '.') ||
nodeValue.startsWith(TEXT_NODE_ID + '.');
if (!isHydrateAnnotation) {
return;
}
}
const isWithinWhitespaceSensitiveNode = opts.newLines || opts.indentSpaces > 0 ? isWithinWhitespaceSensitive(node) : false;
if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
output.text.push('\n');
output.currentLineWidth = 0;
}
if (opts.indentSpaces > 0 && !isWithinWhitespaceSensitiveNode) {
for (let i = 0; i < output.indent; i++) {
output.text.push(' ');
}
output.currentLineWidth += output.indent;
}
output.text.push('<!--' + nodeValue + '-->');
output.currentLineWidth += nodeValue.length + 7;
}
else if (node.nodeType === 10 /* NODE_TYPES.DOCUMENT_TYPE_NODE */) {
output.text.push('<!doctype html>');
}
}
const AMP_REGEX = /&/g;
const NBSP_REGEX = /\u00a0/g;
const DOUBLE_QUOTE_REGEX = /"/g;
const LT_REGEX = /</g;
const GT_REGEX = />/g;
const CAN_REMOVE_ATTR_QUOTES = /^[^ \t\n\f\r"'`=<>\/\\-]+$/;
function getTagName(element) {
if (element.namespaceURI === 'http://www.w3.org/1999/xhtml') {
return element.nodeName.toLowerCase();
}
else {
return element.nodeName;
}
}
function escapeString(str, attrMode) {
str = str.replace(AMP_REGEX, '&').replace(NBSP_REGEX, ' ');
if (attrMode) {
return str.replace(DOUBLE_QUOTE_REGEX, '"');
}
return str.replace(LT_REGEX, '<').replace(GT_REGEX, '>');
}
function isWithinWhitespaceSensitive(node) {
while (node != null) {
if (WHITESPACE_SENSITIVE.has(node.nodeName)) {
return true;
}
node = node.parentNode;
}
return false;
}
/*@__PURE__*/ const NON_ESCAPABLE_CONTENT = new Set([
'STYLE',
'SCRIPT',
'IFRAME',
'NOSCRIPT',
'XMP',
'NOEMBED',
'NOFRAMES',
'PLAINTEXT',
]);
/*@__PURE__*/ const WHITESPACE_SENSITIVE = new Set([
'CODE',
'OUTPUT',
'PLAINTEXT',
'PRE',
'SCRIPT',
'TEMPLATE',
'TEXTAREA',
]);
/*@__PURE__*/ const EMPTY_ELEMENTS = new Set([
'area',
'base',
'basefont',
'bgsound',
'br',
'col',
'embed',
'frame',
'hr',
'img',
'input',
'keygen',
'link',
'meta',
'param',
'source',
'trace',
'wbr',
]);
/*@__PURE__*/ const REMOVE_EMPTY_ATTR = new Set(['class', 'dir', 'id', 'lang', 'name', 'title']);
/*@__PURE__*/ const BOOLEAN_ATTR = new Set([
'allowfullscreen',
'async',
'autofocus',
'autoplay',
'checked',
'compact',
'controls',
'declare',
'default',
'defaultchecked',
'defaultmuted',
'defaultselected',
'defer',
'disabled',
'enabled',
'formnovalidate',
'hidden',
'indeterminate',
'inert',
'ismap',
'itemscope',
'loop',
'multiple',
'muted',
'nohref',
'nomodule',
'noresize',
'noshade',
'novalidate',
'nowrap',
'open',
'pauseonexit',
'readonly',
'required',
'reversed',
'scoped',
'seamless',
'selected',
'sortable',
'truespeed',
'typemustmatch',
'visible',
]);
/*@__PURE__*/ const STRUCTURE_ELEMENTS = new Set([
'html',
'body',
'head',
'iframe',
'meta',
'link',
'base',
'title',
'script',
'style',
]);
class MockNode {
constructor(ownerDocument, nodeType, nodeName, nodeValue) {
this.ownerDocument = ownerDocument;
this.nodeType = nodeType;
this.nodeName = nodeName;
this._nodeValue = nodeValue;
this.parentNode = null;
this.childNodes = [];
}
appendChild(newNode) {
if (newNode.nodeType === 11 /* NODE_TYPES.DOCUMENT_FRAGMENT_NODE */) {
const nodes = newNode.childNodes.slice();
for (const child of nodes) {
this.appendChild(child);
}
}
else {
newNode.remove();
newNode.parentNode = this;
this.childNodes.push(newNode);
connectNode(this.ownerDocument, newNode);
}
return newNode;
}
append(...items) {
items.forEach((item) => {
const isNode = typeof item === 'object' && item !== null && 'nodeType' in item;
this.appendChild(isNode ? item : this.ownerDocument.createTextNode(String(item)));
});
}
prepend(...items) {
const firstChild = this.firstChild;
items.forEach((item) => {
const isNode = typeof item === 'object' && item !== null && 'nodeType' in item;
if (firstChild) {
this.insertBefore(isNode ? item : this.ownerDocument.createTextNode(String(item)), firstChild);
}
});
}
cloneNode(deep) {
throw new Error(`invalid node type to clone: ${this.nodeType}, deep: ${deep}`);
}
compareDocumentPosition(_other) {
// unimplemented
// https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition
return -1;
}
get firstChild() {
return this.childNodes[0] || null;
}
insertBefore(newNode, referenceNode) {
if (newNode.nodeType === 11 /* NODE_TYPES.DOCUMENT_FRAGMENT_NODE */) {
for (let i = 0, ii = newNode.childNodes.length; i < ii; i++) {
insertBefore(this, newNode.childNodes[i], referenceNode);
}
}
else {
insertBefore(this, newNode, referenceNode);
}
return newNode;
}
get isConnected() {
let node = this;
while (node != null) {
if (node.nodeType === 9 /* NODE_TYPES.DOCUMENT_NODE */) {
return true;
}
node = node.parentNode;
if (node != null && node.nodeType === 11 /* NODE_TYPES.DOCUMENT_FRAGMENT_NODE */) {
node = node.host;
}
}
return false;
}
isSameNode(node) {
return this === node;
}
get lastChild() {
return this.childNodes[this.childNodes.length - 1] || null;
}
get nextSibling() {
if (this.parentNode != null) {
const index = this.parentNode.childNodes.indexOf(this) + 1;
return this.parentNode.childNodes[index] || null;
}
return null;
}
get nodeValue() {
var _a;
return (_a = this._nodeValue) !== null && _a !== void 0 ? _a : '';
}
set nodeValue(value) {
this._nodeValue = value;
}
get parentElement() {
return this.parentNode || null;
}
set parentElement(value) {
this.parentNode = value;
}
get previousSibling() {
if (this.parentNode != null) {
const index = this.parentNode.childNodes.indexOf(this) - 1;
return this.parentNode.childNodes[index] || null;
}
return null;
}
contains(otherNode) {
if (otherNode === this) {
return true;
}
const childNodes = Array.from(this.childNodes);
if (childNodes.includes(otherNode)) {
return true;
}
return childNodes.some((node) => this.contains.bind(node)(otherNode));
}
removeChild(childNode) {
const index = this.childNodes.indexOf(childNode);
if (index > -1) {
this.childNodes.splice(index, 1);
if (this.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */) {
const wasConnected = this.isConnected;
childNode.parentNode = null;
if (wasConnected === true) {
disconnectNode(childNode);
}
}
else {
childNode.parentNode = null;
}
}
else {
throw new Error(`node not found within childNodes during removeChild`);
}
return childNode;
}
remove() {
if (this.parentNode != null) {
this.parentNode.removeChild(this);
}
}
replaceChild(newChild, oldChild) {
if (oldChild.parentNode === this) {
this.insertBefore(newChild, oldChild);
oldChild.remove();
return newChild;
}
return null;
}
get textContent() {
var _a;
return (_a = this._nodeValue) !== null && _a !== void 0 ? _a : '';
}
set textContent(value) {
this._nodeValue = String(value);
}
}
MockNode.ELEMENT_NODE = 1;
MockNode.TEXT_NODE = 3;
MockNode.PROCESSING_INSTRUCTION_NODE = 7;
MockNode.COMMENT_NODE = 8;
MockNode.DOCUMENT_NODE = 9;
MockNode.DOCUMENT_TYPE_NODE = 10;
MockNode.DOCUMENT_FRAGMENT_NODE = 11;
class MockNodeList {
constructor(ownerDocument, childNodes, length) {
this.ownerDocument = ownerDocument;
this.childNodes = childNodes;
this.length = length;
}
}
class MockElement extends MockNode {
constructor(ownerDocument, nodeName) {
super(ownerDocument, 1 /* NODE_TYPES.ELEMENT_NODE */, typeof nodeName === 'string' ? nodeName : null, null);
this.namespaceURI = null;
this.__shadowRoot = null;
this.__attributeMap = null;
}
addEventListener(type, handler) {
addEventListener(this, type, handler);
}
attachShadow(_opts) {
const shadowRoot = this.ownerDocument.createDocumentFragment();
this.shadowRoot = shadowRoot;
return shadowRoot;
}
blur() {
dispatchEvent(this, new MockFocusEvent('blur', { relatedTarget: null, bubbles: true, cancelable: true, composed: true }));
}
get shadowRoot() {
return this.__shadowRoot || null;
}
set shadowRoot(shadowRoot) {
if (shadowRoot != null) {
shadowRoot.host = this;
this.__shadowRoot = shadowRoot;
}
else {
delete this.__shadowRoot;
}
}
get attributes() {
if (this.__attributeMap == null) {
const attrMap = createAttributeProxy(false);
this.__attributeMap = attrMap;
return attrMap;
}
return this.__attributeMap;
}
set attributes(attrs) {
this.__attributeMap = attrs;
}
get children() {
return this.childNodes.filter((n) => n.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */);
}
get childElementCount() {
return this.childNodes.filter((n) => n.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */).length;
}
get className() {
return this.getAttributeNS(null, 'class') || '';
}
set className(value) {
this.setAttributeNS(null, 'class', value);
}
get classList() {
return new MockClassList(this);
}
click() {
dispatchEvent(this, new MockEvent('click', { bubbles: true, cancelable: true, composed: true }));
}
cloneNode(_deep) {
// implemented on MockElement.prototype from within element.ts
// @ts-ignore - implemented on MockElement.prototype from within element.ts
return null;
}
closest(selector) {
let elm = this;
while (elm != null) {
if (elm.matches(selector)) {
return elm;
}
elm = elm.parentNode;
}
return null;
}
get dataset() {
return dataset(this);
}
get dir() {
return this.getAttributeNS(null, 'dir') || '';
}
set dir(value) {
this.setAttributeNS(null, 'dir', value);
}
dispatchEvent(ev) {
return dispatchEvent(this, ev);
}
get firstElementChild() {
return this.children[0] || null;
}
focus(_options) {
dispatchEvent(this, new MockFocusEvent('focus', { relatedTarget: null, bubbles: true, cancelable: true, composed: true }));
}
getAttribute(attrName) {
if (attrName === 'style') {
if (this.__style != null && this.__style.length > 0) {
return this.style.cssText;
}
return null;
}
const attr = this.attributes.getNamedItem(attrName);
if (attr != null) {
return attr.value;
}
return null;
}
getAttributeNS(namespaceURI, attrName) {
const attr = this.attributes.getNamedItemNS(namespaceURI, attrName);
if (attr != null) {
return attr.value;
}
return null;
}
getBoundingClientRect() {
return { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0, x: 0, y: 0 };
}
getRootNode(opts) {
const isComposed = opts != null && opts.composed === true;
let node = this;
while (node.parentNode != null) {
node = node.parentNode;
if (isComposed === true && node.parentNode == null && node.host != null) {
node = node.host;
}
}
return node;
}
get draggable() {
return this.getAttributeNS(null, 'draggable') === 'true';
}
set draggable(value) {
this.setAttributeNS(null, 'draggable', value);
}
hasChildNodes() {
return this.childNodes.length > 0;
}
get id() {
return this.getAttributeNS(null, 'id') || '';
}
set id(value) {
this.setAttributeNS(null, 'id', value);
}
get innerHTML() {
if (this.childNodes.length === 0) {
return '';
}
return serializeNodeToHtml(this, {
newLines: false,
indentSpaces: 0,
});
}
set innerHTML(html) {
var _a;
if (NON_ESCAPABLE_CONTENT.has((_a = this.nodeName) !== null && _a !== void 0 ? _a : '') === true) {
setTextContent(this, html);
}
else {
for (let i = this.childNodes.length - 1; i >= 0; i--) {
this.removeChild(this.childNodes[i]);
}
if (typeof html === 'string') {
const frag = parseFragmentUtil(this.ownerDocument, html);
while (frag.childNodes.length > 0) {
this.appendChild(frag.childNodes[0]);
}
}
}
}
get innerText() {
const text = [];
getTextContent(this.childNodes, text);
return text.join('');
}
set innerText(value) {
setTextContent(this, value);
}
insertAdjacentElement(position, elm) {
if (position === 'beforebegin') {
insertBefore(this.parentNode, elm, this);
}
else if (position === 'afterbegin') {
this.prepend(elm);
}
else if (position === 'beforeend') {
this.appendChild(elm);
}
else if (position === 'afterend') {
insertBefore(this.parentNode, elm, this.nextSibling);
}
return elm;
}
insertAdjacentHTML(position, html) {
const frag = parseFragmentUtil(this.ownerDocument, html);
if (position === 'beforebegin') {
while (frag.childNodes.length > 0) {
insertBefore(this.parentNode, frag.childNodes[0], this);
}
}
else if (position === 'afterbegin') {
while (frag.childNodes.length > 0) {
this.prepend(frag.childNodes[frag.childNodes.length - 1]);
}
}
else if (position === 'beforeend') {
while (frag.childNodes.length > 0) {
this.appendChild(frag.childNodes[0]);
}
}
else if (position === 'afterend') {
while (frag.childNodes.length > 0) {
insertBefore(this.parentNode, frag.childNodes[frag.childNodes.length - 1], this.nextSibling);
}
}
}
insertAdjacentText(position, text) {
const elm = this.ownerDocument.createTextNode(text);
if (position === 'beforebegin') {
insertBefore(this.parentNode, elm, this);
}
else if (position === 'afterbegin') {
this.prepend(elm);
}
else if (position === 'beforeend') {
this.appendChild(elm);
}
else if (position === 'afterend') {
insertBefore(this.parentNode, elm, this.nextSibling);
}
}
hasAttribute(attrName) {
if (attrName === 'style') {
return this.__style != null && this.__style.length > 0;
}
return this.getAttribute(attrName) !== null;
}
hasAttributeNS(namespaceURI, name) {
return this.getAttributeNS(namespaceURI, name) !== null;
}
get hidden() {
return this.hasAttributeNS(null, 'hidden');
}
set hidden(isHidden) {
if (isHidden === true) {
this.setAttributeNS(null, 'hidden', '');
}
else {
this.removeAttributeNS(null, 'hidden');
}
}
get lang() {
return this.getAttributeNS(null, 'lang') || '';
}
set lang(value) {
this.setAttributeNS(null, 'lang', value);
}
get lastElementChild() {
const children = this.children;
return children[children.length - 1] || null;
}
matches(selector) {
return matches(selector, this);
}
get nextElementSibling() {
const parentElement = this.parentElement;
if (parentElement != null &&
(parentElement.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */ ||
parentElement.nodeType === 11 /* NODE_TYPES.DOCUMENT_FRAGMENT_NODE */ ||
parentElement.nodeType === 9 /* NODE_TYPES.DOCUMENT_NODE */)) {
const children = parentElement.children;
const index = children.indexOf(this) + 1;
return parentElement.children[index] || null;
}
return null;
}
get outerHTML() {
return serializeNodeToHtml(this, {
newLines: false,
outerHtml: true,
indentSpaces: 0,
});
}
get previousElementSibling() {
const parentElement = this.parentElement;
if (parentElement != null &&
(parentElement.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */ ||
parentElement.nodeType === 11 /* NODE_TYPES.DOCUMENT_FRAGMENT_NODE */ ||
parentElement.nodeType === 9 /* NODE_TYPES.DOCUMENT_NODE */)) {
const children = parentElement.children;
const index = children.indexOf(this) - 1;
return parentElement.children[index] || null;
}
return null;
}
getElementsByClassName(classNames) {
const classes = classNames
.trim()
.split(' ')
.filter((c) => c.length > 0);
const results = [];
getElementsByClassName(this, classes, results);
return results;
}
getElementsByTagName(tagName) {
const results = [];
getElementsByTagName(this, tagName.toLowerCase(), results);
return results;
}
querySelector(selector) {
return selectOne(selector, this);
}
querySelectorAll(selector) {
return selectAll(selector, this);
}
removeAttribute(attrName) {
if (attrName === 'style') {
delete this.__style;
}
else {
const attr = this.attributes.getNamedItem(attrName);
if (attr != null) {
this.attributes.removeNamedItemNS(attr);
if (checkAttributeChanged(this) === true) {
attributeChanged(this, attrName, attr.value, null);
}
}
}
}
removeAttributeNS(namespaceURI, attrName) {
const attr = this.attributes.getNamedItemNS(namespaceURI, attrName);
if (attr != null) {
this.attributes.removeNamedItemNS(attr);
if (checkAttributeChanged(this) === true) {
attributeChanged(this, attrName, attr.value, null);
}
}
}
removeEventListener(type, handler) {
removeEventListener(this, type, handler);
}
setAttribute(attrName, value) {
if (attrName === 'style') {
this.style = value;
}
else {
const attributes = this.attributes;
let attr = attributes.getNamedItem(attrName);
const checkAttrChanged = checkAttributeChanged(this);
if (attr != null) {
if (checkAttrChanged === true) {
const oldValue = attr.value;
attr.value = value;
if (oldValue !== attr.value) {
attributeChanged(this, attr.name, oldValue, attr.value);
}
}
else {
attr.value = value;
}
}
else {
if (attributes.caseInsensitive) {
attrName = attrName.toLowerCase();
}
attr = new MockAttr(attrName, value);
attributes.__items.push(attr);
if (checkAttrChanged === true) {
attributeChanged(this, attrName, null, attr.value);
}
}
}
}
setAttributeNS(namespaceURI, attrName, value) {
const attributes = this.attributes;
let attr = attributes.getNamedItemNS(namespaceURI, attrName);
const checkAttrChanged = checkAttributeChanged(this);
if (attr != null) {
if (checkAttrChanged === true) {
const oldValue = attr.value;
attr.value = value;
if (oldValue !== attr.value) {
attributeChanged(this, attr.name, oldValue, attr.value);
}
}
else {
attr.value = value;
}
}
else {
attr = new MockAttr(attrName, value, namespaceURI);
attributes.__items.push(attr);
if (checkAttrChanged === true) {
attributeChanged(this, attrName, null, attr.value);
}
}
}
get style() {
if (this.__style == null) {
this.__style = createCSSStyleDeclaration();
}
return this.__style;
}
set style(val) {
if (typeof val === 'string') {
if (this.__style == null) {
this.__style = createCSSStyleDeclaration();
}
this.__style.cssText = val;
}
else {
this.__style = val;
}
}
get tabIndex() {
return parseInt(this.getAttributeNS(null, 'tabindex') || '-1', 10);
}
set tabIndex(value) {
this.setAttributeNS(null, 'tabindex', value);
}
get tagName() {
var _a;
return (_a = this.nodeName) !== null && _a !== void 0 ? _a : '';
}
set tagName(value) {
this.nodeName = value;
}
get textContent() {
const text = [];
getTextContent(this.childNodes, text);
return text.join('');
}
set textContent(value) {
setTextContent(this, value);
}
get title() {
return this.getAttributeNS(null, 'title') || '';
}
set title(value) {
this.setAttributeNS(null, 'title', value);
}
animate() {
/**/
}
onanimationstart() {
/**/
}
onanimationend() {
/**/
}
onanimationiteration() {
/**/
}
onabort() {
/**/
}
onauxclick() {
/**/
}
onbeforecopy() {
/**/
}
onbeforecut() {
/**/
}
onbeforepaste() {
/**/
}
onblur() {
/**/
}
oncancel() {
/**/
}
oncanplay() {
/**/
}
oncanplaythrough() {
/**/
}
onchange() {
/**/
}
onclick() {
/**/
}
onclose() {
/**/
}
oncontextmenu() {
/**/
}
oncopy() {
/**/
}
oncuechange() {
/**/
}
oncut() {
/**/
}
ondblclick() {
/**/
}
ondrag() {
/**/
}
ondragend() {
/**/
}
ondragenter() {
/**/
}
ondragleave() {
/**/
}
ondragover() {
/**/
}
ondragstart() {
/**/
}
ondrop() {
/**/
}
ondurationchange() {
/**/
}
onemptied() {
/**/
}
onended() {
/**/
}
onerror() {
/**/
}
onfocus() {
/**/
}
onfocusin() {
/**/
}
onfocusout() {
/**/
}
onformdata() {
/**/
}
onfullscreenchange() {
/**/
}
onfullscreenerror() {
/**/
}
ongotpointercapture() {
/**/
}
oninput() {
/**/
}
oninvalid() {
/**/
}
onkeydown() {
/**/
}
onkeypress() {
/**/
}
onkeyup() {
/**/
}
onload() {
/**/
}
onloadeddata() {
/**/
}
onloadedmetadata() {
/**/
}
onloadstart() {
/**/
}
onlostpointercapture() {
/**/
}
onmousedown() {
/**/
}
onmouseenter() {
/**/
}
onmouseleave() {
/**/
}
onmousemove() {
/**/
}
onmouseout() {
/**/
}
onmouseover() {
/**/
}
onmouseup() {
/**/
}
onmousewheel() {
/**/
}
onpaste() {
/**/
}
onpause() {
/**/
}
onplay() {
/**/
}
onplaying() {
/**/
}
onpointercancel() {
/**/
}
onpointerdown() {
/**/
}
onpointerenter() {
/**/
}
onpointerleave() {
/**/
}
onpointermove() {
/**/
}
onpointerout() {
/**/
}
onpointerover() {
/**/
}
onpointerup() {
/**/
}
onprogress() {
/**/
}
onratechange() {
/**/
}
onreset() {
/**/
}
onresize() {
/**/
}
onscroll() {
/**/
}
onsearch() {
/**/
}
onseeked() {
/**/
}
onseeking() {
/**/
}
onselect() {
/**/
}
onselectstart() {
/**/
}
onstalled() {
/**/
}
onsubmit() {
/**/
}
onsuspend() {
/**/
}
ontimeupdate() {
/**/
}
ontoggle() {
/**/
}
onvolumechange() {
/**/
}
onwaiting() {
/**/
}
onwebkitfullscreenchange() {
/**/
}
onwebkitfullscreenerror() {
/**/
}
onwheel() {
/**/
}
requestFullscreen() {
/**/
}
scrollBy() {
/**/
}
scrollTo() {
/**/
}
scrollIntoView() {
/**/
}
toString(opts) {
return serializeNodeToHtml(this, opts);
}
}
function getElementsByClassName(elm, classNames, foundElms) {
const children = elm.children;
for (let i = 0, ii = children.length; i < ii; i++) {
const childElm = children[i];
for (let j = 0, jj = classNames.length; j < jj; j++) {
if (childElm.classList.contains(classNames[j])) {
foundElms.push(childElm);
}
}
getElementsByClassName(childElm, classNames, foundElms);
}
}
function getElementsByTagName(elm, tagName, foundElms) {
var _a;
const children = elm.children;
for (let i = 0, ii = children.length; i < ii; i++) {
const childElm = children[i];
if (tagName === '*' || ((_a = childElm.nodeName) !== null && _a !== void 0 ? _a : '').toLowerCase() === tagName) {
foundElms.push(childElm);
}
getElementsByTagName(childElm, tagName, foundElms);
}
}
function resetElement(elm) {
resetEventListeners(elm);
delete elm.__attributeMap;
delete elm.__shadowRoot;
delete elm.__style;
}
function insertBefore(parentNode, newNode, referenceNode) {
if (newNode !== referenceNode) {
newNode.remove();
newNode.parentNode = parentNode;
newNode.ownerDocument = parentNode.ownerDocument;
if (referenceNode != null) {
const index = parentNode.childNodes.indexOf(referenceNode);
if (index > -1) {
parentNode.childNodes.splice(index, 0, newNode);
}
else {
throw new Error(`referenceNode not found in parentNode.childNodes`);
}
}
else {
parentNode.childNodes.push(newNode);
}
connectNode(parentNode.ownerDocument, newNode);
}
return newNode;
}
class MockHTMLElement extends MockElement {
constructor(ownerDocument, nodeName) {
super(ownerDocument, typeof nodeName === 'string' ? nodeName.toUpperCase() : null);
this.namespaceURI = 'http://www.w3.org/1999/xhtml';
}
get tagName() {
var _a;
return (_a = this.nodeName) !== null && _a !== void 0 ? _a : '';
}
set tagName(value) {
this.nodeName = value;
}
get attributes() {
if (this.__attributeMap == null) {
const attrMap = createAttributeProxy(true);
this.__attributeMap = attrMap;
return attrMap;
}
return this.__attributeMap;
}
set attributes(attrs) {
this.__attributeMap = attrs;
}
}
class MockTextNode extends MockNode {
constructor(ownerDocument, text) {
super(ownerDocument, 3 /* NODE_TYPES.TEXT_NODE */, "#text" /* NODE_NAMES.TEXT_NODE */, text);
}
cloneNode(_deep) {
return new MockTextNode(null, this.nodeValue);
}
get textContent() {
return this.nodeValue;
}
set textContent(text) {
this.nodeValue = text;
}
get data() {
return this.nodeValue;
}
set data(text) {
this.nodeValue = text;
}
get wholeText() {
if (this.parentNode != null) {
const text = [];
for (let i = 0, ii = this.parentNode.childNodes.length; i < ii; i++) {
const childNode = this.parentNode.childNodes[i];
if (childNode.nodeType === 3 /* NODE_TYPES.TEXT_NODE */) {
text.push(childNode.nodeValue);
}
}
return text.join('');
}
return this.nodeValue;
}
}
function getTextContent(childNodes, text) {
for (let i = 0, ii = childNodes.length; i < ii; i++) {
const childNode = childNodes[i];
if (childNode.nodeType === 3 /* NODE_TYPES.TEXT_NODE */) {
text.push(childNode.nodeValue);
}
else if (childNode.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */) {
getTextContent(childNode.childNodes, text);
}
}
}
function setTextContent(elm, text) {
for (let i = elm.childNodes.length - 1; i >= 0; i--) {
elm.removeChild(elm.childNodes[i]);
}
const textNode = new MockTextNode(elm.ownerDocument, text);
elm.appendChild(textNode);
}
class MockComment extends MockNode {
constructor(ownerDocument, data) {
super(ownerDocument, 8 /* NODE_TYPES.COMMENT_NODE */, "#comment" /* NODE_NAMES.COMMENT_NODE */, data);
}
cloneNode(_deep) {
return new MockComment(null, this.nodeValue);
}
get textContent() {
return this.nodeValue;
}
set textContent(text) {
this.nodeValue = text;
}
}
class MockDocumentFragment extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, null);
this.nodeName = "#document-fragment" /* NODE_NAMES.DOCUMENT_FRAGMENT_NODE */;
this.nodeType = 11 /* NODE_TYPES.DOCUMENT_FRAGMENT_NODE */;
}
getElementById(id) {
return getElementById(this, id);
}
cloneNode(deep) {
const cloned = new MockDocumentFragment(null);
if (deep) {
for (let i = 0, ii = this.childNodes.length; i < ii; i++) {
const childNode = this.childNodes[i];
if (childNode.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */ ||
childNode.nodeType === 3 /* NODE_TYPES.TEXT_NODE */ ||
childNode.nodeType === 8 /* NODE_TYPES.COMMENT_NODE */) {
const clonedChildNode = this.childNodes[i].cloneNode(true);
cloned.appendChild(clonedChildNode);
}
}
}
return cloned;
}
}
class MockDocumentTypeNode extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, '!DOCTYPE');
this.nodeType = 10 /* NODE_TYPES.DOCUMENT_TYPE_NODE */;
this.setAttribute('html', '');
}
}
class MockCSSRule {
constructor(parentStyleSheet) {
this.parentStyleSheet = parentStyleSheet;
this.cssText = '';
this.type = 0;
}
}
class MockCSSStyleSheet {
constructor(ownerNode) {
this.type = 'text/css';
this.parentStyleSheet = null;
this.cssRules = [];
this.ownerNode = ownerNode;
}
get rules() {
return this.cssRules;
}
set rules(rules) {
this.cssRules = rules;
}
deleteRule(index) {
if (index >= 0 && index < this.cssRules.length) {
this.cssRules.splice(index, 1);
updateStyleTextNode(this.ownerNode);
}
}
insertRule(rule, index = 0) {
if (typeof index !== 'number') {
index = 0;
}
if (index < 0) {
index = 0;
}
if (index > this.cssRules.length) {
index = this.cssRules.length;
}
const cssRule = new MockCSSRule(this);
cssRule.cssText = rule;
this.cssRules.splice(index, 0, cssRule);
updateStyleTextNode(this.ownerNode);
return index;
}
}
function getStyleElementText(styleElm) {
const output = [];
for (let i = 0; i < styleElm.childNodes.length; i++) {
output.push(styleElm.childNodes[i].nodeValue);
}
return output.join('');
}
function setStyleElementText(styleElm, text) {
// keeping the innerHTML and the sheet.cssRules connected
// is not technically correct, but since we're doing
// SSR we'll need to turn any assigned cssRules into
// real text, not just properties that aren't rendered
const sheet = styleElm.sheet;
sheet.cssRules.length = 0;
sheet.insertRule(text);
updateStyleTextNode(styleElm);
}
function updateStyleTextNode(styleElm) {
const childNodeLen = styleElm.childNodes.length;
if (childNodeLen > 1) {
for (let i = childNodeLen - 1; i >= 1; i--) {
styleElm.removeChild(styleElm.childNodes[i]);
}
}
else if (childNodeLen < 1) {
styleElm.appendChild(styleElm.ownerDocument.createTextNode(''));
}
const textNode = styleElm.childNodes[0];
textNode.nodeValue = styleElm.sheet.cssRules.map((r) => r.cssText).join('\n');
}
function createElement(ownerDocument, tagName) {
if (typeof tagName !== 'string' || tagName === '' || !/^[a-z0-9-_:]+$/i.test(tagName)) {
throw new Error(`The tag name provided (${tagName}) is not a valid name.`);
}
tagName = tagName.toLowerCase();
switch (tagName) {
case 'a':
return new MockAnchorElement(ownerDocument);
case 'base':
return new MockBaseElement(ownerDocument);
case 'button':
return new MockButtonElement(ownerDocument);
case 'canvas':
return new MockCanvasElement(ownerDocument);
case 'form':
return new MockFormElement(ownerDocument);
case 'img':
return new MockImageElement(ownerDocument);
case 'input':
return new MockInputElement(ownerDocument);
case 'link':
return new MockLinkElement(ownerDocument);
case 'meta':
return new MockMetaElement(ownerDocument);
case 'script':
return new MockScriptElement(ownerDocument);
case 'style':
return new MockStyleElement(ownerDocument);
case 'template':
return new MockTemplateElement(ownerDocument);
case 'title':
return new MockTitleElement(ownerDocument);
}
if (ownerDocument != null && tagName.includes('-')) {
const win = ownerDocument.defaultView;
if (win != null && win.customElements != null) {
return createCustomElement(win.customElements, ownerDocument, tagName);
}
}
return new MockHTMLElement(ownerDocument, tagName);
}
function createElementNS(ownerDocument, namespaceURI, tagName) {
if (namespaceURI === 'http://www.w3.org/1999/xhtml') {
return createElement(ownerDocument, tagName);
}
else if (namespaceURI === 'http://www.w3.org/2000/svg') {
switch (tagName.toLowerCase()) {
case 'text':
case 'tspan':
case 'tref':
case 'altglyph':
case 'textpath':
return new MockSVGTextContentElement(ownerDocument, tagName);
case 'circle':
case 'ellipse':
case 'image':
case 'line':
case 'path':
case 'polygon':
case 'polyline':
case 'rect':
case 'use':
return new MockSVGGraphicsElement(ownerDocument, tagName);
case 'svg':
return new MockSVGSVGElement(ownerDocument, tagName);
default:
return new MockSVGElement(ownerDocument, tagName);
}
}
else {
return new MockElement(ownerDocument, tagName);
}
}
class MockAnchorElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'a');
}
get href() {
return fullUrl(this, 'href');
}
set href(value) {
this.setAttribute('href', value);
}
get pathname() {
return new URL(this.href).pathname;
}
}
class MockButtonElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'button');
}
}
patchPropAttributes(MockButtonElement.prototype, {
type: String,
}, {
type: 'submit',
});
class MockImageElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'img');
}
get draggable() {
return this.getAttributeNS(null, 'draggable') !== 'false';
}
set draggable(value) {
this.setAttributeNS(null, 'draggable', value);
}
get src() {
return fullUrl(this, 'src');
}
set src(value) {
this.setAttribute('src', value);
}
}
patchPropAttributes(MockImageElement.prototype, {
height: Number,
width: Number,
});
class MockInputElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'input');
}
get list() {
const listId = this.getAttribute('list');
if (listId) {
return this.ownerDocument.getElementById(listId);
}
return null;
}
}
patchPropAttributes(MockInputElement.prototype, {
accept: String,
autocomplete: String,
autofocus: Boolean,
capture: String,
checked: Boolean,
disabled: Boolean,
form: String,
formaction: String,
formenctype: String,
formmethod: String,
formnovalidate: String,
formtarget: String,
height: Number,
inputmode: String,
max: String,
maxLength: Number,
min: String,
minLength: Number,
multiple: Boolean,
name: String,
pattern: String,
placeholder: String,
required: Boolean,
readOnly: Boolean,
size: Number,
spellCheck: Boolean,
src: String,
step: String,
type: String,
value: String,
width: Number,
}, {
type: 'text',
});
class MockFormElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'form');
}
}
patchPropAttributes(MockFormElement.prototype, {
name: String,
});
class MockLinkElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'link');
}
get href() {
return fullUrl(this, 'href');
}
set href(value) {
this.setAttribute('href', value);
}
}
patchPropAttributes(MockLinkElement.prototype, {
crossorigin: String,
media: String,
rel: String,
type: String,
});
class MockMetaElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'meta');
}
}
patchPropAttributes(MockMetaElement.prototype, {
charset: String,
content: String,
name: String,
});
class MockScriptElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'script');
}
get src() {
return fullUrl(this, 'src');
}
set src(value) {
this.setAttribute('src', value);
}
}
patchPropAttributes(MockScriptElement.prototype, {
type: String,
});
class MockDOMMatrix {
constructor() {
this.a = 1;
this.b = 0;
this.c = 0;
this.d = 1;
this.e = 0;
this.f = 0;
this.m11 = 1;
this.m12 = 0;
this.m13 = 0;
this.m14 = 0;
this.m21 = 0;
this.m22 = 1;
this.m23 = 0;
this.m24 = 0;
this.m31 = 0;
this.m32 = 0;
this.m33 = 1;
this.m34 = 0;
this.m41 = 0;
this.m42 = 0;
this.m43 = 0;
this.m44 = 1;
this.is2D = true;
this.isIdentity = true;
}
static fromMatrix() {
return new MockDOMMatrix();
}
inverse() {
return new MockDOMMatrix();
}
flipX() {
return new MockDOMMatrix();
}
flipY() {
return new MockDOMMatrix();
}
multiply() {
return new MockDOMMatrix();
}
rotate() {
return new MockDOMMatrix();
}
rotateAxisAngle() {
return new MockDOMMatrix();
}
rotateFromVector() {
return new MockDOMMatrix();
}
scale() {
return new MockDOMMatrix();
}
scaleNonUniform() {
return new MockDOMMatrix();
}
skewX() {
return new MockDOMMatrix();
}
skewY() {
return new MockDOMMatrix();
}
toJSON() { }
toString() { }
transformPoint() {
return new MockDOMPoint();
}
translate() {
return new MockDOMMatrix();
}
}
class MockDOMPoint {
constructor() {
this.w = 1;
this.x = 0;
this.y = 0;
this.z = 0;
}
toJSON() { }
matrixTransform() {
return new MockDOMMatrix();
}
}
class MockSVGRect {
constructor() {
this.height = 10;
this.width = 10;
this.x = 0;
this.y = 0;
}
}
class MockStyleElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'style');
this.sheet = new MockCSSStyleSheet(this);
}
get innerHTML() {
return getStyleElementText(this);
}
set innerHTML(value) {
setStyleElementText(this, value);
}
get innerText() {
return getStyleElementText(this);
}
set innerText(value) {
setStyleElementText(this, value);
}
get textContent() {
return getStyleElementText(this);
}
set textContent(value) {
setStyleElementText(this, value);
}
}
class MockSVGElement extends MockElement {
// SVGElement properties and methods
get ownerSVGElement() {
return null;
}
get viewportElement() {
return null;
}
onunload() {
/**/
}
// SVGGeometryElement properties and methods
get pathLength() {
return 0;
}
isPointInFill(_pt) {
return false;
}
isPointInStroke(_pt) {
return false;
}
getTotalLength() {
return 0;
}
}
class MockSVGGraphicsElement extends MockSVGElement {
getBBox(_options) {
return new MockSVGRect();
}
getCTM() {
return new MockDOMMatrix();
}
getScreenCTM() {
return new MockDOMMatrix();
}
}
class MockSVGSVGElement extends MockSVGGraphicsElement {
createSVGPoint() {
return new MockDOMPoint();
}
}
class MockSVGTextContentElement extends MockSVGGraphicsElement {
getComputedTextLength() {
return 0;
}
}
class MockBaseElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'base');
}
get href() {
return fullUrl(this, 'href');
}
set href(value) {
this.setAttribute('href', value);
}
}
class MockTemplateElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'template');
this.content = new MockDocumentFragment(ownerDocument);
}
get innerHTML() {
return this.content.innerHTML;
}
set innerHTML(html) {
this.content.innerHTML = html;
}
cloneNode(deep) {
const cloned = new MockTemplateElement(null);
cloned.attributes = cloneAttributes(this.attributes);
const styleCssText = this.getAttribute('style');
if (styleCssText != null && styleCssText.length > 0) {
cloned.setAttribute('style', styleCssText);
}
cloned.content = this.content.cloneNode(deep);
if (deep) {
for (let i = 0, ii = this.childNodes.length; i < ii; i++) {
const clonedChildNode = this.childNodes[i].cloneNode(true);
cloned.appendChild(clonedChildNode);
}
}
return cloned;
}
}
class MockTitleElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'title');
}
get text() {
return this.textContent;
}
set text(value) {
this.textContent = value;
}
}
class MockCanvasElement extends MockHTMLElement {
constructor(ownerDocument) {
super(ownerDocument, 'canvas');
}
getContext() {
return {
fillRect() {
return;
},
clearRect() { },
getImageData: function (_, __, w, h) {
return {
data: new Array(w * h * 4),
};
},
putImageData() { },
createImageData: function () {
return [];
},
setTransform() { },
drawImage() { },
save() { },
fillText() { },
restore() { },
beginPath() { },
moveTo() { },
lineTo() { },
closePath() { },
stroke() { },
translate() { },
scale() { },
rotate() { },
arc() { },
fill() { },
measureText() {
return { width: 0 };
},
transform() { },
rect() { },
clip() { },
};
}
}
function fullUrl(elm, attrName) {
const val = elm.getAttribute(attrName) || '';
if (elm.ownerDocument != null) {
const win = elm.ownerDocument.defaultView;
if (win != null) {
const loc = win.location;
if (loc != null) {
try {
const url = new URL(val, loc.href);
return url.href;
}
catch (e) { }
}
}
}
return val.replace(/\'|\"/g, '').trim();
}
function patchPropAttributes(prototype, attrs, defaults = {}) {
Object.keys(attrs).forEach((propName) => {
const attr = attrs[propName];
const defaultValue = defaults[propName];
if (attr === Boolean) {
Object.defineProperty(prototype, propName, {
get() {
return this.hasAttribute(propName);
},
set(value) {
if (value) {
this.setAttribute(propName, '');
}
else {
this.removeAttribute(propName);
}
},
});
}
else if (attr === Number) {
Object.defineProperty(prototype, propName, {
get() {
const value = this.getAttribute(propName);
return value ? parseInt(value, 10) : defaultValue === undefined ? 0 : defaultValue;
},
set(value) {
this.setAttribute(propName, value);
},
});
}
else {
Object.defineProperty(prototype, propName, {
get() {
return this.hasAttribute(propName) ? this.getAttribute(propName) : defaultValue || '';
},
set(value) {
this.setAttribute(propName, value);
},
});
}
});
}
MockElement.prototype.cloneNode = function (deep) {
// because we're creating elements, which extending specific HTML base classes there
// is a MockElement circular reference that bundling has trouble dealing with so
// the fix is to add cloneNode() to MockElement's prototype after the HTML classes
const cloned = createElement(this.ownerDocument, this.nodeName);
cloned.attributes = cloneAttributes(this.attributes);
const styleCssText = this.getAttribute('style');
if (styleCssText != null && styleCssText.length > 0) {
cloned.setAttribute('style', styleCssText);
}
if (deep) {
for (let i = 0, ii = this.childNodes.length; i < ii; i++) {
const clonedChildNode = this.childNodes[i].cloneNode(true);
cloned.appendChild(clonedChildNode);
}
}
return cloned;
};
let sharedDocument;
function parseHtmlToDocument(html, ownerDocument = null) {
if (ownerDocument == null) {
if (sharedDocument == null) {
sharedDocument = new MockDocument();
}
ownerDocument = sharedDocument;
}
return parseDocumentUtil(ownerDocument, html);
}
function parseHtmlToFragment(html, ownerDocument = null) {
if (ownerDocument == null) {
if (sharedDocument == null) {
sharedDocument = new MockDocument();
}
ownerDocument = sharedDocument;
}
return parseFragmentUtil(ownerDocument, html);
}
const consoleNoop = () => {
/**/
};
function createConsole() {
return {
debug: consoleNoop,
error: consoleNoop,
info: consoleNoop,
log: consoleNoop,
warn: consoleNoop,
dir: consoleNoop,
dirxml: consoleNoop,
table: consoleNoop,
trace: consoleNoop,
group: consoleNoop,
groupCollapsed: consoleNoop,
groupEnd: consoleNoop,
clear: consoleNoop,
count: consoleNoop,
countReset: consoleNoop,
assert: consoleNoop,
profile: consoleNoop,
profileEnd: consoleNoop,
time: consoleNoop,
timeLog: consoleNoop,
timeEnd: consoleNoop,
timeStamp: consoleNoop,
context: consoleNoop,
memory: consoleNoop,
};
}
class MockHeaders {
constructor(init) {
this._values = [];
if (typeof init === 'object') {
if (typeof init[Symbol.iterator] === 'function') {
const kvs = [];
for (const kv of init) {
if (typeof kv[Symbol.iterator] === 'function') {
kvs.push([...kv]);
}
}
for (const kv of kvs) {
this.append(kv[0], kv[1]);
}
}
else {
for (const key in init) {
this.append(key, init[key]);
}
}
}
}
append(key, value) {
this._values.push([key, value + '']);
}
delete(key) {
key = key.toLowerCase();
for (let i = this._values.length - 1; i >= 0; i--) {
if (this._values[i][0].toLowerCase() === key) {
this._values.splice(i, 1);
}
}
}
entries() {
const entries = [];
for (const kv of this.keys()) {
entries.push([kv, this.get(kv)]);
}
let index = -1;
return {
next() {
index++;
return {
value: entries[index],
done: !entries[index],
};
},
[Symbol.iterator]() {
return this;
},
};
}
forEach(cb) {
for (const kv of this.entries()) {
cb(kv[1], kv[0]);
}
}
get(key) {
const rtn = [];
key = key.toLowerCase();
for (const kv of this._values) {
if (kv[0].toLowerCase() === key) {
rtn.push(kv[1]);
}
}
return rtn.length > 0 ? rtn.join(', ') : null;
}
has(key) {
key = key.toLowerCase();
for (const kv of this._values) {
if (kv[0].toLowerCase() === key) {
return true;
}
}
return false;
}
keys() {
const keys = [];
for (const kv of this._values) {
const key = kv[0].toLowerCase();
if (!keys.includes(key)) {
keys.push(key);
}
}
let index = -1;
return {
next() {
index++;
return {
value: keys[index],
done: !keys[index],
};
},
[Symbol.iterator]() {
return this;
},
};
}
set(key, value) {
for (const kv of this._values) {
if (kv[0].toLowerCase() === key.toLowerCase()) {
kv[1] = value + '';
return;
}
}
this.append(key, value);
}
values() {
const values = this._values;
let index = -1;
return {
next() {
index++;
const done = !values[index];
return {
value: done ? undefined : values[index][1],
done,
};
},
[Symbol.iterator]() {
return this;
},
};
}
[Symbol.iterator]() {
return this.entries();
}
}
class MockDOMParser {
parseFromString(htmlToParse, mimeType) {
if (mimeType !== 'text/html') {
console.error('XML parsing not implemented yet, continuing as html');
}
return parseHtmlToDocument(htmlToParse);
}
}
class MockRequest {
constructor(input, init = {}) {
this._method = 'GET';
this._url = '/';
this.bodyUsed = false;
this.cache = 'default';
this.credentials = 'same-origin';
this.integrity = '';
this.keepalive = false;
this.mode = 'cors';
this.redirect = 'follow';
this.referrer = 'about:client';
this.referrerPolicy = '';
if (typeof input === 'string') {
this.url = input;
}
else if (input) {
Object.assign(this, input);
this.headers = new MockHeaders(input.headers);
}
Object.assign(this, init);
if (init.headers) {
this.headers = new MockHeaders(init.headers);
}
if (!this.headers) {
this.headers = new MockHeaders();
}
}
get url() {
if (typeof this._url === 'string') {
return new URL(this._url, location.href).href;
}
return new URL('/', location.href).href;
}
set url(value) {
this._url = value;
}
get method() {
if (typeof this._method === 'string') {
return this._method.toUpperCase();
}
return 'GET';
}
set method(value) {
this._method = value;
}
clone() {
const clone = { ...this };
clone.headers = new MockHeaders(this.headers);
return new MockRequest(clone);
}
}
class MockResponse {
constructor(body, init = {}) {
this.ok = true;
this.status = 200;
this.statusText = '';
this.type = 'default';
this.url = '';
this._body = body;
if (init) {
Object.assign(this, init);
}
this.headers = new MockHeaders(init.headers);
}
async json() {
return JSON.parse(this._body);
}
async text() {
return this._body;
}
clone() {
const initClone = { ...this };
initClone.headers = new MockHeaders(this.headers);
return new MockResponse(this._body, initClone);
}
}
function setupGlobal(gbl) {
if (gbl.window == null) {
const win = (gbl.window = new MockWindow());
WINDOW_FUNCTIONS.forEach((fnName) => {
if (!(fnName in gbl)) {
gbl[fnName] = win[fnName].bind(win);
}
});
WINDOW_PROPS.forEach((propName) => {
if (!(propName in gbl)) {
Object.defineProperty(gbl, propName, {
get() {
return win[propName];
},
set(val) {
win[propName] = val;
},
configurable: true,
enumerable: true,
});
}
});
GLOBAL_CONSTRUCTORS.forEach(([cstrName]) => {
gbl[cstrName] = win[cstrName];
});
}
return gbl.window;
}
function teardownGlobal(gbl) {
const win = gbl.window;
if (win && typeof win.close === 'function') {
win.close();
}
}
function patchWindow(winToBePatched) {
const mockWin = new MockWindow(false);
WINDOW_FUNCTIONS.forEach((fnName) => {
if (typeof winToBePatched[fnName] !== 'function') {
winToBePatched[fnName] = mockWin[fnName].bind(mockWin);
}
});
WINDOW_PROPS.forEach((propName) => {
if (winToBePatched === undefined) {
Object.defineProperty(winToBePatched, propName, {
get() {
return mockWin[propName];
},
set(val) {
mockWin[propName] = val;
},
configurable: true,
enumerable: true,
});
}
});
}
function addGlobalsToWindowPrototype(mockWinPrototype) {
GLOBAL_CONSTRUCTORS.forEach(([cstrName, Cstr]) => {
Object.defineProperty(mockWinPrototype, cstrName, {
get() {
return this['__' + cstrName] || Cstr;
},
set(cstr) {
this['__' + cstrName] = cstr;
},
configurable: true,
enumerable: true,
});
});
}
const WINDOW_FUNCTIONS = [
'addEventListener',
'alert',
'blur',
'cancelAnimationFrame',
'cancelIdleCallback',
'clearInterval',
'clearTimeout',
'close',
'confirm',
'dispatchEvent',
'focus',
'getComputedStyle',
'matchMedia',
'open',
'prompt',
'removeEventListener',
'requestAnimationFrame',
'requestIdleCallback',
'URL',
];
const WINDOW_PROPS = [
'customElements',
'devicePixelRatio',
'document',
'history',
'innerHeight',
'innerWidth',
'localStorage',
'location',
'navigator',
'pageXOffset',
'pageYOffset',
'performance',
'screenLeft',
'screenTop',
'screenX',
'screenY',
'scrollX',
'scrollY',
'sessionStorage',
'CSS',
'CustomEvent',
'Event',
'Element',
'HTMLElement',
'Node',
'NodeList',
'FocusEvent',
'KeyboardEvent',
'MouseEvent',
];
const GLOBAL_CONSTRUCTORS = [
['CustomEvent', MockCustomEvent],
['Event', MockEvent],
['Headers', MockHeaders],
['FocusEvent', MockFocusEvent],
['KeyboardEvent', MockKeyboardEvent],
['MouseEvent', MockMouseEvent],
['Request', MockRequest],
['Response', MockResponse],
['DOMParser', MockDOMParser],
['HTMLAnchorElement', MockAnchorElement],
['HTMLBaseElement', MockBaseElement],
['HTMLButtonElement', MockButtonElement],
['HTMLCanvasElement', MockCanvasElement],
['HTMLFormElement', MockFormElement],
['HTMLImageElement', MockImageElement],
['HTMLInputElement', MockInputElement],
['HTMLLinkElement', MockLinkElement],
['HTMLMetaElement', MockMetaElement],
['HTMLScriptElement', MockScriptElement],
['HTMLStyleElement', MockStyleElement],
['HTMLTemplateElement', MockTemplateElement],
['HTMLTitleElement', MockTitleElement],
];
class MockHistory {
constructor() {
this.items = [];
}
get length() {
return this.items.length;
}
back() {
this.go(-1);
}
forward() {
this.go(1);
}
go(_value) {
//
}
pushState(_state, _title, _url) {
//
}
replaceState(_state, _title, _url) {
//
}
}
class MockIntersectionObserver {
constructor() {
/**/
}
disconnect() {
/**/
}
observe() {
/**/
}
takeRecords() {
return [];
}
unobserve() {
/**/
}
}
class MockLocation {
constructor() {
this.ancestorOrigins = null;
this.protocol = '';
this.host = '';
this.hostname = '';
this.port = '';
this.pathname = '';
this.search = '';
this.hash = '';
this.username = '';
this.password = '';
this.origin = '';
this._href = '';
}
get href() {
return this._href;
}
set href(value) {
const url = new URL(value, 'http://mockdoc.stenciljs.com');
this._href = url.href;
this.protocol = url.protocol;
this.host = url.host;
this.hostname = url.hostname;
this.port = url.port;
this.pathname = url.pathname;
this.search = url.search;
this.hash = url.hash;
this.username = url.username;
this.password = url.password;
this.origin = url.origin;
}
assign(_url) {
//
}
reload(_forcedReload) {
//
}
replace(_url) {
//
}
toString() {
return this.href;
}
}
class MockNavigator {
constructor() {
this.appCodeName = 'MockNavigator';
this.appName = 'MockNavigator';
this.appVersion = 'MockNavigator';
this.platform = 'MockNavigator';
this.userAgent = 'MockNavigator';
}
}
/**
* https://developer.mozilla.org/en-US/docs/Web/API/Performance
*/
class MockPerformance {
constructor() {
this.timeOrigin = Date.now();
this.eventCounts = new Map();
}
addEventListener() {
//
}
clearMarks() {
//
}
clearMeasures() {
//
}
clearResourceTimings() {
//
}
dispatchEvent() {
return true;
}
getEntries() {
return [];
}
getEntriesByName() {
return [];
}
getEntriesByType() {
return [];
}
// Stencil's implementation of `mark` is non-compliant with the `Performance` interface. Because Stencil will
// instantiate an instance of this class and may attempt to assign it to a variable of type `Performance`, the return
// type must match the `Performance` interface (rather than typing this function as returning `void` and ignoring the
// associated errors returned by the type checker)
// @ts-ignore
mark() {
//
}
// Stencil's implementation of `measure` is non-compliant with the `Performance` interface. Because Stencil will
// instantiate an instance of this class and may attempt to assign it to a variable of type `Performance`, the return
// type must match the `Performance` interface (rather than typing this function as returning `void` and ignoring the
// associated errors returned by the type checker)
// @ts-ignore
measure() {
//
}
get navigation() {
return {};
}
now() {
return Date.now() - this.timeOrigin;
}
get onresourcetimingbufferfull() {
return null;
}
removeEventListener() {
//
}
setResourceTimingBufferSize() {
//
}
get timing() {
return {};
}
toJSON() {
//
}
}
function resetPerformance(perf) {
if (perf != null) {
try {
perf.timeOrigin = Date.now();
}
catch (e) { }
}
}
class MockStorage {
constructor() {
this.items = new Map();
}
key(_value) {
//
}
getItem(key) {
key = String(key);
if (this.items.has(key)) {
return this.items.get(key);
}
return null;
}
setItem(key, value) {
if (value == null) {
value = 'null';
}
this.items.set(String(key), String(value));
}
removeItem(key) {
this.items.delete(String(key));
}
clear() {
this.items.clear();
}
}
const nativeClearInterval = clearInterval;
const nativeClearTimeout = clearTimeout;
const nativeSetInterval = setInterval;
const nativeSetTimeout = setTimeout;
const nativeURL = URL;
class MockWindow {
constructor(html = null) {
if (html !== false) {
this.document = new MockDocument(html, this);
}
else {
this.document = null;
}
this.performance = new MockPerformance();
this.customElements = new MockCustomElementRegistry(this);
this.console = createConsole();
resetWindowDefaults(this);
resetWindowDimensions(this);
}
addEventListener(type, handler) {
addEventListener(this, type, handler);
}
alert(msg) {
if (this.console) {
this.console.debug(msg);
}
else {
console.debug(msg);
}
}
blur() {
/**/
}
cancelAnimationFrame(id) {
this.__clearTimeout(id);
}
cancelIdleCallback(id) {
this.__clearTimeout(id);
}
get CharacterData() {
if (this.__charDataCstr == null) {
const ownerDocument = this.document;
this.__charDataCstr = class extends MockNode {
constructor() {
super(ownerDocument, 0, 'test', '');
throw new Error('Illegal constructor: cannot construct CharacterData');
}
};
}
return this.__charDataCstr;
}
set CharacterData(charDataCstr) {
this.__charDataCstr = charDataCstr;
}
clearInterval(id) {
this.__clearInterval(id);
}
clearTimeout(id) {
this.__clearTimeout(id);
}
close() {
resetWindow(this);
}
confirm() {
return false;
}
get CSS() {
return {
supports: () => true,
};
}
get Document() {
if (this.__docCstr == null) {
const win = this;
this.__docCstr = class extends MockDocument {
constructor() {
super(false, win);
throw new Error('Illegal constructor: cannot construct Document');
}
};
}
return this.__docCstr;
}
set Document(docCstr) {
this.__docCstr = docCstr;
}
get DocumentFragment() {
if (this.__docFragCstr == null) {
const ownerDocument = this.document;
this.__docFragCstr = class extends MockDocumentFragment {
constructor() {
super(ownerDocument);
throw new Error('Illegal constructor: cannot construct DocumentFragment');
}
};
}
return this.__docFragCstr;
}
set DocumentFragment(docFragCstr) {
this.__docFragCstr = docFragCstr;
}
get DocumentType() {
if (this.__docTypeCstr == null) {
const ownerDocument = this.document;
this.__docTypeCstr = class extends MockNode {
constructor() {
super(ownerDocument, 0, 'test', '');
throw new Error('Illegal constructor: cannot construct DocumentType');
}
};
}
return this.__docTypeCstr;
}
set DocumentType(docTypeCstr) {
this.__docTypeCstr = docTypeCstr;
}
get DOMTokenList() {
if (this.__domTokenListCstr == null) {
this.__domTokenListCstr = class MockDOMTokenList {
};
}
return this.__domTokenListCstr;
}
set DOMTokenList(domTokenListCstr) {
this.__domTokenListCstr = domTokenListCstr;
}
dispatchEvent(ev) {
return dispatchEvent(this, ev);
}
get Element() {
if (this.__elementCstr == null) {
const ownerDocument = this.document;
this.__elementCstr = class extends MockElement {
constructor() {
super(ownerDocument, '');
throw new Error('Illegal constructor: cannot construct Element');
}
};
}
return this.__elementCstr;
}
fetch(input, init) {
if (typeof fetch === 'function') {
return fetch(input, init);
}
throw new Error(`fetch() not implemented`);
}
focus() {
/**/
}
getComputedStyle(_) {
return {
cssText: '',
length: 0,
parentRule: null,
getPropertyPriority() {
return null;
},
getPropertyValue() {
return '';
},
item() {
return null;
},
removeProperty() {
return null;
},
setProperty() {
return null;
},
};
}
get globalThis() {
return this;
}
get history() {
if (this.__history == null) {
this.__history = new MockHistory();
}
return this.__history;
}
set history(hsty) {
this.__history = hsty;
}
get JSON() {
return JSON;
}
get HTMLElement() {
if (this.__htmlElementCstr == null) {
const ownerDocument = this.document;
this.__htmlElementCstr = class extends MockHTMLElement {
constructor() {
super(ownerDocument, '');
const observedAttributes = this.constructor.observedAttributes;
if (Array.isArray(observedAttributes) && typeof this.attributeChangedCallback === 'function') {
observedAttributes.forEach((attrName) => {
const attrValue = this.getAttribute(attrName);
if (attrValue != null) {
this.attributeChangedCallback(attrName, null, attrValue);
}
});
}
}
};
}
return this.__htmlElementCstr;
}
set HTMLElement(htmlElementCstr) {
this.__htmlElementCstr = htmlElementCstr;
}
get IntersectionObserver() {
return MockIntersectionObserver;
}
get localStorage() {
if (this.__localStorage == null) {
this.__localStorage = new MockStorage();
}
return this.__localStorage;
}
set localStorage(locStorage) {
this.__localStorage = locStorage;
}
get location() {
if (this.__location == null) {
this.__location = new MockLocation();
}
return this.__location;
}
set location(val) {
if (typeof val === 'string') {
if (this.__location == null) {
this.__location = new MockLocation();
}
this.__location.href = val;
}
else {
this.__location = val;
}
}
matchMedia() {
return {
matches: false,
};
}
get Node() {
if (this.__nodeCstr == null) {
const ownerDocument = this.document;
this.__nodeCstr = class extends MockNode {
constructor() {
super(ownerDocument, 0, 'test', '');
throw new Error('Illegal constructor: cannot construct Node');
}
};
}
return this.__nodeCstr;
}
get NodeList() {
if (this.__nodeListCstr == null) {
const ownerDocument = this.document;
this.__nodeListCstr = class extends MockNodeList {
constructor() {
super(ownerDocument, [], 0);
throw new Error('Illegal constructor: cannot construct NodeList');
}
};
}
return this.__nodeListCstr;
}
get navigator() {
if (this.__navigator == null) {
this.__navigator = new MockNavigator();
}
return this.__navigator;
}
set navigator(nav) {
this.__navigator = nav;
}
get parent() {
return null;
}
prompt() {
return '';
}
open() {
return null;
}
get origin() {
return this.location.origin;
}
removeEventListener(type, handler) {
removeEventListener(this, type, handler);
}
requestAnimationFrame(callback) {
return this.setTimeout(() => {
callback(Date.now());
}, 0);
}
requestIdleCallback(callback) {
return this.setTimeout(() => {
callback({
didTimeout: false,
timeRemaining: () => 0,
});
}, 0);
}
scroll(_x, _y) {
/**/
}
scrollBy(_x, _y) {
/**/
}
scrollTo(_x, _y) {
/**/
}
get self() {
return this;
}
get sessionStorage() {
if (this.__sessionStorage == null) {
this.__sessionStorage = new MockStorage();
}
return this.__sessionStorage;
}
set sessionStorage(locStorage) {
this.__sessionStorage = locStorage;
}
setInterval(callback, ms, ...args) {
if (this.__timeouts == null) {
this.__timeouts = new Set();
}
ms = Math.min(ms, this.__maxTimeout);
if (this.__allowInterval) {
const intervalId = this.__setInterval(() => {
if (this.__timeouts) {
this.__timeouts.delete(intervalId);
try {
callback(...args);
}
catch (e) {
if (this.console) {
this.console.error(e);
}
else {
console.error(e);
}
}
}
}, ms);
if (this.__timeouts) {
this.__timeouts.add(intervalId);
}
return intervalId;
}
const timeoutId = this.__setTimeout(() => {
if (this.__timeouts) {
this.__timeouts.delete(timeoutId);
try {
callback(...args);
}
catch (e) {
if (this.console) {
this.console.error(e);
}
else {
console.error(e);
}
}
}
}, ms);
if (this.__timeouts) {
this.__timeouts.add(timeoutId);
}
return timeoutId;
}
setTimeout(callback, ms, ...args) {
if (this.__timeouts == null) {
this.__timeouts = new Set();
}
ms = Math.min(ms, this.__maxTimeout);
const timeoutId = this.__setTimeout(() => {
if (this.__timeouts) {
this.__timeouts.delete(timeoutId);
try {
callback(...args);
}
catch (e) {
if (this.console) {
this.console.error(e);
}
else {
console.error(e);
}
}
}
}, ms);
if (this.__timeouts) {
this.__timeouts.add(timeoutId);
}
return timeoutId;
}
get top() {
return this;
}
get window() {
return this;
}
onanimationstart() {
/**/
}
onanimationend() {
/**/
}
onanimationiteration() {
/**/
}
onabort() {
/**/
}
onauxclick() {
/**/
}
onbeforecopy() {
/**/
}
onbeforecut() {
/**/
}
onbeforepaste() {
/**/
}
onblur() {
/**/
}
oncancel() {
/**/
}
oncanplay() {
/**/
}
oncanplaythrough() {
/**/
}
onchange() {
/**/
}
onclick() {
/**/
}
onclose() {
/**/
}
oncontextmenu() {
/**/
}
oncopy() {
/**/
}
oncuechange() {
/**/
}
oncut() {
/**/
}
ondblclick() {
/**/
}
ondrag() {
/**/
}
ondragend() {
/**/
}
ondragenter() {
/**/
}
ondragleave() {
/**/
}
ondragover() {
/**/
}
ondragstart() {
/**/
}
ondrop() {
/**/
}
ondurationchange() {
/**/
}
onemptied() {
/**/
}
onended() {
/**/
}
onerror() {
/**/
}
onfocus() {
/**/
}
onfocusin() {
/**/
}
onfocusout() {
/**/
}
onformdata() {
/**/
}
onfullscreenchange() {
/**/
}
onfullscreenerror() {
/**/
}
ongotpointercapture() {
/**/
}
oninput() {
/**/
}
oninvalid() {
/**/
}
onkeydown() {
/**/
}
onkeypress() {
/**/
}
onkeyup() {
/**/
}
onload() {
/**/
}
onloadeddata() {
/**/
}
onloadedmetadata() {
/**/
}
onloadstart() {
/**/
}
onlostpointercapture() {
/**/
}
onmousedown() {
/**/
}
onmouseenter() {
/**/
}
onmouseleave() {
/**/
}
onmousemove() {
/**/
}
onmouseout() {
/**/
}
onmouseover() {
/**/
}
onmouseup() {
/**/
}
onmousewheel() {
/**/
}
onpaste() {
/**/
}
onpause() {
/**/
}
onplay() {
/**/
}
onplaying() {
/**/
}
onpointercancel() {
/**/
}
onpointerdown() {
/**/
}
onpointerenter() {
/**/
}
onpointerleave() {
/**/
}
onpointermove() {
/**/
}
onpointerout() {
/**/
}
onpointerover() {
/**/
}
onpointerup() {
/**/
}
onprogress() {
/**/
}
onratechange() {
/**/
}
onreset() {
/**/
}
onresize() {
/**/
}
onscroll() {
/**/
}
onsearch() {
/**/
}
onseeked() {
/**/
}
onseeking() {
/**/
}
onselect() {
/**/
}
onselectstart() {
/**/
}
onstalled() {
/**/
}
onsubmit() {
/**/
}
onsuspend() {
/**/
}
ontimeupdate() {
/**/
}
ontoggle() {
/**/
}
onvolumechange() {
/**/
}
onwaiting() {
/**/
}
onwebkitfullscreenchange() {
/**/
}
onwebkitfullscreenerror() {
/**/
}
onwheel() {
/**/
}
}
addGlobalsToWindowPrototype(MockWindow.prototype);
function resetWindowDefaults(win) {
win.__clearInterval = nativeClearInterval;
win.__clearTimeout = nativeClearTimeout;
win.__setInterval = nativeSetInterval;
win.__setTimeout = nativeSetTimeout;
win.__maxTimeout = 30000;
win.__allowInterval = true;
win.URL = nativeURL;
}
function cloneWindow(srcWin, opts = {}) {
if (srcWin == null) {
return null;
}
const clonedWin = new MockWindow(false);
if (!opts.customElementProxy) {
// TODO(STENCIL-345) - Evaluate reconciling MockWindow, Window differences
// @ts-ignore
srcWin.customElements = null;
}
if (srcWin.document != null) {
const clonedDoc = new MockDocument(false, clonedWin);
clonedWin.document = clonedDoc;
clonedDoc.documentElement = srcWin.document.documentElement.cloneNode(true);
}
else {
clonedWin.document = new MockDocument(null, clonedWin);
}
return clonedWin;
}
function cloneDocument(srcDoc) {
if (srcDoc == null) {
return null;
}
const dstWin = cloneWindow(srcDoc.defaultView);
return dstWin.document;
}
// TODO(STENCIL-345) - Evaluate reconciling MockWindow, Window differences
/**
* Constrain setTimeout() to 1ms, but still async. Also
* only allow setInterval() to fire once, also constrained to 1ms.
* @param win the mock window instance to update
*/
function constrainTimeouts(win) {
win.__allowInterval = false;
win.__maxTimeout = 0;
}
function resetWindow(win) {
if (win != null) {
if (win.__timeouts) {
win.__timeouts.forEach((timeoutId) => {
nativeClearInterval(timeoutId);
nativeClearTimeout(timeoutId);
});
win.__timeouts.clear();
}
if (win.customElements && win.customElements.clear) {
win.customElements.clear();
}
resetDocument(win.document);
resetPerformance(win.performance);
for (const key in win) {
if (win.hasOwnProperty(key) && key !== 'document' && key !== 'performance' && key !== 'customElements') {
delete win[key];
}
}
resetWindowDefaults(win);
resetWindowDimensions(win);
resetEventListeners(win);
if (win.document != null) {
try {
win.document.defaultView = win;
}
catch (e) { }
}
// ensure we don't hold onto nodeFetch values
win.fetch = null;
win.Headers = null;
win.Request = null;
win.Response = null;
win.FetchError = null;
}
}
function resetWindowDimensions(win) {
try {
win.devicePixelRatio = 1;
win.innerHeight = 768;
win.innerWidth = 1366;
win.pageXOffset = 0;
win.pageYOffset = 0;
win.screenLeft = 0;
win.screenTop = 0;
win.screenX = 0;
win.screenY = 0;
win.scrollX = 0;
win.scrollY = 0;
win.screen = {
availHeight: win.innerHeight,
availLeft: 0,
availTop: 0,
availWidth: win.innerWidth,
colorDepth: 24,
height: win.innerHeight,
keepAwake: false,
orientation: {
angle: 0,
type: 'portrait-primary',
},
pixelDepth: 24,
width: win.innerWidth,
};
}
catch (e) { }
}
class MockDocument extends MockHTMLElement {
constructor(html = null, win = null) {
super(null, null);
this.nodeName = "#document" /* NODE_NAMES.DOCUMENT_NODE */;
this.nodeType = 9 /* NODE_TYPES.DOCUMENT_NODE */;
this.defaultView = win;
this.cookie = '';
this.referrer = '';
this.appendChild(this.createDocumentTypeNode());
if (typeof html === 'string') {
const parsedDoc = parseDocumentUtil(this, html);
const documentElement = parsedDoc.children.find((elm) => elm.nodeName === 'HTML');
if (documentElement != null) {
this.appendChild(documentElement);
setOwnerDocument(documentElement, this);
}
}
else if (html !== false) {
const documentElement = new MockHTMLElement(this, 'html');
this.appendChild(documentElement);
documentElement.appendChild(new MockHTMLElement(this, 'head'));
documentElement.appendChild(new MockHTMLElement(this, 'body'));
}
}
get dir() {
return this.documentElement.dir;
}
set dir(value) {
this.documentElement.dir = value;
}
get location() {
if (this.defaultView != null) {
return this.defaultView.location;
}
return null;
}
set location(val) {
if (this.defaultView != null) {
this.defaultView.location = val;
}
}
get baseURI() {
const baseNode = this.head.childNodes.find((node) => node.nodeName === 'BASE');
if (baseNode) {
return baseNode.href;
}
return this.URL;
}
get URL() {
return this.location.href;
}
get styleSheets() {
return this.querySelectorAll('style');
}
get scripts() {
return this.querySelectorAll('script');
}
get forms() {
return this.querySelectorAll('form');
}
get images() {
return this.querySelectorAll('img');
}
get scrollingElement() {
return this.documentElement;
}
get documentElement() {
for (let i = this.childNodes.length - 1; i >= 0; i--) {
if (this.childNodes[i].nodeName === 'HTML') {
return this.childNodes[i];
}
}
const documentElement = new MockHTMLElement(this, 'html');
this.appendChild(documentElement);
return documentElement;
}
set documentElement(documentElement) {
for (let i = this.childNodes.length - 1; i >= 0; i--) {
if (this.childNodes[i].nodeType !== 10 /* NODE_TYPES.DOCUMENT_TYPE_NODE */) {
this.childNodes[i].remove();
}
}
if (documentElement != null) {
this.appendChild(documentElement);
setOwnerDocument(documentElement, this);
}
}
get head() {
const documentElement = this.documentElement;
for (let i = 0; i < documentElement.childNodes.length; i++) {
if (documentElement.childNodes[i].nodeName === 'HEAD') {
return documentElement.childNodes[i];
}
}
const head = new MockHTMLElement(this, 'head');
documentElement.insertBefore(head, documentElement.firstChild);
return head;
}
set head(head) {
const documentElement = this.documentElement;
for (let i = documentElement.childNodes.length - 1; i >= 0; i--) {
if (documentElement.childNodes[i].nodeName === 'HEAD') {
documentElement.childNodes[i].remove();
}
}
if (head != null) {
documentElement.insertBefore(head, documentElement.firstChild);
setOwnerDocument(head, this);
}
}
get body() {
const documentElement = this.documentElement;
for (let i = documentElement.childNodes.length - 1; i >= 0; i--) {
if (documentElement.childNodes[i].nodeName === 'BODY') {
return documentElement.childNodes[i];
}
}
const body = new MockHTMLElement(this, 'body');
documentElement.appendChild(body);
return body;
}
set body(body) {
const documentElement = this.documentElement;
for (let i = documentElement.childNodes.length - 1; i >= 0; i--) {
if (documentElement.childNodes[i].nodeName === 'BODY') {
documentElement.childNodes[i].remove();
}
}
if (body != null) {
documentElement.appendChild(body);
setOwnerDocument(body, this);
}
}
appendChild(newNode) {
newNode.remove();
newNode.parentNode = this;
this.childNodes.push(newNode);
return newNode;
}
createComment(data) {
return new MockComment(this, data);
}
createAttribute(attrName) {
return new MockAttr(attrName.toLowerCase(), '');
}
createAttributeNS(namespaceURI, attrName) {
return new MockAttr(attrName, '', namespaceURI);
}
createElement(tagName) {
if (tagName === "#document" /* NODE_NAMES.DOCUMENT_NODE */) {
const doc = new MockDocument(false);
doc.nodeName = tagName;
doc.parentNode = null;
return doc;
}
return createElement(this, tagName);
}
createElementNS(namespaceURI, tagName) {
const elmNs = createElementNS(this, namespaceURI, tagName);
elmNs.namespaceURI = namespaceURI;
return elmNs;
}
createTextNode(text) {
return new MockTextNode(this, text);
}
createDocumentFragment() {
return new MockDocumentFragment(this);
}
createDocumentTypeNode() {
return new MockDocumentTypeNode(this);
}
getElementById(id) {
return getElementById(this, id);
}
getElementsByName(elmName) {
return getElementsByName(this, elmName.toLowerCase());
}
get title() {
const title = this.head.childNodes.find((elm) => elm.nodeName === 'TITLE');
if (title != null && typeof title.textContent === 'string') {
return title.textContent.trim();
}
return '';
}
set title(value) {
const head = this.head;
let title = head.childNodes.find((elm) => elm.nodeName === 'TITLE');
if (title == null) {
title = this.createElement('title');
head.appendChild(title);
}
title.textContent = value;
}
}
function createDocument(html = null) {
return new MockWindow(html).document;
}
function createFragment(html) {
return parseHtmlToFragment(html, null);
}
function resetDocument(doc) {
if (doc != null) {
resetEventListeners(doc);
const documentElement = doc.documentElement;
if (documentElement != null) {
resetElement(documentElement);
for (let i = 0, ii = documentElement.childNodes.length; i < ii; i++) {
const childNode = documentElement.childNodes[i];
resetElement(childNode);
childNode.childNodes.length = 0;
}
}
for (const key in doc) {
if (doc.hasOwnProperty(key) && !DOC_KEY_KEEPERS.has(key)) {
delete doc[key];
}
}
try {
doc.nodeName = "#document" /* NODE_NAMES.DOCUMENT_NODE */;
}
catch (e) { }
try {
doc.nodeType = 9 /* NODE_TYPES.DOCUMENT_NODE */;
}
catch (e) { }
try {
doc.cookie = '';
}
catch (e) { }
try {
doc.referrer = '';
}
catch (e) { }
}
}
const DOC_KEY_KEEPERS = new Set([
'nodeName',
'nodeType',
'nodeValue',
'ownerDocument',
'parentNode',
'childNodes',
'_shadowRoot',
]);
function getElementById(elm, id) {
const children = elm.children;
for (let i = 0, ii = children.length; i < ii; i++) {
const childElm = children[i];
if (childElm.id === id) {
return childElm;
}
const childElmFound = getElementById(childElm, id);
if (childElmFound != null) {
return childElmFound;
}
}
return null;
}
function getElementsByName(elm, elmName, foundElms = []) {
const children = elm.children;
for (let i = 0, ii = children.length; i < ii; i++) {
const childElm = children[i];
if (childElm.name && childElm.name.toLowerCase() === elmName) {
foundElms.push(childElm);
}
getElementsByName(childElm, elmName, foundElms);
}
return foundElms;
}
function setOwnerDocument(elm, ownerDocument) {
for (let i = 0, ii = elm.childNodes.length; i < ii; i++) {
elm.childNodes[i].ownerDocument = ownerDocument;
if (elm.childNodes[i].nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */) {
setOwnerDocument(elm.childNodes[i], ownerDocument);
}
}
}
function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResults, $stencilAfterHydrate, $stencilHydrateResolve) {
var globalThis = $stencilWindow;
var self = $stencilWindow;
var top = $stencilWindow;
var parent = $stencilWindow;
var addEventListener = $stencilWindow.addEventListener.bind($stencilWindow);
var alert = $stencilWindow.alert.bind($stencilWindow);
var blur = $stencilWindow.blur.bind($stencilWindow);
var cancelAnimationFrame = $stencilWindow.cancelAnimationFrame.bind($stencilWindow);
var cancelIdleCallback = $stencilWindow.cancelIdleCallback.bind($stencilWindow);
var clearInterval = $stencilWindow.clearInterval.bind($stencilWindow);
var clearTimeout = $stencilWindow.clearTimeout.bind($stencilWindow);
var close = () => {};
var confirm = $stencilWindow.confirm.bind($stencilWindow);
var dispatchEvent = $stencilWindow.dispatchEvent.bind($stencilWindow);
var focus = $stencilWindow.focus.bind($stencilWindow);
var getComputedStyle = $stencilWindow.getComputedStyle.bind($stencilWindow);
var matchMedia = $stencilWindow.matchMedia.bind($stencilWindow);
var open = $stencilWindow.open.bind($stencilWindow);
var prompt = $stencilWindow.prompt.bind($stencilWindow);
var removeEventListener = $stencilWindow.removeEventListener.bind($stencilWindow);
var requestAnimationFrame = $stencilWindow.requestAnimationFrame.bind($stencilWindow);
var requestIdleCallback = $stencilWindow.requestIdleCallback.bind($stencilWindow);
var setInterval = $stencilWindow.setInterval.bind($stencilWindow);
var setTimeout = $stencilWindow.setTimeout.bind($stencilWindow);
var CharacterData = $stencilWindow.CharacterData;
var CSS = $stencilWindow.CSS;
var CustomEvent = $stencilWindow.CustomEvent;
var Document = $stencilWindow.Document;
var DocumentFragment = $stencilWindow.DocumentFragment;
var DocumentType = $stencilWindow.DocumentType;
var DOMTokenList = $stencilWindow.DOMTokenList;
var Element = $stencilWindow.Element;
var Event = $stencilWindow.Event;
var HTMLAnchorElement = $stencilWindow.HTMLAnchorElement;
var HTMLBaseElement = $stencilWindow.HTMLBaseElement;
var HTMLButtonElement = $stencilWindow.HTMLButtonElement;
var HTMLCanvasElement = $stencilWindow.HTMLCanvasElement;
var HTMLElement = $stencilWindow.HTMLElement;
var HTMLFormElement = $stencilWindow.HTMLFormElement;
var HTMLImageElement = $stencilWindow.HTMLImageElement;
var HTMLInputElement = $stencilWindow.HTMLInputElement;
var HTMLLinkElement = $stencilWindow.HTMLLinkElement;
var HTMLMetaElement = $stencilWindow.HTMLMetaElement;
var HTMLScriptElement = $stencilWindow.HTMLScriptElement;
var HTMLStyleElement = $stencilWindow.HTMLStyleElement;
var HTMLTemplateElement = $stencilWindow.HTMLTemplateElement;
var HTMLTitleElement = $stencilWindow.HTMLTitleElement;
var IntersectionObserver = $stencilWindow.IntersectionObserver;
var KeyboardEvent = $stencilWindow.KeyboardEvent;
var MouseEvent = $stencilWindow.MouseEvent;
var Node = $stencilWindow.Node;
var NodeList = $stencilWindow.NodeList;
var URL = $stencilWindow.URL;
var console = $stencilWindow.console;
var customElements = $stencilWindow.customElements;
var history = $stencilWindow.history;
var localStorage = $stencilWindow.localStorage;
var location = $stencilWindow.location;
var navigator = $stencilWindow.navigator;
var performance = $stencilWindow.performance;
var sessionStorage = $stencilWindow.sessionStorage;
var devicePixelRatio = $stencilWindow.devicePixelRatio;
var innerHeight = $stencilWindow.innerHeight;
var innerWidth = $stencilWindow.innerWidth;
var origin = $stencilWindow.origin;
var pageXOffset = $stencilWindow.pageXOffset;
var pageYOffset = $stencilWindow.pageYOffset;
var screen = $stencilWindow.screen;
var screenLeft = $stencilWindow.screenLeft;
var screenTop = $stencilWindow.screenTop;
var screenX = $stencilWindow.screenX;
var screenY = $stencilWindow.screenY;
var scrollX = $stencilWindow.scrollX;
var scrollY = $stencilWindow.scrollY;
var exports = {};
var fetch, FetchError, Headers, Request, Response;
if (typeof $stencilWindow.fetch === 'function') {
fetch = $stencilWindow.fetch;
} else {
fetch = $stencilWindow.fetch = function() { throw new Error('fetch() is not implemented'); };
}
if (typeof $stencilWindow.FetchError === 'function') {
FetchError = $stencilWindow.FetchError;
} else {
FetchError = $stencilWindow.FetchError = class FetchError { constructor() { throw new Error('FetchError is not implemented'); } };
}
if (typeof $stencilWindow.Headers === 'function') {
Headers = $stencilWindow.Headers;
} else {
Headers = $stencilWindow.Headers = class Headers { constructor() { throw new Error('Headers is not implemented'); } };
}
if (typeof $stencilWindow.Request === 'function') {
Request = $stencilWindow.Request;
} else {
Request = $stencilWindow.Request = class Request { constructor() { throw new Error('Request is not implemented'); } };
}
if (typeof $stencilWindow.Response === 'function') {
Response = $stencilWindow.Response;
} else {
Response = $stencilWindow.Response = class Response { constructor() { throw new Error('Response is not implemented'); } };
}
function hydrateAppClosure($stencilWindow) {
const window = $stencilWindow;
const document = $stencilWindow.document;
/*hydrateAppClosure start*/
var Taro = require('@tarojs/taro');
var Hammer = require('hammerjs');
var SwiperJS = require('swiper/bundle');
var runtime = require('@tarojs/runtime');
var resolvePathname = require('resolve-pathname');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
function _interopNamespace(e) {
if (e && e.__esModule) return e;
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () {
return e[k];
}
});
}
});
}
n['default'] = e;
return Object.freeze(n);
}
var Taro__default = /*#__PURE__*/_interopDefaultLegacy(Taro);
var Hammer__default = /*#__PURE__*/_interopDefaultLegacy(Hammer);
var SwiperJS__default = /*#__PURE__*/_interopDefaultLegacy(SwiperJS);
var resolvePathname__default = /*#__PURE__*/_interopDefaultLegacy(resolvePathname);
const NAMESPACE = 'taro-components';
const BUILD = /* taro-components */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: true, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: false, cssAnnotations: true, cssVarShim: false, devTools: false, disconnectedCallback: true, dynamicImportShim: false, element: false, event: true, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: true, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: true, hydrateServerSide: true, hydratedAttribute: false, hydratedClass: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, safari10: false, scoped: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: false, shadowDomShim: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: false, taskQueue: true, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
function queryNonceMetaTagContent(e) {
var t, o, n;
return null !== (n = null === (o = null === (t = e.head) || void 0 === t ? void 0 : t.querySelector('meta[name="csp-nonce"]')) || void 0 === o ? void 0 : o.getAttribute("content")) && void 0 !== n ? n : void 0;
}
function componentOnReady() {
return getHostRef(this).$onReadyPromise$;
}
function forceUpdate() {}
function hydrateApp(e, t, o, n, s) {
function l() {
if (global.clearTimeout(p), i.clear(), r.clear(), !h) {
h = !0;
try {
t.clientHydrateAnnotations && insertVdomAnnotations(e.document, t.staticComponents),
e.dispatchEvent(new e.Event("DOMContentLoaded")), e.document.createElement = c,
e.document.createElementNS = $;
} catch (e) {
renderCatchError(t, o, e);
}
}
n(e, t, o, s);
}
function a(e) {
renderCatchError(t, o, e), l();
}
const r = new Set, i = new Set, d = new Set, c = e.document.createElement, $ = e.document.createElementNS, m = Promise.resolve();
let p, h = !1;
try {
function u() {
return g(this);
}
function f(e) {
if (isValidComponent(e, t) && !getHostRef(e)) {
const t = loadModule({
$tagName$: e.nodeName.toLowerCase(),
$flags$: null
});
null != t && null != t.cmpMeta && (i.add(e), e.connectedCallback = u, registerHost(e, t.cmpMeta),
function o(e, t) {
if ("function" != typeof e.componentOnReady && (e.componentOnReady = componentOnReady),
"function" != typeof e.forceUpdate && (e.forceUpdate = forceUpdate), 1 & t.$flags$ && (e.shadowRoot = e),
null != t.$members$) {
const o = getHostRef(e);
Object.entries(t.$members$).forEach((([n, s]) => {
const l = s[0];
if (31 & l) {
const a = s[1] || n, r = e.getAttribute(a);
if (null != r) {
const e = parsePropertyValue(r, l);
o.$instanceValues$.set(n, e);
}
const i = e[n];
void 0 !== i && (o.$instanceValues$.set(n, i), delete e[n]), Object.defineProperty(e, n, {
get() {
return getValue(this, n);
},
set(e) {
setValue(this, n, e, t);
},
configurable: !0,
enumerable: !0
});
} else 64 & l && Object.defineProperty(e, n, {
value(...e) {
const t = getHostRef(this);
return t.$onInstancePromise$.then((() => t.$lazyInstance$[n](...e))).catch(consoleError);
}
});
}));
}
}(e, t.cmpMeta));
}
}
function g(n) {
return i.delete(n), isValidComponent(n, t) && o.hydratedCount < t.maxHydrateCount && !r.has(n) && shouldHydrate(n) ? (r.add(n),
async function s(e, t, o, n, l) {
o = o.toLowerCase();
const a = loadModule({
$tagName$: o,
$flags$: null
});
if (null != a && null != a.cmpMeta) {
l.add(n);
try {
connectedCallback(n), await n.componentOnReady(), t.hydratedCount++;
const e = getHostRef(n), s = e.$modeName$ ? e.$modeName$ : "$";
t.components.some((e => e.tag === o && e.mode === s)) || t.components.push({
tag: o,
mode: s,
count: 0,
depth: -1
});
} catch (t) {
e.console.error(t);
}
l.delete(n);
}
}(e, o, n.nodeName, n, d)) : m;
}
e.document.createElement = function t(o) {
const n = c.call(e.document, o);
return f(n), n;
}, e.document.createElementNS = function t(o, n) {
const s = $.call(e.document, o, n);
return f(s), s;
}, p = global.setTimeout((function L() {
a(`Hydrate exceeded timeout${function e(t) {
return Array.from(t).map(waitingOnElementMsg);
}(d)}`);
}), t.timeout), plt.$resourcesUrl$ = new URL(t.resourcesUrl || "./", doc.baseURI).href,
function e(t) {
if (null != t && 1 === t.nodeType) {
f(t);
const o = t.children;
for (let t = 0, n = o.length; t < n; t++) e(o[t]);
}
}(e.document.body), function e() {
const t = Array.from(i).filter((e => e.parentElement));
return t.length > 0 ? Promise.all(t.map(g)).then(e) : m;
}().then(l).catch(a);
} catch (y) {
a(y);
}
}
function isValidComponent(e, t) {
if (null != e && 1 === e.nodeType) {
const o = e.nodeName;
if ("string" == typeof o && o.includes("-")) return !t.excludeComponents.includes(o.toLowerCase());
}
return !1;
}
function shouldHydrate(e) {
if (9 === e.nodeType) return !0;
if (NO_HYDRATE_TAGS.has(e.nodeName)) return !1;
if (e.hasAttribute("no-prerender")) return !1;
const t = e.parentNode;
return null == t || shouldHydrate(t);
}
function renderCatchError(e, t, o) {
const n = {
level: "error",
type: "build",
header: "Hydrate Error",
messageText: "",
relFilePath: null,
absFilePath: null,
lines: []
};
if (e.url) try {
const t = new URL(e.url);
"/" !== t.pathname && (n.header += ": " + t.pathname);
} catch (e) {}
null != o && (null != o.stack ? n.messageText = o.stack.toString() : null != o.message ? n.messageText = o.message.toString() : n.messageText = o.toString()),
t.diagnostics.push(n);
}
function printTag(e) {
let t = `<${e.nodeName.toLowerCase()}`;
if (Array.isArray(e.attributes)) for (let o = 0; o < e.attributes.length; o++) {
const n = e.attributes[o];
t += ` ${n.name}`, "" !== n.value && (t += `="${n.value}"`);
}
return t += ">", t;
}
function waitingOnElementMsg(e) {
let t = "";
if (e) {
const o = [];
t = " - waiting on:";
let n = e;
for (;n && 9 !== n.nodeType && "BODY" !== n.nodeName; ) o.unshift(printTag(n)),
n = n.parentElement;
let s = "";
for (const e of o) s += " ", t += `\n${s}${e}`;
}
return t;
}
const createTime = (e, t = "") => {
return () => {};
}, XLINK_NS = "http://www.w3.org/1999/xlink", EMPTY_OBJ = {}, isComplexType = e => "object" == (e = typeof e) || "function" === e, isPromise = e => !!e && ("object" == typeof e || "function" == typeof e) && "function" == typeof e.then, h = (e, t, ...o) => {
let n = null, s = null, l = null, a = !1, r = !1;
const i = [], d = t => {
for (let o = 0; o < t.length; o++) n = t[o], Array.isArray(n) ? d(n) : null != n && "boolean" != typeof n && ((a = "function" != typeof e && !isComplexType(n)) ? n = String(n) : BUILD.isDev ,
a && r ? i[i.length - 1].$text$ += n : i.push(a ? newVNode(null, n) : n), r = a);
};
if (d(o), t && (t.key && (s = t.key),
t.name && (l = t.name), BUILD.vdomClass)) {
const e = t.className || t.class;
e && (t.class = "object" != typeof e ? e : Object.keys(e).filter((t => e[t])).join(" "));
}
if ("function" == typeof e) return e(null === t ? {} : t, i, vdomFnUtils);
const c = newVNode(e, null);
return c.$attrs$ = t, i.length > 0 && (c.$children$ = i), (c.$key$ = s),
(c.$name$ = l), c;
}, newVNode = (e, t) => {
const o = {
$flags$: 0,
$tag$: e,
$text$: t,
$elm$: null,
$children$: null
};
return (o.$attrs$ = null), (o.$key$ = null),
(o.$name$ = null), o;
}, Host = {}, isHost = e => e && e.$tag$ === Host, vdomFnUtils = {
forEach: (e, t) => e.map(convertToPublic).forEach(t),
map: (e, t) => e.map(convertToPublic).map(t).map(convertToPrivate)
}, convertToPublic = e => ({
vattrs: e.$attrs$,
vchildren: e.$children$,
vkey: e.$key$,
vname: e.$name$,
vtag: e.$tag$,
vtext: e.$text$
}), convertToPrivate = e => {
if ("function" == typeof e.vtag) {
const t = {
...e.vattrs
};
return e.vkey && (t.key = e.vkey), e.vname && (t.name = e.vname), h(e.vtag, t, ...e.vchildren || []);
}
const t = newVNode(e.vtag, e.vtext);
return t.$attrs$ = e.vattrs, t.$children$ = e.vchildren, t.$key$ = e.vkey, t.$name$ = e.vname,
t;
}, clientHydrate = (e, t, o, n, s, l, a) => {
let r, i, d, c;
if (1 === l.nodeType) {
for (r = l.getAttribute("c-id"), r && (i = r.split("."), i[0] !== a && "0" !== i[0] || (d = {
$flags$: 0,
$hostId$: i[0],
$nodeId$: i[1],
$depth$: i[2],
$index$: i[3],
$tag$: l.tagName.toLowerCase(),
$elm$: l,
$attrs$: null,
$children$: null,
$key$: null,
$name$: null,
$text$: null
}, t.push(d), l.removeAttribute("c-id"), e.$children$ || (e.$children$ = []), e.$children$[d.$index$] = d,
e = d, n && "0" === d.$depth$ && (n[d.$index$] = d.$elm$))), c = l.childNodes.length - 1; c >= 0; c--) clientHydrate(e, t, o, n, s, l.childNodes[c], a);
if (l.shadowRoot) for (c = l.shadowRoot.childNodes.length - 1; c >= 0; c--) clientHydrate(e, t, o, n, s, l.shadowRoot.childNodes[c], a);
} else if (8 === l.nodeType) i = l.nodeValue.split("."), i[1] !== a && "0" !== i[1] || (r = i[0],
d = {
$flags$: 0,
$hostId$: i[1],
$nodeId$: i[2],
$depth$: i[3],
$index$: i[4],
$elm$: l,
$attrs$: null,
$children$: null,
$key$: null,
$name$: null,
$tag$: null,
$text$: null
}, "t" === r ? (d.$elm$ = l.nextSibling, d.$elm$ && 3 === d.$elm$.nodeType && (d.$text$ = d.$elm$.textContent,
t.push(d), l.remove(), e.$children$ || (e.$children$ = []), e.$children$[d.$index$] = d,
n && "0" === d.$depth$ && (n[d.$index$] = d.$elm$))) : d.$hostId$ === a && ("s" === r ? (d.$tag$ = "slot",
i[5] ? l["s-sn"] = d.$name$ = i[5] : l["s-sn"] = "", l["s-sr"] = !0, o.push(d), e.$children$ || (e.$children$ = []),
e.$children$[d.$index$] = d) : "r" === r && ((s["s-cr"] = l,
l["s-cn"] = !0)))); else if (e && "style" === e.$tag$) {
const t = newVNode(null, l.textContent);
t.$elm$ = l, t.$index$ = "0", e.$children$ = [ t ];
}
}, initializeDocumentHydrate = (e, t) => {
if (1 === e.nodeType) {
let o = 0;
for (;o < e.childNodes.length; o++) initializeDocumentHydrate(e.childNodes[o], t);
if (e.shadowRoot) for (o = 0; o < e.shadowRoot.childNodes.length; o++) initializeDocumentHydrate(e.shadowRoot.childNodes[o], t);
} else if (8 === e.nodeType) {
const o = e.nodeValue.split(".");
"o" === o[0] && (t.set(o[1] + "." + o[2], e), e.nodeValue = "", e["s-en"] = o[3]);
}
}, parsePropertyValue = (e, t) => null == e || isComplexType(e) ? e : 4 & t ? "false" !== e && ("" === e || !!e) : 2 & t ? parseFloat(e) : 1 & t ? String(e) : e, getElement = e => getHostRef(e).$hostElement$ , createEvent = (e, t, o) => {
const n = getElement(e);
return {
emit: e => (emitEvent(n, t, {
bubbles: !!(4 & o),
composed: !!(2 & o),
cancelable: !!(1 & o),
detail: e
}))
};
}, emitEvent = (e, t, o) => {
const n = plt.ce(t, o);
return e.dispatchEvent(n), n;
}, rootAppliedStyles = new WeakMap, registerStyle = (e, t, o) => {
let n = styles.get(e);
n = t, styles.set(e, n);
}, addStyle = (e, t, o, n) => {
var s;
let l = getScopeId(t);
const a = styles.get(l);
if (e = 11 === e.nodeType ? e : doc, a) if ("string" == typeof a) {
e = e.head || e;
let o, r = rootAppliedStyles.get(e);
if (r || rootAppliedStyles.set(e, r = new Set), !r.has(l)) {
if (e.host && (o = e.querySelector(`[sty-id="${l}"]`))) o.innerHTML = a; else {
o = doc.createElement("style"), o.innerHTML = a;
const i = null !== (s = plt.$nonce$) && void 0 !== s ? s : queryNonceMetaTagContent(doc);
null != i && o.setAttribute("nonce", i), o.setAttribute("sty-id", l),
e.insertBefore(o, e.querySelector("link"));
}
r && r.add(l);
}
}
return l;
}, attachStyles = e => {
const t = e.$cmpMeta$, o = e.$hostElement$, s = createTime("attachStyles", t.$tagName$); addStyle(o.getRootNode(), t);
s();
}, getScopeId = (e, t) => "sc-" + (e.$tagName$), setAccessor = (e, t, o, n, s, l) => {
if (o !== n) {
let a = isMemberInElement(e, t), r = t.toLowerCase();
if ("class" === t) {
const t = e.classList, s = parseClassList(o), l = parseClassList(n);
t.remove(...s.filter((e => e && !l.includes(e)))), t.add(...l.filter((e => e && !s.includes(e))));
} else if ("style" === t) {
for (const t in o) n && null != n[t] || (e.style[t] = "");
for (const t in n) o && n[t] === o[t] || (e.style[t] = n[t]);
} else if ("key" === t) ; else if ("ref" === t) n && n(e); else if ((a ) || "o" !== t[0] || "n" !== t[1]) {
{
const i = isComplexType(n);
if ((a || i && null !== n) && !s) try {
if (e.tagName.includes("-")) e[t] = n; else {
const s = null == n ? "" : n;
"list" === t ? a = !1 : null != o && e[t] == s || (e[t] = s);
}
} catch (e) {}
let d = !1;
r !== (r = r.replace(/^xlink\:?/, "")) && (t = r, d = !0), null == n || !1 === n ? !1 === n && "" !== e.getAttribute(t) || (d ? e.removeAttributeNS(XLINK_NS, t) : e.removeAttribute(t)) : (!a || 4 & l || s) && !i && (n = !0 === n ? "" : n,
d ? e.setAttributeNS(XLINK_NS, t, n) : e.setAttribute(t, n));
}
} else t = "-" === t[2] ? t.slice(3) : isMemberInElement(win, r) ? r.slice(2) : r[2] + t.slice(3),
o && plt.rel(e, t, o, !1), n && plt.ael(e, t, n, !1);
}
}, parseClassListRegex = /\s/, parseClassList = e => e ? e.split(parseClassListRegex) : [], updateElement = (e, t, o, n) => {
const s = 11 === t.$elm$.nodeType && t.$elm$.host ? t.$elm$.host : t.$elm$, l = e && e.$attrs$ || EMPTY_OBJ, a = t.$attrs$ || EMPTY_OBJ;
for (n in l) n in a || setAccessor(s, n, l[n], void 0, o, t.$flags$);
for (n in a) setAccessor(s, n, l[n], a[n], o, t.$flags$);
};
let contentRef, hostTagName, useNativeShadowDom = !1, checkSlotFallbackVisibility = !1, checkSlotRelocate = !1, isSvgMode = !1;
const createElm = (e, t, o, n) => {
const s = t.$children$[o];
let l, a, r, i = 0;
if (!useNativeShadowDom && (checkSlotRelocate = !0, "slot" === s.$tag$ && (s.$flags$ |= s.$children$ ? 2 : 1)), null !== s.$text$) l = s.$elm$ = doc.createTextNode(s.$text$); else if (1 & s.$flags$) l = s.$elm$ = slotReferenceDebugNode(s) ; else {
if (l = s.$elm$ = doc.createElement(2 & s.$flags$ ? "slot-fb" : s.$tag$),
updateElement(null, s, isSvgMode),
s.$children$) for (i = 0; i < s.$children$.length; ++i) a = createElm(e, s, i),
a && l.appendChild(a);
}
return (l["s-hn"] = hostTagName, 3 & s.$flags$ && (l["s-sr"] = !0,
l["s-cr"] = contentRef, l["s-sn"] = s.$name$ || "", r = e && e.$children$ && e.$children$[o],
r && r.$tag$ === s.$tag$ && e.$elm$ && putBackInOriginalLocation(e.$elm$, !1))),
l;
}, putBackInOriginalLocation = (e, t) => {
plt.$flags$ |= 1;
const o = e.childNodes;
for (let e = o.length - 1; e >= 0; e--) {
const n = o[e];
n["s-hn"] !== hostTagName && n["s-ol"] && (parentReferenceNode(n).insertBefore(n, referenceNode(n)),
n["s-ol"].remove(), n["s-ol"] = void 0, checkSlotRelocate = !0), t && putBackInOriginalLocation(n, t);
}
plt.$flags$ &= -2;
}, addVnodes = (e, t, o, n, s, l) => {
let a, r = e["s-cr"] && e["s-cr"].parentNode || e;
for (BUILD.shadowDom ; s <= l; ++s) n[s] && (a = createElm(null, o, s),
a && (n[s].$elm$ = a, r.insertBefore(a, referenceNode(t) )));
}, removeVnodes = (e, t, o, n, s) => {
for (;t <= o; ++t) (n = e[t]) && (s = n.$elm$, callNodeRefs(n), (checkSlotFallbackVisibility = !0,
s["s-ol"] ? s["s-ol"].remove() : putBackInOriginalLocation(s, !0)), s.remove());
}, isSameVnode = (e, t) => e.$tag$ === t.$tag$ && ("slot" === e.$tag$ ? e.$name$ === t.$name$ : e.$key$ === t.$key$), referenceNode = e => e && e["s-ol"] || e, parentReferenceNode = e => (e["s-ol"] ? e["s-ol"] : e).parentNode, patch = (e, t) => {
const o = t.$elm$ = e.$elm$, n = e.$children$, s = t.$children$, l = t.$tag$, a = t.$text$;
let r;
null !== a ? (r = o["s-cr"]) ? r.parentNode.textContent = a : e.$text$ !== a && (o.data = a) : (("slot" === l || updateElement(e, t, isSvgMode)),
null !== n && null !== s ? ((e, t, o, n) => {
let s, l, a = 0, r = 0, i = 0, d = 0, c = t.length - 1, $ = t[0], m = t[c], p = n.length - 1, h = n[0], u = n[p];
for (;a <= c && r <= p; ) if (null == $) $ = t[++a]; else if (null == m) m = t[--c]; else if (null == h) h = n[++r]; else if (null == u) u = n[--p]; else if (isSameVnode($, h)) patch($, h),
$ = t[++a], h = n[++r]; else if (isSameVnode(m, u)) patch(m, u), m = t[--c], u = n[--p]; else if (isSameVnode($, u)) "slot" !== $.$tag$ && "slot" !== u.$tag$ || putBackInOriginalLocation($.$elm$.parentNode, !1),
patch($, u), e.insertBefore($.$elm$, m.$elm$.nextSibling), $ = t[++a], u = n[--p]; else if (isSameVnode(m, h)) "slot" !== $.$tag$ && "slot" !== u.$tag$ || putBackInOriginalLocation(m.$elm$.parentNode, !1),
patch(m, h), e.insertBefore(m.$elm$, $.$elm$), m = t[--c], h = n[++r]; else {
if (i = -1, BUILD.vdomKey) for (d = a; d <= c; ++d) if (t[d] && null !== t[d].$key$ && t[d].$key$ === h.$key$) {
i = d;
break;
}
i >= 0 ? (l = t[i], l.$tag$ !== h.$tag$ ? s = createElm(t && t[r], o, i) : (patch(l, h),
t[i] = void 0, s = l.$elm$), h = n[++r]) : (s = createElm(t && t[r], o, r), h = n[++r]),
s && (parentReferenceNode($.$elm$).insertBefore(s, referenceNode($.$elm$)) );
}
a > c ? addVnodes(e, null == n[p + 1] ? null : n[p + 1].$elm$, o, n, r, p) : r > p && removeVnodes(t, a, c);
})(o, n, t, s) : null !== s ? (null !== e.$text$ && (o.textContent = ""),
addVnodes(o, null, t, s, 0, s.length - 1)) : null !== n && removeVnodes(n, 0, n.length - 1),
BUILD.svg );
}, updateFallbackSlotVisibility = e => {
const t = e.childNodes;
let o, n, s, l, a, r;
for (n = 0, s = t.length; n < s; n++) if (o = t[n], 1 === o.nodeType) {
if (o["s-sr"]) for (a = o["s-sn"], o.hidden = !1, l = 0; l < s; l++) if (r = t[l].nodeType,
t[l]["s-hn"] !== o["s-hn"] || "" !== a) {
if (1 === r && a === t[l].getAttribute("slot")) {
o.hidden = !0;
break;
}
} else if (1 === r || 3 === r && "" !== t[l].textContent.trim()) {
o.hidden = !0;
break;
}
updateFallbackSlotVisibility(o);
}
}, relocateNodes = [], relocateSlotContent = e => {
let t, o, n, s, l, a, r = 0;
const i = e.childNodes, d = i.length;
for (;r < d; r++) {
if (t = i[r], t["s-sr"] && (o = t["s-cr"]) && o.parentNode) for (n = o.parentNode.childNodes,
s = t["s-sn"], a = n.length - 1; a >= 0; a--) o = n[a], o["s-cn"] || o["s-nr"] || o["s-hn"] === t["s-hn"] || (isNodeLocatedInSlot(o, s) ? (l = relocateNodes.find((e => e.$nodeToRelocate$ === o)),
checkSlotFallbackVisibility = !0, o["s-sn"] = o["s-sn"] || s, l ? l.$slotRefNode$ = t : relocateNodes.push({
$slotRefNode$: t,
$nodeToRelocate$: o
}), o["s-sr"] && relocateNodes.map((e => {
isNodeLocatedInSlot(e.$nodeToRelocate$, o["s-sn"]) && (l = relocateNodes.find((e => e.$nodeToRelocate$ === o)),
l && !e.$slotRefNode$ && (e.$slotRefNode$ = l.$slotRefNode$));
}))) : relocateNodes.some((e => e.$nodeToRelocate$ === o)) || relocateNodes.push({
$nodeToRelocate$: o
}));
1 === t.nodeType && relocateSlotContent(t);
}
}, isNodeLocatedInSlot = (e, t) => 1 === e.nodeType ? null === e.getAttribute("slot") && "" === t || e.getAttribute("slot") === t : e["s-sn"] === t || "" === t, callNodeRefs = e => {
(e.$attrs$ && e.$attrs$.ref && e.$attrs$.ref(null), e.$children$ && e.$children$.map(callNodeRefs));
}, renderVdom = (e, t) => {
const o = e.$hostElement$, n = e.$cmpMeta$, s = e.$vnode$ || newVNode(null, null), l = isHost(t) ? t : h(null, null, t);
if (hostTagName = o.tagName, BUILD.isDev ) ;
if (n.$attrsToReflect$ && (l.$attrs$ = l.$attrs$ || {}, n.$attrsToReflect$.map((([e, t]) => l.$attrs$[t] = o[e]))),
l.$tag$ = null, l.$flags$ |= 4, e.$vnode$ = l, l.$elm$ = s.$elm$ = o,
(contentRef = o["s-cr"],
useNativeShadowDom = supportsShadow, checkSlotFallbackVisibility = !1), patch(s, l),
BUILD.slotRelocation) {
if (plt.$flags$ |= 1, checkSlotRelocate) {
let e, t, o, n, s, a;
relocateSlotContent(l.$elm$);
let r = 0;
for (;r < relocateNodes.length; r++) e = relocateNodes[r], t = e.$nodeToRelocate$,
t["s-ol"] || (o = originalLocationDebugNode(t) ,
o["s-nr"] = t, t.parentNode.insertBefore(t["s-ol"] = o, t));
for (r = 0; r < relocateNodes.length; r++) if (e = relocateNodes[r], t = e.$nodeToRelocate$,
e.$slotRefNode$) {
for (n = e.$slotRefNode$.parentNode, s = e.$slotRefNode$.nextSibling, o = t["s-ol"]; o = o.previousSibling; ) if (a = o["s-nr"],
a && a["s-sn"] === t["s-sn"] && n === a.parentNode && (a = a.nextSibling, !a || !a["s-nr"])) {
s = a;
break;
}
(!s && n !== t.parentNode || t.nextSibling !== s) && t !== s && (!t["s-hn"] && t["s-ol"] && (t["s-hn"] = t["s-ol"].parentNode.nodeName),
n.insertBefore(t, s));
} else 1 === t.nodeType && (t.hidden = !0);
}
checkSlotFallbackVisibility && updateFallbackSlotVisibility(l.$elm$), plt.$flags$ &= -2,
relocateNodes.length = 0;
}
}, slotReferenceDebugNode = e => doc.createComment(`<slot${e.$name$ ? ' name="' + e.$name$ + '"' : ""}> (host=${hostTagName.toLowerCase()})`), originalLocationDebugNode = e => doc.createComment("org-location for " + (e.localName ? `<${e.localName}> (host=${e["s-hn"]})` : `[${e.textContent}]`)), attachToAncestor = (e, t) => {
t && !e.$onRenderResolve$ && t["s-p"] && t["s-p"].push(new Promise((t => e.$onRenderResolve$ = t)));
}, scheduleUpdate = (e, t) => {
if ((e.$flags$ |= 16), 4 & e.$flags$) return void (e.$flags$ |= 512);
attachToAncestor(e, e.$ancestorComponent$);
const o = () => dispatchHooks(e, t);
return writeTask(o) ;
}, dispatchHooks = (e, t) => {
const n = createTime("scheduleUpdate", e.$cmpMeta$.$tagName$), s = e.$lazyInstance$ ;
let l;
return t ? ((e.$flags$ |= 256, e.$queuedListeners$ && (e.$queuedListeners$.map((([e, t]) => safeCall(s, e, t))),
e.$queuedListeners$ = null)), (l = safeCall(s, "componentWillLoad"))) : (BUILD.cmpWillUpdate ), n(), then(l, (() => updateComponent(e, s, t)));
}, updateComponent = async (e, t, o) => {
const n = e.$hostElement$, s = createTime("update", e.$cmpMeta$.$tagName$), l = n["s-rc"];
o && attachStyles(e);
const a = createTime("render", e.$cmpMeta$.$tagName$);
if (await callRender(e, t) ,
BUILD.hydrateServerSide) try {
serverSideConnected(n), o && (1 & e.$cmpMeta$.$flags$ ? n["s-en"] = "" : 2 & e.$cmpMeta$.$flags$ && (n["s-en"] = "c"));
} catch (e) {
consoleError(e, n);
}
if (l && (l.map((e => e())), n["s-rc"] = void 0), a(), s(),
BUILD.asyncLoading) {
const t = n["s-p"], o = () => postUpdateComponent(e);
0 === t.length ? o() : (Promise.all(t).then(o), e.$flags$ |= 4, t.length = 0);
}
};
const callRender = (e, t, o) => {
try {
if (t = t.render(), (e.$flags$ &= -17),
(e.$flags$ |= 2), BUILD.hasRenderFn ) {
return Promise.resolve(t).then((t => renderVdom(e, t)));
}
} catch (t) {
consoleError(t, e.$hostElement$);
}
return null;
}, postUpdateComponent = e => {
const t = e.$cmpMeta$.$tagName$, o = e.$hostElement$, n = createTime("postUpdate", t), s = e.$lazyInstance$ , l = e.$ancestorComponent$;
(safeCall(s, "componentDidRender"),
BUILD.isDev ), 64 & e.$flags$ ? ((safeCall(s, "componentDidUpdate"),
BUILD.isDev ), n()) : (e.$flags$ |= 64, addHydratedFlag(o),
(safeCall(s, "componentDidLoad"),
BUILD.isDev ), n(), (e.$onReadyResolve$(o), l || appDidLoad())), e.$onInstanceResolve$(o), (e.$onRenderResolve$ && (e.$onRenderResolve$(),
e.$onRenderResolve$ = void 0), 512 & e.$flags$ && nextTick((() => scheduleUpdate(e, !1))),
e.$flags$ &= -517);
}, appDidLoad = e => {
addHydratedFlag(doc.documentElement), nextTick((() => emitEvent(win, "appload", {
detail: {
namespace: NAMESPACE
}
}))), BUILD.profile ;
}, safeCall = (e, t, o) => {
if (e && e[t]) try {
return e[t](o);
} catch (e) {
consoleError(e);
}
}, then = (e, t) => e && e.then ? e.then(t) : t(), addHydratedFlag = e => e.classList.add("hydrated") , serverSideConnected = e => {
const t = e.children;
if (null != t) for (let e = 0, o = t.length; e < o; e++) {
const o = t[e];
"function" == typeof o.connectedCallback && o.connectedCallback(), serverSideConnected(o);
}
}, getValue = (e, t) => getHostRef(e).$instanceValues$.get(t), setValue = (e, t, o, n) => {
const s = getHostRef(e), l = s.$hostElement$ , a = s.$instanceValues$.get(t), r = s.$flags$, i = s.$lazyInstance$ ;
o = parsePropertyValue(o, n.$members$[t][0]);
const d = Number.isNaN(a) && Number.isNaN(o), c = o !== a && !d;
if ((!(8 & r) || void 0 === a) && c && (s.$instanceValues$.set(t, o),
i)) {
if (n.$watchers$ && 128 & r) {
const e = n.$watchers$[t];
e && e.map((e => {
try {
i[e](o, a, t);
} catch (e) {
consoleError(e, l);
}
}));
}
if (2 == (18 & r)) {
scheduleUpdate(s, !1);
}
}
}, proxyComponent = (e, t, o) => {
if (t.$members$) {
e.watchers && (t.$watchers$ = e.watchers);
const n = Object.entries(t.$members$), s = e.prototype;
if (n.map((([e, [n]]) => {
(31 & n || (2 & o) && 32 & n) ? Object.defineProperty(s, e, {
get() {
return getValue(this, e);
},
set(s) {
setValue(this, e, s, t);
},
configurable: !0,
enumerable: !0
}) : 1 & o && 64 & n && Object.defineProperty(s, e, {
value(...t) {
const o = getHostRef(this);
return o.$onInstancePromise$.then((() => o.$lazyInstance$[e](...t)));
}
});
})), (1 & o)) {
const o = new Map;
s.attributeChangedCallback = function(e, t, n) {
plt.jmp((() => {
const t = o.get(e);
if (this.hasOwnProperty(t)) n = this[t], delete this[t]; else if (s.hasOwnProperty(t) && "number" == typeof this[t] && this[t] == n) return;
this[t] = (null !== n || "boolean" != typeof this[t]) && n;
}));
}, e.observedAttributes = n.filter((([e, t]) => 15 & t[0])).map((([e, n]) => {
const s = n[1] || e;
return o.set(s, e), 512 & n[0] && t.$attrsToReflect$.push([ e, s ]),
s;
}));
}
}
return e;
}, initializeComponent = async (e, t, o, n, s) => {
if (0 == (32 & t.$flags$)) {
{
if (t.$flags$ |= 32, (s = loadModule(o)).then) {
const e = (() => {});
s = await s, e();
}
!s.isProxied && ((o.$watchers$ = s.watchers),
proxyComponent(s, o, 2), s.isProxied = !0);
const e = createTime("createInstance", o.$tagName$);
(t.$flags$ |= 8);
try {
new s(t);
} catch (e) {
consoleError(e);
}
(t.$flags$ &= -9), (t.$flags$ |= 128), e(),
fireConnectedCallback(t.$lazyInstance$);
}
if (s.style) {
let n = s.style;
const l = getScopeId(o);
if (!styles.has(l)) {
const e = createTime("registerStyles", o.$tagName$);
registerStyle(l, n), e();
}
}
}
const r = t.$ancestorComponent$, i = () => scheduleUpdate(t, !0);
r && r["s-rc"] ? r["s-rc"].push(i) : i();
}, fireConnectedCallback = e => {
safeCall(e, "connectedCallback");
}, connectedCallback = e => {
if (0 == (1 & plt.$flags$)) {
const t = getHostRef(e), o = t.$cmpMeta$, n = createTime("connectedCallback", o.$tagName$);
if (1 & t.$flags$) addHostEventListeners(e, t, o.$listeners$), fireConnectedCallback(t.$lazyInstance$); else {
let n;
if (t.$flags$ |= 1, (n = e.getAttribute("s-id"), n)) {
((e, t, o, n) => {
const s = createTime("hydrateClient", t), l = e.shadowRoot, a = [], r = null, i = n.$vnode$ = newVNode(t, null);
plt.$orgLocNodes$ || initializeDocumentHydrate(doc.body, plt.$orgLocNodes$ = new Map),
e["s-id"] = o, e.removeAttribute("s-id"), clientHydrate(i, a, [], r, e, e, o), a.map((e => {
const o = e.$hostId$ + "." + e.$nodeId$, n = plt.$orgLocNodes$.get(o), s = e.$elm$;
n && supportsShadow && "" === n["s-en"] && n.parentNode.insertBefore(s, n.nextSibling),
l || (s["s-hn"] = t, n && (s["s-ol"] = n, s["s-ol"]["s-nr"] = s)), plt.$orgLocNodes$.delete(o);
})), s();
})(e, o.$tagName$, n, t);
}
if (!n && (BUILD.hydrateServerSide ) && setContentReference(e),
BUILD.asyncLoading) {
let o = e;
for (;o = o.parentNode || o.host; ) if (1 === o.nodeType && o.hasAttribute("s-id") && o["s-p"] || o["s-p"]) {
attachToAncestor(t, t.$ancestorComponent$ = o);
break;
}
}
initializeComponent(e, t, o);
}
n();
}
}, setContentReference = e => {
const t = e["s-cr"] = doc.createComment("");
t["s-cn"] = !0, e.insertBefore(t, e.firstChild);
}, addHostEventListeners = (e, t, o, n) => {
o && (o.map((([o, n, s]) => {
const l = getHostListenerTarget(e, o) , a = hostListenerProxy(t, s), r = hostListenerOpts(o);
plt.ael(l, n, a, r), (t.$rmListeners$ = t.$rmListeners$ || []).push((() => plt.rel(l, n, a, r)));
})));
}, hostListenerProxy = (e, t) => o => {
try {
256 & e.$flags$ ? e.$lazyInstance$[t](o) : (e.$queuedListeners$ = e.$queuedListeners$ || []).push([ t, o ]) ;
} catch (e) {
consoleError(e);
}
}, getHostListenerTarget = (e, t) => 4 & t ? doc : e, hostListenerOpts = e => 0 != (2 & e), insertVdomAnnotations = (e, t) => {
if (null != e) {
const o = {
hostIds: 0,
rootLevelIds: 0,
staticComponents: new Set(t)
}, n = [];
parseVNodeAnnotations(e, e.body, o, n), n.forEach((t => {
if (null != t) {
const n = t["s-nr"];
let s = n["s-host-id"], l = n["s-node-id"], a = `${s}.${l}`;
if (null == s) if (s = 0, o.rootLevelIds++, l = o.rootLevelIds, a = `${s}.${l}`,
1 === n.nodeType) n.setAttribute("c-id", a); else if (3 === n.nodeType) {
if (0 === s && "" === n.nodeValue.trim()) return void t.remove();
const o = e.createComment(a);
o.nodeValue = `t.${a}`, n.parentNode.insertBefore(o, n);
}
let r = `o.${a}`;
const i = t.parentElement;
i && ("" === i["s-en"] ? r += "." : "c" === i["s-en"] && (r += ".c")), t.nodeValue = r;
}
}));
}
}, parseVNodeAnnotations = (e, t, o, n) => {
null != t && (null != t["s-nr"] && n.push(t), 1 === t.nodeType && t.childNodes.forEach((t => {
const s = getHostRef(t);
if (null != s && !o.staticComponents.has(t.nodeName.toLowerCase())) {
const n = {
nodeIds: 0
};
insertVNodeAnnotations(e, t, s.$vnode$, o, n);
}
parseVNodeAnnotations(e, t, o, n);
})));
}, insertVNodeAnnotations = (e, t, o, n, s) => {
if (null != o) {
const l = ++n.hostIds;
if (t.setAttribute("s-id", l), null != t["s-cr"] && (t["s-cr"].nodeValue = `r.${l}`),
null != o.$children$) {
const t = 0;
o.$children$.forEach(((o, n) => {
insertChildVNodeAnnotations(e, o, s, l, t, n);
}));
}
if (t && o && o.$elm$ && !t.hasAttribute("c-id")) {
const e = t.parentElement;
if (e && e.childNodes) {
const n = Array.from(e.childNodes), s = n.find((e => 8 === e.nodeType && e["s-sr"]));
if (s) {
const e = n.indexOf(t) - 1;
o.$elm$.setAttribute("c-id", `${s["s-host-id"]}.${s["s-node-id"]}.0.${e}`);
}
}
}
}
}, insertChildVNodeAnnotations = (e, t, o, n, s, l) => {
const a = t.$elm$;
if (null == a) return;
const r = o.nodeIds++, i = `${n}.${r}.${s}.${l}`;
if (a["s-host-id"] = n, a["s-node-id"] = r, 1 === a.nodeType) a.setAttribute("c-id", i); else if (3 === a.nodeType) {
const t = a.parentNode, o = t.nodeName;
if ("STYLE" !== o && "SCRIPT" !== o) {
const o = `t.${i}`, n = e.createComment(o);
t.insertBefore(n, a);
}
} else if (8 === a.nodeType && a["s-sr"]) {
const e = `s.${i}.${a["s-sn"] || ""}`;
a.nodeValue = e;
}
if (null != t.$children$) {
const l = s + 1;
t.$children$.forEach(((t, s) => {
insertChildVNodeAnnotations(e, t, o, n, l, s);
}));
}
}, hAsync = (e, t, ...o) => {
if (Array.isArray(o) && o.length > 0) {
const n = o.flat(1 / 0);
return n.some(isPromise) ? Promise.all(n).then((o => h(e, t, ...o))).catch((o => h(e, t))) : h(e, t, ...o);
}
return h(e, t);
}, NO_HYDRATE_TAGS = new Set([ "CODE", "HEAD", "IFRAME", "INPUT", "OBJECT", "OUTPUT", "NOSCRIPT", "PRE", "SCRIPT", "SELECT", "STYLE", "TEMPLATE", "TEXTAREA" ]);
const cmpModules = new Map, getModule = e => {
if ("string" == typeof e) {
e = e.toLowerCase();
const t = cmpModules.get(e);
if (null != t) return t[e];
}
return null;
}, loadModule = (e, t, o) => getModule(e.$tagName$), isMemberInElement = (e, t) => {
if (null != e) {
if (t in e) return !0;
const o = getModule(e.nodeName);
if (null != o) {
const e = o;
if (null != e && null != e.cmpMeta && null != e.cmpMeta.$members$) return t in e.cmpMeta.$members$;
}
}
return !1;
}, registerComponents = e => {
for (const t of e) {
const e = t.cmpMeta.$tagName$;
cmpModules.set(e, {
[e]: t
});
}
}, win = window, doc = win.document, writeTask = e => {
process.nextTick((() => {
try {
e();
} catch (e) {
consoleError(e);
}
}));
}, resolved = Promise.resolve(), nextTick = e => resolved.then(e), defaultConsoleError = e => {
null != e && console.error(e.stack || e.message || e);
}, consoleError = (e, t) => (defaultConsoleError)(e, t), plt = {
$flags$: 0,
$resourcesUrl$: "",
jmp: e => e(),
raf: e => requestAnimationFrame(e),
ael: (e, t, o, n) => e.addEventListener(t, o, n),
rel: (e, t, o, n) => e.removeEventListener(t, o, n),
ce: (e, t) => new win.CustomEvent(e, t)
}, supportsShadow = !1, hostRefs = new WeakMap, getHostRef = e => hostRefs.get(e), registerInstance = (e, t) => hostRefs.set(t.$lazyInstance$ = e, t), registerHost = (e, t) => {
const o = {
$flags$: 0,
$cmpMeta$: t,
$hostElement$: e,
$instanceValues$: new Map,
$renderCount$: 0
};
return o.$onInstancePromise$ = new Promise((e => o.$onInstanceResolve$ = e)), o.$onReadyPromise$ = new Promise((e => o.$onReadyResolve$ = e)),
e["s-p"] = [], e["s-rc"] = [], addHostEventListeners(e, o, t.$listeners$), hostRefs.set(e, o);
}, styles = new Map;
function notSupport(name = '', instance = {}) {
console.error(`H5 暂不支持 ${name} 组件!`);
Taro__default['default'].eventCenter.trigger('__taroNotSupport', {
name,
instance,
type: 'component',
category: 'temporarily',
});
}
function handleStencilNodes(el) {
var _a;
(_a = el === null || el === void 0 ? void 0 : el.childNodes) === null || _a === void 0 ? void 0 : _a.forEach(item => {
// Note: ['s-cn'] Content Reference Node
if (item.nodeType === document.COMMENT_NODE && item['s-cn'])
item['s-cn'] = false;
// Note: ['s-sr'] Is a slot reference node (渲染完成后禁用 slotRelocation 特性, 避免 Stencil 组件相互调用时内置排序与第三方 UI 框架冲突导致组件顺序混乱)
if (item.nodeType !== document.COMMENT_NODE && item['s-sr'])
item['s-sr'] = false;
});
}
function convertStyle(style) {
if (style) {
const regex = /([\w-]*)\s*:\s*([^;]*)/g;
const properties = {};
let match;
while ((match = regex.exec(style)))
properties[`${match[1]}`] = match[2].trim();
return properties;
}
}
const splitUrl = _url => {
let url = _url || '';
let pos;
const res = {
path: null,
query: null,
fragment: null
};
pos = url.indexOf('#');
if (pos > -1) {
res.fragment = url.substring(pos + 1);
url = url.substring(0, pos);
}
pos = url.indexOf('?');
if (pos > -1) {
res.query = url.substring(pos + 1);
url = url.substring(0, pos);
}
res.path = url;
return res;
};
function throttle(fn, threshold = 250, scope) {
let lastTime = 0;
let deferTimer;
return function (...args) {
const context = scope || this;
const now = Date.now();
if (now - lastTime > threshold) {
fn.apply(this, args);
lastTime = now;
}
else {
clearTimeout(deferTimer);
deferTimer = setTimeout(() => {
lastTime = now;
fn.apply(context, args);
}, threshold);
}
};
}
function debounce(fn, ms = 250, scope) {
let timer;
return function (...args) {
const context = scope || this;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(context, args);
}, ms);
};
}
function isVisible(e) {
return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length);
}
function isElement(e) {
return typeof HTMLElement === 'object'
? e instanceof HTMLElement
: e && typeof e === 'object' && e !== null && e.nodeType === 1 && typeof e.nodeName === 'string';
}
class Ad {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Ad', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-ad-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class AdCustom {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('AdCustom', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-ad-custom-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class AnimationVideo {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('AnimationVideo', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-animation-video-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class AnimationView {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('AnimationView', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-animation-view-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class ArCamera {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('ArCamera', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-ar-camera-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$n = "audio{outline:none;max-width:100%}";
class Audio {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onError = createEvent(this, "error", 7);
this.onPlay = createEvent(this, "play", 7);
this.onPause = createEvent(this, "pause", 7);
this.onTimeUpdate = createEvent(this, "timeupdate", 7);
this.onEnded = createEvent(this, "ended", 7);
this.src = undefined;
this.controls = true;
this.autoplay = false;
this.loop = false;
this.muted = false;
this.nativeProps = {};
}
bindevent() {
this.audio.addEventListener('timeupdate', (e) => {
this.onTimeUpdate.emit({
duration: e.srcElement.duration,
currentTime: e.srcElement.duration
});
});
this.audio.addEventListener('ended', () => {
this.onEnded.emit();
});
this.audio.addEventListener('play', () => {
this.onPlay.emit();
});
this.audio.addEventListener('pause', (e) => {
this.onPause.emit(e);
});
// 1网络错误, 2解码错误, 3解码错误,4 不合适资源
this.audio.addEventListener('error', (e) => {
var _a;
this.onError.emit({
errMsg: (_a = e.srcElement.error) === null || _a === void 0 ? void 0 : _a.code
});
});
}
componentDidLoad() {
this.bindevent();
}
render() {
const { src, controls, autoplay, loop, muted, nativeProps } = this;
return (hAsync("audio", Object.assign({ src: src, controls: controls, autoplay: autoplay, loop: loop, muted: muted, ref: audio => { this.audio = audio; } }, nativeProps)));
}
static get style() { return indexCss$n; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-audio-core",
"$members$": {
"src": [1],
"controls": [4],
"autoplay": [4],
"loop": [4],
"muted": [4],
"nativeProps": [16]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class AwemeData {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('AwemeData', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-aweme-data-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Block {
constructor(hostRef) {
registerInstance(this, hostRef);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-block-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
function createCommonjsModule(fn, basedir, module) {
return module = {
path: basedir,
exports: {},
require: function (path, base) {
return commonjsRequire();
}
}, fn(module, module.exports), module.exports;
}
function commonjsRequire () {
throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');
}
var classnames = createCommonjsModule(function (module) {
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/* global define */
(function () {
var hasOwn = {}.hasOwnProperty;
function classNames () {
var classes = '';
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
if (arg) {
classes = appendClass(classes, parseValue(arg));
}
}
return classes;
}
function parseValue (arg) {
if (typeof arg === 'string' || typeof arg === 'number') {
return arg;
}
if (typeof arg !== 'object') {
return '';
}
if (Array.isArray(arg)) {
return classNames.apply(null, arg);
}
if (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {
return arg.toString();
}
var classes = '';
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes = appendClass(classes, key);
}
}
return classes;
}
function appendClass (value, newClass) {
if (!newClass) {
return value;
}
if (value) {
return value + ' ' + newClass;
}
return value + newClass;
}
if (module.exports) {
classNames.default = classNames;
module.exports = classNames;
} else {
window.classNames = classNames;
}
}());
});
const indexCss$m = ".weui-loading{vertical-align:middle;background:url(\"data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E\") 0 0/100% no-repeat;width:20px;height:20px;animation:1s steps(12,end) infinite weuiLoading;display:inline-block}@-webkit-keyframes weuiLoading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes weuiLoading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.weui-btn_loading .weui-loading{margin:-.2em .34em 0 0}.weui-btn_loading.weui-btn_primary,.weui-btn_loading.weui-btn_warn{color:rgba(255,255,255,.6)}.weui-btn_loading.weui-btn_primary{background-color:#179b16}.weui-btn_loading.weui-btn_warn{background-color:#ce3c39}taro-button-core{box-sizing:border-box;appearance:none;text-align:center;color:#000;-webkit-tap-highlight-color:transparent;background-color:#f8f8f8;border-width:0;border-radius:5px;outline:0;width:100%;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;font-size:18px;line-height:2.55556;text-decoration:none;display:block;position:relative;overflow:hidden}taro-button-core:focus{outline:0}taro-button-core:not([disabled]):active{color:rgba(0,0,0,.6);background-color:#dedede}taro-button-core:after{box-sizing:border-box;content:\" \";transform-origin:0 0;border:1px solid rgba(0,0,0,.2);border-radius:10px;width:200%;height:200%;position:absolute;top:0;left:0;transform:scale(.5)}taro-button-core+taro-button-core{margin-top:15px}taro-button-core[type=default]{color:#000;background-color:#f8f8f8}taro-button-core[type=default]:not([disabled]):visited{color:#000}taro-button-core[type=default]:not([disabled]):active{color:rgba(0,0,0,.6);background-color:#dedede}taro-button-core[size=mini]{width:auto;padding:0 1.32em;font-size:13px;line-height:2.3;display:inline-block}taro-button-core[plain],taro-button-core[plain][type=default],taro-button-core[plain][type=primary]{background-color:transparent;border-width:1px}taro-button-core[disabled]{color:rgba(255,255,255,.6)}taro-button-core[disabled][type=default]{color:rgba(0,0,0,.3);background-color:#f7f7f7}taro-button-core[disabled][type=primary]{background-color:#9ed99d}taro-button-core[disabled][type=warn]{background-color:#ec8b89}taro-button-core[loading] .weui-loading{margin:-.2em .34em 0 0}taro-button-core[loading][type=primary],taro-button-core[loading][type=warn]{color:rgba(255,255,255,.6)}taro-button-core[loading][type=primary]{background-color:#179b16}taro-button-core[loading][type=warn]{background-color:#ce3c39}taro-button-core[plain][type=primary]{color:#1aad19;border:1px solid #1aad19}taro-button-core[plain][type=primary]:not([disabled]):active{color:rgba(26,173,25,.6);background-color:transparent;border-color:rgba(26,173,25,.6)}taro-button-core[plain][type=primary]:after{border-width:0}taro-button-core[plain][type=warn]{color:#e64340;border:1px solid #e64340}taro-button-core[plain][type=warn]:not([disabled]):active{color:rgba(230,67,64,.6);background-color:transparent;border-color:rgba(230,67,64,.6)}taro-button-core[plain][type=warn]:after{border-width:0}taro-button-core[plain],taro-button-core[plain][type=default]{color:#353535;border:1px solid #353535}taro-button-core[plain]:not([disabled]):active,taro-button-core[plain][type=default]:not([disabled]):active{color:rgba(53,53,53,.6);background-color:transparent;border-color:rgba(53,53,53,.6)}taro-button-core[plain]:after,taro-button-core[plain][type=default]:after{border-width:0}taro-button-core[type=primary]{color:#fff;background-color:#1aad19}taro-button-core[type=primary]:not([disabled]):visited{color:#fff}taro-button-core[type=primary]:not([disabled]):active{color:rgba(255,255,255,.6);background-color:#179b16}taro-button-core[type=warn]{color:#fff;background-color:#e64340}taro-button-core[type=warn]:not([disabled]):visited{color:#fff}taro-button-core[type=warn]:not([disabled]):active{color:rgba(255,255,255,.6);background-color:#ce3c39}taro-button-core[plain][disabled],taro-button-core[plain][disabled][type=primary]{color:rgba(0,0,0,.3);background-color:#f7f7f7;border:1px solid rgba(0,0,0,.2)}";
class Button {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onSubmit = createEvent(this, "tarobuttonsubmit", 7);
this.onReset = createEvent(this, "tarobuttonreset", 7);
this.disabled = undefined;
this.hoverClass = 'button-hover';
this.type = '';
this.hoverStartTime = 20;
this.hoverStayTime = 70;
this.size = undefined;
this.plain = undefined;
this.loading = false;
this.formType = null;
this.hover = false;
this.touch = false;
}
onClick(e) {
if (this.disabled) {
e.stopPropagation();
}
}
onTouchStart() {
if (this.disabled) {
return;
}
this.touch = true;
if (this.hoverClass && !this.disabled) {
setTimeout(() => {
if (this.touch) {
this.hover = true;
}
}, this.hoverStartTime);
}
}
onTouchEnd() {
if (this.disabled) {
return;
}
this.touch = false;
if (this.hoverClass && !this.disabled) {
setTimeout(() => {
if (!this.touch) {
this.hover = false;
}
}, this.hoverStayTime);
}
if (this.formType === 'submit') {
this.onSubmit.emit();
}
else if (this.formType === 'reset') {
this.onReset.emit();
}
}
render() {
const { disabled, hoverClass, type, size, plain, loading, hover } = this;
const cls = classnames({
[`${hoverClass}`]: hover && !disabled
});
return (hAsync(Host, { class: cls, type: type, plain: plain, loading: loading, size: size }, loading && hAsync("i", { class: 'weui-loading' }), hAsync("slot", null)));
}
get el() { return getElement(this); }
static get style() { return indexCss$m; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-button-core",
"$members$": {
"disabled": [516],
"hoverClass": [1, "hover-class"],
"type": [1],
"hoverStartTime": [2, "hover-start-time"],
"hoverStayTime": [2, "hover-stay-time"],
"size": [1],
"plain": [4],
"loading": [4],
"formType": [513, "form-type"],
"hover": [32],
"touch": [32]
},
"$listeners$": [[0, "click", "onClick"], [1, "touchstart", "onTouchStart"], [1, "touchend", "onTouchEnd"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": [["disabled", "disabled"], ["formType", "form-type"]]
}; }
}
class Camera {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Camera', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-camera-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$l = "taro-canvas-core{width:300px;height:150px;display:block;position:relative}";
const LONG_TAP_DELAY = 500;
class Canvas {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onLongTap = createEvent(this, "longtap", 7);
this.onTouchStart = () => {
this.timer = setTimeout(() => {
this.onLongTap.emit();
}, LONG_TAP_DELAY);
};
this.onTouchMove = () => {
clearTimeout(this.timer);
};
this.onTouchEnd = () => {
clearTimeout(this.timer);
};
this.canvasId = undefined;
this.height = undefined;
this.width = undefined;
this.nativeProps = {};
}
componentDidRender() {
const [canvas] = this.el.children;
if (!this.height || !this.width) {
let style = window.getComputedStyle(canvas);
this.height || (this.height = style.height);
this.width || (this.width = style.width);
}
canvas.height = parseInt(this.height);
canvas.width = parseInt(this.width);
}
render() {
const { canvasId, nativeProps } = this;
return (hAsync("canvas", Object.assign({ "canvas-id": canvasId, style: {
width: '100%',
height: '100%'
}, onTouchStart: this.onTouchStart, onTouchMove: this.onTouchMove, onTouchCancel: this.onTouchEnd, onTouchEnd: this.onTouchEnd }, nativeProps)));
}
get el() { return getElement(this); }
static get style() { return indexCss$l; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-canvas-core",
"$members$": {
"canvasId": [1, "id"],
"height": [1537],
"width": [1537],
"nativeProps": [16]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": [["height", "height"], ["width", "width"]]
}; }
}
class ChannelLive {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('ChannelLive', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-channel-live-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class ChannelVideo {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('ChannelVideo', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-channel-video-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$k = "page,body{--weui-cellMarginLR:16px;--weui-cellPaddingLR:16px}.weui-cells__group{border:0}.weui-cells__group:first-child{margin-top:0}.weui-cells__group_form{margin-top:24px}.weui-cells__group_form .weui-cells{margin-left:var(--weui-cellMarginLR);margin-right:var(--weui-cellMarginLR)}.weui-cells__group_form .weui-cells:before,.weui-cells__group_form .weui-cells:after{left:var(--weui-cellPaddingLR);right:var(--weui-cellPaddingLR)}.weui-cells__group_form .weui-cell{padding:16px var(--weui-cellPaddingLR)}.weui-cells__group_form .weui-cell:before{left:var(--weui-cellPaddingLR);right:var(--weui-cellPaddingLR)}.weui-cells__group_form .weui-cell:not(.weui-cell_vertical) .weui-cell__hd{padding-right:16px}.weui-cells__group_form .weui-cell:not(.weui-cell_vertical) .weui-cell__ft{padding-left:16px}.weui-cells__group_form .weui-cells__title{margin-top:24px;margin-bottom:8px;padding:0 32px}.weui-cells__group_form:first-child .weui-cells__title{margin-top:0}.weui-cells__group_form .weui-cells__tips{padding:0 calc(var(--weui-cellMarginLR) + var(--weui-cellPaddingLR));color:var(--weui-FG-2);margin-top:8px}.weui-cells__group_form .weui-cells__tips a{font-weight:700}.weui-cells__group_form .weui-cells__tips_warn{color:var(--weui-RED)}.weui-cells__group_form .weui-label{max-width:5em;margin-right:8px}.weui-cells__group_form .weui-cell_access:active:after,.weui-cells__group_form .weui-cell_active:active:after{border-radius:8px}.weui-cells__group_form .weui-cell_warn input{color:#e64340}.weui-cells__group_form .weui-icon-warn,.weui-cells__group_form .weui-cell_switch:active:after,.weui-cells__group_form .weui-cell_vcode:active:after,.weui-cells__group_form .weui-cell_readonly:active:after,.weui-cells__group_form .weui-cell_disabled:active:after{display:none}.weui-cells__group_form input,.weui-cells__group_form textarea,.weui-cells__group_form label[for]{-webkit-tap-highlight-color:transparent}.weui-cells__group_form .weui-cell_wrap{align-items:initial;padding-top:8px;padding-bottom:8px}.weui-cells__group_form .weui-cell_wrap .weui-cell__hd{padding-right:0}.weui-cells__group_form .weui-cell_wrap .weui-label{margin-top:8px}.weui-cells__group_form .weui-cell_wrap .weui-cell__bd{flex-wrap:wrap;align-items:center;display:flex}.weui-cells__group_form .weui-cell__control{margin:8px 0 8px 16px}.weui-cells__group_form .weui-cell__control_flex{flex:1;min-width:30vw}.weui-cells__group_form .weui-vcode-btn{color:#000;background-color:#f8f8f8;border-radius:6px;width:auto;height:auto;padding:0 12px;font-size:16px;line-height:2}.weui-cells__group_form .weui-vcode-btn:before{display:none}.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap{padding-top:4px;padding-bottom:4px}.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap .weui-label{margin-top:12px}.weui-cells__group_form .weui-cell_vcode.weui-cell_wrap .weui-input{min-height:1.88235em;font-size:17px}.weui-cells__group_form .weui-cells_checkbox .weui-check__label:before{left:calc(40px + var(--weui-cellPaddingLR))}.weui-cells__group_form .weui-cell_select{padding:0}.weui-cells__group_form .weui-cell_select-before .weui-cell__hd{padding-right:0}.weui-cells__group_form .weui-cell_switch{padding:12px 16px}.weui-cells__group_form-primary{margin-top:32px}.weui-cells__group_form-primary .weui-cells{background:var(--weui-BG-1);border-radius:8px;overflow:hidden}.weui-cells__group_form-primary .weui-cells:before,.weui-cells__group_form-primary .weui-cells:after{display:none}.weui-cells__group_form-primary .weui-cell_access:active:after,.weui-cells__group_form-primary .weui-cell_active:active:after{border-radius:0}.taro-checkbox{display:inline-block;position:relative}.taro-checkbox_checked{appearance:none;vertical-align:0;color:#1aad19;background-color:#fff;border:1px solid #d1d1d1;border-radius:3px;outline:0;width:23px;height:23px;min-height:0;font-size:23px;display:inline-block;position:relative;top:5px}.taro-checkbox_checked:checked:before{vertical-align:middle;text-decoration:inherit;text-align:center;text-transform:none;font-variant:normal;font-family:weui;font-style:normal;font-weight:400;font-size:inherit;color:inherit;content:\"\";speak:none;display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)scale(.73)}";
class Checkbox {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "checkboxchange", 7);
this.handleChange = (e) => {
e.stopPropagation();
this.onChange.emit({
value: this.value
});
};
this.name = undefined;
this.value = '';
this.color = undefined;
this.id = undefined;
this.checked = false;
this.disabled = false;
this.nativeProps = {};
this.isWillLoadCalled = false;
}
watchId(newVal) {
if (!this.isWillLoadCalled)
return;
if (newVal)
this.inputEl.setAttribute('id', newVal);
}
componentWillLoad() {
this.isWillLoadCalled = true;
}
componentDidRender() {
this.id && this.el.removeAttribute('id');
}
render() {
const { checked, name, color, value, disabled, nativeProps } = this;
return (hAsync(Host, { class: 'weui-cells_checkbox' }, hAsync("input", Object.assign({ ref: dom => {
if (!dom)
return;
this.inputEl = dom;
if (this.id)
dom.setAttribute('id', this.id);
}, type: 'checkbox', value: value, name: name, class: 'taro-checkbox_checked', style: { color }, checked: checked, disabled: disabled, onChange: this.handleChange }, nativeProps)), hAsync("slot", null)));
}
get el() { return getElement(this); }
static get watchers() { return {
"id": ["watchId"]
}; }
static get style() { return indexCss$k; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-checkbox-core",
"$members$": {
"name": [1],
"value": [1032],
"color": [1],
"id": [1025],
"checked": [4],
"disabled": [4],
"nativeProps": [16],
"isWillLoadCalled": [32]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
var __classPrivateFieldSet$3 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m")
throw new TypeError("Private method is not writable");
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet$3 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _CheckboxGroup_value;
class CheckboxGroup {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "change", 7);
this.uniqueName = Date.now().toString(36);
_CheckboxGroup_value.set(this, void 0);
this.name = undefined;
}
function(e) {
e.stopPropagation();
if (e.target.tagName !== 'TARO-CHECKBOX-CORE')
return;
const childList = this.el.querySelectorAll('taro-checkbox-core');
__classPrivateFieldSet$3(this, _CheckboxGroup_value, this.getValues(childList), "f");
this.onChange.emit({
value: __classPrivateFieldGet$3(this, _CheckboxGroup_value, "f")
});
}
componentDidLoad() {
const childList = this.el.querySelectorAll('taro-checkbox-core');
childList.forEach((element) => {
element.setAttribute('name', this.name || this.uniqueName);
});
Object.defineProperty(this.el, 'value', {
get: () => {
if (!__classPrivateFieldGet$3(this, _CheckboxGroup_value, "f")) {
const childList = this.el.querySelectorAll('taro-checkbox-core');
__classPrivateFieldSet$3(this, _CheckboxGroup_value, this.getValues(childList), "f");
}
return __classPrivateFieldGet$3(this, _CheckboxGroup_value, "f");
},
configurable: true
});
}
getValues(childList) {
return Array.from(childList)
.filter(element => {
const checkbox = element.querySelector('input');
return checkbox === null || checkbox === void 0 ? void 0 : checkbox.checked;
})
.map(element => element.value);
}
render() {
return (hAsync(Host, null));
}
get el() { return getElement(this); }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-checkbox-group-core",
"$members$": {
"name": [8]
},
"$listeners$": [[0, "checkboxchange", "function"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
_CheckboxGroup_value = new WeakMap();
class CommentDetail {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('CommentDetail', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-comment-detail-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class CommentList {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('CommentList', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-comment-list-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class ContactButton {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('ContactButton', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-contact-button-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$j = "taro-cover-image-core{width:320px;height:240px;overflow:hidden}";
class CoverImage {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onLoad = createEvent(this, "load", 7);
this.onError = createEvent(this, "error", 7);
this.src = undefined;
this.nativeProps = {};
}
imageOnLoad() {
const { width, height, } = this.imgRef;
this.onLoad.emit({
width,
height
});
}
imageOnError(e) {
this.onError.emit(e);
}
render() {
const { src, imageOnLoad, imageOnError, nativeProps } = this;
return (hAsync("img", Object.assign({ ref: img => (this.imgRef = img), src: src, onLoad: imageOnLoad.bind(this), onError: imageOnError.bind(this) }, nativeProps)));
}
static get style() { return indexCss$j; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-cover-image-core",
"$members$": {
"src": [1],
"nativeProps": [16]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const coverViewCss = "taro-cover-view-core{display:block}";
class CoverView {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onLongPress = createEvent(this, "longpress", 7);
this.startTime = 0;
this.animation = undefined;
this.hoverClass = undefined;
this.hoverStartTime = 50;
this.hoverStayTime = 400;
this.hover = false;
this.touch = false;
}
onTouchStart() {
if (this.hoverClass) {
this.touch = true;
setTimeout(() => {
if (this.touch) {
this.hover = true;
}
}, this.hoverStartTime);
}
this.timeoutEvent = setTimeout(() => {
this.onLongPress.emit();
}, 350);
this.startTime = Date.now();
}
onTouchMove() {
clearTimeout(this.timeoutEvent);
}
onTouchEnd() {
const spanTime = Date.now() - this.startTime;
if (spanTime < 350) {
clearTimeout(this.timeoutEvent);
}
if (this.hoverClass) {
this.touch = false;
setTimeout(() => {
if (!this.touch) {
this.hover = false;
}
}, this.hoverStayTime);
}
}
render() {
const cls = classnames({
[`${this.hoverClass}`]: this.hover
});
let attr = {};
if (!!this.animation) {
attr['animation'] = this.animation;
attr['data-animation'] = this.animation;
}
return (hAsync(Host, Object.assign({ class: cls }, attr), hAsync("slot", null)));
}
static get style() { return coverViewCss; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-cover-view-core",
"$members$": {
"animation": [1],
"hoverClass": [1, "hover-class"],
"hoverStartTime": [2, "hover-start-time"],
"hoverStayTime": [2, "hover-stay-time"],
"hover": [32],
"touch": [32]
},
"$listeners$": [[1, "touchstart", "onTouchStart"], [1, "touchmove", "onTouchMove"], [1, "touchend", "onTouchEnd"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class CustomWrapper {
constructor(hostRef) {
registerInstance(this, hostRef);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-custom-wrapper-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class DoubleTapGestureHandler {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('DoubleTapGestureHandler', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-double-tap-gesture-handler-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class DraggableSheet {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('DraggableSheet', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-draggable-sheet-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Editor {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Editor', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-editor-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class FollowSwan {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('FollowSwan', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-follow-swan-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class ForcePressGestureHandler {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('ForcePressGestureHandler', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-force-press-gesture-handler-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
var __classPrivateFieldSet$2 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m")
throw new TypeError("Private method is not writable");
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet$2 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _Form_value;
class Form {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onSubmit = createEvent(this, "submit", 7);
_Form_value.set(this, {});
}
onButtonSubmit(e) {
e.stopPropagation();
__classPrivateFieldSet$2(this, _Form_value, this.getFormValue(), "f");
this.onSubmit.emit({
value: __classPrivateFieldGet$2(this, _Form_value, "f")
});
}
onButtonReset(e) {
e.stopPropagation();
this.form.reset();
}
componentDidLoad() {
__classPrivateFieldSet$2(this, _Form_value, this.getFormValue(), "f");
Object.defineProperty(this.el, 'value', {
get: () => __classPrivateFieldGet$2(this, _Form_value, "f"),
configurable: true
});
}
componentDidRender() {
if (!this.originalAppendChild) {
this.originalAppendChild = this.el.appendChild;
this.originalInsertBefore = this.el.insertBefore;
this.originalReplaceChild = this.el.replaceChild;
this.originalRemoveChild = this.el.removeChild;
}
if (!this.form) {
this.el.appendChild = this.originalAppendChild;
this.el.insertBefore = this.originalInsertBefore;
this.el.replaceChild = this.originalReplaceChild;
this.el.removeChild = this.originalRemoveChild;
return;
}
this.el.appendChild = (newChild) => {
return this.form.appendChild(newChild);
};
this.el.insertBefore = (newChild, refChild) => {
return this.form.insertBefore(newChild, refChild);
};
this.el.replaceChild = (newChild, oldChild) => {
return this.form.replaceChild(newChild, oldChild);
};
this.el.removeChild = (oldChild) => {
return this.form.removeChild(oldChild);
};
}
getFormValue() {
const el = this.el;
const elements = [];
const tagElements = el.getElementsByTagName('input');
for (let j = 0; j < tagElements.length; j++) {
elements.push(tagElements[j]);
}
const formItem = {};
const hash = {};
elements.forEach(item => {
if (typeof item.name !== 'string')
return;
if (item.className.indexOf('weui-switch') !== -1) {
formItem[item.name] = item.checked;
return;
}
if (item.type === 'radio') {
if (item.checked) {
hash[item.name] = true;
formItem[item.name] = item.value;
}
else {
if (!hash[item.name]) {
formItem[item.name] = '';
}
}
return;
}
if (item.type === 'checkbox') {
if (item.checked) {
if (hash[item.name]) {
formItem[item.name].push(item.value);
}
else {
hash[item.name] = true;
formItem[item.name] = [item.value];
}
}
else {
if (!hash[item.name]) {
formItem[item.name] = [];
}
}
return;
}
formItem[item.name] = item.value;
});
const textareaElements = el.getElementsByTagName('textarea');
const textareaEleArr = [];
for (let i = 0; i < textareaElements.length; i++) {
textareaEleArr.push(textareaElements[i]);
}
textareaEleArr.forEach(v => {
if (typeof v.name !== 'string')
return;
formItem[v.name] = v.value;
});
return formItem;
}
render() {
return (hAsync("form", { ref: dom => {
this.form = dom;
} }, hAsync("slot", null)));
}
get el() { return getElement(this); }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-form-core",
"$members$": undefined,
"$listeners$": [[0, "tarobuttonsubmit", "onButtonSubmit"], [0, "tarobuttonreset", "onButtonReset"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
_Form_value = new WeakMap();
class FunctionalPageNavigator {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('FunctionalPageNavigator', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-functional-page-navigator-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class GridBuilder {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('GridBuilder', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-grid-builder-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class GridView {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('GridView', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-grid-view-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class HorizontalDragGestureHandler {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('HorizontalDragGestureHandler', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-horizontal-drag-gesture-handler-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$i = ".weui-icon-circle:before{content:\"\"}.weui-icon-download:before{content:\"\"}.weui-icon-info:before{content:\"\"}.weui-icon-safe-success:before{content:\"\"}.weui-icon-safe-warn:before{content:\"\"}.weui-icon-success:before{content:\"\"}.weui-icon-success-circle:before{content:\"\"}.weui-icon-success-no-circle:before{content:\"\"}.weui-icon-waiting:before{content:\"\"}.weui-icon-waiting-circle:before{content:\"\"}.weui-icon-warn:before{content:\"\"}.weui-icon-info-circle:before{content:\"\"}.weui-icon-cancel:before{content:\"\"}.weui-icon-search:before{content:\"\"}.weui-icon-clear:before{content:\"\"}.weui-icon-back:before{content:\"\"}.weui-icon-delete:before{content:\"\"}.weui-icon-success{color:#09bb07;font-size:23px}.weui-icon-waiting{color:#10aeff;font-size:23px}.weui-icon-warn{color:#f43530;font-size:23px}.weui-icon-info{color:#10aeff;font-size:23px}.weui-icon-success-circle,.weui-icon-success-no-circle{color:#09bb07;font-size:23px}.weui-icon-waiting-circle{color:#10aeff;font-size:23px}.weui-icon-circle{color:#c9c9c9;font-size:23px}.weui-icon-download,.weui-icon-info-circle{color:#09bb07;font-size:23px}.weui-icon-safe-success{color:#09bb07}.weui-icon-safe-warn{color:#ffbe00}.weui-icon-cancel{color:#f43530;font-size:22px}.weui-icon-search,.weui-icon-clear{color:#b2b2b2;font-size:14px}.weui-icon-delete.weui-icon_gallery-delete{color:#fff;font-size:22px}.weui-icon_msg{font-size:93px}.weui-icon_msg.weui-icon-warn{color:#f76260}.weui-icon_msg-primary{font-size:93px}.weui-icon_msg-primary.weui-icon-warn{color:#ffbe00}";
class Icon {
constructor(hostRef) {
registerInstance(this, hostRef);
this.type = undefined;
this.size = '23';
this.color = undefined;
}
render() {
const { type, size, color } = this;
const iconType = type === null || type === void 0 ? void 0 : type.replace(/_/g, '-');
const cls = classnames({
[`weui-icon-${iconType}`]: true
});
const style = {
'font-size': `${size}px`,
color
};
return (hAsync(Host, { class: cls, style: style }));
}
static get style() { return indexCss$i; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-icon-core",
"$members$": {
"type": [1],
"size": [8],
"color": [1]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$h = "img[src=\"\"]{opacity:0}:where(taro-image-core){width:320px;height:240px;font-size:0;display:inline-block;position:relative;overflow:hidden}:where(taro-image-core.taro-img__disable-default-size){width:auto;height:auto}.taro-img.taro-img__widthfix{height:100%}.taro-img__mode-scaletofill{width:100%;height:100%}.taro-img__mode-aspectfit{max-width:100%;max-height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.taro-img__mode-aspectfill{object-fit:cover;width:100%;height:100%}.taro-img__mode-widthfix{width:100%}.taro-img__mode-heightfix{height:100%}.taro-img__mode-top{position:absolute;left:50%;transform:translate(-50%)}.taro-img__mode-bottom{position:absolute;bottom:0;left:50%;transform:translate(-50%)}.taro-img__mode-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.taro-img__mode-left{position:absolute;top:50%;transform:translateY(-50%)}.taro-img__mode-right{position:absolute;top:50%;right:0;transform:translateY(-50%)}.taro-img__mode-topright{position:absolute;right:0}.taro-img__mode-bottomleft{position:absolute;bottom:0}.taro-img__mode-bottomright{position:absolute;bottom:0;right:0}";
class Image$1 {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onLoad = createEvent(this, "load", 7);
this.onError = createEvent(this, "error", 7);
this.src = undefined;
this.mode = 'scaleToFill';
this.lazyLoad = false;
this.nativeProps = {};
this.disableDefaultSize = false;
this.didLoad = false;
}
componentDidLoad() {
if (!this.lazyLoad || !this.imgRef)
return;
const lazyImg = new IntersectionObserver(entries => {
// 异步 api 关系
if (entries[entries.length - 1].isIntersecting) {
this.imgRef && lazyImg.unobserve(this.imgRef);
this.didLoad = true;
}
}, {
rootMargin: '300px 0px'
});
lazyImg.observe(this.imgRef);
}
imageOnLoad() {
// 防止组件已卸载或 img 已被移除时 ref 为 null(如列表滚动、src 清空、lazyLoad 时序等)
if (!this.imgRef)
return;
const { width, height } = this.imgRef;
this.onLoad.emit({
width,
height
});
}
imageOnError(e) {
this.onError.emit(e);
}
render() {
const { src, lazyLoad = false, imageOnLoad, imageOnError, nativeProps, didLoad } = this;
// mode="" 按默认值处理
const mode = this.mode || 'scaleToFill';
const cls = classnames({
'taro-img__widthfix': mode === 'widthFix',
'taro-img__disable-default-size': this.disableDefaultSize,
});
const imgCls = `taro-img__mode-${mode.toLowerCase().replace(/\s/g, '')}`;
return (hAsync(Host, { class: cls }, src ? (hAsync("img", Object.assign({ ref: (img) => (this.imgRef = img), class: imgCls, src: lazyLoad && !didLoad ? undefined : src, onLoad: imageOnLoad.bind(this), onError: imageOnError.bind(this) }, nativeProps))) : ''));
}
static get style() { return indexCss$h; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-image-core",
"$members$": {
"src": [1],
"mode": [1],
"lazyLoad": [4, "lazy-load"],
"nativeProps": [16],
"disableDefaultSize": [4, "disable-default-size"],
"didLoad": [32]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class InlinePaymentPanel {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('InlinePaymentPanel', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-inline-payment-panel-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$g = ".weui-input{-webkit-appearance:none;width:100%;font-size:inherit;color:inherit;background-color:transparent;border:0;outline:0;height:1.47059em;line-height:1.47059}.weui-input::-webkit-outer-spin-button,.weui-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}taro-input-core{display:block}taro-input-core input[type=search]::-webkit-search-cancel-button{-webkit-appearance:none;display:none}";
function getTrueType(type, confirmType, password) {
if (confirmType === 'search')
type = 'search';
if (password)
type = 'password';
if (typeof type === 'undefined') {
return 'text';
}
if (!type) {
throw new Error('unexpected type');
}
if (type === 'digit')
type = 'number';
return type;
}
function fixControlledValue$1(value) {
return value !== null && value !== void 0 ? value : '';
}
class Input {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onInput = createEvent(this, "input", 7);
this.onPaste = createEvent(this, "paste", 7);
this.onFocus = createEvent(this, "focus", 7);
this.onBlur = createEvent(this, "blur", 7);
this.onConfirm = createEvent(this, "confirm", 7);
this.onChange = createEvent(this, "change", 7);
this.onKeyDown = createEvent(this, "keydown", 7);
this.isOnComposition = false;
this.isOnPaste = false;
this.onInputExcuted = false;
this.handleInput = (e) => {
e.stopPropagation();
const { type, maxlength, confirmType, password } = this;
if (!this.isOnComposition && !this.onInputExcuted) {
let value = e.target.value;
const inputType = getTrueType(type, confirmType, password);
this.onInputExcuted = true;
/* 修复 number 类型 maxlength 无效 */
if (inputType === 'number' && value && maxlength > -1 && maxlength <= value.length) {
value = value.substring(0, maxlength);
e.target.value = value;
}
// 修复 IOS 光标跳转问题
// if (!(['number', 'file'].indexOf(inputType) >= 0)) {
// const pos = e.target.selectionEnd
// setTimeout(
// () => {
// e.target.selectionStart = pos
// e.target.selectionEnd = pos
// }
// )
// }
this.value = value;
this.onInput.emit({
value,
cursor: value.length
});
this.onInputExcuted = false;
}
};
this.handlePaste = (e) => {
e.stopPropagation();
this.isOnPaste = true;
this.onPaste.emit({
value: e.target.value
});
};
this.handleFocus = (e) => {
e.stopPropagation();
this.onInputExcuted = false;
this.onFocus.emit({
value: e.target.value
});
};
this.handleBlur = (e) => {
e.stopPropagation();
this.onBlur.emit({
value: e.target.value
});
};
this.handleChange = (e) => {
e.stopPropagation();
this.onChange.emit({
value: e.target.value
});
if (this.isOnPaste) {
this.isOnPaste = false;
this.value = e.target.value;
this.onInput.emit({
value: e.target.value,
cursor: e.target.value.length
});
}
};
this.handleKeyDown = (e) => {
e.stopPropagation();
const { value } = e.target;
const keyCode = e.keyCode || e.code;
this.onInputExcuted = false;
this.onKeyDown.emit({
value,
cursor: value.length,
keyCode
});
keyCode === 13 && this.onConfirm.emit({ value });
};
this.handleComposition = (e) => {
e.stopPropagation();
if (!(e.target instanceof HTMLInputElement))
return;
if (e.type === 'compositionend') {
this.isOnComposition = false;
this.value = e.target.value;
this.onInput.emit({
value: e.target.value,
cursor: e.target.value.length
});
}
else {
this.isOnComposition = true;
}
};
this.handleBeforeInput = (e) => {
if (!e.data)
return;
const isNumber = e.data && /[0-9]/.test(e.data);
if (this.type === 'number' && !isNumber) {
e.preventDefault();
}
if (this.type === 'digit' && !isNumber) {
if (e.data !== '.' || (e.data === '.' && e.target.value.indexOf('.') > -1)) {
e.preventDefault();
}
}
};
this.value = '';
this.type = undefined;
this.password = false;
this.placeholder = undefined;
this.disabled = false;
this.maxlength = 140;
this.autoFocus = false;
this.confirmType = 'done';
this.name = undefined;
this.readonly = false;
this.nativeProps = {};
}
async focus() {
this.inputRef.focus();
}
watchAutoFocus(newValue, oldValue) {
var _a;
if (!oldValue && newValue) {
(_a = this.inputRef) === null || _a === void 0 ? void 0 : _a.focus();
}
}
watchValue(newValue) {
const value = fixControlledValue$1(newValue);
if (this.inputRef.value !== value) {
this.inputRef.value = value;
}
}
componentDidLoad() {
var _a, _b, _c, _d, _e;
if (this.type === 'file') {
this.fileListener = () => {
this.onInput.emit();
};
(_a = this.inputRef) === null || _a === void 0 ? void 0 : _a.addEventListener('change', this.fileListener);
}
else {
(_b = this.inputRef) === null || _b === void 0 ? void 0 : _b.addEventListener('compositionstart', this.handleComposition);
(_c = this.inputRef) === null || _c === void 0 ? void 0 : _c.addEventListener('compositionend', this.handleComposition);
(_d = this.inputRef) === null || _d === void 0 ? void 0 : _d.addEventListener('beforeinput', this.handleBeforeInput);
(_e = this.inputRef) === null || _e === void 0 ? void 0 : _e.addEventListener('textInput', this.handleBeforeInput);
}
}
disconnectedCallback() {
var _a, _b, _c, _d, _e;
if (this.type === 'file') {
(_a = this.inputRef) === null || _a === void 0 ? void 0 : _a.removeEventListener('change', this.fileListener);
}
else {
(_b = this.inputRef) === null || _b === void 0 ? void 0 : _b.removeEventListener('compositionstart', this.handleComposition);
(_c = this.inputRef) === null || _c === void 0 ? void 0 : _c.removeEventListener('compositionend', this.handleComposition);
(_d = this.inputRef) === null || _d === void 0 ? void 0 : _d.removeEventListener('beforeinput', this.handleBeforeInput);
(_e = this.inputRef) === null || _e === void 0 ? void 0 : _e.removeEventListener('textInput', this.handleBeforeInput);
}
}
render() {
const { value, type, password, placeholder, autoFocus, disabled, maxlength, confirmType, name, readonly, nativeProps } = this;
return (hAsync("input", Object.assign({ ref: input => {
this.inputRef = input;
if (autoFocus && input)
input.focus();
}, class: 'weui-input', type: getTrueType(type, confirmType, password), placeholder: placeholder, autoFocus: autoFocus, disabled: disabled, maxlength: maxlength, name: name, readonly: readonly ? 'readonly' : undefined, onInput: this.handleInput, onFocus: this.handleFocus, onBlur: this.handleBlur, onChange: this.handleChange, onKeyDown: this.handleKeyDown, onPaste: this.handlePaste, onCompositionStart: this.handleComposition, onCompositionEnd: this.handleComposition }, nativeProps, { value: fixControlledValue$1(value) })));
}
get el() { return getElement(this); }
static get watchers() { return {
"autoFocus": ["watchAutoFocus"],
"value": ["watchValue"]
}; }
static get style() { return indexCss$g; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-input-core",
"$members$": {
"value": [1025],
"type": [1],
"password": [4],
"placeholder": [1],
"disabled": [4],
"maxlength": [2],
"autoFocus": [4, "focus"],
"confirmType": [1, "confirm-type"],
"name": [1],
"readonly": [4],
"nativeProps": [16],
"focus": [64]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class KeyboardAccessory {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('KeyboardAccessory', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-keyboard-accessory-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Label {
constructor(hostRef) {
registerInstance(this, hostRef);
this.for = undefined;
}
render() {
return (hAsync("label", { htmlFor: this.for }, hAsync("slot", null)));
}
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-label-core",
"$members$": {
"for": [1]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Lifestyle {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Lifestyle', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-lifestyle-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Like {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Like', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-like-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class ListBuilder {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('ListBuilder', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-list-builder-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class ListView {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('ListView', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-list-view-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class LivePlayer {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('LivePlayer', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-live-player-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class LivePusher {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('LivePusher', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-live-pusher-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Login {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Login', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-login-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class LongPressGestureHandler {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('LongPressGestureHandler', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-long-press-gesture-handler-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Lottie {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Lottie', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-lottie-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const mapCss = ".BMap_cpyCtrl,.anchorBL img,.BMap_bubble_buttons{display:none}";
class Map$1 {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onTap = createEvent(this, "tap", 7);
this.currentRotation = 0;
/* 获取当前地图中心的经纬度 */
this._getCenterLocation = (option) => {
// 遍历当前的覆盖物,找到之前添加的中心点图标并删除它
this.map.getOverlays().forEach((overlay) => {
if (overlay instanceof BMapGL.Marker && overlay.isCenterMarker) {
this.map.removeOverlay(overlay);
}
});
// 创建自定义图标并设置图标位置
option.iconPath = 'https://img0.baidu.com/it/u=2604176863,3349829508&fm=253&fmt=auto&app=138&f=PNG?w=243&h=243';
const icon = new BMapGL.Icon(option.iconPath, new BMapGL.Size(20, 30));
// 将经纬度从BD09转换为GCJ02
const gcj02Point = [this.longitude, this.latitude];
const marker = new BMapGL.Marker(new BMapGL.Point(this.longitude, this.latitude), { icon });
marker.isCenterMarker = true; // 标记该覆盖物是中心点图标
// 添加新的图标
this.map.addOverlay(marker);
return gcj02Point;
};
/* 设置定位点图标,支持网络路径、本地路径、代码包路径 */
this._setLocMarkerIcon = (option) => {
// 创建自定义图标
const icon = new BMapGL.Icon(option.iconPath, new BMapGL.Size(20, 30));
// 创建定位点并设置图标
const point = new BMapGL.Point(116.404, 39.915);
const marker = new BMapGL.Marker(point, { icon });
this.map.addOverlay(marker);
};
/* 平移marker,带动画 */
this._translateMarker = (option) => {
let latitude = option.destination.latitude;
const longitude = option.destination.longitude;
if (latitude < -80 && latitude >= -90) {
latitude = option.destination.latitude + 10;
}
const destinationPoint = new BMapGL.Point(longitude, latitude);
const obj = {
flagId: true,
flagCoordinate: true // 标记是否有有效经纬度
};
const animationEndResult = {
errMsg: 'animationEnd:ok',
};
// 获取所有覆盖物
const overlays = this.map.getOverlays();
// 查找指定 id 的 Marker 对象
const targetMarker = overlays.find((overlay) => overlay instanceof BMapGL.Marker && overlay.id === option.markerId);
if (!targetMarker) {
console.error(`Marker "${option.markerId}" not found.`);
obj.flagId = false;
return obj;
}
if (latitude > 90 || latitude < -90 || longitude > 180 || longitude < -180 || isNaN(latitude) || isNaN(longitude)) {
obj.flagCoordinate = false;
return obj;
}
// 计算平移步长
const startLngLat = targetMarker.getPosition();
const step = {
lng: (destinationPoint.lng - startLngLat.lng) / (option.duration / 16),
lat: (destinationPoint.lat - startLngLat.lat) / (option.duration / 16), // 每帧移动的纬度增量
};
// 计算旋转角度的步长
const startRotation = targetMarker.getRotation(); // 获取起始旋转角度
const targetRotation = option.rotate; // 设置目标旋转角度
if (!this.currentRotation) {
this.currentRotation = targetRotation;
}
else {
this.currentRotation += targetRotation;
}
const rotationStep = (this.currentRotation - startRotation) / (option.duration / 16);
// 执行平移动画
let currentLngLat = startLngLat;
let currentRotation = startRotation;
if (!option.moveWithRotate && option.autoRotate) {
let currentFrame = 0; // 用于平移动画的计数器
// 执行平移动画
const animationInterval = setInterval(() => {
currentLngLat = new BMapGL.Point(currentLngLat.lng + step.lng, currentLngLat.lat + step.lat);
targetMarker.setPosition(currentLngLat);
currentFrame++;
if (currentFrame >= option.duration / 16) {
clearInterval(animationInterval);
let rotationFrame = 0; // 用于旋转动画的计数器
// 在到达目的地后执行旋转动画
const rotationInterval = setInterval(() => {
currentRotation += rotationStep;
targetMarker.setRotation(currentRotation);
rotationFrame++;
if (rotationFrame >= option.duration / 16) {
clearInterval(rotationInterval); // 清除旋转动画的定时器
option === null || option === void 0 ? void 0 : option.animationEnd(animationEndResult);
}
}, 16);
}
}, 16);
}
else if (option.moveWithRotate && option.autoRotate) {
let currentFrame = 0; // 定义局部变量
const animationInterval = setInterval(() => {
currentLngLat = new BMapGL.Point(currentLngLat.lng + step.lng, currentLngLat.lat + step.lat);
targetMarker.setPosition(currentLngLat);
currentRotation += rotationStep;
targetMarker.setRotation(currentRotation);
currentFrame++;
if (currentFrame >= option.duration / 16) {
clearInterval(animationInterval);
option === null || option === void 0 ? void 0 : option.animationEnd(animationEndResult);
}
}, 16);
}
else if (option.moveWithRotate && !option.autoRotate) {
let currentFrame = 0; // 定义局部变量
const animationInterval = setInterval(() => {
currentLngLat = new BMapGL.Point(currentLngLat.lng + step.lng, currentLngLat.lat + step.lat);
targetMarker.setPosition(currentLngLat);
currentFrame++;
if (currentFrame >= option.duration / 16) {
clearInterval(animationInterval);
option === null || option === void 0 ? void 0 : option.animationEnd(animationEndResult);
}
}, 16);
}
return obj;
};
/* 缩放视野展示所有经纬度 */
this._includePoints = (option) => {
const bPoints = option.points.map((point) => new BMapGL.Point(point.longitude, point.latitude));
const originalZoom = this.map.getZoom();
const originalCenter = this.map.getCenter();
const view = this.map.getViewport(bPoints);
// 地图缩放后
this.map.centerAndZoom(view.center, view.zoom);
const bounds = this.map.getBounds();
let flag = true;
for (let i = 0; i < bPoints.length; i++) {
if (!bounds.containsPoint(bPoints[i])) {
this.map.centerAndZoom(originalCenter, originalZoom);
flag = false;
break;
}
}
return flag;
};
/* 获取当前地图的视野范围 */
this._getRegion = () => {
// 获取地图当前视野范围
const bounds = this.map.getBounds();
const sw = bounds.getSouthWest(); // 西南角坐标
const ne = bounds.getNorthEast(); // 东北角坐标
return {
southwest: { lat: sw.lat, lng: sw.lng },
northeast: { lat: ne.lat, lng: ne.lng },
};
};
/* 获取当前地图的旋转角 */
this._getRotate = () => {
// 获取地图当前旋转角度
let rotation = this.rotate;
if (rotation < 0 || rotation > 360) {
rotation = 0;
}
return rotation;
};
/* 获取当前地图的倾斜角 */
this._getSkew = () => {
let Skew = this.skew;
if (Skew < 0 || Skew > 40) {
Skew = 0;
}
return Skew;
};
/* 获取当前地图的缩放级别 */
this._getScale = () => {
const Scale = this.scale;
return Scale;
};
/* 设置地图中心点偏移,向后向下为增长 */
this._setCenterOffset = (option) => {
// 解构获取偏移量参数
const [x, y] = option.offset;
// 获取地图尺寸
const mapSize = this.map.getSize();
// 计算水平偏移量
const offsetX = Math.max(0.25 * mapSize.width, Math.min(0.75 * mapSize.width, x * mapSize.width));
// 计算垂直偏移量
const offsetY = Math.max(0.25 * mapSize.height, Math.min(0.75 * mapSize.height, y * mapSize.height));
// 创建像素坐标对象
const pixel = new BMapGL.Pixel(offsetX, offsetY);
// 将像素坐标转换为地理坐标
const center = this.map.pixelToPoint(pixel);
// 平移地图至指定中心点
this.map.panTo(center);
};
/* 添加 marker */
this._addMarkers = (option) => {
if (option.clear) {
// 清除地图上所有marker
this.map.clearOverlays(this.markers);
}
option.markers.forEach((marker) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
if (marker.latitude && marker.longitude && marker.iconPath) {
const pt = new BMapGL.Point(marker.longitude, marker.latitude);
const markerObj = new BMapGL.Marker(pt, { enableClicking: true });
this.map.addOverlay(markerObj);
markerObj.id = marker.id; // 设置标记点的唯一标识符
markerObj.alpha = marker.alpha;
if (marker.zIndex) {
markerObj.setZIndex(marker.zIndex);
}
if (marker.width && marker.height && marker.iconPath) {
const icon = new BMapGL.Icon(marker.iconPath, new BMapGL.Size(marker.width, marker.height));
markerObj.setIcon(icon);
}
else if (marker.iconPath) {
const img = new Image();
img.src = marker.iconPath;
img.style.opacity = String(marker.alpha);
img.onload = () => {
const iconSize = new BMapGL.Size(img.width, img.height);
const icon = new BMapGL.Icon(img.src, iconSize);
icon.imageOffset = new BMapGL.Size(0, 0, marker.alpha || 1);
markerObj.setIcon(icon);
};
}
else {
console.error('没有找到iconPath图片路径');
return;
}
const rotate = marker.rotate ? marker.rotate : 0;
if (rotate) {
markerObj.setRotation(rotate);
}
if (marker.anchor) {
const offsetX = ((_b = (_a = marker.anchor) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0) * (marker.width || 0);
const offsetY = ((_d = (_c = marker.anchor) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0) * (marker.height || 0);
markerObj.setOffset(new BMapGL.Size(offsetX, offsetY));
}
// 创建title
if (!marker.callout && marker.title) {
const hammer = new Hammer__default['default'](this.mapRef); // 创建Hammer对象,绑定到地图容器
hammer.on('tap', (e) => {
// 使用tap事件替代click事件
const touch = e.center;
const x = touch.x;
const y = touch.y;
// 假设阈值为 10,表示点击距离小于 10 个像素时认为是点击到了标记点
const threshold = 15;
// 遍历标记点数组,计算触摸位置与每个标记点的距离
option.markers.forEach((marker) => {
// 通过class名获取地图容器
const mapContainer = document.getElementsByClassName('bmap-container')[0];
// 获取地图容器在屏幕上的偏移量
const mapContainerRect = mapContainer.getBoundingClientRect();
const mapOffsetX = mapContainerRect.left;
const mapOffsetY = mapContainerRect.top;
const point = new BMapGL.Point(marker.longitude, marker.latitude);
const pixel = this.map.pointToPixel(point);
const markerX = pixel.x + mapOffsetX;
const markerY = pixel.y + mapOffsetY;
// 计算触摸位置与标记点的距离
const distance = Math.sqrt(Math.pow(x - markerX, 2) + Math.pow(y - markerY, 2));
if (distance < threshold && marker.id === markerObj.id) {
// 最近的标记点距离小于阈值,表示用户点击到了标记点
const content = `<div style="text-align:center">${marker.title}</div>`;
const infoWindow = new BMapGL.InfoWindow(content);
this.map.openInfoWindow(infoWindow, pt);
}
});
});
}
if (marker.callout) {
const offsetX = ((_e = marker.callout) === null || _e === void 0 ? void 0 : _e.anchorX) ? (_f = marker.callout) === null || _f === void 0 ? void 0 : _f.anchorX : 0; // 横向偏移量
const offsetY = ((_g = marker.callout) === null || _g === void 0 ? void 0 : _g.anchorY) ? (_h = marker.callout) === null || _h === void 0 ? void 0 : _h.anchorY : 0; // 纵向偏移量
// 创建气泡(callout)对象
const callout = new BMapGL.InfoWindow(`<div style="
padding: ${(_j = marker.callout) === null || _j === void 0 ? void 0 : _j.padding}px;
color:${(_k = marker.callout) === null || _k === void 0 ? void 0 : _k.color};
text-align:${(_l = marker.callout) === null || _l === void 0 ? void 0 : _l.textAlign};"
>
<p style="font-size:${(_m = marker.callout) === null || _m === void 0 ? void 0 : _m.fontSize}px">${((_o = marker.callout) === null || _o === void 0 ? void 0 : _o.content) || ''}</p>
</div>`, {
width: 200,
height: 100,
offset: new BMapGL.Size(offsetX - 24, offsetY - 20), // 设置偏移量
});
// 自定义属性存储气泡(callout)对象
markerObj.callout = callout;
// 将气泡(callout)对象绑定到标记(marker)对象上
this.map.addOverlay(markerObj);
if (((_p = marker.callout) === null || _p === void 0 ? void 0 : _p.display) === 'ALWAYS') {
markerObj.callout.disableCloseOnClick();
const point = markerObj.getPosition(); // 获取marker标记点的位置
markerObj.callout.addEventListener('open', function () {
var _a, _b, _c, _d;
console.log(markerObj.callout);
const infoWindowElement = document.querySelector('.BMap_bubble_pop');
if (infoWindowElement) {
let triangle = infoWindowElement.querySelector('.triangle');
if (!triangle) {
// 如果不存在,则创建并添加新的三角形 div
triangle = document.createElement('div');
triangle.className = 'triangle'; // 添加一个类名以便日后查找
infoWindowElement.appendChild(triangle);
}
const img = document.querySelector('.BMap_bubble_pop>img');
if (img) {
img.setAttribute('style', `position: absolute;transform: translate(-50%, 0); top: ${point.lat - 100}px; left: ${point.lng - 20}px;display:none`);
}
const backgroundcolor = (_a = marker.callout) === null || _a === void 0 ? void 0 : _a.bgColor;
let borderWidth = ((_b = marker.callout) === null || _b === void 0 ? void 0 : _b.borderWidth) || 5;
const borderColor = (_c = marker.callout) === null || _c === void 0 ? void 0 : _c.borderColor;
const borderRadius = (_d = marker.callout) === null || _d === void 0 ? void 0 : _d.borderRadius;
// 确保边框大小不超过15
borderWidth = Math.min(borderWidth, 15);
triangle.setAttribute('style', `width:0;height:0;border-left:${borderWidth}px solid transparent;border-right:${borderWidth}px solid transparent;border-top:${borderWidth}px solid ${borderColor};position:absolute;left:83px;bottom:-${2 * borderWidth}px`);
infoWindowElement.setAttribute('style', `background-color:${backgroundcolor};top:${point.lat - 120}px; left:${point.lng - 100}px;position: absolute;border: ${borderWidth}px solid ${borderColor};border-radius:${borderRadius}px; `);
}
});
this.map.openInfoWindow(markerObj.callout, pt);
}
else {
const hammer = new Hammer__default['default'](this.mapRef); // 创建Hammer对象,绑定到地图容器
hammer.on('tap', (e) => {
// 使用tap事件替代click事件
const touch = e.center;
const x = touch.x;
const y = touch.y;
// 假设阈值为 10,表示点击距离小于 10 个像素时认为是点击到了标记点
const threshold = 15;
// 遍历标记点数组,计算触摸位置与每个标记点的距离
option.markers.forEach((marker) => {
// 通过class名获取地图容器
const mapContainer = document.getElementsByClassName('bmap-container')[0];
// 获取地图容器在屏幕上的偏移量
const mapContainerRect = mapContainer.getBoundingClientRect();
const mapOffsetX = mapContainerRect.left;
const mapOffsetY = mapContainerRect.top;
const point = new BMapGL.Point(marker.longitude, marker.latitude);
const pixel = this.map.pointToPixel(point);
const markerX = pixel.x + mapOffsetX;
const markerY = pixel.y + mapOffsetY;
// 计算触摸位置与标记点的距离
const distance = Math.sqrt(Math.pow(x - markerX, 2) + Math.pow(y - markerY, 2));
if (distance < threshold && marker.id === markerObj.id) {
const point = markerObj.getPosition(); // 获取marker标记点的位置
markerObj.callout.addEventListener('open', function () {
var _a, _b, _c, _d;
console.log(markerObj.callout);
const infoWindowElement = document.querySelector('.BMap_bubble_pop');
if (infoWindowElement) {
let triangle = infoWindowElement.querySelector('.triangle');
if (!triangle) {
// 如果不存在,则创建并添加新的三角形 div
triangle = document.createElement('div');
triangle.className = 'triangle'; // 添加一个类名以便日后查找
infoWindowElement.appendChild(triangle);
}
const img = document.querySelector('.BMap_bubble_pop>img');
if (img) {
img.setAttribute('style', `position: absolute;transform: translate(-50%, 0); top: ${point.lat - 100}px; left: ${point.lng - 20}px;display:none`);
}
const backgroundcolor = (_a = marker.callout) === null || _a === void 0 ? void 0 : _a.bgColor;
let borderWidth = ((_b = marker.callout) === null || _b === void 0 ? void 0 : _b.borderWidth) || 5;
const borderColor = (_c = marker.callout) === null || _c === void 0 ? void 0 : _c.borderColor;
const borderRadius = (_d = marker.callout) === null || _d === void 0 ? void 0 : _d.borderRadius;
// 确保边框大小不超过15
borderWidth = Math.min(borderWidth, 15);
triangle.setAttribute('style', `width:0;height:0;border-left:${borderWidth}px solid transparent;border-right:${borderWidth}px solid transparent;border-top:${borderWidth}px solid ${borderColor};position:absolute;left:83px;bottom:-${2 * borderWidth}px`);
infoWindowElement.setAttribute('style', `background-color:${backgroundcolor};top:${point.lat - 120}px; left:${point.lng - 100}px;position: absolute;border: ${borderWidth}px solid ${borderColor};border-radius:${borderRadius}px; `);
}
});
// 最近的标记点距离小于阈值,表示用户点击到了标记点
this.map.openInfoWindow(markerObj.callout, pt);
}
else {
markerObj.callout.enableCloseOnClick();
// 用户点击到了地图上的其他位置,不是标记点
}
});
});
}
}
// 判断是否有label属性
if (marker.label) {
const labelContent = marker.label.content || '';
const labelOpts = {
position: pt,
offset: new BMapGL.Size(marker.label.anchorX || 0, marker.label.anchorY || 0),
};
const label = new BMapGL.Label(labelContent, labelOpts);
// 设置标签样式
label.setStyle({
color: marker.label.color,
fontSize: marker.label.fontSize + 'px',
borderWidth: marker.label.borderWidth + 'px',
borderColor: marker.label.borderColor,
borderRadius: marker.label.borderRadius + 'px',
background: marker.label.bgColor,
padding: marker.label.padding + 'px',
});
markerObj.setLabel(label);
}
}
});
};
/* 移除 marker */
this._removeMarkers = (option) => {
// 获取所有覆盖物
const overlays = this.map.getOverlays();
let newTargetMarker = {};
option.markerIds.forEach((id) => {
// 查找指定 id 的 Marker 对象
const targetMarker = overlays.find((overlay) => overlay instanceof BMapGL.Marker && String(overlay.id) === id);
newTargetMarker = targetMarker;
this.map.removeOverlay(targetMarker);
});
return newTargetMarker;
};
/* 沿指定路径移动 marker,用于轨迹回放等场景。动画完成时触发回调事件,若动画进行中,对同一 marker 再次调用 moveAlong 方法,前一次的动画将被打断 */
this._moveAlong = (object) => {
const path = object.path;
const targetMarkerId = object.markerId;
const duration = object.duration;
const autoRotate = object.autoRotate;
const targetMarker = this.map.getOverlays().find((overlay) => overlay instanceof BMapGL.Marker && overlay.id === targetMarkerId);
const points = path.map((p) => new BMapGL.Point(p.longitude, p.latitude));
const obj = {
flagId: true,
flagCoordinate: true // 标记是否有有效经纬度
};
if (!targetMarker) {
console.error(`Marker "${targetMarkerId}" not found.`);
obj.flagId = false;
return obj;
}
for (let i = 0; i < points.length; i++) {
const point = points[i];
if (point.lat < -80 && point.lat >= -90) {
point.lat += 10;
}
if (point.lng < -180 || point.lng > 180 || point.lat < -90 || point.lat > 90 || isNaN(point.lng) || isNaN(point.lat)) {
obj.flagCoordinate = false;
return obj;
}
}
if (obj.flagId && obj.flagCoordinate) {
const startTime = performance.now();
const animate = (timestamp) => {
const elapsedTime = timestamp - startTime;
const progress = Math.min(elapsedTime / duration, 1);
const currentPoint = this.getPointOnPath(points, progress);
targetMarker.setPosition(currentPoint);
if (autoRotate && progress < 1) {
const nextPoint = this.getPointOnPath(points, Math.min(progress + 0.01, 1)); // 获取前进一点的点
const rotation = this.calculateRotation(currentPoint, nextPoint);
targetMarker.setRotation(rotation);
}
if (progress < 1) {
requestAnimationFrame(animate);
}
else {
// 动画结束
targetMarker.setPosition(points[points.length - 1]); // 设置 marker 位置为路径的最后一个点
targetMarker.setRotation(0); // 恢复旋转角度为0
}
};
requestAnimationFrame(animate);
}
return obj;
};
this.getPointOnPath = (points, progress) => {
const totalLength = this.calculateTotalLength(points);
const targetLength = totalLength * progress;
let currentLength = 0;
for (let i = 0; i < points.length - 1; i++) {
const segmentLength = this.map.getDistance(points[i], points[i + 1]);
if (currentLength + segmentLength >= targetLength) {
const ratio = (targetLength - currentLength) / segmentLength;
const deltaX = points[i + 1].lng - points[i].lng;
const deltaY = points[i + 1].lat - points[i].lat;
const newLng = points[i].lng + deltaX * ratio;
const newLat = points[i].lat + deltaY * ratio;
return new BMapGL.Point(newLng, newLat);
}
currentLength += segmentLength;
}
// 如果进度超出路径长度,返回路径的最后一个点
return points[points.length - 1];
};
this.calculateTotalLength = (points) => {
let totalLength = 0;
for (let i = 0; i < points.length - 1; i++) {
totalLength += this.map.getDistance(points[i], points[i + 1]);
}
return totalLength;
};
this.calculateRotation = (currentPoint, nextPoint) => {
const dx = nextPoint.lng - currentPoint.lng;
const dy = nextPoint.lat - currentPoint.lat;
let angle = Math.atan2(dy, dx) * (180 / Math.PI);
angle = 90 - angle;
return angle;
};
/* 创建自定义图片图层,图片会随着地图缩放而缩放 */
this._addGroundOverlay = (option) => {
const { src, opacity, bounds, visible, id, zIndex } = option;
let flag = true;
if (bounds.southwest.longitude >= bounds.northeast.longitude || bounds.southwest.latitude >= bounds.northeast.latitude) {
flag = false;
return;
}
if (bounds.southwest.latitude > 90 || bounds.southwest.latitude < -90 || bounds.southwest.longitude > 180 || bounds.southwest.longitude < -180 || isNaN(bounds.southwest.latitude) || isNaN(bounds.southwest.longitude)) {
flag = false;
return;
}
if (bounds.northeast.latitude > 90 || bounds.northeast.latitude < -90 || bounds.northeast.longitude > 180 || bounds.northeast.longitude < -180 || isNaN(bounds.northeast.latitude) || isNaN(bounds.northeast.longitude)) {
flag = false;
return;
}
// 创建覆盖物边界对象
const overlayBounds = new BMapGL.Bounds(new BMapGL.Point(bounds.southwest.longitude, bounds.southwest.latitude), new BMapGL.Point(bounds.northeast.longitude, bounds.northeast.latitude));
// 定义 GroundOverlay类
function GroundOverlay(bounds, imageUrl, map, visible, opacity, zIndex, id) {
this._bounds = bounds;
this._imageUrl = imageUrl;
this._map = map;
this._visible = visible;
this._opacity = opacity;
this._zIndex = zIndex;
this._id = id;
}
// 继承 BMapGL.Overlay
GroundOverlay.prototype = new BMapGL.Overlay();
// 初始化方法
GroundOverlay.prototype.initialize = function (map) {
// 移除已存在的元素
if (document.getElementById(this._id)) {
const element = document.getElementById(this._id);
element === null || element === void 0 ? void 0 : element.remove();
}
this._map = map;
if (!this._div) {
// 创建 div 元素并设置样式
const div = document.createElement('div');
div.id = this._id;
div.style.position = 'absolute';
div.style.border = 'none';
div.style.zIndex = this._zIndex;
// 创建 img 元素并设置样式
const img = document.createElement('img');
img.src = this._imageUrl;
// 确保opacity值在0到1之间
const validOpacity = (this._opacity < 0) ? '1' : this._opacity;
img.style.opacity = validOpacity;
div.appendChild(img);
this._div = div;
}
// 监听地图缩放事件,调整覆盖物尺寸
map.addEventListener('zoomend', () => {
const swPixel = map.pointToOverlayPixel(this._bounds.getSouthWest());
const nePixel = map.pointToOverlayPixel(this._bounds.getNorthEast());
const width = nePixel.x - swPixel.x;
const height = swPixel.y - nePixel.y;
this._div.style.width = width + 'px';
this._div.style.height = height + 'px';
const img = this._div.querySelector('img');
img.style.width = width + 'px';
img.style.height = height + 'px';
});
// 将 div 元素添加到地图覆盖物层
map.getPanes().labelPane.appendChild(this._div);
return this._div;
};
// 绘制方法
GroundOverlay.prototype.draw = function () {
// 设置 div 元素位置和尺寸
const _northeast = {
lat: option.bounds.northeast.latitude,
lng: option.bounds.southwest.longitude
};
const position = this._map.pointToOverlayPixel(_northeast);
this._div.style.left = position.x + 'px';
this._div.style.top = position.y + 'px';
const bounds = this._map.getBounds();
const sw = this._map.pointToPixel(bounds.getSouthWest());
const ne = this._map.pointToPixel(bounds.getNorthEast());
const width = ne.x - sw.x;
const height = ne.y - sw.y;
const zoom = this._map.getZoom();
const imageWidth = width * Math.pow(2, 18 - zoom);
const imageHeight = height * Math.pow(2, 18 - zoom);
this._div.style.width = imageWidth + 'px';
this._div.style.height = imageHeight + 'px';
this._div.style.display = this._visible ? 'block' : 'none';
const validOpacity = (this._opacity < 0) ? '1' : this._opacity;
this._div.getElementsByTagName('img')[0].style.opacity = validOpacity;
};
// 创建 GroundOverlay 实例
const overlay = new GroundOverlay(overlayBounds, src, this.map, visible, opacity, zIndex, id);
this.map.addOverlay(overlay);
// 对所有覆盖物进行排序
const overlays = this.map.getOverlays().sort((a, b) => a._zIndex - b._zIndex);
this.groundOverlay = overlay;
// 将所有覆盖物重新绘制
overlays.forEach((overlay) => overlay.draw());
const zoom = this.map.getZoom();
if (zoom < 20) {
this.map.setZoom(zoom + 1);
this.map.setZoom(zoom);
}
else {
this.map.setZoom(zoom - 1);
this.map.setZoom(zoom);
}
return flag;
};
/* 更新自定义图片图层 */
this._updateGroundOverlay = (option) => {
const { src, opacity, bounds, visible, id, zIndex } = option;
let obj;
let flagId = true; // 标记是否有id
let flagCoordinate = true; // 标记是否有有效经纬度
let flagObj = {};
// 获取所有图层
const overlays = this.map.getOverlays();
// 找到要更新的图层
const targetOverlay = overlays.find((overlay) => overlay._id === id);
if (!targetOverlay) {
flagId = false;
flagObj = {
flagId: flagId,
flagCoordinate: flagCoordinate
};
obj = Object.assign({}, flagObj);
return obj;
}
if (bounds.southwest.longitude >= bounds.northeast.longitude || bounds.southwest.latitude >= bounds.northeast.latitude) {
flagCoordinate = false;
flagObj = {
flagId: flagId,
flagCoordinate: flagCoordinate
};
obj = Object.assign({}, flagObj);
}
if (bounds.southwest.latitude > 90 || bounds.southwest.latitude < -90 || bounds.southwest.longitude > 180 || bounds.southwest.longitude < -180 || isNaN(bounds.southwest.latitude) || isNaN(bounds.southwest.longitude)) {
flagCoordinate = false;
flagObj = {
flagId: flagId,
flagCoordinate: flagCoordinate
};
obj = Object.assign({}, flagObj);
}
if (bounds.northeast.latitude > 90 || bounds.northeast.latitude < -90 || bounds.northeast.longitude > 180 || bounds.northeast.longitude < -180 || isNaN(bounds.northeast.latitude) || isNaN(bounds.northeast.longitude)) {
flagCoordinate = false;
flagObj = {
flagId: flagId,
flagCoordinate: flagCoordinate
};
obj = Object.assign({}, flagObj);
}
if (flagId && flagCoordinate) {
const targetBounds = new BMapGL.Bounds(new BMapGL.Point(bounds.southwest.longitude, bounds.southwest.latitude), new BMapGL.Point(bounds.northeast.longitude, bounds.northeast.latitude));
const zoom = this.map.getZoom();
if (targetOverlay) {
// 更新DOM元素
const element = document.getElementById(id);
if (element) {
const imgElement = element.querySelector('img');
if (imgElement) {
// 找到了对应的元素
const validOpacity = (opacity < 0) ? '1' : opacity;
element.style.opacity = validOpacity;
imgElement.style.display = visible ? 'block' : 'none';
element.style.zIndex = zIndex;
// 加载图片
const image = new Image();
image.onload = () => {
// 图片加载完成后执行
imgElement.src = src; // 设置图片的src
// 根据当前缩放级别设置图片宽高
const lngSpan = targetBounds.getNorthEast().lng - targetBounds.getSouthWest().lng;
const mapWidth = this.map.getSize().width; // 获取地图容器的宽度
const updatedImageWidth = (mapWidth / Math.pow(2, 18 - zoom)) * lngSpan;
const imageAspectRatio = image.naturalHeight / image.naturalWidth;
const updatedImageHeight = updatedImageWidth * imageAspectRatio;
imgElement.style.width = `${updatedImageWidth}px`;
imgElement.style.height = `${updatedImageHeight}px`;
// 重新绘制图层
targetOverlay._bounds = targetBounds;
targetOverlay.draw();
// 更新完图片后,立即重绘地图
this.map.panTo(this.map.getCenter());
targetOverlay.draw();
};
image.src = src;
}
}
}
else {
// 没有找到对应的元素
console.error(`未找到id为${id}的元素`);
}
flagObj = {
flagId: flagId,
flagCoordinate: flagCoordinate
};
obj = Object.assign({}, flagObj);
return obj;
}
else {
return obj;
}
};
/* 移除自定义图片图层 */
this._removeGroundOverlay = (option) => {
// 获取所有图层
const overlays = this.map.getOverlays();
let newTargetOverlay = '';
// 找到要更新的图层
const targetOverlay = overlays.find((overlay) => overlay._id === option.id);
newTargetOverlay = targetOverlay;
if (targetOverlay) {
// 如果找到了对应的图层,执行删除操作
this.map.removeOverlay(targetOverlay);
}
return newTargetOverlay;
};
/* 限制地图的显示范围。此接口同时会限制地图的最小缩放整数级别。 */
this._setBoundary = (option) => {
let nth = option.northeast.latitude;
let sth = option.southwest.latitude;
let flag = true;
if (option.northeast.latitude <= -80 && option.northeast.latitude >= -90) {
nth = option.northeast.latitude + 10;
}
if (option.southwest.latitude <= -80 && option.southwest.latitude >= -90) {
sth = option.southwest.latitude + 10;
}
if (option.northeast.latitude < -90 || option.northeast.latitude > 90 || option.northeast.longitude < -180 || option.northeast.longitude > 180 || isNaN(option.northeast.latitude) || isNaN(option.northeast.longitude) || option.northeast.longitude < option.southwest.longitude || option.northeast.latitude < option.southwest.latitude) {
flag = false;
return;
}
if (option.southwest.latitude < -90 || option.southwest.latitude > 90 || option.southwest.longitude < -180 || option.southwest.longitude > 180 || isNaN(option.southwest.latitude) || isNaN(option.southwest.longitude)) {
flag = false;
return;
}
const ne = new BMapGL.Point(option.northeast.longitude, nth);
const sw = new BMapGL.Point(option.southwest.longitude, sth);
const bounds = new BMapGL.Bounds(sw, ne);
const viewport = this.map.getViewport([ne, sw]);
this.map.centerAndZoom(new BMapGL.Point(viewport.center.lng, viewport.center.lat), viewport.zoom + 2);
this.map.addOverlay(new BMapGL.Polygon([
new BMapGL.Point(bounds.sw.lng, bounds.sw.lat),
new BMapGL.Point(bounds.sw.lng, bounds.ne.lat),
new BMapGL.Point(bounds.ne.lng, bounds.ne.lat),
new BMapGL.Point(bounds.ne.lng, bounds.sw.lat)
], {
fillOpacity: 0
}));
BMapGLLib.AreaRestriction.setBounds(this.map, bounds);
return flag;
};
this.latitude = undefined;
this.longitude = undefined;
this.scale = undefined;
this.minScale = undefined;
this.maxScale = undefined;
this.markers = undefined;
this.polyline = undefined;
this.circles = undefined;
this.polygons = undefined;
this.subkey = undefined;
this.layerStyle = undefined;
this.rotate = undefined;
this.skew = undefined;
this.showCompass = undefined;
this.showScale = undefined;
this.enableOverlooking = undefined;
this.enableZoom = undefined;
this.enableScroll = undefined;
this.enableRotate = undefined;
this.enableSatellite = undefined;
this.enableTraffic = undefined;
this.enableBuilding = undefined;
this.enableAutoMaxOverlooking = undefined;
this.enable3D = undefined;
this.width = '100%';
this.height = '100%';
}
async componentDidLoad() {
// 加载地图脚本
await this.loadMapScript();
// 记载BmapLib工具库
await this.LoadBmapLibScript();
// 如果容器元素存在
if (this.mapRef) {
this.mapRef.addEventListener('touchmove', (e) => {
if (e.cancelable) {
e.preventDefault();
}
});
// 创建地图对象
this.map = new BMapGL.Map(this.mapRef);
// 移除百度地图版权信息
this.map.removeControl(this.map.getMapType());
// 创建中心点坐标对象
// 中心经纬度为必填值
if (this.latitude < -90 || this.latitude > 90 || this.longitude < -180 || this.longitude > 180 || isNaN(this.latitude) || isNaN(this.longitude)) {
console.error('请正确设置中心经纬度');
return;
}
let scale = isNaN(this.scale) ? 16 : this.scale;
let minScale = isNaN(this.minScale) ? 3 : this.minScale;
let maxScale = isNaN(this.maxScale) ? 16 : this.maxScale;
const point = new BMapGL.Point(this.longitude, this.latitude);
if (minScale < 3 || minScale > 20) {
minScale = 3;
this.map.setMinZoom(3);
}
else {
// 设置最小缩放级别
this.map.setMinZoom(minScale);
}
if (maxScale > 20 || maxScale < 3) {
maxScale = 20;
this.map.setMaxZoom(20);
}
else {
// 设置最大缩放级别
this.map.setMaxZoom(maxScale);
}
if (minScale > maxScale) {
minScale = 3;
this.map.setMinZoom(3);
maxScale = 20;
this.map.setMaxZoom(20);
}
// 设置地图中心和缩放级别
if (minScale <= 16 && maxScale >= 16) {
if (scale >= minScale && scale <= maxScale) {
// 使用this.scale来设置缩放级别
this.map.centerAndZoom(point, scale);
}
else {
scale = 16;
this.map.centerAndZoom(point, scale);
}
}
else {
if (scale >= minScale && scale <= maxScale) {
// 使用this.scale来设置缩放级别
this.map.centerAndZoom(point, scale);
}
else if (scale < minScale) {
scale = minScale;
this.map.centerAndZoom(point, minScale);
}
else {
scale = maxScale;
this.map.centerAndZoom(point, maxScale);
}
}
// 添加标记点markers
if (Array.isArray(this.markers)) {
this.addMarkers(this.markers);
}
// 创建polyline路线
if (Array.isArray(this.polyline)) {
this.polyline.forEach((line) => {
if (line.points) {
const points = line.points.map((point) => new BMapGL.Point(point.longitude, point.latitude));
const polyline = new BMapGL.Polyline(points, {
strokeColor: line.color,
strokeWeight: line.width,
strokeStyle: line.dottedLine ? 'dashed' : 'solid',
strokeOpacity: 1,
});
// 将polyline路线添加到地图上
this.map.addOverlay(polyline);
}
});
}
// 添加圆形覆盖物circles
if (Array.isArray(this.circles)) {
this.circles.forEach((circle) => {
if (circle.latitude && circle.longitude && circle.radius) {
const point = new BMapGL.Point(circle.longitude, circle.latitude);
const circleObj = new BMapGL.Circle(point, circle.radius, {
strokeColor: circle.color,
fillColor: circle.fillColor,
strokeWeight: circle.strokeWidth,
});
this.map.addOverlay(circleObj);
}
});
}
// 多边形
if (Array.isArray(this.polygons)) {
this.polygons.forEach((polygon) => {
// 创建多边形的点坐标数组
const points = polygon.points.map((point) => new BMapGL.Point(point.longitude, point.latitude));
// 创建多边形对象
const polygonObj = new BMapGL.Polygon(points, {
strokeColor: polygon.strokeColor,
fillColor: polygon.fillColor,
strokeWeight: polygon.strokeWidth,
});
// 将多边形添加到地图上
this.map.addOverlay(polygonObj);
});
}
if (this.layerStyle === 0) {
const layerStyle = this.layerStyle;
if (layerStyle) {
// 使用个性化地图样式
this.map.setMapStyleV2({ styleId: this.subkey });
}
}
else {
const layerStyle = this.layerStyle ? this.layerStyle : 1;
if (layerStyle === 1) {
// 使用个性化地图样式
this.map.setMapStyleV2({ styleId: this.subkey });
}
}
const enable3D = this.enable3D === true ? this.enable3D : false;
const enableOverlooking = this.enableOverlooking === true ? this.enableOverlooking : false;
const enableAutoMaxOverlooking = this.enableAutoMaxOverlooking === true ? this.enableAutoMaxOverlooking : false;
const skew = this.skew ? this.skew : 0;
if (enable3D === true) {
if (enableOverlooking === true) {
// /开启最大俯视角
if (enableAutoMaxOverlooking === true) {
this.map.setTilt(75);
}
else {
// 开启俯视角度
this.map.setTilt(45);
}
}
else if (skew >= 0 && skew <= 40) {
// 设置倾斜角度
this.map.setTilt(skew);
}
else {
this.map.setTilt(0);
}
}
else {
this.map.setTilt(0);
}
// 显示指南针
const showCompass = this.showCompass === true ? this.showCompass : false;
if (showCompass === true) {
const compassControl = new BMapGL.NavigationControl3D({
anchor: BMAP_ANCHOR_TOP_RIGHT,
type: 3, // 3代表显示指南针
});
this.map.addControl(compassControl);
}
// 显示比例尺
const showScale = this.showScale === true ? this.showScale : false;
if (showScale === true) {
const scaleControl = new BMapGL.ScaleControl({
anchor: BMAP_ANCHOR_BOTTOM_RIGHT,
});
this.map.addControl(scaleControl);
}
const enableZoom = this.enableZoom === false ? this.enableZoom : true;
if (enableZoom === true) {
// 启用缩放
this.map.enableScrollWheelZoom(this.enableZoom);
}
// 启用缩放
if (this.enableZoom === true && this.mapRef) {
this.map.enablePinchToZoom();
}
else {
this.map.disablePinchToZoom();
}
// 拖拽
const enableScroll = this.enableScroll === false ? this.enableScroll : true;
if (enableScroll === true) {
this.map.enableDragging();
}
else {
this.map.disableDragging();
}
const rotate = this.rotate ? this.rotate : 0;
if (rotate >= 0 && this.rotate <= 360) {
this.map.setHeading(this.rotate);
}
else {
this.map.setHeading(0);
}
// 设置旋转角度
if (this.enableRotate === true) {
this.map.enableRotateGestures();
}
// 启用卫星图
const enableSatellite = this.enableSatellite === true ? this.enableSatellite : false;
if (enableSatellite === true && this.mapRef) {
const mapTypeControl = new BMapGL.MapTypeControl({
mapTypes: [BMAP_NORMAL_MAP, BMAP_SATELLITE_MAP],
});
this.map.addControl(mapTypeControl);
}
const enableTraffic = this.enableTraffic === true ? this.enableTraffic : false;
if (enableTraffic === true && this.mapRef) {
this.map.setTrafficOn();
}
// 是否开启建筑物
const enableBuilding = this.enableBuilding === false ? this.enableBuilding : true;
if (enableBuilding === false) {
this.map.setDisplayOptions({ building: false });
}
}
if (this.map) {
// 创建Hammer对象,绑定到地图容器
const hammer = new Hammer__default['default'](this.mapRef);
hammer.on('tap', (e) => {
// 将Hammer事件对象中的坐标转换为百度地图坐标
const point = this.map.pixelToPoint({ x: e.center.x, y: e.center.y });
this.onTap.emit({
longitude: point.lng,
latitude: point.lat,
});
});
}
}
disconnectedCallback() {
if (this.map) {
this.map.destroy();
}
}
addMarkers(markers) {
// 维护已存在的marker id 列表
const existingIds = [];
markers.forEach((marker) => {
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
if (existingIds.includes(marker.id)) {
// 如果id已存在,直接返回,不执行后续操作
console.error('请输入不同的marker的id');
return;
}
existingIds.push(marker.id);
if (marker.latitude && marker.longitude && marker.iconPath && marker.id) {
if (marker.latitude < -90 || marker.latitude > 90 || marker.longitude < -180 || marker.longitude > 180) {
console.error('请正确设置marker的经纬度');
return;
}
const pt = new BMapGL.Point(marker.longitude, marker.latitude);
const markerObj = new BMapGL.Marker(pt, { enableClicking: true });
markerObj.id = marker.id; // 设置标记点的唯一标识符
markerObj.alpha = marker.alpha;
if (marker.zIndex) {
markerObj.setZIndex(marker.zIndex);
}
if (marker.width && marker.height) {
const canvas = document.createElement('canvas');
canvas.width = marker.width * 2;
canvas.height = marker.height * 2;
// 获取 Canvas 上下文
const ctx = canvas.getContext('2d');
// 创建一个新的图片对象
const img = new Image();
// 设置图片的跨域属性
img.crossOrigin = 'Anonymous';
img.src = marker.iconPath;
// 当图片加载完成后,将其绘制到Canvas上
img.onload = function () {
ctx.drawImage(img, 0, 0, marker.width * 2, marker.height * 2);
// 创建 BMapGL.Icon 对象,并将 Canvas 元素作为图标的内容
// 设置锚点偏移量为(0, 0),表示图标的左上角将与经纬度对齐
const icon = new BMapGL.Icon(canvas.toDataURL(), new BMapGL.Size(marker.width, marker.height), {
anchor: new BMapGL.Size(0, 0)
});
markerObj.setIcon(icon);
};
}
else {
const img = new Image();
img.src = marker.iconPath;
img.style.opacity = String(marker.alpha);
img.onload = () => {
const iconSize = new BMapGL.Size(img.width, img.height);
const icon = new BMapGL.Icon(img.src, iconSize);
icon.imageOffset = new BMapGL.Size(0, 0, marker.alpha || 1);
markerObj.setIcon(icon);
};
}
const rotate = marker.rotate ? marker.rotate : 0;
if (rotate >= 0 && rotate <= 360) {
markerObj.setRotation(rotate);
}
// 如果anchor.x和anchor.y被定义,则使用它们的值,否则使用默认值
const anchorX = (_b = (_a = marker.anchor) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0.5;
const anchorY = (_d = (_c = marker.anchor) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 1;
if (anchorX >= 0 && anchorX <= 1 && anchorY >= 0 && anchorY <= 1) {
// 锚点设置为图标宽度的负值乘以x,以向左移动
const offsetX = -(anchorX) * (marker.width || 0);
// 锚点设置为图标高度的负值乘以y,以向上移动
const offsetY = -(anchorY) * (marker.height || 0);
// 使用计算出的偏移量设置标注对象的偏移
markerObj.setOffset(new BMapGL.Size(offsetX, offsetY));
}
else {
const offsetX = -0.5 * (marker.width || 0);
const offsetY = -1 * (marker.height || 0);
markerObj.setOffset(new BMapGL.Size(offsetX, offsetY));
}
// 创建title
if (!marker.callout && marker.title) {
const hammer = new Hammer__default['default'](this.mapRef); // 创建Hammer对象,绑定到地图容器
hammer.on('tap', (e) => {
// 使用tap事件替代click事件
const touch = e.center;
const x = touch.x;
const y = touch.y;
// 假设阈值为 10,表示点击距离小于 10 个像素时认为是点击到了标记点
const threshold = 15;
// 遍历标记点数组,计算触摸位置与每个标记点的距离
this.markers.forEach((marker) => {
// 通过class名获取地图容器
const mapContainer = document.getElementsByClassName('bmap-container')[0];
// 获取地图容器在屏幕上的偏移量
const mapContainerRect = mapContainer.getBoundingClientRect();
const mapOffsetX = mapContainerRect.left;
const mapOffsetY = mapContainerRect.top;
const point = new BMapGL.Point(marker.longitude, marker.latitude);
const pixel = this.map.pointToPixel(point);
const markerX = pixel.x + mapOffsetX;
const markerY = pixel.y + mapOffsetY;
// 计算触摸位置与标记点的距离
const distance = Math.sqrt(Math.pow(x - markerX, 2) + Math.pow(y - markerY, 2));
if (distance < threshold && marker.id === markerObj.id) {
// 最近的标记点距离小于阈值,表示用户点击到了标记点
const content = `<div style="text-align:center">${marker.title}</div>`;
const infoWindow = new BMapGL.InfoWindow(content);
this.map.openInfoWindow(infoWindow, pt);
}
});
});
}
if (marker.callout) {
const offsetX = ((_e = marker.callout) === null || _e === void 0 ? void 0 : _e.anchorX) ? (_f = marker.callout) === null || _f === void 0 ? void 0 : _f.anchorX : 0; // 横向偏移量
const offsetY = ((_g = marker.callout) === null || _g === void 0 ? void 0 : _g.anchorY) ? (_h = marker.callout) === null || _h === void 0 ? void 0 : _h.anchorY : 0; // 纵向偏移量
// 创建气泡(callout)对象
const callout = new BMapGL.InfoWindow(`<div style="
padding: ${(_j = marker.callout) === null || _j === void 0 ? void 0 : _j.padding}px;
color:${(_k = marker.callout) === null || _k === void 0 ? void 0 : _k.color};
text-align:${(_l = marker.callout) === null || _l === void 0 ? void 0 : _l.textAlign};"
>
<p style="font-size:${(_m = marker.callout) === null || _m === void 0 ? void 0 : _m.fontSize}px">${((_o = marker.callout) === null || _o === void 0 ? void 0 : _o.content) || ''}</p>
</div>`, {
width: 200,
height: 100,
offset: new BMapGL.Size(offsetX - 24, offsetY - 20), // 设置偏移量
});
// 自定义属性存储气泡(callout)对象
markerObj.callout = callout;
// 将气泡(callout)对象绑定到标记(marker)对象上
this.map.addOverlay(markerObj);
if (((_p = marker.callout) === null || _p === void 0 ? void 0 : _p.display) === 'ALWAYS') {
markerObj.callout.disableCloseOnClick();
const point = markerObj.getPosition(); // 获取marker标记点的位置
markerObj.callout.addEventListener('open', function () {
var _a, _b, _c, _d;
const infoWindowElement = document.querySelector('.BMap_bubble_pop');
if (infoWindowElement) {
let triangle = infoWindowElement.querySelector('.triangle');
if (!triangle) {
// 如果不存在,则创建并添加新的三角形 div
triangle = document.createElement('div');
triangle.className = 'triangle'; // 添加一个类名以便日后查找
infoWindowElement.appendChild(triangle);
}
const img = document.querySelector('.BMap_bubble_pop>img');
if (img) {
img.setAttribute('style', `position: absolute;transform: translate(-50%, 0); top: ${point.lat - 100}px; left: ${point.lng - 20}px;display:none`);
}
const backgroundcolor = (_a = marker.callout) === null || _a === void 0 ? void 0 : _a.bgColor;
let borderWidth = ((_b = marker.callout) === null || _b === void 0 ? void 0 : _b.borderWidth) || 5;
const borderColor = (_c = marker.callout) === null || _c === void 0 ? void 0 : _c.borderColor;
const borderRadius = (_d = marker.callout) === null || _d === void 0 ? void 0 : _d.borderRadius;
// 确保边框大小不超过15
borderWidth = Math.min(borderWidth, 15);
triangle.setAttribute('style', `width:0;height:0;borderLeft:${borderWidth}px solid transparent;borderRight:${borderWidth}px solid transparent;borderTop:${borderWidth}px solid ${borderColor};position:absolute;left:83px;bottom:-${2 * borderWidth}px`);
infoWindowElement.setAttribute('style', `background-color:${backgroundcolor};top:${point.lat - 120}px; left:${point.lng - 100}px;position: absolute;border: ${borderWidth}px solid ${borderColor};border-radius:${borderRadius}px; `);
}
});
this.map.openInfoWindow(markerObj.callout, pt);
}
else {
const hammer = new Hammer__default['default'](this.mapRef); // 创建Hammer对象,绑定到地图容器
hammer.on('tap', (e) => {
// 使用tap事件替代click事件
const touch = e.center;
const x = touch.x;
const y = touch.y;
// 假设阈值为 10,表示点击距离小于 10 个像素时认为是点击到了标记点
const threshold = 15;
// 遍历标记点数组,计算触摸位置与每个标记点的距离
this.markers.forEach((marker) => {
// 通过class名获取地图容器
const mapContainer = document.getElementsByClassName('bmap-container')[0];
// 获取地图容器在屏幕上的偏移量
const mapContainerRect = mapContainer.getBoundingClientRect();
const mapOffsetX = mapContainerRect.left;
const mapOffsetY = mapContainerRect.top;
const point = new BMapGL.Point(marker.longitude, marker.latitude);
const pixel = this.map.pointToPixel(point);
const markerX = pixel.x + mapOffsetX;
const markerY = pixel.y + mapOffsetY;
// 计算触摸位置与标记点的距离
const distance = Math.sqrt(Math.pow(x - markerX, 2) + Math.pow(y - markerY, 2));
if (distance < threshold && marker.id === markerObj.id) {
const point = markerObj.getPosition(); // 获取marker标记点的位置
markerObj.callout.addEventListener('open', function () {
var _a, _b, _c, _d;
const infoWindowElement = document.querySelector('.BMap_bubble_pop');
if (infoWindowElement) {
let triangle = infoWindowElement.querySelector('.triangle');
if (!triangle) {
// 如果不存在,则创建并添加新的三角形 div
triangle = document.createElement('div');
triangle.className = 'triangle'; // 添加一个类名以便日后查找
infoWindowElement.appendChild(triangle);
}
const img = document.querySelector('.BMap_bubble_pop>img');
if (img) {
img.setAttribute('style', `position: absolute;transform: translate(-50%, 0); top: ${point.lat - 100}px; left: ${point.lng - 20}px;display:none`);
}
const backgroundcolor = (_a = marker.callout) === null || _a === void 0 ? void 0 : _a.bgColor;
let borderWidth = ((_b = marker.callout) === null || _b === void 0 ? void 0 : _b.borderWidth) || 5;
const borderColor = (_c = marker.callout) === null || _c === void 0 ? void 0 : _c.borderColor;
const borderRadius = (_d = marker.callout) === null || _d === void 0 ? void 0 : _d.borderRadius;
// 确保边框大小不超过15
borderWidth = Math.min(borderWidth, 15);
triangle.setAttribute('style', `width:0;height:0;border-left:${borderWidth}px solid transparent;border-right:${borderWidth}px solid transparent;border-top:${borderWidth}px solid ${borderColor};position:absolute;left:83px;bottom:-${2 * borderWidth}px`);
infoWindowElement.setAttribute('style', `background-color:${backgroundcolor};top:${point.lat - 120}px; left:${point.lng - 100}px;position: absolute;border: ${borderWidth}px solid ${borderColor};border-radius:${borderRadius}px; `);
}
});
// 最近的标记点距离小于阈值,表示用户点击到了标记点
this.map.openInfoWindow(markerObj.callout, pt);
}
else {
markerObj.callout.enableCloseOnClick();
// 用户点击到了地图上的其他位置,不是标记点
}
});
});
}
}
// 判断是否有label属性
if (marker.label) {
const labelContent = marker.label.content || '';
const labelOpts = {
position: pt,
offset: new BMapGL.Size(marker.label.anchorX || 0, marker.label.anchorY || 0),
};
const label = new BMapGL.Label(labelContent, labelOpts);
const borderColor = marker.label.borderColor ? marker.label.borderColor : 'white';
// 设置标签样式
label.setStyle({
color: marker.label.color,
fontSize: marker.label.fontSize + 'px',
borderWidth: marker.label.borderWidth + 'px',
borderColor: borderColor,
borderRadius: marker.label.borderRadius + 'px',
background: marker.label.bgColor,
padding: marker.label.padding + 'px',
});
markerObj.setLabel(label);
}
this.map.addOverlay(markerObj);
}
else {
console.error('请检查marker经纬度和marker自定义图标路径和id值');
}
});
}
loadMapScript() {
return new Promise((resolve, reject) => {
const script = document.createElement('script');
script.src = 'https://api.map.baidu.com/getscript?v=3.0&type=webgl&ak=Mb1FLBD3gfnY6bup4v6zEWh6MXwsZ9eo';
script.defer = true;
script.onload = () => resolve();
script.onerror = reject;
script.type = 'text/javascript';
document.head.appendChild(script);
});
}
async LoadBmapLibScript() {
return new Promise((resolve, reject) => {
// 地图加载完成后再加载BMapGLLib
const bmapLibScript = document.createElement('script');
bmapLibScript.src = '//mapopen.bj.bcebos.com/github/BMapGLLib/AreaRestriction/src/AreaRestriction.min.js';
bmapLibScript.defer = true;
bmapLibScript.type = 'text/javascript';
bmapLibScript.onload = () => {
resolve();
};
bmapLibScript.onerror = reject;
document.head.appendChild(bmapLibScript);
});
}
render() {
return (hAsync(Host, null, hAsync("div", { id: "mapContainer", ref: (dom) => {
if (dom) {
this.mapRef = dom;
}
}, style: { width: this.width, height: this.height } })));
}
get el() { return getElement(this); }
static get style() { return mapCss; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-map-core",
"$members$": {
"latitude": [2],
"longitude": [2],
"scale": [2],
"minScale": [2, "min-scale"],
"maxScale": [2, "max-scale"],
"markers": [16],
"polyline": [16],
"circles": [16],
"polygons": [16],
"subkey": [1],
"layerStyle": [2, "layer-style"],
"rotate": [2],
"skew": [2],
"showCompass": [4, "show-compass"],
"showScale": [4, "show-scale"],
"enableOverlooking": [4, "enable-overlooking"],
"enableZoom": [4, "enable-zoom"],
"enableScroll": [4, "enable-scroll"],
"enableRotate": [4, "enable-rotate"],
"enableSatellite": [4, "enable-satellite"],
"enableTraffic": [4, "enable-traffic"],
"enableBuilding": [4, "enable-building"],
"enableAutoMaxOverlooking": [4, "enable-auto-max-overlooking"],
"enable3D": [4, "enable-3-d"],
"width": [1],
"height": [1]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class MatchMedia {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('MatchMedia', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-match-media-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const areaCss = "taro-movable-area-core{width:10px;height:10px;display:block;position:relative}";
class MovableArea {
constructor(hostRef) {
registerInstance(this, hostRef);
/** 子元素集合 */
this.views = [];
/** 手势缩放 */
this.scaleLength = 0;
this.viewsChanged = () => {
this.views = [];
const elements = this.element.querySelectorAll('taro-movable-view-core');
Array.from(elements).forEach((element) => {
this.views.push(element);
});
this.updateArea();
};
this.handleTouchStart = (e) => {
const touches = e.touches;
if (!touches || touches.length <= 1) {
return;
}
const gap = {
width: touches[1].pageX - touches[0].pageX,
height: touches[1].pageY - touches[0].pageY
};
this.scaleLength = Math.sqrt(gap.width * gap.width + gap.height * gap.height);
if (this.scaleArea) {
return;
}
const find = (target, views) => {
const loop = (e, t) => {
if (!(e = e.parentNode)) {
return false;
}
return (!isElement(e) || e !== document.body) && (e === t || e === t.element || e.element === t || loop(e, t));
};
for (let i = 0; i < views.length; i++) {
const view = views[i];
if (target === view["element"] || loop(target, view)) {
return view;
}
}
};
const touch1 = find(touches[0].target, this.views);
const touch2 = find(touches[1].target, this.views);
this.scaleTarget = touch1 && touch1 === touch2 ? touch1 : undefined;
};
this.handleTouchMove = (e) => {
const touches = e.touches;
if (!touches || touches.length <= 1) {
return;
}
e.preventDefault();
const gap = {
width: touches[1].pageX - touches[0].pageX,
height: touches[1].pageY - touches[0].pageY
};
if (this.scaleLength > 0) {
this.updateScale(Math.sqrt(gap.width * gap.width + gap.height * gap.height) / this.scaleLength);
}
};
this.handleTouchEnd = (e) => {
var _a, _b;
if ((e.touches && e.touches.length) || !e.changedTouches) {
return;
}
this.scaleLength = 0;
if (this.scaleArea) {
this.views.forEach((element) => {
var _a;
(_a = element["endScale"]) === null || _a === void 0 ? void 0 : _a.call(element);
});
}
else {
(_b = (_a = this.scaleTarget) === null || _a === void 0 ? void 0 : _a["endScale"]) === null || _b === void 0 ? void 0 : _b.call(_a);
}
this.scaleTarget = undefined;
};
this.updateScale = (scale) => {
var _a, _b;
if (!scale || scale === 1) {
return;
}
if (this.scaleArea) {
this.views.forEach((element) => {
var _a;
(_a = element["setScale"]) === null || _a === void 0 ? void 0 : _a.call(element, scale);
});
}
else {
(_b = (_a = this.scaleTarget) === null || _a === void 0 ? void 0 : _a["setScale"]) === null || _b === void 0 ? void 0 : _b.call(_a, scale);
}
};
this.updateArea = () => {
const computedStyle = window.getComputedStyle(this.element);
const clientRect = this.element.getBoundingClientRect();
const horizontal = ["Left", "Right"].map((e) => {
return parseFloat(computedStyle["border" + e + "Width"]) + parseFloat(computedStyle["padding" + e]);
});
const vertical = ["Top", "Bottom"].map((e) => {
return parseFloat(computedStyle["border" + e + "Width"]) + parseFloat(computedStyle["padding" + e]);
});
this.views.forEach((element) => {
var _a;
(_a = element["setParent"]) === null || _a === void 0 ? void 0 : _a.call(element, {
element: this.element,
area: {
height: clientRect.height - vertical[0] - vertical[1],
width: clientRect.width - horizontal[0] - horizontal[1]
}
});
});
};
this.scaleArea = undefined;
}
connectedCallback() {
this.observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
var _a, _b;
if (mutation.attributeName === "class" || mutation.attributeName === "style") {
const offsetWidth = this.element.offsetWidth;
const offsetHeight = this.element.offsetHeight;
if (offsetWidth !== ((_a = this.offset) === null || _a === void 0 ? void 0 : _a.width) || offsetHeight !== ((_b = this.offset) === null || _b === void 0 ? void 0 : _b.height)) {
this.updateArea();
}
this.offset = {
width: offsetWidth,
height: offsetHeight
};
}
});
});
this.observer.observe(this.element, {
attributes: true
});
}
disconnectedCallback() {
var _a;
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
}
componentDidLoad() {
this.viewsChanged();
}
render() {
return (hAsync(Host, { onTouchStart: this.handleTouchStart, onTouchMove: this.handleTouchMove, onTouchEnd: this.handleTouchEnd }));
}
get element() { return getElement(this); }
static get style() { return areaCss; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-movable-area-core",
"$members$": {
"scaleArea": [4, "scale-area"]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const viewCss = "taro-movable-view-core{width:10px;height:10px;display:inline-block;position:absolute;top:0;left:0}";
class MovableView {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "change", 7);
this.onScale = createEvent(this, "scale", 7);
this.onHTouchMove = createEvent(this, "htouchmove", 7);
this.onVTouchMove = createEvent(this, "vtouchmove", 7);
/** 当前水平偏移 */
this.translateX = 0;
/** 当前垂直偏移 */
this.translateY = 0;
/** touch-start 原点 */
this.origin = { x: 0, y: 0 };
/** 父容器大小 */
this.area = { width: 0, height: 0 };
/** 原始缩放倍数 */
this.originScale = 1;
/** 当前缩放倍数 */
this.currentScale = 1;
/** 宽度 */
this.width = 0;
/** 高度 */
this.height = 0;
/** 移动边界 */
this.minX = 0;
this.minY = 0;
this.maxX = 0;
this.maxY = 0;
/** 移动基础位置 */
this.baseX = 0;
this.baseY = 0;
/** 偏移量 */
this.offset = { x: 0, y: 0 };
this.scaleOffset = { x: 0, y: 0 };
this.getLimitXY = (x, y) => {
let outOfBounds = false;
x > this.maxX ? (x = this.maxX, outOfBounds = true) : x < this.minX && (x = this.minX, outOfBounds = true);
y > this.maxY ? (y = this.maxY, outOfBounds = true) : y < this.minY && (y = this.minY, outOfBounds = true);
return { x, y, outOfBounds };
};
this.animationTo = (x, y, scale, source, noEmitChange, emitScale, callback) => {
if (this.animation) {
this.setTransform(x, y, scale, source, noEmitChange, emitScale);
callback === null || callback === void 0 ? void 0 : callback();
}
else {
this.setTransform(x, y, scale, source, noEmitChange, emitScale);
}
};
this.setTransform = (x, y, scale, source, noEmitChange, emitScale) => {
x = Number(x.toFixed(1));
y = Number(y.toFixed(1));
scale = Number((scale !== null && scale !== void 0 ? scale : this.currentScale).toFixed(3));
if (!this.outOfBounds) {
const limit = this.getLimitXY(x, y);
x = limit.x;
y = limit.y;
}
const subtract = (e, t) => {
return +((1e3 * e - 1e3 * t) / 1e3).toFixed(1);
};
const realX = subtract(x, this.scaleOffset.x);
const realY = subtract(y, this.scaleOffset.y);
if (this.translateX !== x || this.translateY !== y) {
!noEmitChange && this.onChange.emit({
x: realX,
y: realY,
source
});
}
if (scale !== this.currentScale) {
emitScale && this.onScale.emit({
scale,
x: realX,
y: realY
});
}
const transform = `translateX(${x}px) translateY(${y}px) translateZ(0px) scale(${scale})`;
this.element.style.transform = transform;
this.element.style.webkitTransform = transform;
this.translateX = x;
this.translateY = y;
this.currentScale = scale;
};
this.updateOffset = () => {
const offset = (element, parent) => {
if (element === parent || !element.offsetParent) {
return { left: 0, top: 0 };
}
const current = offset(element.offsetParent, parent);
return {
left: element.offsetLeft + current.left,
top: element.offsetTop + current.top
};
};
if (!this.parent) {
return;
}
const current = offset(this.element, this.parent);
this.offset.x = current.left;
this.offset.y = current.top;
};
this.updateScaleOffset = (scale = this.currentScale) => {
const rect = this.element.getBoundingClientRect();
this.height = rect.height / this.currentScale;
this.width = rect.width / this.currentScale;
this.scaleOffset.x = (this.width * scale - this.width) / 2;
this.scaleOffset.y = (this.height * scale - this.height) / 2;
};
this.updateBoundary = () => {
const x1 = 0 - this.offset.x + this.scaleOffset.x;
const x2 = this.area.width - this.width - this.offset.x - this.scaleOffset.x;
this.minX = Math.min(x1, x2);
this.maxX = Math.max(x1, x2);
const y1 = 0 - this.offset.y + this.scaleOffset.y;
const y2 = this.area.height - this.height - this.offset.y - this.scaleOffset.y;
this.minY = Math.min(y1, y2);
this.maxY = Math.max(y1, y2);
};
this.updateScale = (scale, animation, animationCallback) => {
if (!this.scale) {
return;
}
const target = this.adjustScale(scale);
this.updateScaleOffset(target);
this.updateBoundary();
const { x, y } = this.getLimitXY(this.translateX, this.translateY);
if (animation) {
this.animationTo(x, y, target, "", true, true, animationCallback);
}
else if (!this.updating) {
this.updating = true;
requestAnimationFrame(() => {
this.setTransform(x, y, target, "", true, true);
this.updating = false;
});
}
};
this.setOriginScale = (scale) => {
this.originScale = scale;
};
this.adjustScale = (scale) => {
return Math.min(10, this.scaleMax, Math.max(.5, this.scaleMin, scale));
};
this.handleTouchStart = (e) => {
const touches = e.touches;
if (this.disabled || touches.length > 1 || !this.element) {
return;
}
const touch = touches[0];
this.touching = true;
this.firstMoveFireEvent = false;
this.origin.x = touch.screenX;
this.origin.y = touch.screenY;
this.baseX = this.translateX;
this.baseY = this.translateY;
this.element.style.willChange = "transform";
};
this.handleTouchMove = (e) => {
const touches = e.touches;
if (this.disabled || !this.element || this.scaling || !this.touching || touches.length > 1) {
return;
}
if (this.direction !== "horizontal") {
e.preventDefault();
}
const touch = touches[0];
const x = touch.screenX - this.origin.x;
const y = touch.screenY - this.origin.y;
this.setTransform(this.xMove ? (x + this.baseX) : 0, this.yMove ? (y + this.baseY) : 0);
if (!this.firstMoveFireEvent) {
this.firstMoveFireEvent = true;
const onTouchMove = Math.abs(x) > Math.abs(y) ? this.onHTouchMove : this.onVTouchMove;
onTouchMove.emit({
originalEvent: e,
bubbles: false,
capturePhase: false,
composed: true,
extraFields: {
touches: e.touches || {},
changedTouches: e.changedTouches || {}
}
});
}
};
this.handleTouchEnd = (e) => {
const touch = e.changedTouches[0];
if (this.disabled || !this.touching || !touch) {
return;
}
this.touching = false;
const x = touch.screenX - this.origin.x;
const y = touch.screenY - this.origin.y;
this.setTransform(this.xMove ? (x + this.baseX) : 0, this.yMove ? (y + this.baseY) : 0);
};
this.x = 0;
this.y = 0;
this.direction = "none";
this.outOfBounds = false;
this.inertia = false;
this.friction = 2;
this.damping = 20;
this.disabled = false;
this.scale = false;
this.scaleMin = .5;
this.scaleMax = 10;
this.scaleValue = 1;
this.animation = true;
}
watchX(newValue) {
this.setTransform(parseFloat(`${newValue || 0}`), this.translateY);
}
watchY(newValue) {
this.setTransform(this.translateX, parseFloat(`${newValue || 0}`));
}
watchScaleMinOrMax() {
if (!this.scale)
return false;
this.updateScale(this.currentScale, true);
this.setOriginScale(this.currentScale);
}
watchScaleValue(scale) {
if (!this.scale) {
return false;
}
this.updateScale(scale, true);
this.setOriginScale(scale);
return scale;
}
/**
* 设置父节点
*/
async setParent({ element, area }) {
const scale = this.scale ? this.scaleValue : 1;
this.area = area;
this.parent = element;
this.updateOffset();
this.updateScaleOffset(scale);
this.updateBoundary();
this.setTransform(Number(this.x) + this.scaleOffset.x, Number(this.y) + this.scaleOffset.y, scale, "", true);
this.setOriginScale(scale);
}
/**
* 结束缩放
*/
async endScale() {
this.scaling = false;
this.setOriginScale(this.currentScale);
}
/**
* 更新缩放
*/
async setScale(scale) {
if (!this.scale) {
return;
}
this.scaling = true;
this.updateScale(scale * this.originScale);
}
connectedCallback() {
this.observer = new MutationObserver((mutations) => {
mutations.forEach((mutation) => {
const name = mutation.attributeName;
if (name && ["class", "style"].includes(name)) {
const oldValue = mutation.oldValue;
const newValue = mutation.target.getAttribute(name);
if (oldValue === newValue) {
return;
}
const filter = (input) => {
return input === null || input === void 0 ? void 0 : input.split(";").filter((item) => {
return !["transform", "will-change"].find((key) => {
return item.trim().startsWith(key);
});
}).join(";");
};
if (name === "style" && filter(newValue) === filter(oldValue)) {
return;
}
this.updateOffset();
this.updateScaleOffset();
this.updateBoundary();
this.setTransform(this.translateX, this.translateY);
}
});
});
this.observer.observe(this.element, {
attributes: true,
attributeOldValue: true
});
}
disconnectedCallback() {
var _a;
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
}
componentDidLoad() {
this.element.style.transformOrigin = "center";
this.xMove = ["horizontal", "all"].includes(this.direction);
this.yMove = ["vertical", "all"].includes(this.direction);
if (this.friction <= 0) {
this.friction = 2;
}
if (this.x || this.y) {
const x = parseFloat(`${this.x || 0}`);
const y = parseFloat(`${this.y || 0}`);
this.setTransform(x, y);
}
}
render() {
return (hAsync(Host, { onTouchStart: this.handleTouchStart, onTouchMove: this.handleTouchMove, onTouchEnd: this.handleTouchEnd }));
}
get element() { return getElement(this); }
static get watchers() { return {
"x": ["watchX"],
"y": ["watchY"],
"scaleMin": ["watchScaleMinOrMax"],
"scaleMax": ["watchScaleMinOrMax"],
"scaleValue": ["watchScaleValue"]
}; }
static get style() { return viewCss; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-movable-view-core",
"$members$": {
"x": [8],
"y": [8],
"direction": [1],
"outOfBounds": [4, "out-of-bounds"],
"inertia": [4],
"friction": [2],
"damping": [2],
"disabled": [4],
"scale": [4],
"scaleMin": [2, "scale-min"],
"scaleMax": [2, "scale-max"],
"scaleValue": [2, "scale-value"],
"animation": [4],
"setParent": [64],
"endScale": [64],
"setScale": [64]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class NativeSlot {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('NativeSlot', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-native-slot-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class NavigationBar {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('NavigationBar', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-navigation-bar-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$f = ".navigator-hover{background:#efefef}";
/**
* TODO: 参数还需要进一步细化对齐
* Navigator组件
* https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html
**/
class Navigator {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onSuccess = createEvent(this, "cuccess", 7);
this.onFail = createEvent(this, "fail", 7);
this.onComplete = createEvent(this, "complete", 7);
this.hoverClass = undefined;
this.url = undefined;
this.openType = 'navigate';
this.isHover = false;
this.delta = 0;
}
onClick() {
const { openType, onSuccess, onFail, onComplete } = this;
let promise = Promise.resolve();
switch (openType) {
case 'navigate':
promise = Taro__default['default'].navigateTo({
url: this.url
});
break;
case 'redirect':
promise = Taro__default['default'].redirectTo({
url: this.url
});
break;
case 'switchTab':
promise = Taro__default['default'].switchTab({
url: this.url
});
break;
case 'reLaunch':
promise = Taro__default['default'].reLaunch({
url: this.url
});
break;
case 'navigateBack':
promise = Taro__default['default'].navigateBack({
delta: this.delta
});
break;
case 'exit':
promise = Promise.reject(new Error('navigator:fail 暂不支持"openType: exit"'));
break;
}
if (promise) {
promise.then(res => {
onSuccess.emit(res);
}).catch(res => {
onFail.emit(res);
}).finally(() => {
onComplete.emit();
});
}
}
render() {
const { isHover, hoverClass } = this;
return (hAsync(Host, { class: classnames({
[hoverClass]: isHover
}) }));
}
static get style() { return indexCss$f; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-navigator-core",
"$members$": {
"hoverClass": [1, "hover-class"],
"url": [1],
"openType": [1, "open-type"],
"isHover": [4, "is-hover"],
"delta": [2]
},
"$listeners$": [[0, "click", "onClick"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class NestedScrollBody {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('NestedScrollBody', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-nested-scroll-body-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class NestedScrollHeader {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('NestedScrollHeader', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-nested-scroll-header-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class OfficialAccount {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('OfficialAccount', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-official-account-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class OpenContainer {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('OpenContainer', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-open-container-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class OpenData {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('OpenData', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-open-data-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class OpenEmbeddedAtomicservice {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('OpenEmbeddedAtomicservice', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-open-embedded-atomicservice-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class PageContainer {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('PageContainer', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-page-container-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class PageMeta {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('PageMeta', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-page-meta-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class PanGestureHandler {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('PanGestureHandler', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-pan-gesture-handler-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
function getTimeRange(begin, end) {
const range = [];
for (let i = begin; i <= end; i++) {
range.push(`${i < 10 ? '0' : ''}${i}`);
}
return range;
}
const hoursRange = [
'20',
'21',
'22',
'23',
...getTimeRange(0, 23),
'00',
'01',
'02',
'03'
];
const minutesRange = [
'56',
'57',
'58',
'59',
...getTimeRange(0, 59),
'00',
'01',
'02',
'03'
];
/**
* 校验传入的 value 是否合法
*/
function verifyValue(value, range) {
if (!isNaN(+value) && value >= 0 && value < range.length)
return true;
return false;
}
/**
* 检验传入的 time value 是否合法
*/
function verifyTime(value) {
if (!/^\d{1,2}:\d{1,2}$/.test(value))
return false;
const time = value.split(':').map(num => +num);
if (time[0] < 0 || time[0] > 23)
return false;
if (time[1] < 0 || time[1] > 59)
return false;
return true;
}
/**
* 比较时间
* return t1 <= t2
*/
function compareTime(t1, t2) {
const t1List = t1.split(':').map(i => +i);
const t2List = t2.split(':').map(i => +i);
if (t1List[0] < t2List[0])
return true;
if (t1List[0] === t2List[0] && t1List[1] <= t2List[1])
return true;
return false;
}
/**
* 校验日期合法性,返回合法性和日期数组
*/
function verifyDate(dateStr) {
if (!dateStr)
return false;
const date = new Date(dateStr.replace(/-/g, '/'));
return isNaN(date.getMonth()) ? false : date;
}
/**
* 获取当月最大天数
*/
function getMaxDay(year, month) {
if (month === 4 || month === 6 || month === 9 || month === 11)
return 30;
if (month === 2) {
if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0)
return 29;
else
return 28;
}
return 31;
}
function formatValue(value) {
let res;
if (Array.isArray(value)) {
res = value.map(item => String(item));
}
else {
res = value;
}
return res;
}
/**
* 获取时间数组
*/
function getDateRange(start, end) {
const range = [];
for (let i = start; i <= end; i++) {
range.push(i);
}
return range;
}
/**
* 获取年份区间数组
*/
function getYearRange(start, end) {
return getDateRange(start, end);
}
/**
* 获取月份区间数组
*/
function getMonthRange(start, end, year) {
let rangeStart = 1;
let rangeEnd = 12;
// 当前年份等于开始年份,由开始对应的月份约束开始值
if (start.getFullYear() === year) {
rangeStart = start.getMonth() + 1;
}
// 当前年份等于结束年份,由结束对应的月份约束结束值
if (end.getFullYear() === year) {
rangeEnd = end.getMonth() + 1;
}
return getDateRange(rangeStart, rangeEnd);
}
/**
* 获取日期区间数组
*/
function getDayRange(start, end, year, month) {
let rangeStart = 1;
let rangeEnd = getMaxDay(year, month);
if (start.getFullYear() === year && start.getMonth() + 1 === month) {
rangeStart = start.getDate();
}
if (end.getFullYear() === year && end.getMonth() + 1 === month) {
rangeEnd = end.getDate();
}
return getDateRange(rangeStart, rangeEnd);
}
const TOP = 102;
const LINE_HEIGHT = 34;
const MASK_HEIGHT = LINE_HEIGHT * 7;
const indexCss$e = ".weui-mask{z-index:1000;background:rgba(0,0,0,.6);position:fixed;inset:0}.weui-mask_transparent{z-index:1000;position:fixed;inset:0}@keyframes weuiSlideUp{0%{transform:translateY(100%)}to{transform:translate(0,0)}}.weui-animate-slide-up{animation:.3s forwards weuiSlideUp}@keyframes weuiSlideDown{0%{transform:translate(0,0)}to{transform:translateY(100%)}}.weui-animate-slide-down{animation:.3s forwards weuiSlideDown}@keyframes weuiFadeIn{0%{opacity:0}to{opacity:1}}.weui-animate-fade-in{animation:.3s forwards weuiFadeIn}@keyframes weuiFadeOut{0%{opacity:1}to{opacity:0}}.weui-animate-fade-out{animation:.3s forwards weuiFadeOut}.weui-picker{box-sizing:border-box;z-index:5000;background-color:var(--weui-BG-2);width:100%;padding-left:0;padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left);padding-right:0;padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right);backface-visibility:hidden;transition:transform .3s;position:fixed;bottom:0;left:0;transform:translateY(100%)}.weui-picker__hd{text-align:center;background-color:#fff;padding:9px 15px;font-size:17px;display:flex;position:relative}.weui-picker__hd:after{content:\" \";color:#e5e5e5;transform-origin:0 100%;border-bottom:1px solid #e5e5e5;height:1px;position:absolute;bottom:0;left:0;right:0;transform:scaleY(.5)}.weui-picker__action{color:#1aad19;flex:1;display:block}.weui-picker__action:first-child{text-align:left;color:#888}.weui-picker__action:last-child{text-align:right}.weui-picker__bd{background-color:#fff;height:238px;display:flex;position:relative;overflow:hidden}.weui-picker__group{flex:1;height:100%;position:relative}.weui-picker__mask{z-index:3;background-color:transparent;background-image:linear-gradient(rgba(255,255,255,.95),rgba(255,255,255,.6)),linear-gradient(rgba(255,255,255,.6),rgba(255,255,255,.95));background-position:top,bottom;background-repeat:no-repeat;background-size:100% 102px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;width:100%;height:100%;margin:0 auto;position:absolute;top:0;left:0;transform:translateZ(0)}.weui-picker__indicator{z-index:3;width:100%;height:34px;position:absolute;top:102px;left:0}.weui-picker__indicator:before{content:\" \";color:#e5e5e5;transform-origin:0 0;border-top:1px solid #e5e5e5;height:1px;position:absolute;top:0;left:0;right:0;transform:scaleY(.5)}.weui-picker__indicator:after{content:\" \";color:#e5e5e5;transform-origin:0 100%;border-bottom:1px solid #e5e5e5;height:1px;position:absolute;bottom:0;left:0;right:0;transform:scaleY(.5)}.weui-picker__content{width:100%;position:absolute;top:0;left:0}.weui-picker__item{text-align:center;color:#000;text-overflow:ellipsis;white-space:nowrap;height:34px;padding:0;line-height:34px;overflow:hidden}.weui-picker__item_disabled{color:#999}.weui-picker,.weui-picker__hd{font-size:12px}";
class Picker {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "change", 7);
this.onColumnChange = createEvent(this, "columnchange", 7);
this.onCancel = createEvent(this, "cancel", 7);
this.index = [];
// 展示 Picker
this.showPicker = () => {
if (this.disabled)
return;
this.height = this.getHeightByIndex();
this.hidden = false;
};
this.getHeightByIndex = () => {
const height = this.index.map(i => {
let factor = 0;
if (this.mode === 'time') {
factor = LINE_HEIGHT * 4;
}
return TOP - LINE_HEIGHT * i - factor;
});
return height;
};
// 隐藏 picker
this.hidePicker = () => {
this.fadeOut = true;
setTimeout(() => {
this.hidden = true;
this.fadeOut = false;
}, 350);
};
// 点击确定按钮
this.handleChange = () => {
this.hidePicker();
this.index = this.height.map(h => (TOP - h) / LINE_HEIGHT);
let value = this.index.length && this.mode !== 'selector'
? this.index
: this.index[0];
if (this.mode === 'time') {
const range = [hoursRange.slice(), minutesRange.slice()];
const timeArr = this.index.map((n, i) => range[i][n]);
this.index = timeArr.map(item => parseInt(item));
value = timeArr.join(':');
}
if (this.mode === 'date') {
const { _start, _end, _updateValue } = this.pickerDate;
const currentYear = _updateValue[0];
const currentMonth = _updateValue[1];
const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear());
const monthRange = getMonthRange(_start, _end, currentYear);
const dayRange = getDayRange(_start, _end, currentYear, currentMonth);
const year = yearRange[this.index[0]];
const month = monthRange[this.index[1]];
const day = dayRange[this.index[2]];
if (this.fields === 'year') {
value = [year];
}
else if (this.fields === 'month') {
value = [year, month];
}
else {
value = [year, month, day];
}
value = value
.map(item => {
return item < 10 ? `0${item}` : item;
})
.join('-');
}
this.value = value;
this.pickerValue = this.value;
this.onChange.emit({
value
});
};
this.handleColumnChange = (e) => {
const { columnId, height } = e.detail;
this.onColumnChange.emit({
column: Number(columnId),
value: (TOP - height) / LINE_HEIGHT
});
};
// 点击取消按钮或蒙层
this.handleCancel = () => {
this.hidePicker();
this.onCancel.emit();
};
this.updateHeight = (height, columnId, needRevise = false) => {
const temp = [...this.height];
temp[columnId] = height;
this.height = temp;
// time picker 必须在规定时间范围内,因此需要在 touchEnd 做修正
if (needRevise) {
let { start, end } = this;
if (!verifyTime(start))
start = '00:00';
if (!verifyTime(end))
end = '23:59';
if (!compareTime(start, end))
return;
const range = [hoursRange.slice(), minutesRange.slice()];
const timeList = this.height.map(h => (TOP - h) / LINE_HEIGHT);
const timeStr = timeList.map((n, i) => range[i][n]).join(':');
if (!compareTime(start, timeStr)) {
// 修正到 start
const height = start
.split(':')
.map(i => TOP - LINE_HEIGHT * (+i + 4));
requestAnimationFrame(() => (this.height = height));
}
else if (!compareTime(timeStr, end)) {
// 修正到 end
const height = end
.split(':')
.map(i => TOP - LINE_HEIGHT * (+i + 4));
requestAnimationFrame(() => (this.height = height));
}
}
};
this.updateDay = (value, fields) => {
const { _start, _end, _updateValue } = this.pickerDate;
_updateValue[fields] = value;
const currentYear = _updateValue[0];
const currentMonth = _updateValue[1];
const currentDay = _updateValue[2];
// 滚动年份
if (fields === 0) {
const monthRange = getMonthRange(_start, _end, currentYear);
const max = monthRange[monthRange.length - 1];
const min = monthRange[0];
if (currentMonth > max)
_updateValue[1] = max;
if (currentMonth < min)
_updateValue[1] = min;
const index = monthRange.indexOf(_updateValue[1]);
const height = TOP - LINE_HEIGHT * index;
this.updateDay(_updateValue[1], 1);
this.updateHeight(height, '1');
}
else if (fields === 1) {
const dayRange = getDayRange(_start, _end, currentYear, currentMonth);
const max = dayRange[dayRange.length - 1];
const min = dayRange[0];
if (currentDay > max)
_updateValue[2] = max;
if (currentDay < min)
_updateValue[2] = min;
const index = dayRange.indexOf(_updateValue[2]);
const height = TOP - LINE_HEIGHT * index;
this.updateDay(_updateValue[2], 2);
this.updateHeight(height, '2');
}
};
// 单列选择器
this.getSelector = () => {
return (hAsync("taro-picker-group", { range: this.range, rangeKey: this.rangeKey, height: this.height[0], updateHeight: this.updateHeight, columnId: '0' }));
};
// 多列选择器
this.getMultiSelector = () => {
return this.range.map((range, index) => {
return (hAsync("taro-picker-group", { range: range, rangeKey: this.rangeKey, height: this.height[index], updateHeight: this.updateHeight, onColumnChange: this.handleColumnChange, columnId: String(index) }));
});
};
// 时间选择器
this.getTimeSelector = () => {
const hourRange = hoursRange.slice();
const minRange = minutesRange.slice();
return [
hAsync("taro-picker-group", { mode: 'time', range: hourRange, height: this.height[0], updateHeight: this.updateHeight, columnId: '0' }),
hAsync("taro-picker-group", { mode: 'time', range: minRange, height: this.height[1], updateHeight: this.updateHeight, columnId: '1' })
];
};
// 日期选择器
this.getDateSelector = () => {
const { fields, height } = this;
const { _start, _end, _updateValue } = this.pickerDate;
const currentYear = _updateValue[0];
const currentMonth = _updateValue[1];
const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear())
.map(item => `${item}年`);
const monthRange = getMonthRange(_start, _end, currentYear)
.map(item => `${item < 10 ? `0${item}` : item}月`);
const dayRange = getDayRange(_start, _end, currentYear, currentMonth)
.map(item => `${item < 10 ? `0${item}` : item}日`);
const renderView = [
hAsync("taro-picker-group", { mode: 'date', range: yearRange, height: height[0], updateDay: this.updateDay, updateHeight: this.updateHeight, columnId: '0' })
];
if (fields === 'month' || fields === 'day') {
renderView.push(hAsync("taro-picker-group", { mode: 'date', range: monthRange, height: height[1], updateDay: this.updateDay, updateHeight: this.updateHeight, columnId: '1' }));
}
if (fields === 'day') {
renderView.push(hAsync("taro-picker-group", { mode: 'date', range: dayRange, height: height[2], updateDay: this.updateDay, updateHeight: this.updateHeight, columnId: '2' }));
}
return renderView;
};
this.mode = 'selector';
this.disabled = false;
this.range = [];
this.rangeKey = undefined;
this.value = undefined;
this.start = '';
this.end = '';
this.fields = 'day';
this.name = '';
this.textProps = {};
this.pickerValue = [];
this.height = [];
this.hidden = true;
this.fadeOut = false;
this.isWillLoadCalled = false;
}
componentWillLoad() {
this.isWillLoadCalled = true;
this.handleProps();
}
componentDidLoad() {
if (this.overlay) {
document.body.appendChild(this.overlay);
}
}
disconnectedCallback() {
var _a;
if (this.overlay) {
(_a = this.overlay.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(this.overlay);
}
}
onPropsChange() {
if (!this.isWillLoadCalled)
return;
this.handleProps();
}
handleProps() {
const { mode, start, end } = this;
if (mode === 'selector') {
const value = this.value;
this.index = [verifyValue(value, this.range) ? Math.floor(value) : 0];
}
else if (mode === 'multiSelector') {
const value = this.value;
this.index = [];
this.range.forEach((range, index) => {
const val = value === null || value === void 0 ? void 0 : value[index];
const item = verifyValue(val, range) ? Math.floor(val) : 0;
this.index.push(item);
});
}
else if (mode === 'time') {
let value = this.value;
// check value...
if (!verifyTime(value)) {
console.warn('time picker value illegal');
value = '0:0';
}
const time = value.split(':').map(n => +n);
this.index = time;
}
else if (mode === 'date') {
const value = this.value;
let _value = verifyDate(value) || new Date(new Date().setHours(0, 0, 0, 0)); // 没传值或值的合法性错误默认今天时间
const _start = verifyDate(start) || new Date('1970/01/01');
const _end = verifyDate(end) || new Date('2999/01/01');
// 时间区间有效性
if (!(_start <= _end)) {
throw new Error(`Picker start time must be less than end time.`);
}
if (!(_value >= _start && _value <= _end)) {
_value = _start;
}
const currentYear = _value.getFullYear();
const currentMonth = _value.getMonth() + 1;
const currentDay = _value.getDate();
const yearRange = getYearRange(_start.getFullYear(), _end.getFullYear());
const monthRange = getMonthRange(_start, _end, currentYear);
const dayRange = getDayRange(_start, _end, currentYear, currentMonth);
this.index = [
yearRange.indexOf(currentYear),
monthRange.indexOf(currentMonth),
dayRange.indexOf(currentDay)
];
if (!this.pickerDate ||
this.pickerDate._value.getTime() !== _value.getTime() ||
this.pickerDate._start.getTime() !== _start.getTime() ||
this.pickerDate._end.getTime() !== _end.getTime()) {
this.pickerDate = {
_value,
_start,
_end,
_updateValue: [
currentYear,
currentMonth,
currentDay
]
};
}
}
else {
throw new Error(`Picker not support "${mode}" mode.`);
}
// Prop 变化时,无论是否正在显示弹层,都更新 height 值
this.height = this.getHeightByIndex();
// 同步表单 value 值,用于 form submit
this.pickerValue = this.value;
if (mode === 'date') {
const val = this.pickerValue;
if (this.fields === 'month') {
this.pickerValue = val.split('-').slice(0, 2).join('-');
}
else if (this.fields === 'year') {
this.pickerValue = val.split('-')[0];
}
}
}
render() {
var _a, _b;
const { name, mode, fadeOut, hidden } = this;
// 选项条
let pickerGroup;
switch (mode) {
case 'multiSelector':
pickerGroup = this.getMultiSelector();
break;
case 'time':
pickerGroup = this.getTimeSelector();
break;
case 'date':
pickerGroup = this.getDateSelector();
break;
default:
pickerGroup = this.getSelector();
}
// 动画类名控制逻辑
const clsMask = classnames('weui-mask', 'weui-animate-fade-in', {
'weui-animate-fade-out': fadeOut
});
const clsSlider = classnames('weui-picker', 'weui-animate-slide-up', {
'weui-animate-slide-down': fadeOut
});
const shouldDivHidden = hidden ? { display: 'none' } : {};
return (hAsync(Host, null, hAsync("div", { onClick: this.showPicker }, hAsync("slot", null), hAsync("input", { type: 'hidden', name: name, value: formatValue(this.pickerValue) })), hAsync("div", { class: 'weui-picker__overlay', style: shouldDivHidden, ref: el => { this.overlay = el; } }, hAsync("div", { class: clsMask, onClick: this.handleCancel }), hAsync("div", { class: clsSlider }, hAsync("div", { class: 'weui-picker__hd' }, hAsync("div", { class: 'weui-picker__action', onClick: this.handleCancel }, (_a = this.textProps.cancelText) !== null && _a !== void 0 ? _a : '取消'), hAsync("div", { class: 'weui-picker__action', onClick: this.handleChange }, (_b = this.textProps.okText) !== null && _b !== void 0 ? _b : '确定')), hAsync("div", { class: 'weui-picker__bd' }, pickerGroup), hAsync("input", { type: 'hidden', name: name, value: formatValue(this.pickerValue) })))));
}
get el() { return getElement(this); }
static get watchers() { return {
"mode": ["onPropsChange"],
"value": ["onPropsChange"],
"range": ["onPropsChange"],
"start": ["onPropsChange"],
"end": ["onPropsChange"]
}; }
static get style() { return indexCss$e; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-picker-core",
"$members$": {
"mode": [1],
"disabled": [4],
"range": [16],
"rangeKey": [1, "range-key"],
"value": [1032],
"start": [1],
"end": [1],
"fields": [1],
"name": [1],
"textProps": [16],
"pickerValue": [32],
"height": [32],
"hidden": [32],
"fadeOut": [32],
"isWillLoadCalled": [32]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$d = ".taro-picker-view-container{display:flex;position:relative}.taro-picker-view-mask-container{pointer-events:none;flex-direction:column;display:flex;position:absolute;inset:0}.taro-picker-view-mask-indicator{border-top:1px solid #ddd;border-bottom:1px solid #ddd;height:50px;display:flex}.taro-picker-view-mask-top{background-image:linear-gradient(rgba(255,255,255,.95),rgba(255,255,255,.6));flex:1}.taro-picker-view-mask-bottom{background:linear-gradient(rgba(255,255,255,.6),rgba(255,255,255,.95));flex:1}";
class PickerView {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "change", 7);
this.onPickStart = createEvent(this, "pickstart", 7);
this.onPickEnd = createEvent(this, "pickend", 7);
this.indicatorStyle = undefined;
this.indicatorClass = undefined;
this.value = undefined;
this.maskStyle = undefined;
this.maskClass = undefined;
}
onPropsChange() {
this.handleValueChange();
}
onSelect(e) {
e.stopPropagation();
if (e.target.tagName !== 'TARO-PICKER-VIEW-COLUMN-CORE')
return;
let _curIndex = +e.detail.curIndex;
let _selectedIndex = +e.detail.selectedIndex;
this.value[_curIndex] = _selectedIndex;
this.onChange.emit({ value: this.value });
}
onSelectStart(e) {
e.stopPropagation();
if (e.target.tagName !== 'TARO-PICKER-VIEW-COLUMN-CORE')
return;
this.onPickStart.emit();
}
onPickerColEnd(e) {
e.stopPropagation();
if (e.target.tagName !== 'TARO-PICKER-VIEW-COLUMN-CORE')
return;
this.onPickEnd.emit();
}
componentDidLoad() {
this.handleValueChange();
}
handleValueChange() {
const childList = this.el.querySelectorAll('taro-picker-view-column-core');
childList.forEach((element, index) => {
var _a;
element.setAttribute('col', `${index}`);
let selectIndex = 0;
if (!!this.value && this.value.length > index) {
selectIndex = this.value[index];
}
const pickerHeight = this.el.getBoundingClientRect().height;
const indicatorHeight = ((_a = this.indicator) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0;
const paddingVertical = (pickerHeight - indicatorHeight) / 2.0;
element.setAttribute('initial-position', `${selectIndex}`);
element.setAttribute('padding-vertical', `${paddingVertical}`);
});
}
// 过滤非 PickerViewColumn 组件
componentDidRender() {
this.el.childNodes.forEach(item => {
const childEle = item;
if ('TARO-PICKER-VIEW-COLUMN-CORE' !== childEle.tagName &&
childEle.className !== 'taro-picker-view-mask-container') {
this.el.removeChild(item);
}
});
}
render() {
const indicatorCls = classnames('taro-picker-view-mask-indicator', this.indicatorClass);
const maskTopCls = classnames('taro-picker-view-mask-top', this.maskClass);
const maskBtmCls = classnames('taro-picker-view-mask-bottom', this.maskClass);
const indicatorStyle = convertStyle(this.indicatorStyle);
const maskTopStyle = convertStyle(this.maskStyle);
const maskBottomStyle = convertStyle(this.maskStyle);
return (hAsync(Host, { class: "taro-picker-view-container" }, hAsync("slot", null), hAsync("div", { class: "taro-picker-view-mask-container" }, hAsync("div", { class: maskTopCls, style: maskTopStyle }), hAsync("div", { class: indicatorCls, style: indicatorStyle, ref: indicator => (this.indicator = indicator) }), hAsync("div", { class: maskBtmCls, style: maskBottomStyle }))));
}
get el() { return getElement(this); }
static get watchers() { return {
"value": ["onPropsChange"]
}; }
static get style() { return indexCss$d; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-picker-view-core",
"$members$": {
"indicatorStyle": [1, "indicator-style"],
"indicatorClass": [1, "indicator-class"],
"value": [16],
"maskStyle": [1, "mask-style"],
"maskClass": [1, "mask-class"]
},
"$listeners$": [[0, "onselect", "onSelect"], [0, "onselectstart", "onSelectStart"], [0, "onselectend", "onPickerColEnd"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const columnCss = ".taro-picker-view-column-container{text-align:center;flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden scroll}.taro-picker-view-column-container::-webkit-scrollbar{display:none}";
class PickerViewColumn {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "onselect", 7);
this.onSelectStart = createEvent(this, "onselectstart", 7);
this.onSelectEnd = createEvent(this, "onselectend", 7);
// 滚动结束自动回到合适的位置
this.handleSelected = debounce(() => {
const childList = this.el.childNodes;
let sum = 0;
let selectedIndex = '0';
for (const index in childList) {
const item = childList[index];
const itemHeight = item.offsetHeight;
if (sum + itemHeight / 2.0 > this.el.scrollTop) {
selectedIndex = index;
break;
}
sum += itemHeight;
}
this.el.scrollTo({
top: sum,
behavior: 'smooth'
});
this.onChange.emit({
curIndex: this.col,
selectedIndex: selectedIndex
});
this.onSelectEnd.emit();
}, 500);
this.col = undefined;
this.initialPosition = '0';
this.paddingVertical = 0;
this.isInit = false;
}
onTouchStart() {
this.onSelectStart.emit();
}
onTouchEnd() {
this.handleSelected();
}
componentDidLoad() {
this.handleChange();
}
componentDidUpdate() {
this.handleChange();
}
handleChange() {
const childList = this.el.childNodes;
let idx = 0;
let sum = 0;
for (const index in childList) {
const item = childList[index];
if (this.initialPosition === index || !item || typeof item.offsetHeight !== 'number') {
break;
}
sum += item.offsetHeight;
idx++;
}
this.el.scrollTo({ top: sum });
if (idx >= childList.length) {
this.onChange.emit({
curIndex: this.col,
selectedIndex: idx - 1
});
}
}
render() {
const { paddingVertical = 0 } = this;
return (hAsync(Host, { class: "taro-picker-view-column-container", style: { 'padding-top': `${paddingVertical}px`, 'padding-bottom': `${paddingVertical}px` } }));
}
get el() { return getElement(this); }
static get style() { return columnCss; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-picker-view-column-core",
"$members$": {
"col": [1],
"initialPosition": [1, "initial-position"],
"paddingVertical": [2, "padding-vertical"],
"isInit": [32]
},
"$listeners$": [[1, "touchstart", "onTouchStart"], [1, "touchend", "onTouchEnd"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$c = ".weui-progress{align-items:center;display:flex}.weui-progress__bar{background-color:#ebebeb;flex:1;height:3px}.weui-progress__inner-bar{background-color:#09bb07;width:0;height:100%}.weui-progress__opr{margin-left:15px;font-size:0;display:block}";
class Progress {
constructor(hostRef) {
registerInstance(this, hostRef);
this.percent = 0;
this.showInfo = false;
this.borderRadius = 0;
this.fontSize = 16;
this.strokeWidth = 6;
this.activeColor = '#09BB07';
this.backgroundColor = '#EBEBEB';
this.active = false;
}
render() {
const { percent, showInfo, borderRadius, fontSize, strokeWidth, activeColor, backgroundColor, active } = this;
const pgPercent = percent > 100 ? 100 : percent < 0 ? 0 : percent;
const pgHeight = {
height: strokeWidth + 'px',
backgroundColor
};
const transition = active ? 'width 1s ease-in-out' : 'none';
const pgWidth = {
width: `${pgPercent}%`,
transition,
WebkitTransition: transition,
backgroundColor: activeColor,
borderRadius: borderRadius ? `${borderRadius}px` : '0px'
};
return (hAsync(Host, { class: 'weui-progress' }, hAsync("div", { class: 'weui-progress__bar', style: pgHeight }, hAsync("div", { class: 'weui-progress__inner-bar', style: pgWidth })), showInfo && (hAsync("div", { class: 'weui-progress__opr', style: { 'font-size': `${fontSize}px` } }, hAsync("span", null, pgPercent, "%")))));
}
static get style() { return indexCss$c; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-progress-core",
"$members$": {
"percent": [2],
"showInfo": [4, "show-info"],
"borderRadius": [8, "border-radius"],
"fontSize": [8, "font-size"],
"strokeWidth": [8, "stroke-width"],
"activeColor": [1, "active-color"],
"backgroundColor": [1, "background-color"],
"active": [4]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$b = ".rmc-pull-to-refresh-content{transform-origin:0 0}.rmc-pull-to-refresh-content-wrapper{min-height:100%}.rmc-pull-to-refresh-transition{transition:transform .3s}@keyframes rmc-pull-to-refresh-indicator{50%{opacity:.2}to{opacity:1}}.rmc-pull-to-refresh-indicator{text-align:center;height:30px;line-height:10px}.rmc-pull-to-refresh-indicator>div{background-color:gray;border-radius:100%;width:6px;height:6px;margin:3px;animation:.5s linear infinite both rmc-pull-to-refresh-indicator;display:inline-block}.rmc-pull-to-refresh-indicator>div:nth-child(0){animation-delay:-.1s!important}.rmc-pull-to-refresh-indicator>div:first-child{animation-delay:-.2s!important}.rmc-pull-to-refresh-indicator>div:nth-child(2){animation-delay:-.3s!important}.rmc-pull-to-refresh-down .rmc-pull-to-refresh-indicator{margin-top:-25px}";
function setTransform(nodeStyle, value) {
nodeStyle.transform = value;
nodeStyle.webkitTransform = value;
nodeStyle.MozTransform = value;
}
const isWebView = typeof navigator !== 'undefined' &&
/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);
const INDICATOR = {
activate: 'release',
deactivate: 'pull',
release: 'loading',
finish: 'finish'
};
let supportsPassive = false;
try {
const opts = Object.defineProperty({}, 'passive', {
get() {
supportsPassive = true;
}
});
window.addEventListener('cancel', () => ({}), opts);
}
catch (e) { }
const willPreventDefault = supportsPassive ? { passive: false } : false;
class PullToRefresh {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onRefresh = createEvent(this, "refresh", 7);
this._ScreenY = 0;
this._startScreenY = 0;
this._lastScreenY = 0;
this._isMounted = false;
this.triggerPullDownRefresh = (flag) => {
// 在初始化时、用代码 自动 触发 pullDownRefresh
// 添加this._isMounted的判断,否则组建一实例化,currSt就会是finish
if (!this.dragOnEdge && this._isMounted) {
if (flag) {
this._lastScreenY = this.distanceToRefresh + 1;
// change dom need after setState
this.currSt = 'release';
this.setContentStyle(this._lastScreenY);
}
else {
this.currSt = 'finish';
this.reset();
}
}
};
this.init = () => {
const ele = this.scrollContainer;
const child = this.el.querySelector('.rmc-pull-to-refresh-content');
this.el.appendChild = child === null || child === void 0 ? void 0 : child.appendChild.bind(child);
this.el.insertBefore = child === null || child === void 0 ? void 0 : child.insertBefore.bind(child);
this.el.replaceChild = child === null || child === void 0 ? void 0 : child.replaceChild.bind(child);
this.el.removeChild = child === null || child === void 0 ? void 0 : child.removeChild.bind(child);
this._to = {
touchstart: this.onTouchStart.bind(this, ele),
touchmove: this.onTouchMove.bind(this, ele),
touchend: this.onTouchEnd.bind(this, ele),
touchcancel: this.onTouchEnd.bind(this, ele)
};
Object.keys(this._to).forEach(key => {
ele.addEventListener(key, this._to[key], willPreventDefault);
});
};
this.destroy = () => {
// fix 频繁切换页面,可能会导致 this._to 为空造成报错
if (!this._to)
return;
const ele = this.scrollContainer;
Object.keys(this._to).forEach(key => {
ele.removeEventListener(key, this._to[key]);
});
};
this.onTouchStart = (_, e) => {
this._ScreenY = this._startScreenY = e.touches[0].screenY;
// 一开始 refreshing 为 true 时 this._lastScreenY 有值
this._lastScreenY = this._lastScreenY || 0;
};
this.isEdge = (ele) => {
const container = this.scrollContainer;
if (container && container === document.body) {
// In chrome61 `document.body.scrollTop` is invalid
const scrollNode = document.scrollingElement ? document.scrollingElement : document.body;
return scrollNode.scrollTop <= 0;
}
return ele.scrollTop <= 0;
};
this.damp = (dy) => {
if (Math.abs(this._lastScreenY) > this.damping) {
return 0;
}
const ratio = Math.abs(this._ScreenY - this._startScreenY) / window.screen.height;
dy *= (1 - ratio) * 0.6;
return dy;
};
this.onTouchMove = (ele, e) => {
// 使用 pageY 对比有问题
const _screenY = e.touches[0].screenY;
// 拖动方向不符合的不处理
if (this._startScreenY > _screenY) {
return;
}
if (this.isEdge(ele)) {
if (!this.dragOnEdge) {
// 当用户开始往上滑的时候isEdge还是false的话,会导致this._ScreenY不是想要的,只有当isEdge为true时,再上滑,才有意义
// 下面这行代码解决了上面这个问题
this._ScreenY = this._startScreenY = e.touches[0].screenY;
this.dragOnEdge = true;
}
if (e.cancelable) {
e.preventDefault();
}
// add stopPropagation with fastclick will trigger content onClick event. why?
// ref https://github.com/ant-design/ant-design-mobile/issues/2141
// e.stopPropagation();
const _diff = Math.round(_screenY - this._ScreenY);
this._ScreenY = _screenY;
this._lastScreenY += this.damp(_diff);
this.setContentStyle(this._lastScreenY);
if (Math.abs(this._lastScreenY) < this.distanceToRefresh) {
if (this.currSt !== 'deactivate') {
// console.log('back to the distance');
this.currSt = 'deactivate';
}
}
else {
if (this.currSt === 'deactivate') {
// console.log('reach to the distance');
this.currSt = 'activate';
}
}
// https://github.com/ant-design/ant-design-mobile/issues/573#issuecomment-339560829
// iOS UIWebView issue, It seems no problem in WKWebView
if (isWebView && e.changedTouches[0].clientY < 0) {
this.onTouchEnd();
}
}
};
this.onTouchEnd = () => {
if (this.dragOnEdge) {
this.dragOnEdge = false;
}
if (this.currSt === 'activate') {
this.currSt = 'release';
this.onRefresh.emit(this);
this._lastScreenY = this.distanceToRefresh + 1;
this.setContentStyle(this._lastScreenY);
}
else if (this.currSt === 'release') {
this._lastScreenY = this.distanceToRefresh + 1;
this.setContentStyle(this._lastScreenY);
}
else {
this.reset();
}
};
this.reset = () => {
this._lastScreenY = 0;
this.setContentStyle(0);
};
this.setContentStyle = (ty) => {
// TODO: Why sometimes do not have `this.contentRef` ?
if (this.contentRef) {
// translate3d 不清理 会影响内部元素 定位
if (ty) {
setTransform(this.contentRef.style, `translate3d(0px,${ty}px,0)`);
}
else {
setTransform(this.contentRef.style, '');
}
}
};
this.prefixCls = 'rmc-pull-to-refresh';
this.distanceToRefresh = 50;
this.damping = 100;
this.indicator = INDICATOR;
this.currSt = 'deactivate';
this.dragOnEdge = false;
}
get scrollContainer() {
return this.el.parentElement ||
this.el.closest('.taro_page_stationed') ||
document.querySelector('.taro_page_stationed') ||
document.querySelector('.taro_page') ||
document.querySelector('.taro_router') ||
document.querySelector('.taro-tabbar__panel') ||
document.body;
}
statusChange() {
var _a, _b, _c, _d;
const pageEl = this.scrollContainer;
switch (this.currSt) {
case 'release':
(_b = (_a = pageEl === null || pageEl === void 0 ? void 0 : pageEl.__page) === null || _a === void 0 ? void 0 : _a.onPullDownRefresh) === null || _b === void 0 ? void 0 : _b.call(_a);
break;
case 'deactivate':
(_d = (_c = pageEl === null || pageEl === void 0 ? void 0 : pageEl.__page) === null || _c === void 0 ? void 0 : _c.onPullIntercept) === null || _d === void 0 ? void 0 : _d.call(_c);
}
}
disconnectedCallback() {
this.destroy();
}
componentDidLoad() {
this.init();
this._isMounted = true;
Taro__default['default'].eventCenter.on('__taroStartPullDownRefresh', ({ successHandler, errorHandler }) => {
try {
this.triggerPullDownRefresh(true);
successHandler({
errMsg: 'startPullDownRefresh: ok'
});
}
catch (e) {
errorHandler({
errMsg: 'startPullDownRefresh: fail'
});
}
});
Taro__default['default'].eventCenter.on('__taroStopPullDownRefresh', ({ successHandler, errorHandler }) => {
setTimeout(() => {
try {
this.triggerPullDownRefresh(false);
successHandler({
errMsg: 'stopPullDownRefresh: ok'
});
}
catch (e) {
errorHandler({
errMsg: 'stopPullDownRefresh: fail'
});
}
}, 0);
});
}
render() {
const renderRefresh = (cls) => {
const { currSt, dragOnEdge, prefixCls } = this;
const cla = classnames(cls, !dragOnEdge && `${prefixCls}-transition`);
const showIndicator = currSt === 'activate' || currSt === 'release';
return (hAsync("div", { class: `${prefixCls}-content-wrapper` }, hAsync("div", { class: cla, ref: el => {
this.contentRef = el;
} }, showIndicator && (hAsync("div", { class: `${prefixCls}-indicator` }, hAsync("div", null), hAsync("div", null), hAsync("div", null))), hAsync("slot", null))));
};
if (this.scrollContainer) {
return renderRefresh(`${this.prefixCls}-content ${this.prefixCls}-down`);
}
return (hAsync(Host, { class: classnames(this.prefixCls, `${this.prefixCls}-down`) }, renderRefresh(`${this.prefixCls}-content`)));
}
get el() { return getElement(this); }
static get watchers() { return {
"currSt": ["statusChange"]
}; }
static get style() { return indexCss$b; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-pull-to-refresh-core",
"$members$": {
"prefixCls": [1, "prefix-cls"],
"distanceToRefresh": [2, "distance-to-refresh"],
"damping": [2],
"indicator": [16],
"currSt": [32],
"dragOnEdge": [32]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Radio {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "radiochange", 7);
this.handleClick = (e) => {
e.stopPropagation();
if (this.disabled)
return;
if (!this.checked)
this.checked = true;
};
this.name = undefined;
this.value = '';
this.id = undefined;
this.checked = false;
this.disabled = false;
this.nativeProps = {};
this.isWillLoadCalled = false;
}
watchChecked(newVal) {
if (!this.isWillLoadCalled)
return;
newVal && this.onChange.emit({ value: this.value });
}
watchId(newVal) {
if (!this.isWillLoadCalled)
return;
if (newVal)
this.inputEl.setAttribute('id', newVal);
}
componentDidRender() {
this.id && this.el.removeAttribute('id');
}
componentWillLoad() {
this.isWillLoadCalled = true;
}
render() {
const { checked, name, value, disabled, nativeProps } = this;
return (hAsync(Host, { class: 'weui-cells_checkbox', onClick: this.handleClick }, hAsync("input", Object.assign({ ref: dom => {
if (!dom)
return;
this.inputEl = dom;
if (this.id)
dom.setAttribute('id', this.id);
}, type: 'radio', name: name, value: value, class: 'weui-check', checked: checked, disabled: disabled, onChange: e => e.stopPropagation() }, nativeProps)), hAsync("i", { class: 'weui-icon-checked' }), hAsync("slot", null)));
}
get el() { return getElement(this); }
static get watchers() { return {
"checked": ["watchChecked"],
"id": ["watchId"]
}; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-radio-core",
"$members$": {
"name": [1],
"value": [1],
"id": [1025],
"checked": [1540],
"disabled": [4],
"nativeProps": [16],
"isWillLoadCalled": [32]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": [["checked", "checked"]]
}; }
}
var __classPrivateFieldSet$1 = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m")
throw new TypeError("Private method is not writable");
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var __classPrivateFieldGet$1 = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _RadioGroup_value;
class RadioGroup {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "change", 7);
this.uniqueName = Date.now().toString(36);
_RadioGroup_value.set(this, void 0);
this.name = undefined;
}
function(e) {
e.stopPropagation();
if (e.target.tagName !== 'TARO-RADIO-CORE')
return;
const target = e.target;
if (target.checked) {
const childList = this.el.querySelectorAll('taro-radio-core');
childList.forEach(element => {
if (element !== target) {
element.checked = false;
}
});
__classPrivateFieldSet$1(this, _RadioGroup_value, e.detail.value, "f");
this.onChange.emit({
value: __classPrivateFieldGet$1(this, _RadioGroup_value, "f")
});
}
}
componentDidLoad() {
const childList = this.el.querySelectorAll('taro-radio-core');
childList.forEach((element) => {
element.setAttribute('name', this.name || this.uniqueName);
});
Object.defineProperty(this.el, 'value', {
get: () => {
if (!__classPrivateFieldGet$1(this, _RadioGroup_value, "f")) {
const childList = this.el.querySelectorAll('taro-radio-core');
__classPrivateFieldSet$1(this, _RadioGroup_value, this.getValues(childList), "f");
}
return __classPrivateFieldGet$1(this, _RadioGroup_value, "f");
},
configurable: true
});
}
getValues(childList) {
let val = '';
Array.from(childList)
.forEach(element => {
const checkbox = element.querySelector('input');
if (checkbox === null || checkbox === void 0 ? void 0 : checkbox.checked) {
val = checkbox.value || '';
}
});
return val;
}
render() {
return (hAsync(Host, { class: 'weui-cells_radiogroup' }));
}
get el() { return getElement(this); }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-radio-group-core",
"$members$": {
"name": [8]
},
"$listeners$": [[0, "radiochange", "function"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
_RadioGroup_value = new WeakMap();
const indexCss$a = "taro-rich-text-core{user-select:none}taro-rich-text-core[selectable=true],taro-rich-text-core[user-select=true]{user-select:text;display:block}taro-rich-text-core[space]{white-space:pre-wrap}taro-rich-text-core[space=ensp]{word-spacing:.5em}taro-rich-text-core[space=nbsp]{word-spacing:1em}";
class RichText {
constructor(hostRef) {
registerInstance(this, hostRef);
this.renderNode = (node) => {
if ('type' in node && node.type === 'text') {
// nonsupport Html Entries
const content = (node.text || '').replace(/ /g, '\u00A0');
return content;
}
else if ('name' in node && node.name) {
const { name, attrs, children } = node;
const attributes = {};
let childList = [];
if (attrs && typeof attrs === 'object') {
for (const key in attrs) {
const val = attrs[key];
if (key === 'style' && typeof val === 'string') {
// stencil JSX style props only support object
const styles = val
.split(';')
.map(item => item.trim())
.filter(item => item);
const styleObj = {};
styles.forEach(item => {
if (!item)
return;
const res = /(.+): *(.+)/g.exec(item);
if (!res)
return;
const [, name, value] = res;
const styleName = name.replace(/-([a-z])/g, (...args) => args[1].toUpperCase());
styleObj[styleName] = value;
});
if (Object.keys(styleObj).length) {
attributes.style = styleObj;
}
continue;
}
attributes[key] = val;
}
}
if (children && children.length) {
childList = children.map(node => this.renderNode(node));
}
// @ts-ignore
return hAsync(name, attributes, childList);
}
return null;
};
this.nodes = undefined;
this.selectable = false;
this.userSelect = false;
this.space = undefined;
}
render() {
const { nodes, renderNode } = this;
if (Array.isArray(nodes)) {
return (hAsync(Host, null, nodes.map(node => renderNode(node))));
}
else {
return hAsync(Host, { innerHTML: nodes });
}
}
static get style() { return indexCss$a; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-rich-text-core",
"$members$": {
"nodes": [1],
"selectable": [1028],
"userSelect": [1028, "user-select"],
"space": [1]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class RootPortal {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('RootPortal', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-root-portal-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class RtcRoom {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('RtcRoom', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-rtc-room-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class RtcRoomItem {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('RtcRoomItem', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-rtc-room-item-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class ScaleGestureHandler {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('ScaleGestureHandler', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-scale-gesture-handler-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Script {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Script', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-script-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$9 = "taro-scroll-view-core{-webkit-overflow-scrolling:touch;width:100%;display:block}.taro-scroll-view__scroll-x{overflow:scroll hidden}.taro-scroll-view__scroll-y{overflow:hidden scroll}.taro-scroll--hidebar::-webkit-scrollbar{display:none}";
function easeOutScroll(from, to, duration = 500, callback) {
if (from === to || typeof from !== 'number') {
return;
}
const change = to - from;
const sTime = Date.now();
const isLarger = to >= from;
function linear(t, b, c, d) {
return c * t / d + b;
}
function step() {
from = linear(Date.now() - sTime, from, change, duration);
if ((isLarger && from >= to) || (!isLarger && to >= from)) {
callback(to);
return;
}
callback(from);
requestAnimationFrame(step);
}
step();
}
class ScrollView {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onScroll = createEvent(this, "scroll", 3);
this.onScrollToUpper = createEvent(this, "scrolltoupper", 3);
this.onScrollToLower = createEvent(this, "scrolltolower", 3);
this._scrollLeft = 0;
this._scrollTop = 0;
this.upperAndLower = debounce(() => {
const { offsetWidth, offsetHeight, scrollLeft, scrollTop, scrollHeight, scrollWidth } = this.el;
const lowerThreshold = Number(this.lowerThreshold);
const upperThreshold = Number(this.upperThreshold);
if (!isNaN(lowerThreshold) &&
((this.scrollY && offsetHeight + scrollTop + lowerThreshold >= scrollHeight) ||
(this.scrollX && offsetWidth + scrollLeft + lowerThreshold >= scrollWidth))) {
this.onScrollToLower.emit({
direction: this.scrollX ? 'right' : (this.scrollY ? 'bottom' : '')
});
}
if (!isNaN(upperThreshold) &&
((this.scrollY && scrollTop <= upperThreshold) ||
(this.scrollX && scrollLeft <= upperThreshold))) {
this.onScrollToUpper.emit({
direction: this.scrollX ? 'left' : (this.scrollY ? 'top' : '')
});
}
}, 200);
this.scrollX = false;
this.scrollY = false;
this.upperThreshold = 50;
this.lowerThreshold = 50;
this.mpScrollTop = undefined;
this.mpScrollLeft = undefined;
this.mpScrollIntoView = undefined;
this.mpScrollIntoViewAlignment = undefined;
this.animated = false;
this.enhanced = false;
this.showScrollbar = true;
this.stopTouchMovePropagation = true;
}
watchScrollLeft(newVal) {
const left = Number(newVal);
const { animated } = this;
this.mpScrollToMethod({
left, animated
});
}
watchScrollTop(newVal) {
const top = Number(newVal);
const { animated } = this;
this.mpScrollToMethod({
top, animated
});
}
watchScrollIntoView(newVal) {
this.mpScrollIntoViewMethod(newVal);
}
handleScroll(e) {
var _a;
if (e instanceof CustomEvent)
return;
e.stopPropagation();
(_a = e.stopImmediatePropagation) === null || _a === void 0 ? void 0 : _a.call(e);
const { scrollLeft, scrollTop, scrollHeight, scrollWidth } = this.el;
this._scrollLeft = scrollLeft;
this._scrollTop = scrollTop;
this.upperAndLower();
this.onScroll.emit({
scrollLeft,
scrollTop,
scrollHeight,
scrollWidth
});
}
handleTouchMove(e) {
if (e instanceof CustomEvent)
return;
if (this.stopTouchMovePropagation) {
e.stopPropagation();
}
}
async mpScrollToMethod(object) {
let { top, left, duration, animated = false } = object;
if (this.scrollY && typeof top === 'number' && !isNaN(top) && top !== this._scrollTop) {
if (animated) {
easeOutScroll(this._scrollTop, top, duration, pos => (this.el.scrollTop = pos));
}
else {
this.el.scrollTop = top;
}
this._scrollTop = top;
}
if (this.scrollX && typeof left === 'number' && !isNaN(left) && left !== this._scrollLeft) {
if (animated) {
easeOutScroll(this._scrollLeft, left, duration, pos => (this.el.scrollLeft = pos));
}
else {
this.el.scrollLeft = left;
}
this._scrollLeft = left;
}
}
async mpScrollIntoViewMethod(selector) {
var _a;
if (typeof selector === 'string' && selector) {
// 未开启的滚动轴使用 nearest 避免原生 scrollIntoView 沿该轴滚动整页
(_a = document.querySelector(`#${selector}`)) === null || _a === void 0 ? void 0 : _a.scrollIntoView({
behavior: this.animated ? 'smooth' : 'auto',
block: this.scrollY ? (this.mpScrollIntoViewAlignment || 'center') : 'nearest',
inline: this.scrollX ? (this.mpScrollIntoViewAlignment || 'start') : 'nearest'
});
}
}
componentDidLoad() {
const top = Number(this.mpScrollTop);
const left = Number(this.mpScrollLeft);
const { animated } = this;
this.mpScrollToMethod({
top, left, animated
});
}
componentDidRender() {
handleStencilNodes(this.el);
}
render() {
const { scrollX, scrollY, enhanced, showScrollbar } = this;
const cls = classnames({
'taro-scroll-view__scroll-x': scrollX,
'taro-scroll-view__scroll-y': scrollY,
'taro-scroll--hidebar': enhanced === true && showScrollbar === false,
'taro-scroll--enhanced': enhanced === true
});
return (hAsync(Host, { class: cls }, hAsync("slot", null)));
}
get el() { return getElement(this); }
static get watchers() { return {
"mpScrollLeft": ["watchScrollLeft"],
"mpScrollTop": ["watchScrollTop"],
"mpScrollIntoView": ["watchScrollIntoView"]
}; }
static get style() { return indexCss$9; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-scroll-view-core",
"$members$": {
"scrollX": [4, "scroll-x"],
"scrollY": [4, "scroll-y"],
"upperThreshold": [8, "upper-threshold"],
"lowerThreshold": [8, "lower-threshold"],
"mpScrollTop": [520, "scroll-top"],
"mpScrollLeft": [520, "scroll-left"],
"mpScrollIntoView": [513, "scroll-into-view"],
"mpScrollIntoViewAlignment": [1, "scroll-into-view-alignment"],
"animated": [4, "scroll-with-animation"],
"enhanced": [4],
"showScrollbar": [4, "show-scrollbar"],
"stopTouchMovePropagation": [4, "stop-touch-move-propagation"],
"mpScrollToMethod": [64],
"mpScrollIntoViewMethod": [64]
},
"$listeners$": [[1, "scroll", "handleScroll"], [1, "touchmove", "handleTouchMove"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": [["mpScrollTop", "scroll-top"], ["mpScrollLeft", "scroll-left"], ["mpScrollIntoView", "scroll-into-view"]]
}; }
}
class ShareElement {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('ShareElement', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-share-element-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$8 = ".weui-slider{user-select:none;padding:15px 18px}.weui-slider__inner{background-color:#e9e9e9;height:2px;position:relative}.weui-slider__track{background-color:#1aad19;width:0;height:2px}.weui-slider__handler{background-color:#fff;border-radius:50%;width:28px;height:28px;margin-top:-14px;margin-left:-14px;position:absolute;top:50%;left:0;box-shadow:0 0 4px rgba(0,0,0,.2)}.weui-slider-box{align-items:center;display:flex}.weui-slider-box .weui-slider{flex:1}.weui-slider-box__value{color:#888;text-align:center;min-width:24px;margin-left:.5em;font-size:14px}";
class Slider {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "change", 7);
this.onChanging = createEvent(this, "changing", 7);
this.handleTouchStart = (e) => {
if (this.touching || this.disabled)
return;
this.touching = true;
this.touchId = e.targetTouches[0].identifier;
this.totalWidth = this.sliderInsRef.clientWidth || 1;
this.ogX = e.targetTouches[0].pageX;
this.ogPercent = this.percent;
};
this.handleTouchMove = (e) => {
const { disabled, touching, touchId, totalWidth, max, min, ogX, ogPercent } = this;
if (!touching || disabled)
return;
if (e.targetTouches[0].identifier !== touchId)
return;
// 阻止默认事件
e.preventDefault();
const pageX = e.targetTouches[0].pageX;
const diffX = pageX - ogX;
let percent = diffX / totalWidth * 100 + ogPercent;
percent = this.handleValueUpdate(percent, 0, 100);
const val = min + percent * 0.01 * (max - min);
this.updateByStep(val);
this.onChanging.emit({
detail: e.detail,
value: this.value
});
};
this.handleTouchEnd = (e) => {
const { disabled, touching } = this;
if (!touching || disabled)
return;
if (this.percent !== this.ogPercent) {
this.onChange.emit({
detail: e.detail,
value: this.value
});
}
this.touching = false;
this.touchId = null;
this.ogX = 0;
this.ogPercent = 0;
};
this.handleValueUpdate = (e, min = this.min, max = this.max) => {
e = isNaN(e) ? 0 : e;
return Math.max(min, Math.min(e, max));
};
this.min = 0;
this.max = 100;
this.step = 1;
this.disabled = false;
this.value = 0;
this.activeColor = '#1aad19';
this.backgroundColor = '#e9e9e9';
this.blockSize = 28;
this.blockColor = '#ffffff';
this.showValue = false;
this.name = '';
this.totalWidth = 1;
this.touching = false;
this.ogX = 0;
this.touchId = null;
this.percent = 0;
this.ogPercent = undefined;
this.isWillLoadCalled = false;
}
function(value) {
if (!this.isWillLoadCalled)
return;
const { max, min } = this;
if (value !== null) {
const val = this.handleValueUpdate(value, min, max);
this.updateByStep(val);
}
}
componentDidLoad() {
// 在自动化测试时,如果通过 JSX 绑定 touch 事件,
// 模拟的 touch 事件只会在浏览器的 device mode 下触发,Karma 跑的测试就会跪。
// 因此改为 didLoad 后 addEventListener 的形式。
this.handler.addEventListener('touchstart', this.handleTouchStart);
this.handler.addEventListener('touchmove', this.handleTouchMove);
this.handler.addEventListener('touchend', this.handleTouchEnd);
}
componentWillLoad() {
this.isWillLoadCalled = true;
const { value, max, min } = this;
const val = this.handleValueUpdate(value, min, max);
this.updateByStep(val);
}
// 根据步长 step 修改 value
updateByStep(value) {
const { max, min, step } = this;
const steps = Math.floor((max - min) / step);
for (let i = 0; i <= steps; i++) {
const current = min + step * i;
const next = i === steps ? null : min + step * (i + 1);
if (value === current)
break;
if (!next && value > current) {
// step 不能被 max - min 整除
value = current;
}
if (next && value > current && value < next) {
if (value - current < step / 2) {
value = current;
}
else {
value = next;
}
break;
}
}
const percent = (value - min) / (max - min) * 100;
this.value = value;
this.percent = percent;
}
render() {
const { showValue, backgroundColor, activeColor, blockColor, name, percent, value } = this;
let blockSize = this.blockSize;
const innerStyles = { backgroundColor };
const percentage = percent > 100 ? 100 : percent;
const trackStyles = {
width: `${percentage}%`,
backgroundColor: activeColor
};
if (blockSize < 12) {
blockSize = 12;
}
if (blockSize > 28) {
blockSize = 28;
}
const handlerStyles = {
left: `${percentage}%`,
width: `${blockSize}px`,
height: `${blockSize}px`,
backgroundColor: blockColor,
marginTop: `-${Math.floor(blockSize / 2)}px`,
marginLeft: `-${Math.floor(blockSize / 2)}px`
};
return (hAsync(Host, { class: 'weui-slider-box' }, hAsync("div", { class: 'weui-slider' }, hAsync("div", { class: 'weui-slider__inner', style: innerStyles, ref: c => (this.sliderInsRef = c) }, hAsync("div", { style: trackStyles, class: 'weui-slider__track' }), hAsync("div", { class: 'weui-slider__handler', ref: dom => {
if (dom)
this.handler = dom;
}, style: handlerStyles }), hAsync("input", { type: 'hidden', name: name, value: value }))), showValue && hAsync("div", { class: 'weui-slider-box__value' }, value)));
}
get el() { return getElement(this); }
static get watchers() { return {
"value": ["function"]
}; }
static get style() { return indexCss$8; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-slider-core",
"$members$": {
"min": [2],
"max": [2],
"step": [2],
"disabled": [4],
"value": [1538],
"activeColor": [1, "active-color"],
"backgroundColor": [1, "background-color"],
"blockSize": [2, "block-size"],
"blockColor": [1, "block-color"],
"showValue": [4, "show-value"],
"name": [1],
"totalWidth": [32],
"touching": [32],
"ogX": [32],
"touchId": [32],
"percent": [32],
"ogPercent": [32],
"isWillLoadCalled": [32]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": [["value", "value"]]
}; }
}
class Slot {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Slot', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-slot-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Snapshot {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Snapshot', this);
}
render() {
return hAsync(Host, null);
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-snapshot-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Span {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Span', this);
}
render() {
return hAsync(Host, null);
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-span-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class StickyHeader {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('StickyHeader', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-sticky-header-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class StickySection {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('StickySection', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-sticky-section-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$7 = "@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{width:100%;height:100%;object-fit:contain;transform-origin:center}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px);right:auto}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:var(--swiper-navigation-sides-offset,10px);left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);top:var(--swiper-pagination-top,auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius,50%);background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:var(--swiper-pagination-right,8px);left:var(--swiper-pagination-left,auto);top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:var(--swiper-pagination-progressbar-size,4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1))}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:var(--swiper-scrollbar-sides-offset,1%);bottom:var(--swiper-scrollbar-bottom,4px);top:var(--swiper-scrollbar-top,auto);z-index:50;height:var(--swiper-scrollbar-size,4px);width:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;left:var(--swiper-scrollbar-left,auto);right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);z-index:50;width:var(--swiper-scrollbar-size,4px);height:calc(100% - 2 * var(--swiper-scrollbar-sides-offset,1%))}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active{pointer-events:auto}.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden}taro-swiper-core{height:150px;display:block}taro-swiper-core .swiper-container{height:100%;position:relative;overflow:visible}";
var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m")
throw new TypeError("Private method is not writable");
if (kind === "a" && !f)
throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var _Swiper_id, _Swiper_source, _Swiper_swiperResetting, _Swiper_domChangeByOutSide, _Swiper_lastSwiperActiveIndex;
let INSTANCE_ID = 0;
const ONE_ADDITIONAL_SLIDES_THRESHOLD = 5;
const TWO_ADDITIONAL_SLIDES_THRESHOLD = 7;
class Swiper {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "change", 7);
this.onAnimationFinish = createEvent(this, "animationfinish", 7);
_Swiper_id.set(this, INSTANCE_ID++);
_Swiper_source.set(this, 'autoplay');
_Swiper_swiperResetting.set(this, false
// dom 变化是否由外部引起,因为 swiper 的循环模式也会引起 dom 的变化。如果不是由外部引起的 dom 变化,就不需要重新初始化 swiper
);
// dom 变化是否由外部引起,因为 swiper 的循环模式也会引起 dom 的变化。如果不是由外部引起的 dom 变化,就不需要重新初始化 swiper
_Swiper_domChangeByOutSide.set(this, false);
_Swiper_lastSwiperActiveIndex.set(this, 0);
this.handleSwiperSizeDebounce = debounce(() => {
if (!this.swiper || !this.isWillLoadCalled)
return;
if (this.circular) {
if (__classPrivateFieldGet(this, _Swiper_domChangeByOutSide, "f")) {
this.reset();
__classPrivateFieldSet(this, _Swiper_domChangeByOutSide, false, "f");
__classPrivateFieldSet(this, _Swiper_swiperResetting, false, "f");
}
}
else {
this.swiper.update();
__classPrivateFieldSet(this, _Swiper_swiperResetting, false, "f");
}
}, 50);
this.reset = () => {
__classPrivateFieldSet(this, _Swiper_swiperResetting, true, "f");
__classPrivateFieldSet(this, _Swiper_lastSwiperActiveIndex, this.swiper.realIndex, "f");
this.swiper.destroy();
this.handleInit(true);
__classPrivateFieldSet(this, _Swiper_swiperResetting, false, "f");
};
// 下面为方法函数
this.getSlidersList = () => this.el.querySelectorAll('taro-swiper-item-core:not(.swiper-slide-duplicate)') || [];
// 获取是否需要手动修复 loop 的条件
this.getNeedFixLoop = () => {
const margins = this.parseMargin();
const hasMargin = margins.filter(Boolean).length > 0;
return this.circular && hasMargin;
};
this.parseMargin = () => {
const [, previousMargin] = /^(\d+)px/.exec(this.previousMargin) || [];
const [, nextMargin] = /^(\d+)px/.exec(this.nextMargin) || [];
return [parseInt(previousMargin) || 0, parseInt(nextMargin) || 0];
};
this.swiperWrapper = undefined;
this.swiper = undefined;
this.isWillLoadCalled = false;
this.indicatorDots = false;
this.indicatorColor = 'rgba(0, 0, 0, .3)';
this.indicatorActiveColor = '#000000';
this.autoplay = false;
this.current = 0;
this.currentItemId = '';
this.interval = 5000;
this.duration = 500;
this.circular = false;
this.vertical = false;
this.previousMargin = '0px';
this.nextMargin = '0px';
this.displayMultipleItems = 1;
this.full = false;
this.zoom = false;
this.effectsProps = {};
this.observer = undefined;
}
watchCurrent(newVal) {
if (this.currentItemId || !this.isWillLoadCalled || !this.swiper)
return;
const n = parseInt(newVal, 10);
if (isNaN(n) || n === this.swiper.realIndex)
return;
__classPrivateFieldSet(this, _Swiper_source, '', "f");
if (this.circular) {
this.swiper.slideToLoop(n); // 更新下标
this.autoplay && this.swiper.autoplay.pause();
// @ts-ignore
this.swiper.loopFix();
this.autoplay && this.swiper.autoplay.start();
}
else {
this.swiper.slideTo(n); // 更新下标
}
}
watchCurrentItemId(newVal) {
if (!this.swiperWrapper || !this.isWillLoadCalled)
return;
let itemIdIndex = 0;
this.getSlidersList().forEach((swiperItem, index) => {
const itemId = swiperItem.getAttribute('item-id');
if (itemId === newVal) {
if (this.circular) {
itemIdIndex = Number(swiperItem.getAttribute('data-swiper-slide-index'));
}
else {
itemIdIndex = index;
}
}
});
if (itemIdIndex === this.swiper.realIndex)
return; // 无需更新
__classPrivateFieldSet(this, _Swiper_source, '', "f");
if (this.circular) {
this.swiper.slideToLoop(itemIdIndex); // 更新下标
// @ts-ignore
this.swiper.loopFix();
this.autoplay && this.swiper.autoplay.start();
}
else {
this.swiper.slideTo(itemIdIndex); // 更新下标
}
}
watchAutoplay(newVal) {
if (!this.isWillLoadCalled || !this.swiper)
return;
const swiperAutoplay = this.swiper.autoplay;
if (swiperAutoplay) {
if (swiperAutoplay.running === newVal)
return;
if (newVal) {
if (this.swiper.params && typeof this.swiper.params.autoplay === 'object') {
if (this.swiper.params.autoplay.disableOnInteraction === true) {
this.swiper.params.autoplay.disableOnInteraction = false;
}
this.swiper.params.autoplay.delay = this.interval;
}
swiperAutoplay.start();
}
else {
swiperAutoplay.stop();
}
}
}
watchDuration(newVal) {
if (!this.swiper || !this.isWillLoadCalled)
return;
this.swiper.params.speed = newVal;
}
watchInterval(newVal) {
if (!this.swiper || !this.isWillLoadCalled)
return;
if (typeof this.swiper.params.autoplay === 'object') {
this.swiper.params.autoplay.delay = newVal;
}
}
watchSwiperWrapper(newVal) {
if (!this.isWillLoadCalled || !this.swiper)
return;
if (!newVal)
return;
const beforeDomOperation = () => {
__classPrivateFieldSet(this, _Swiper_domChangeByOutSide, true, "f");
// 如果是由于外部子节点的变化引起的 dom 变化,需要重新初始化 swiper。
// 在初dom操作之前,需要调用 loopDestroy,把子节点的顺序恢复
this.swiper.loopDestroy();
this.swiper.params.loop = false;
};
this.el.appendChild = (newChild) => {
__classPrivateFieldSet(this, _Swiper_swiperResetting, true, "f");
if (!__classPrivateFieldGet(this, _Swiper_domChangeByOutSide, "f") && this.circular) {
beforeDomOperation();
}
return newVal.appendChild(newChild);
};
this.el.insertBefore = (newChild, refChild) => {
__classPrivateFieldSet(this, _Swiper_swiperResetting, true, "f");
if (!__classPrivateFieldGet(this, _Swiper_domChangeByOutSide, "f") && this.circular) {
beforeDomOperation();
}
return newVal.insertBefore(newChild, refChild);
};
this.el.replaceChild = (newChild, oldChild) => {
__classPrivateFieldSet(this, _Swiper_swiperResetting, true, "f");
if (!__classPrivateFieldGet(this, _Swiper_domChangeByOutSide, "f") && this.circular) {
beforeDomOperation();
}
return newVal.replaceChild(newChild, oldChild);
};
this.el.removeChild = (oldChild) => {
__classPrivateFieldSet(this, _Swiper_swiperResetting, true, "f");
if (!__classPrivateFieldGet(this, _Swiper_domChangeByOutSide, "f") && this.circular) {
beforeDomOperation();
}
return newVal.removeChild(oldChild);
};
}
watchCircular() {
if (!this.swiper || !this.isWillLoadCalled)
return;
this.reset();
}
watchDisplayMultipleItems() {
if (!this.swiper || !this.isWillLoadCalled)
return;
this.reset();
}
componentWillLoad() {
this.isWillLoadCalled = true;
}
componentDidLoad() {
this.handleInit();
if (!this.swiper || !this.swiperWrapper)
return;
this.observer = new MutationObserver(this.handleSwiperSizeDebounce);
this.observer.observe(this.swiperWrapper, {
childList: true
});
}
disconnectedCallback() {
var _a;
(_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
}
handleInit(reset = false) {
const { autoplay, circular, current, currentItemId, displayMultipleItems, duration, interval, effectsProps, vertical } = this;
let initialSlide = current;
if (reset) {
initialSlide = __classPrivateFieldGet(this, _Swiper_lastSwiperActiveIndex, "f");
}
else {
if (currentItemId) {
let itemIdIndex = 0;
this.getSlidersList().forEach((swiperItem, index) => {
// @ts-ignore
if (swiperItem.itemId && swiperItem.itemId === currentItemId) {
itemIdIndex = index;
}
});
initialSlide = itemIdIndex;
}
}
const loopAdditionalSlides = this.getLoopAdditionalSlides();
const centeredSlides = displayMultipleItems === 1 && this.getNeedFixLoop();
const slidesPerView = displayMultipleItems;
// eslint-disable-next-line @typescript-eslint/no-this-alias
const that = this;
const options = Object.assign(Object.assign({ pagination: { el: `.taro-swiper-${__classPrivateFieldGet(this, _Swiper_id, "f")} > .swiper-container > .swiper-pagination` }, direction: vertical ? 'vertical' : 'horizontal', loop: circular, slidesPerView: slidesPerView, initialSlide: initialSlide, loopAdditionalSlides: loopAdditionalSlides, speed: duration, observeParents: true, observer: true, centeredSlides: centeredSlides, zoom: this.zoom, nested: true, touchReleaseOnEdges: true, threshold: 0 }, effectsProps), { on: {
transitionEnd(e) {
if (__classPrivateFieldGet(that, _Swiper_swiperResetting, "f") || __classPrivateFieldGet(that, _Swiper_lastSwiperActiveIndex, "f") === this.realIndex)
return;
__classPrivateFieldSet(that, _Swiper_lastSwiperActiveIndex, this.realIndex, "f");
that.getNeedFixLoop() && e.loopFix();
that.autoplay && e.autoplay.start();
const currentItemId = that.getCurrentItemId(e);
that.onAnimationFinish.emit({
current: this.realIndex,
source: __classPrivateFieldGet(that, _Swiper_source, "f"),
currentItemId,
});
__classPrivateFieldSet(that, _Swiper_source, 'autoplay', "f");
},
touchMove() {
__classPrivateFieldSet(that, _Swiper_source, 'touch', "f");
},
slideChange(e) {
if (__classPrivateFieldGet(that, _Swiper_swiperResetting, "f") || __classPrivateFieldGet(that, _Swiper_lastSwiperActiveIndex, "f") === this.realIndex)
return;
const currentItemId = that.getCurrentItemId(e);
that.onChange.emit({
current: this.realIndex,
source: __classPrivateFieldGet(that, _Swiper_source, "f"),
currentItemId,
});
},
init: (e) => {
that.getNeedFixLoop() && e.loopFix();
that.autoplay && e.autoplay.start();
},
touchEnd: (e) => {
__classPrivateFieldSet(that, _Swiper_source, 'touch', "f");
that.autoplay && e.autoplay.start();
},
touchStart: (e) => {
__classPrivateFieldSet(that, _Swiper_source, 'touch', "f");
that.autoplay && e.autoplay.pause();
},
autoplay(e) {
// Note: 修复 autoplay 时,切换到其他页面再切回来,autoplay 会停止的问题
// autoplay 会调用 slideTo 方法,里面会判断是否 animating,如果 animating 为 true,就会被 return
// 参考源码:https://github.com/nolimits4web/swiper/blob/v11.1.0/src/core/slide/slideTo.mjs#27 27行
// https://github.com/nolimits4web/swiper/blob/v11.1.0/src/modules/autoplay/autoplay.mjs
e.animating = false;
__classPrivateFieldSet(that, _Swiper_source, 'autoplay', "f");
}
} });
// 自动播放
if (autoplay) {
options.autoplay = {
delay: interval,
disableOnInteraction: false
};
}
this.swiper = new SwiperJS__default['default'](`.taro-swiper-${__classPrivateFieldGet(this, _Swiper_id, "f")} > .swiper-container`, options);
// Note: 这里是拦截了 swiper 的 minTranslate 和 maxTranslate 方法,手动修复了 loop 模式下的 margin 问题
// 因为这两个属性会影响滑动到哪个位置进行 fixloop
// 可参考源码:https://github.com/nolimits4web/swiper/blob/v11.1.0/src/core/events/onTouchMove.mjs
// https://github.com/nolimits4web/swiper/blob/v11.1.0/src/core/loop/loopFix.mjs
if (this.getNeedFixLoop()) {
// @ts-ignore
const minTranslate = this.swiper.minTranslate.bind(this.swiper);
//@ts-ignore
const maxTranslate = this.swiper.maxTranslate.bind(this.swiper);
if (centeredSlides && this.getSlidersList().length < 4) {
//@ts-ignore
this.swiper.minTranslate = () => minTranslate() + this.parseMargin()[1];
//@ts-ignore
this.swiper.maxTranslate = () => maxTranslate() - this.parseMargin()[0];
}
else {
//@ts-ignore
this.swiper.minTranslate = () => minTranslate() - this.parseMargin()[0];
//@ts-ignore
this.swiper.maxTranslate = () => maxTranslate() + this.parseMargin()[1];
}
}
this.swiperWrapper = this.swiper.wrapperEl;
}
// Note: loop 的时候添加 additionalSlides 可以避免循环的时候由于 loopFix 不及时,出现空白的问题。但是并不是 additionalSlides 越多越好,因为 additionalSlides 越多,如果 swiper-item 的数量不够,会导致出现 bug。
// 目前的策略是 swiper-item 的数量小于等于 5 时,不添加 additionalSlides,大于 5 小于等于 7 时,添加 1 个 additionalSlides,大于 7 时,添加 2 个 additionalSlides。
getLoopAdditionalSlides() {
const slidersLength = (this.getSlidersList()).length;
if (!this.el || !this.getNeedFixLoop() || slidersLength < ONE_ADDITIONAL_SLIDES_THRESHOLD)
return 0;
if (slidersLength <= TWO_ADDITIONAL_SLIDES_THRESHOLD)
return 1;
return 2;
}
getCurrentItemId(swiper) {
const slides = swiper.slides;
const activeIndex = swiper.activeIndex;
const currentSlide = slides[activeIndex];
return currentSlide.getAttribute('item-id');
}
render() {
const { vertical, indicatorDots, indicatorColor, indicatorActiveColor } = this;
const [pM, nM] = this.parseMargin();
const swiperContainerStyleList = [
'overflow: visible;',
vertical ? `margin-top: ${pM}px; margin-bottom: ${nM}px;` : `margin-right: ${nM}px; margin-left: ${pM}px;`,
this.full ? 'height: 100%;' : '',
];
const swiperPaginationStyleList = [
indicatorDots ? 'opacity: 1;' : 'display: none;',
'font-size: 0;'
];
const hostStyle = { overflow: 'hidden' };
if (this.full) {
hostStyle.height = '100%';
}
return (hAsync(Host, { class: `taro-swiper-${__classPrivateFieldGet(this, _Swiper_id, "f")}`, style: hostStyle }, hAsync("div", { class: 'swiper-container' }, hAsync("style", { type: 'text/css' }, `
.taro-swiper-${__classPrivateFieldGet(this, _Swiper_id, "f")} > .swiper-container > .swiper-pagination > .swiper-pagination-bullet { background: ${indicatorColor} }
.taro-swiper-${__classPrivateFieldGet(this, _Swiper_id, "f")} > .swiper-container > .swiper-pagination > .swiper-pagination-bullet-active { background: ${indicatorActiveColor} }
.taro-swiper-${__classPrivateFieldGet(this, _Swiper_id, "f")} > .swiper-container { ${swiperContainerStyleList.join('')} }
.taro-swiper-${__classPrivateFieldGet(this, _Swiper_id, "f")} > .swiper-container > .swiper-pagination { ${swiperPaginationStyleList.join('')} }
`), hAsync("div", { class: 'swiper-wrapper' }, hAsync("slot", null)), hAsync("div", { class: 'swiper-pagination' }))));
}
get el() { return getElement(this); }
static get watchers() { return {
"current": ["watchCurrent"],
"currentItemId": ["watchCurrentItemId"],
"autoplay": ["watchAutoplay"],
"duration": ["watchDuration"],
"interval": ["watchInterval"],
"swiperWrapper": ["watchSwiperWrapper"],
"circular": ["watchCircular"],
"displayMultipleItems": ["watchDisplayMultipleItems"]
}; }
static get style() { return indexCss$7; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-swiper-core",
"$members$": {
"indicatorDots": [4, "indicator-dots"],
"indicatorColor": [1, "indicator-color"],
"indicatorActiveColor": [1, "indicator-active-color"],
"autoplay": [4],
"current": [2],
"currentItemId": [1, "current-item-id"],
"interval": [2],
"duration": [2],
"circular": [4],
"vertical": [4],
"previousMargin": [1, "previous-margin"],
"nextMargin": [1, "next-margin"],
"displayMultipleItems": [2, "display-multiple-items"],
"full": [4],
"zoom": [4],
"effectsProps": [16],
"swiperWrapper": [32],
"swiper": [32],
"isWillLoadCalled": [32],
"observer": [32]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
_Swiper_id = new WeakMap(), _Swiper_source = new WeakMap(), _Swiper_swiperResetting = new WeakMap(), _Swiper_domChangeByOutSide = new WeakMap(), _Swiper_lastSwiperActiveIndex = new WeakMap();
class SwiperItem {
constructor(hostRef) {
registerInstance(this, hostRef);
this.itemId = undefined;
}
//Note: 由于 swiper.js 会通过子元素中的 class 来判断是否为 swiper-slide,所以这里需要在 connectedCallback 中添加 swiper-slide 类名
connectedCallback() {
this.el.className = classnames(this.el.className, 'swiper-slide');
}
componentDidRender() {
handleStencilNodes(this.el);
}
render() {
return (hAsync(Host, { "item-id": this.itemId }, hAsync("slot", null)));
}
get el() { return getElement(this); }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-swiper-item-core",
"$members$": {
"itemId": [1, "item-id"]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$6 = ".weui-cell_switch{padding-top:6.5px;padding-bottom:6.5px}.weui-switch{appearance:none}.weui-switch,.weui-switch-cp__box{box-sizing:border-box;background-color:#dfdfdf;border:1px solid #dfdfdf;border-radius:16px;outline:0;width:52px;height:32px;transition:background-color .1s,border .1s;position:relative}.weui-switch:before,.weui-switch-cp__box:before{content:\" \";background-color:#fdfdfd;border-radius:15px;width:50px;height:30px;transition:transform .35s cubic-bezier(.45,1,.4,1);position:absolute;top:0;left:0}.weui-switch:after,.weui-switch-cp__box:after{content:\" \";background-color:#fff;border-radius:15px;width:30px;height:30px;transition:transform .35s cubic-bezier(.4,.4,.25,1.35);position:absolute;top:0;left:0;box-shadow:0 1px 3px rgba(0,0,0,.4)}.weui-switch:checked,.weui-switch-cp__input:checked~.weui-switch-cp__box{background-color:#04be02;border-color:#04be02}.weui-switch:checked:before,.weui-switch-cp__input:checked~.weui-switch-cp__box:before{transform:scale(0)}.weui-switch:checked:after,.weui-switch-cp__input:checked~.weui-switch-cp__box:after{transform:translate(20px)}.weui-switch-cp__input{position:absolute;left:-9999px}.weui-switch-cp__box{display:block}taro-switch-core{width:52px;height:32px;display:inline-block}taro-switch-core .weui-switch{width:100%;height:100%;display:block}";
class Switch {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onChange = createEvent(this, "change", 7);
this.switchChange = e => {
e.stopPropagation();
const value = e.target.checked;
this.checked = value;
this.onChange.emit({
value
});
};
this.type = 'switch';
this.checked = false;
this.color = '#04BE02';
this.name = undefined;
this.disabled = false;
this.nativeProps = {};
this.isWillLoadCalled = false;
}
function(newValue) {
if (!this.isWillLoadCalled)
return;
if (this.inputRef.checked !== newValue) {
this.inputRef.checked = newValue;
}
}
componentWillLoad() {
this.isWillLoadCalled = true;
}
componentDidLoad() {
Object.defineProperty(this.el, 'value', {
get: () => this.checked,
configurable: true
});
}
render() {
const { type, color, checked, name, disabled, nativeProps } = this;
const style = checked
? {
borderColor: color || '04BE02',
backgroundColor: color || '04BE02'
}
: {};
return (hAsync("input", Object.assign({ ref: input => {
this.inputRef = input;
}, type: 'checkbox', class: `weui-${type}`, style: style, checked: checked, name: name, disabled: disabled, onChange: this.switchChange }, nativeProps)));
}
get el() { return getElement(this); }
static get watchers() { return {
"checked": ["function"]
}; }
static get style() { return indexCss$6; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-switch-core",
"$members$": {
"type": [1],
"checked": [1028],
"color": [1],
"name": [1],
"disabled": [4],
"nativeProps": [16],
"isWillLoadCalled": [32]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class TabItem {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('TabItem', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-tab-item-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const TabbarItem = ({ index, isSelected = false, textColor, iconPath, badgeText, showRedDot = false, pagePath, text, onSelect }) => {
const className = classnames('weui-tabbar__item', {
'weui-bar__item_on': isSelected
});
const badgeStyle = {
position: 'absolute',
top: '-2px',
right: '-13px'
};
const dotStyle = {
position: 'absolute',
top: '0',
right: '-6px'
};
function onClick() {
const page = Taro__default['default'].getCurrentPages().shift();
if (typeof (page === null || page === void 0 ? void 0 : page.onTabItemTap) === 'function' && isVisible(this)) {
page.onTabItemTap({ index, pagePath, text });
}
onSelect(index);
}
return (hAsync("a", { key: index, href: 'javascript:;', class: className, onClick: onClick },
hAsync("span", { style: { display: 'inline-block', position: 'relative' } },
hAsync("img", { src: iconPath, alt: '', class: 'weui-tabbar__icon' }),
!!badgeText && (hAsync("span", { class: 'weui-badge taro-tabbar-badge', style: badgeStyle }, badgeText)),
showRedDot && (hAsync("span", { class: 'weui-badge weui-badge_dot', style: dotStyle }))),
hAsync("p", { class: 'weui-tabbar__label', style: { color: textColor } }, text)));
};
const indexCss$5 = ".weui-tabbar{z-index:500;background-color:#f7f7fa;align-items:center;width:100%;display:flex;position:absolute;bottom:0}.weui-tabbar:before{content:\" \";color:#c0bfc4;transform-origin:0 0;border-top:1px solid #c0bfc4;height:1px;position:absolute;top:0;left:0;right:0;transform:scaleY(.5)}.weui-tabbar__item{padding:5px 0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);color:#999;text-align:center;-webkit-tap-highlight-color:transparent;flex:1;font-size:0;display:block}.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon,.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon>i,.weui-tabbar__item.weui-bar__item_on .weui-tabbar__label{color:#09bb07}.weui-tabbar__icon{width:27px;height:27px;display:inline-block}.weui-tabbar__icon img{width:100%;height:100%}i.weui-tabbar__icon,.weui-tabbar__icon>i{color:#999;font-size:24px}.weui-tabbar__label{text-align:center;color:#999;font-size:10px;line-height:1.8}.weui-badge{color:#fff;text-align:center;vertical-align:middle;background-color:#f43530;border-radius:18px;min-width:8px;padding:.15em .4em;font-size:12px;line-height:1.2;display:inline-block}.weui-badge_dot{min-width:0;padding:.4em}:root{--taro-tabbar-height:50px}#app{height:100%}.taro-tabbar__border-white:before{border-top-color:#fff!important}.taro-tabbar__container{flex-direction:column;height:100%;display:flex;overflow:hidden}.taro-tabbar__panel{-webkit-overflow-scrolling:auto;flex:1;position:relative;overflow:auto}.taro-tabbar__tabbar{width:100%;height:var(--taro-tabbar-height);transition:bottom .2s,top .2s;position:relative}.taro-tabbar__tabbar-top{top:0}.taro-tabbar__tabbar-bottom{margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom);bottom:0}.taro-tabbar__tabbar-hide{display:none}.taro-tabbar__tabbar-slideout{flex:0 0;top:-52px}.taro-tabbar__panel+.taro-tabbar__tabbar-slideout{top:auto;bottom:-52px}";
const STATUS_SHOW = 0;
const STATUS_HIDE = 1;
const STATUS_SLIDEOUT = 2;
const basicTabBarClassName = 'taro-tabbar__tabbar';
const hideTabBarClassName = 'taro-tabbar__tabbar-hide';
const hideTabBarWithAnimationClassName = 'taro-tabbar__tabbar-slideout';
class Tabbar {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onLongPress = createEvent(this, "longpress", 7);
this.homePage = '';
this.customRoutes = [];
this.tabbarPos = 'bottom';
this.getOriginUrl = (url) => {
const customRoute = this.customRoutes.filter(([, customUrl]) => {
const pathA = splitUrl(customUrl).path;
const pathB = splitUrl(url).path;
return pathA === pathB;
});
return runtime.stripSuffix(customRoute.length ? customRoute[0][0] : url, '.html');
};
this.getSelectedIndex = (url) => {
let foundIndex = -1;
this.list.forEach(({ pagePath }, idx) => {
const pathA = splitUrl(url).path;
const pathB = splitUrl(pagePath).path;
if (pathA === pathB) {
foundIndex = idx;
}
});
return foundIndex;
};
this.switchTab = (index) => {
this.selectedIndex = index;
Taro__default['default'].switchTab({
url: this.list[index].pagePath
});
};
this.switchTabHandler = ({ url, successHandler, errorHandler }) => {
const currentUrl = this.getOriginUrl(this.getCurrentUrl() || this.homePage);
const nextTab = resolvePathname__default['default'](url, currentUrl);
const foundIndex = this.getSelectedIndex(nextTab);
if (foundIndex > -1) {
this.switchTab(foundIndex);
successHandler({
errMsg: 'switchTab:ok'
});
}
else {
errorHandler({
errMsg: `switchTab:fail page "${nextTab}" is not found`
});
}
};
this.routerChangeHandler = (options) => {
var _a;
const to = (_a = options === null || options === void 0 ? void 0 : options.toLocation) === null || _a === void 0 ? void 0 : _a.path;
let currentPage;
if (typeof to === 'string') {
const routerBasename = this.conf.basename || '/';
currentPage = runtime.stripBasename(runtime.addLeadingSlash(to || this.homePage), routerBasename) || '/';
}
else {
currentPage = this.getCurrentUrl();
}
this.selectedIndex = this.getSelectedIndex(this.getOriginUrl(currentPage));
};
this.setTabBarBadgeHandler = ({ index, text, successHandler, errorHandler }) => {
const list = [...this.list];
if (index in list) {
list[index].showRedDot = false;
list[index].badgeText = text;
successHandler({
errMsg: 'setTabBarBadge:ok'
});
}
else {
errorHandler({
errMsg: 'setTabBarBadge:fail tabbar item not found'
});
}
this.list = list;
};
this.removeTabBarBadgeHandler = ({ index, successHandler, errorHandler }) => {
const list = [...this.list];
if (index in list) {
list[index].badgeText = null;
list[index].badgeText = null;
successHandler({
errMsg: 'removeTabBarBadge:ok'
});
}
else {
errorHandler({
errMsg: 'removeTabBarBadge:fail tabbar item not found'
});
}
this.list = list;
};
this.showTabBarRedDotHandler = ({ index, successHandler, errorHandler }) => {
const list = [...this.list];
if (index in list) {
list[index].badgeText = null;
list[index].showRedDot = true;
successHandler({
errMsg: 'showTabBarRedDot:ok'
});
}
else {
errorHandler({
errMsg: 'showTabBarRedDot:fail tabbar item not found'
});
}
this.list = list;
};
this.hideTabBarRedDotHandler = ({ index, successHandler, errorHandler }) => {
const list = [...this.list];
if (index in list) {
list[index].showRedDot = false;
successHandler({
errMsg: 'hideTabBarRedDot:ok'
});
}
else {
errorHandler({
errMsg: 'hideTabBarRedDot:fail tabbar item not found'
});
}
this.list = list;
};
this.showTabBarHandler = ({ successHandler }) => {
this.status = STATUS_SHOW;
successHandler({
errMsg: 'showTabBar:ok'
});
};
this.hideTabBarHandler = ({ animation, successHandler }) => {
this.status = animation ? STATUS_SLIDEOUT : STATUS_HIDE;
successHandler({
errMsg: 'hideTabBar:ok'
});
};
this.setTabBarStyleHandler = ({ color, selectedColor, backgroundColor, borderStyle, successHandler }) => {
if (backgroundColor)
this.backgroundColor = backgroundColor;
if (borderStyle)
this.borderStyle = borderStyle;
if (color)
this.color = color;
if (selectedColor)
this.selectedColor = selectedColor;
successHandler({
errMsg: 'setTabBarStyle:ok'
});
};
this.setTabBarItemHandler = ({ index, iconPath, selectedIconPath, text, successHandler, errorHandler }) => {
const list = [...this.list];
if (index in list) {
if (iconPath)
list[index].iconPath = iconPath;
if (selectedIconPath)
list[index].selectedIconPath = selectedIconPath;
if (text)
list[index].text = text;
successHandler({
errMsg: 'setTabBarItem:ok'
});
}
else {
errorHandler({
errMsg: 'setTabBarItem:fail tabbar item not found'
});
}
this.list = list;
};
this.conf = undefined;
this.list = undefined;
this.borderStyle = undefined;
this.backgroundColor = undefined;
this.color = undefined;
this.selectedColor = undefined;
this.selectedIndex = -1;
this.status = STATUS_SHOW;
}
componentWillLoad() {
var _a, _b;
const list = ((_a = this.conf) === null || _a === void 0 ? void 0 : _a.list) || [];
const customRoutes = ((_b = this.conf) === null || _b === void 0 ? void 0 : _b.customRoutes) || {};
if (Object.prototype.toString.call(list) !== '[object Array]' ||
list.length < 2 ||
list.length > 5) {
throw new Error('tabBar 配置错误');
}
this.homePage = runtime.addLeadingSlash(this.conf.homePage);
for (let key in customRoutes) {
const path = customRoutes[key];
key = runtime.addLeadingSlash(key);
if (typeof path === 'string') {
this.customRoutes.push([key, runtime.addLeadingSlash(path)]);
}
else if ((path === null || path === void 0 ? void 0 : path.length) > 0) {
this.customRoutes.push(...path.map(p => [key, runtime.addLeadingSlash(p)]));
}
}
list.forEach(item => {
if (item.pagePath.indexOf('/') !== 0) {
item.pagePath = '/' + item.pagePath;
}
});
this.list = list;
this.borderStyle = this.conf.borderStyle;
this.backgroundColor = this.conf.backgroundColor;
this.color = this.conf.color;
this.selectedColor = this.conf.selectedColor;
}
getCurrentUrl() {
const routePath = runtime.getCurrentPage(this.conf.mode, this.conf.basename);
return decodeURI(routePath === '/' ? this.homePage : routePath);
}
bindEvent() {
Taro__default['default'].eventCenter.on('__taroRouterChange', this.routerChangeHandler);
Taro__default['default'].eventCenter.on('__taroSwitchTab', this.switchTabHandler);
Taro__default['default'].eventCenter.on('__taroSetTabBarBadge', this.setTabBarBadgeHandler);
Taro__default['default'].eventCenter.on('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler);
Taro__default['default'].eventCenter.on('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler);
Taro__default['default'].eventCenter.on('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler);
Taro__default['default'].eventCenter.on('__taroShowTabBar', this.showTabBarHandler);
Taro__default['default'].eventCenter.on('__taroHideTabBar', this.hideTabBarHandler);
Taro__default['default'].eventCenter.on('__taroSetTabBarStyle', this.setTabBarStyleHandler);
Taro__default['default'].eventCenter.on('__taroSetTabBarItem', this.setTabBarItemHandler);
}
removeEvent() {
Taro__default['default'].eventCenter.off('__taroRouterChange', this.routerChangeHandler);
Taro__default['default'].eventCenter.off('__taroSwitchTab', this.switchTabHandler);
Taro__default['default'].eventCenter.off('__taroSetTabBarBadge', this.setTabBarBadgeHandler);
Taro__default['default'].eventCenter.off('__taroRemoveTabBarBadge', this.removeTabBarBadgeHandler);
Taro__default['default'].eventCenter.off('__taroShowTabBarRedDotHandler', this.showTabBarRedDotHandler);
Taro__default['default'].eventCenter.off('__taroHideTabBarRedDotHandler', this.hideTabBarRedDotHandler);
Taro__default['default'].eventCenter.off('__taroShowTabBar', this.showTabBarHandler);
Taro__default['default'].eventCenter.off('__taroHideTabBar', this.hideTabBarHandler);
Taro__default['default'].eventCenter.off('__taroSetTabBarStyle', this.setTabBarStyleHandler);
Taro__default['default'].eventCenter.off('__taroSetTabBarItem', this.setTabBarItemHandler);
}
componentDidLoad() {
this.tabbarPos = this.tabbar.nextElementSibling ? 'top' : 'bottom';
this.bindEvent();
this.routerChangeHandler();
}
disconnectedCallback() {
this.removeEvent();
}
render() {
const { tabbarPos = 'bottom' } = this;
const status = this.status;
const containerCls = classnames('weui-tabbar', {
[`taro-tabbar__border-${this.borderStyle || 'black'}`]: true
});
const shouldHideTabBar = this.selectedIndex === -1 || status === STATUS_HIDE;
const shouldSlideout = status === STATUS_SLIDEOUT;
return (hAsync(Host, { class: classnames(basicTabBarClassName, `${basicTabBarClassName}-${tabbarPos}`, {
[hideTabBarClassName]: shouldHideTabBar,
[hideTabBarWithAnimationClassName]: shouldSlideout
}) }, hAsync("div", { class: containerCls, style: {
backgroundColor: this.backgroundColor || '',
height: 'inherit'
} }, this.list.map((item, index) => {
const isSelected = this.selectedIndex === index;
let textColor;
let iconPath;
if (isSelected) {
textColor = this.selectedColor || '';
iconPath = item.selectedIconPath;
}
else {
textColor = this.color || '';
iconPath = item.iconPath;
}
return (hAsync(TabbarItem, { index: index, onSelect: this.switchTab.bind(this), isSelected: isSelected, textColor: textColor, iconPath: iconPath, pagePath: item.pagePath, text: item.text, badgeText: item.badgeText, showRedDot: item.showRedDot }));
}))));
}
get tabbar() { return getElement(this); }
static get style() { return indexCss$5; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-tabbar",
"$members$": {
"conf": [16],
"list": [32],
"borderStyle": [32],
"backgroundColor": [32],
"color": [32],
"selectedColor": [32],
"selectedIndex": [32],
"status": [32]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class Tabs {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('Tabs', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-tabs-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class TapGestureHandler {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('TapGestureHandler', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-tap-gesture-handler-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class TaroPickerGroup {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onColumnChange = createEvent(this, "columnChange", 7);
this.mode = undefined;
this.range = [];
this.rangeKey = undefined;
this.height = undefined;
this.columnId = undefined;
this.updateHeight = undefined;
this.updateDay = undefined;
this.startY = undefined;
this.preY = undefined;
this.hadMove = undefined;
this.touchEnd = undefined;
this.isMove = undefined;
}
getPosition() {
const transition = this.touchEnd ? 0.3 : 0;
const transformValue = `translate3d(0, ${this.height}px, 0)`;
const transitionValue = `transform ${transition}s`;
return {
transform: transformValue,
'-webkit-transform': transformValue,
transition: transitionValue,
'-webkit-transition': transitionValue
};
}
formulaUnlimitedScroll(range, absoluteHeight, direction) {
const { height, updateHeight, columnId } = this;
const factor = direction === 'up' ? 1 : -1;
this.touchEnd = false;
// 点击超过范围,点击到补帧时,先跳到另一端的补帧
updateHeight(-range * factor * LINE_HEIGHT + height, columnId);
// 再做过渡动画
requestAnimationFrame(() => {
this.touchEnd = true;
const index = Math.round(absoluteHeight / -LINE_HEIGHT) + range * factor;
const relativeHeight = TOP - LINE_HEIGHT * index;
updateHeight(relativeHeight, columnId, true);
});
}
async handleMoveStart(clientY) {
// 记录第一次的点击位置
this.startY = clientY;
this.preY = clientY;
this.hadMove = false;
}
async handleMoving(clientY) {
const y = clientY;
const deltaY = y - this.preY;
this.preY = y;
this.touchEnd = false;
if (Math.abs(y - this.startY) > 10)
this.hadMove = true;
let newPos = this.height + deltaY;
// 处理时间选择器的无限滚动
if (this.mode === 'time') {
if (this.columnId === '0') {
// 数字 28 来自于 4 格补帧 + 0 ~ 23 的 24 格,共 28 格
if (newPos > TOP - LINE_HEIGHT * 3) {
newPos = TOP - LINE_HEIGHT * 27 + deltaY;
}
if (newPos < TOP - LINE_HEIGHT * 28) {
newPos = TOP - LINE_HEIGHT * 4 + deltaY;
}
}
else if (this.columnId === '1') {
if (newPos > TOP - LINE_HEIGHT * 3) {
newPos = TOP - LINE_HEIGHT * 63 + deltaY;
}
if (newPos < TOP - LINE_HEIGHT * 64) {
newPos = TOP - LINE_HEIGHT * 4 + deltaY;
}
}
}
this.updateHeight(newPos, this.columnId);
}
async handleMoveEnd(clientY) {
const { mode, range, height, updateHeight, columnId } = this;
const max = 0;
const min = -LINE_HEIGHT * (range.length - 1);
const endY = clientY;
this.touchEnd = true;
// touchEnd 时的高度,可能带小数点,需要再处理
let absoluteHeight;
if (!this.hadMove) {
/** 点击 */
// 屏幕高度
const windowHeight = window.innerHeight;
// picker__mask 垂直方向距离屏幕顶部的高度
const relativeY = windowHeight - MASK_HEIGHT / 2;
absoluteHeight = height - TOP - (endY - relativeY);
// 处理时间选择器的无限滚动
if (mode === 'time') {
if (columnId === '0') {
// 点击上溢出
// absoluteHeight 是相对模块中点来算的,所以会算多半行,这时要减去这半行,即2.5行
if (absoluteHeight > -LINE_HEIGHT * 2.5) {
return this.formulaUnlimitedScroll(24, absoluteHeight, 'up');
}
// 点击下溢出
if (absoluteHeight < -LINE_HEIGHT * 28.5) {
return this.formulaUnlimitedScroll(24, absoluteHeight, 'down');
}
}
else if (columnId === '1') {
// 点击上溢出
if (absoluteHeight > -LINE_HEIGHT * 2.5) {
return this.formulaUnlimitedScroll(60, absoluteHeight, 'up');
}
// 点击下溢出
if (absoluteHeight < -LINE_HEIGHT * 64.5) {
return this.formulaUnlimitedScroll(60, absoluteHeight, 'down');
}
}
}
}
else {
/** 滚动 */
absoluteHeight = height - TOP;
}
// 边界情况处理
if (absoluteHeight > max)
absoluteHeight = 0;
if (absoluteHeight < min)
absoluteHeight = min;
// 先按公式算出 index, 再用此 index 算出一个整数高度
const index = Math.round(absoluteHeight / -LINE_HEIGHT);
const relativeHeight = TOP - LINE_HEIGHT * index;
if (this.mode === 'date' && typeof this.updateDay === 'function') {
if (this.columnId === '0') {
this.updateDay(+this.range[index].replace(/[^0-9]/gi, ''), 0);
}
if (this.columnId === '1') {
this.updateDay(+this.range[index].replace(/[^0-9]/gi, ''), 1);
}
if (this.columnId === '2') {
this.updateDay(+this.range[index].replace(/[^0-9]/gi, ''), 2);
}
}
updateHeight(relativeHeight, columnId, mode === 'time');
this.onColumnChange.emit({
columnId,
height: relativeHeight,
});
}
onMouseDown(e) {
this.isMove = true;
this.handleMoveStart(e.clientY);
}
onMouseMove(e) {
if (!this.isMove)
return;
this.handleMoving(e.clientY);
}
onMouseMoveEnd(e) {
if (!this.isMove)
return;
this.isMove = false;
this.handleMoveEnd(e.clientY);
}
onTouchStart(e) {
this.handleMoveStart(e.changedTouches[0].clientY);
}
onTouchMove(e) {
this.handleMoving(e.changedTouches[0].clientY);
}
onTouchEnd(e) {
this.handleMoveEnd(e.changedTouches[0].clientY);
}
render() {
const { range, rangeKey } = this;
const pickerItem = range.map(item => {
const content = rangeKey ? item[rangeKey] : item;
return (hAsync("div", { class: 'weui-picker__item' }, content));
});
return (hAsync(Host, { class: 'weui-picker__group' }, hAsync("div", { class: 'weui-picker__mask' }), hAsync("div", { class: 'weui-picker__indicator' }), hAsync("div", { class: 'weui-picker__content', style: this.getPosition() }, pickerItem)));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-picker-group",
"$members$": {
"mode": [1],
"range": [16],
"rangeKey": [1, "range-key"],
"height": [2],
"columnId": [1, "column-id"],
"updateHeight": [16],
"updateDay": [16],
"startY": [32],
"preY": [32],
"hadMove": [32],
"touchEnd": [32],
"isMove": [32],
"handleMoveStart": [64],
"handleMoving": [64],
"handleMoveEnd": [64]
},
"$listeners$": [[1, "mousedown", "onMouseDown"], [3, "mousemove", "onMouseMove"], [1, "mouseup", "onMouseMoveEnd"], [1, "mouseleave", "onMouseMoveEnd"], [1, "touchstart", "onTouchStart"], [3, "touchmove", "onTouchMove"], [1, "touchend", "onTouchEnd"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$4 = "taro-text-core{user-select:none;display:inline}taro-text-core[selectable=true],taro-text-core[user-select=true]{user-select:text;display:inline-block}taro-text-core[space]{white-space:pre-wrap}taro-text-core[space=ensp]{word-spacing:.5em}taro-text-core[space=nbsp]{word-spacing:1em}taro-text-core[number-of-lines]{--line-clamp:2;word-wrap:break-word;text-overflow:ellipsis;-webkit-line-clamp:var(--line-clamp);-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}";
class Text {
constructor(hostRef) {
registerInstance(this, hostRef);
this.selectable = false;
this.userSelect = false;
this.space = undefined;
this.numberOfLines = undefined;
}
render() {
const style = {};
if (typeof this.numberOfLines === 'number') {
style['--line-clamp'] = this.numberOfLines;
}
return (hAsync(Host, { style: style }, hAsync("slot", null)));
}
static get style() { return indexCss$4; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-text-core",
"$members$": {
"selectable": [1028],
"userSelect": [1028, "user-select"],
"space": [1025],
"numberOfLines": [2, "number-of-lines"]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$3 = "taro-textarea-core{width:300px;display:block}taro-textarea-core .auto-height{height:auto}.taro-textarea{width:100%;height:inherit;appearance:none;cursor:auto;border:0;line-height:1.5;display:block;position:relative}.taro-textarea:focus{outline:none}";
function fixControlledValue(value) {
return value !== null && value !== void 0 ? value : '';
}
class Textarea {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onInput = createEvent(this, "input", 7);
this.onFocus = createEvent(this, "focus", 7);
this.onBlur = createEvent(this, "blur", 7);
this.onConfirm = createEvent(this, "confirm", 7);
this.onChange = createEvent(this, "change", 7);
this.onLineChange = createEvent(this, "linechange", 7);
this.onKeyDown = createEvent(this, "keydown", 7);
this.isComposing = false;
this.onInputExecuted = false;
this.handleInput = (e) => {
e.stopPropagation();
this.handleLineChange();
if (this.onInputExecuted) {
this.onInputExecuted = false;
return;
}
const value = e.target.value || '';
const cursor = this.getCursorFromTarget(e.target, value.length);
if (this.isComposing) {
this.compositionValue = value;
return;
}
this.onInputExecuted = true;
if (this.compositionValue !== undefined) {
this.compositionValue = undefined;
}
this.value = value;
this.onInput.emit({
value,
cursor
});
this.onInputExecuted = false;
};
this.handleComposition = (e) => {
e.stopPropagation();
if (!(e.target instanceof HTMLTextAreaElement))
return;
if (e.type === 'compositionend') {
this.isComposing = false;
const value = e.target.value || '';
const cursor = this.getCursorFromTarget(e.target, value.length);
this.compositionValue = undefined;
this.handleLineChange();
this.value = value;
this.onInput.emit({
value,
cursor
});
}
else {
this.isComposing = true;
}
};
this.handleFocus = (e) => {
e.stopPropagation();
this.onFocus.emit({
value: e.target.value
});
};
this.handleBlur = (e) => {
e.stopPropagation();
this.onBlur.emit({
value: e.target.value
});
this.lastSelectionRange = undefined;
};
this.handleChange = (e) => {
e.stopPropagation();
this.onChange.emit({
value: e.target.value
});
};
this.handleLineChange = () => {
const line = this.getNumberOfLines();
if (line !== this.line) {
this.line = line;
this.onLineChange.emit({
height: this.textareaRef.clientHeight,
lineCount: this.line
});
}
};
this.handleKeyDown = (e) => {
e.stopPropagation();
const { value } = e.target;
const cursor = this.getCursorFromTarget(e.target, value.length);
const keyCode = e.keyCode || e.code;
this.onKeyDown.emit({
value,
cursor,
keyCode
});
keyCode === 13 && this.onConfirm.emit({ value });
};
this.calculateContentHeight = (ta, scanAmount) => {
const origHeight = ta.style.height;
let height = ta.offsetHeight;
const scrollHeight = ta.scrollHeight;
const overflow = ta.style.overflow;
const originMinHeight = ta.style.minHeight || null;
/// only bother if the ta is bigger than content
if (height >= scrollHeight) {
ta.style.minHeight = 0;
/// check that our browser supports changing dimension
/// calculations mid-way through a function call...
ta.style.height = height + scanAmount + 'px';
/// because the scrollbar can cause calculation problems
ta.style.overflow = 'hidden';
/// by checking that scrollHeight has updated
if (scrollHeight < ta.scrollHeight) {
/// now try and scan the ta's height downwards
/// until scrollHeight becomes larger than height
while (ta.offsetHeight >= ta.scrollHeight) {
ta.style.height = (height -= scanAmount) + 'px';
}
/// be more specific to get the exact height
while (ta.offsetHeight < ta.scrollHeight) {
ta.style.height = height++ + 'px';
}
/// reset the ta back to it's original height
ta.style.height = origHeight;
/// put the overflow back
ta.style.overflow = overflow;
ta.style.minHeight = originMinHeight;
return height;
}
}
else {
return scrollHeight;
}
};
this.getNumberOfLines = () => {
const ta = this.textareaRef;
const style = window.getComputedStyle ? window.getComputedStyle(ta) : ta.style;
// This will get the line-height only if it is set in the css,
// otherwise it's "normal"
const taLineHeight = parseInt(style.lineHeight, 10);
// Get the scroll height of the textarea
const taHeight = this.calculateContentHeight(ta, taLineHeight);
// calculate the number of lines
const numberOfLines = Math.floor(taHeight / taLineHeight);
return numberOfLines;
};
this.value = '';
this.placeholder = undefined;
this.disabled = false;
this.maxlength = 140;
this.autoFocus = false;
this.autoHeight = false;
this.name = undefined;
this.nativeProps = {};
this.line = 1;
this.compositionValue = undefined;
}
watchAutoFocus(newValue, oldValue) {
var _a;
if (!oldValue && newValue) {
(_a = this.textareaRef) === null || _a === void 0 ? void 0 : _a.focus();
}
}
watchValue(newValue) {
// hack: 在事件回调中,props.value 变化不知为何不会触发 Stencil 更新,因此这里手动更新一下
if (this.isComposing)
return;
const value = fixControlledValue(newValue);
if (this.textareaRef.value !== value) {
const isActive = typeof document !== 'undefined' && document.activeElement === this.textareaRef;
const selection = isActive ? (this.lastSelectionRange || this.getSelectionSnapshot(this.textareaRef)) : null;
this.textareaRef.value = value;
this.handleLineChange();
if (selection) {
this.restoreSelection(this.textareaRef, selection);
}
}
}
async focus() {
this.textareaRef.focus();
}
componentDidLoad() {
var _a, _b;
(_a = this.textareaRef) === null || _a === void 0 ? void 0 : _a.addEventListener('compositionstart', this.handleComposition);
(_b = this.textareaRef) === null || _b === void 0 ? void 0 : _b.addEventListener('compositionend', this.handleComposition);
this.handleLineChange();
}
disconnectedCallback() {
var _a, _b;
(_a = this.textareaRef) === null || _a === void 0 ? void 0 : _a.removeEventListener('compositionstart', this.handleComposition);
(_b = this.textareaRef) === null || _b === void 0 ? void 0 : _b.removeEventListener('compositionend', this.handleComposition);
}
getSelectionSnapshot(target) {
if (!target)
return null;
const { selectionStart, selectionEnd } = target;
if (selectionStart === null || selectionEnd === null)
return null;
this.lastSelectionRange = { selectionStart, selectionEnd };
return { selectionStart, selectionEnd };
}
getCursorFromTarget(target, fallback) {
var _a;
if (!target)
return fallback;
const { selectionEnd } = target;
if (typeof selectionEnd === 'number') {
const selectionStart = (_a = target.selectionStart) !== null && _a !== void 0 ? _a : selectionEnd;
this.lastSelectionRange = { selectionStart, selectionEnd };
return selectionEnd;
}
return fallback;
}
restoreSelection(target, selection) {
if (!target)
return;
const range = selection || this.lastSelectionRange || null;
if (!range)
return;
const max = target.value.length;
const start = Math.min(range.selectionStart, max);
const end = Math.min(range.selectionEnd, max);
if (typeof target.setSelectionRange === 'function') {
target.setSelectionRange(start, end);
}
}
render() {
const { value, placeholder, disabled, maxlength, autoFocus, autoHeight, name, nativeProps, handleInput, handleFocus, handleBlur, handleChange, compositionValue } = this;
const otherProps = {};
if (autoHeight) {
otherProps.rows = this.line;
}
return (hAsync("textarea", Object.assign({ ref: input => {
if (input) {
this.textareaRef = input;
if (autoFocus && input)
input.focus();
}
}, class: `taro-textarea ${autoHeight ? 'auto-height' : ''}`, value: compositionValue !== undefined ? compositionValue : fixControlledValue(value), placeholder: placeholder, name: name, disabled: disabled, maxLength: maxlength, autoFocus: autoFocus, onInput: handleInput, onFocus: handleFocus, onBlur: handleBlur, onChange: handleChange, onKeyDown: this.handleKeyDown }, nativeProps, otherProps)));
}
get el() { return getElement(this); }
static get watchers() { return {
"autoFocus": ["watchAutoFocus"],
"value": ["watchValue"]
}; }
static get style() { return indexCss$3; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-textarea-core",
"$members$": {
"value": [1025],
"placeholder": [1],
"disabled": [4],
"maxlength": [2],
"autoFocus": [4, "focus"],
"autoHeight": [4, "auto-height"],
"name": [1],
"nativeProps": [16],
"line": [32],
"compositionValue": [32],
"focus": [64]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class VerticalDragGestureHandler {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('VerticalDragGestureHandler', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-vertical-drag-gesture-handler-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const formatTime = (time) => {
if (!time)
return '';
const sec = Math.round(time % 60);
const min = Math.round((time - sec) / 60);
return `${min < 10 ? `0${min}` : min}:${sec < 10 ? `0${sec}` : sec}`;
};
const calcDist = (x, y) => {
return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
};
const normalizeNumber = (number) => {
return Math.max(-1, Math.min(number, 1));
};
let scene = 'default';
const screenFn = (function () {
let val;
const fnMap = [
[
'requestFullscreen',
'exitFullscreen',
'fullscreenElement',
'fullscreenEnabled',
'fullscreenchange',
'fullscreenerror'
],
// New WebKit
[
'webkitRequestFullscreen',
'webkitExitFullscreen',
'webkitFullscreenElement',
'webkitFullscreenEnabled',
'webkitfullscreenchange',
'webkitfullscreenerror'
],
// Old WebKit
[
'webkitRequestFullScreen',
'webkitCancelFullScreen',
'webkitCurrentFullScreenElement',
'webkitCancelFullScreen',
'webkitfullscreenchange',
'webkitfullscreenerror'
],
[
'mozRequestFullScreen',
'mozCancelFullScreen',
'mozFullScreenElement',
'mozFullScreenEnabled',
'mozfullscreenchange',
'mozfullscreenerror'
],
[
'msRequestFullscreen',
'msExitFullscreen',
'msFullscreenElement',
'msFullscreenEnabled',
'MSFullscreenChange',
'MSFullscreenError'
]
];
var defaultIOSMap = [
'webkitEnterFullscreen',
'webkitExitFullscreen',
'webkitCurrentFullScreenElement',
'webkitSupportsFullscreen',
'fullscreenchange',
'fullscreenerror'
];
let i = 0;
const l = fnMap.length;
const ret = {};
// This for loop essentially checks the current document object for the property/methods above.
for (; i < l; i++) {
val = fnMap[i];
if (val && val[1] in document) {
for (i = 0; i < val.length; i++) {
ret[fnMap[0][i]] = val[i];
}
return ret;
}
}
if (!ret[fnMap[0][0]]) {
scene = 'iOS';
// when there is no any APIs be set.
// In IOS, there is no 'webkitEnterFullscreen' property `in document` but video can use it for fullscreen.
// ref: https://developer.apple.com/documentation/webkitjs/htmlvideoelement/1633500-webkitenterfullscreen
for (i = 0; i < defaultIOSMap.length; i++) {
ret[fnMap[0][i]] = defaultIOSMap[i];
}
}
// If it doesn't find any of them, this whole function returns {}
// and the fn variable is set to this returned value.
return ret;
})();
const isHls = url => /\.(m3u8)($|\?)/i.test(url);
const indexCss$2 = ".taro-video{width:100%;height:225px;line-height:0;display:inline-block;position:relative;overflow:hidden}.taro-video[hidden]{display:none}.taro-video-container{object-position:inherit;background-color:#000;width:100%;height:100%;display:inline-block;position:absolute;top:0;left:0}.taro-video-container.taro-video-type-fullscreen{z-index:999;position:fixed;inset:0}.taro-video-container.taro-video-type-fullscreen.taro-video-type-rotate-left{transform:translate(-50%,-50%)rotate(-90deg)}.taro-video-container.taro-video-type-fullscreen.taro-video-type-rotate-right{transform:translate(-50%,-50%)rotate(90deg)}.taro-video-video{object-position:inherit;width:100%;height:100%;display:block}.taro-video-cover{z-index:1;background-color:rgba(1,1,1,.5);-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:center;-webkit-box-pack:center;justify-content:center;align-items:center;width:100%;display:flex;position:absolute;top:0;bottom:0;left:0}.taro-video-cover-play-button{background-position:50%;background-repeat:no-repeat;background-size:50%;width:40px;height:40px}.taro-video-cover-duration{color:#fff;margin-top:10px;font-size:16px;line-height:1}.taro-video-bar{visibility:hidden;z-index:1;background-color:rgba(0,0,0,.5);-webkit-box-align:center;align-items:center;height:44px;padding:0 10px;display:flex;position:absolute;bottom:0;right:0;overflow:hidden}.taro-video-bar.taro-video-bar-full{left:0}.taro-video-controls{-webkit-box-flex:1;flex-grow:1;margin:0 8.5px;display:flex}.taro-video-control-button{box-sizing:content-box;width:13px;height:15px;margin-left:-8.5px;padding:14.5px 12.5px}.taro-video-control-button:after{content:\"\";background-position:50%;background-repeat:no-repeat;background-size:100%;width:100%;height:100%;display:block}.taro-video-control-button.taro-video-control-button-play:after,.taro-video-cover-play-button{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAeCAYAAAAy2w7YAAAAAXNSR0IArs4c6QAAAWhJREFUSA1j+P///0cgBoHjQGzCQCsAtgJB/AMy5wCxGNXtQ9iBwvoA5BUCMQvVLEQxHpNzDSjkRhXLMM3GKrIeKKpEkYVYjcUu+AMo3ALE3GRZiN1MvKKPgbIRJFuG10j8koeA0gZEW4jfLIKyf4EqpgOxMEELCRpFnIJ3QGU5QMyM00LizCFa1SWgSkeslhFtBGkKVwGVy6FYSJp+klR/A6quB2JOkIWMIK0oNlOf8xBoZDE9LAI7nYn6HsBq4l96WHQEaLUpAyiOaASeAM2NgvuPBpaACt82IEYtfKls0UagecpwXyAzqGTRdaA57sjmYrAptAjUsCkGYlYMg9EFyLQI1IiZB8Ti6Obh5JNh0QmgHlOcBuKSIMGi50C18UDMiMssvOJEWPQLqKYbiHnxGkRIkoBF24DyaoTMIEoeh0W3geI+RBlArCI0iz4D+RVAzEasfqLVAQ19AcSg5LoYiKWI1kiiQgCMBLnEEcfDSgAAAABJRU5ErkJggg==)}.taro-video-control-button.taro-video-control-button-pause:after{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAFlJREFUSA3tksEKACAIQ7X//5zq98wOgQayum8QaGweHhMzG/6OujzKAymn+0LMqivu1XznWmX8/echTIyMyAgTwA72iIwwAexgj8gIE8CO3aMRbDPMaEy5BRGaKcZv8YxRAAAAAElFTkSuQmCC)}.taro-video-current-time,.taro-video-duration{color:#cbcbcb;height:14.5px;margin-top:15px;margin-bottom:14.5px;font-size:12px;line-height:14.5px}.taro-video-progress-container{-webkit-box-flex:2;flex-grow:2;position:relative}.taro-video-progress{background-color:rgba(255,255,255,.4);height:2px;margin:21px 12px;position:relative}.taro-video-progress-buffered{background-color:rgba(255,255,255,.8);width:0;height:100%;transition:width .1s;position:absolute;top:0;left:0}.taro-video-ball{box-sizing:content-box;width:16px;height:16px;margin-left:-22px;padding:14px;position:absolute;top:-21px;left:0}.taro-video-inner{background-color:#fff;border-radius:50%;width:100%;height:100%}.taro-video-danmu-button{color:#fff;white-space:nowrap;border:1px solid #fff;border-radius:5px;margin:0 8.5px;padding:2px 10px;font-size:13px;line-height:1}.taro-video-danmu-button.taro-video-danmu-button-active{color:#48c23d;border-color:#48c23d}.taro-video-fullscreen,.taro-video-mute{box-sizing:content-box;background-position:50%;background-repeat:no-repeat;background-size:50%;width:17px;height:17px;padding:8.5px}.taro-video-fullscreen{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAhUlEQVRYR+2WSwrAMAhEnZO3PfmULLooGEFTiIXJ2s/kRY2wzQeb85sE9CRA8jSzY1YfAFzhJBnU1AVgxH2dSiArCnD9QgGzRNnOech48SRABHoSyFb5in3PSbhyo6yvCPQkEM3u7BsPe/0FIvBfAh/vhKmVbO9SWun1qk/PSVi9TcVPBG6R1YIhgWwNpQAAAABJRU5ErkJggg==)}.taro-video-fullscreen.taro-video-type-fullscreen{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABPUlEQVRYR+2Xu0pDURBF1/ZLxNcHKNiIlfhA7C0UBSEE8RNEBNFPUEQEEbGxFiSSSrCwEHsf5E/ccsSUuWfUhKQ40947+y42Z8+ZK/pcinzf9hhwD1xJ2q/qsb0JHAOzkl5y+lGAGnCWICQtZgAS6DxQk3TeLYA6cAo0JSXxjmW7CcwBdUkJurKiDhSA4kBvHbA9CqwBQx2O7BSw8ssU3ALPFRF4knT3nQLbr8B4LjLBOdAAFgJaLUkjbYC9n+zm+i4kXWbmwCqwnRMCHiXthuZAQOzPrxSA4kBxYDAcsH0EzATCfCLpJjOINoCtgFZabg7bk7AFDAeaGpKWgitZTu5N0kQbYBmYrujo9mX0CVxL+gidAdu9vY5zXhWA4sAgOND3X7NJ4AHYCaxkB8B62gslvecSFpoDOZH/PP8Cnt7hIaM5xCEAAAAASUVORK5CYII=)}.taro-video-mute{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDQtMTFUMTA6MTg6MjArMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjk3YmE4Yjg0LTFhNTYtNGM1MS04NDVkLTNiZmYyMGI0ZDc0ZiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjg1NGQ3MjlkLWUwNjctZjU0OC1hMTlhLTBlZjQ4OGRkYjJiOSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjA1ODY3ZDFlLWQ3NGEtNDgyNC04MDU3LTYzYmRmMTdjODk5ZSI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDU4NjdkMWUtZDc0YS00ODI0LTgwNTctNjNiZGYxN2M4OTllIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjE4OjIwKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OTdiYThiODQtMWE1Ni00YzUxLTg0NWQtM2JmZjIwYjRkNzRmIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjIyOjIyKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz459+FoAAABqElEQVRYhc2XPWsVQRSGnxPjF4oGRfxoRQKGWCU2Ft7CykrQWosEyf/If0hhIPgHDEmbNJZqCFxiQEgTUGxsBUVEHgvnyrjZZJO92V1fGIaZnTPvszPszNlQ6VIjnbr/DwCoDLMNak/dUVfUK0f2rQugnlcX/FevWgFQH6gf3autRgHUC+piiXHzAOmtPx9gXgug8itQx9SXwDpw47AGKXZWvXvQmNFCwE3gCXA2dY0Az4GrRzHONA9cU/vAbERsllEOyh31e8USV2mrMPdG9uyn+rDom2/BHHCm5puWKiKmgdtAnz+rvaxO5mNygEvHaZ5BfADuARvAaWBpP4DGFBHfgBngFzClTrUKkCDeA+9S837rAEnbqb7VFcCpVJ/oCmCw959aB1AfAROpudYqgDoOLKRmPyLelAF8bcD4pPoMeAtcB34AT4uDBqXXwFG8XXUU/72MIuK1OgE8Bs6l7mEvo8up7lN1Ge0n9aK6VHMFZvJTr9S3CiALaCQhqZOSvegMIAvu2UVSWpigLC1fbQ0gm6in7qpfLCQbhwGIYcyPQ53/G3YO8BtUtd35bvKcVwAAAABJRU5ErkJggg==)}.taro-video-mute.taro-video-type-mute{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAgCAYAAAB3j6rJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAGAGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDQtMTFUMTA6MTk6MDMrMDg6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAzYjJmNjE2LTZmZTUtNDJjNC1iNTgwLTczNzZjZjI2NzdmNSIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjYzZjQ2NTYzLWE0ZjktOGQ0Mi1hM2FhLTY3ODJhNDBhYWNjMSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjIyYWNjMWFlLTg4ZmMtNDBlZi1iMWM1LTNmODgwY2QzYWI2MiI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249ImNyZWF0ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjJhY2MxYWUtODhmYy00MGVmLWIxYzUtM2Y4ODBjZDNhYjYyIiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjE5OjAzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MDNiMmY2MTYtNmZlNS00MmM0LWI1ODAtNzM3NmNmMjY3N2Y1IiBzdEV2dDp3aGVuPSIyMDE5LTA0LTExVDEwOjIyOjMzKzA4OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoTWFjaW50b3NoKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5PmxYVAAACLklEQVRYhc2XP2sVQRRHz40hKoqaQgVBCy1EozFlGiVFxMLGh4piYWEh+hkEP4YKAVFEEFTyughaCH6DqIVpAhYWEgIxoJE8cywyi5tNHu/tJmvyg2WZO3dmzt47/zZUtoJ6Nhsg09YDiYhKDzACTAFNYH9lEpUq80TdrT5wpV5n/ZV9KoGoo+pXV2uyKkipOaLuUceAt8DhUvQd1FsCYhR4ChzaSIBMHSOi7lOfsByFWiCgEBH1GHAF2JlMPcBt4GC3HUYEaj9wF3gVEVPtfNVTwAXgWX7CDKq/1piAZTSZBmim8qJ6sQ3EgDqb/L7kU3MH2NHtl3dQX3r3Ak21UYAYAj4A/cl0JB+RF+uMRj4iQ+p8zt7KYFLdXKHuRi0gacBhV6a6pd5bA6KRNagFJPU9qv5u47toLmW1HnoR8Q5oAK1CVQu4FBHj/wUkaXsb+4pzpVaQFPqXrN7Be4Fx9VztIOr1BLEtmX4A94E/qdwHTKjDWYM6lu81dSlnn3V570BtuLxaMs2rZ/IgYxsBovaoPwsQA4VoFWEm8ql5DiysNyURsQTMpOIMcDYiPhd8xoGr/FtNC2G6FKXD6ihwGdiVHMoeeh8jYlA9ANwE3kTEp3bO6vE03qOONzR1r/q4RGrquaFFxFxE3ALOA9+6jExpdb180y55AhirhaRTatq0GXEzL8+ZIuI9cBJ4WKiartJf9nWV/mty7UfUafW7erpqRGI9EBuprffvu9n6C1KOmsqwI5A1AAAAAElFTkSuQmCC)}.taro-video-danmu{width:100%;margin-top:14px;margin-bottom:44px;font-size:14px;line-height:14px;position:absolute;top:0;bottom:0;left:0;overflow:visible}.taro-video-danmu-item{color:#fff;white-space:nowrap;line-height:1;transition-property:left,transform;transition-duration:3s;transition-timing-function:linear;position:absolute;left:100%;transform:translate(0)}.taro-video-toast{visibility:hidden;pointer-events:none;color:#000;background-color:rgba(255,255,255,.8);border-radius:5px;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.taro-video-toast.taro-video-toast-volume{width:100px;height:100px;display:block}.taro-video-toast-volume .taro-video-toast-title{text-align:center;width:100%;margin-top:10px;font-size:12px;line-height:16px;display:block}.taro-video-toast-volume .taro-video-toast-icon{fill:#000;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAFhklEQVR4Xu2aeaxfQxTHP1VBES0NIQitWtpaaxeCUkQtaYVa0tiClAq1ExIiQTVppaWxt8RWSa2tWkJQRGgtQaSIpUKEpG0ssbbk28yV2+mZO/e9e3vvu/e98897mZnfzPl+75mZs0wvurn06ub46SGgxwLqZaA3sB/wO/A+8G/V6tS5BU4BJgJbO9DvAMOB36okoQ4CNgAeBEYbQK8Bbm4zAdsBc4EdAyA/APZoKwHHAA8DG2UA/AnYrG0ErAVcD1yXA9gfQJ8c40obsqbPgH7AY8CROTVuFQFD3X7fJid4DWsNAWOAGZ0w58YTsDZwKzChA189PbTRBGwKzAYO6iT4srbAMHfTfAksjulS1iG4JzAH2Dy2YKS/qAVcCdzi1vgZOBZ4PWvNGAG6wgYCW0IwctzNmf06BcEXtYABwOeA4otEfgEOdnGGqV6IAAUopwM6zDYuAVjeKYpYwCjgCWOhH513+b2lhE+Avrj89NPyalzyuCIE6EN9BfQ1dHoPOAD40+9LE6D/5aoqSqtLsgiQC60DTiHzfGCFoaSsQAexZdlTgEuyCDgLuK8u5G7dEAHyKN8CBrtxLwDHAX8Z+l4N3GS0L3db4aN0X5opmc+2XZQAfb2LPd2eciG1lUSRJZ9qYHkZONwiYAjwSc3gs24BXWWWfzEVuMjQez13HljX8v7A28lvEgsInaBVcxLaAvr6sgJLtBWeNTrOB+4w2p8DRvoEnAPcXTVaY70QAbrbXwIONX7zBSAL/tvrk1+iviTllnRry2irr/QSEws4D7izCxMg1XQLLAQGGXpeCkw22kOWI49RMUujCJC+uwAfGtfcImAng4AtAMsBeg04pIkESOfbgQsMsNoGnxrtSrfv7rXrSlwXWN6kLZBgEBiB8iWUUZZPIN/AF1nMoiYSICDfAlt5iB4CxhpAzwXuMtqPBuY1lYB5wFEeqFeAwwyguvIUqvuiQO/xphJwP3Cmhyh0EKrOoGDIF7n+M5pKwEwXrqdBCaQSM77Ig7SSIicDs5pKwIvACA+pzFwZIF9OlKm36QyQV7jEqDDJk5VD58uFgGIGX1Se+6yJFqAKsqI6X84GdDb4Mh0Y5zUqjFYFakUTCXja5QLSmBQHbAL8ahAgT1AeYVreSKLLphGwF/CuAfLJQLldGSTFD75c5d4mNCoWyAqG9gYWGED1AOMKo12ZbiWA/idA++deY2DVTZ0Jh5UJPsFQtD/wDaAHGWl5EzgwaUi2gK4UXS11S0cTIjrMFBtYQdAk4DID0BnAAz4B6wNLgTKKG0VIDBHwqitwpOcW+OOB540FdeipNKbUWFrUtn06o5xOij4KyDuqU0IE3Obl/rLA63pTzm9XA8jKACjdniZAaSKFmUpB1yUhAlTsUEpMh913wEkuTe7rKTzPAHqO44vpKPkFhH3cWWBVV6ogJVYZUgz/tXtIYelzI3Ct0fExIGx6j7iKWBUUveyYBehv1RIjIEsfqziq8Xp4pSBJOYTVJFQcVY3wCFeKUjVGyYfQWB00+5bEVBECrNS+qsOKBpVHNCVWHs+LS7H5PV5pOu9v0+OKEOAXR39w1e1C7wM6AkJ1eLmkRcrpRQiQrqobXO5S3vL3/4kBKMsCknV0k+iasVLUMV3UX5SAPGtED8EOT+L9YENnCasUIXNO2goChFWHqAIRyxXN4qI1BCQg9dJESYq8LnbrCBAR8t50Lig6i0krCRBoVWhVlt45wkBrCRBuRZyPuAguxIPe9lXqhpd9DcZMXOvdkPF0Xu/8dohNUmZ/1QQkuitXr+d4fryuFx3jywQYm6suAqSX8vLTXKJDt4QqO6rtLYspXWZ/nQQkOJTAUJZGIav19q9MvKvN1RUIWKMAY5P3EBBjqO393d4C/gMVHwRQlpx21QAAAABJRU5ErkJggg==);background-position:50%;background-repeat:no-repeat;background-size:50%;width:50%;height:50%;margin-left:25%;display:block}.taro-video-toast-volume .taro-video-toast-value{width:80px;height:5px;margin-top:5px;margin-left:10px}.taro-video-toast-volume .taro-video-toast-value>.taro-video-toast-value-content{overflow:hidden}.taro-video-toast-volume-grids{width:80px;height:5px}.taro-video-toast-volume-grids-item{float:left;background-color:#000;width:7.1px;height:5px}.taro-video-toast-volume-grids-item:not(:first-child){margin-left:1px}.taro-video-toast.taro-video-toast-progress{color:#fff;background-color:rgba(0,0,0,.8);padding:6px;font-size:14px;line-height:18px}";
class Video {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onPlay = createEvent(this, "play", 7);
this.onPause = createEvent(this, "pause", 7);
this.onEnded = createEvent(this, "ended", 7);
this.onTimeUpdate = createEvent(this, "timeupdate", 7);
this.onError = createEvent(this, "error", 7);
this.onFullScreenChange = createEvent(this, "fullscreenchange", 7);
this.onProgress = createEvent(this, "progress", 7);
this.onLoadedMetaData = createEvent(this, "loadedmetadata", 7);
this.currentTime = 0;
this.isDraggingProgress = false;
this.gestureType = 'none';
this.analyzeGesture = (e) => {
var _a;
const obj = {
type: 'none'
};
const nowX = e.touches[0].screenX;
const nowY = e.touches[0].screenY;
const distX = nowX - this.lastTouchScreenX;
const distY = nowY - this.lastTouchScreenY;
const enableVslideGesture = this.isFullScreen ? this.vslideGestureInFullscreen : this.vslideGesture;
if (this.gestureType === 'none') {
// 两点间距离
const dist = calcDist(distX, distY);
// 没有移动
if (dist < 10)
return obj;
if (Math.abs(distY) >= Math.abs(distX)) {
// 垂直方向移动:调整音量
if (enableVslideGesture) {
this.gestureType = 'adjustVolume';
this.lastVolume = this.videoRef.volume;
}
else {
return obj;
}
}
else if (Math.abs(distY) < Math.abs(distX)) {
// 水平方向移动:调整进度
if (this.enableProgressGesture) {
this.gestureType = 'adjustProgress';
this.lastPercentage = this.currentTime / ((_a = this.duration) !== null && _a !== void 0 ? _a : this._duration);
}
else {
return obj;
}
}
}
obj.type = this.gestureType;
obj.dataX = normalizeNumber(distX / 200);
obj.dataY = normalizeNumber(distY / 200);
return obj;
};
this.loadNativePlayer = () => {
var _a, _b;
if (this.videoRef) {
this.videoRef.src = this.src;
(_b = (_a = this.videoRef).load) === null || _b === void 0 ? void 0 : _b.call(_a);
}
};
this.init = () => {
const { src, videoRef } = this;
if (isHls(src)) {
Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(
/* webpackExports: ["default"] */
'hls.js')); }).then(e => {
const Hls = e.default;
this.HLS = Hls;
if (Hls.isSupported()) {
if (this.hls) {
this.hls.destroy();
}
this.hls = new Hls();
this.hls.loadSource(src);
this.hls.attachMedia(videoRef);
this.hls.on(Hls.Events.MANIFEST_PARSED, () => {
this.autoplay && this.play();
});
this.hls.on(Hls.Events.ERROR, (_, data) => {
this.handleError(data);
});
}
else if (videoRef.canPlayType('application/vnd.apple.mpegurl')) {
this.loadNativePlayer();
}
else {
console.error('该浏览器不支持 HLS 播放');
}
});
}
else {
this.loadNativePlayer();
}
};
this.handlePlay = () => {
this.isPlaying = true;
this.isFirst = false;
this.controlsRef.toggleVisibility(true);
this.onPlay.emit();
};
this.handlePause = () => {
this.isPlaying = false;
this.controlsRef.toggleVisibility(true);
this.onPause.emit();
};
this.handleEnded = () => {
this.isFirst = true;
this.pause();
this.controlsRef.toggleVisibility();
this.onEnded.emit();
};
this.handleTimeUpdate = throttle(async (e) => {
var _a, _b;
this.currentTime = this.videoRef.currentTime;
const duration = this.duration || this._duration;
const isControlDragging = await this.controlsRef.getIsDraggingProgressBall();
if (this.controls && this.showProgress) {
if (!isControlDragging && !this.isDraggingProgress) {
this.controlsRef.setProgressBall(this.currentTime / duration);
this.controlsRef.setCurrentTime(this.currentTime);
}
}
this.danmuRef.tick(this.currentTime);
this.onTimeUpdate.emit({
duration: (_a = e.target) === null || _a === void 0 ? void 0 : _a.duration,
currentTime: (_b = e.target) === null || _b === void 0 ? void 0 : _b.currentTime
});
if (this.duration) {
if (this.currentTime >= this.duration) {
this.seek(0);
this.handleEnded();
}
}
}, 250);
this.handleError = e => {
var _a, _b;
if (this.hls) {
switch (e.type) {
case this.HLS.ErrorTypes.NETWORK_ERROR:
// try to recover network error
this.onError.emit({ errMsg: e.response });
this.hls.startLoad();
break;
case this.HLS.ErrorTypes.MEDIA_ERROR:
this.onError.emit({ errMsg: e.reason || '媒体错误,请重试' });
this.hls.recoverMediaError();
break;
}
}
else {
this.onError.emit({
errMsg: (_b = (_a = e.target) === null || _a === void 0 ? void 0 : _a.error) === null || _b === void 0 ? void 0 : _b.message,
});
}
};
this.handleDurationChange = () => {
this._duration = this.videoRef.duration;
};
this.handleProgress = () => {
this.onProgress.emit();
};
this.handleLoadedMetaData = (e) => {
const target = e.target;
this.onLoadedMetaData.emit({
width: target.videoWidth,
height: target.videoHeight,
duration: target.duration
});
};
this._play = () => this.videoRef.play();
this._pause = () => this.videoRef.pause();
this._stop = () => {
this.videoRef.pause();
this._seek(0);
};
this._seek = (position) => {
this.videoRef.currentTime = position;
};
this.onTouchStartContainer = (e) => {
this.lastTouchScreenX = e.touches[0].screenX;
this.lastTouchScreenY = e.touches[0].screenY;
};
this.onClickContainer = () => {
if (this.enablePlayGesture) {
const now = Date.now();
if (now - this.lastClickedTime < 300) {
// 双击
this.isPlaying ? this.pause() : this.play();
}
this.lastClickedTime = now;
}
this.controlsRef.toggleVisibility();
};
this.onClickFullScreenBtn = (e) => {
e.stopPropagation();
this.toggleFullScreen();
};
this.handleFullScreenChange = e => {
// 全屏后,"退出"走的是浏览器事件,在此同步状态
const timestamp = new Date().getTime();
if (!e.detail && this.isFullScreen && !document[screenFn.fullscreenElement] && timestamp - this.fullScreenTimestamp > 100) {
this.toggleFullScreen(false, true);
}
};
this.toggleFullScreen = (isFullScreen = !this.isFullScreen, fromBrowser = false) => {
this.isFullScreen = isFullScreen; // this.videoRef?.['webkitDisplayingFullscreen']
this.controlsRef.toggleVisibility(true);
this.fullScreenTimestamp = new Date().getTime();
this.onFullScreenChange.emit({
fullScreen: this.isFullScreen,
direction: 'vertical'
});
if (this.isFullScreen && !document[screenFn.fullscreenElement]) {
setTimeout(() => {
this.videoRef[screenFn.requestFullscreen]({ navigationUI: 'auto' });
Taro__default['default'].eventCenter.trigger('__taroEnterFullScreen', {});
}, 0);
}
else {
if (!fromBrowser) {
// Note: 全屏后,"退出全屏"是浏览器按钮是浏览器内部按钮,非html按钮,点击"退出全屏"按钮是浏览器内部实现功能。此时再次调用exitFullscreen反而会报错,因此不再调用
document[screenFn.exitFullscreen]();
}
Taro__default['default'].eventCenter.trigger('__taroExitFullScreen', {});
}
};
this.toggleMute = (e) => {
e.stopPropagation();
this.videoRef.muted = !this.isMute;
this.controlsRef.toggleVisibility(true);
this.isMute = !this.isMute;
};
this.toggleDanmu = (e) => {
e.stopPropagation();
this.controlsRef.toggleVisibility(true);
this._enableDanmu = !this._enableDanmu;
};
this.src = undefined;
this.duration = undefined;
this.controls = true;
this.autoplay = false;
this.loop = false;
this.muted = false;
this.initialTime = 0;
this.poster = undefined;
this.objectFit = 'contain';
this.showProgress = true;
this.showFullscreenBtn = true;
this.showPlayBtn = true;
this.showCenterPlayBtn = true;
this.showMuteBtn = false;
this.danmuList = undefined;
this.danmuBtn = false;
this.enableDanmu = false;
this.enablePlayGesture = false;
this.enableProgressGesture = true;
this.vslideGesture = false;
this.vslideGestureInFullscreen = true;
this.nativeProps = {};
this._duration = undefined;
this._enableDanmu = false;
this.isPlaying = false;
this.isFirst = true;
this.isFullScreen = false;
this.fullScreenTimestamp = new Date().getTime();
this.isMute = false;
}
componentWillLoad() {
this._enableDanmu = this.enableDanmu;
this.isMute = this.muted;
}
componentDidLoad() {
var _a, _b;
this.init();
if (this.initialTime) {
this.videoRef.currentTime = this.initialTime;
}
// 目前只支持 danmuList 初始化弹幕列表,还未支持更新弹幕列表
(_b = (_a = this.danmuRef).sendDanmu) === null || _b === void 0 ? void 0 : _b.call(_a, this.danmuList);
if (document.addEventListener) {
document.addEventListener(screenFn.fullscreenchange, this.handleFullScreenChange);
}
if (this.videoRef && scene === 'iOS') {
// NOTE: iOS 场景下 fullscreenchange 并不会在退出全屏状态下触发,仅 webkitpresentationmodechanged 与 webkitendfullscreen 可替代
this.videoRef.addEventListener('webkitendfullscreen', this.handleFullScreenChange);
}
}
componentDidRender() {
}
disconnectedCallback() {
if (document.removeEventListener) {
document.removeEventListener(screenFn.fullscreenchange, this.handleFullScreenChange);
}
if (this.videoRef && scene === 'iOS') {
this.videoRef.removeEventListener('webkitendfullscreen', this.handleFullScreenChange);
}
}
watchEnableDanmu(newVal) {
this._enableDanmu = newVal;
}
watchSrc() {
this.init();
}
async onDocumentTouchMove(e) {
if (this.lastTouchScreenX === undefined || this.lastTouchScreenY === undefined)
return;
if (await this.controlsRef.getIsDraggingProgressBall())
return;
const gestureObj = this.analyzeGesture(e);
if (gestureObj.type === 'adjustVolume') {
this.toastVolumeRef.style.visibility = 'visible';
const nextVolume = Math.max(Math.min(this.lastVolume - gestureObj.dataY, 1), 0);
this.videoRef.volume = nextVolume;
this.toastVolumeBarRef.style.width = `${nextVolume * 100}%`;
}
else if (gestureObj.type === 'adjustProgress') {
this.isDraggingProgress = true;
this.nextPercentage = Math.max(Math.min(this.lastPercentage + (gestureObj.dataX || 0), 1), 0);
if (this.controls && this.showProgress) {
this.controlsRef.setProgressBall(this.nextPercentage);
this.controlsRef.toggleVisibility(true);
}
const duration = this.duration || this._duration;
this.toastProgressTitleRef.innerHTML = `${formatTime(this.nextPercentage * duration)} / ${formatTime(duration)}`;
this.toastProgressRef.style.visibility = 'visible';
}
}
onDocumentTouchEnd() {
var _a;
if (this.gestureType === 'adjustVolume') {
this.toastVolumeRef.style.visibility = 'hidden';
}
else if (this.gestureType === 'adjustProgress') {
this.toastProgressRef.style.visibility = 'hidden';
}
if (this.isDraggingProgress) {
this.isDraggingProgress = false;
this.seek(this.nextPercentage * ((_a = this.duration) !== null && _a !== void 0 ? _a : this._duration));
}
this.gestureType = 'none';
this.lastTouchScreenX = undefined;
this.lastTouchScreenY = undefined;
}
async getHlsObject() {
// Note: H5 端专属方法,获取 HLS 实例 fix #11894
return this.hls;
}
/** 播放视频 */
async play() {
this._play();
}
/** 暂停视频 */
async pause() {
this._pause();
}
/** 停止视频 */
async stop() {
this._stop();
}
/** 跳转到指定位置 */
async seek(position) {
this._seek(position);
}
/** 进入全屏。若有自定义内容需在全屏时展示,需将内容节点放置到 video 节点内。 */
async requestFullScreen() {
this.toggleFullScreen(true);
}
/** 退出全屏 */
async exitFullScreen() {
this.toggleFullScreen(false);
}
render() {
const { controls, autoplay, loop, muted, poster, objectFit, isFirst, isMute, isFullScreen, showCenterPlayBtn, isPlaying, _enableDanmu, showMuteBtn, danmuBtn, showFullscreenBtn, nativeProps } = this;
const duration = this.duration || this._duration;
const durationTime = formatTime(duration);
return (hAsync(Host, { class: classnames('taro-video-container', {
'taro-video-type-fullscreen': isFullScreen
}), onTouchStart: this.onTouchStartContainer, onClick: this.onClickContainer }, hAsync("video", Object.assign({ class: 'taro-video-video', style: {
'object-fit': objectFit
}, ref: dom => {
if (dom) {
this.videoRef = dom;
}
}, autoplay: autoplay, loop: loop, muted: muted, poster: controls ? poster : undefined, playsinline: true, "webkit-playsinline": true, onPlay: this.handlePlay, onPause: this.handlePause, onEnded: this.handleEnded, onTimeUpdate: this.handleTimeUpdate, onError: this.handleError, onDurationChange: this.handleDurationChange, onProgress: this.handleProgress, onLoadedMetaData: this.handleLoadedMetaData }, nativeProps), "\u6682\u65F6\u4E0D\u652F\u6301\u64AD\u653E\u8BE5\u89C6\u9891"), hAsync("taro-video-danmu", { ref: dom => {
if (dom) {
this.danmuRef = dom;
}
}, enable: _enableDanmu }), isFirst && showCenterPlayBtn && !isPlaying && (hAsync("div", { class: 'taro-video-cover' }, hAsync("div", { class: 'taro-video-cover-play-button', onClick: () => this.play() }), hAsync("p", { class: 'taro-video-cover-duration' }, durationTime))), hAsync("taro-video-control", { ref: dom => {
if (dom) {
this.controlsRef = dom;
}
}, controls: controls, currentTime: this.currentTime, duration: duration, isPlaying: this.isPlaying, pauseFunc: this._pause, playFunc: this._play, seekFunc: this._seek, showPlayBtn: this.showPlayBtn, showProgress: this.showProgress }, showMuteBtn && (hAsync("div", { class: classnames('taro-video-mute', {
'taro-video-type-mute': isMute
}), onClick: this.toggleMute })), danmuBtn && (hAsync("div", { class: classnames('taro-video-danmu-button', {
'taro-video-danmu-button-active': _enableDanmu
}), onClick: this.toggleDanmu }, "\u5F39\u5E55")), showFullscreenBtn && (hAsync("div", { class: classnames('taro-video-fullscreen', {
'taro-video-type-fullscreen': isFullScreen
}), onClick: this.onClickFullScreenBtn }))), hAsync("div", { class: 'taro-video-toast taro-video-toast-volume', ref: dom => {
if (dom) {
this.toastVolumeRef = dom;
}
} }, hAsync("div", { class: 'taro-video-toast-title' }, "\u97F3\u91CF"), hAsync("div", { class: 'taro-video-toast-icon' }), hAsync("div", { class: 'taro-video-toast-value' }, hAsync("div", { class: 'taro-video-toast-value-content', ref: dom => {
if (dom) {
this.toastVolumeBarRef = dom;
}
} }, hAsync("div", { class: 'taro-video-toast-volume-grids' }, Array(10).fill(1).map(() => (hAsync("div", { class: 'taro-video-toast-volume-grids-item' }))))))), hAsync("div", { class: 'taro-video-toast taro-video-toast-progress', ref: dom => {
if (dom) {
this.toastProgressRef = dom;
}
} }, hAsync("div", { class: 'taro-video-toast-title', ref: dom => {
if (dom) {
this.toastProgressTitleRef = dom;
}
} }))));
}
get el() { return getElement(this); }
static get watchers() { return {
"enableDanmu": ["watchEnableDanmu"],
"src": ["watchSrc"]
}; }
static get style() { return indexCss$2; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-video-core",
"$members$": {
"src": [1],
"duration": [2],
"controls": [4],
"autoplay": [4],
"loop": [4],
"muted": [4],
"initialTime": [2, "initial-time"],
"poster": [1],
"objectFit": [1, "object-fit"],
"showProgress": [4, "show-progress"],
"showFullscreenBtn": [4, "show-fullscreen-btn"],
"showPlayBtn": [4, "show-play-btn"],
"showCenterPlayBtn": [4, "show-center-play-btn"],
"showMuteBtn": [4, "show-mute-btn"],
"danmuList": [16],
"danmuBtn": [4, "danmu-btn"],
"enableDanmu": [4, "enable-danmu"],
"enablePlayGesture": [4, "enable-play-gesture"],
"enableProgressGesture": [4, "enable-progress-gesture"],
"vslideGesture": [4, "vslide-gesture"],
"vslideGestureInFullscreen": [4, "vslide-gesture-in-fullscreen"],
"nativeProps": [16],
"_duration": [32],
"_enableDanmu": [32],
"isPlaying": [32],
"isFirst": [32],
"isFullScreen": [32],
"fullScreenTimestamp": [32],
"isMute": [32],
"getHlsObject": [64],
"play": [64],
"pause": [64],
"stop": [64],
"seek": [64],
"requestFullScreen": [64],
"exitFullScreen": [64]
},
"$listeners$": [[5, "touchmove", "onDocumentTouchMove"], [5, "touchend", "onDocumentTouchEnd"], [5, "touchcancel", "onDocumentTouchEnd"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class VideoControl {
constructor(hostRef) {
registerInstance(this, hostRef);
this.visible = false;
this.isDraggingProgressBall = false;
this.percentage = 0;
this.progressDimensions = {
left: 0,
width: 0
};
this.calcPercentage = (pageX) => {
let pos = pageX - this.progressDimensions.left;
pos = Math.max(pos, 0);
pos = Math.min(pos, this.progressDimensions.width);
return pos / this.progressDimensions.width;
};
this.onDragProgressBallStart = () => {
this.isDraggingProgressBall = true;
this.hideControlsTimer && clearTimeout(this.hideControlsTimer);
};
this.onClickProgress = (e) => {
e.stopPropagation();
const percentage = this.calcPercentage(e.pageX);
this.seekFunc(percentage * this.duration);
this.toggleVisibility(true);
};
this.controls = undefined;
this.currentTime = undefined;
this.duration = undefined;
this.isPlaying = undefined;
this.pauseFunc = undefined;
this.playFunc = undefined;
this.seekFunc = undefined;
this.showPlayBtn = undefined;
this.showProgress = undefined;
}
onDocumentTouchMove(e) {
if (!this.isDraggingProgressBall)
return;
const touchX = e.touches[0].pageX;
this.percentage = this.calcPercentage(touchX);
this.setProgressBall(this.percentage);
this.setCurrentTime(this.percentage * this.duration);
}
onDocumentTouchEnd() {
if (!this.isDraggingProgressBall)
return;
this.isDraggingProgressBall = false;
this.seekFunc(this.percentage * this.duration);
this.toggleVisibility(true);
}
async setProgressBall(percentage) {
if (this.progressBallRef) {
this.progressBallRef.style.left = `${percentage * 100}%`;
}
}
async toggleVisibility(nextVisible) {
if (!this.controls) {
this.visible = false;
return;
}
const visible = nextVisible === undefined ? !this.visible : nextVisible;
if (visible) {
this.hideControlsTimer && clearTimeout(this.hideControlsTimer);
if (this.isPlaying) {
this.hideControlsTimer = setTimeout(() => {
this.toggleVisibility(false);
}, 2000);
}
this.el.style.visibility = 'visible';
}
else {
this.el.style.visibility = 'hidden';
}
this.visible = !!visible;
}
async getIsDraggingProgressBall() {
return this.isDraggingProgressBall;
}
async setCurrentTime(time) {
if (!this.currentTimeRef)
return;
this.currentTimeRef.innerHTML = formatTime(time);
}
render() {
const { controls, currentTime, duration, isPlaying, pauseFunc, playFunc, showPlayBtn, showProgress } = this;
if (!controls) {
return (hAsync(Host, { class: 'taro-video-bar taro-video-bar-full', style: { display: 'none' } }, hAsync("slot", null)));
}
const formattedDuration = formatTime(duration);
let playBtn;
if (!showPlayBtn) {
playBtn = null;
}
else if (isPlaying) {
playBtn = hAsync("div", { class: 'taro-video-control-button taro-video-control-button-pause', onClick: pauseFunc });
}
else {
playBtn = hAsync("div", { class: 'taro-video-control-button taro-video-control-button-play', onClick: playFunc });
}
return (hAsync(Host, { class: 'taro-video-bar taro-video-bar-full' }, hAsync("div", { class: 'taro-video-controls' }, playBtn, showProgress && (hAsync("div", { class: 'taro-video-current-time', ref: dom => (this.currentTimeRef = dom) }, formatTime(currentTime))), showProgress && (hAsync("div", { class: 'taro-video-progress-container', onClick: this.onClickProgress }, hAsync("div", { class: 'taro-video-progress', ref: ref => {
if (!ref)
return;
const rect = ref.getBoundingClientRect();
this.progressDimensions.left = rect.left;
this.progressDimensions.width = rect.width;
} }, hAsync("div", { class: 'taro-video-progress-buffered', style: { width: '100%' } }), hAsync("div", { class: 'taro-video-ball', ref: dom => (this.progressBallRef = dom), onTouchStart: this.onDragProgressBallStart, style: {
left: `${formattedDuration ? (this.currentTime / duration) * 100 : 0}%`
} }, hAsync("div", { class: 'taro-video-inner' }))))), showProgress && hAsync("div", { class: 'taro-video-duration' }, formattedDuration)), hAsync("slot", null)));
}
get el() { return getElement(this); }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-video-control",
"$members$": {
"controls": [4],
"currentTime": [2, "current-time"],
"duration": [2],
"isPlaying": [4, "is-playing"],
"pauseFunc": [16],
"playFunc": [16],
"seekFunc": [16],
"showPlayBtn": [4, "show-play-btn"],
"showProgress": [4, "show-progress"],
"setProgressBall": [64],
"toggleVisibility": [64],
"getIsDraggingProgressBall": [64],
"setCurrentTime": [64]
},
"$listeners$": [[5, "touchmove", "onDocumentTouchMove"], [5, "touchend", "onDocumentTouchEnd"], [5, "touchcancel", "onDocumentTouchEnd"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class VideoDanmu {
constructor(hostRef) {
registerInstance(this, hostRef);
this.list = [];
this.danmuElList = [];
this.currentTime = 0;
this.enable = false;
this.danmuList = [];
}
ensureProperties(danmu) {
const clonedDanmu = Object.assign({}, danmu);
if (!('time' in danmu)) {
clonedDanmu.time = this.currentTime;
}
clonedDanmu.key = Math.random();
clonedDanmu.bottom = `${Math.random() * 90 + 5}%`;
return clonedDanmu;
}
async sendDanmu(danmuList = []) {
if (Array.isArray(danmuList)) {
this.list = [
...this.list,
...danmuList.map(danmu => this.ensureProperties(danmu))
];
}
else {
const danmu = danmuList;
this.list = [
...this.list,
Object.assign({}, this.ensureProperties(danmu))
];
}
}
async tick(currentTime) {
this.currentTime = currentTime;
if (!this.enable)
return;
const danmuList = this.list;
/**
* @todo 这个判断对拖拽进度的处理不严谨
*/
const newDanmuList = danmuList.filter(({ time }) => {
return currentTime - time < 4 && currentTime > time;
});
let shouldUpdate = false;
const oldDanmuList = this.danmuList;
if (newDanmuList.length !== oldDanmuList.length) {
shouldUpdate = true;
}
else {
shouldUpdate = newDanmuList.some(({ key }) => {
return oldDanmuList.every((danmu) => {
return key !== danmu.key;
});
});
}
if (shouldUpdate) {
this.danmuList = newDanmuList;
}
}
componentDidUpdate() {
requestAnimationFrame(() => {
setTimeout(() => {
const danmuElList = this.danmuElList.splice(0);
danmuElList.forEach(danmu => {
danmu.style.left = '0';
danmu.style.webkitTransform = 'translateX(-100%)';
danmu.style.transform = 'translateX(-100%)';
});
});
});
}
render() {
if (!this.enable)
return '';
return (hAsync(Host, { class: 'taro-video-danmu' }, this.danmuList.map(({ text, color, bottom, key }) => (hAsync("p", { class: 'taro-video-danmu-item', key: key, style: {
color,
bottom
}, ref: ref => {
if (ref) {
this.danmuElList.push(ref);
}
} }, text)))));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-video-danmu",
"$members$": {
"enable": [4],
"danmuList": [32],
"sendDanmu": [64],
"tick": [64]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss$1 = "taro-view-core{display:block}";
class View {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onLongPress = createEvent(this, "longpress", 7);
this.startTime = 0;
this.animation = undefined;
this.hoverClass = undefined;
this.hoverStartTime = 50;
this.hoverStayTime = 400;
this.hover = false;
this.touch = false;
}
onTouchStart() {
if (this.hoverClass) {
this.touch = true;
setTimeout(() => {
if (this.touch) {
this.hover = true;
}
}, this.hoverStartTime);
}
this.timeoutEvent = setTimeout(() => {
this.onLongPress.emit();
}, 350);
this.startTime = Date.now();
}
onTouchMove() {
clearTimeout(this.timeoutEvent);
}
onTouchEnd() {
const spanTime = Date.now() - this.startTime;
if (spanTime < 350) {
clearTimeout(this.timeoutEvent);
}
if (this.hoverClass) {
this.touch = false;
setTimeout(() => {
if (!this.touch) {
this.hover = false;
}
}, this.hoverStayTime);
}
}
componentDidRender() {
handleStencilNodes(this.el);
}
render() {
const cls = classnames({
[`${this.hoverClass}`]: this.hover
});
let attr = {};
if (!!this.animation) {
attr['animation'] = this.animation;
attr['data-animation'] = this.animation;
}
return (hAsync(Host, Object.assign({ class: cls }, attr), hAsync("slot", null)));
}
get el() { return getElement(this); }
static get style() { return indexCss$1; }
static get cmpMeta() { return {
"$flags$": 4,
"$tagName$": "taro-view-core",
"$members$": {
"animation": [1],
"hoverClass": [1, "hover-class"],
"hoverStartTime": [2, "hover-start-time"],
"hoverStayTime": [2, "hover-stay-time"],
"hover": [32],
"touch": [32]
},
"$listeners$": [[1, "touchstart", "onTouchStart"], [1, "touchmove", "onTouchMove"], [1, "touchend", "onTouchEnd"]],
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
class VoipRoom {
constructor(hostRef) {
registerInstance(this, hostRef);
}
componentDidLoad() {
notSupport('VoipRoom', this);
}
render() {
return (hAsync(Host, null));
}
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-voip-room-core",
"$members$": undefined,
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
const indexCss = "iframe{border:none}.taro-webview{z-index:999;width:100%;height:100%;position:fixed;top:0;bottom:0}";
const hasWindow = typeof window !== 'undefined' && typeof window.addEventListener === 'function';
const webViewInstances = new Set();
let messageListenerAttached = false;
function handleWindowMessage(event) {
webViewInstances.forEach(instance => {
instance.handleMessage(event);
});
}
function attachGlobalMessageListener() {
if (!hasWindow || messageListenerAttached)
return;
window.addEventListener('message', handleWindowMessage);
messageListenerAttached = true;
}
function detachGlobalMessageListenerIfNeeded() {
if (!hasWindow || !messageListenerAttached)
return;
if (webViewInstances.size > 0)
return;
window.removeEventListener('message', handleWindowMessage);
messageListenerAttached = false;
}
class WebView {
constructor(hostRef) {
registerInstance(this, hostRef);
this.onLoad = createEvent(this, "load", 7);
this.onError = createEvent(this, "error", 7);
this.onMessage = createEvent(this, "message", 7);
this.src = undefined;
}
componentDidLoad() {
webViewInstances.add(this);
attachGlobalMessageListener();
}
disconnectedCallback() {
webViewInstances.delete(this);
detachGlobalMessageListenerIfNeeded();
}
handleMessage(event) {
var _a;
const iframeWindow = (_a = this.iframe) === null || _a === void 0 ? void 0 : _a.contentWindow;
if (!iframeWindow || event.source !== iframeWindow)
return;
const { src, onMessage } = this;
if (!onMessage)
return;
onMessage.emit({
data: event.data,
origin: event.origin,
src
});
}
render() {
const { src, onLoad, onError } = this;
return (hAsync("iframe", { ref: el => {
this.iframe = el;
}, class: 'taro-webview', onLoad: (e) => {
e.stopPropagation();
onLoad.emit({ src });
}, onError: (e) => {
e.stopPropagation();
onError.emit({ src });
}, src: src }));
}
static get style() { return indexCss; }
static get cmpMeta() { return {
"$flags$": 0,
"$tagName$": "taro-web-view-core",
"$members$": {
"src": [1]
},
"$listeners$": undefined,
"$lazyBundleId$": "-",
"$attrsToReflect$": []
}; }
}
registerComponents([
Ad,
AdCustom,
AnimationVideo,
AnimationView,
ArCamera,
Audio,
AwemeData,
Block,
Button,
Camera,
Canvas,
ChannelLive,
ChannelVideo,
Checkbox,
CheckboxGroup,
CommentDetail,
CommentList,
ContactButton,
CoverImage,
CoverView,
CustomWrapper,
DoubleTapGestureHandler,
DraggableSheet,
Editor,
FollowSwan,
ForcePressGestureHandler,
Form,
FunctionalPageNavigator,
GridBuilder,
GridView,
HorizontalDragGestureHandler,
Icon,
Image$1,
InlinePaymentPanel,
Input,
KeyboardAccessory,
Label,
Lifestyle,
Like,
ListBuilder,
ListView,
LivePlayer,
LivePusher,
Login,
LongPressGestureHandler,
Lottie,
Map$1,
MatchMedia,
MovableArea,
MovableView,
NativeSlot,
NavigationBar,
Navigator,
NestedScrollBody,
NestedScrollHeader,
OfficialAccount,
OpenContainer,
OpenData,
OpenEmbeddedAtomicservice,
PageContainer,
PageMeta,
PanGestureHandler,
Picker,
PickerView,
PickerViewColumn,
Progress,
PullToRefresh,
Radio,
RadioGroup,
RichText,
RootPortal,
RtcRoom,
RtcRoomItem,
ScaleGestureHandler,
Script,
ScrollView,
ShareElement,
Slider,
Slot,
Snapshot,
Span,
StickyHeader,
StickySection,
Swiper,
SwiperItem,
Switch,
TabItem,
Tabbar,
Tabs,
TapGestureHandler,
TaroPickerGroup,
Text,
Textarea,
VerticalDragGestureHandler,
Video,
VideoControl,
VideoDanmu,
View,
VoipRoom,
WebView,
]);
exports.hydrateApp = hydrateApp;
/*hydrateAppClosure end*/
hydrateApp(window, $stencilHydrateOpts, $stencilHydrateResults, $stencilAfterHydrate, $stencilHydrateResolve);
}
hydrateAppClosure($stencilWindow);
}
function createWindowFromHtml(e, t) {
let r = templateWindows.get(t);
return null == r && (r = new MockWindow(e), templateWindows.set(t, r)), cloneWindow(r);
}
function inspectElement(e, t, r) {
const s = t.children;
for (let t = 0, n = s.length; t < n; t++) {
const n = s[t], o = n.nodeName.toLowerCase();
if (o.includes("-")) {
const t = e.components.find((e => e.tag === o));
null != t && (t.count++, r > t.depth && (t.depth = r));
} else switch (o) {
case "a":
const t = collectAttributes(n);
t.href = n.href, "string" == typeof t.href && (e.anchors.some((e => e.href === t.href)) || e.anchors.push(t));
break;
case "img":
const r = collectAttributes(n);
r.src = n.src, "string" == typeof r.src && (e.imgs.some((e => e.src === r.src)) || e.imgs.push(r));
break;
case "link":
const s = collectAttributes(n);
s.href = n.href, "string" == typeof s.rel && "stylesheet" === s.rel.toLowerCase() && "string" == typeof s.href && (e.styles.some((e => e.link === s.href)) || (delete s.rel,
delete s.type, e.styles.push(s)));
break;
case "script":
const o = collectAttributes(n);
if (n.hasAttribute("src")) o.src = n.src, "string" == typeof o.src && (e.scripts.some((e => e.src === o.src)) || e.scripts.push(o)); else {
const t = n.getAttribute("data-stencil-static");
t && e.staticData.push({
id: t,
type: n.getAttribute("type"),
content: n.textContent
});
}
}
inspectElement(e, n, ++r);
}
}
function collectAttributes(e) {
const t = {}, r = e.attributes;
for (let e = 0, s = r.length; e < s; e++) {
const s = r.item(e), n = s.nodeName.toLowerCase();
if (SKIP_ATTRS.has(n)) continue;
const o = s.nodeValue;
"class" === n && "" === o || (t[n] = o);
}
return t;
}
function patchDomImplementation(e, t) {
let r;
if (null != e.defaultView ? (t.destroyWindow = !0, patchWindow(e.defaultView), r = e.defaultView) : (t.destroyWindow = !0,
t.destroyDocument = !1, r = new MockWindow(!1)), r.document !== e && (r.document = e),
e.defaultView !== r && (e.defaultView = r), "function" != typeof e.documentElement.constructor.prototype.getRootNode && (e.createElement("unknown-element").constructor.prototype.getRootNode = getRootNode),
"function" == typeof e.createEvent) {
const t = e.createEvent("CustomEvent").constructor;
r.CustomEvent !== t && (r.CustomEvent = t);
}
try {
e.baseURI;
} catch (t) {
Object.defineProperty(e, "baseURI", {
get() {
const t = e.querySelector("base[href]");
return t ? new URL(t.getAttribute("href"), r.location.href).href : r.location.href;
}
});
}
return r;
}
function getRootNode(e) {
const t = null != e && !0 === e.composed;
let r = this;
for (;null != r.parentNode; ) r = r.parentNode, !0 === t && null == r.parentNode && null != r.host && (r = r.host);
return r;
}
function normalizeHydrateOptions(e) {
const t = Object.assign({
serializeToHtml: !1,
destroyWindow: !1,
destroyDocument: !1
}, e || {});
return "boolean" != typeof t.clientHydrateAnnotations && (t.clientHydrateAnnotations = !0),
"boolean" != typeof t.constrainTimeouts && (t.constrainTimeouts = !0), "number" != typeof t.maxHydrateCount && (t.maxHydrateCount = 300),
"boolean" != typeof t.runtimeLogging && (t.runtimeLogging = !1), "number" != typeof t.timeout && (t.timeout = 15e3),
Array.isArray(t.excludeComponents) ? t.excludeComponents = t.excludeComponents.filter(filterValidTags).map(mapValidTags) : t.excludeComponents = [],
Array.isArray(t.staticComponents) ? t.staticComponents = t.staticComponents.filter(filterValidTags).map(mapValidTags) : t.staticComponents = [],
t;
}
function filterValidTags(e) {
return "string" == typeof e && e.includes("-");
}
function mapValidTags(e) {
return e.trim().toLowerCase();
}
function generateHydrateResults(e) {
"string" != typeof e.url && (e.url = "https://hydrate.stenciljs.com/"), "string" != typeof e.buildId && (e.buildId = createHydrateBuildId());
const t = {
buildId: e.buildId,
diagnostics: [],
url: e.url,
host: null,
hostname: null,
href: null,
pathname: null,
port: null,
search: null,
hash: null,
html: null,
httpStatus: null,
hydratedCount: 0,
anchors: [],
components: [],
imgs: [],
scripts: [],
staticData: [],
styles: [],
title: null
};
try {
const r = new URL(e.url, "https://hydrate.stenciljs.com/");
t.url = r.href, t.host = r.host, t.hostname = r.hostname, t.href = r.href, t.port = r.port,
t.pathname = r.pathname, t.search = r.search, t.hash = r.hash;
} catch (e) {
renderCatchError(t, e);
}
return t;
}
function renderBuildDiagnostic(e, t, r, s) {
const n = {
level: t,
type: "build",
header: r,
messageText: s,
relFilePath: null,
absFilePath: null,
lines: []
};
return e.pathname ? "/" !== e.pathname && (n.header += ": " + e.pathname) : e.url && (n.header += ": " + e.url),
e.diagnostics.push(n), n;
}
function renderBuildError(e, t) {
return renderBuildDiagnostic(e, "error", "Hydrate Error", t);
}
function renderCatchError(e, t) {
const r = renderBuildError(e, null);
return null != t && (null != t.stack ? r.messageText = t.stack.toString() : null != t.message ? r.messageText = t.message.toString() : r.messageText = t.toString()),
r;
}
function runtimeLog(e, t, r) {
global.console[t].apply(global.console, [ `[ ${e} ${t} ] `, ...r ]);
}
function renderToString(e, t) {
const r = normalizeHydrateOptions(t);
return r.serializeToHtml = !0, new Promise((t => {
let s;
const n = generateHydrateResults(r);
if (hasError(n.diagnostics)) t(n); else if ("string" == typeof e) try {
r.destroyWindow = !0, r.destroyDocument = !0, s = new MockWindow(e), render(s, r, n, t);
} catch (e) {
s && s.close && s.close(), s = null, renderCatchError(n, e), t(n);
} else if (isValidDocument(e)) try {
r.destroyDocument = !1, s = patchDomImplementation(e, r), render(s, r, n, t);
} catch (e) {
s && s.close && s.close(), s = null, renderCatchError(n, e), t(n);
} else renderBuildError(n, 'Invalid html or document. Must be either a valid "html" string, or DOM "document".'),
t(n);
}));
}
function hydrateDocument(e, t) {
const r = normalizeHydrateOptions(t);
return r.serializeToHtml = !1, new Promise((t => {
let s;
const n = generateHydrateResults(r);
if (hasError(n.diagnostics)) t(n); else if ("string" == typeof e) try {
r.destroyWindow = !0, r.destroyDocument = !0, s = new MockWindow(e), render(s, r, n, t);
} catch (e) {
s && s.close && s.close(), s = null, renderCatchError(n, e), t(n);
} else if (isValidDocument(e)) try {
r.destroyDocument = !1, s = patchDomImplementation(e, r), render(s, r, n, t);
} catch (e) {
s && s.close && s.close(), s = null, renderCatchError(n, e), t(n);
} else renderBuildError(n, 'Invalid html or document. Must be either a valid "html" string, or DOM "document".'),
t(n);
}));
}
function render(e, t, r, s) {
if (process.__stencilErrors || (process.__stencilErrors = !0, process.on("unhandledRejection", (e => {
console.log("unhandledRejection", e);
}))), function n(e, t, r, s) {
try {
e.location.href = r.url;
} catch (e) {
renderCatchError(s, e);
}
if ("string" == typeof r.userAgent) try {
e.navigator.userAgent = r.userAgent;
} catch (e) {}
if ("string" == typeof r.cookie) try {
t.cookie = r.cookie;
} catch (e) {}
if ("string" == typeof r.referrer) try {
t.referrer = r.referrer;
} catch (e) {}
if ("string" == typeof r.direction) try {
t.documentElement.setAttribute("dir", r.direction);
} catch (e) {}
if ("string" == typeof r.language) try {
t.documentElement.setAttribute("lang", r.language);
} catch (e) {}
if ("string" == typeof r.buildId) try {
t.documentElement.setAttribute("data-stencil-build", r.buildId);
} catch (e) {}
try {
e.customElements = null;
} catch (e) {}
return r.constrainTimeouts && constrainTimeouts(e), function n(e, t, r) {
try {
const s = e.location.pathname;
e.console.error = (...e) => {
const n = e.reduce(((e, t) => {
if (t) {
if (null != t.stack) return e + " " + String(t.stack);
if (null != t.message) return e + " " + String(t.message);
}
return String(t);
}), "").trim();
"" !== n && (renderCatchError(r, n), t.runtimeLogging && runtimeLog(s, "error", [ n ]));
}, e.console.debug = (...e) => {
renderBuildDiagnostic(r, "debug", "Hydrate Debug", [ ...e ].join(", ")), t.runtimeLogging && runtimeLog(s, "debug", e);
}, t.runtimeLogging && [ "log", "warn", "assert", "info", "trace" ].forEach((t => {
e.console[t] = (...e) => {
runtimeLog(s, t, e);
};
}));
} catch (e) {
renderCatchError(r, e);
}
}(e, r, s), e;
}(e, e.document, t, r), "function" == typeof t.beforeHydrate) try {
const n = t.beforeHydrate(e.document);
isPromise(n) ? n.then((() => {
hydrateFactory(e, t, r, afterHydrate, s);
})) : hydrateFactory(e, t, r, afterHydrate, s);
} catch (n) {
renderCatchError(r, n), finalizeHydrate(e, e.document, t, r, s);
} else hydrateFactory(e, t, r, afterHydrate, s);
}
function afterHydrate(e, t, r, s) {
if ("function" == typeof t.afterHydrate) try {
const n = t.afterHydrate(e.document);
isPromise(n) ? n.then((() => {
finalizeHydrate(e, e.document, t, r, s);
})) : finalizeHydrate(e, e.document, t, r, s);
} catch (n) {
renderCatchError(r, n), finalizeHydrate(e, e.document, t, r, s);
} else finalizeHydrate(e, e.document, t, r, s);
}
function finalizeHydrate(e, t, r, s, n) {
try {
if (inspectElement(s, t.documentElement, 0), !1 !== r.removeUnusedStyles) try {
((e, t) => {
try {
const r = e.head.querySelectorAll("style[data-styles]"), s = r.length;
if (s > 0) {
const n = (e => {
const t = {
attrs: new Set,
classNames: new Set,
ids: new Set,
tags: new Set
};
return collectUsedSelectors(t, e), t;
})(e.documentElement);
for (let e = 0; e < s; e++) removeUnusedStyleText(n, t, r[e]);
}
} catch (e) {
((e, t, r) => {
const s = {
level: "error",
type: "build",
header: "Build Error",
messageText: "build error",
relFilePath: null,
absFilePath: null,
lines: []
};
null != t && (null != t.stack ? s.messageText = t.stack.toString() : null != t.message ? s.messageText = t.message.length ? t.message : "UNKNOWN ERROR" : s.messageText = t.toString()),
null == e || shouldIgnoreError(s.messageText) || e.push(s);
})(t, e);
}
})(t, s.diagnostics);
} catch (e) {
renderCatchError(s, e);
}
if ("string" == typeof r.title) try {
t.title = r.title;
} catch (e) {
renderCatchError(s, e);
}
s.title = t.title, r.removeScripts && removeScripts(t.documentElement);
try {
((e, t) => {
let r = e.head.querySelector('link[rel="canonical"]');
"string" == typeof t ? (null == r && (r = e.createElement("link"), r.setAttribute("rel", "canonical"),
e.head.appendChild(r)), r.setAttribute("href", t)) : null != r && (r.getAttribute("href") || r.parentNode.removeChild(r));
})(t, r.canonicalUrl);
} catch (e) {
renderCatchError(s, e);
}
try {
(e => {
const t = e.head;
let r = t.querySelector("meta[charset]");
null == r ? (r = e.createElement("meta"), r.setAttribute("charset", "utf-8")) : r.remove(),
t.insertBefore(r, t.firstChild);
})(t);
} catch (e) {}
hasError(s.diagnostics) || (s.httpStatus = 200);
try {
const e = t.head.querySelector('meta[http-equiv="status"]');
if (null != e) {
const t = e.getAttribute("content");
t && t.length > 0 && (s.httpStatus = parseInt(t, 10));
}
} catch (e) {}
r.clientHydrateAnnotations && t.documentElement.classList.add("hydrated"), r.serializeToHtml && (s.html = serializeDocumentToString(t, r));
} catch (e) {
renderCatchError(s, e);
}
if (r.destroyWindow) try {
r.destroyDocument || (e.document = null, t.defaultView = null), e.close && e.close();
} catch (e) {
renderCatchError(s, e);
}
n(s);
}
function serializeDocumentToString(e, t) {
return serializeNodeToHtml(e, {
approximateLineWidth: t.approximateLineWidth,
outerHtml: !1,
prettyHtml: t.prettyHtml,
removeAttributeQuotes: t.removeAttributeQuotes,
removeBooleanAttributeQuotes: t.removeBooleanAttributeQuotes,
removeEmptyAttributes: t.removeEmptyAttributes,
removeHtmlComments: t.removeHtmlComments,
serializeShadowRoot: !1
});
}
function isValidDocument(e) {
return null != e && 9 === e.nodeType && null != e.documentElement && 1 === e.documentElement.nodeType && null != e.body && 1 === e.body.nodeType;
}
function removeScripts(e) {
const t = e.children;
for (let e = t.length - 1; e >= 0; e--) {
const r = t[e];
removeScripts(r), ("SCRIPT" === r.nodeName || "LINK" === r.nodeName && "modulepreload" === r.getAttribute("rel")) && r.remove();
}
}
const templateWindows = new Map, isPromise = e => !!e && ("object" == typeof e || "function" == typeof e) && "function" == typeof e.then, hasError = e => null != e && 0 !== e.length && e.some((e => "error" === e.level && "runtime" !== e.type)), shouldIgnoreError = e => e === TASK_CANCELED_MSG, TASK_CANCELED_MSG = "task canceled", parseCss = (e, t) => {
let r = 1, s = 1;
const n = [], o = e => {
const t = e.match(/\n/g);
t && (r += t.length);
const n = e.lastIndexOf("\n");
s = ~n ? e.length - n : s + e.length;
}, i = () => {
const e = {
line: r,
column: s
};
return t => (t.position = new z(e), m(), t);
}, a = o => {
const i = e.split("\n"), a = {
level: "error",
type: "css",
language: "css",
header: "CSS Parse",
messageText: o,
absFilePath: t,
lines: [ {
lineIndex: r - 1,
lineNumber: r,
errorCharStart: s,
text: e[r - 1]
} ]
};
if (r > 1) {
const t = {
lineIndex: r - 1,
lineNumber: r - 1,
text: e[r - 2],
errorCharStart: -1,
errorLength: -1
};
a.lines.unshift(t);
}
if (r + 2 < i.length) {
const e = {
lineIndex: r,
lineNumber: r + 1,
text: i[r],
errorCharStart: -1,
errorLength: -1
};
a.lines.push(e);
}
return n.push(a), null;
}, l = () => u(/^{\s*/), c = () => u(/^}/), u = t => {
const r = t.exec(e);
if (!r) return;
const s = r[0];
return o(s), e = e.slice(s.length), r;
}, d = () => {
let t;
const r = [];
for (m(), h(r); e.length && "}" !== e.charAt(0) && (t = w() || A()); ) r.push(t),
h(r);
return r;
}, m = () => u(/^\s*/), h = e => {
let t;
for (e = e || []; t = p(); ) e.push(t);
return e;
}, p = () => {
const t = i();
if ("/" !== e.charAt(0) || "*" !== e.charAt(1)) return null;
let r = 2;
for (;"" !== e.charAt(r) && ("*" !== e.charAt(r) || "/" !== e.charAt(r + 1)); ) ++r;
if (r += 2, "" === e.charAt(r - 1)) return a("End of comment missing");
const n = e.slice(2, r - 2);
return s += 2, o(n), e = e.slice(r), s += 2, t({
type: 1,
comment: n
});
}, f = () => {
const e = u(/^([^{]+)/);
return e ? trim(e[0]).replace(/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*\/+/g, "").replace(/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'/g, (function(e) {
return e.replace(/,/g, "");
})).split(/\s*(?![^(]*\)),\s*/).map((function(e) {
return e.replace(/\u200C/g, ",");
})) : null;
}, g = () => {
const e = i();
let t = u(/^(\*?[-#\/\*\\\w]+(\[[0-9a-z_-]+\])?)\s*/);
if (!t) return null;
if (t = trim(t[0]), !u(/^:\s*/)) return a("property missing ':'");
const r = u(/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^\)]*?\)|[^};])+)/), s = e({
type: 4,
property: t.replace(commentre, ""),
value: r ? trim(r[0]).replace(commentre, "") : ""
});
return u(/^[;\s]*/), s;
}, y = () => {
const e = [];
if (!l()) return a("missing '{'");
let t;
for (h(e); t = g(); ) e.push(t), h(e);
return c() ? e : a("missing '}'");
}, C = () => {
let e;
const t = [], r = i();
for (;e = u(/^((\d+\.\d+|\.\d+|\d+)%?|[a-z]+)\s*/); ) t.push(e[1]), u(/^,\s*/);
return t.length ? r({
type: 9,
values: t,
declarations: y()
}) : null;
}, S = (e, t) => {
const r = new RegExp("^@" + e + "\\s*([^;]+);");
return () => {
const s = i(), n = u(r);
if (!n) return null;
const o = {
type: t
};
return o[e] = n[1].trim(), s(o);
};
}, E = S("import", 7), b = S("charset", 0), T = S("namespace", 11), w = () => "@" !== e[0] ? null : (() => {
const e = i();
let t = u(/^@([-\w]+)?keyframes\s*/);
if (!t) return null;
const r = t[1];
if (t = u(/^([-\w]+)\s*/), !t) return a("@keyframes missing name");
const s = t[1];
if (!l()) return a("@keyframes missing '{'");
let n, o = h();
for (;n = C(); ) o.push(n), o = o.concat(h());
return c() ? e({
type: 8,
name: s,
vendor: r,
keyframes: o
}) : a("@keyframes missing '}'");
})() || (() => {
const e = i(), t = u(/^@media *([^{]+)/);
if (!t) return null;
const r = trim(t[1]);
if (!l()) return a("@media missing '{'");
const s = h().concat(d());
return c() ? e({
type: 10,
media: r,
rules: s
}) : a("@media missing '}'");
})() || (() => {
const e = i(), t = u(/^@custom-media\s+(--[^\s]+)\s*([^{;]+);/);
return t ? e({
type: 2,
name: trim(t[1]),
media: trim(t[2])
}) : null;
})() || (() => {
const e = i(), t = u(/^@supports *([^{]+)/);
if (!t) return null;
const r = trim(t[1]);
if (!l()) return a("@supports missing '{'");
const s = h().concat(d());
return c() ? e({
type: 15,
supports: r,
rules: s
}) : a("@supports missing '}'");
})() || E() || b() || T() || (() => {
const e = i(), t = u(/^@([-\w]+)?document *([^{]+)/);
if (!t) return null;
const r = trim(t[1]), s = trim(t[2]);
if (!l()) return a("@document missing '{'");
const n = h().concat(d());
return c() ? e({
type: 3,
document: s,
vendor: r,
rules: n
}) : a("@document missing '}'");
})() || (() => {
const e = i();
if (!u(/^@page */)) return null;
const t = f() || [];
if (!l()) return a("@page missing '{'");
let r, s = h();
for (;r = g(); ) s.push(r), s = s.concat(h());
return c() ? e({
type: 12,
selectors: t,
declarations: s
}) : a("@page missing '}'");
})() || (() => {
const e = i();
if (!u(/^@host\s*/)) return null;
if (!l()) return a("@host missing '{'");
const t = h().concat(d());
return c() ? e({
type: 6,
rules: t
}) : a("@host missing '}'");
})() || (() => {
const e = i();
if (!u(/^@font-face\s*/)) return null;
if (!l()) return a("@font-face missing '{'");
let t, r = h();
for (;t = g(); ) r.push(t), r = r.concat(h());
return c() ? e({
type: 5,
declarations: r
}) : a("@font-face missing '}'");
})(), A = () => {
const e = i(), t = f();
return t ? (h(), e({
type: 13,
selectors: t,
declarations: y()
})) : a("selector missing");
};
class z {
constructor(e) {
this.start = e, this.end = {
line: r,
column: s
}, this.source = t;
}
}
return z.prototype.content = e, {
diagnostics: n,
...addParent((() => {
const e = d();
return {
type: 14,
stylesheet: {
source: t,
rules: e
}
};
})())
};
}, trim = e => e ? e.trim() : "", addParent = (e, t) => {
const r = e && "string" == typeof e.type, s = r ? e : t;
for (const t in e) {
const r = e[t];
Array.isArray(r) ? r.forEach((function(e) {
addParent(e, s);
})) : r && "object" == typeof r && addParent(r, s);
}
return r && Object.defineProperty(e, "parent", {
configurable: !0,
writable: !0,
enumerable: !1,
value: t || null
}), e;
}, commentre = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g, getCssSelectors = e => {
SELECTORS.all.length = SELECTORS.tags.length = SELECTORS.classNames.length = SELECTORS.ids.length = SELECTORS.attrs.length = 0;
const t = (e = e.replace(/\./g, " .").replace(/\#/g, " #").replace(/\[/g, " [").replace(/\>/g, " > ").replace(/\+/g, " + ").replace(/\~/g, " ~ ").replace(/\*/g, " * ").replace(/\:not\((.*?)\)/g, " ")).split(" ");
for (let e = 0, r = t.length; e < r; e++) t[e] = t[e].split(":")[0], 0 !== t[e].length && ("." === t[e].charAt(0) ? SELECTORS.classNames.push(t[e].slice(1)) : "#" === t[e].charAt(0) ? SELECTORS.ids.push(t[e].slice(1)) : "[" === t[e].charAt(0) ? (t[e] = t[e].slice(1).split("=")[0].split("]")[0].trim(),
SELECTORS.attrs.push(t[e].toLowerCase())) : /[a-z]/g.test(t[e].charAt(0)) && SELECTORS.tags.push(t[e].toLowerCase()));
return SELECTORS.classNames = SELECTORS.classNames.sort(((e, t) => e.length < t.length ? -1 : e.length > t.length ? 1 : 0)),
SELECTORS;
}, SELECTORS = {
all: [],
tags: [],
classNames: [],
ids: [],
attrs: []
}, serializeCssVisitNode = (e, t, r, s) => {
const n = t.type;
return 4 === n ? serializeCssDeclaration(t, r, s) : 13 === n ? serializeCssRule(e, t) : 1 === n ? "!" === t.comment[0] ? `/*${t.comment}*/` : "" : 10 === n ? serializeCssMedia(e, t) : 8 === n ? serializeCssKeyframes(e, t) : 9 === n ? serializeCssKeyframe(e, t) : 5 === n ? serializeCssFontFace(e, t) : 15 === n ? serializeCssSupports(e, t) : 7 === n ? "@import " + t.import + ";" : 0 === n ? "@charset " + t.charset + ";" : 12 === n ? serializeCssPage(e, t) : 6 === n ? "@host{" + serializeCssMapVisit(e, t.rules) + "}" : 2 === n ? "@custom-media " + t.name + " " + t.media + ";" : 3 === n ? serializeCssDocument(e, t) : 11 === n ? "@namespace " + t.namespace + ";" : "";
}, serializeCssRule = (e, t) => {
const r = t.declarations, s = e.usedSelectors, n = t.selectors.slice();
if (null == r || 0 === r.length) return "";
if (s) {
let t, r, o = !0;
for (t = n.length - 1; t >= 0; t--) {
const i = getCssSelectors(n[t]);
o = !0;
let a = i.classNames.length;
if (a > 0 && e.hasUsedClassNames) for (r = 0; r < a; r++) if (!s.classNames.has(i.classNames[r])) {
o = !1;
break;
}
if (o && e.hasUsedTags && (a = i.tags.length, a > 0)) for (r = 0; r < a; r++) if (!s.tags.has(i.tags[r])) {
o = !1;
break;
}
if (o && e.hasUsedAttrs && (a = i.attrs.length, a > 0)) for (r = 0; r < a; r++) if (!s.attrs.has(i.attrs[r])) {
o = !1;
break;
}
if (o && e.hasUsedIds && (a = i.ids.length, a > 0)) for (r = 0; r < a; r++) if (!s.ids.has(i.ids[r])) {
o = !1;
break;
}
o || n.splice(t, 1);
}
}
if (0 === n.length) return "";
const o = [];
let i = "";
for (const e of t.selectors) i = removeSelectorWhitespace(e), o.includes(i) || o.push(i);
return `${o}{${serializeCssMapVisit(e, r)}}`;
}, serializeCssDeclaration = (e, t, r) => "" === e.value ? "" : r - 1 === t ? e.property + ":" + e.value : e.property + ":" + e.value + ";", serializeCssMedia = (e, t) => {
const r = serializeCssMapVisit(e, t.rules);
return "" === r ? "" : "@media " + removeMediaWhitespace(t.media) + "{" + r + "}";
}, serializeCssKeyframes = (e, t) => {
const r = serializeCssMapVisit(e, t.keyframes);
return "" === r ? "" : "@" + (t.vendor || "") + "keyframes " + t.name + "{" + r + "}";
}, serializeCssKeyframe = (e, t) => t.values.join(",") + "{" + serializeCssMapVisit(e, t.declarations) + "}", serializeCssFontFace = (e, t) => {
const r = serializeCssMapVisit(e, t.declarations);
return "" === r ? "" : "@font-face{" + r + "}";
}, serializeCssSupports = (e, t) => {
const r = serializeCssMapVisit(e, t.rules);
return "" === r ? "" : "@supports " + t.supports + "{" + r + "}";
}, serializeCssPage = (e, t) => "@page " + t.selectors.join(", ") + "{" + serializeCssMapVisit(e, t.declarations) + "}", serializeCssDocument = (e, t) => {
const r = serializeCssMapVisit(e, t.rules), s = "@" + (t.vendor || "") + "document " + t.document;
return "" === r ? "" : s + "{" + r + "}";
}, serializeCssMapVisit = (e, t) => {
let r = "";
if (t) for (let s = 0, n = t.length; s < n; s++) r += serializeCssVisitNode(e, t[s], s, n);
return r;
}, removeSelectorWhitespace = e => {
let t = "", r = "", s = !1;
for (let n = 0, o = (e = e.trim()).length; n < o; n++) if (r = e[n], "[" === r && "\\" !== t[t.length - 1] ? s = !0 : "]" === r && "\\" !== t[t.length - 1] && (s = !1),
!s && CSS_WS_REG.test(r)) {
if (CSS_NEXT_CHAR_REG.test(e[n + 1])) continue;
if (CSS_PREV_CHAR_REG.test(t[t.length - 1])) continue;
t += " ";
} else t += r;
return t;
}, removeMediaWhitespace = e => {
let t = "", r = "";
for (let s = 0, n = (e = e.trim()).length; s < n; s++) if (r = e[s], CSS_WS_REG.test(r)) {
if (CSS_WS_REG.test(t[t.length - 1])) continue;
t += " ";
} else t += r;
return t;
}, CSS_WS_REG = /\s/, CSS_NEXT_CHAR_REG = /[>\(\)\~\,\+\s]/, CSS_PREV_CHAR_REG = /[>\(\~\,\+]/, collectUsedSelectors = (e, t) => {
if (null != t && 1 === t.nodeType) {
const r = t.children, s = t.nodeName.toLowerCase();
e.tags.add(s);
const n = t.attributes;
for (let r = 0, s = n.length; r < s; r++) {
const s = n.item(r), o = s.name.toLowerCase();
if (e.attrs.add(o), "class" === o) {
const r = t.classList;
for (let t = 0, s = r.length; t < s; t++) e.classNames.add(r.item(t));
} else "id" === o && e.ids.add(s.value);
}
if (r) for (let t = 0, s = r.length; t < s; t++) collectUsedSelectors(e, r[t]);
}
}, removeUnusedStyleText = (e, t, r) => {
try {
const s = parseCss(r.innerHTML);
if (t.push(...s.diagnostics), hasError(t)) return;
try {
r.innerHTML = ((e, t) => {
const r = t.usedSelectors || null, s = {
usedSelectors: r || null,
hasUsedAttrs: !!r && r.attrs.size > 0,
hasUsedClassNames: !!r && r.classNames.size > 0,
hasUsedIds: !!r && r.ids.size > 0,
hasUsedTags: !!r && r.tags.size > 0
}, n = e.rules;
if (!n) return "";
const o = n.length, i = [];
for (let e = 0; e < o; e++) i.push(serializeCssVisitNode(s, n[e], e, o));
return i.join("");
})(s.stylesheet, {
usedSelectors: e
});
} catch (e) {
t.push({
level: "warn",
type: "css",
header: "CSS Stringify",
messageText: e
});
}
} catch (e) {
t.push({
level: "warn",
type: "css",
header: "CSS Parse",
messageText: e
});
}
}, SKIP_ATTRS = new Set([ "s-id", "c-id" ]), createHydrateBuildId = () => {
let e = "abcdefghijklmnopqrstuvwxyz", t = "";
for (;t.length < 8; ) t += e[Math.floor(Math.random() * e.length)], 1 === t.length && (e += "0123456789");
return t;
};
exports.createWindowFromHtml = createWindowFromHtml;
exports.hydrateDocument = hydrateDocument;
exports.renderToString = renderToString;
exports.serializeDocumentToString = serializeDocumentToString;