!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.XMLParser=e():t.XMLParser=e()}(this,(()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{default:()=>Q});var r={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:function(){return!1},commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t}},n=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",i=new RegExp("^["+n+"]["+n+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");function a(t,e){for(var r=[],n=e.exec(t);n;){var i=[];i.startIndex=e.lastIndex-n[0].length;for(var a=n.length,o=0;o0?this.child.push(((e={})[t.tagname]=t.child,e[":@"]=t[":@"],e)):this.child.push(((r={})[t.tagname]=t.child,r))},t}();function l(t,e){var r={};if("O"!==t[e+3]||"C"!==t[e+4]||"T"!==t[e+5]||"Y"!==t[e+6]||"P"!==t[e+7]||"E"!==t[e+8])throw new Error("Invalid Tag instead of DOCTYPE");e+=9;for(var n=1,i=!1,a=!1;e"===t[e]){if(a?"-"===t[e-1]&&"-"===t[e-2]&&(a=!1,n--):n--,0===n)break}else"["===t[e]?i=!0:t[e];else{if(i&&g(t,e)){var o,s=void 0,l=u(t,(e+=7)+1);o=l[0],s=l[1],e=l[2],-1===s.indexOf("&")&&(r[c(o)]={regx:RegExp("&"+o+";","g"),val:s})}else if(i&&d(t,e))e+=8;else if(i&&h(t,e))e+=8;else if(i&&p(t,e))e+=9;else{if(!f)throw new Error("Invalid DOCTYPE");a=!0}n++}if(0!==n)throw new Error("Unclosed DOCTYPE");return{entities:r,i:e}}function u(t,e){for(var r="";et.length)&&(e=t.length);for(var r=0,n=Array(e);r"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:function(t,e){return String.fromCharCode(Number.parseInt(e,10))}},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:function(t,e){return String.fromCharCode(Number.parseInt(e,16))}}},this.addExternalEntities=y,this.parseXml=O,this.parseTextData=E,this.resolveNameSpace=T,this.buildAttributesMap=I,this.isItStopNode=C,this.replaceEntitiesValue=P,this.readStopNodeData=k,this.saveTextToParentTag=S,this.addChild=A,this.ignoreAttributesFn="function"==typeof(e=this.options.ignoreAttributes)?e:Array.isArray(e)?function(t){for(var r,n=function(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(r)return(r=r.call(t)).next.bind(r);if(Array.isArray(t)||(r=function(t,e){if(t){if("string"==typeof t)return b(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?b(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){r&&(t=r);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(e);!(r=n()).done;){var i=r.value;if("string"==typeof i&&t===i)return!0;if(i instanceof RegExp&&i.test(t))return!0}}:function(){return!1}};function y(t){for(var e=Object.keys(t),r=0;r0)){o||(t=this.replaceEntitiesValue(t));var s=this.options.tagValueProcessor(e,t,r,i,a);return null==s?t:typeof s!=typeof t||s!==t?s:this.options.trimValues||t.trim()===t?D(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function T(t){if(this.options.removeNSPrefix){var e=t.split(":"),r="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=r+e[1])}return t}var w=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function I(t,e,r){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){for(var n=a(t,w),i=n.length,o={},s=0;s",a,"Closing Tag is not closed."),u=t.substring(a+2,o).trim();if(this.options.removeNSPrefix){var f=u.indexOf(":");-1!==f&&(u=u.substr(f+1))}this.options.transformTagName&&(u=this.options.transformTagName(u)),r&&(n=this.saveTextToParentTag(n,r,i));var g=i.substring(i.lastIndexOf(".")+1);if(u&&-1!==this.options.unpairedTags.indexOf(u))throw new Error("Unpaired tag can not be used as closing tag: ");var d=0;g&&-1!==this.options.unpairedTags.indexOf(g)?(d=i.lastIndexOf(".",i.lastIndexOf(".")-1),this.tagsNodeStack.pop()):d=i.lastIndexOf("."),i=i.substring(0,d),r=this.tagsNodeStack.pop(),n="",a=o}else if("?"===t[a+1]){var h=F(t,a,!1,"?>");if(!h)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,i),this.options.ignoreDeclaration&&"?xml"===h.tagName||this.options.ignorePiTags);else{var p=new s(h.tagName);p.add(this.options.textNodeName,""),h.tagName!==h.tagExp&&h.attrExpPresent&&(p[":@"]=this.buildAttributesMap(h.tagExp,i,h.tagName)),this.addChild(r,p,i)}a=h.closeIndex+1}else if("!--"===t.substr(a+1,3)){var c=_(t,"--\x3e",a+4,"Comment is not closed.");if(this.options.commentPropName){var v,m=t.substring(a+4,c-2);n=this.saveTextToParentTag(n,r,i),r.add(this.options.commentPropName,[(v={},v[this.options.textNodeName]=m,v)])}a=c}else if("!D"===t.substr(a+1,2)){var x=l(t,a);this.docTypeEntities=x.entities,a=x.i}else if("!["===t.substr(a+1,2)){var b=_(t,"]]>",a,"CDATA is not closed.")-2,N=t.substring(a+9,b);n=this.saveTextToParentTag(n,r,i);var y,E=this.parseTextData(N,r.tagname,i,!0,!1,!0,!0);null==E&&(E=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[(y={},y[this.options.textNodeName]=N,y)]):r.add(this.options.textNodeName,E),a=b+2}else{var T=F(t,a,this.options.removeNSPrefix),w=T.tagName,I=T.rawTagName,O=T.tagExp,A=T.attrExpPresent,P=T.closeIndex;this.options.transformTagName&&(w=this.options.transformTagName(w)),r&&n&&"!xml"!==r.tagname&&(n=this.saveTextToParentTag(n,r,i,!1));var S=r;if(S&&-1!==this.options.unpairedTags.indexOf(S.tagname)&&(r=this.tagsNodeStack.pop(),i=i.substring(0,i.lastIndexOf("."))),w!==e.tagname&&(i+=i?"."+w:w),this.isItStopNode(this.options.stopNodes,i,w)){var C="";if(O.length>0&&O.lastIndexOf("/")===O.length-1)"/"===w[w.length-1]?(w=w.substr(0,w.length-1),i=i.substr(0,i.length-1),O=w):O=O.substr(0,O.length-1),a=T.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(w))a=T.closeIndex;else{var k=this.readStopNodeData(t,I,P+1);if(!k)throw new Error("Unexpected end of "+I);a=k.i,C=k.tagContent}var D=new s(w);w!==O&&A&&(D[":@"]=this.buildAttributesMap(O,i,w)),C&&(C=this.parseTextData(C,w,i,!0,A,!0,!0)),i=i.substr(0,i.lastIndexOf(".")),D.add(this.options.textNodeName,C),this.addChild(r,D,i)}else{if(O.length>0&&O.lastIndexOf("/")===O.length-1){"/"===w[w.length-1]?(w=w.substr(0,w.length-1),i=i.substr(0,i.length-1),O=w):O=O.substr(0,O.length-1),this.options.transformTagName&&(w=this.options.transformTagName(w));var j=new s(w);w!==O&&A&&(j[":@"]=this.buildAttributesMap(O,i,w)),this.addChild(r,j,i),i=i.substr(0,i.lastIndexOf("."))}else{var V=new s(w);this.tagsNodeStack.push(r),w!==O&&A&&(V[":@"]=this.buildAttributesMap(O,i,w)),this.addChild(r,V,i),r=V}n="",a=P}}else n+=t[a];return e.child};function A(t,e,r){var n=this.options.updateTag(e.tagname,r,e[":@"]);!1===n||("string"==typeof n?(e.tagname=n,t.addChild(e)):t.addChild(e))}var P=function(t){if(this.options.processEntities){for(var e in this.docTypeEntities){var r=this.docTypeEntities[e];t=t.replace(r.regx,r.val)}for(var n in this.lastEntities){var i=this.lastEntities[n];t=t.replace(i.regex,i.val)}if(this.options.htmlEntities)for(var a in this.htmlEntities){var o=this.htmlEntities[a];t=t.replace(o.regex,o.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function S(t,e,r,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,r,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,n))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function C(t,e,r){var n="*."+r;for(var i in t){var a=t[i];if(n===a||e===a)return!0}return!1}function _(t,e,r,n){var i=t.indexOf(e,r);if(-1===i)throw new Error(n);return i+e.length-1}function F(t,e,r,n){void 0===n&&(n=">");var i=function(t,e,r){var n;void 0===r&&(r=">");for(var i="",a=e;a",r,e+" is not closed");if(t.substring(r+2,a).trim()===e&&0==--i)return{tagContent:t.substring(n,r),i:a};r=a}else if("?"===t[r+1])r=_(t,"?>",r+1,"StopNode is not closed.");else if("!--"===t.substr(r+1,3))r=_(t,"--\x3e",r+3,"StopNode is not closed.");else if("!["===t.substr(r+1,2))r=_(t,"]]>",r,"StopNode is not closed.")-2;else{var o=F(t,r,">");o&&((o&&o.tagName)===e&&"/"!==o.tagExp[o.tagExp.length-1]&&i++,r=o.closeIndex)}}function D(t,e,r){if(e&&"string"==typeof t){var n=t.trim();return"true"===n||"false"!==n&&function(t,e={}){if(e=Object.assign({},x,e),!t||"string"!=typeof t)return t;let r=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(r))return t;if("0"===t)return 0;if(e.hex&&v.test(r))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}(r);if(-1!==r.search(/[eE]/)){const n=r.match(/^([-\+])?(0*)([0-9]*(\.[0-9]*)?[eE][-\+]?[0-9]+)$/);if(n){if(e.leadingZeros)r=(n[1]||"")+n[3];else if("0"!==n[2]||"."!==n[3][0])return t;return e.eNotation?Number(r):t}return t}{const i=m.exec(r);if(i){const a=i[1],o=i[2];let s=(n=i[3])&&-1!==n.indexOf(".")?("."===(n=n.replace(/0+$/,""))?n="0":"."===n[0]?n="0"+n:"."===n[n.length-1]&&(n=n.substr(0,n.length-1)),n):n;if(!e.leadingZeros&&o.length>0&&a&&"."!==r[2])return t;if(!e.leadingZeros&&o.length>0&&!a&&"."!==r[1])return t;if(e.leadingZeros&&o===t)return 0;{const n=Number(r),i=""+n;return-1!==i.search(/[eE]/)?e.eNotation?n:t:-1!==r.indexOf(".")?"0"===i&&""===s||i===s||a&&i==="-"+s?n:t:o?s===i||a+s===i?n:t:r===i||r===a+i?n:t}}return t}var n}(t,r)}return void 0!==t?t:""}function j(t,e){return V(t,e)}function V(t,e,r){for(var n,i={},a=0;a0&&(i[e.textNodeName]=n):void 0!==n&&(i[e.textNodeName]=n),i}function M(t){for(var e=Object.keys(t),r=0;r5&&"xml"===n)return z("InvalidXml","XML declaration allowed only at the start of the document.",H(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}}return e}function Y(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){var r=1;for(e+=8;e"===t[e]&&0==--r)break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e"===t[e+2]){e+=2;break}return e}function $(t,e){for(var r="",n="",i=!1;e"===t[e]&&""===n){i=!0;break}r+=t[e]}return""===n&&{value:r,index:e,tagClosed:i}}var U=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function q(t,e){for(var r=a(t,U),n={},i=0;i"!==t[a]&&" "!==t[a]&&"\t"!==t[a]&&"\n"!==t[a]&&"\r"!==t[a];a++)u+=t[a];if("/"===(u=u.trim())[u.length-1]&&(u=u.substring(0,u.length-1),a--),!o(u))return z("InvalidTag",0===u.trim().length?"Invalid space after '<'.":"Tag '"+u+"' is an invalid name.",H(t,a));var f=$(t,a);if(!1===f)return z("InvalidAttr","Attributes for '"+u+"' have open quote.",H(t,a));var g=f.value;if(a=f.index,"/"===g[g.length-1]){var d=a-g.length,h=q(g=g.substring(0,g.length-1),e);if(!0!==h)return z(h.err.code,h.err.msg,H(t,d+h.err.line));n=!0}else if(l){if(!f.tagClosed)return z("InvalidTag","Closing tag '"+u+"' doesn't have proper closing.",H(t,a));if(g.trim().length>0)return z("InvalidTag","Closing tag '"+u+"' can't have attributes or invalid starting.",H(t,s));if(0===r.length)return z("InvalidTag","Closing tag '"+u+"' has not been opened.",H(t,s));var p=r.pop();if(u!==p.tagName){var c=H(t,p.tagStartPos);return z("InvalidTag","Expected closing tag '"+p.tagName+"' (opened in line "+c.line+", col "+c.col+") instead of closing tag '"+u+"'.",H(t,s))}0==r.length&&(i=!0)}else{var v=q(g,e);if(!0!==v)return z(v.err.code,v.err.msg,H(t,a-g.length+v.err.line));if(!0===i)return z("InvalidXml","Multiple possible root nodes found.",H(t,a));-1!==e.unpairedTags.indexOf(u)||r.push({tagName:u,tagStartPos:s}),n=!0}for(a++;a0)||z("InvalidXml","Invalid '"+JSON.stringify(r.map((function(t){return t.tagName})),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):z("InvalidXml","Start tag expected.",1)}(t,e);if(!0!==r)throw Error(r.err.msg+":"+r.err.line+":"+r.err.col)}var n=new N(this.options);n.addExternalEntities(this.externalEntities);var i=n.parseXml(t);return this.options.preserveOrder||void 0===i?i:j(i,this.options)},e.addEntity=function(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e},t}();return e})())); //# sourceMappingURL=fxparser.min.js.map