From 2e9d340e269faea55d73452a14d161bd431a6945 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Z=C3=A9fling?= Date: Wed, 27 Jul 2022 01:37:12 +0200 Subject: [PATCH] update demo --- angular.json | 28 +- dist/ng-select2/112.2f1cceb411daaedd.js | 1 + dist/ng-select2/142.8141b32fc0a741ad.js | 1 + dist/ng-select2/3rdpartylicenses.txt | 406 + dist/ng-select2/403.d3adefa7b3c06db9.js | 1 + dist/ng-select2/535.1a67552e79f34cde.js | 1 + dist/ng-select2/613.fb2be7632705305b.js | 1 + dist/ng-select2/859.a80c1b65835618fa.js | 1 + dist/ng-select2/index.html | 19 +- dist/ng-select2/main.c570093eb910ca5e.js | 1 + dist/ng-select2/main.js | 2470 - dist/ng-select2/main.js.map | 1 - .../node_modules_highlight_js_es_core_js.js | 2723 - ...ode_modules_highlight_js_es_core_js.js.map | 1 - ...odules_highlight_js_es_languages_css_js.js | 190 - ...es_highlight_js_es_languages_css_js.js.map | 1 - ...highlight_js_es_languages_javascript_js.js | 480 - ...light_js_es_languages_javascript_js.js.map | 1 - ...highlight_js_es_languages_typescript_js.js | 558 - ...light_js_es_languages_typescript_js.js.map | 1 - ...odules_highlight_js_es_languages_xml_js.js | 180 - ...es_highlight_js_es_languages_xml_js.js.map | 1 - ...bers_js_src_highlightjs-line-numbers_js.js | 357 - ..._js_src_highlightjs-line-numbers_js.js.map | 1 - dist/ng-select2/polyfills.1ca7753bd946ea58.js | 1 + dist/ng-select2/polyfills.js | 9961 -- dist/ng-select2/polyfills.js.map | 1 - dist/ng-select2/runtime.df01f69cc7dd52a0.js | 1 + dist/ng-select2/runtime.js | 334 - dist/ng-select2/runtime.js.map | 1 - dist/ng-select2/styles.css | 7 - dist/ng-select2/styles.css.map | 1 - dist/ng-select2/styles.ef46db3751d8e999.css | 0 dist/ng-select2/vendor.js | 111202 --------------- dist/ng-select2/vendor.js.map | 1 - package.json | 2 +- 36 files changed, 436 insertions(+), 128501 deletions(-) create mode 100644 dist/ng-select2/112.2f1cceb411daaedd.js create mode 100644 dist/ng-select2/142.8141b32fc0a741ad.js create mode 100644 dist/ng-select2/3rdpartylicenses.txt create mode 100644 dist/ng-select2/403.d3adefa7b3c06db9.js create mode 100644 dist/ng-select2/535.1a67552e79f34cde.js create mode 100644 dist/ng-select2/613.fb2be7632705305b.js create mode 100644 dist/ng-select2/859.a80c1b65835618fa.js create mode 100644 dist/ng-select2/main.c570093eb910ca5e.js delete mode 100644 dist/ng-select2/main.js delete mode 100644 dist/ng-select2/main.js.map delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_core_js.js delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_core_js.js.map delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_languages_css_js.js delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_languages_css_js.js.map delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_languages_javascript_js.js delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_languages_javascript_js.js.map delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_languages_typescript_js.js delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_languages_typescript_js.js.map delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_languages_xml_js.js delete mode 100644 dist/ng-select2/node_modules_highlight_js_es_languages_xml_js.js.map delete mode 100644 dist/ng-select2/node_modules_highlightjs-line-numbers_js_src_highlightjs-line-numbers_js.js delete mode 100644 dist/ng-select2/node_modules_highlightjs-line-numbers_js_src_highlightjs-line-numbers_js.js.map create mode 100644 dist/ng-select2/polyfills.1ca7753bd946ea58.js delete mode 100644 dist/ng-select2/polyfills.js delete mode 100644 dist/ng-select2/polyfills.js.map create mode 100644 dist/ng-select2/runtime.df01f69cc7dd52a0.js delete mode 100644 dist/ng-select2/runtime.js delete mode 100644 dist/ng-select2/runtime.js.map delete mode 100644 dist/ng-select2/styles.css delete mode 100644 dist/ng-select2/styles.css.map create mode 100644 dist/ng-select2/styles.ef46db3751d8e999.css delete mode 100644 dist/ng-select2/vendor.js delete mode 100644 dist/ng-select2/vendor.js.map diff --git a/angular.json b/angular.json index de6883b..99a7686 100644 --- a/angular.json +++ b/angular.json @@ -25,14 +25,7 @@ "styles": [ "src/styles.css" ], - "scripts": [], - "aot": false, - "vendorChunk": true, - "extractLicenses": false, - "buildOptimizer": false, - "sourceMap": true, - "optimization": false, - "namedChunks": true + "scripts": [] }, "configurations": { "production": { @@ -42,17 +35,18 @@ "with": "src/environments/environment.prod.ts" } ], - "optimization": true, - "outputHashing": "all", - "sourceMap": false, - "namedChunks": false, - "aot": true, - "extractLicenses": true, - "vendorChunk": false, - "buildOptimizer": true + "outputHashing": "all" + }, + "development": { + "buildOptimizer": false, + "optimization": false, + "vendorChunk": true, + "extractLicenses": false, + "sourceMap": true, + "namedChunks": true } }, - "defaultConfiguration": "" + "defaultConfiguration": "production" }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", diff --git a/dist/ng-select2/112.2f1cceb411daaedd.js b/dist/ng-select2/112.2f1cceb411daaedd.js new file mode 100644 index 0000000..1f66017 --- /dev/null +++ b/dist/ng-select2/112.2f1cceb411daaedd.js @@ -0,0 +1 @@ +(self.webpackChunkng_select2=self.webpackChunkng_select2||[]).push([[112],{4940:le=>{var H={exports:{}};function D(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(function(t){var i=e[t];"object"==typeof i&&!Object.isFrozen(i)&&D(i)}),e}H.exports=D,H.exports.default=D;class j{constructor(t){void 0===t.data&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function W(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function A(e,...t){const i=Object.create(null);for(const f in e)i[f]=e[f];return t.forEach(function(f){for(const b in f)i[b]=f[b]}),i}const ue=e=>!!e.scope||e.sublanguage&&e.language;class Ce{constructor(t,i){this.buffer="",this.classPrefix=i.classPrefix,t.walk(this)}addText(t){this.buffer+=W(t)}openNode(t){if(!ue(t))return;let i="";i=t.sublanguage?`language-${t.language}`:((e,{prefix:t})=>{if(e.includes(".")){const i=e.split(".");return[`${t}${i.shift()}`,...i.map((f,b)=>`${f}${"_".repeat(b+1)}`)].join(" ")}return`${t}${e}`})(t.scope,{prefix:this.classPrefix}),this.span(i)}closeNode(t){!ue(t)||(this.buffer+="")}value(){return this.buffer}span(t){this.buffer+=``}}const fe=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class q{constructor(){this.rootNode=fe(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const i=fe({scope:t});this.add(i),this.stack.push(i)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,i){return"string"==typeof i?t.addText(i):i.children&&(t.openNode(i),i.children.forEach(f=>this._walk(t,f)),t.closeNode(i)),t}static _collapse(t){"string"!=typeof t&&(!t.children||(t.children.every(i=>"string"==typeof i)?t.children=[t.children.join("")]:t.children.forEach(i=>{q._collapse(i)})))}}class Le extends q{constructor(t){super(),this.options=t}addKeyword(t,i){""!==t&&(this.openNode(i),this.addText(t),this.closeNode())}addText(t){""!==t&&this.add(t)}addSublanguage(t,i){const f=t.root;f.sublanguage=!0,f.language=i,this.add(f)}toHTML(){return new Ce(this,this.options).value()}finalize(){return!0}}function U(e){return e?"string"==typeof e?e:e.source:null}function ge(e){return v("(?=",e,")")}function He(e){return v("(?:",e,")*")}function Pe(e){return v("(?:",e,")?")}function v(...e){return e.map(i=>U(i)).join("")}function m(...e){const t=function je(e){const t=e[e.length-1];return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return"("+(t.capture?"":"?:")+e.map(f=>U(f)).join("|")+")"}function he(e){return new RegExp(e.toString()+"|").exec("").length-1}const $e=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function ee(e,{joinWith:t}){let i=0;return e.map(f=>{i+=1;const b=i;let _=U(f),c="";for(;_.length>0;){const r=$e.exec(_);if(!r){c+=_;break}c+=_.substring(0,r.index),_=_.substring(r.index+r[0].length),"\\"===r[0][0]&&r[1]?c+="\\"+String(Number(r[1])+b):(c+=r[0],"("===r[0]&&i++)}return c}).map(f=>`(${f})`).join(t)}const de="[a-zA-Z]\\w*",te="[a-zA-Z_]\\w*",pe="\\b\\d+(\\.\\d+)?",Ee="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",be="\\b(0b[01]+)",$={begin:"\\\\[\\s\\S]",relevance:0},Fe={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[$]},ze={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[$]},F=function(e,t,i={}){const f=A({scope:"comment",begin:e,end:t,contains:[]},i);f.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const b=m("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return f.contains.push({begin:v(/[ ]+/,"(",b,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),f},Ye=F("//","$"),Ze=F("/\\*","\\*/"),Je=F("#","$");var z=Object.freeze({__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:de,UNDERSCORE_IDENT_RE:te,NUMBER_RE:pe,C_NUMBER_RE:Ee,BINARY_NUMBER_RE:be,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=v(t,/.*\b/,e.binary,/\b.*/)),A({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(i,f)=>{0!==i.index&&f.ignoreMatch()}},e)},BACKSLASH_ESCAPE:$,APOS_STRING_MODE:Fe,QUOTE_STRING_MODE:ze,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},COMMENT:F,C_LINE_COMMENT_MODE:Ye,C_BLOCK_COMMENT_MODE:Ze,HASH_COMMENT_MODE:Je,NUMBER_MODE:{scope:"number",begin:pe,relevance:0},C_NUMBER_MODE:{scope:"number",begin:Ee,relevance:0},BINARY_NUMBER_MODE:{scope:"number",begin:be,relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{scope:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[$,{begin:/\[/,end:/\]/,relevance:0,contains:[$]}]}]},TITLE_MODE:{scope:"title",begin:de,relevance:0},UNDERSCORE_TITLE_MODE:{scope:"title",begin:te,relevance:0},METHOD_GUARD:{begin:"\\.\\s*"+te,relevance:0},END_SAME_AS_BEGIN:function(e){return Object.assign(e,{"on:begin":(t,i)=>{i.data._beginMatch=t[1]},"on:end":(t,i)=>{i.data._beginMatch!==t[1]&&i.ignoreMatch()}})}});function it(e,t){"."===e.input[e.index-1]&&t.ignoreMatch()}function st(e,t){void 0!==e.className&&(e.scope=e.className,delete e.className)}function rt(e,t){!t||!e.beginKeywords||(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=it,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function ct(e,t){!Array.isArray(e.illegal)||(e.illegal=m(...e.illegal))}function ot(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function at(e,t){void 0===e.relevance&&(e.relevance=1)}const lt=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const i=Object.assign({},e);Object.keys(e).forEach(f=>{delete e[f]}),e.keywords=i.keywords,e.begin=v(i.beforeMatch,ge(i.begin)),e.starts={relevance:0,contains:[Object.assign(i,{endsParent:!0})]},e.relevance=0,delete i.beforeMatch},ut=["of","and","for","in","not","or","if","then","parent","list","value"];function _e(e,t,i="keyword"){const f=Object.create(null);return"string"==typeof e?b(i,e.split(" ")):Array.isArray(e)?b(i,e):Object.keys(e).forEach(function(_){Object.assign(f,_e(e[_],t,_))}),f;function b(_,c){t&&(c=c.map(r=>r.toLowerCase())),c.forEach(function(r){const l=r.split("|");f[l[0]]=[_,gt(l[0],l[1])]})}}function gt(e,t){return t?Number(t):function ht(e){return ut.includes(e.toLowerCase())}(e)?0:1}const we={},C=e=>{console.error(e)},Me=(e,...t)=>{console.log(`WARN: ${e}`,...t)},P=(e,t)=>{we[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),we[`${e}/${t}`]=!0)},X=new Error;function xe(e,t,{key:i}){let f=0;const b=e[i],_={},c={};for(let r=1;r<=t.length;r++)c[r+f]=b[r],_[r+f]=!0,f+=he(t[r-1]);e[i]=c,e[i]._emit=_,e[i]._multi=!0}function bt(e){(function Et(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function dt(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw C("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),X;if("object"!=typeof e.beginScope||null===e.beginScope)throw C("beginScope must be object"),X;xe(e,e.begin,{key:"beginScope"}),e.begin=ee(e.begin,{joinWith:""})}}(e),function pt(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw C("skip, excludeEnd, returnEnd not compatible with endScope: {}"),X;if("object"!=typeof e.endScope||null===e.endScope)throw C("endScope must be object"),X;xe(e,e.end,{key:"endScope"}),e.end=ee(e.end,{joinWith:""})}}(e)}function _t(e){function t(c,r){return new RegExp(U(c),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(r?"g":""))}class i{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(r,l){l.position=this.position++,this.matchIndexes[this.matchAt]=l,this.regexes.push([l,r]),this.matchAt+=he(r)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const r=this.regexes.map(l=>l[1]);this.matcherRe=t(ee(r,{joinWith:"|"}),!0),this.lastIndex=0}exec(r){this.matcherRe.lastIndex=this.lastIndex;const l=this.matcherRe.exec(r);if(!l)return null;const x=l.findIndex((K,ie)=>ie>0&&void 0!==K),w=this.matchIndexes[x];return l.splice(0,x),Object.assign(l,w)}}class f{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(r){if(this.multiRegexes[r])return this.multiRegexes[r];const l=new i;return this.rules.slice(r).forEach(([x,w])=>l.addRule(x,w)),l.compile(),this.multiRegexes[r]=l,l}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(r,l){this.rules.push([r,l]),"begin"===l.type&&this.count++}exec(r){const l=this.getMatcher(this.regexIndex);l.lastIndex=this.lastIndex;let x=l.exec(r);if(this.resumingScanAtSamePosition()&&(!x||x.index!==this.lastIndex)){const w=this.getMatcher(0);w.lastIndex=this.lastIndex+1,x=w.exec(r)}return x&&(this.regexIndex+=x.position+1,this.regexIndex===this.count&&this.considerAll()),x}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=A(e.classNameAliases||{}),function _(c,r){const l=c;if(c.isCompiled)return l;[st,ot,bt,lt].forEach(w=>w(c,r)),e.compilerExtensions.forEach(w=>w(c,r)),c.__beforeBegin=null,[rt,ct,at].forEach(w=>w(c,r)),c.isCompiled=!0;let x=null;return"object"==typeof c.keywords&&c.keywords.$pattern&&(c.keywords=Object.assign({},c.keywords),x=c.keywords.$pattern,delete c.keywords.$pattern),x=x||/\w+/,c.keywords&&(c.keywords=_e(c.keywords,e.case_insensitive)),l.keywordPatternRe=t(x,!0),r&&(c.begin||(c.begin=/\B|\b/),l.beginRe=t(l.begin),!c.end&&!c.endsWithParent&&(c.end=/\B|\b/),c.end&&(l.endRe=t(l.end)),l.terminatorEnd=U(l.end)||"",c.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(c.end?"|":"")+r.terminatorEnd)),c.illegal&&(l.illegalRe=t(c.illegal)),c.contains||(c.contains=[]),c.contains=[].concat(...c.contains.map(function(w){return function wt(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return A(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:Oe(e)?A(e,{starts:e.starts?A(e.starts):null}):Object.isFrozen(e)?A(e):e}("self"===w?c:w)})),c.contains.forEach(function(w){_(w,l)}),c.starts&&_(c.starts,r),l.matcher=function b(c){const r=new f;return c.contains.forEach(l=>r.addRule(l.begin,{rule:l,type:"begin"})),c.terminatorEnd&&r.addRule(c.terminatorEnd,{type:"end"}),c.illegal&&r.addRule(c.illegal,{type:"illegal"}),r}(l),l}(e)}function Oe(e){return!!e&&(e.endsWithParent||Oe(e.starts))}class xt extends Error{constructor(t,i){super(t),this.name="HTMLInjectionError",this.html=i}}const ne=W,Re=A,ye=Symbol("nomatch");var G=function(e){const t=Object.create(null),i=Object.create(null),f=[];let b=!0;const _="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]};let r={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Le};function l(n){return r.noHighlightRe.test(n)}function w(n,a,h){let p="",M="";"object"==typeof a?(p=n,h=a.ignoreIllegals,M=a.language):(P("10.7.0","highlight(lang, code, ...args) has been deprecated."),P("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),M=n,p=a),void 0===h&&(h=!0);const S={code:p,language:M};Z("before:highlight",S);const T=S.result?S.result:K(S.language,S.code,h);return T.code=S.code,Z("after:highlight",T),T}function K(n,a,h,p){const M=Object.create(null);function S(s,o){return s.keywords[o]}function T(){if(!u.keywords)return void O.addText(E);let s=0;u.keywordPatternRe.lastIndex=0;let o=u.keywordPatternRe.exec(E),g="";for(;o;){g+=E.substring(s,o.index);const d=B.case_insensitive?o[0].toLowerCase():o[0],R=S(u,d);if(R){const[N,Ut]=R;O.addText(g),g="",M[d]=(M[d]||0)+1,M[d]<=7&&(Q+=Ut),N.startsWith("_")?g+=o[0]:O.addKeyword(o[0],B.classNameAliases[N]||N)}else g+=o[0];s=u.keywordPatternRe.lastIndex,o=u.keywordPatternRe.exec(E)}g+=E.substring(s),O.addText(g)}function y(){null!=u.subLanguage?function J(){if(""===E)return;let s=null;if("string"==typeof u.subLanguage){if(!t[u.subLanguage])return void O.addText(E);s=K(u.subLanguage,E,!0,Be[u.subLanguage]),Be[u.subLanguage]=s._top}else s=se(E,u.subLanguage.length?u.subLanguage:null);u.relevance>0&&(Q+=s.relevance),O.addSublanguage(s._emitter,s.language)}():T(),E=""}function I(s,o){let g=1;const d=o.length-1;for(;g<=d;){if(!s._emit[g]){g++;continue}const R=B.classNameAliases[s[g]]||s[g],N=o[g];R?O.addKeyword(N,R):(E=N,T(),E=""),g++}}function ke(s,o){return s.scope&&"string"==typeof s.scope&&O.openNode(B.classNameAliases[s.scope]||s.scope),s.beginScope&&(s.beginScope._wrap?(O.addKeyword(E,B.classNameAliases[s.beginScope._wrap]||s.beginScope._wrap),E=""):s.beginScope._multi&&(I(s.beginScope,o),E="")),u=Object.create(s,{parent:{value:u}}),u}function Te(s,o,g){let d=function Ue(e,t){const i=e&&e.exec(t);return i&&0===i.index}(s.endRe,g);if(d){if(s["on:end"]){const R=new j(s);s["on:end"](o,R),R.isMatchIgnored&&(d=!1)}if(d){for(;s.endsParent&&s.parent;)s=s.parent;return s}}if(s.endsWithParent)return Te(s.parent,o,g)}function Ct(s){return 0===u.matcher.regexIndex?(E+=s[0],1):(ae=!0,0)}function Ht(s){const o=s[0],g=a.substring(s.index),d=Te(u,s,g);if(!d)return ye;const R=u;u.endScope&&u.endScope._wrap?(y(),O.addKeyword(o,u.endScope._wrap)):u.endScope&&u.endScope._multi?(y(),I(u.endScope,s)):R.skip?E+=o:(R.returnEnd||R.excludeEnd||(E+=o),y(),R.excludeEnd&&(E=o));do{u.scope&&O.closeNode(),!u.skip&&!u.subLanguage&&(Q+=u.relevance),u=u.parent}while(u!==d.parent);return d.starts&&ke(d.starts,s),R.returnEnd?0:o.length}let V={};function Ie(s,o){const g=o&&o[0];if(E+=s,null==g)return y(),0;if("begin"===V.type&&"end"===o.type&&V.index===o.index&&""===g){if(E+=a.slice(o.index,o.index+1),!b){const d=new Error(`0 width match regex (${n})`);throw d.languageName=n,d.badRule=V.rule,d}return 1}if(V=o,"begin"===o.type)return function Lt(s){const o=s[0],g=s.rule,d=new j(g),R=[g.__beforeBegin,g["on:begin"]];for(const N of R)if(N&&(N(s,d),d.isMatchIgnored))return Ct(o);return g.skip?E+=o:(g.excludeBegin&&(E+=o),y(),!g.returnBegin&&!g.excludeBegin&&(E=o)),ke(g,s),g.returnBegin?0:o.length}(o);if("illegal"===o.type&&!h){const d=new Error('Illegal lexeme "'+g+'" for mode "'+(u.scope||"")+'"');throw d.mode=u,d}if("end"===o.type){const d=Ht(o);if(d!==ye)return d}if("illegal"===o.type&&""===g)return 1;if(oe>1e5&&oe>3*o.index)throw new Error("potential infinite loop, way more iterations than matches");return E+=g,g.length}const B=k(n);if(!B)throw C(_.replace("{}",n)),new Error('Unknown language: "'+n+'"');const jt=_t(B);let ce="",u=p||jt;const Be={},O=new r.__emitter(r);!function Pt(){const s=[];for(let o=u;o!==B;o=o.parent)o.scope&&s.unshift(o.scope);s.forEach(o=>O.openNode(o))}();let E="",Q=0,L=0,oe=0,ae=!1;try{for(u.matcher.considerAll();;){oe++,ae?ae=!1:u.matcher.considerAll(),u.matcher.lastIndex=L;const s=u.matcher.exec(a);if(!s)break;const g=Ie(a.substring(L,s.index),s);L=s.index+g}return Ie(a.substring(L)),O.closeAllNodes(),O.finalize(),ce=O.toHTML(),{language:n,value:ce,relevance:Q,illegal:!1,_emitter:O,_top:u}}catch(s){if(s.message&&s.message.includes("Illegal"))return{language:n,value:ne(a),illegal:!0,relevance:0,_illegalBy:{message:s.message,index:L,context:a.slice(L-100,L+100),mode:s.mode,resultSoFar:ce},_emitter:O};if(b)return{language:n,value:ne(a),illegal:!1,relevance:0,errorRaised:s,_emitter:O,_top:u};throw s}}function se(n,a){a=a||r.languages||Object.keys(t);const h=function ie(n){const a={value:ne(n),illegal:!1,relevance:0,_top:c,_emitter:new r.__emitter(r)};return a._emitter.addText(n),a}(n),p=a.filter(k).filter(Ae).map(y=>K(y,n,!1));p.unshift(h);const M=p.sort((y,I)=>{if(y.relevance!==I.relevance)return I.relevance-y.relevance;if(y.language&&I.language){if(k(y.language).supersetOf===I.language)return 1;if(k(I.language).supersetOf===y.language)return-1}return 0}),[S,T]=M,J=S;return J.secondBest=T,J}function re(n){let a=null;const h=function x(n){let a=n.className+" ";a+=n.parentNode?n.parentNode.className:"";const h=r.languageDetectRe.exec(a);if(h){const p=k(h[1]);return p||(Me(_.replace("{}",h[1])),Me("Falling back to no-highlight mode for this block.",n)),p?h[1]:"no-highlight"}return a.split(/\s+/).find(p=>l(p)||k(p))}(n);if(l(h))return;if(Z("before:highlightElement",{el:n,language:h}),n.children.length>0&&(r.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(n)),r.throwUnescapedHTML))throw new xt("One of your code blocks includes unescaped HTML.",n.innerHTML);a=n;const p=a.textContent,M=h?w(p,{language:h,ignoreIllegals:!0}):se(p);n.innerHTML=M.value,function Rt(n,a,h){const p=a&&i[a]||h;n.classList.add("hljs"),n.classList.add(`language-${p}`)}(n,h,M.language),n.result={language:M.language,re:M.relevance,relevance:M.relevance},M.secondBest&&(n.secondBest={language:M.secondBest.language,relevance:M.secondBest.relevance}),Z("after:highlightElement",{el:n,result:M,text:p})}let Se=!1;function Y(){"loading"!==document.readyState?document.querySelectorAll(r.cssSelector).forEach(re):Se=!0}function k(n){return n=(n||"").toLowerCase(),t[n]||t[i[n]]}function Ne(n,{languageName:a}){"string"==typeof n&&(n=[n]),n.forEach(h=>{i[h.toLowerCase()]=a})}function Ae(n){const a=k(n);return a&&!a.disableAutodetect}function Z(n,a){const h=n;f.forEach(function(p){p[h]&&p[h](a)})}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",function At(){Se&&Y()},!1),Object.assign(e,{highlight:w,highlightAuto:se,highlightAll:Y,highlightElement:re,highlightBlock:function vt(n){return P("10.7.0","highlightBlock will be removed entirely in v12.0"),P("10.7.0","Please use highlightElement now."),re(n)},configure:function yt(n){r=Re(r,n)},initHighlighting:()=>{Y(),P("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")},initHighlightingOnLoad:function Nt(){Y(),P("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")},registerLanguage:function kt(n,a){let h=null;try{h=a(e)}catch(p){if(C("Language definition for '{}' could not be registered.".replace("{}",n)),!b)throw p;C(p),h=c}h.name||(h.name=n),t[n]=h,h.rawDefinition=a.bind(null,e),h.aliases&&Ne(h.aliases,{languageName:n})},unregisterLanguage:function Tt(n){delete t[n];for(const a of Object.keys(i))i[a]===n&&delete i[a]},listLanguages:function It(){return Object.keys(t)},getLanguage:k,registerAliases:Ne,autoDetection:Ae,inherit:Re,addPlugin:function Dt(n){(function Bt(n){n["before:highlightBlock"]&&!n["before:highlightElement"]&&(n["before:highlightElement"]=a=>{n["before:highlightBlock"](Object.assign({block:a.el},a))}),n["after:highlightBlock"]&&!n["after:highlightElement"]&&(n["after:highlightElement"]=a=>{n["after:highlightBlock"](Object.assign({block:a.el},a))})})(n),f.push(n)}}),e.debugMode=function(){b=!1},e.safeMode=function(){b=!0},e.versionString="11.6.0",e.regex={concat:v,lookahead:ge,either:m,optional:Pe,anyNumberOfTimes:He};for(const n in z)"object"==typeof z[n]&&H.exports(z[n]);return Object.assign(e,z),e}({});le.exports=G,G.HighlightJS=G,G.default=G},9112:(le,H,D)=>{"use strict";D.r(H),D.d(H,{HighlightJS:()=>j,default:()=>W});var j=D(4940);const W=j}}]); \ No newline at end of file diff --git a/dist/ng-select2/142.8141b32fc0a741ad.js b/dist/ng-select2/142.8141b32fc0a741ad.js new file mode 100644 index 0000000..aa1f847 --- /dev/null +++ b/dist/ng-select2/142.8141b32fc0a741ad.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkng_select2=self.webpackChunkng_select2||[]).push([[142],{9142:(d,l,r)=>{function m(n){const e=n.regex,a=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},g=n.inherit(t,{begin:/\(/,end:/\)/}),o=n.inherit(n.APOS_STRING_MODE,{className:"string"}),c=n.inherit(n.QUOTE_STRING_MODE,{className:"string"}),i={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[t,c,o,g,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[t,g,c,o]}]}]},n.COMMENT(//,{relevance:10}),{begin://,relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[i],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[i],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:e.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:a,relevance:0,starts:i}]},{className:"tag",begin:e.concat(/<\//,e.lookahead(e.concat(a,/>/))),contains:[{className:"name",begin:a,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}r.r(l),r.d(l,{default:()=>m})}}]); \ No newline at end of file diff --git a/dist/ng-select2/3rdpartylicenses.txt b/dist/ng-select2/3rdpartylicenses.txt new file mode 100644 index 0000000..17bc35f --- /dev/null +++ b/dist/ng-select2/3rdpartylicenses.txt @@ -0,0 +1,406 @@ +@angular/cdk +MIT +The MIT License + +Copyright (c) 2022 Google LLC. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +@angular/common +MIT + +@angular/core +MIT + +@angular/forms +MIT + +@angular/platform-browser +MIT + +@angular/router +MIT + +bowser +MIT +Copyright 2015, Dustin Diaz (the "Original Author") +All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +Distributions of all or part of the Software intended to be used +by the recipients as they would use the unmodified Software, +containing modifications that substantially alter, remove, or +disable functionality of the Software, outside of the documented +configuration mechanisms provided by the Software, shall be +modified such that the Original Author's bug reporting email +addresses and urls are either replaced with the contact information +of the parties responsible for the changes, or removed entirely. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + + +Except where noted, this license applies to any and all software +programs and associated documentation files created by the +Original Author, when distributed with the Software. + + +core-js +MIT +Copyright (c) 2014-2019 Denis Pushkarev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +highlight.js +BSD-3-Clause +BSD 3-Clause License + +Copyright (c) 2006, Ivan Sagalaev. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +highlightjs-line-numbers.js +MIT +The MIT License (MIT) + +Copyright (c) 2017 Yauheni Pakala + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +json2html-lib +MIT + +ng-select2-component +MIT + +ngx-highlightjs +MIT + +ngx-infinite-scroll +MIT + +rxjs +Apache-2.0 + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + + +zone.js +MIT +The MIT License + +Copyright (c) 2010-2022 Google LLC. https://angular.io/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/dist/ng-select2/403.d3adefa7b3c06db9.js b/dist/ng-select2/403.d3adefa7b3c06db9.js new file mode 100644 index 0000000..c649ea8 --- /dev/null +++ b/dist/ng-select2/403.d3adefa7b3c06db9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkng_select2=self.webpackChunkng_select2||[]).push([[403],{4403:(h,r,i)=>{i.r(r),i.d(r,{default:()=>b});const a=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],l=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],s=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],d=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],c=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function b(t){const g=t.regex,e=(t=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:t.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:t.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(t),o=[t.APOS_STRING_MODE,t.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[e.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},e.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},e.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+s.join("|")+")"},{begin:":(:)?("+d.join("|")+")"}]},e.CSS_VARIABLE,{className:"attribute",begin:"\\b("+c.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[e.BLOCK_COMMENT,e.HEXCOLOR,e.IMPORTANT,e.CSS_NUMBER_MODE,...o,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...o,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},e.FUNCTION_DISPATCH]},{begin:g.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:l.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...o,e.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+a.join("|")+")\\b"}]}}}}]); \ No newline at end of file diff --git a/dist/ng-select2/535.1a67552e79f34cde.js b/dist/ng-select2/535.1a67552e79f34cde.js new file mode 100644 index 0000000..7ca8a95 --- /dev/null +++ b/dist/ng-select2/535.1a67552e79f34cde.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkng_select2=self.webpackChunkng_select2||[]).push([[535],{2535:(V,I,C)=>{C.r(I),C.d(I,{default:()=>F});const u="[A-Za-z$_][0-9A-Za-z$_]*",O=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],v=["true","false","null","undefined","NaN","Infinity"],w=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],M=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],k=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],x=["arguments","this","super","console","window","document","localStorage","module","global"],L=[].concat(k,w,M);function F(n){const e=function $(n){const e=n.regex,t=u,r={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(s,d)=>{const b=s[0].length+s.index,m=s.input[b];if("<"===m||","===m)return void d.ignoreMatch();let P;">"===m&&(((s,{after:d})=>{const b="",J={match:[/const|var|let/,/\s+/,t,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(U)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[E]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:c,exports:{PARAMS_CONTAINS:p,CLASS_REFERENCE:B},illegal:/#(?![$_A-z])/,contains:[n.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,N,S,l,y,A,B,{className:"attr",begin:t+e.lookahead(":"),relevance:0},J,{begin:"("+n.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[y,n.REGEXP_MODE,{className:"function",begin:U,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:c,contains:p}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:r.begin,"on:begin":r.isTrulyOpeningTag,end:r.end}],subLanguage:"xml",contains:[{begin:r.begin,end:r.end,skip:!0,contains:["self"]}]}]},G,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+n.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[E,n.inherit(n.TITLE_MODE,{begin:t,className:"title.function"})]},{match:/\.\.\./,relevance:0},H,{match:"\\$"+t,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[E]},W,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},Z,X,{match:/\$[(.]/}]}}(n),t=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],g={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[e.exports.CLASS_REFERENCE]},f={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:t},contains:[e.exports.CLASS_REFERENCE]},_={$pattern:u,keyword:O.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),literal:v,built_in:L.concat(t),"variable.language":x},o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},i=(a,N,S)=>{const l=a.contains.findIndex(R=>R.label===N);if(-1===l)throw new Error("can not find mode to replace");a.contains.splice(l,1,S)};return Object.assign(e.keywords,_),e.exports.PARAMS_CONTAINS.push(o),e.contains=e.contains.concat([o,g,f]),i(e,"shebang",n.SHEBANG()),i(e,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),e.contains.find(a=>"func.def"===a.label).relevance=0,Object.assign(e,{name:"TypeScript",aliases:["ts","tsx"]}),e}}}]); \ No newline at end of file diff --git a/dist/ng-select2/613.fb2be7632705305b.js b/dist/ng-select2/613.fb2be7632705305b.js new file mode 100644 index 0000000..bef949f --- /dev/null +++ b/dist/ng-select2/613.fb2be7632705305b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkng_select2=self.webpackChunkng_select2||[]).push([[613],{6613:(J,g,_)=>{_.r(g),_.d(g,{default:()=>x});const A="[A-Za-z$_][0-9A-Za-z$_]*",k=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],B=["true","false","null","undefined","NaN","Infinity"],N=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],S=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],m=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],U=["arguments","this","super","console","window","document","localStorage","module","global"],h=[].concat(m,N,S);function x(e){const a=e.regex,n=A,c={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(t,i)=>{const l=t[0].length+t.index,d=t.input[l];if("<"===d||","===d)return void i.ignoreMatch();let L;">"===d&&(((t,{after:i})=>{const l="",Y={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,a.lookahead(w)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[o]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:s,exports:{PARAMS_CONTAINS:u,CLASS_REFERENCE:v},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,I,O,C,b,y,v,{className:"attr",begin:n+a.lookahead(":"),relevance:0},Y,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[b,e.REGEXP_MODE,{className:"function",begin:w,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:s,contains:u}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:c.begin,"on:begin":c.isTrulyOpeningTag,end:c.end}],subLanguage:"xml",contains:[{begin:c.begin,end:c.end,skip:!0,contains:["self"]}]}]},z,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[o,e.inherit(e.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},W,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[o]},H,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},Z,X,{match:/\$[(.]/}]}}}}]); \ No newline at end of file diff --git a/dist/ng-select2/859.a80c1b65835618fa.js b/dist/ng-select2/859.a80c1b65835618fa.js new file mode 100644 index 0000000..0f9d3e4 --- /dev/null +++ b/dist/ng-select2/859.a80c1b65835618fa.js @@ -0,0 +1 @@ +(self.webpackChunkng_select2=self.webpackChunkng_select2||[]).push([[859],{859:()=>{!function(l,s){"use strict";var N="hljs-ln",g="hljs-ln-code",m="hljs-ln-n",d="data-line-number",p=/\r\n|\r|\n/g;function b(e){try{var n=s.querySelectorAll("code.hljs,code.nohighlight");for(var r in n)n.hasOwnProperty(r)&&(F(n[r])||E(n[r],e))}catch(t){l.console.error("LineNumbers error: ",t)}}function F(e){return e.classList.contains("nohljsln")}function E(e,n){"object"==typeof e&&function V(e){l.setTimeout(e,0)}(function(){e.innerHTML=L(e,n)})}function L(e,n){var r=function H(e,n){return{singleLine:I(n=n||{}),startFrom:R(e,n)}}(e,n);return A(e),function w(e,n){var r=j(e);if(""===r[r.length-1].trim()&&r.pop(),r.length>1||n.singleLine){for(var t="",a=0,i=r.length;a
{6}',["hljs-ln-line","hljs-ln-numbers",m,d,g,a+n.startFrom,r[a].length>0?r[a]:" "]);return c('{1}
',[N,t])}return e}(e.innerHTML,r)}function I(e){return!!e.singleLine&&e.singleLine}function R(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var a=function K(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==a&&(t=function T(e,n){if(!e)return n;var r=Number(e);return isFinite(r)?r:n}(a,1)),t}function A(e){var n=e.childNodes;for(var r in n)if(n.hasOwnProperty(r)){var t=n[r];P(t.textContent)>0&&(t.childNodes.length>0?A(t):k(t.parentNode))}}function k(e){var n=e.className;if(/hljs-/.test(n)){for(var r=j(e.innerHTML),t=0,a="";t{1}
\n',[n,r[t].length>0?r[t]:" "]);e.innerHTML=a.trim()}}function j(e){return 0===e.length?[]:e.split(p)}function P(e){return(e.trim().match(p)||[]).length}function c(e,n){return e.replace(/\{(\d+)\}/g,function(r,t){return void 0!==n[t]?n[t]:r})}l.hljs?(l.hljs.initLineNumbersOnLoad=function S(e){"interactive"===s.readyState||"complete"===s.readyState?b(e):l.addEventListener("DOMContentLoaded",function(){b(e)})},l.hljs.lineNumbersBlock=E,l.hljs.lineNumbersValue=function D(e,n){if("string"==typeof e){var r=document.createElement("code");return r.innerHTML=e,L(r,n)}},function B(){var e=s.createElement("style");e.type="text/css",e.innerHTML=c(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[N,m,d]),s.getElementsByTagName("head")[0].appendChild(e)}()):l.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var r,n=window.getSelection();(function O(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return!0;n=n.parentNode}return!1})(n.anchorNode)&&(r=-1!==window.navigator.userAgent.indexOf("Edge")?function _(e){for(var n=e.toString(),r=e.anchorNode;"TD"!==r.nodeName;)r=r.parentNode;for(var t=e.focusNode;"TD"!==t.nodeName;)t=t.parentNode;var a=parseInt(r.dataset.lineNumber),i=parseInt(t.dataset.lineNumber);if(a!=i){var o=r.textContent,u=t.textContent;if(a>i){var f=a;a=i,i=f,f=o,o=u,u=f}for(;0!==n.indexOf(o);)o=o.slice(1);for(;-1===n.lastIndexOf(u);)u=u.slice(0,-1);for(var h=o,q=function C(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(r),v=a+1;v - - - + + NgSelect2 - + - - - + + + - - + + + \ No newline at end of file diff --git a/dist/ng-select2/main.c570093eb910ca5e.js b/dist/ng-select2/main.c570093eb910ca5e.js new file mode 100644 index 0000000..556636f --- /dev/null +++ b/dist/ng-select2/main.c570093eb910ca5e.js @@ -0,0 +1 @@ +(self.webpackChunkng_select2=self.webpackChunkng_select2||[]).push([[179],{6445:(Yt,Ce,P)=>{"use strict";function U(n){return"function"==typeof n}let F=!1;const b={Promise:void 0,set useDeprecatedSynchronousErrorHandling(n){if(n){const e=new Error;console.warn("DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \n"+e.stack)}else F&&console.log("RxJS: Back to a better error behavior. Thank you. <3");F=n},get useDeprecatedSynchronousErrorHandling(){return F}};function D(n){setTimeout(()=>{throw n},0)}const $={closed:!0,next(n){},error(n){if(b.useDeprecatedSynchronousErrorHandling)throw n;D(n)},complete(){}},h=Array.isArray||(n=>n&&"number"==typeof n.length);function p(n){return null!==n&&"object"==typeof n}const V=(()=>{function n(e){return Error.call(this),this.message=e?`${e.length} errors occurred during unsubscription:\n${e.map((t,r)=>`${r+1}) ${t.toString()}`).join("\n ")}`:"",this.name="UnsubscriptionError",this.errors=e,this}return n.prototype=Object.create(Error.prototype),n})();class S{constructor(e){this.closed=!1,this._parentOrParents=null,this._subscriptions=null,e&&(this._ctorUnsubscribe=!0,this._unsubscribe=e)}unsubscribe(){let e;if(this.closed)return;let{_parentOrParents:t,_ctorUnsubscribe:r,_unsubscribe:i,_subscriptions:o}=this;if(this.closed=!0,this._parentOrParents=null,this._subscriptions=null,t instanceof S)t.remove(this);else if(null!==t)for(let s=0;se.concat(t instanceof V?t.errors:t),[])}S.EMPTY=((n=new S).closed=!0,n);const N="function"==typeof Symbol?Symbol("rxSubscriber"):"@@rxSubscriber_"+Math.random();class z extends S{constructor(e,t,r){switch(super(),this.syncErrorValue=null,this.syncErrorThrown=!1,this.syncErrorThrowable=!1,this.isStopped=!1,arguments.length){case 0:this.destination=$;break;case 1:if(!e){this.destination=$;break}if("object"==typeof e){e instanceof z?(this.syncErrorThrowable=e.syncErrorThrowable,this.destination=e,e.add(this)):(this.syncErrorThrowable=!0,this.destination=new Me(this,e));break}default:this.syncErrorThrowable=!0,this.destination=new Me(this,e,t,r)}}[N](){return this}static create(e,t,r){const i=new z(e,t,r);return i.syncErrorThrowable=!1,i}next(e){this.isStopped||this._next(e)}error(e){this.isStopped||(this.isStopped=!0,this._error(e))}complete(){this.isStopped||(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe())}_next(e){this.destination.next(e)}_error(e){this.destination.error(e),this.unsubscribe()}_complete(){this.destination.complete(),this.unsubscribe()}_unsubscribeAndRecycle(){const{_parentOrParents:e}=this;return this._parentOrParents=null,this.unsubscribe(),this.closed=!1,this.isStopped=!1,this._parentOrParents=e,this}}class Me extends z{constructor(e,t,r,i){super(),this._parentSubscriber=e;let o,s=this;U(t)?o=t:t&&(o=t.next,r=t.error,i=t.complete,t!==$&&(s=Object.create(t),U(s.unsubscribe)&&this.add(s.unsubscribe.bind(s)),s.unsubscribe=this.unsubscribe.bind(this))),this._context=s,this._next=o,this._error=r,this._complete=i}next(e){if(!this.isStopped&&this._next){const{_parentSubscriber:t}=this;b.useDeprecatedSynchronousErrorHandling&&t.syncErrorThrowable?this.__tryOrSetError(t,this._next,e)&&this.unsubscribe():this.__tryOrUnsub(this._next,e)}}error(e){if(!this.isStopped){const{_parentSubscriber:t}=this,{useDeprecatedSynchronousErrorHandling:r}=b;if(this._error)r&&t.syncErrorThrowable?(this.__tryOrSetError(t,this._error,e),this.unsubscribe()):(this.__tryOrUnsub(this._error,e),this.unsubscribe());else if(t.syncErrorThrowable)r?(t.syncErrorValue=e,t.syncErrorThrown=!0):D(e),this.unsubscribe();else{if(this.unsubscribe(),r)throw e;D(e)}}}complete(){if(!this.isStopped){const{_parentSubscriber:e}=this;if(this._complete){const t=()=>this._complete.call(this._context);b.useDeprecatedSynchronousErrorHandling&&e.syncErrorThrowable?(this.__tryOrSetError(e,t),this.unsubscribe()):(this.__tryOrUnsub(t),this.unsubscribe())}else this.unsubscribe()}}__tryOrUnsub(e,t){try{e.call(this._context,t)}catch(r){if(this.unsubscribe(),b.useDeprecatedSynchronousErrorHandling)throw r;D(r)}}__tryOrSetError(e,t,r){if(!b.useDeprecatedSynchronousErrorHandling)throw new Error("bad call");try{t.call(this._context,r)}catch(i){return b.useDeprecatedSynchronousErrorHandling?(e.syncErrorValue=i,e.syncErrorThrown=!0,!0):(D(i),!0)}return!1}_unsubscribe(){const{_parentSubscriber:e}=this;this._context=null,this._parentSubscriber=null,e.unsubscribe()}}const it="function"==typeof Symbol&&Symbol.observable||"@@observable";function bt(n){return n}function ot(n){return 0===n.length?bt:1===n.length?n[0]:function(t){return n.reduce((r,i)=>i(r),t)}}let ve=(()=>{class n{constructor(t){this._isScalar=!1,t&&(this._subscribe=t)}lift(t){const r=new n;return r.source=this,r.operator=t,r}subscribe(t,r,i){const{operator:o}=this,s=function Ut(n,e,t){if(n){if(n instanceof z)return n;if(n[N])return n[N]()}return n||e||t?new z(n,e,t):new z($)}(t,r,i);if(s.add(o?o.call(s,this.source):this.source||b.useDeprecatedSynchronousErrorHandling&&!s.syncErrorThrowable?this._subscribe(s):this._trySubscribe(s)),b.useDeprecatedSynchronousErrorHandling&&s.syncErrorThrowable&&(s.syncErrorThrowable=!1,s.syncErrorThrown))throw s.syncErrorValue;return s}_trySubscribe(t){try{return this._subscribe(t)}catch(r){b.useDeprecatedSynchronousErrorHandling&&(t.syncErrorThrown=!0,t.syncErrorValue=r),function rt(n){for(;n;){const{closed:e,destination:t,isStopped:r}=n;if(e||r)return!1;n=t&&t instanceof z?t:null}return!0}(t)?t.error(r):console.warn(r)}}forEach(t,r){return new(r=Zt(r))((i,o)=>{let s;s=this.subscribe(a=>{try{t(a)}catch(l){o(l),s&&s.unsubscribe()}},o,i)})}_subscribe(t){const{source:r}=this;return r&&r.subscribe(t)}[it](){return this}pipe(...t){return 0===t.length?this:ot(t)(this)}toPromise(t){return new(t=Zt(t))((r,i)=>{let o;this.subscribe(s=>o=s,s=>i(s),()=>r(o))})}}return n.create=e=>new n(e),n})();function Zt(n){if(n||(n=b.Promise||Promise),!n)throw new Error("no Promise impl found");return n}const st=(()=>{function n(){return Error.call(this),this.message="object unsubscribed",this.name="ObjectUnsubscribedError",this}return n.prototype=Object.create(Error.prototype),n})();class vr extends S{constructor(e,t){super(),this.subject=e,this.subscriber=t,this.closed=!1}unsubscribe(){if(this.closed)return;this.closed=!0;const e=this.subject,t=e.observers;if(this.subject=null,!t||0===t.length||e.isStopped||e.closed)return;const r=t.indexOf(this.subscriber);-1!==r&&t.splice(r,1)}}class yr extends z{constructor(e){super(e),this.destination=e}}let ke=(()=>{class n extends ve{constructor(){super(),this.observers=[],this.closed=!1,this.isStopped=!1,this.hasError=!1,this.thrownError=null}[N](){return new yr(this)}lift(t){const r=new cn(this,this);return r.operator=t,r}next(t){if(this.closed)throw new st;if(!this.isStopped){const{observers:r}=this,i=r.length,o=r.slice();for(let s=0;snew cn(e,t),n})();class cn extends ke{constructor(e,t){super(),this.destination=e,this.source=t}next(e){const{destination:t}=this;t&&t.next&&t.next(e)}error(e){const{destination:t}=this;t&&t.error&&this.destination.error(e)}complete(){const{destination:e}=this;e&&e.complete&&this.destination.complete()}_subscribe(e){const{source:t}=this;return t?this.source.subscribe(e):S.EMPTY}}function $t(n){return n&&"function"==typeof n.schedule}function Q(n,e){return function(r){if("function"!=typeof n)throw new TypeError("argument is not a function. Are you looking for `mapTo()`?");return r.lift(new hi(n,e))}}class hi{constructor(e,t){this.project=e,this.thisArg=t}call(e,t){return t.subscribe(new So(e,this.project,this.thisArg))}}class So extends z{constructor(e,t,r){super(e),this.project=t,this.count=0,this.thisArg=r||this}_next(e){let t;try{t=this.project.call(this.thisArg,e,this.count++)}catch(r){return void this.destination.error(r)}this.destination.next(t)}}const fi=n=>e=>{for(let t=0,r=n.length;tn&&"number"==typeof n.length&&"function"!=typeof n;function at(n){return!!n&&"function"!=typeof n.subscribe&&"function"==typeof n.then}const xt=n=>{if(n&&"function"==typeof n[it])return(n=>e=>{const t=n[it]();if("function"!=typeof t.subscribe)throw new TypeError("Provided object does not correctly implement Symbol.observable");return t.subscribe(e)})(n);if(It(n))return fi(n);if(at(n))return(n=>e=>(n.then(t=>{e.closed||(e.next(t),e.complete())},t=>e.error(t)).then(null,D),e))(n);if(n&&"function"==typeof n[un])return(n=>e=>{const t=n[un]();for(;;){let r;try{r=t.next()}catch(i){return e.error(i),e}if(r.done){e.complete();break}if(e.next(r.value),e.closed)break}return"function"==typeof t.return&&e.add(()=>{t.return&&t.return()}),e})(n);{const t=`You provided ${p(n)?"an invalid object":`'${n}'`} where a stream was expected. You can provide an Observable, Promise, Array, or Iterable.`;throw new TypeError(t)}};function kr(n,e){return new ve(t=>{const r=new S;let i=0;return r.add(e.schedule(function(){i!==n.length?(t.next(n[i++]),t.closed||r.add(this.schedule())):t.complete()})),r})}function Qe(n,e){return e?function MD(n,e){if(null!=n){if(function ED(n){return n&&"function"==typeof n[it]}(n))return function dn(n,e){return new ve(t=>{const r=new S;return r.add(e.schedule(()=>{const i=n[it]();r.add(i.subscribe({next(o){r.add(e.schedule(()=>t.next(o)))},error(o){r.add(e.schedule(()=>t.error(o)))},complete(){r.add(e.schedule(()=>t.complete()))}}))})),r})}(n,e);if(at(n))return function Zn(n,e){return new ve(t=>{const r=new S;return r.add(e.schedule(()=>n.then(i=>{r.add(e.schedule(()=>{t.next(i),r.add(e.schedule(()=>t.complete()))}))},i=>{r.add(e.schedule(()=>t.error(i)))}))),r})}(n,e);if(It(n))return kr(n,e);if(function SD(n){return n&&"function"==typeof n[un]}(n)||"string"==typeof n)return function Lf(n,e){if(!n)throw new Error("Iterable cannot be null");return new ve(t=>{const r=new S;let i;return r.add(()=>{i&&"function"==typeof i.return&&i.return()}),r.add(e.schedule(()=>{i=n[un](),r.add(e.schedule(function(){if(t.closed)return;let o,s;try{const a=i.next();o=a.value,s=a.done}catch(a){return void t.error(a)}s?t.complete():(t.next(o),this.schedule())}))})),r})}(n,e)}throw new TypeError((null!==n&&typeof n||n)+" is not observable")}(n,e):n instanceof ve?n:new ve(xt(n))}class mi extends z{constructor(e){super(),this.parent=e}_next(e){this.parent.notifyNext(e)}_error(e){this.parent.notifyError(e),this.unsubscribe()}_complete(){this.parent.notifyComplete(),this.unsubscribe()}}class _i extends z{notifyNext(e){this.destination.next(e)}notifyError(e){this.destination.error(e)}notifyComplete(){this.destination.complete()}}function vi(n,e){if(e.closed)return;if(n instanceof ve)return n.subscribe(e);let t;try{t=xt(n)(e)}catch(r){e.error(r)}return t}function _t(n,e,t=Number.POSITIVE_INFINITY){return"function"==typeof e?r=>r.pipe(_t((i,o)=>Qe(n(i,o)).pipe(Q((s,a)=>e(i,s,o,a))),t)):("number"==typeof e&&(t=e),r=>r.lift(new AD(n,t)))}class AD{constructor(e,t=Number.POSITIVE_INFINITY){this.project=e,this.concurrent=t}call(e,t){return t.subscribe(new OD(e,this.project,this.concurrent))}}class OD extends _i{constructor(e,t,r=Number.POSITIVE_INFINITY){super(e),this.project=t,this.concurrent=r,this.hasCompleted=!1,this.buffer=[],this.active=0,this.index=0}_next(e){this.active0?this._next(e.shift()):0===this.active&&this.hasCompleted&&this.destination.complete()}}function yi(n=Number.POSITIVE_INFINITY){return _t(bt,n)}function $s(n,e){return e?kr(n,e):new ve(fi(n))}function Vf(...n){let e=Number.POSITIVE_INFINITY,t=null,r=n[n.length-1];return $t(r)?(t=n.pop(),n.length>1&&"number"==typeof n[n.length-1]&&(e=n.pop())):"number"==typeof r&&(e=n.pop()),null===t&&1===n.length&&n[0]instanceof ve?n[0]:yi(e)($s(n,t))}function zs(){return function(e){return e.lift(new TD(e))}}class TD{constructor(e){this.connectable=e}call(e,t){const{connectable:r}=this;r._refCount++;const i=new ID(e,r),o=t.subscribe(i);return i.closed||(i.connection=r.connect()),o}}class ID extends z{constructor(e,t){super(e),this.connectable=t}_unsubscribe(){const{connectable:e}=this;if(!e)return void(this.connection=null);this.connectable=null;const t=e._refCount;if(t<=0)return void(this.connection=null);if(e._refCount=t-1,t>1)return void(this.connection=null);const{connection:r}=this,i=e._connection;this.connection=null,i&&(!r||i===r)&&i.unsubscribe()}}class sc extends ve{constructor(e,t){super(),this.source=e,this.subjectFactory=t,this._refCount=0,this._isComplete=!1}_subscribe(e){return this.getSubject().subscribe(e)}getSubject(){const e=this._subject;return(!e||e.isStopped)&&(this._subject=this.subjectFactory()),this._subject}connect(){let e=this._connection;return e||(this._isComplete=!1,e=this._connection=new S,e.add(this.source.subscribe(new PD(this.getSubject(),this))),e.closed&&(this._connection=null,e=S.EMPTY)),e}refCount(){return zs()(this)}}const xD=(()=>{const n=sc.prototype;return{operator:{value:null},_refCount:{value:0,writable:!0},_subject:{value:null,writable:!0},_connection:{value:null,writable:!0},_subscribe:{value:n._subscribe},_isComplete:{value:n._isComplete,writable:!0},getSubject:{value:n.getSubject},connect:{value:n.connect},refCount:{value:n.refCount}}})();class PD extends yr{constructor(e,t){super(e),this.connectable=t}_error(e){this._unsubscribe(),super._error(e)}_complete(){this.connectable._isComplete=!0,this._unsubscribe(),super._complete()}_unsubscribe(){const e=this.connectable;if(e){this.connectable=null;const t=e._connection;e._refCount=0,e._subject=null,e._connection=null,t&&t.unsubscribe()}}}class kD{constructor(e,t){this.subjectFactory=e,this.selector=t}call(e,t){const{selector:r}=this,i=this.subjectFactory(),o=r(i).subscribe(e);return o.add(t.subscribe(i)),o}}function FD(){return new ke}function Ie(n){for(let e in n)if(n[e]===Ie)return e;throw Error("Could not find renamed property on target object.")}function ac(n,e){for(const t in e)e.hasOwnProperty(t)&&!n.hasOwnProperty(t)&&(n[t]=e[t])}function xe(n){if("string"==typeof n)return n;if(Array.isArray(n))return"["+n.map(xe).join(", ")+"]";if(null==n)return""+n;if(n.overriddenName)return`${n.overriddenName}`;if(n.name)return`${n.name}`;const e=n.toString();if(null==e)return""+e;const t=e.indexOf("\n");return-1===t?e:e.substring(0,t)}function lc(n,e){return null==n||""===n?null===e?"":e:null==e||""===e?n:n+" "+e}const VD=Ie({__forward_ref__:Ie});function Fe(n){return n.__forward_ref__=Fe,n.toString=function(){return xe(this())},n}function re(n){return cc(n)?n():n}function cc(n){return"function"==typeof n&&n.hasOwnProperty(VD)&&n.__forward_ref__===Fe}class k extends Error{constructor(e,t){super(function Gs(n,e){return`NG0${Math.abs(n)}${e?": "+e.trim():""}`}(e,t)),this.code=e}}function se(n){return"string"==typeof n?n:null==n?"":String(n)}function Ws(n,e){throw new k(-201,!1)}function Qt(n,e){null==n&&function Ee(n,e,t,r){throw new Error(`ASSERTION ERROR: ${n}`+(null==r?"":` [Expected=> ${t} ${r} ${e} <=Actual]`))}(e,n,null,"!=")}function q(n){return{token:n.token,providedIn:n.providedIn||null,factory:n.factory,value:void 0}}function Xe(n){return{providers:n.providers||[],imports:n.imports||[]}}function uc(n){return Bf(n,qs)||Bf(n,jf)}function Bf(n,e){return n.hasOwnProperty(e)?n[e]:null}function Hf(n){return n&&(n.hasOwnProperty(dc)||n.hasOwnProperty(WD))?n[dc]:null}const qs=Ie({\u0275prov:Ie}),dc=Ie({\u0275inj:Ie}),jf=Ie({ngInjectableDef:Ie}),WD=Ie({ngInjectorDef:Ie});var J=(()=>((J=J||{})[J.Default=0]="Default",J[J.Host=1]="Host",J[J.Self=2]="Self",J[J.SkipSelf=4]="SkipSelf",J[J.Optional=8]="Optional",J))();let hc;function hn(n){const e=hc;return hc=n,e}function Uf(n,e,t){const r=uc(n);return r&&"root"==r.providedIn?void 0===r.value?r.value=r.factory():r.value:t&J.Optional?null:void 0!==e?e:void Ws(xe(n))}function br(n){return{toString:n}.toString()}var Dn=(()=>((Dn=Dn||{})[Dn.OnPush=0]="OnPush",Dn[Dn.Default=1]="Default",Dn))(),kn=(()=>(function(n){n[n.Emulated=0]="Emulated",n[n.None=2]="None",n[n.ShadowDom=3]="ShadowDom"}(kn||(kn={})),kn))();const Te=(()=>typeof globalThis<"u"&&globalThis||typeof global<"u"&&global||typeof window<"u"&&window||typeof self<"u"&&typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&self)(),bi={},De=[],Ys=Ie({\u0275cmp:Ie}),fc=Ie({\u0275dir:Ie}),pc=Ie({\u0275pipe:Ie}),$f=Ie({\u0275mod:Ie}),Qn=Ie({\u0275fac:Ie}),Oo=Ie({__NG_ELEMENT_ID__:Ie});let YD=0;function Fr(n){return br(()=>{const t=!0===n.standalone,r={},i={type:n.type,providersResolver:null,decls:n.decls,vars:n.vars,factory:null,template:n.template||null,consts:n.consts||null,ngContentSelectors:n.ngContentSelectors,hostBindings:n.hostBindings||null,hostVars:n.hostVars||0,hostAttrs:n.hostAttrs||null,contentQueries:n.contentQueries||null,declaredInputs:r,inputs:null,outputs:null,exportAs:n.exportAs||null,onPush:n.changeDetection===Dn.OnPush,directiveDefs:null,pipeDefs:null,standalone:t,dependencies:t&&n.dependencies||null,getStandaloneInjector:null,selectors:n.selectors||De,viewQuery:n.viewQuery||null,features:n.features||null,data:n.data||{},encapsulation:n.encapsulation||kn.Emulated,id:"c"+YD++,styles:n.styles||De,_:null,setInput:null,schemas:n.schemas||null,tView:null},o=n.dependencies,s=n.features;return i.inputs=Wf(n.inputs,r),i.outputs=Wf(n.outputs),s&&s.forEach(a=>a(i)),i.directiveDefs=o?()=>("function"==typeof o?o():o).map(zf).filter(Gf):null,i.pipeDefs=o?()=>("function"==typeof o?o():o).map(Rt).filter(Gf):null,i})}function zf(n){return Ae(n)||Pt(n)}function Gf(n){return null!==n}const KD={};function lt(n){return br(()=>{const e={type:n.type,bootstrap:n.bootstrap||De,declarations:n.declarations||De,imports:n.imports||De,exports:n.exports||De,transitiveCompileScopes:null,schemas:n.schemas||null,id:n.id||null};return null!=n.id&&(KD[n.id]=n.type),e})}function Wf(n,e){if(null==n)return bi;const t={};for(const r in n)if(n.hasOwnProperty(r)){let i=n[r],o=i;Array.isArray(i)&&(o=i[1],i=i[0]),t[i]=r,e&&(e[i]=o)}return t}const Z=Fr;function zt(n){return{type:n.type,name:n.name,factory:null,pure:!1!==n.pure,standalone:!0===n.standalone,onDestroy:n.type.prototype.ngOnDestroy||null}}function Ae(n){return n[Ys]||null}function Pt(n){return n[fc]||null}function Rt(n){return n[pc]||null}function Xt(n,e){const t=n[$f]||null;if(!t&&!0===e)throw new Error(`Type ${xe(n)} does not have '\u0275mod' property.`);return t}function Gt(n){return Array.isArray(n)&&"object"==typeof n[1]}function Sn(n){return Array.isArray(n)&&!0===n[1]}function _c(n){return 0!=(8&n.flags)}function Xs(n){return 2==(2&n.flags)}function Js(n){return 1==(1&n.flags)}function Mn(n){return null!==n.template}function tE(n){return 0!=(256&n[2])}function jr(n,e){return n.hasOwnProperty(Qn)?n[Qn]:null}class iE{constructor(e,t,r){this.previousValue=e,this.currentValue=t,this.firstChange=r}isFirstChange(){return this.firstChange}}function Nt(){return Zf}function Zf(n){return n.type.prototype.ngOnChanges&&(n.setInput=sE),oE}function oE(){const n=Qf(this),e=n?.current;if(e){const t=n.previous;if(t===bi)n.previous=e;else for(let r in e)t[r]=e[r];n.current=null,this.ngOnChanges(e)}}function sE(n,e,t,r){const i=Qf(n)||function aE(n,e){return n[Kf]=e}(n,{previous:bi,current:null}),o=i.current||(i.current={}),s=i.previous,a=this.declaredInputs[t],l=s[a];o[a]=new iE(l&&l.currentValue,e,s===bi),n[r]=e}Nt.ngInherit=!0;const Kf="__ngSimpleChanges__";function Qf(n){return n[Kf]||null}function Je(n){for(;Array.isArray(n);)n=n[0];return n}function ea(n,e){return Je(e[n])}function gn(n,e){return Je(e[n.index])}function wc(n,e){return n.data[e]}function Si(n,e){return n[e]}function en(n,e){const t=e[n];return Gt(t)?t:t[0]}function Xf(n){return 4==(4&n[2])}function Dc(n){return 64==(64&n[2])}function Cr(n,e){return null==e?null:n[e]}function Jf(n){n[18]=0}function Ec(n,e){n[5]+=e;let t=n,r=n[3];for(;null!==r&&(1===e&&1===t[5]||-1===e&&0===t[5]);)r[5]+=e,t=r,r=r[3]}const oe={lFrame:lp(null),bindingsEnabled:!0};function tp(){return oe.bindingsEnabled}function T(){return oe.lFrame.lView}function be(){return oe.lFrame.tView}function qe(n){return oe.lFrame.contextLView=n,n[8]}function Ye(n){return oe.lFrame.contextLView=null,n}function ct(){let n=np();for(;null!==n&&64===n.type;)n=n.parent;return n}function np(){return oe.lFrame.currentTNode}function Fn(n,e){const t=oe.lFrame;t.currentTNode=n,t.isParent=e}function Sc(){return oe.lFrame.isParent}function Mc(){oe.lFrame.isParent=!1}function kt(){const n=oe.lFrame;let e=n.bindingRootIndex;return-1===e&&(e=n.bindingRootIndex=n.tView.bindingStartIndex),e}function Mi(){return oe.lFrame.bindingIndex++}function Jn(n){const e=oe.lFrame,t=e.bindingIndex;return e.bindingIndex=e.bindingIndex+n,t}function CE(n,e){const t=oe.lFrame;t.bindingIndex=t.bindingRootIndex=n,Ac(e)}function Ac(n){oe.lFrame.currentDirectiveIndex=n}function op(){return oe.lFrame.currentQueryIndex}function Tc(n){oe.lFrame.currentQueryIndex=n}function DE(n){const e=n[1];return 2===e.type?e.declTNode:1===e.type?n[6]:null}function sp(n,e,t){if(t&J.SkipSelf){let i=e,o=n;for(;!(i=i.parent,null!==i||t&J.Host||(i=DE(o),null===i||(o=o[15],10&i.type))););if(null===i)return!1;e=i,n=o}const r=oe.lFrame=ap();return r.currentTNode=e,r.lView=n,!0}function Ic(n){const e=ap(),t=n[1];oe.lFrame=e,e.currentTNode=t.firstChild,e.lView=n,e.tView=t,e.contextLView=n,e.bindingIndex=t.bindingStartIndex,e.inI18n=!1}function ap(){const n=oe.lFrame,e=null===n?null:n.child;return null===e?lp(n):e}function lp(n){const e={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:n,child:null,inI18n:!1};return null!==n&&(n.child=e),e}function cp(){const n=oe.lFrame;return oe.lFrame=n.parent,n.currentTNode=null,n.lView=null,n}const up=cp;function xc(){const n=cp();n.isParent=!0,n.tView=null,n.selectedIndex=-1,n.contextLView=null,n.elementDepthCount=0,n.currentDirectiveIndex=-1,n.currentNamespace=null,n.bindingRootIndex=-1,n.bindingIndex=-1,n.currentQueryIndex=0}function Ft(){return oe.lFrame.selectedIndex}function wr(n){oe.lFrame.selectedIndex=n}function Ge(){const n=oe.lFrame;return wc(n.tView,n.selectedIndex)}function na(n,e){for(let t=e.directiveStart,r=e.directiveEnd;t=r)break}else e[l]<0&&(n[18]+=65536),(a>11>16&&(3&n[2])===e){n[2]+=2048;try{o.call(a)}finally{}}}else try{o.call(a)}finally{}}class Ro{constructor(e,t,r){this.factory=e,this.resolving=!1,this.canSeeViewProviders=t,this.injectImpl=r}}function oa(n,e,t){let r=0;for(;re){s=o-1;break}}}for(;o>16}(n),r=e;for(;t>0;)r=r[15],t--;return r}let Nc=!0;function aa(n){const e=Nc;return Nc=n,e}let VE=0;const Ln={};function ko(n,e){const t=Fc(n,e);if(-1!==t)return t;const r=e[1];r.firstCreatePass&&(n.injectorIndex=e.length,kc(r.data,n),kc(e,null),kc(r.blueprint,null));const i=la(n,e),o=n.injectorIndex;if(gp(i)){const s=Ai(i),a=Oi(i,e),l=a[1].data;for(let c=0;c<8;c++)e[o+c]=a[s+c]|l[s+c]}return e[o+8]=i,o}function kc(n,e){n.push(0,0,0,0,0,0,0,0,e)}function Fc(n,e){return-1===n.injectorIndex||n.parent&&n.parent.injectorIndex===n.injectorIndex||null===e[n.injectorIndex+8]?-1:n.injectorIndex}function la(n,e){if(n.parent&&-1!==n.parent.injectorIndex)return n.parent.injectorIndex;let t=0,r=null,i=e;for(;null!==i;){if(r=Ep(i),null===r)return-1;if(t++,i=i[15],-1!==r.injectorIndex)return r.injectorIndex|t<<16}return-1}function ca(n,e,t){!function BE(n,e,t){let r;"string"==typeof t?r=t.charCodeAt(0)||0:t.hasOwnProperty(Oo)&&(r=t[Oo]),null==r&&(r=t[Oo]=VE++);const i=255&r;e.data[n+(i>>5)]|=1<=0?255&e:$E:e}(t);if("function"==typeof o){if(!sp(e,n,r))return r&J.Host?vp(i,0,r):yp(e,t,r,i);try{const s=o(r);if(null!=s||r&J.Optional)return s;Ws()}finally{up()}}else if("number"==typeof o){let s=null,a=Fc(n,e),l=-1,c=r&J.Host?e[16][6]:null;for((-1===a||r&J.SkipSelf)&&(l=-1===a?la(n,e):e[a+8],-1!==l&&Dp(r,!1)?(s=e[1],a=Ai(l),e=Oi(l,e)):a=-1);-1!==a;){const u=e[1];if(wp(o,a,u.data)){const d=jE(a,e,t,s,r,c);if(d!==Ln)return d}l=e[a+8],-1!==l&&Dp(r,e[1].data[a+8]===c)&&wp(o,a,e)?(s=u,a=Ai(l),e=Oi(l,e)):a=-1}}return i}function jE(n,e,t,r,i,o){const s=e[1],a=s.data[n+8],u=ua(a,s,t,null==r?Xs(a)&&Nc:r!=s&&0!=(3&a.type),i&J.Host&&o===a);return null!==u?Fo(e,s,u,a):Ln}function ua(n,e,t,r,i){const o=n.providerIndexes,s=e.data,a=1048575&o,l=n.directiveStart,u=o>>20,f=i?a+u:n.directiveEnd;for(let g=r?a:a+u;g=l&&v.type===t)return g}if(i){const g=s[l];if(g&&Mn(g)&&g.type===t)return l}return null}function Fo(n,e,t,r){let i=n[t];const o=e.data;if(function RE(n){return n instanceof Ro}(i)){const s=i;s.resolving&&function BD(n,e){const t=e?`. Dependency path: ${e.join(" > ")} > ${n}`:"";throw new k(-200,`Circular dependency in DI detected for ${n}${t}`)}(function we(n){return"function"==typeof n?n.name||n.toString():"object"==typeof n&&null!=n&&"function"==typeof n.type?n.type.name||n.type.toString():se(n)}(o[t]));const a=aa(s.canSeeViewProviders);s.resolving=!0;const l=s.injectImpl?hn(s.injectImpl):null;sp(n,r,J.Default);try{i=n[t]=s.factory(void 0,o,n,r),e.firstCreatePass&&t>=r.directiveStart&&function xE(n,e,t){const{ngOnChanges:r,ngOnInit:i,ngDoCheck:o}=e.type.prototype;if(r){const s=Zf(e);(t.preOrderHooks||(t.preOrderHooks=[])).push(n,s),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n,s)}i&&(t.preOrderHooks||(t.preOrderHooks=[])).push(0-n,i),o&&((t.preOrderHooks||(t.preOrderHooks=[])).push(n,o),(t.preOrderCheckHooks||(t.preOrderCheckHooks=[])).push(n,o))}(t,o[t],e)}finally{null!==l&&hn(l),aa(a),s.resolving=!1,up()}}return i}function wp(n,e,t){return!!(t[e+(n>>5)]&1<{const e=n.prototype.constructor,t=e[Qn]||Lc(e),r=Object.prototype;let i=Object.getPrototypeOf(n.prototype).constructor;for(;i&&i!==r;){const o=i[Qn]||Lc(i);if(o&&o!==t)return o;i=Object.getPrototypeOf(i)}return o=>new o})}function Lc(n){return cc(n)?()=>{const e=Lc(re(n));return e&&e()}:jr(n)}function Ep(n){const e=n[1],t=e.type;return 2===t?e.declTNode:1===t?n[6]:null}function Ii(n){return function HE(n,e){if("class"===e)return n.classes;if("style"===e)return n.styles;const t=n.attrs;if(t){const r=t.length;let i=0;for(;i{const r=function Vc(n){return function(...t){if(n){const r=n(...t);for(const i in r)this[i]=r[i]}}}(e);function i(...o){if(this instanceof i)return r.apply(this,o),this;const s=new i(...o);return a.annotation=s,a;function a(l,c,u){const d=l.hasOwnProperty(Pi)?l[Pi]:Object.defineProperty(l,Pi,{value:[]})[Pi];for(;d.length<=u;)d.push(null);return(d[u]=d[u]||[]).push(s),l}}return t&&(i.prototype=Object.create(t.prototype)),i.prototype.ngMetadataName=n,i.annotationCls=i,i})}class X{constructor(e,t){this._desc=e,this.ngMetadataName="InjectionToken",this.\u0275prov=void 0,"number"==typeof t?this.__NG_ELEMENT_ID__=t:void 0!==t&&(this.\u0275prov=q({token:this,providedIn:t.providedIn||"root",factory:t.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}}const WE=new X("AnalyzeForEntryComponents");function tn(n,e){void 0===e&&(e=n);for(let t=0;tArray.isArray(t)?er(t,e):e(t))}function Mp(n,e,t){e>=n.length?n.push(t):n.splice(e,0,t)}function da(n,e){return e>=n.length-1?n.pop():n.splice(e,1)[0]}function Bo(n,e){const t=[];for(let r=0;r=0?n[1|r]=t:(r=~r,function ZE(n,e,t,r){let i=n.length;if(i==e)n.push(t,r);else if(1===i)n.push(r,n[0]),n[0]=t;else{for(i--,n.push(n[i-1],n[i]);i>e;)n[i]=n[i-2],i--;n[e]=t,n[e+1]=r}}(n,r,e,t)),r}function Hc(n,e){const t=ki(n,e);if(t>=0)return n[1|t]}function ki(n,e){return function Tp(n,e,t){let r=0,i=n.length>>t;for(;i!==r;){const o=r+(i-r>>1),s=n[o<e?i=o:r=o+1}return~(i<n,createScript:n=>n,createScriptURL:n=>n})}catch{}return ma}()?.createHTML(n)||n}function Hp(n){return function qc(){if(void 0===_a&&(_a=null,Te.trustedTypes))try{_a=Te.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:n=>n,createScript:n=>n,createScriptURL:n=>n})}catch{}return _a}()?.createHTML(n)||n}class $r{constructor(e){this.changingThisBreaksApplicationSecurity=e}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see https://g.co/ng/security#xss)`}}class CS extends $r{getTypeName(){return"HTML"}}class wS extends $r{getTypeName(){return"Style"}}class DS extends $r{getTypeName(){return"Script"}}class ES extends $r{getTypeName(){return"URL"}}class SS extends $r{getTypeName(){return"ResourceURL"}}function rn(n){return n instanceof $r?n.changingThisBreaksApplicationSecurity:n}function Vn(n,e){const t=function MS(n){return n instanceof $r&&n.getTypeName()||null}(n);if(null!=t&&t!==e){if("ResourceURL"===t&&"URL"===e)return!0;throw new Error(`Required a safe ${e}, got a ${t} (see https://g.co/ng/security#xss)`)}return t===e}class PS{constructor(e){this.inertDocumentHelper=e}getInertBodyElement(e){e=""+e;try{const t=(new window.DOMParser).parseFromString(Vi(e),"text/html").body;return null===t?this.inertDocumentHelper.getInertBodyElement(e):(t.removeChild(t.firstChild),t)}catch{return null}}}class RS{constructor(e){if(this.defaultDoc=e,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert"),null==this.inertDocument.body){const t=this.inertDocument.createElement("html");this.inertDocument.appendChild(t);const r=this.inertDocument.createElement("body");t.appendChild(r)}}getInertBodyElement(e){const t=this.inertDocument.createElement("template");if("content"in t)return t.innerHTML=Vi(e),t;const r=this.inertDocument.createElement("body");return r.innerHTML=Vi(e),this.defaultDoc.documentMode&&this.stripCustomNsAttrs(r),r}stripCustomNsAttrs(e){const t=e.attributes;for(let i=t.length-1;0Wo(e.trim())).join(", ")}function Bn(n){const e={};for(const t of n.split(","))e[t]=!0;return e}function qo(...n){const e={};for(const t of n)for(const r in t)t.hasOwnProperty(r)&&(e[r]=!0);return e}const Gp=Bn("area,br,col,hr,img,wbr"),Wp=Bn("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),qp=Bn("rp,rt"),Yc=qo(Gp,qo(Wp,Bn("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),qo(qp,Bn("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),qo(qp,Wp)),Zc=Bn("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),Kc=Bn("srcset"),Yp=qo(Zc,Kc,Bn("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),Bn("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext")),LS=Bn("script,style,template");class VS{constructor(){this.sanitizedSomething=!1,this.buf=[]}sanitizeChildren(e){let t=e.firstChild,r=!0;for(;t;)if(t.nodeType===Node.ELEMENT_NODE?r=this.startElement(t):t.nodeType===Node.TEXT_NODE?this.chars(t.nodeValue):this.sanitizedSomething=!0,r&&t.firstChild)t=t.firstChild;else for(;t;){t.nodeType===Node.ELEMENT_NODE&&this.endElement(t);let i=this.checkClobberedElement(t,t.nextSibling);if(i){t=i;break}t=this.checkClobberedElement(t,t.parentNode)}return this.buf.join("")}startElement(e){const t=e.nodeName.toLowerCase();if(!Yc.hasOwnProperty(t))return this.sanitizedSomething=!0,!LS.hasOwnProperty(t);this.buf.push("<"),this.buf.push(t);const r=e.attributes;for(let i=0;i"),!0}endElement(e){const t=e.nodeName.toLowerCase();Yc.hasOwnProperty(t)&&!Gp.hasOwnProperty(t)&&(this.buf.push(""))}chars(e){this.buf.push(Zp(e))}checkClobberedElement(e,t){if(t&&(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)===Node.DOCUMENT_POSITION_CONTAINED_BY)throw new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`);return t}}const BS=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,HS=/([^\#-~ |!])/g;function Zp(n){return n.replace(/&/g,"&").replace(BS,function(e){return"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";"}).replace(HS,function(e){return"&#"+e.charCodeAt(0)+";"}).replace(//g,">")}let va;function Kp(n,e){let t=null;try{va=va||function $p(n){const e=new RS(n);return function NS(){try{return!!(new window.DOMParser).parseFromString(Vi(""),"text/html")}catch{return!1}}()?new PS(e):e}(n);let r=e?String(e):"";t=va.getInertBodyElement(r);let i=5,o=r;do{if(0===i)throw new Error("Failed to sanitize html because the input is unstable");i--,r=o,o=t.innerHTML,t=va.getInertBodyElement(r)}while(r!==o);return Vi((new VS).sanitizeChildren(Qc(t)||t))}finally{if(t){const r=Qc(t)||t;for(;r.firstChild;)r.removeChild(r.firstChild)}}}function Qc(n){return"content"in n&&function jS(n){return n.nodeType===Node.ELEMENT_NODE&&"TEMPLATE"===n.nodeName}(n)?n.content:null}var Pe=(()=>((Pe=Pe||{})[Pe.NONE=0]="NONE",Pe[Pe.HTML=1]="HTML",Pe[Pe.STYLE=2]="STYLE",Pe[Pe.SCRIPT=3]="SCRIPT",Pe[Pe.URL=4]="URL",Pe[Pe.RESOURCE_URL=5]="RESOURCE_URL",Pe))();function An(n){const e=Yo();return e?Hp(e.sanitize(Pe.HTML,n)||""):Vn(n,"HTML")?Hp(rn(n)):Kp(function Bp(){return void 0!==Gc?Gc:typeof document<"u"?document:void 0}(),se(n))}function Xc(n){const e=Yo();return e?e.sanitize(Pe.URL,n)||"":Vn(n,"URL")?rn(n):Wo(se(n))}function Yo(){const n=T();return n&&n[12]}const Jc=new X("ENVIRONMENT_INITIALIZER"),Xp=new X("INJECTOR",-1),Jp=new X("INJECTOR_DEF_TYPES");class eg{get(e,t=Ho){if(t===Ho){const r=new Error(`NullInjectorError: No provider for ${xe(e)}!`);throw r.name="NullInjectorError",r}return t}}function YS(...n){return{\u0275providers:tg(0,n)}}function tg(n,...e){const t=[],r=new Set;let i;return er(e,o=>{const s=o;eu(s,t,[],r)&&(i||(i=[]),i.push(s))}),void 0!==i&&ng(i,t),t}function ng(n,e){for(let t=0;t{e.push(o)})}}function eu(n,e,t,r){if(!(n=re(n)))return!1;let i=null,o=Hf(n);const s=!o&&Ae(n);if(o||s){if(s&&!s.standalone)return!1;i=n}else{const l=n.ngModule;if(o=Hf(l),!o)return!1;i=l}const a=r.has(i);if(s){if(a)return!1;if(r.add(i),s.dependencies){const l="function"==typeof s.dependencies?s.dependencies():s.dependencies;for(const c of l)eu(c,e,t,r)}}else{if(!o)return!1;{if(null!=o.imports&&!a){let c;r.add(i);try{er(o.imports,u=>{eu(u,e,t,r)&&(c||(c=[]),c.push(u))})}finally{}void 0!==c&&ng(c,e)}if(!a){const c=jr(i)||(()=>new i);e.push({provide:i,useFactory:c,deps:De},{provide:Jp,useValue:i,multi:!0},{provide:Jc,useValue:()=>I(i),multi:!0})}const l=o.providers;null==l||a||er(l,u=>{e.push(u)})}}return i!==n&&void 0!==n.providers}const ZS=Ie({provide:String,useValue:Ie});function tu(n){return null!==n&&"object"==typeof n&&ZS in n}function zr(n){return"function"==typeof n}const nu=new X("Set Injector scope."),ya={},QS={};let ru;function ba(){return void 0===ru&&(ru=new eg),ru}class Er{}class og extends Er{constructor(e,t,r,i){super(),this.parent=t,this.source=r,this.scopes=i,this.records=new Map,this._ngOnDestroyHooks=new Set,this._onDestroyHooks=[],this._destroyed=!1,ou(e,s=>this.processProvider(s)),this.records.set(Xp,Bi(void 0,this)),i.has("environment")&&this.records.set(Er,Bi(void 0,this));const o=this.records.get(nu);null!=o&&"string"==typeof o.value&&this.scopes.add(o.value),this.injectorDefTypes=new Set(this.get(Jp.multi,De,J.Self))}get destroyed(){return this._destroyed}destroy(){this.assertNotDestroyed(),this._destroyed=!0;try{for(const e of this._ngOnDestroyHooks)e.ngOnDestroy();for(const e of this._onDestroyHooks)e()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),this._onDestroyHooks.length=0}}onDestroy(e){this._onDestroyHooks.push(e)}runInContext(e){this.assertNotDestroyed();const t=Fi(this),r=hn(void 0);try{return e()}finally{Fi(t),hn(r)}}get(e,t=Ho,r=J.Default){this.assertNotDestroyed();const i=Fi(this),o=hn(void 0);try{if(!(r&J.SkipSelf)){let a=this.records.get(e);if(void 0===a){const l=function nM(n){return"function"==typeof n||"object"==typeof n&&n instanceof X}(e)&&uc(e);a=l&&this.injectableDefInScope(l)?Bi(iu(e),ya):null,this.records.set(e,a)}if(null!=a)return this.hydrate(e,a)}return(r&J.Self?ba():this.parent).get(e,t=r&J.Optional&&t===Ho?null:t)}catch(s){if("NullInjectorError"===s.name){if((s[fa]=s[fa]||[]).unshift(xe(e)),i)throw s;return function aS(n,e,t,r){const i=n[fa];throw e[Ip]&&i.unshift(e[Ip]),n.message=function lS(n,e,t,r=null){n=n&&"\n"===n.charAt(0)&&"\u0275"==n.charAt(1)?n.slice(2):n;let i=xe(e);if(Array.isArray(e))i=e.map(xe).join(" -> ");else if("object"==typeof e){let o=[];for(let s in e)if(e.hasOwnProperty(s)){let a=e[s];o.push(s+":"+("string"==typeof a?JSON.stringify(a):xe(a)))}i=`{${o.join(", ")}}`}return`${t}${r?"("+r+")":""}[${i}]: ${n.replace(rS,"\n ")}`}("\n"+n.message,i,t,r),n.ngTokenPath=i,n[fa]=null,n}(s,e,"R3InjectorError",this.source)}throw s}finally{hn(o),Fi(i)}}resolveInjectorInitializers(){const e=Fi(this),t=hn(void 0);try{const r=this.get(Jc.multi,De,J.Self);for(const i of r)i()}finally{Fi(e),hn(t)}}toString(){const e=[],t=this.records;for(const r of t.keys())e.push(xe(r));return`R3Injector[${e.join(", ")}]`}assertNotDestroyed(){if(this._destroyed)throw new k(205,!1)}processProvider(e){let t=zr(e=re(e))?e:re(e&&e.provide);const r=function JS(n){return tu(n)?Bi(void 0,n.useValue):Bi(sg(n),ya)}(e);if(zr(e)||!0!==e.multi)this.records.get(t);else{let i=this.records.get(t);i||(i=Bi(void 0,ya,!0),i.factory=()=>$c(i.multi),this.records.set(t,i)),t=e,i.multi.push(e)}this.records.set(t,r)}hydrate(e,t){return t.value===ya&&(t.value=QS,t.value=t.factory()),"object"==typeof t.value&&t.value&&function tM(n){return null!==n&&"object"==typeof n&&"function"==typeof n.ngOnDestroy}(t.value)&&this._ngOnDestroyHooks.add(t.value),t.value}injectableDefInScope(e){if(!e.providedIn)return!1;const t=re(e.providedIn);return"string"==typeof t?"any"===t||this.scopes.has(t):this.injectorDefTypes.has(t)}}function iu(n){const e=uc(n),t=null!==e?e.factory:jr(n);if(null!==t)return t;if(n instanceof X)throw new k(204,!1);if(n instanceof Function)return function XS(n){const e=n.length;if(e>0)throw Bo(e,"?"),new k(204,!1);const t=function zD(n){const e=n&&(n[qs]||n[jf]);if(e){const t=function GD(n){if(n.hasOwnProperty("name"))return n.name;const e=(""+n).match(/^function\s*([^\s(]+)/);return null===e?"":e[1]}(n);return console.warn(`DEPRECATED: DI is instantiating a token "${t}" that inherits its @Injectable decorator but does not provide one itself.\nThis will become an error in a future version of Angular. Please add @Injectable() to the "${t}" class.`),e}return null}(n);return null!==t?()=>t.factory(n):()=>new n}(n);throw new k(204,!1)}function sg(n,e,t){let r;if(zr(n)){const i=re(n);return jr(i)||iu(i)}if(tu(n))r=()=>re(n.useValue);else if(function ig(n){return!(!n||!n.useFactory)}(n))r=()=>n.useFactory(...$c(n.deps||[]));else if(function rg(n){return!(!n||!n.useExisting)}(n))r=()=>I(re(n.useExisting));else{const i=re(n&&(n.useClass||n.provide));if(!function eM(n){return!!n.deps}(n))return jr(i)||iu(i);r=()=>new i(...$c(n.deps))}return r}function Bi(n,e,t=!1){return{factory:n,value:e,multi:t?[]:void 0}}function rM(n){return!!n.\u0275providers}function ou(n,e){for(const t of n)Array.isArray(t)?ou(t,e):rM(t)?ou(t.\u0275providers,e):e(t)}class ag{}class sM{resolveComponentFactory(e){throw function oM(n){const e=Error(`No component factory found for ${xe(n)}. Did you add it to @NgModule.entryComponents?`);return e.ngComponent=n,e}(e)}}let Hi=(()=>{class n{}return n.NULL=new sM,n})();function aM(){return ji(ct(),T())}function ji(n,e){return new dt(gn(n,e))}let dt=(()=>{class n{constructor(t){this.nativeElement=t}}return n.__NG_ELEMENT_ID__=aM,n})();function lM(n){return n instanceof dt?n.nativeElement:n}class cg{}let nr=(()=>{class n{}return n.__NG_ELEMENT_ID__=()=>function cM(){const n=T(),t=en(ct().index,n);return(Gt(t)?t:n)[11]}(),n})(),uM=(()=>{class n{}return n.\u0275prov=q({token:n,providedIn:"root",factory:()=>null}),n})();class Zo{constructor(e){this.full=e,this.major=e.split(".")[0],this.minor=e.split(".")[1],this.patch=e.split(".").slice(2).join(".")}}const dM=new Zo("14.1.0"),su={};function du(n){return n.ngOriginalError}class Ui{constructor(){this._console=console}handleError(e){const t=this._findOriginalError(e);this._console.error("ERROR",e),t&&this._console.error("ORIGINAL ERROR",t)}_findOriginalError(e){let t=e&&du(e);for(;t&&du(t);)t=du(t);return t||null}}const hu=new Map;let EM=0;const pu="__ngContext__";function Dt(n,e){Gt(e)?(n[pu]=e[20],function MM(n){hu.set(n[20],n)}(e)):n[pu]=e}function Ko(n){const e=n[pu];return"number"==typeof e?function pg(n){return hu.get(n)||null}(e):e||null}function gu(n){const e=Ko(n);return e?Gt(e)?e:e.lView:null}const kM=(()=>(typeof requestAnimationFrame<"u"&&requestAnimationFrame||setTimeout).bind(Te))();function rr(n){return n instanceof Function?n():n}var Wt=(()=>((Wt=Wt||{})[Wt.Important=1]="Important",Wt[Wt.DashCase=2]="DashCase",Wt))();function _u(n,e){return undefined(n,e)}function Qo(n){const e=n[3];return Sn(e)?e[3]:e}function vu(n){return wg(n[13])}function yu(n){return wg(n[4])}function wg(n){for(;null!==n&&!Sn(n);)n=n[4];return n}function zi(n,e,t,r,i){if(null!=r){let o,s=!1;Sn(r)?o=r:Gt(r)&&(s=!0,r=r[0]);const a=Je(r);0===n&&null!==t?null==i?Og(e,t,a):Gr(e,t,a,i||null,!0):1===n&&null!==t?Gr(e,t,a,i||null,!0):2===n?function kg(n,e,t){const r=Ca(n,e);r&&function JM(n,e,t,r){n.removeChild(e,t,r)}(n,r,e,t)}(e,a,s):3===n&&e.destroyNode(a),null!=o&&function n0(n,e,t,r,i){const o=t[7];o!==Je(t)&&zi(e,n,r,o,i);for(let a=10;a0&&(n[t-1][4]=r[4]);const o=da(n,10+e);!function GM(n,e){Xo(n,e,e[11],2,null,null),e[0]=null,e[6]=null}(r[1],r);const s=o[19];null!==s&&s.detachView(o[1]),r[3]=null,r[4]=null,r[2]&=-65}return r}function Sg(n,e){if(!(128&e[2])){const t=e[11];t.destroyNode&&Xo(n,e,t,3,null,null),function YM(n){let e=n[13];if(!e)return Du(n[1],n);for(;e;){let t=null;if(Gt(e))t=e[13];else{const r=e[10];r&&(t=r)}if(!t){for(;e&&!e[4]&&e!==n;)Gt(e)&&Du(e[1],e),e=e[3];null===e&&(e=n),Gt(e)&&Du(e[1],e),t=e&&e[4]}e=t}}(e)}}function Du(n,e){if(!(128&e[2])){e[2]&=-65,e[2]|=128,function XM(n,e){let t;if(null!=n&&null!=(t=n.destroyHooks))for(let r=0;r=0?r[i=c]():r[i=-c].unsubscribe(),o+=2}else{const s=r[i=t[o+1]];t[o].call(s)}if(null!==r){for(let o=i+1;oo?"":i[d+1].toLowerCase();const g=8&r?f:null;if(g&&-1!==Vg(g,c,0)||2&r&&c!==f){if(On(r))return!1;s=!0}}}}else{if(!s&&!On(r)&&!On(l))return!1;if(s&&On(l))continue;s=!1,r=l|1&r}}return On(r)||s}function On(n){return 0==(1&n)}function l0(n,e,t,r){if(null===e)return-1;let i=0;if(r||!t){let o=!1;for(;i-1)for(t++;t0?'="'+a+'"':"")+"]"}else 8&r?i+="."+s:4&r&&(i+=" "+s);else""!==i&&!On(s)&&(e+=Ug(o,i),i=""),r=s,o=o||!On(r);t++}return""!==i&&(e+=Ug(o,i)),e}const ae={};function M(n){$g(be(),T(),Ft()+n,!1)}function $g(n,e,t,r){if(!r)if(3==(3&e[2])){const o=n.preOrderCheckHooks;null!==o&&ra(e,o,t)}else{const o=n.preOrderHooks;null!==o&&ia(e,o,0,t)}wr(t)}function qg(n,e=null,t=null,r){const i=Yg(n,e,t,r);return i.resolveInjectorInitializers(),i}function Yg(n,e=null,t=null,r,i=new Set){const o=[t||De,YS(n)];return r=r||("object"==typeof n?void 0:xe(n)),new og(o,e||ba(),r||null,i)}let Vt=(()=>{class n{static create(t,r){if(Array.isArray(t))return qg({name:""},r,t,"");{const i=t.name??"";return qg({name:i},t.parent,t.providers,i)}}}return n.THROW_IF_NOT_FOUND=Ho,n.NULL=new eg,n.\u0275prov=q({token:n,providedIn:"any",factory:()=>I(Xp)}),n.__NG_ELEMENT_ID__=-1,n})();function E(n,e=J.Default){const t=T();return null===t?I(n,e):bp(ct(),t,re(n),e)}function Pu(){throw new Error("invalid")}function Sa(n,e){return n<<17|e<<2}function Tn(n){return n>>17&32767}function Ru(n){return 2|n}function ir(n){return(131068&n)>>2}function Nu(n,e){return-131069&n|e<<2}function ku(n){return 1|n}function dm(n,e){const t=n.contentQueries;if(null!==t)for(let r=0;r22&&$g(n,e,22,!1),t(r,i)}finally{wr(o)}}function fm(n,e,t){if(_c(e)){const i=e.directiveEnd;for(let o=e.directiveStart;o0;){const t=n[--e];if("number"==typeof t&&t<0)return t}return 0})(a)!=l&&a.push(l),a.push(r,i,s)}}function bm(n,e){null!==n.hostBindings&&n.hostBindings(1,e)}function Cm(n,e){e.flags|=2,(n.components||(n.components=[])).push(e.index)}function oA(n,e,t){if(t){if(e.exportAs)for(let r=0;r0&&Ku(t)}}function Ku(n){for(let r=vu(n);null!==r;r=yu(r))for(let i=10;i0&&Ku(o)}const t=n[1].components;if(null!==t)for(let r=0;r0&&Ku(i)}}function hA(n,e){const t=en(e,n),r=t[1];(function fA(n,e){for(let t=e.length;tPromise.resolve(null))();function Am(n){return n[7]||(n[7]=[])}function Om(n){return n.cleanup||(n.cleanup=[])}function Im(n,e){const t=n[9],r=t?t.get(Ui,null):null;r&&r.handleError(e)}function ed(n,e,t,r,i){for(let o=0;o-1&&(wu(e,r),da(t,r))}this._attachedToViewContainer=!1}Sg(this._lView[1],this._lView)}onDestroy(e){gm(this._lView[1],this._lView,null,e)}markForCheck(){Qu(this._cdRefInjectingView||this._lView)}detach(){this._lView[2]&=-65}reattach(){this._lView[2]|=64}detectChanges(){!function Xu(n,e,t){const r=e[10];r.begin&&r.begin();try{Jo(n,e,n.template,t)}catch(i){throw Im(e,i),i}finally{r.end&&r.end()}}(this._lView[1],this._lView,this.context)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new k(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null,function qM(n,e){Xo(n,e,e[11],2,null,null)}(this._lView[1],this._lView)}attachToAppRef(e){if(this._attachedToViewContainer)throw new k(902,!1);this._appRef=e}}class mA extends es{constructor(e){super(e),this._view=e}detectChanges(){Mm(this._view)}checkNoChanges(){}get context(){return null}}class td extends Hi{constructor(e){super(),this.ngModule=e}resolveComponentFactory(e){const t=Ae(e);return new ts(t,this.ngModule)}}function xm(n){const e=[];for(let t in n)n.hasOwnProperty(t)&&e.push({propName:n[t],templateName:t});return e}class vA{constructor(e,t){this.injector=e,this.parentInjector=t}get(e,t,r){const i=this.injector.get(e,su,r);return i!==su||t===su?i:this.parentInjector.get(e,t,r)}}class ts extends ag{constructor(e,t){super(),this.componentDef=e,this.ngModule=t,this.componentType=e.type,this.selector=function p0(n){return n.map(f0).join(",")}(e.selectors),this.ngContentSelectors=e.ngContentSelectors?e.ngContentSelectors:[],this.isBoundToModule=!!t}get inputs(){return xm(this.componentDef.inputs)}get outputs(){return xm(this.componentDef.outputs)}create(e,t,r,i){let o=(i=i||this.ngModule)instanceof Er?i:i?.injector;o&&null!==this.componentDef.getStandaloneInjector&&(o=this.componentDef.getStandaloneInjector(o)||o);const s=o?new vA(e,o):e,a=s.get(cg,null);if(null===a)throw new k(407,!1);const l=s.get(uM,null),c=a.createRenderer(null,this.componentDef),u=this.componentDef.selectors[0][0]||"div",d=r?function Z0(n,e,t){return n.selectRootElement(e,t===kn.ShadowDom)}(c,r,this.componentDef.encapsulation):Cu(a.createRenderer(null,this.componentDef),u,function _A(n){const e=n.toLowerCase();return"svg"===e?"svg":"math"===e?"math":null}(u)),f=this.componentDef.onPush?288:272,g=function DA(n,e){return{components:[],scheduler:n||kM,clean:gA,playerHandler:e||null,flags:0}}(),v=qu(0,null,null,1,0,null,null,null,null,null),w=Oa(null,v,g,f,null,null,a,c,l,s,null);let A,L;Ic(w);try{const j=function CA(n,e,t,r,i,o){const s=t[1];t[22]=n;const l=Wi(s,22,2,"#host",null),c=l.mergedAttrs=e.hostAttrs;null!==c&&(xa(l,c,!0),null!==n&&(oa(i,n,c),null!==l.classes&&Au(i,n,l.classes),null!==l.styles&&Lg(i,n,l.styles)));const u=r.createRenderer(n,e),d=Oa(t,pm(e),null,e.onPush?32:16,t[22],l,r,u,o||null,null,null);return s.firstCreatePass&&(ca(ko(l,t),s,e.type),Cm(s,l),wm(l,t.length,1)),Ia(t,d),t[22]=d}(d,this.componentDef,w,a,c);if(d)if(r)oa(c,d,["ng-version",dM.full]);else{const{attrs:O,classes:W}=function g0(n){const e=[],t=[];let r=1,i=2;for(;r0&&Au(c,d,W.join(" "))}if(L=wc(v,22),void 0!==t){const O=L.projection=[];for(let W=0;W=0;r--){const i=n[r];i.hostVars=e+=i.hostVars,i.hostAttrs=sa(i.hostAttrs,t=sa(t,i.hostAttrs))}}(r)}function nd(n){return n===bi?{}:n===De?[]:n}function MA(n,e){const t=n.viewQuery;n.viewQuery=t?(r,i)=>{e(r,i),t(r,i)}:e}function AA(n,e){const t=n.contentQueries;n.contentQueries=t?(r,i,o)=>{e(r,i,o),t(r,i,o)}:e}function OA(n,e){const t=n.hostBindings;n.hostBindings=t?(r,i)=>{e(r,i),t(r,i)}:e}let Ra=null;function Wr(){if(!Ra){const n=Te.Symbol;if(n&&n.iterator)Ra=n.iterator;else{const e=Object.getOwnPropertyNames(Map.prototype);for(let t=0;ta(Je(pe[r.index])):r.index;let W=null;if(!a&&l&&(W=function jA(n,e,t,r){const i=n.cleanup;if(null!=i)for(let o=0;ol?a[l]:null}"string"==typeof s&&(o+=2)}return null}(n,e,i,r.index)),null!==W)(W.__ngLastListenerFn__||W).__ngNextListenerFn__=o,W.__ngLastListenerFn__=o,g=!1;else{o=Wm(r,e,d,o,!1);const pe=t.listen(L,i,o);f.push(o,pe),u&&u.push(i,O,j,j+1)}}else o=Wm(r,e,d,o,!1);const v=r.outputs;let w;if(g&&null!==v&&(w=v[i])){const A=w.length;if(A)for(let L=0;L0;)e=e[15],n--;return e}(n,oe.lFrame.contextLView))[8]}(n)}function UA(n,e){let t=null;const r=function c0(n){const e=n.attrs;if(null!=e){const t=e.indexOf(5);if(0==(1&t))return e[t+1]}return null}(n);for(let i=0;i=0}const ht={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function i_(n){return n.substring(ht.key,ht.keyEnd)}function o_(n,e){const t=ht.textEnd;return t===e?-1:(e=ht.keyEnd=function ZA(n,e,t){for(;e32;)e++;return e}(n,ht.key=e,t),oo(n,e,t))}function oo(n,e,t){for(;e=0;t=o_(e,t))nn(n,i_(e),!0)}function In(n,e,t,r){const i=T(),o=be(),s=Jn(2);o.firstUpdatePass&&d_(o,n,s,r),e!==ae&&Et(i,s,e)&&f_(o,o.data[Ft()],i,i[11],n,i[s+1]=function oO(n,e){return null==n||("string"==typeof e?n+=e:"object"==typeof n&&(n=xe(rn(n)))),n}(e,t),r,s)}function u_(n,e){return e>=n.expandoStartIndex}function d_(n,e,t,r){const i=n.data;if(null===i[t+1]){const o=i[Ft()],s=u_(n,t);g_(o,r)&&null===e&&!s&&(e=!1),e=function JA(n,e,t,r){const i=function Oc(n){const e=oe.lFrame.currentDirectiveIndex;return-1===e?null:n[e]}(n);let o=r?e.residualClasses:e.residualStyles;if(null===i)0===(r?e.classBindings:e.styleBindings)&&(t=os(t=cd(null,n,e,t,r),e.attrs,r),o=null);else{const s=e.directiveStylingLast;if(-1===s||n[s]!==i)if(t=cd(i,n,e,t,r),null===o){let l=function eO(n,e,t){const r=t?e.classBindings:e.styleBindings;if(0!==ir(r))return n[Tn(r)]}(n,e,r);void 0!==l&&Array.isArray(l)&&(l=cd(null,n,e,l[1],r),l=os(l,e.attrs,r),function tO(n,e,t,r){n[Tn(t?e.classBindings:e.styleBindings)]=r}(n,e,r,l))}else o=function nO(n,e,t){let r;const i=e.directiveEnd;for(let o=1+e.directiveStylingLast;o0)&&(c=!0)}else u=t;if(i)if(0!==l){const f=Tn(n[a+1]);n[r+1]=Sa(f,a),0!==f&&(n[f+1]=Nu(n[f+1],r)),n[a+1]=function N0(n,e){return 131071&n|e<<17}(n[a+1],r)}else n[r+1]=Sa(a,0),0!==a&&(n[a+1]=Nu(n[a+1],r)),a=r;else n[r+1]=Sa(l,0),0===a?a=r:n[l+1]=Nu(n[l+1],r),l=r;c&&(n[r+1]=Ru(n[r+1])),r_(n,u,r,!0),r_(n,u,r,!1),function zA(n,e,t,r,i){const o=i?n.residualClasses:n.residualStyles;null!=o&&"string"==typeof e&&ki(o,e)>=0&&(t[r+1]=ku(t[r+1]))}(e,u,n,r,o),s=Sa(a,l),o?e.classBindings=s:e.styleBindings=s}(i,o,e,t,s,r)}}function cd(n,e,t,r,i){let o=null;const s=t.directiveEnd;let a=t.directiveStylingLast;for(-1===a?a=t.directiveStart:a++;a0;){const l=n[i],c=Array.isArray(l),u=c?l[1]:l,d=null===u;let f=t[i+1];f===ae&&(f=d?De:void 0);let g=d?Hc(f,r):u===r?f:void 0;if(c&&!Fa(g)&&(g=Hc(l,r)),Fa(g)&&(a=g,s))return a;const v=n[i+1];i=s?Tn(v):ir(v)}if(null!==e){let l=o?e.residualClasses:e.residualStyles;null!=l&&(a=Hc(l,r))}return a}function Fa(n){return void 0!==n}function g_(n,e){return 0!=(n.flags&(e?16:32))}function C(n,e=""){const t=T(),r=be(),i=n+22,o=r.firstCreatePass?Wi(r,i,1,e,null):r.data[i],s=t[i]=function bu(n,e){return n.createText(e)}(t[11],e);wa(r,t,s,o),Fn(o,!1)}function _n(n){return _e("",n,""),_n}function _e(n,e,t){const r=T(),i=function Zi(n,e,t,r){return Et(n,Mi(),t)?e+se(t)+r:ae}(r,n,e,t);return i!==ae&&or(r,Ft(),i),_e}function ud(n,e,t,r,i){const o=T(),s=Ki(o,n,e,t,r,i);return s!==ae&&or(o,Ft(),s),ud}function dd(n,e,t){const r=T();return Et(r,Mi(),e)&&on(be(),Ge(),r,n,e,r[11],t,!0),dd}const ao="en-US";let k_=ao;function pd(n,e,t,r,i){if(n=re(n),Array.isArray(n))for(let o=0;o>20;if(zr(n)||!n.multi){const g=new Ro(l,i,E),v=md(a,e,i?u:u+f,d);-1===v?(ca(ko(c,s),o,a),gd(o,n,e.length),e.push(a),c.directiveStart++,c.directiveEnd++,i&&(c.providerIndexes+=1048576),t.push(g),s.push(g)):(t[v]=g,s[v]=g)}else{const g=md(a,e,u+f,d),v=md(a,e,u,u+f),w=g>=0&&t[g],A=v>=0&&t[v];if(i&&!A||!i&&!w){ca(ko(c,s),o,a);const L=function DT(n,e,t,r,i){const o=new Ro(n,t,E);return o.multi=[],o.index=e,o.componentProviders=0,sv(o,i,r&&!t),o}(i?wT:CT,t.length,i,r,l);!i&&A&&(t[v].providerFactory=L),gd(o,n,e.length,0),e.push(a),c.directiveStart++,c.directiveEnd++,i&&(c.providerIndexes+=1048576),t.push(L),s.push(L)}else gd(o,n,g>-1?g:v,sv(t[i?v:g],l,!i&&r));!i&&r&&A&&t[v].componentProviders++}}}function gd(n,e,t,r){const i=zr(e),o=function KS(n){return!!n.useClass}(e);if(i||o){const l=(o?re(e.useClass):e).prototype.ngOnDestroy;if(l){const c=n.destroyHooks||(n.destroyHooks=[]);if(!i&&e.multi){const u=c.indexOf(t);-1===u?c.push(t,[r,l]):c[u+1].push(r,l)}else c.push(t,l)}}}function sv(n,e,t){return t&&n.componentProviders++,n.multi.push(e)-1}function md(n,e,t,r){for(let i=t;i{t.providersResolver=(r,i)=>function bT(n,e,t){const r=be();if(r.firstCreatePass){const i=Mn(n);pd(t,r.data,r.blueprint,i,!0),pd(e,r.data,r.blueprint,i,!1)}}(r,i?i(n):n,e)}}class Qr{}class av{}class lv extends Qr{constructor(e,t){super(),this._parent=t,this._bootstrapComponents=[],this.destroyCbs=[],this.componentFactoryResolver=new td(this);const r=Xt(e);this._bootstrapComponents=rr(r.bootstrap),this._r3Injector=Yg(e,t,[{provide:Qr,useValue:this},{provide:Hi,useValue:this.componentFactoryResolver}],xe(e),new Set(["environment"])),this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(e)}get injector(){return this._r3Injector}destroy(){const e=this._r3Injector;!e.destroyed&&e.destroy(),this.destroyCbs.forEach(t=>t()),this.destroyCbs=null}onDestroy(e){this.destroyCbs.push(e)}}class vd extends av{constructor(e){super(),this.moduleType=e}create(e){return new lv(this.moduleType,e)}}class ST extends Qr{constructor(e,t,r){super(),this.componentFactoryResolver=new td(this),this.instance=null;const i=new og([...e,{provide:Qr,useValue:this},{provide:Hi,useValue:this.componentFactoryResolver}],t||ba(),r,new Set(["environment"]));this.injector=i,i.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(e){this.injector.onDestroy(e)}}function ja(n,e,t=null){return new ST(n,e,t).injector}function gv(n,e,t,r,i){return function vv(n,e,t,r,i,o,s){const a=e+t;return qr(n,a,i,o)?jn(n,a+2,s?r.call(s,i,o):r(i,o)):us(n,a+2)}(T(),kt(),n,e,t,r,i)}function mv(n,e,t,r,i,o){return function yv(n,e,t,r,i,o,s,a){const l=e+t;return function Na(n,e,t,r,i){const o=qr(n,e,t,r);return Et(n,e+2,i)||o}(n,l,i,o,s)?jn(n,l+3,a?r.call(a,i,o,s):r(i,o,s)):us(n,l+3)}(T(),kt(),n,e,t,r,i,o)}function us(n,e){const t=n[e];return t===ae?void 0:t}function Ua(n,e){const t=be();let r;const i=n+22;t.firstCreatePass?(r=function zT(n,e){if(e)for(let t=e.length-1;t>=0;t--){const r=e[t];if(n===r.name)return r}}(e,t.pipeRegistry),t.data[i]=r,r.onDestroy&&(t.destroyHooks||(t.destroyHooks=[])).push(i,r.onDestroy)):r=t.data[i];const o=r.factory||(r.factory=jr(r.type)),s=hn(E);try{const a=aa(!1),l=o();return aa(a),function VA(n,e,t,r){t>=n.data.length&&(n.data[t]=null,n.blueprint[t]=null),e[t]=r}(t,T(),i,l),l}finally{hn(s)}}function $a(n,e,t){const r=n+22,i=T(),o=Si(i,r);return function ds(n,e){return n[1].data[e].pure}(i,r)?function _v(n,e,t,r,i,o){const s=e+t;return Et(n,s,i)?jn(n,s+1,o?r.call(o,i):r(i)):us(n,s+1)}(i,kt(),e,o.transform,t,o):o.transform(t)}function bd(n){return e=>{setTimeout(n,void 0,e)}}const he=class ZT extends ke{constructor(e=!1){super(),this.__isAsync=e}emit(e){super.next(e)}subscribe(e,t,r){let i=e,o=t||(()=>null),s=r;if(e&&"object"==typeof e){const l=e;i=l.next?.bind(l),o=l.error?.bind(l),s=l.complete?.bind(l)}this.__isAsync&&(o=bd(o),i&&(i=bd(i)),s&&(s=bd(s)));const a=super.subscribe({next:i,error:o,complete:s});return e instanceof S&&e.add(a),a}};function KT(){return this._results[Wr()]()}class Cd{constructor(e=!1){this._emitDistinctChangesOnly=e,this.dirty=!0,this._results=[],this._changesDetected=!1,this._changes=null,this.length=0,this.first=void 0,this.last=void 0;const t=Wr(),r=Cd.prototype;r[t]||(r[t]=KT)}get changes(){return this._changes||(this._changes=new he)}get(e){return this._results[e]}map(e){return this._results.map(e)}filter(e){return this._results.filter(e)}find(e){return this._results.find(e)}reduce(e,t){return this._results.reduce(e,t)}forEach(e){this._results.forEach(e)}some(e){return this._results.some(e)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(e,t){const r=this;r.dirty=!1;const i=tn(e);(this._changesDetected=!function qE(n,e,t){if(n.length!==e.length)return!1;for(let r=0;r{class n{}return n.__NG_ELEMENT_ID__=JT,n})();const QT=sn,XT=class extends QT{constructor(e,t,r){super(),this._declarationLView=e,this._declarationTContainer=t,this.elementRef=r}createEmbeddedView(e,t){const r=this._declarationTContainer.tViews,i=Oa(this._declarationLView,r,e,16,null,r.declTNode,null,null,null,null,t||null);i[17]=this._declarationLView[this._declarationTContainer.index];const s=this._declarationLView[19];return null!==s&&(i[19]=s.createEmbeddedView(r)),Ta(r,i,e),new es(i)}};function JT(){return za(ct(),T())}function za(n,e){return 4&n.type?new XT(e,n,ji(n,e)):null}let vn=(()=>{class n{}return n.__NG_ELEMENT_ID__=eI,n})();function eI(){return Ev(ct(),T())}const tI=vn,wv=class extends tI{constructor(e,t,r){super(),this._lContainer=e,this._hostTNode=t,this._hostLView=r}get element(){return ji(this._hostTNode,this._hostLView)}get injector(){return new Ti(this._hostTNode,this._hostLView)}get parentInjector(){const e=la(this._hostTNode,this._hostLView);if(gp(e)){const t=Oi(e,this._hostLView),r=Ai(e);return new Ti(t[1].data[r+8],t)}return new Ti(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(e){const t=Dv(this._lContainer);return null!==t&&t[e]||null}get length(){return this._lContainer.length-10}createEmbeddedView(e,t,r){let i,o;"number"==typeof r?i=r:null!=r&&(i=r.index,o=r.injector);const s=e.createEmbeddedView(t||{},o);return this.insert(s,i),s}createComponent(e,t,r,i,o){const s=e&&!function Vo(n){return"function"==typeof n}(e);let a;if(s)a=t;else{const d=t||{};a=d.index,r=d.injector,i=d.projectableNodes,o=d.environmentInjector||d.ngModuleRef}const l=s?e:new ts(Ae(e)),c=r||this.parentInjector;if(!o&&null==l.ngModule){const f=(s?c:this.parentInjector).get(Er,null);f&&(o=f)}const u=l.create(c,i,void 0,o);return this.insert(u.hostView,a),u}insert(e,t){const r=e._lView,i=r[1];if(function fE(n){return Sn(n[3])}(r)){const u=this.indexOf(e);if(-1!==u)this.detach(u);else{const d=r[3],f=new wv(d,d[6],d[3]);f.detach(f.indexOf(e))}}const o=this._adjustIndex(t),s=this._lContainer;!function ZM(n,e,t,r){const i=10+r,o=t.length;r>0&&(t[i-1][4]=e),r0)r.push(s[a/2]);else{const c=o[a+1],u=e[-l];for(let d=10;d{class n{constructor(t){this.appInits=t,this.resolve=Wa,this.reject=Wa,this.initialized=!1,this.done=!1,this.donePromise=new Promise((r,i)=>{this.resolve=r,this.reject=i})}runInitializers(){if(this.initialized)return;const t=[],r=()=>{this.done=!0,this.resolve()};if(this.appInits)for(let i=0;i{o.subscribe({complete:a,error:l})});t.push(s)}}Promise.all(t).then(()=>{r()}).catch(i=>{this.reject(i)}),0===t.length&&r(),this.initialized=!0}}return n.\u0275fac=function(t){return new(t||n)(I(qa,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const fs=new X("AppId",{providedIn:"root",factory:function Yv(){return`${Rd()}${Rd()}${Rd()}`}});function Rd(){return String.fromCharCode(97+Math.floor(25*Math.random()))}const Zv=new X("Platform Initializer"),Za=new X("Platform ID",{providedIn:"platform",factory:()=>"unknown"}),Kv=new X("appBootstrapListener"),TI=new X("AnimationModuleType");let II=(()=>{class n{log(t){console.log(t)}warn(t){console.warn(t)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();const lr=new X("LocaleId",{providedIn:"root",factory:()=>tr(lr,J.Optional|J.SkipSelf)||function xI(){return typeof $localize<"u"&&$localize.locale||ao}()});class RI{constructor(e,t){this.ngModuleFactory=e,this.componentFactories=t}}let Nd=(()=>{class n{compileModuleSync(t){return new vd(t)}compileModuleAsync(t){return Promise.resolve(this.compileModuleSync(t))}compileModuleAndAllComponentsSync(t){const r=this.compileModuleSync(t),o=rr(Xt(t).declarations).reduce((s,a)=>{const l=Ae(a);return l&&s.push(new ts(l)),s},[]);return new RI(r,o)}compileModuleAndAllComponentsAsync(t){return Promise.resolve(this.compileModuleAndAllComponentsSync(t))}clearCache(){}clearCacheFor(t){}getModuleId(t){}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const FI=(()=>Promise.resolve(0))();function kd(n){typeof Zone>"u"?FI.then(()=>{n&&n.apply(null,null)}):Zone.current.scheduleMicroTask("scheduleMicrotask",n)}class Re{constructor({enableLongStackTrace:e=!1,shouldCoalesceEventChangeDetection:t=!1,shouldCoalesceRunChangeDetection:r=!1}){if(this.hasPendingMacrotasks=!1,this.hasPendingMicrotasks=!1,this.isStable=!0,this.onUnstable=new he(!1),this.onMicrotaskEmpty=new he(!1),this.onStable=new he(!1),this.onError=new he(!1),typeof Zone>"u")throw new k(908,!1);Zone.assertZonePatched();const i=this;if(i._nesting=0,i._outer=i._inner=Zone.current,Zone.AsyncStackTaggingZoneSpec){const o=Zone.AsyncStackTaggingZoneSpec;i._inner=i._inner.fork(new o("Angular"))}Zone.TaskTrackingZoneSpec&&(i._inner=i._inner.fork(new Zone.TaskTrackingZoneSpec)),e&&Zone.longStackTraceZoneSpec&&(i._inner=i._inner.fork(Zone.longStackTraceZoneSpec)),i.shouldCoalesceEventChangeDetection=!r&&t,i.shouldCoalesceRunChangeDetection=r,i.lastRequestAnimationFrameId=-1,i.nativeRequestAnimationFrame=function LI(){let n=Te.requestAnimationFrame,e=Te.cancelAnimationFrame;if(typeof Zone<"u"&&n&&e){const t=n[Zone.__symbol__("OriginalDelegate")];t&&(n=t);const r=e[Zone.__symbol__("OriginalDelegate")];r&&(e=r)}return{nativeRequestAnimationFrame:n,nativeCancelAnimationFrame:e}}().nativeRequestAnimationFrame,function HI(n){const e=()=>{!function BI(n){n.isCheckStableRunning||-1!==n.lastRequestAnimationFrameId||(n.lastRequestAnimationFrameId=n.nativeRequestAnimationFrame.call(Te,()=>{n.fakeTopEventTask||(n.fakeTopEventTask=Zone.root.scheduleEventTask("fakeTopEventTask",()=>{n.lastRequestAnimationFrameId=-1,Ld(n),n.isCheckStableRunning=!0,Fd(n),n.isCheckStableRunning=!1},void 0,()=>{},()=>{})),n.fakeTopEventTask.invoke()}),Ld(n))}(n)};n._inner=n._inner.fork({name:"angular",properties:{isAngularZone:!0},onInvokeTask:(t,r,i,o,s,a)=>{try{return Jv(n),t.invokeTask(i,o,s,a)}finally{(n.shouldCoalesceEventChangeDetection&&"eventTask"===o.type||n.shouldCoalesceRunChangeDetection)&&e(),ey(n)}},onInvoke:(t,r,i,o,s,a,l)=>{try{return Jv(n),t.invoke(i,o,s,a,l)}finally{n.shouldCoalesceRunChangeDetection&&e(),ey(n)}},onHasTask:(t,r,i,o)=>{t.hasTask(i,o),r===i&&("microTask"==o.change?(n._hasPendingMicrotasks=o.microTask,Ld(n),Fd(n)):"macroTask"==o.change&&(n.hasPendingMacrotasks=o.macroTask))},onHandleError:(t,r,i,o)=>(t.handleError(i,o),n.runOutsideAngular(()=>n.onError.emit(o)),!1)})}(i)}static isInAngularZone(){return typeof Zone<"u"&&!0===Zone.current.get("isAngularZone")}static assertInAngularZone(){if(!Re.isInAngularZone())throw new k(909,!1)}static assertNotInAngularZone(){if(Re.isInAngularZone())throw new k(909,!1)}run(e,t,r){return this._inner.run(e,t,r)}runTask(e,t,r,i){const o=this._inner,s=o.scheduleEventTask("NgZoneEvent: "+i,e,VI,Wa,Wa);try{return o.runTask(s,t,r)}finally{o.cancelTask(s)}}runGuarded(e,t,r){return this._inner.runGuarded(e,t,r)}runOutsideAngular(e){return this._outer.run(e)}}const VI={};function Fd(n){if(0==n._nesting&&!n.hasPendingMicrotasks&&!n.isStable)try{n._nesting++,n.onMicrotaskEmpty.emit(null)}finally{if(n._nesting--,!n.hasPendingMicrotasks)try{n.runOutsideAngular(()=>n.onStable.emit(null))}finally{n.isStable=!0}}}function Ld(n){n.hasPendingMicrotasks=!!(n._hasPendingMicrotasks||(n.shouldCoalesceEventChangeDetection||n.shouldCoalesceRunChangeDetection)&&-1!==n.lastRequestAnimationFrameId)}function Jv(n){n._nesting++,n.isStable&&(n.isStable=!1,n.onUnstable.emit(null))}function ey(n){n._nesting--,Fd(n)}class jI{constructor(){this.hasPendingMicrotasks=!1,this.hasPendingMacrotasks=!1,this.isStable=!0,this.onUnstable=new he,this.onMicrotaskEmpty=new he,this.onStable=new he,this.onError=new he}run(e,t,r){return e.apply(t,r)}runGuarded(e,t,r){return e.apply(t,r)}runOutsideAngular(e){return e()}runTask(e,t,r,i){return e.apply(t,r)}}const ty=new X(""),Ka=new X("");let Hd,Vd=(()=>{class n{constructor(t,r,i){this._ngZone=t,this.registry=r,this._pendingCount=0,this._isZoneStable=!0,this._didWork=!1,this._callbacks=[],this.taskTrackingZone=null,Hd||(function UI(n){Hd=n}(i),i.addToWindow(r)),this._watchAngularEvents(),t.run(()=>{this.taskTrackingZone=typeof Zone>"u"?null:Zone.current.get("TaskTrackingZone")})}_watchAngularEvents(){this._ngZone.onUnstable.subscribe({next:()=>{this._didWork=!0,this._isZoneStable=!1}}),this._ngZone.runOutsideAngular(()=>{this._ngZone.onStable.subscribe({next:()=>{Re.assertNotInAngularZone(),kd(()=>{this._isZoneStable=!0,this._runCallbacksIfReady()})}})})}increasePendingRequestCount(){return this._pendingCount+=1,this._didWork=!0,this._pendingCount}decreasePendingRequestCount(){if(this._pendingCount-=1,this._pendingCount<0)throw new Error("pending async requests below zero");return this._runCallbacksIfReady(),this._pendingCount}isStable(){return this._isZoneStable&&0===this._pendingCount&&!this._ngZone.hasPendingMacrotasks}_runCallbacksIfReady(){if(this.isStable())kd(()=>{for(;0!==this._callbacks.length;){let t=this._callbacks.pop();clearTimeout(t.timeoutId),t.doneCb(this._didWork)}this._didWork=!1});else{let t=this.getPendingTasks();this._callbacks=this._callbacks.filter(r=>!r.updateCb||!r.updateCb(t)||(clearTimeout(r.timeoutId),!1)),this._didWork=!0}}getPendingTasks(){return this.taskTrackingZone?this.taskTrackingZone.macroTasks.map(t=>({source:t.source,creationLocation:t.creationLocation,data:t.data})):[]}addCallback(t,r,i){let o=-1;r&&r>0&&(o=setTimeout(()=>{this._callbacks=this._callbacks.filter(s=>s.timeoutId!==o),t(this._didWork,this.getPendingTasks())},r)),this._callbacks.push({doneCb:t,timeoutId:o,updateCb:i})}whenStable(t,r,i){if(i&&!this.taskTrackingZone)throw new Error('Task tracking zone is required when passing an update callback to whenStable(). Is "zone.js/plugins/task-tracking" loaded?');this.addCallback(t,r,i),this._runCallbacksIfReady()}getPendingRequestCount(){return this._pendingCount}registerApplication(t){this.registry.registerApplication(t,this)}unregisterApplication(t){this.registry.unregisterApplication(t)}findProviders(t,r,i){return[]}}return n.\u0275fac=function(t){return new(t||n)(I(Re),I(Bd),I(Ka))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),Bd=(()=>{class n{constructor(){this._applications=new Map}registerApplication(t,r){this._applications.set(t,r)}unregisterApplication(t){this._applications.delete(t)}unregisterAllApplications(){this._applications.clear()}getTestability(t){return this._applications.get(t)||null}getAllTestabilities(){return Array.from(this._applications.values())}getAllRootElements(){return Array.from(this._applications.keys())}findTestabilityInTree(t,r=!0){return Hd?.findTestabilityInTree(this,t,r)??null}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})(),Ar=null;const ny=new X("AllowMultipleToken"),jd=new X("PlatformDestroyListeners");class ry{constructor(e,t){this.name=e,this.token=t}}function oy(n,e,t=[]){const r=`Platform: ${e}`,i=new X(r);return(o=[])=>{let s=Ud();if(!s||s.injector.get(ny,!1)){const a=[...t,...o,{provide:i,useValue:!0}];n?n(a):function GI(n){if(Ar&&!Ar.get(ny,!1))throw new k(400,!1);Ar=n;const e=n.get(ay);(function iy(n){const e=n.get(Zv,null);e&&e.forEach(t=>t())})(n)}(function sy(n=[],e){return Vt.create({name:e,providers:[{provide:nu,useValue:"platform"},{provide:jd,useValue:new Set([()=>Ar=null])},...n]})}(a,r))}return function qI(n){const e=Ud();if(!e)throw new k(401,!1);return e}()}}function Ud(){return Ar?.get(ay)??null}let ay=(()=>{class n{constructor(t){this._injector=t,this._modules=[],this._destroyListeners=[],this._destroyed=!1}bootstrapModuleFactory(t,r){const i=function YI(n,e){let t;return t="noop"===n?new jI:("zone.js"===n?void 0:n)||new Re(e),t}(r?.ngZone,function ly(n){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:!(!n||!n.ngZoneEventCoalescing)||!1,shouldCoalesceRunChangeDetection:!(!n||!n.ngZoneRunCoalescing)||!1}}(r)),o=[{provide:Re,useValue:i}];return i.run(()=>{const s=Vt.create({providers:o,parent:this.injector,name:t.moduleType.name}),a=t.create(s),l=a.injector.get(Ui,null);if(!l)throw new k(402,!1);return i.runOutsideAngular(()=>{const c=i.onError.subscribe({next:u=>{l.handleError(u)}});a.onDestroy(()=>{Qa(this._modules,a),c.unsubscribe()})}),function cy(n,e,t){try{const r=t();return is(r)?r.catch(i=>{throw e.runOutsideAngular(()=>n.handleError(i)),i}):r}catch(r){throw e.runOutsideAngular(()=>n.handleError(r)),r}}(l,i,()=>{const c=a.injector.get(Ya);return c.runInitializers(),c.donePromise.then(()=>(function F_(n){Qt(n,"Expected localeId to be defined"),"string"==typeof n&&(k_=n.toLowerCase().replace(/_/g,"-"))}(a.injector.get(lr,ao)||ao),this._moduleDoBootstrap(a),a))})})}bootstrapModule(t,r=[]){const i=uy({},r);return function $I(n,e,t){const r=new vd(t);return Promise.resolve(r)}(0,0,t).then(o=>this.bootstrapModuleFactory(o,i))}_moduleDoBootstrap(t){const r=t.injector.get(ps);if(t._bootstrapComponents.length>0)t._bootstrapComponents.forEach(i=>r.bootstrap(i));else{if(!t.instance.ngDoBootstrap)throw new k(403,!1);t.instance.ngDoBootstrap(r)}this._modules.push(t)}onDestroy(t){this._destroyListeners.push(t)}get injector(){return this._injector}destroy(){if(this._destroyed)throw new k(404,!1);this._modules.slice().forEach(r=>r.destroy()),this._destroyListeners.forEach(r=>r());const t=this._injector.get(jd,null);t&&(t.forEach(r=>r()),t.clear()),this._destroyed=!0}get destroyed(){return this._destroyed}}return n.\u0275fac=function(t){return new(t||n)(I(Vt))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"platform"}),n})();function uy(n,e){return Array.isArray(e)?e.reduce(uy,n):{...n,...e}}let ps=(()=>{class n{constructor(t,r,i){this._zone=t,this._injector=r,this._exceptionHandler=i,this._bootstrapListeners=[],this._views=[],this._runningTick=!1,this._stable=!0,this._destroyed=!1,this._destroyListeners=[],this.componentTypes=[],this.components=[],this._onMicrotaskEmptySubscription=this._zone.onMicrotaskEmpty.subscribe({next:()=>{this._zone.run(()=>{this.tick()})}});const o=new ve(a=>{this._stable=this._zone.isStable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks,this._zone.runOutsideAngular(()=>{a.next(this._stable),a.complete()})}),s=new ve(a=>{let l;this._zone.runOutsideAngular(()=>{l=this._zone.onStable.subscribe(()=>{Re.assertNotInAngularZone(),kd(()=>{!this._stable&&!this._zone.hasPendingMacrotasks&&!this._zone.hasPendingMicrotasks&&(this._stable=!0,a.next(!0))})})});const c=this._zone.onUnstable.subscribe(()=>{Re.assertInAngularZone(),this._stable&&(this._stable=!1,this._zone.runOutsideAngular(()=>{a.next(!1)}))});return()=>{l.unsubscribe(),c.unsubscribe()}});this.isStable=Vf(o,s.pipe(function LD(){return n=>zs()(function ND(n,e){return function(r){let i;if(i="function"==typeof n?n:function(){return n},"function"==typeof e)return r.lift(new kD(i,e));const o=Object.create(r,xD);return o.source=r,o.subjectFactory=i,o}}(FD)(n))}()))}get destroyed(){return this._destroyed}get injector(){return this._injector}bootstrap(t,r){const i=t instanceof ag;if(!this._injector.get(Ya).done)throw!i&&function uo(n){const e=Ae(n)||Pt(n)||Rt(n);return null!==e&&e.standalone}(t),new k(405,false);let s;s=i?t:this._injector.get(Hi).resolveComponentFactory(t),this.componentTypes.push(s.componentType);const a=function zI(n){return n.isBoundToModule}(s)?void 0:this._injector.get(Qr),c=s.create(Vt.NULL,[],r||s.selector,a),u=c.location.nativeElement,d=c.injector.get(ty,null);return d?.registerApplication(u),c.onDestroy(()=>{this.detachView(c.hostView),Qa(this.components,c),d?.unregisterApplication(u)}),this._loadComponent(c),c}tick(){if(this._runningTick)throw new k(101,!1);try{this._runningTick=!0;for(let t of this._views)t.detectChanges()}catch(t){this._zone.runOutsideAngular(()=>this._exceptionHandler.handleError(t))}finally{this._runningTick=!1}}attachView(t){const r=t;this._views.push(r),r.attachToAppRef(this)}detachView(t){const r=t;Qa(this._views,r),r.detachFromAppRef()}_loadComponent(t){this.attachView(t.hostView),this.tick(),this.components.push(t),this._injector.get(Kv,[]).concat(this._bootstrapListeners).forEach(i=>i(t))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(t=>t()),this._views.slice().forEach(t=>t.destroy()),this._onMicrotaskEmptySubscription.unsubscribe()}finally{this._destroyed=!0,this._views=[],this._bootstrapListeners=[],this._destroyListeners=[]}}onDestroy(t){return this._destroyListeners.push(t),()=>Qa(this._destroyListeners,t)}destroy(){if(this._destroyed)throw new k(406,!1);const t=this._injector;t.destroy&&!t.destroyed&&t.destroy()}get viewCount(){return this._views.length}warnIfDestroyed(){}}return n.\u0275fac=function(t){return new(t||n)(I(Re),I(Er),I(Ui))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function Qa(n,e){const t=n.indexOf(e);t>-1&&n.splice(t,1)}let hy=!0,gs=(()=>{class n{}return n.__NG_ELEMENT_ID__=QI,n})();function QI(n){return function XI(n,e,t){if(Xs(n)&&!t){const r=en(n.index,e);return new es(r,r)}return 47&n.type?new es(e[16],e):null}(ct(),T(),16==(16&n))}class _y{constructor(){}supports(e){return ns(e)}create(e){return new i1(e)}}const r1=(n,e)=>e;class i1{constructor(e){this.length=0,this._linkedRecords=null,this._unlinkedRecords=null,this._previousItHead=null,this._itHead=null,this._itTail=null,this._additionsHead=null,this._additionsTail=null,this._movesHead=null,this._movesTail=null,this._removalsHead=null,this._removalsTail=null,this._identityChangesHead=null,this._identityChangesTail=null,this._trackByFn=e||r1}forEachItem(e){let t;for(t=this._itHead;null!==t;t=t._next)e(t)}forEachOperation(e){let t=this._itHead,r=this._removalsHead,i=0,o=null;for(;t||r;){const s=!r||t&&t.currentIndex{s=this._trackByFn(i,a),null!==t&&Object.is(t.trackById,s)?(r&&(t=this._verifyReinsertion(t,a,s,i)),Object.is(t.item,a)||this._addIdentityChange(t,a)):(t=this._mismatch(t,a,s,i),r=!0),t=t._next,i++}),this.length=i;return this._truncate(t),this.collection=e,this.isDirty}get isDirty(){return null!==this._additionsHead||null!==this._movesHead||null!==this._removalsHead||null!==this._identityChangesHead}_reset(){if(this.isDirty){let e;for(e=this._previousItHead=this._itHead;null!==e;e=e._next)e._nextPrevious=e._next;for(e=this._additionsHead;null!==e;e=e._nextAdded)e.previousIndex=e.currentIndex;for(this._additionsHead=this._additionsTail=null,e=this._movesHead;null!==e;e=e._nextMoved)e.previousIndex=e.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(e,t,r,i){let o;return null===e?o=this._itTail:(o=e._prev,this._remove(e)),null!==(e=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._reinsertAfter(e,o,i)):null!==(e=null===this._linkedRecords?null:this._linkedRecords.get(r,i))?(Object.is(e.item,t)||this._addIdentityChange(e,t),this._moveAfter(e,o,i)):e=this._addAfter(new o1(t,r),o,i),e}_verifyReinsertion(e,t,r,i){let o=null===this._unlinkedRecords?null:this._unlinkedRecords.get(r,null);return null!==o?e=this._reinsertAfter(o,e._prev,i):e.currentIndex!=i&&(e.currentIndex=i,this._addToMoves(e,i)),e}_truncate(e){for(;null!==e;){const t=e._next;this._addToRemovals(this._unlink(e)),e=t}null!==this._unlinkedRecords&&this._unlinkedRecords.clear(),null!==this._additionsTail&&(this._additionsTail._nextAdded=null),null!==this._movesTail&&(this._movesTail._nextMoved=null),null!==this._itTail&&(this._itTail._next=null),null!==this._removalsTail&&(this._removalsTail._nextRemoved=null),null!==this._identityChangesTail&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(e,t,r){null!==this._unlinkedRecords&&this._unlinkedRecords.remove(e);const i=e._prevRemoved,o=e._nextRemoved;return null===i?this._removalsHead=o:i._nextRemoved=o,null===o?this._removalsTail=i:o._prevRemoved=i,this._insertAfter(e,t,r),this._addToMoves(e,r),e}_moveAfter(e,t,r){return this._unlink(e),this._insertAfter(e,t,r),this._addToMoves(e,r),e}_addAfter(e,t,r){return this._insertAfter(e,t,r),this._additionsTail=null===this._additionsTail?this._additionsHead=e:this._additionsTail._nextAdded=e,e}_insertAfter(e,t,r){const i=null===t?this._itHead:t._next;return e._next=i,e._prev=t,null===i?this._itTail=e:i._prev=e,null===t?this._itHead=e:t._next=e,null===this._linkedRecords&&(this._linkedRecords=new vy),this._linkedRecords.put(e),e.currentIndex=r,e}_remove(e){return this._addToRemovals(this._unlink(e))}_unlink(e){null!==this._linkedRecords&&this._linkedRecords.remove(e);const t=e._prev,r=e._next;return null===t?this._itHead=r:t._next=r,null===r?this._itTail=t:r._prev=t,e}_addToMoves(e,t){return e.previousIndex===t||(this._movesTail=null===this._movesTail?this._movesHead=e:this._movesTail._nextMoved=e),e}_addToRemovals(e){return null===this._unlinkedRecords&&(this._unlinkedRecords=new vy),this._unlinkedRecords.put(e),e.currentIndex=null,e._nextRemoved=null,null===this._removalsTail?(this._removalsTail=this._removalsHead=e,e._prevRemoved=null):(e._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=e),e}_addIdentityChange(e,t){return e.item=t,this._identityChangesTail=null===this._identityChangesTail?this._identityChangesHead=e:this._identityChangesTail._nextIdentityChange=e,e}}class o1{constructor(e,t){this.item=e,this.trackById=t,this.currentIndex=null,this.previousIndex=null,this._nextPrevious=null,this._prev=null,this._next=null,this._prevDup=null,this._nextDup=null,this._prevRemoved=null,this._nextRemoved=null,this._nextAdded=null,this._nextMoved=null,this._nextIdentityChange=null}}class s1{constructor(){this._head=null,this._tail=null}add(e){null===this._head?(this._head=this._tail=e,e._nextDup=null,e._prevDup=null):(this._tail._nextDup=e,e._prevDup=this._tail,e._nextDup=null,this._tail=e)}get(e,t){let r;for(r=this._head;null!==r;r=r._nextDup)if((null===t||t<=r.currentIndex)&&Object.is(r.trackById,e))return r;return null}remove(e){const t=e._prevDup,r=e._nextDup;return null===t?this._head=r:t._nextDup=r,null===r?this._tail=t:r._prevDup=t,null===this._head}}class vy{constructor(){this.map=new Map}put(e){const t=e.trackById;let r=this.map.get(t);r||(r=new s1,this.map.set(t,r)),r.add(e)}get(e,t){const i=this.map.get(e);return i?i.get(e,t):null}remove(e){const t=e.trackById;return this.map.get(t).remove(e)&&this.map.delete(t),e}get isEmpty(){return 0===this.map.size}clear(){this.map.clear()}}function yy(n,e,t){const r=n.previousIndex;if(null===r)return r;let i=0;return t&&r{class n{constructor(t){this.factories=t}static create(t,r){if(null!=r){const i=r.factories.slice();t=t.concat(i)}return new n(t)}static extend(t){return{provide:n,useFactory:r=>n.create(t,r||Cy()),deps:[[n,new $o,new Ur]]}}find(t){const r=this.factories.find(i=>i.supports(t));if(null!=r)return r;throw new k(901,!1)}}return n.\u0275prov=q({token:n,providedIn:"root",factory:Cy}),n})();const d1=oy(null,"core",[]);let h1=(()=>{class n{constructor(t){}}return n.\u0275fac=function(t){return new(t||n)(I(ps))},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({}),n})();function ur(n){return"boolean"==typeof n?n:null!=n&&"false"!==n}let tl=null;function zn(){return tl}const Ne=new X("DocumentToken");let nl=(()=>{class n{historyGo(t){throw new Error("Not implemented")}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:function(){return function m1(){return I(Dy)}()},providedIn:"platform"}),n})();const _1=new X("Location Initialized");let Dy=(()=>{class n extends nl{constructor(t){super(),this._doc=t,this._init()}_init(){this.location=window.location,this._history=window.history}getBaseHrefFromDOM(){return zn().getBaseHref(this._doc)}onPopState(t){const r=zn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",t,!1),()=>r.removeEventListener("popstate",t)}onHashChange(t){const r=zn().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",t,!1),()=>r.removeEventListener("hashchange",t)}get href(){return this.location.href}get protocol(){return this.location.protocol}get hostname(){return this.location.hostname}get port(){return this.location.port}get pathname(){return this.location.pathname}get search(){return this.location.search}get hash(){return this.location.hash}set pathname(t){this.location.pathname=t}pushState(t,r,i){Ey()?this._history.pushState(t,r,i):this.location.hash=i}replaceState(t,r,i){Ey()?this._history.replaceState(t,r,i):this.location.hash=i}forward(){this._history.forward()}back(){this._history.back()}historyGo(t=0){this._history.go(t)}getState(){return this._history.state}}return n.\u0275fac=function(t){return new(t||n)(I(Ne))},n.\u0275prov=q({token:n,factory:function(){return function v1(){return new Dy(I(Ne))}()},providedIn:"platform"}),n})();function Ey(){return!!window.history.pushState}function qd(n,e){if(0==n.length)return e;if(0==e.length)return n;let t=0;return n.endsWith("/")&&t++,e.startsWith("/")&&t++,2==t?n+e.substring(1):1==t?n+e:n+"/"+e}function Sy(n){const e=n.match(/#|\?|$/),t=e&&e.index||n.length;return n.slice(0,t-("/"===n[t-1]?1:0))+n.slice(t)}function dr(n){return n&&"?"!==n[0]?"?"+n:n}let ei=(()=>{class n{historyGo(t){throw new Error("Not implemented")}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:function(){return function y1(){const n=I(Ne).location;return new Ay(I(nl),n&&n.origin||"")}()},providedIn:"root"}),n})();const My=new X("appBaseHref");let Ay=(()=>{class n extends ei{constructor(t,r){if(super(),this._platformLocation=t,this._removeListenerFns=[],null==r&&(r=this._platformLocation.getBaseHrefFromDOM()),null==r)throw new Error("No base href set. Please provide a value for the APP_BASE_HREF token or add a base element to the document.");this._baseHref=r}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}prepareExternalUrl(t){return qd(this._baseHref,t)}path(t=!1){const r=this._platformLocation.pathname+dr(this._platformLocation.search),i=this._platformLocation.hash;return i&&t?`${r}${i}`:r}pushState(t,r,i,o){const s=this.prepareExternalUrl(i+dr(o));this._platformLocation.pushState(t,r,s)}replaceState(t,r,i,o){const s=this.prepareExternalUrl(i+dr(o));this._platformLocation.replaceState(t,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}}return n.\u0275fac=function(t){return new(t||n)(I(nl),I(My,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),b1=(()=>{class n extends ei{constructor(t,r){super(),this._platformLocation=t,this._baseHref="",this._removeListenerFns=[],null!=r&&(this._baseHref=r)}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(t){this._removeListenerFns.push(this._platformLocation.onPopState(t),this._platformLocation.onHashChange(t))}getBaseHref(){return this._baseHref}path(t=!1){let r=this._platformLocation.hash;return null==r&&(r="#"),r.length>0?r.substring(1):r}prepareExternalUrl(t){const r=qd(this._baseHref,t);return r.length>0?"#"+r:r}pushState(t,r,i,o){let s=this.prepareExternalUrl(i+dr(o));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.pushState(t,r,s)}replaceState(t,r,i,o){let s=this.prepareExternalUrl(i+dr(o));0==s.length&&(s=this._platformLocation.pathname),this._platformLocation.replaceState(t,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(t=0){this._platformLocation.historyGo?.(t)}}return n.\u0275fac=function(t){return new(t||n)(I(nl),I(My,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),rl=(()=>{class n{constructor(t){this._subject=new he,this._urlChangeListeners=[],this._urlChangeSubscription=null,this._locationStrategy=t;const r=this._locationStrategy.getBaseHref();this._baseHref=Sy(Oy(r)),this._locationStrategy.onPopState(i=>{this._subject.emit({url:this.path(!0),pop:!0,state:i.state,type:i.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(t=!1){return this.normalize(this._locationStrategy.path(t))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(t,r=""){return this.path()==this.normalize(t+dr(r))}normalize(t){return n.stripTrailingSlash(function w1(n,e){return n&&e.startsWith(n)?e.substring(n.length):e}(this._baseHref,Oy(t)))}prepareExternalUrl(t){return t&&"/"!==t[0]&&(t="/"+t),this._locationStrategy.prepareExternalUrl(t)}go(t,r="",i=null){this._locationStrategy.pushState(i,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+dr(r)),i)}replaceState(t,r="",i=null){this._locationStrategy.replaceState(i,"",t,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(t+dr(r)),i)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(t=0){this._locationStrategy.historyGo?.(t)}onUrlChange(t){return this._urlChangeListeners.push(t),this._urlChangeSubscription||(this._urlChangeSubscription=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)})),()=>{const r=this._urlChangeListeners.indexOf(t);this._urlChangeListeners.splice(r,1),0===this._urlChangeListeners.length&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(t="",r){this._urlChangeListeners.forEach(i=>i(t,r))}subscribe(t,r,i){return this._subject.subscribe({next:t,error:r,complete:i})}}return n.normalizeQueryParams=dr,n.joinWithSlash=qd,n.stripTrailingSlash=Sy,n.\u0275fac=function(t){return new(t||n)(I(ei))},n.\u0275prov=q({token:n,factory:function(){return function C1(){return new rl(I(ei))}()},providedIn:"root"}),n})();function Oy(n){return n.replace(/\/index.html$/,"")}class lx{constructor(e,t,r,i){this.$implicit=e,this.ngForOf=t,this.index=r,this.count=i}get first(){return 0===this.index}get last(){return this.index===this.count-1}get even(){return this.index%2==0}get odd(){return!this.even}}let By=(()=>{class n{constructor(t,r,i){this._viewContainer=t,this._template=r,this._differs=i,this._ngForOf=null,this._ngForOfDirty=!0,this._differ=null}set ngForOf(t){this._ngForOf=t,this._ngForOfDirty=!0}set ngForTrackBy(t){this._trackByFn=t}get ngForTrackBy(){return this._trackByFn}set ngForTemplate(t){t&&(this._template=t)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;const t=this._ngForOf;!this._differ&&t&&(this._differ=this._differs.find(t).create(this.ngForTrackBy))}if(this._differ){const t=this._differ.diff(this._ngForOf);t&&this._applyChanges(t)}}_applyChanges(t){const r=this._viewContainer;t.forEachOperation((i,o,s)=>{if(null==i.previousIndex)r.createEmbeddedView(this._template,new lx(i.item,this._ngForOf,-1,-1),null===s?void 0:s);else if(null==s)r.remove(null===o?void 0:o);else if(null!==o){const a=r.get(o);r.move(a,s),Hy(a,i)}});for(let i=0,o=r.length;i{Hy(r.get(i.currentIndex),i)})}static ngTemplateContextGuard(t,r){return!0}}return n.\u0275fac=function(t){return new(t||n)(E(vn),E(sn),E(el))},n.\u0275dir=Z({type:n,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"},standalone:!0}),n})();function Hy(n,e){n.context.$implicit=e.item}let rh=(()=>{class n{constructor(t,r){this._viewContainer=t,this._context=new ux,this._thenTemplateRef=null,this._elseTemplateRef=null,this._thenViewRef=null,this._elseViewRef=null,this._thenTemplateRef=r}set ngIf(t){this._context.$implicit=this._context.ngIf=t,this._updateView()}set ngIfThen(t){jy("ngIfThen",t),this._thenTemplateRef=t,this._thenViewRef=null,this._updateView()}set ngIfElse(t){jy("ngIfElse",t),this._elseTemplateRef=t,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngTemplateContextGuard(t,r){return!0}}return n.\u0275fac=function(t){return new(t||n)(E(vn),E(sn))},n.\u0275dir=Z({type:n,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"},standalone:!0}),n})();class ux{constructor(){this.$implicit=null,this.ngIf=null}}function jy(n,e){if(e&&!e.createEmbeddedView)throw new Error(`${n} must be a TemplateRef, but received '${xe(e)}'.`)}let $y=(()=>{class n{constructor(t){this._viewContainerRef=t,this._viewRef=null,this.ngTemplateOutletContext=null,this.ngTemplateOutlet=null,this.ngTemplateOutletInjector=null}ngOnChanges(t){if(t.ngTemplateOutlet||t.ngTemplateOutletInjector){const r=this._viewContainerRef;if(this._viewRef&&r.remove(r.indexOf(this._viewRef)),this.ngTemplateOutlet){const{ngTemplateOutlet:i,ngTemplateOutletContext:o,ngTemplateOutletInjector:s}=this;this._viewRef=r.createEmbeddedView(i,o,s?{injector:s}:void 0)}else this._viewRef=null}else this._viewRef&&t.ngTemplateOutletContext&&this.ngTemplateOutletContext&&(this._viewRef.context=this.ngTemplateOutletContext)}}return n.\u0275fac=function(t){return new(t||n)(E(vn))},n.\u0275dir=Z({type:n,selectors:[["","ngTemplateOutlet",""]],inputs:{ngTemplateOutletContext:"ngTemplateOutletContext",ngTemplateOutlet:"ngTemplateOutlet",ngTemplateOutletInjector:"ngTemplateOutletInjector"},standalone:!0,features:[Nt]}),n})(),zy=(()=>{class n{transform(t){return JSON.stringify(t,null,2)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275pipe=zt({name:"json",type:n,pure:!1,standalone:!0}),n})(),Wy=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({}),n})();const qy="browser";function Yy(n){return n===qy}let Vx=(()=>{class n{}return n.\u0275prov=q({token:n,providedIn:"root",factory:()=>new Bx(I(Ne),window)}),n})();class Bx{constructor(e,t){this.document=e,this.window=t,this.offset=()=>[0,0]}setOffset(e){this.offset=Array.isArray(e)?()=>e:e}getScrollPosition(){return this.supportsScrolling()?[this.window.pageXOffset,this.window.pageYOffset]:[0,0]}scrollToPosition(e){this.supportsScrolling()&&this.window.scrollTo(e[0],e[1])}scrollToAnchor(e){if(!this.supportsScrolling())return;const t=function Hx(n,e){const t=n.getElementById(e)||n.getElementsByName(e)[0];if(t)return t;if("function"==typeof n.createTreeWalker&&n.body&&(n.body.createShadowRoot||n.body.attachShadow)){const r=n.createTreeWalker(n.body,NodeFilter.SHOW_ELEMENT);let i=r.currentNode;for(;i;){const o=i.shadowRoot;if(o){const s=o.getElementById(e)||o.querySelector(`[name="${e}"]`);if(s)return s}i=r.nextNode()}}return null}(this.document,e);t&&(this.scrollToElement(t),t.focus())}setHistoryScrollRestoration(e){if(this.supportScrollRestoration()){const t=this.window.history;t&&t.scrollRestoration&&(t.scrollRestoration=e)}}scrollToElement(e){const t=e.getBoundingClientRect(),r=t.left+this.window.pageXOffset,i=t.top+this.window.pageYOffset,o=this.offset();this.window.scrollTo(r-o[0],i-o[1])}supportScrollRestoration(){try{if(!this.supportsScrolling())return!1;const e=Zy(this.window.history)||Zy(Object.getPrototypeOf(this.window.history));return!(!e||!e.writable&&!e.set)}catch{return!1}}supportsScrolling(){try{return!!this.window&&!!this.window.scrollTo&&"pageXOffset"in this.window}catch{return!1}}}function Zy(n){return Object.getOwnPropertyDescriptor(n,"scrollRestoration")}class lh extends class Ux extends class g1{}{constructor(){super(...arguments),this.supportsDOMEvents=!0}}{static makeCurrent(){!function p1(n){tl||(tl=n)}(new lh)}onAndCancel(e,t,r){return e.addEventListener(t,r,!1),()=>{e.removeEventListener(t,r,!1)}}dispatchEvent(e,t){e.dispatchEvent(t)}remove(e){e.parentNode&&e.parentNode.removeChild(e)}createElement(e,t){return(t=t||this.getDefaultDocument()).createElement(e)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(e){return e.nodeType===Node.ELEMENT_NODE}isShadowRoot(e){return e instanceof DocumentFragment}getGlobalEventTarget(e,t){return"window"===t?window:"document"===t?e:"body"===t?e.body:null}getBaseHref(e){const t=function $x(){return ys=ys||document.querySelector("base"),ys?ys.getAttribute("href"):null}();return null==t?null:function zx(n){fl=fl||document.createElement("a"),fl.setAttribute("href",n);const e=fl.pathname;return"/"===e.charAt(0)?e:`/${e}`}(t)}resetBaseElement(){ys=null}getUserAgent(){return window.navigator.userAgent}getCookie(e){return function ox(n,e){e=encodeURIComponent(e);for(const t of n.split(";")){const r=t.indexOf("="),[i,o]=-1==r?[t,""]:[t.slice(0,r),t.slice(r+1)];if(i.trim()===e)return decodeURIComponent(o)}return null}(document.cookie,e)}}let fl,ys=null;const Ky=new X("TRANSITION_ID"),Wx=[{provide:qa,useFactory:function Gx(n,e,t){return()=>{t.get(Ya).donePromise.then(()=>{const r=zn(),i=e.querySelectorAll(`style[ng-transition="${n}"]`);for(let o=0;o{class n{build(){return new XMLHttpRequest}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const pl=new X("EventManagerPlugins");let gl=(()=>{class n{constructor(t,r){this._zone=r,this._eventNameToPlugin=new Map,t.forEach(i=>i.manager=this),this._plugins=t.slice().reverse()}addEventListener(t,r,i){return this._findPluginFor(r).addEventListener(t,r,i)}addGlobalEventListener(t,r,i){return this._findPluginFor(r).addGlobalEventListener(t,r,i)}getZone(){return this._zone}_findPluginFor(t){const r=this._eventNameToPlugin.get(t);if(r)return r;const i=this._plugins;for(let o=0;o{class n{constructor(){this._stylesSet=new Set}addStyles(t){const r=new Set;t.forEach(i=>{this._stylesSet.has(i)||(this._stylesSet.add(i),r.add(i))}),this.onStylesAdded(r)}onStylesAdded(t){}getAllStyles(){return Array.from(this._stylesSet)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})(),bs=(()=>{class n extends Xy{constructor(t){super(),this._doc=t,this._hostNodes=new Map,this._hostNodes.set(t.head,[])}_addStylesToHost(t,r,i){t.forEach(o=>{const s=this._doc.createElement("style");s.textContent=o,i.push(r.appendChild(s))})}addHost(t){const r=[];this._addStylesToHost(this._stylesSet,t,r),this._hostNodes.set(t,r)}removeHost(t){const r=this._hostNodes.get(t);r&&r.forEach(Jy),this._hostNodes.delete(t)}onStylesAdded(t){this._hostNodes.forEach((r,i)=>{this._addStylesToHost(t,i,r)})}ngOnDestroy(){this._hostNodes.forEach(t=>t.forEach(Jy))}}return n.\u0275fac=function(t){return new(t||n)(I(Ne))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();function Jy(n){zn().remove(n)}const ch={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/MathML/"},uh=/%COMP%/g;function ml(n,e,t){for(let r=0;r{if("__ngUnwrap__"===e)return n;!1===n(e)&&(e.preventDefault(),e.returnValue=!1)}}let dh=(()=>{class n{constructor(t,r,i){this.eventManager=t,this.sharedStylesHost=r,this.appId=i,this.rendererByCompId=new Map,this.defaultRenderer=new hh(t)}createRenderer(t,r){if(!t||!r)return this.defaultRenderer;switch(r.encapsulation){case kn.Emulated:{let i=this.rendererByCompId.get(r.id);return i||(i=new eP(this.eventManager,this.sharedStylesHost,r,this.appId),this.rendererByCompId.set(r.id,i)),i.applyToHost(t),i}case 1:case kn.ShadowDom:return new tP(this.eventManager,this.sharedStylesHost,t,r);default:if(!this.rendererByCompId.has(r.id)){const i=ml(r.id,r.styles,[]);this.sharedStylesHost.addStyles(i),this.rendererByCompId.set(r.id,this.defaultRenderer)}return this.defaultRenderer}}begin(){}end(){}}return n.\u0275fac=function(t){return new(t||n)(I(gl),I(bs),I(fs))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();class hh{constructor(e){this.eventManager=e,this.data=Object.create(null),this.destroyNode=null}destroy(){}createElement(e,t){return t?document.createElementNS(ch[t]||t,e):document.createElement(e)}createComment(e){return document.createComment(e)}createText(e){return document.createTextNode(e)}appendChild(e,t){(ib(e)?e.content:e).appendChild(t)}insertBefore(e,t,r){e&&(ib(e)?e.content:e).insertBefore(t,r)}removeChild(e,t){e&&e.removeChild(t)}selectRootElement(e,t){let r="string"==typeof e?document.querySelector(e):e;if(!r)throw new Error(`The selector "${e}" did not match any elements`);return t||(r.textContent=""),r}parentNode(e){return e.parentNode}nextSibling(e){return e.nextSibling}setAttribute(e,t,r,i){if(i){t=i+":"+t;const o=ch[i];o?e.setAttributeNS(o,t,r):e.setAttribute(t,r)}else e.setAttribute(t,r)}removeAttribute(e,t,r){if(r){const i=ch[r];i?e.removeAttributeNS(i,t):e.removeAttribute(`${r}:${t}`)}else e.removeAttribute(t)}addClass(e,t){e.classList.add(t)}removeClass(e,t){e.classList.remove(t)}setStyle(e,t,r,i){i&(Wt.DashCase|Wt.Important)?e.style.setProperty(t,r,i&Wt.Important?"important":""):e.style[t]=r}removeStyle(e,t,r){r&Wt.DashCase?e.style.removeProperty(t):e.style[t]=""}setProperty(e,t,r){e[t]=r}setValue(e,t){e.nodeValue=t}listen(e,t,r){return"string"==typeof e?this.eventManager.addGlobalEventListener(e,t,nb(r)):this.eventManager.addEventListener(e,t,nb(r))}}function ib(n){return"TEMPLATE"===n.tagName&&void 0!==n.content}class eP extends hh{constructor(e,t,r,i){super(e),this.component=r;const o=ml(i+"-"+r.id,r.styles,[]);t.addStyles(o),this.contentAttr=function Qx(n){return"_ngcontent-%COMP%".replace(uh,n)}(i+"-"+r.id),this.hostAttr=function Xx(n){return"_nghost-%COMP%".replace(uh,n)}(i+"-"+r.id)}applyToHost(e){super.setAttribute(e,this.hostAttr,"")}createElement(e,t){const r=super.createElement(e,t);return super.setAttribute(r,this.contentAttr,""),r}}class tP extends hh{constructor(e,t,r,i){super(e),this.sharedStylesHost=t,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);const o=ml(i.id,i.styles,[]);for(let s=0;s{class n extends Qy{constructor(t){super(t)}supports(t){return!0}addEventListener(t,r,i){return t.addEventListener(r,i,!1),()=>this.removeEventListener(t,r,i)}removeEventListener(t,r,i){return t.removeEventListener(r,i)}}return n.\u0275fac=function(t){return new(t||n)(I(Ne))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const ob=["alt","control","meta","shift"],iP={"\b":"Backspace","\t":"Tab","\x7f":"Delete","\x1b":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},sb={A:"1",B:"2",C:"3",D:"4",E:"5",F:"6",G:"7",H:"8",I:"9",J:"*",K:"+",M:"-",N:".",O:"/","`":"0","\x90":"NumLock"},oP={alt:n=>n.altKey,control:n=>n.ctrlKey,meta:n=>n.metaKey,shift:n=>n.shiftKey};let sP=(()=>{class n extends Qy{constructor(t){super(t)}supports(t){return null!=n.parseEventName(t)}addEventListener(t,r,i){const o=n.parseEventName(r),s=n.eventCallback(o.fullKey,i,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>zn().onAndCancel(t,o.domEventName,s))}static parseEventName(t){const r=t.toLowerCase().split("."),i=r.shift();if(0===r.length||"keydown"!==i&&"keyup"!==i)return null;const o=n._normalizeKey(r.pop());let s="";if(ob.forEach(l=>{const c=r.indexOf(l);c>-1&&(r.splice(c,1),s+=l+".")}),s+=o,0!=r.length||0===o.length)return null;const a={};return a.domEventName=i,a.fullKey=s,a}static getEventFullKey(t){let r="",i=function aP(n){let e=n.key;if(null==e){if(e=n.keyIdentifier,null==e)return"Unidentified";e.startsWith("U+")&&(e=String.fromCharCode(parseInt(e.substring(2),16)),3===n.location&&sb.hasOwnProperty(e)&&(e=sb[e]))}return iP[e]||e}(t);return i=i.toLowerCase()," "===i?i="space":"."===i&&(i="dot"),ob.forEach(o=>{o!=i&&(0,oP[o])(t)&&(r+=o+".")}),r+=i,r}static eventCallback(t,r,i){return o=>{n.getEventFullKey(o)===t&&i.runGuarded(()=>r(o))}}static _normalizeKey(t){return"esc"===t?"escape":t}}return n.\u0275fac=function(t){return new(t||n)(I(Ne))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const ab=[{provide:Za,useValue:qy},{provide:Zv,useValue:function lP(){lh.makeCurrent()},multi:!0},{provide:Ne,useFactory:function uP(){return function vS(n){Gc=n}(document),document},deps:[]}],dP=oy(d1,"browser",ab),lb=new X(""),cb=[{provide:Ka,useClass:class qx{addToWindow(e){Te.getAngularTestability=(r,i=!0)=>{const o=e.findTestabilityInTree(r,i);if(null==o)throw new Error("Could not find testability for element.");return o},Te.getAllAngularTestabilities=()=>e.getAllTestabilities(),Te.getAllAngularRootElements=()=>e.getAllRootElements(),Te.frameworkStabilizers||(Te.frameworkStabilizers=[]),Te.frameworkStabilizers.push(r=>{const i=Te.getAllAngularTestabilities();let o=i.length,s=!1;const a=function(l){s=s||l,o--,0==o&&r(s)};i.forEach(function(l){l.whenStable(a)})})}findTestabilityInTree(e,t,r){return null==t?null:e.getTestability(t)??(r?zn().isShadowRoot(t)?this.findTestabilityInTree(e,t.host,!0):this.findTestabilityInTree(e,t.parentElement,!0):null)}},deps:[]},{provide:ty,useClass:Vd,deps:[Re,Bd,Ka]},{provide:Vd,useClass:Vd,deps:[Re,Bd,Ka]}],ub=[{provide:nu,useValue:"root"},{provide:Ui,useFactory:function cP(){return new Ui},deps:[]},{provide:pl,useClass:nP,multi:!0,deps:[Ne,Re,Za]},{provide:pl,useClass:sP,multi:!0,deps:[Ne]},{provide:dh,useClass:dh,deps:[gl,bs,fs]},{provide:cg,useExisting:dh},{provide:Xy,useExisting:bs},{provide:bs,useClass:bs,deps:[Ne]},{provide:gl,useClass:gl,deps:[pl,Re]},{provide:class jx{},useClass:Yx,deps:[]},[]];let hP=(()=>{class n{constructor(t){}static withServerTransition(t){return{ngModule:n,providers:[{provide:fs,useValue:t.appId},{provide:Ky,useExisting:fs},Wx]}}}return n.\u0275fac=function(t){return new(t||n)(I(lb,12))},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({providers:[...ub,...cb],imports:[Wy,h1]}),n})(),db=(()=>{class n{constructor(t){this._doc=t}getTitle(){return this._doc.title}setTitle(t){this._doc.title=t||""}}return n.\u0275fac=function(t){return new(t||n)(I(Ne))},n.\u0275prov=q({token:n,factory:function(t){let r=null;return r=t?new t:function pP(){return new db(I(Ne))}(),r},providedIn:"root"}),n})();typeof window<"u"&&window;let pb=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:function(t){let r=null;return r=t?new(t||n):I(gb),r},providedIn:"root"}),n})(),gb=(()=>{class n extends pb{constructor(t){super(),this._doc=t}sanitize(t,r){if(null==r)return null;switch(t){case Pe.NONE:return r;case Pe.HTML:return Vn(r,"HTML")?rn(r):Kp(this._doc,String(r)).toString();case Pe.STYLE:return Vn(r,"Style")?rn(r):r;case Pe.SCRIPT:if(Vn(r,"Script"))return rn(r);throw new Error("unsafe value used in a script context");case Pe.URL:return Vn(r,"URL")?rn(r):Wo(String(r));case Pe.RESOURCE_URL:if(Vn(r,"ResourceURL"))return rn(r);throw new Error("unsafe value used in a resource URL context (see https://g.co/ng/security#xss)");default:throw new Error(`Unexpected SecurityContext ${t} (see https://g.co/ng/security#xss)`)}}bypassSecurityTrustHtml(t){return function AS(n){return new CS(n)}(t)}bypassSecurityTrustStyle(t){return function OS(n){return new wS(n)}(t)}bypassSecurityTrustScript(t){return function TS(n){return new DS(n)}(t)}bypassSecurityTrustUrl(t){return function IS(n){return new ES(n)}(t)}bypassSecurityTrustResourceUrl(t){return function xS(n){return new SS(n)}(t)}}return n.\u0275fac=function(t){return new(t||n)(I(Ne))},n.\u0275prov=q({token:n,factory:function(t){let r=null;return r=t?new t:function wP(n){return new gb(n.get(Ne))}(I(Vt)),r},providedIn:"root"}),n})();function _l(n,e){return new ve(t=>{const r=n.length;if(0===r)return void t.complete();const i=new Array(r);let o=0,s=0;for(let a=0;a{c||(c=!0,s++),i[a]=u},error:u=>t.error(u),complete:()=>{o++,(o===r||!c)&&(s===r&&t.next(e?e.reduce((u,d,f)=>(u[d]=i[f],u),{}):i),t.complete())}}))}})}let mb=(()=>{class n{constructor(t,r){this._renderer=t,this._elementRef=r,this.onChange=i=>{},this.onTouched=()=>{}}setProperty(t,r){this._renderer.setProperty(this._elementRef.nativeElement,t,r)}registerOnTouched(t){this.onTouched=t}registerOnChange(t){this.onChange=t}setDisabledState(t){this.setProperty("disabled",t)}}return n.\u0275fac=function(t){return new(t||n)(E(nr),E(dt))},n.\u0275dir=Z({type:n}),n})(),ti=(()=>{class n extends mb{}return n.\u0275fac=function(){let e;return function(r){return(e||(e=vt(n)))(r||n)}}(),n.\u0275dir=Z({type:n,features:[Oe]}),n})();const Gn=new X("NgValueAccessor"),EP={provide:Gn,useExisting:Fe(()=>vl),multi:!0};let vl=(()=>{class n extends ti{writeValue(t){this.setProperty("checked",t)}}return n.\u0275fac=function(){let e;return function(r){return(e||(e=vt(n)))(r||n)}}(),n.\u0275dir=Z({type:n,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(t,r){1&t&&G("change",function(o){return r.onChange(o.target.checked)})("blur",function(){return r.onTouched()})},features:[je([EP]),Oe]}),n})();const SP={provide:Gn,useExisting:Fe(()=>Cs),multi:!0},AP=new X("CompositionEventMode");let Cs=(()=>{class n extends mb{constructor(t,r,i){super(t,r),this._compositionMode=i,this._composing=!1,null==this._compositionMode&&(this._compositionMode=!function MP(){const n=zn()?zn().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}())}writeValue(t){this.setProperty("value",t??"")}_handleInput(t){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(t)}_compositionStart(){this._composing=!0}_compositionEnd(t){this._composing=!1,this._compositionMode&&this.onChange(t)}}return n.\u0275fac=function(t){return new(t||n)(E(nr),E(dt),E(AP,8))},n.\u0275dir=Z({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(t,r){1&t&&G("input",function(o){return r._handleInput(o.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(o){return r._compositionEnd(o.target.value)})},features:[je([SP]),Oe]}),n})();function Tr(n){return null==n||("string"==typeof n||Array.isArray(n))&&0===n.length}function _b(n){return null!=n&&"number"==typeof n.length}const At=new X("NgValidators"),Ir=new X("NgAsyncValidators"),TP=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;class vb{static min(e){return function yb(n){return e=>{if(Tr(e.value)||Tr(n))return null;const t=parseFloat(e.value);return!isNaN(t)&&t{if(Tr(e.value)||Tr(n))return null;const t=parseFloat(e.value);return!isNaN(t)&&t>n?{max:{max:n,actual:e.value}}:null}}(e)}static required(e){return function Cb(n){return Tr(n.value)?{required:!0}:null}(e)}static requiredTrue(e){return function wb(n){return!0===n.value?null:{required:!0}}(e)}static email(e){return function Db(n){return Tr(n.value)||TP.test(n.value)?null:{email:!0}}(e)}static minLength(e){return function Eb(n){return e=>Tr(e.value)||!_b(e.value)?null:e.value.length_b(e.value)&&e.value.length>n?{maxlength:{requiredLength:n,actualLength:e.value.length}}:null}(e)}static pattern(e){return function Mb(n){if(!n)return yl;let e,t;return"string"==typeof n?(t="","^"!==n.charAt(0)&&(t+="^"),t+=n,"$"!==n.charAt(n.length-1)&&(t+="$"),e=new RegExp(t)):(t=n.toString(),e=n),r=>{if(Tr(r.value))return null;const i=r.value;return e.test(i)?null:{pattern:{requiredPattern:t,actualValue:i}}}}(e)}static nullValidator(e){return null}static compose(e){return Pb(e)}static composeAsync(e){return Rb(e)}}function yl(n){return null}function Ab(n){return null!=n}function Ob(n){return is(n)?Qe(n):n}function Tb(n){let e={};return n.forEach(t=>{e=null!=t?{...e,...t}:e}),0===Object.keys(e).length?null:e}function Ib(n,e){return e.map(t=>t(n))}function xb(n){return n.map(e=>function IP(n){return!n.validate}(e)?e:t=>e.validate(t))}function Pb(n){if(!n)return null;const e=n.filter(Ab);return 0==e.length?null:function(t){return Tb(Ib(t,e))}}function gh(n){return null!=n?Pb(xb(n)):null}function Rb(n){if(!n)return null;const e=n.filter(Ab);return 0==e.length?null:function(t){return function DP(...n){if(1===n.length){const e=n[0];if(h(e))return _l(e,null);if(p(e)&&Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);return _l(t.map(r=>e[r]),t)}}if("function"==typeof n[n.length-1]){const e=n.pop();return _l(n=1===n.length&&h(n[0])?n[0]:n,null).pipe(Q(t=>e(...t)))}return _l(n,null)}(Ib(t,e).map(Ob)).pipe(Q(Tb))}}function mh(n){return null!=n?Rb(xb(n)):null}function Nb(n,e){return null===n?[e]:Array.isArray(n)?[...n,e]:[n,e]}function kb(n){return n._rawValidators}function Fb(n){return n._rawAsyncValidators}function _h(n){return n?Array.isArray(n)?n:[n]:[]}function bl(n,e){return Array.isArray(n)?n.includes(e):n===e}function Lb(n,e){const t=_h(e);return _h(n).forEach(i=>{bl(t,i)||t.push(i)}),t}function Vb(n,e){return _h(e).filter(t=>!bl(n,t))}class Bb{constructor(){this._rawValidators=[],this._rawAsyncValidators=[],this._onDestroyCallbacks=[]}get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_setValidators(e){this._rawValidators=e||[],this._composedValidatorFn=gh(this._rawValidators)}_setAsyncValidators(e){this._rawAsyncValidators=e||[],this._composedAsyncValidatorFn=mh(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_registerOnDestroy(e){this._onDestroyCallbacks.push(e)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(e=>e()),this._onDestroyCallbacks=[]}reset(e){this.control&&this.control.reset(e)}hasError(e,t){return!!this.control&&this.control.hasError(e,t)}getError(e,t){return this.control?this.control.getError(e,t):null}}class jt extends Bb{get formDirective(){return null}get path(){return null}}class fr extends Bb{constructor(){super(...arguments),this._parent=null,this.name=null,this.valueAccessor=null}}class Hb{constructor(e){this._cd=e}get isTouched(){return!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return!!this._cd?.submitted}}let vh=(()=>{class n extends Hb{constructor(t){super(t)}}return n.\u0275fac=function(t){return new(t||n)(E(fr,2))},n.\u0275dir=Z({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(t,r){2&t&&mt("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},features:[Oe]}),n})(),yh=(()=>{class n extends Hb{constructor(t){super(t)}}return n.\u0275fac=function(t){return new(t||n)(E(jt,10))},n.\u0275dir=Z({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(t,r){2&t&&mt("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},features:[Oe]}),n})();const ws="VALID",wl="INVALID",fo="PENDING",Ds="DISABLED";function Dh(n){return(Dl(n)?n.validators:n)||null}function Ub(n){return Array.isArray(n)?gh(n):n||null}function Eh(n,e){return(Dl(e)?e.asyncValidators:n)||null}function $b(n){return Array.isArray(n)?mh(n):n||null}function Dl(n){return null!=n&&!Array.isArray(n)&&"object"==typeof n}function zb(n,e,t){const r=n.controls;if(!(e?Object.keys(r):r).length)throw new k(1e3,"");if(!r[t])throw new k(1001,"")}function Gb(n,e,t){n._forEachChild((r,i)=>{if(void 0===t[i])throw new k(1002,"")})}class El{constructor(e,t){this._pendingDirty=!1,this._hasOwnPendingAsyncValidator=!1,this._pendingTouched=!1,this._onCollectionChange=()=>{},this._parent=null,this.pristine=!0,this.touched=!1,this._onDisabledChange=[],this._rawValidators=e,this._rawAsyncValidators=t,this._composedValidatorFn=Ub(this._rawValidators),this._composedAsyncValidatorFn=$b(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn}set validator(e){this._rawValidators=this._composedValidatorFn=e}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(e){this._rawAsyncValidators=this._composedAsyncValidatorFn=e}get parent(){return this._parent}get valid(){return this.status===ws}get invalid(){return this.status===wl}get pending(){return this.status==fo}get disabled(){return this.status===Ds}get enabled(){return this.status!==Ds}get dirty(){return!this.pristine}get untouched(){return!this.touched}get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(e){this._rawValidators=e,this._composedValidatorFn=Ub(e)}setAsyncValidators(e){this._rawAsyncValidators=e,this._composedAsyncValidatorFn=$b(e)}addValidators(e){this.setValidators(Lb(e,this._rawValidators))}addAsyncValidators(e){this.setAsyncValidators(Lb(e,this._rawAsyncValidators))}removeValidators(e){this.setValidators(Vb(e,this._rawValidators))}removeAsyncValidators(e){this.setAsyncValidators(Vb(e,this._rawAsyncValidators))}hasValidator(e){return bl(this._rawValidators,e)}hasAsyncValidator(e){return bl(this._rawAsyncValidators,e)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(e={}){this.touched=!0,this._parent&&!e.onlySelf&&this._parent.markAsTouched(e)}markAllAsTouched(){this.markAsTouched({onlySelf:!0}),this._forEachChild(e=>e.markAllAsTouched())}markAsUntouched(e={}){this.touched=!1,this._pendingTouched=!1,this._forEachChild(t=>{t.markAsUntouched({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}markAsDirty(e={}){this.pristine=!1,this._parent&&!e.onlySelf&&this._parent.markAsDirty(e)}markAsPristine(e={}){this.pristine=!0,this._pendingDirty=!1,this._forEachChild(t=>{t.markAsPristine({onlySelf:!0})}),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}markAsPending(e={}){this.status=fo,!1!==e.emitEvent&&this.statusChanges.emit(this.status),this._parent&&!e.onlySelf&&this._parent.markAsPending(e)}disable(e={}){const t=this._parentMarkedDirty(e.onlySelf);this.status=Ds,this.errors=null,this._forEachChild(r=>{r.disable({...e,onlySelf:!0})}),this._updateValue(),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors({...e,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!0))}enable(e={}){const t=this._parentMarkedDirty(e.onlySelf);this.status=ws,this._forEachChild(r=>{r.enable({...e,onlySelf:!0})}),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent}),this._updateAncestors({...e,skipPristineCheck:t}),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(e){this._parent&&!e.onlySelf&&(this._parent.updateValueAndValidity(e),e.skipPristineCheck||this._parent._updatePristine(),this._parent._updateTouched())}setParent(e){this._parent=e}getRawValue(){return this.value}updateValueAndValidity(e={}){this._setInitialStatus(),this._updateValue(),this.enabled&&(this._cancelExistingSubscription(),this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===ws||this.status===fo)&&this._runAsyncValidator(e.emitEvent)),!1!==e.emitEvent&&(this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!e.onlySelf&&this._parent.updateValueAndValidity(e)}_updateTreeValidity(e={emitEvent:!0}){this._forEachChild(t=>t._updateTreeValidity(e)),this.updateValueAndValidity({onlySelf:!0,emitEvent:e.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?Ds:ws}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(e){if(this.asyncValidator){this.status=fo,this._hasOwnPendingAsyncValidator=!0;const t=Ob(this.asyncValidator(this));this._asyncValidationSubscription=t.subscribe(r=>{this._hasOwnPendingAsyncValidator=!1,this.setErrors(r,{emitEvent:e})})}}_cancelExistingSubscription(){this._asyncValidationSubscription&&(this._asyncValidationSubscription.unsubscribe(),this._hasOwnPendingAsyncValidator=!1)}setErrors(e,t={}){this.errors=e,this._updateControlsErrors(!1!==t.emitEvent)}get(e){let t=e;return null==t||(Array.isArray(t)||(t=t.split(".")),0===t.length)?null:t.reduce((r,i)=>r&&r._find(i),this)}getError(e,t){const r=t?this.get(t):this;return r&&r.errors?r.errors[e]:null}hasError(e,t){return!!this.getError(e,t)}get root(){let e=this;for(;e._parent;)e=e._parent;return e}_updateControlsErrors(e){this.status=this._calculateStatus(),e&&this.statusChanges.emit(this.status),this._parent&&this._parent._updateControlsErrors(e)}_initObservables(){this.valueChanges=new he,this.statusChanges=new he}_calculateStatus(){return this._allControlsDisabled()?Ds:this.errors?wl:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(fo)?fo:this._anyControlsHaveStatus(wl)?wl:ws}_anyControlsHaveStatus(e){return this._anyControls(t=>t.status===e)}_anyControlsDirty(){return this._anyControls(e=>e.dirty)}_anyControlsTouched(){return this._anyControls(e=>e.touched)}_updatePristine(e={}){this.pristine=!this._anyControlsDirty(),this._parent&&!e.onlySelf&&this._parent._updatePristine(e)}_updateTouched(e={}){this.touched=this._anyControlsTouched(),this._parent&&!e.onlySelf&&this._parent._updateTouched(e)}_registerOnCollectionChange(e){this._onCollectionChange=e}_setUpdateStrategy(e){Dl(e)&&null!=e.updateOn&&(this._updateOn=e.updateOn)}_parentMarkedDirty(e){return!e&&!(!this._parent||!this._parent.dirty)&&!this._parent._anyControlsDirty()}_find(e){return null}}class Es extends El{constructor(e,t,r){super(Dh(t),Eh(r,t)),this.controls=e,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}registerControl(e,t){return this.controls[e]?this.controls[e]:(this.controls[e]=t,t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange),t)}addControl(e,t,r={}){this.registerControl(e,t),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}removeControl(e,t={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}setControl(e,t,r={}){this.controls[e]&&this.controls[e]._registerOnCollectionChange(()=>{}),delete this.controls[e],t&&this.registerControl(e,t),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}contains(e){return this.controls.hasOwnProperty(e)&&this.controls[e].enabled}setValue(e,t={}){Gb(this,0,e),Object.keys(e).forEach(r=>{zb(this,!0,r),this.controls[r].setValue(e[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(e,t={}){null!=e&&(Object.keys(e).forEach(r=>{const i=this.controls[r];i&&i.patchValue(e[r],{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(e={},t={}){this._forEachChild((r,i)=>{r.reset(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}getRawValue(){return this._reduceChildren({},(e,t,r)=>(e[r]=t.getRawValue(),e))}_syncPendingControls(){let e=this._reduceChildren(!1,(t,r)=>!!r._syncPendingControls()||t);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){Object.keys(this.controls).forEach(t=>{const r=this.controls[t];r&&e(r,t)})}_setUpControls(){this._forEachChild(e=>{e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(e){for(const[t,r]of Object.entries(this.controls))if(this.contains(t)&&e(r))return!0;return!1}_reduceValue(){return this._reduceChildren({},(t,r,i)=>((r.enabled||this.disabled)&&(t[i]=r.value),t))}_reduceChildren(e,t){let r=e;return this._forEachChild((i,o)=>{r=t(r,i,o)}),r}_allControlsDisabled(){for(const e of Object.keys(this.controls))if(this.controls[e].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(e){return this.controls.hasOwnProperty(e)?this.controls[e]:null}}const LP=Es;function Sl(n,e){return[...e.path,n]}function Ss(n,e){Sh(n,e),e.valueAccessor.writeValue(n.value),n.disabled&&e.valueAccessor.setDisabledState?.(!0),function HP(n,e){e.valueAccessor.registerOnChange(t=>{n._pendingValue=t,n._pendingChange=!0,n._pendingDirty=!0,"change"===n.updateOn&&Wb(n,e)})}(n,e),function UP(n,e){const t=(r,i)=>{e.valueAccessor.writeValue(r),i&&e.viewToModelUpdate(r)};n.registerOnChange(t),e._registerOnDestroy(()=>{n._unregisterOnChange(t)})}(n,e),function jP(n,e){e.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,"blur"===n.updateOn&&n._pendingChange&&Wb(n,e),"submit"!==n.updateOn&&n.markAsTouched()})}(n,e),function BP(n,e){if(e.valueAccessor.setDisabledState){const t=r=>{e.valueAccessor.setDisabledState(r)};n.registerOnDisabledChange(t),e._registerOnDestroy(()=>{n._unregisterOnDisabledChange(t)})}}(n,e)}function Ml(n,e,t=!0){const r=()=>{};e.valueAccessor&&(e.valueAccessor.registerOnChange(r),e.valueAccessor.registerOnTouched(r)),Ol(n,e),n&&(e._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function Al(n,e){n.forEach(t=>{t.registerOnValidatorChange&&t.registerOnValidatorChange(e)})}function Sh(n,e){const t=kb(n);null!==e.validator?n.setValidators(Nb(t,e.validator)):"function"==typeof t&&n.setValidators([t]);const r=Fb(n);null!==e.asyncValidator?n.setAsyncValidators(Nb(r,e.asyncValidator)):"function"==typeof r&&n.setAsyncValidators([r]);const i=()=>n.updateValueAndValidity();Al(e._rawValidators,i),Al(e._rawAsyncValidators,i)}function Ol(n,e){let t=!1;if(null!==n){if(null!==e.validator){const i=kb(n);if(Array.isArray(i)&&i.length>0){const o=i.filter(s=>s!==e.validator);o.length!==i.length&&(t=!0,n.setValidators(o))}}if(null!==e.asyncValidator){const i=Fb(n);if(Array.isArray(i)&&i.length>0){const o=i.filter(s=>s!==e.asyncValidator);o.length!==i.length&&(t=!0,n.setAsyncValidators(o))}}}const r=()=>{};return Al(e._rawValidators,r),Al(e._rawAsyncValidators,r),t}function Wb(n,e){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),e.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function qb(n,e){Sh(n,e)}function Mh(n,e){if(!n.hasOwnProperty("model"))return!1;const t=n.model;return!!t.isFirstChange()||!Object.is(e,t.currentValue)}function Zb(n,e){n._syncPendingControls(),e.forEach(t=>{const r=t.control;"submit"===r.updateOn&&r._pendingChange&&(t.viewToModelUpdate(r._pendingValue),r._pendingChange=!1)})}function Ah(n,e){if(!e)return null;let t,r,i;return Array.isArray(e),e.forEach(o=>{o.constructor===Cs?t=o:function GP(n){return Object.getPrototypeOf(n.constructor)===ti}(o)?r=o:i=o}),i||r||t||null}const qP={provide:jt,useExisting:Fe(()=>Tl)},Ms=(()=>Promise.resolve(null))();let Tl=(()=>{class n extends jt{constructor(t,r){super(),this.submitted=!1,this._directives=new Set,this.ngSubmit=new he,this.form=new Es({},gh(t),mh(r))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(t){Ms.then(()=>{const r=this._findContainer(t.path);t.control=r.registerControl(t.name,t.control),Ss(t.control,t),t.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(t)})}getControl(t){return this.form.get(t.path)}removeControl(t){Ms.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name),this._directives.delete(t)})}addFormGroup(t){Ms.then(()=>{const r=this._findContainer(t.path),i=new Es({});qb(i,t),r.registerControl(t.name,i),i.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(t){Ms.then(()=>{const r=this._findContainer(t.path);r&&r.removeControl(t.name)})}getFormGroup(t){return this.form.get(t.path)}updateModel(t,r){Ms.then(()=>{this.form.get(t.path).setValue(r)})}setValue(t){this.control.setValue(t)}onSubmit(t){return this.submitted=!0,Zb(this.form,this._directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.form._updateOn=this.options.updateOn)}_findContainer(t){return t.pop(),t.length?this.form.get(t):this.form}}return n.\u0275fac=function(t){return new(t||n)(E(At,10),E(Ir,10))},n.\u0275dir=Z({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(t,r){1&t&&G("submit",function(o){return r.onSubmit(o)})("reset",function(){return r.onReset()})},inputs:{options:["ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[je([qP]),Oe]}),n})();function Kb(n,e){const t=n.indexOf(e);t>-1&&n.splice(t,1)}function Qb(n){return"object"==typeof n&&null!==n&&2===Object.keys(n).length&&"value"in n&&"disabled"in n}const po=class extends El{constructor(e=null,t,r){super(Dh(t),Eh(r,t)),this.defaultValue=null,this._onChange=[],this._pendingChange=!1,this._applyFormState(e),this._setUpdateStrategy(t),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Dl(t)&&(t.nonNullable||t.initialValueIsDefault)&&(this.defaultValue=Qb(e)?e.value:e)}setValue(e,t={}){this.value=this._pendingValue=e,this._onChange.length&&!1!==t.emitModelToViewChange&&this._onChange.forEach(r=>r(this.value,!1!==t.emitViewToModelChange)),this.updateValueAndValidity(t)}patchValue(e,t={}){this.setValue(e,t)}reset(e=this.defaultValue,t={}){this._applyFormState(e),this.markAsPristine(t),this.markAsUntouched(t),this.setValue(this.value,t),this._pendingChange=!1}_updateValue(){}_anyControls(e){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(e){this._onChange.push(e)}_unregisterOnChange(e){Kb(this._onChange,e)}registerOnDisabledChange(e){this._onDisabledChange.push(e)}_unregisterOnDisabledChange(e){Kb(this._onDisabledChange,e)}_forEachChild(e){}_syncPendingControls(){return!("submit"!==this.updateOn||(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),!this._pendingChange)||(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),0))}_applyFormState(e){Qb(e)?(this.value=this._pendingValue=e.value,e.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=e}},ye=po,KP={provide:fr,useExisting:Fe(()=>Oh)},eC=(()=>Promise.resolve(null))();let Oh=(()=>{class n extends fr{constructor(t,r,i,o,s){super(),this._changeDetectorRef=s,this.control=new po,this._registered=!1,this.update=new he,this._parent=t,this._setValidators(r),this._setAsyncValidators(i),this.valueAccessor=Ah(0,o)}ngOnChanges(t){if(this._checkForErrors(),!this._registered||"name"in t){if(this._registered&&(this._checkName(),this.formDirective)){const r=t.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in t&&this._updateDisabled(t),Mh(t,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&null!=this.options.updateOn&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!(!this.options||!this.options.standalone)}_setUpStandalone(){Ss(this.control,this),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),this._isStandalone()}_updateValue(t){eC.then(()=>{this.control.setValue(t,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(t){const r=t.isDisabled.currentValue,i=0!==r&&ur(r);eC.then(()=>{i&&!this.control.disabled?this.control.disable():!i&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(t){return this._parent?Sl(t,this._parent):[t]}}return n.\u0275fac=function(t){return new(t||n)(E(jt,9),E(At,10),E(Ir,10),E(Gn,10),E(gs,8))},n.\u0275dir=Z({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:["disabled","isDisabled"],model:["ngModel","model"],options:["ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],features:[je([KP]),Oe,Nt]}),n})(),tC=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275dir=Z({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""]}),n})();const QP={provide:Gn,useExisting:Fe(()=>Il),multi:!0};let Il=(()=>{class n extends ti{writeValue(t){this.setProperty("value",t??"")}registerOnChange(t){this.onChange=r=>{t(""==r?null:parseFloat(r))}}}return n.\u0275fac=function(){let e;return function(r){return(e||(e=vt(n)))(r||n)}}(),n.\u0275dir=Z({type:n,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(t,r){1&t&&G("input",function(o){return r.onChange(o.target.value)})("blur",function(){return r.onTouched()})},features:[je([QP]),Oe]}),n})(),nC=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({}),n})();const Th=new X("NgModelWithFormControlWarning"),nR={provide:jt,useExisting:Fe(()=>go)};let go=(()=>{class n extends jt{constructor(t,r){super(),this.validators=t,this.asyncValidators=r,this.submitted=!1,this._onCollectionChange=()=>this._updateDomValue(),this.directives=[],this.form=null,this.ngSubmit=new he,this._setValidators(t),this._setAsyncValidators(r)}ngOnChanges(t){this._checkFormPresent(),t.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Ol(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(t){const r=this.form.get(t.path);return Ss(r,t),r.updateValueAndValidity({emitEvent:!1}),this.directives.push(t),r}getControl(t){return this.form.get(t.path)}removeControl(t){Ml(t.control||null,t,!1),function WP(n,e){const t=n.indexOf(e);t>-1&&n.splice(t,1)}(this.directives,t)}addFormGroup(t){this._setUpFormContainer(t)}removeFormGroup(t){this._cleanUpFormContainer(t)}getFormGroup(t){return this.form.get(t.path)}addFormArray(t){this._setUpFormContainer(t)}removeFormArray(t){this._cleanUpFormContainer(t)}getFormArray(t){return this.form.get(t.path)}updateModel(t,r){this.form.get(t.path).setValue(r)}onSubmit(t){return this.submitted=!0,Zb(this.form,this.directives),this.ngSubmit.emit(t),!1}onReset(){this.resetForm()}resetForm(t){this.form.reset(t),this.submitted=!1}_updateDomValue(){this.directives.forEach(t=>{const r=t.control,i=this.form.get(t.path);r!==i&&(Ml(r||null,t),(n=>n instanceof po)(i)&&(Ss(i,t),t.control=i))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(t){const r=this.form.get(t.path);qb(r,t),r.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(t){if(this.form){const r=this.form.get(t.path);r&&function $P(n,e){return Ol(n,e)}(r,t)&&r.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){Sh(this.form,this),this._oldForm&&Ol(this._oldForm,this)}_checkFormPresent(){}}return n.\u0275fac=function(t){return new(t||n)(E(At,10),E(Ir,10))},n.\u0275dir=Z({type:n,selectors:[["","formGroup",""]],hostBindings:function(t,r){1&t&&G("submit",function(o){return r.onSubmit(o)})("reset",function(){return r.onReset()})},inputs:{form:["formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],features:[je([nR]),Oe,Nt]}),n})();const oR={provide:fr,useExisting:Fe(()=>xl)};let xl=(()=>{class n extends fr{constructor(t,r,i,o,s){super(),this._ngModelWarningConfig=s,this._added=!1,this.update=new he,this._ngModelWarningSent=!1,this._parent=t,this._setValidators(r),this._setAsyncValidators(i),this.valueAccessor=Ah(0,o)}set isDisabled(t){}ngOnChanges(t){this._added||this._setUpControl(),Mh(t,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(t){this.viewModel=t,this.update.emit(t)}get path(){return Sl(null==this.name?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}}return n._ngModelWarningSentOnce=!1,n.\u0275fac=function(t){return new(t||n)(E(jt,13),E(At,10),E(Ir,10),E(Gn,10),E(Th,8))},n.\u0275dir=Z({type:n,selectors:[["","formControlName",""]],inputs:{name:["formControlName","name"],isDisabled:["disabled","isDisabled"],model:["ngModel","model"]},outputs:{update:"ngModelChange"},features:[je([oR]),Oe,Nt]}),n})();const sR={provide:Gn,useExisting:Fe(()=>Pl),multi:!0};function aC(n,e){return null==n?`${e}`:(e&&"object"==typeof e&&(e="Object"),`${n}: ${e}`.slice(0,50))}let Pl=(()=>{class n extends ti{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){this.value=t;const i=aC(this._getOptionId(t),t);this.setProperty("value",i)}registerOnChange(t){this.onChange=r=>{this.value=this._getOptionValue(r),t(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(t){for(const r of Array.from(this._optionMap.keys()))if(this._compareWith(this._optionMap.get(r),t))return r;return null}_getOptionValue(t){const r=function aR(n){return n.split(":")[0]}(t);return this._optionMap.has(r)?this._optionMap.get(r):t}}return n.\u0275fac=function(){let e;return function(r){return(e||(e=vt(n)))(r||n)}}(),n.\u0275dir=Z({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(t,r){1&t&&G("change",function(o){return r.onChange(o.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},features:[je([sR]),Oe]}),n})(),Ph=(()=>{class n{constructor(t,r,i){this._element=t,this._renderer=r,this._select=i,this._select&&(this.id=this._select._registerOption())}set ngValue(t){null!=this._select&&(this._select._optionMap.set(this.id,t),this._setElementValue(aC(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._setElementValue(t),this._select&&this._select.writeValue(this._select.value)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return n.\u0275fac=function(t){return new(t||n)(E(dt),E(nr),E(Pl,9))},n.\u0275dir=Z({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),n})();const lR={provide:Gn,useExisting:Fe(()=>Rh),multi:!0};function lC(n,e){return null==n?`${e}`:("string"==typeof e&&(e=`'${e}'`),e&&"object"==typeof e&&(e="Object"),`${n}: ${e}`.slice(0,50))}let Rh=(()=>{class n extends ti{constructor(){super(...arguments),this._optionMap=new Map,this._idCounter=0,this._compareWith=Object.is}set compareWith(t){this._compareWith=t}writeValue(t){let r;if(this.value=t,Array.isArray(t)){const i=t.map(o=>this._getOptionId(o));r=(o,s)=>{o._setSelected(i.indexOf(s.toString())>-1)}}else r=(i,o)=>{i._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(t){this.onChange=r=>{const i=[],o=r.selectedOptions;if(void 0!==o){const s=o;for(let a=0;a{class n{constructor(t,r,i){this._element=t,this._renderer=r,this._select=i,this._select&&(this.id=this._select._registerOption(this))}set ngValue(t){null!=this._select&&(this._value=t,this._setElementValue(lC(this.id,t)),this._select.writeValue(this._select.value))}set value(t){this._select?(this._value=t,this._setElementValue(lC(this.id,t)),this._select.writeValue(this._select.value)):this._setElementValue(t)}_setElementValue(t){this._renderer.setProperty(this._element.nativeElement,"value",t)}_setSelected(t){this._renderer.setProperty(this._element.nativeElement,"selected",t)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}}return n.\u0275fac=function(t){return new(t||n)(E(dt),E(nr),E(Rh,9))},n.\u0275dir=Z({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"}}),n})(),vC=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({imports:[nC]}),n})(),Fh=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({imports:[vC]}),n})(),Rl=(()=>{class n{static withConfig(t){return{ngModule:n,providers:[{provide:Th,useValue:t.warnOnNgModelWithFormControl}]}}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({imports:[vC]}),n})();class yC extends El{constructor(e,t,r){super(Dh(t),Eh(r,t)),this.controls=e,this._initObservables(),this._setUpdateStrategy(t),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}at(e){return this.controls[this._adjustIndex(e)]}push(e,t={}){this.controls.push(e),this._registerControl(e),this.updateValueAndValidity({emitEvent:t.emitEvent}),this._onCollectionChange()}insert(e,t,r={}){this.controls.splice(e,0,t),this._registerControl(t),this.updateValueAndValidity({emitEvent:r.emitEvent})}removeAt(e,t={}){let r=this._adjustIndex(e);r<0&&(r=0),this.controls[r]&&this.controls[r]._registerOnCollectionChange(()=>{}),this.controls.splice(r,1),this.updateValueAndValidity({emitEvent:t.emitEvent})}setControl(e,t,r={}){let i=this._adjustIndex(e);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),t&&(this.controls.splice(i,0,t),this._registerControl(t)),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(e,t={}){Gb(this,0,e),e.forEach((r,i)=>{zb(this,!1,i),this.at(i).setValue(r,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t)}patchValue(e,t={}){null!=e&&(e.forEach((r,i)=>{this.at(i)&&this.at(i).patchValue(r,{onlySelf:!0,emitEvent:t.emitEvent})}),this.updateValueAndValidity(t))}reset(e=[],t={}){this._forEachChild((r,i)=>{r.reset(e[i],{onlySelf:!0,emitEvent:t.emitEvent})}),this._updatePristine(t),this._updateTouched(t),this.updateValueAndValidity(t)}getRawValue(){return this.controls.map(e=>e.getRawValue())}clear(e={}){this.controls.length<1||(this._forEachChild(t=>t._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:e.emitEvent}))}_adjustIndex(e){return e<0?e+this.length:e}_syncPendingControls(){let e=this.controls.reduce((t,r)=>!!r._syncPendingControls()||t,!1);return e&&this.updateValueAndValidity({onlySelf:!0}),e}_forEachChild(e){this.controls.forEach((t,r)=>{e(t,r)})}_updateValue(){this.value=this.controls.filter(e=>e.enabled||this.disabled).map(e=>e.value)}_anyControls(e){return this.controls.some(t=>t.enabled&&e(t))}_setUpControls(){this._forEachChild(e=>this._registerControl(e))}_allControlsDisabled(){for(const e of this.controls)if(e.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(e){e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange)}_find(e){return this.at(e)??null}}function bC(n){return!!n&&(void 0!==n.asyncValidators||void 0!==n.validators||void 0!==n.updateOn)}let vR=(()=>{class n{constructor(){this.useNonNullable=!1}get nonNullable(){const t=new n;return t.useNonNullable=!0,t}group(t,r=null){const i=this._reduceControls(t);let o={};return bC(r)?o=r:null!==r&&(o.validators=r.validator,o.asyncValidators=r.asyncValidator),new Es(i,o)}control(t,r,i){let o={};return this.useNonNullable?(bC(r)?o=r:(o.validators=r,o.asyncValidators=i),new po(t,{...o,nonNullable:!0})):new po(t,r,i)}array(t,r,i){const o=t.map(s=>this._createControl(s));return new yC(o,r,i)}_reduceControls(t){const r={};return Object.keys(t).forEach(i=>{r[i]=this._createControl(t[i])}),r}_createControl(t){return t instanceof po||t instanceof El?t:Array.isArray(t)?this.control(t[0],t.length>1?t[1]:null,t.length>2?t[2]:null):this.control(t)}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:Rl}),n})(),CC=(()=>{class n extends vR{group(t,r=null){return super.group(t,r)}control(t,r,i){return super.control(t,r,i)}array(t,r,i){return super.array(t,r,i)}}return n.\u0275fac=function(){let e;return function(r){return(e||(e=vt(n)))(r||n)}}(),n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:Rl}),n})();class Cn extends ke{constructor(e){super(),this._value=e}get value(){return this.getValue()}_subscribe(e){const t=super._subscribe(e);return t&&!t.closed&&e.next(this._value),t}getValue(){if(this.hasError)throw this.thrownError;if(this.closed)throw new st;return this._value}next(e){super.next(this._value=e)}}const xr=new ve(n=>n.complete());function Lh(n){return n?function yR(n){return new ve(e=>n.schedule(()=>e.complete()))}(n):xr}function Wn(n,e){return new ve(e?t=>e.schedule(bR,0,{error:n,subscriber:t}):t=>t.error(n))}function bR({error:n,subscriber:e}){e.error(n)}class wR{constructor(e){this.resultSelector=e}call(e,t){return t.subscribe(new DR(e,this.resultSelector))}}class DR extends z{constructor(e,t,r=Object.create(null)){super(e),this.resultSelector=t,this.iterators=[],this.active=0,this.resultSelector="function"==typeof t?t:void 0}_next(e){const t=this.iterators;h(e)?t.push(new SR(e)):t.push("function"==typeof e[un]?new ER(e[un]()):new MR(this.destination,this,e))}_complete(){const e=this.iterators,t=e.length;if(this.unsubscribe(),0!==t){this.active=t;for(let r=0;rthis.index}hasCompleted(){return this.array.length===this.index}}class MR extends _i{constructor(e,t,r){super(e),this.parent=t,this.observable=r,this.stillUnsubscribed=!0,this.buffer=[],this.isComplete=!1}[un](){return this}next(){const e=this.buffer;return 0===e.length&&this.isComplete?{value:null,done:!0}:{value:e.shift(),done:!1}}hasValue(){return this.buffer.length>0}hasCompleted(){return 0===this.buffer.length&&this.isComplete}notifyComplete(){this.buffer.length>0?(this.isComplete=!0,this.parent.notifyInactive()):this.destination.complete()}notifyNext(e){this.buffer.push(e),this.parent.checkIterators()}subscribe(){return vi(this.observable,new mi(this))}}class AR extends S{constructor(e,t){super()}schedule(e,t=0){return this}}class Vh extends AR{constructor(e,t){super(e,t),this.scheduler=e,this.work=t,this.pending=!1}schedule(e,t=0){if(this.closed)return this;this.state=e;const r=this.id,i=this.scheduler;return null!=r&&(this.id=this.recycleAsyncId(i,r,t)),this.pending=!0,this.delay=t,this.id=this.id||this.requestAsyncId(i,this.id,t),this}requestAsyncId(e,t,r=0){return setInterval(e.flush.bind(e,this),r)}recycleAsyncId(e,t,r=0){if(null!==r&&this.delay===r&&!1===this.pending)return t;clearInterval(t)}execute(e,t){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;const r=this._execute(e,t);if(r)return r;!1===this.pending&&null!=this.id&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(e,t){let i,r=!1;try{this.work(e)}catch(o){r=!0,i=!!o&&o||new Error(o)}if(r)return this.unsubscribe(),i}_unsubscribe(){const e=this.id,t=this.scheduler,r=t.actions,i=r.indexOf(this);this.work=null,this.state=null,this.pending=!1,this.scheduler=null,-1!==i&&r.splice(i,1),null!=e&&(this.id=this.recycleAsyncId(t,e,null)),this.delay=null}}let wC=(()=>{class n{constructor(t,r=n.now){this.SchedulerAction=t,this.now=r}schedule(t,r=0,i){return new this.SchedulerAction(this,t).schedule(i,r)}}return n.now=()=>Date.now(),n})();class qn extends wC{constructor(e,t=wC.now){super(e,()=>qn.delegate&&qn.delegate!==this?qn.delegate.now():t()),this.actions=[],this.active=!1,this.scheduled=void 0}schedule(e,t=0,r){return qn.delegate&&qn.delegate!==this?qn.delegate.schedule(e,t,r):super.schedule(e,t,r)}flush(e){const{actions:t}=this;if(this.active)return void t.push(e);let r;this.active=!0;do{if(r=e.execute(e.state,e.delay))break}while(e=t.shift());if(this.active=!1,r){for(;e=t.shift();)e.unsubscribe();throw r}}}const Nl=new class TR extends qn{flush(e){this.active=!0,this.scheduled=void 0;const{actions:t}=this;let r,i=-1,o=t.length;e=e||t.shift();do{if(r=e.execute(e.state,e.delay))break}while(++i0?super.requestAsyncId(e,t,r):(e.actions.push(this),e.scheduled||(e.scheduled=requestAnimationFrame(()=>e.flush(null))))}recycleAsyncId(e,t,r=0){if(null!==r&&r>0||null===r&&this.delay>0)return super.recycleAsyncId(e,t,r);0===e.actions.length&&(cancelAnimationFrame(t),e.scheduled=void 0)}});function an(n,e){return function(r){return r.lift(new IR(n,e))}}class IR{constructor(e,t){this.predicate=e,this.thisArg=t}call(e,t){return t.subscribe(new xR(e,this.predicate,this.thisArg))}}class xR extends z{constructor(e,t,r){super(e),this.predicate=t,this.thisArg=r,this.count=0}_next(e){let t;try{t=this.predicate.call(this.thisArg,e,this.count++)}catch(r){return void this.destination.error(r)}t&&this.destination.next(e)}}const DC=(()=>{function n(){return Error.call(this),this.message="argument out of range",this.name="ArgumentOutOfRangeError",this}return n.prototype=Object.create(Error.prototype),n})();function ri(n){return e=>0===n?Lh():e.lift(new PR(n))}class PR{constructor(e){if(this.total=e,this.total<0)throw new DC}call(e,t){return t.subscribe(new RR(e,this.total))}}class RR extends z{constructor(e,t){super(e),this.total=t,this.count=0}_next(e){const t=this.total,r=++this.count;r<=t&&(this.destination.next(e),r===t&&(this.destination.complete(),this.unsubscribe()))}}function ln(n,e){return"function"==typeof e?t=>t.pipe(ln((r,i)=>Qe(n(r,i)).pipe(Q((o,s)=>e(r,o,i,s))))):t=>t.lift(new NR(n))}class NR{constructor(e){this.project=e}call(e,t){return t.subscribe(new kR(e,this.project))}}class kR extends _i{constructor(e,t){super(e),this.project=t,this.index=0}_next(e){let t;const r=this.index++;try{t=this.project(e,r)}catch(i){return void this.destination.error(i)}this._innerSub(t)}_innerSub(e){const t=this.innerSubscription;t&&t.unsubscribe();const r=new mi(this),i=this.destination;i.add(r),this.innerSubscription=vi(e,r),this.innerSubscription!==r&&i.add(this.innerSubscription)}_complete(){const{innerSubscription:e}=this;(!e||e.closed)&&super._complete(),this.unsubscribe()}_unsubscribe(){this.innerSubscription=void 0}notifyComplete(){this.innerSubscription=void 0,this.isStopped&&super._complete()}notifyNext(e){this.destination.next(e)}}function Pr(){}function Ue(n,e,t){return function(i){return i.lift(new FR(n,e,t))}}class FR{constructor(e,t,r){this.nextOrObserver=e,this.error=t,this.complete=r}call(e,t){return t.subscribe(new LR(e,this.nextOrObserver,this.error,this.complete))}}class LR extends z{constructor(e,t,r,i){super(e),this._tapNext=Pr,this._tapError=Pr,this._tapComplete=Pr,this._tapError=r||Pr,this._tapComplete=i||Pr,U(t)?(this._context=this,this._tapNext=t):t&&(this._context=t,this._tapNext=t.next||Pr,this._tapError=t.error||Pr,this._tapComplete=t.complete||Pr)}_next(e){try{this._tapNext.call(this._context,e)}catch(t){return void this.destination.error(t)}this.destination.next(e)}_error(e){try{this._tapError.call(this._context,e)}catch(t){return void this.destination.error(t)}this.destination.error(e)}_complete(){try{this._tapComplete.call(this._context)}catch(e){return void this.destination.error(e)}return this.destination.complete()}}function Rr(n){return function(t){const r=new VR(n),i=t.lift(r);return r.caught=i}}class VR{constructor(e){this.selector=e}call(e,t){return t.subscribe(new BR(e,this.selector,this.caught))}}class BR extends _i{constructor(e,t,r){super(e),this.selector=t,this.caught=r}error(e){if(!this.isStopped){let t;try{t=this.selector(e,this.caught)}catch(o){return void super.error(o)}this._unsubscribeAndRecycle();const r=new mi(this);this.add(r);const i=vi(t,r);i!==r&&this.add(i)}}}const kl=new X("HIGHLIGHT_OPTIONS");let HR=(()=>{class n{constructor(t,r,i){this.doc=t,this._options=i,this._ready=new Cn(null),this.ready=this._ready.asObservable().pipe(an(o=>!!o),Q(o=>o),ri(1)),Yy(r)&&(t.defaultView.hljs?this._ready.next(t.defaultView.hljs):this._loadLibrary().pipe(ln(o=>this._options&&this._options.lineNumbersLoader?(t.defaultView.hljs=o,this.loadLineNumbers().pipe(Ue(()=>this._ready.next(o)))):(this._ready.next(o),xr)),Rr(o=>(console.error("[HLJS] ",o),xr))).subscribe(),this._options?.themePath&&this.loadTheme(this._options.themePath))}_loadLibrary(){if(this._options){if(this._options.fullLibraryLoader&&this._options.coreLibraryLoader)return Wn(()=>"The full library and the core library were imported, only one of them should be imported!");if(this._options.fullLibraryLoader&&this._options.languages)return Wn(()=>"The highlighting languages were imported they are not needed!");if(this._options.coreLibraryLoader&&!this._options.languages)return Wn(()=>"The highlighting languages were not imported!");if(!this._options.coreLibraryLoader&&this._options.languages)return Wn(()=>"The core library was not imported!");if(this._options.fullLibraryLoader)return this.loadFullLibrary();if(this._options.coreLibraryLoader&&this._options.languages&&Object.keys(this._options.languages).length)return this.loadCoreLibrary().pipe(ln(t=>this._loadLanguages(t)))}return Wn(()=>"Highlight.js library was not imported!")}_loadLanguages(t){return function CR(...n){const e=n[n.length-1];return"function"==typeof e&&n.pop(),$s(n,void 0).lift(new wR(e))}(...Object.entries(this._options.languages).map(([i,o])=>Fl(o()).pipe(Ue(s=>t.registerLanguage(i,s))))).pipe(Q(()=>t))}loadCoreLibrary(){return Fl(this._options.coreLibraryLoader())}loadFullLibrary(){return Fl(this._options.fullLibraryLoader())}loadLineNumbers(){return Fl(this._options.lineNumbersLoader())}setTheme(t){this._themeLinkElement.href=t}loadTheme(t){this._themeLinkElement=this.doc.createElement("link"),this._themeLinkElement.href=t,this._themeLinkElement.type="text/css",this._themeLinkElement.rel="stylesheet",this._themeLinkElement.media="screen,print",this.doc.head.appendChild(this._themeLinkElement)}}return n.\u0275fac=function(t){return new(t||n)(I(Ne),I(Za),I(kl,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();const Fl=n=>Qe(n).pipe(an(e=>!!e&&!!e.default),Q(e=>e.default));let jR=(()=>{class n{constructor(t,r){this._loader=t,this._hljs=null,t.ready.subscribe(i=>{this._hljs=i,r&&r.config&&(i.configure(r.config),i.listLanguages().length<1&&console.error("[HighlightJS]: No languages were registered!"))})}get hljs(){return this._hljs}highlight(t,{language:r,ignoreIllegals:i}){return this._loader.ready.pipe(Q(o=>o.highlight(t,{language:r,ignoreIllegals:i})))}highlightAuto(t,r){return this._loader.ready.pipe(Q(i=>i.highlightAuto(t,r)))}highlightElement(t){return this._loader.ready.pipe(Q(r=>r.highlightElement(t)))}highlightAll(){return this._loader.ready.pipe(Q(t=>t.highlightAll()))}configure(t){return this._loader.ready.pipe(Q(r=>r.configure(t)))}registerLanguage(t,r){return this._loader.ready.pipe(Ue(i=>i.registerLanguage(t,r)))}unregisterLanguage(t){return this._loader.ready.pipe(Ue(r=>r.unregisterLanguage(t)))}registerAliases(t,{languageName:r}){return this._loader.ready.pipe(Ue(i=>i.registerAliases(t,{languageName:r})))}listLanguages(){return this._loader.ready.pipe(Q(t=>t.listLanguages()))}getLanguage(t){return this._loader.ready.pipe(Q(r=>r.getLanguage(t)))}safeMode(){return this._loader.ready.pipe(Q(t=>t.safeMode()))}debugMode(){return this._loader.ready.pipe(Q(t=>t.debugMode()))}lineNumbersBlock(t){return this._loader.ready.pipe(an(r=>!!r.lineNumbersBlock),Ue(r=>r.lineNumbersBlock(t)))}}return n.\u0275fac=function(t){return new(t||n)(I(HR),I(kl,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),UR=(()=>{class n{constructor(t,r,i,o){this._hljs=r,this._sanitizer=i,this._options=o,this.highlighted=new he,this._nativeElement=t.nativeElement}ngOnChanges(t){null!==t?.code?.currentValue&&t.code.currentValue!==t.code.previousValue&&(this.code?this.highlightElement(this.code,this.languages):this.setTextContent(""))}highlightElement(t,r){this.setTextContent(t),this._hljs.highlightAuto(t,r).subscribe(i=>{this.setInnerHTML(i?.value),this.lineNumbers&&this._options&&this._options.lineNumbersLoader&&this.addLineNumbers(),this.highlighted.emit(i)})}addLineNumbers(){this.destroyLineNumbersObserver(),Nl.schedule(()=>{this._hljs.lineNumbersBlock(this._nativeElement).subscribe(),this._lineNumbersObs=new MutationObserver(()=>{this._nativeElement.firstElementChild&&"TABLE"===this._nativeElement.firstElementChild.tagName.toUpperCase()&&this._nativeElement.classList.add("hljs-line-numbers"),this.destroyLineNumbersObserver()}),this._lineNumbersObs.observe(this._nativeElement,{childList:!0})})}destroyLineNumbersObserver(){this._lineNumbersObs&&(this._lineNumbersObs.disconnect(),this._lineNumbersObs=null)}setTextContent(t){Nl.schedule(()=>this._nativeElement.textContent=t)}setInnerHTML(t){Nl.schedule(()=>this._nativeElement.innerHTML=this._sanitizer.sanitize(Pe.HTML,t)||"")}}return n.\u0275fac=function(t){return new(t||n)(E(dt),E(jR),E(pb),E(kl,8))},n.\u0275dir=Z({type:n,selectors:[["","highlight",""]],hostVars:2,hostBindings:function(t,r){2&t&&mt("hljs",!0)},inputs:{code:["highlight","code"],languages:"languages",lineNumbers:"lineNumbers"},outputs:{highlighted:"highlighted"},features:[Nt]}),n})(),$R=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({}),n})();const GR=[{l:"a",s:/[\u24d0\uff41\u1e9a\xe0\xe1\xe2\u1ea7\u1ea5\u1eab\u1ea9\xe3\u0101\u0103\u1eb1\u1eaf\u1eb5\u1eb3\u0227\u01e1\xe4\u01df\u1ea3\xe5\u01fb\u01ce\u0201\u0203\u1ea1\u1ead\u1eb7\u1e01\u0105\u2c65\u0250]/gi},{l:"aa",s:/\ua733/gi},{l:"ae",s:/[\xe6\u01fd\u01e3]/gi},{l:"ao",s:/\ua735/gi},{l:"au",s:/\ua737/gi},{l:"av",s:/[\ua739\ua73b]/gi},{l:"ay",s:/\ua73d/gi},{l:"b",s:/[\u24d1\uff42\u1e03\u1e05\u1e07\u0180\u0183\u0253]/gi},{l:"c",s:/[\u24d2\uff43\u0107\u0109\u010b\u010d\xe7\u1e09\u0188\u023c\ua73f\u2184]/gi},{l:"d",s:/[\u24d3\uff44\u1e0b\u010f\u1e0d\u1e11\u1e13\u1e0f\u0111\u018c\u0256\u0257\ua77a]/gi},{l:"dz",s:/[\u01f3\u01c6]/gi},{l:"e",s:/[\u24d4\uff45\xe8\xe9\xea\u1ec1\u1ebf\u1ec5\u1ec3\u1ebd\u0113\u1e15\u1e17\u0115\u0117\xeb\u1ebb\u011b\u0205\u0207\u1eb9\u1ec7\u0229\u1e1d\u0119\u1e19\u1e1b\u0247\u025b\u01dd]/gi},{l:"f",s:/[\u24d5\uff46\u1e1f\u0192\ua77c]/gi},{l:"g",s:/[\u24d6\uff47\u01f5\u011d\u1e21\u011f\u0121\u01e7\u0123\u01e5\u0260\ua7a1\u1d79\ua77f]/gi},{l:"h",s:/[\u24d7\uff48\u0125\u1e23\u1e27\u021f\u1e25\u1e29\u1e2b\u1e96\u0127\u2c68\u2c76\u0265]/gi},{l:"hv",s:/\u0195/gi},{l:"i",s:/[\u24d8\uff49\xec\xed\xee\u0129\u012b\u012d\u0130\xef\u1e2f\u1ec9\u01d0\u0209\u020b\u1ecb\u012f\u1e2d\u0268\u0131]/gi},{l:"j",s:/[\u24d9\uff4a\u0135\u01f0\u0249]/gi},{l:"k",s:/[\u24da\uff4b\u1e31\u01e9\u1e33\u0137\u1e35\u0199\u2c6a\ua741\ua743\ua745\ua7a3]/gi},{l:"l",s:/[\u24db\uff4c\u0140\u013a\u013e\u1e37\u1e39\u013c\u1e3d\u1e3b\u017f\u0142\u019a\u026b\u2c61\ua749\ua781\ua747\ua746]/gi},{l:"lj",s:/\u01c9/gi},{l:"m",s:/[\u24dc\uff4d\u1e3f\u1e41\u1e43\u0271\u026f]/gi},{l:"n",s:/[\u24dd\uff4e\u01f9\u0144\xf1\u1e45\u0148\u1e47\u0146\u1e4b\u1e49\u019e\u0272\u0149\ua791\ua7a5]/gi},{l:"nj",s:/\u01cc/gi},{l:"o",s:/[\u24de\uff4f\xf2\xf3\xf4\u1ed3\u1ed1\u1ed7\u1ed5\xf5\u1e4d\u022d\u1e4f\u014d\u1e51\u1e53\u014f\u022f\u0231\xf6\u022b\u1ecf\u0151\u01d2\u020d\u020f\u01a1\u1edd\u1edb\u1ee1\u1edf\u1ee3\u1ecd\u1ed9\u01eb\u01ed\xf8\u01ff\u0254\u019f\ua74b\ua74d\u0275]/gi},{l:"oi",s:/\u01a3/gi},{l:"oe",s:/\u0153/gi},{l:"oo",s:/\ua74f/gi},{l:"ou",s:/\u0223/gi},{l:"p",s:/[\u24df\uff50\u1e55\u1e57\u01a5\u1d7d\ua751\ua753\ua755]/gi},{l:"q",s:/[\u24e0\uff51\u024b\ua757\ua759]/gi},{l:"r",s:/[\u24e1\uff52\u0155\u1e59\u0159\u0211\u0213\u1e5b\u1e5d\u0157\u1e5f\u024d\u027d\ua75b\ua7a7\ua783]/gi},{l:"s",s:/[\u24e2\uff53\xdf\u1e9e\u015b\u1e65\u015d\u1e61\u0161\u1e67\u1e63\u1e69\u0219\u015f\u023f\ua7a9\ua785\u1e9b]/gi},{l:"t",s:/[\u24e3\uff54\u1e6b\u1e97\u0165\u1e6d\u021b\u0163\u1e71\u1e6f\u0167\u01ad\u0288\u2c66\ua787]/gi},{l:"tz",s:/\ua729/gi},{l:"u",s:/[\u24e4\uff55\xf9\xfa\xfb\u0169\u1e79\u016b\u1e7b\u016d\xfc\u01dc\u01d8\u01d6\u01da\u1ee7\u016f\u0171\u01d4\u0215\u0217\u01b0\u1eeb\u1ee9\u1eef\u1eed\u1ef1\u1ee5\u1e73\u0173\u1e77\u1e75\u0289]/gi},{l:"v",s:/[\u24e5\uff56\u1e7d\u1e7f\u028b\ua75f\u028c]/gi},{l:"vy",s:/\ua761/gi},{l:"w",s:/[\u24e6\uff57\u1e81\u1e83\u0175\u1e87\u1e85\u1e98\u1e89\u2c73]/gi},{l:"x",s:/[\u24e7\uff58\u1e8b\u1e8d]/gi},{l:"y",s:/[\u24e8\uff59\u1ef3\xfd\u0177\u1ef9\u0233\u1e8f\xff\u1ef7\u1e99\u1ef5\u01b4\u024f\u1eff]/gi},{l:"z",s:/[\u24e9\uff5a\u017a\u1e91\u017c\u017e\u1e93\u1e95\u01b6\u0225\u0240\u2c6c\ua763]/gi}],qR=new RegExp("[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]","g");function As(n){return null!=n&&"false"!=`${n}`}function EC(n){return Array.isArray(n)?n:[n]}function nt(n){return null==n?"":"string"==typeof n?n:`${n}px`}function K(...n){let e=n[n.length-1];return $t(e)?(n.pop(),kr(n,e)):$s(n)}function Bh(n,e,t,r){return U(t)&&(r=t,t=void 0),r?Bh(n,e,t).pipe(Q(i=>h(i)?r(...i):r(i))):new ve(i=>{SC(n,e,function o(s){i.next(arguments.length>1?Array.prototype.slice.call(arguments):s)},i,t)})}function SC(n,e,t,r,i){let o;if(function XR(n){return n&&"function"==typeof n.addEventListener&&"function"==typeof n.removeEventListener}(n)){const s=n;n.addEventListener(e,t,i),o=()=>s.removeEventListener(e,t,i)}else if(function QR(n){return n&&"function"==typeof n.on&&"function"==typeof n.off}(n)){const s=n;n.on(e,t),o=()=>s.off(e,t)}else if(function KR(n){return n&&"function"==typeof n.addListener&&"function"==typeof n.removeListener}(n)){const s=n;n.addListener(e,t),o=()=>s.removeListener(e,t)}else{if(!n||!n.length)throw new TypeError("Invalid event target");for(let s=0,a=n.length;sMC(e)&&n()),e},clearImmediate(n){MC(n)}},Hh=(new class nN extends qn{flush(e){this.active=!0,this.scheduled=void 0;const{actions:t}=this;let r,i=-1,o=t.length;e=e||t.shift();do{if(r=e.execute(e.state,e.delay))break}while(++i0?super.requestAsyncId(e,t,r):(e.actions.push(this),e.scheduled||(e.scheduled=AC.setImmediate(e.flush.bind(e,null))))}recycleAsyncId(e,t,r=0){if(null!==r&&r>0||null===r&&this.delay>0)return super.recycleAsyncId(e,t,r);0===e.actions.length&&(AC.clearImmediate(t),e.scheduled=void 0)}}),new qn(Vh));class oN{constructor(e){this.durationSelector=e}call(e,t){return t.subscribe(new sN(e,this.durationSelector))}}class sN extends _i{constructor(e,t){super(e),this.durationSelector=t,this.hasValue=!1}_next(e){if(this.value=e,this.hasValue=!0,!this.throttled){let t;try{const{durationSelector:i}=this;t=i(e)}catch(i){return this.destination.error(i)}const r=vi(t,new mi(this));!r||r.closed?this.clearThrottle():this.add(this.throttled=r)}}clearThrottle(){const{value:e,hasValue:t,throttled:r}=this;r&&(this.remove(r),this.throttled=void 0,r.unsubscribe()),t&&(this.value=void 0,this.hasValue=!1,this.destination.next(e))}notifyNext(){this.clearThrottle()}notifyComplete(){this.clearThrottle()}}function OC(n){return!h(n)&&n-parseFloat(n)+1>=0}function lN(n){const{index:e,period:t,subscriber:r}=n;if(r.next(e),!r.closed){if(-1===t)return r.complete();n.index=e+1,this.schedule(n,t)}}function TC(n,e=Hh){return function iN(n){return function(t){return t.lift(new oN(n))}}(()=>function aN(n=0,e,t){let r=-1;return OC(e)?r=Number(e)<1?1:Number(e):$t(e)&&(t=e),$t(t)||(t=Hh),new ve(i=>{const o=OC(n)?n:+n-t.now();return t.schedule(lN,o,{index:0,period:r,subscriber:i})})}(n,e))}let jh;try{jh=typeof Intl<"u"&&Intl.v8BreakIterator}catch{jh=!1}let ii,Os=(()=>{class n{constructor(t){this._platformId=t,this.isBrowser=this._platformId?Yy(this._platformId):"object"==typeof document&&!!document,this.EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent),this.TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent),this.BLINK=this.isBrowser&&!(!window.chrome&&!jh)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT,this.WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT,this.IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window),this.FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent),this.ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT,this.SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT}}return n.\u0275fac=function(t){return new(t||n)(I(Za))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();function uN(){if(null==ii){if("object"!=typeof document||!document||"function"!=typeof Element||!Element)return ii=!1,ii;if("scrollBehavior"in document.documentElement.style)ii=!0;else{const n=Element.prototype.scrollTo;ii=!!n&&!/\{\s*\[native code\]\s*\}/.test(n.toString())}}return ii}function xC(n){return n.composedPath?n.composedPath()[0]:n.target}function PC(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}const hN=new X("cdk-dir-doc",{providedIn:"root",factory:function fN(){return tr(Ne)}}),pN=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;let RC=(()=>{class n{constructor(t){if(this.value="ltr",this.change=new he,t){const i=t.documentElement?t.documentElement.dir:null;this.value=function gN(n){const e=n?.toLowerCase()||"";return"auto"===e&&typeof navigator<"u"&&navigator?.language?pN.test(navigator.language)?"rtl":"ltr":"rtl"===e?"rtl":"ltr"}((t.body?t.body.dir:null)||i||"ltr")}}ngOnDestroy(){this.change.complete()}}return n.\u0275fac=function(t){return new(t||n)(I(hN,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),$h=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({}),n})(),_N=(()=>{class n{constructor(t,r,i){this._ngZone=t,this._platform=r,this._scrolled=new ke,this._globalSubscription=null,this._scrolledCount=0,this.scrollContainers=new Map,this._document=i}register(t){this.scrollContainers.has(t)||this.scrollContainers.set(t,t.elementScrolled().subscribe(()=>this._scrolled.next(t)))}deregister(t){const r=this.scrollContainers.get(t);r&&(r.unsubscribe(),this.scrollContainers.delete(t))}scrolled(t=20){return this._platform.isBrowser?new ve(r=>{this._globalSubscription||this._addGlobalListener();const i=t>0?this._scrolled.pipe(TC(t)).subscribe(r):this._scrolled.subscribe(r);return this._scrolledCount++,()=>{i.unsubscribe(),this._scrolledCount--,this._scrolledCount||this._removeGlobalListener()}}):K()}ngOnDestroy(){this._removeGlobalListener(),this.scrollContainers.forEach((t,r)=>this.deregister(r)),this._scrolled.complete()}ancestorScrolled(t,r){const i=this.getAncestorScrollContainers(t);return this.scrolled(r).pipe(an(o=>!o||i.indexOf(o)>-1))}getAncestorScrollContainers(t){const r=[];return this.scrollContainers.forEach((i,o)=>{this._scrollableContainsElement(o,t)&&r.push(o)}),r}_getWindow(){return this._document.defaultView||window}_scrollableContainsElement(t,r){let i=function ZR(n){return n instanceof dt?n.nativeElement:n}(r),o=t.getElementRef().nativeElement;do{if(i==o)return!0}while(i=i.parentElement);return!1}_addGlobalListener(){this._globalSubscription=this._ngZone.runOutsideAngular(()=>Bh(this._getWindow().document,"scroll").subscribe(()=>this._scrolled.next()))}_removeGlobalListener(){this._globalSubscription&&(this._globalSubscription.unsubscribe(),this._globalSubscription=null)}}return n.\u0275fac=function(t){return new(t||n)(I(Re),I(Os),I(Ne,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),zh=(()=>{class n{constructor(t,r,i){this._platform=t,this._change=new ke,this._changeListener=o=>{this._change.next(o)},this._document=i,r.runOutsideAngular(()=>{if(t.isBrowser){const o=this._getWindow();o.addEventListener("resize",this._changeListener),o.addEventListener("orientationchange",this._changeListener)}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){if(this._platform.isBrowser){const t=this._getWindow();t.removeEventListener("resize",this._changeListener),t.removeEventListener("orientationchange",this._changeListener)}this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();const t={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),t}getViewportRect(){const t=this.getViewportScrollPosition(),{width:r,height:i}=this.getViewportSize();return{top:t.top,left:t.left,bottom:t.top+i,right:t.left+r,height:i,width:r}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};const t=this._document,r=this._getWindow(),i=t.documentElement,o=i.getBoundingClientRect();return{top:-o.top||t.body.scrollTop||r.scrollY||i.scrollTop||0,left:-o.left||t.body.scrollLeft||r.scrollX||i.scrollLeft||0}}change(t=20){return t>0?this._change.pipe(TC(t)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){const t=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:t.innerWidth,height:t.innerHeight}:{width:0,height:0}}}return n.\u0275fac=function(t){return new(t||n)(I(Os),I(Re),I(Ne,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),NC=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({}),n})(),kC=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({imports:[$h,NC,$h,NC]}),n})();class Gh{attach(e){return this._attachedHost=e,e.attach(this)}detach(){let e=this._attachedHost;null!=e&&(this._attachedHost=null,e.detach())}get isAttached(){return null!=this._attachedHost}setAttachedHost(e){this._attachedHost=e}}class yN extends Gh{constructor(e,t,r,i){super(),this.component=e,this.viewContainerRef=t,this.injector=r,this.componentFactoryResolver=i}}class FC extends Gh{constructor(e,t,r,i){super(),this.templateRef=e,this.viewContainerRef=t,this.context=r,this.injector=i}get origin(){return this.templateRef.elementRef}attach(e,t=this.context){return this.context=t,super.attach(e)}detach(){return this.context=void 0,super.detach()}}class bN extends Gh{constructor(e){super(),this.element=e instanceof dt?e.nativeElement:e}}class wN extends class CN{constructor(){this._isDisposed=!1,this.attachDomPortal=null}hasAttached(){return!!this._attachedPortal}attach(e){return e instanceof yN?(this._attachedPortal=e,this.attachComponentPortal(e)):e instanceof FC?(this._attachedPortal=e,this.attachTemplatePortal(e)):this.attachDomPortal&&e instanceof bN?(this._attachedPortal=e,this.attachDomPortal(e)):void 0}detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(e){this._disposeFn=e}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}}{constructor(e,t,r,i,o){super(),this.outletElement=e,this._componentFactoryResolver=t,this._appRef=r,this._defaultInjector=i,this.attachDomPortal=s=>{const a=s.element,l=this._document.createComment("dom-portal");a.parentNode.insertBefore(l,a),this.outletElement.appendChild(a),this._attachedPortal=s,super.setDisposeFn(()=>{l.parentNode&&l.parentNode.replaceChild(a,l)})},this._document=o}attachComponentPortal(e){const r=(e.componentFactoryResolver||this._componentFactoryResolver).resolveComponentFactory(e.component);let i;return e.viewContainerRef?(i=e.viewContainerRef.createComponent(r,e.viewContainerRef.length,e.injector||e.viewContainerRef.injector),this.setDisposeFn(()=>i.destroy())):(i=r.create(e.injector||this._defaultInjector||Vt.NULL),this._appRef.attachView(i.hostView),this.setDisposeFn(()=>{this._appRef.viewCount>0&&this._appRef.detachView(i.hostView),i.destroy()})),this.outletElement.appendChild(this._getComponentRootNode(i)),this._attachedPortal=e,i}attachTemplatePortal(e){let t=e.viewContainerRef,r=t.createEmbeddedView(e.templateRef,e.context,{injector:e.injector});return r.rootNodes.forEach(i=>this.outletElement.appendChild(i)),r.detectChanges(),this.setDisposeFn(()=>{let i=t.indexOf(r);-1!==i&&t.remove(i)}),this._attachedPortal=e,r}dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(e){return e.hostView.rootNodes[0]}}let DN=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({}),n})();class SN{constructor(e){this.notifier=e}call(e,t){const r=new MN(e),i=vi(this.notifier,new mi(r));return i&&!r.seenValue?(r.add(i),t.subscribe(r)):r}}class MN extends _i{constructor(e){super(e),this.seenValue=!1}notifyNext(){this.seenValue=!0,this.complete()}notifyComplete(){}}function LC(n,e=!1){return t=>t.lift(new AN(n,e))}class AN{constructor(e,t){this.predicate=e,this.inclusive=t}call(e,t){return t.subscribe(new ON(e,this.predicate,this.inclusive))}}class ON extends z{constructor(e,t,r){super(e),this.predicate=t,this.inclusive=r,this.index=0}_next(e){const t=this.destination;let r;try{r=this.predicate(e,this.index++)}catch(i){return void t.error(i)}this.nextOrComplete(e,r)}nextOrComplete(e,t){const r=this.destination;Boolean(t)?r.next(e):(this.inclusive&&r.next(e),r.complete())}}const VC=uN();class xN{constructor(e,t){this._viewportRuler=e,this._previousHTMLStyles={top:"",left:""},this._isEnabled=!1,this._document=t}attach(){}enable(){if(this._canBeEnabled()){const e=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=e.style.left||"",this._previousHTMLStyles.top=e.style.top||"",e.style.left=nt(-this._previousScrollPosition.left),e.style.top=nt(-this._previousScrollPosition.top),e.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){const e=this._document.documentElement,r=e.style,i=this._document.body.style,o=r.scrollBehavior||"",s=i.scrollBehavior||"";this._isEnabled=!1,r.left=this._previousHTMLStyles.left,r.top=this._previousHTMLStyles.top,e.classList.remove("cdk-global-scrollblock"),VC&&(r.scrollBehavior=i.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),VC&&(r.scrollBehavior=o,i.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;const t=this._document.body,r=this._viewportRuler.getViewportSize();return t.scrollHeight>r.height||t.scrollWidth>r.width}}class PN{constructor(e,t,r,i){this._scrollDispatcher=e,this._ngZone=t,this._viewportRuler=r,this._config=i,this._scrollSubscription=null,this._detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}}attach(e){this._overlayRef=e}enable(){if(this._scrollSubscription)return;const e=this._scrollDispatcher.scrolled(0);this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=e.subscribe(()=>{const t=this._viewportRuler.getViewportScrollPosition().top;Math.abs(t-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=e.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}class BC{enable(){}disable(){}attach(){}}function Wh(n,e){return e.some(t=>n.bottomt.bottom||n.rightt.right)}function HC(n,e){return e.some(t=>n.topt.bottom||n.leftt.right)}class RN{constructor(e,t,r,i){this._scrollDispatcher=e,this._viewportRuler=t,this._ngZone=r,this._config=i,this._scrollSubscription=null}attach(e){this._overlayRef=e}enable(){this._scrollSubscription||(this._scrollSubscription=this._scrollDispatcher.scrolled(this._config?this._config.scrollThrottle:0).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){const t=this._overlayRef.overlayElement.getBoundingClientRect(),{width:r,height:i}=this._viewportRuler.getViewportSize();Wh(t,[{width:r,height:i,bottom:i,right:r,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}}))}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}}let NN=(()=>{class n{constructor(t,r,i,o){this._scrollDispatcher=t,this._viewportRuler=r,this._ngZone=i,this.noop=()=>new BC,this.close=s=>new PN(this._scrollDispatcher,this._ngZone,this._viewportRuler,s),this.block=()=>new xN(this._viewportRuler,this._document),this.reposition=s=>new RN(this._scrollDispatcher,this._viewportRuler,this._ngZone,s),this._document=o}}return n.\u0275fac=function(t){return new(t||n)(I(_N),I(zh),I(Re),I(Ne))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class jC{constructor(e){if(this.scrollStrategy=new BC,this.panelClass="",this.hasBackdrop=!1,this.backdropClass="cdk-overlay-dark-backdrop",this.disposeOnNavigation=!1,e){const t=Object.keys(e);for(const r of t)void 0!==e[r]&&(this[r]=e[r])}}}class kN{constructor(e,t){this.connectionPair=e,this.scrollableViewProperties=t}}let UC=(()=>{class n{constructor(t){this._attachedOverlays=[],this._document=t}ngOnDestroy(){this.detach()}add(t){this.remove(t),this._attachedOverlays.push(t)}remove(t){const r=this._attachedOverlays.indexOf(t);r>-1&&this._attachedOverlays.splice(r,1),0===this._attachedOverlays.length&&this.detach()}}return n.\u0275fac=function(t){return new(t||n)(I(Ne))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),FN=(()=>{class n extends UC{constructor(t,r){super(t),this._ngZone=r,this._keydownListener=i=>{const o=this._attachedOverlays;for(let s=o.length-1;s>-1;s--)if(o[s]._keydownEvents.observers.length>0){const a=o[s]._keydownEvents;this._ngZone?this._ngZone.run(()=>a.next(i)):a.next(i);break}}}add(t){super.add(t),this._isAttached||(this._ngZone?this._ngZone.runOutsideAngular(()=>this._document.body.addEventListener("keydown",this._keydownListener)):this._document.body.addEventListener("keydown",this._keydownListener),this._isAttached=!0)}detach(){this._isAttached&&(this._document.body.removeEventListener("keydown",this._keydownListener),this._isAttached=!1)}}return n.\u0275fac=function(t){return new(t||n)(I(Ne),I(Re,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),LN=(()=>{class n extends UC{constructor(t,r,i){super(t),this._platform=r,this._ngZone=i,this._cursorStyleIsSet=!1,this._pointerDownListener=o=>{this._pointerDownEventTarget=xC(o)},this._clickListener=o=>{const s=xC(o),a="click"===o.type&&this._pointerDownEventTarget?this._pointerDownEventTarget:s;this._pointerDownEventTarget=null;const l=this._attachedOverlays.slice();for(let c=l.length-1;c>-1;c--){const u=l[c];if(u._outsidePointerEvents.observers.length<1||!u.hasAttached())continue;if(u.overlayElement.contains(s)||u.overlayElement.contains(a))break;const d=u._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>d.next(o)):d.next(o)}}}add(t){if(super.add(t),!this._isAttached){const r=this._document.body;this._ngZone?this._ngZone.runOutsideAngular(()=>this._addEventListeners(r)):this._addEventListeners(r),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=r.style.cursor,r.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){if(this._isAttached){const t=this._document.body;t.removeEventListener("pointerdown",this._pointerDownListener,!0),t.removeEventListener("click",this._clickListener,!0),t.removeEventListener("auxclick",this._clickListener,!0),t.removeEventListener("contextmenu",this._clickListener,!0),this._platform.IOS&&this._cursorStyleIsSet&&(t.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1}}_addEventListeners(t){t.addEventListener("pointerdown",this._pointerDownListener,!0),t.addEventListener("click",this._clickListener,!0),t.addEventListener("auxclick",this._clickListener,!0),t.addEventListener("contextmenu",this._clickListener,!0)}}return n.\u0275fac=function(t){return new(t||n)(I(Ne),I(Os),I(Re,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),$C=(()=>{class n{constructor(t,r){this._platform=r,this._document=t}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._containerElement||this._createContainer(),this._containerElement}_createContainer(){const t="cdk-overlay-container";if(this._platform.isBrowser||PC()){const i=this._document.querySelectorAll(`.${t}[platform="server"], .${t}[platform="test"]`);for(let o=0;othis._backdropClick.next(d),this._backdropTransitionendHandler=d=>{this._disposeBackdrop(d.target)},this._keydownEvents=new ke,this._outsidePointerEvents=new ke,i.scrollStrategy&&(this._scrollStrategy=i.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=i.positionStrategy}get overlayElement(){return this._pane}get backdropElement(){return this._backdropElement}get hostElement(){return this._host}attach(e){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);const t=this._portalOutlet.attach(e);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._ngZone.onStable.pipe(ri(1)).subscribe(()=>{this.hasAttached()&&this.updatePosition()}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),t}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();const e=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenStable(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),e}dispose(){const e=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._disposeBackdrop(this._backdropElement),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._previousHostParent=this._pane=this._host=null,e&&this._detachments.next(),this._detachments.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(e){e!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=e,this.hasAttached()&&(e.attach(this),this.updatePosition()))}updateSize(e){this._config={...this._config,...e},this._updateElementSize()}setDirection(e){this._config={...this._config,direction:e},this._updateElementDirection()}addPanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!0)}removePanelClass(e){this._pane&&this._toggleClasses(this._pane,e,!1)}getDirection(){const e=this._config.direction;return e?"string"==typeof e?e:e.value:"ltr"}updateScrollStrategy(e){e!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=e,this.hasAttached()&&(e.attach(this),e.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;const e=this._pane.style;e.width=nt(this._config.width),e.height=nt(this._config.height),e.minWidth=nt(this._config.minWidth),e.minHeight=nt(this._config.minHeight),e.maxWidth=nt(this._config.maxWidth),e.maxHeight=nt(this._config.maxHeight)}_togglePointerEvents(e){this._pane.style.pointerEvents=e?"":"none"}_attachBackdrop(){const e="cdk-overlay-backdrop-showing";this._backdropElement=this._document.createElement("div"),this._backdropElement.classList.add("cdk-overlay-backdrop"),this._animationsDisabled&&this._backdropElement.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropElement,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropElement,this._host),this._backdropElement.addEventListener("click",this._backdropClickHandler),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{this._backdropElement&&this._backdropElement.classList.add(e)})}):this._backdropElement.classList.add(e)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){const e=this._backdropElement;if(e){if(this._animationsDisabled)return void this._disposeBackdrop(e);e.classList.remove("cdk-overlay-backdrop-showing"),this._ngZone.runOutsideAngular(()=>{e.addEventListener("transitionend",this._backdropTransitionendHandler)}),e.style.pointerEvents="none",this._backdropTimeout=this._ngZone.runOutsideAngular(()=>setTimeout(()=>{this._disposeBackdrop(e)},500))}}_toggleClasses(e,t,r){const i=EC(t||[]).filter(o=>!!o);i.length&&(r?e.classList.add(...i):e.classList.remove(...i))}_detachContentWhenStable(){this._ngZone.runOutsideAngular(()=>{const e=this._ngZone.onStable.pipe(function EN(n){return e=>e.lift(new SN(n))}(Vf(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||0===this._pane.children.length)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),e.unsubscribe())})})}_disposeScrollStrategy(){const e=this._scrollStrategy;e&&(e.disable(),e.detach&&e.detach())}_disposeBackdrop(e){e&&(e.removeEventListener("click",this._backdropClickHandler),e.removeEventListener("transitionend",this._backdropTransitionendHandler),e.remove(),this._backdropElement===e&&(this._backdropElement=null)),this._backdropTimeout&&(clearTimeout(this._backdropTimeout),this._backdropTimeout=void 0)}}const zC="cdk-overlay-connected-position-bounding-box",BN=/([A-Za-z%]+)$/;class HN{constructor(e,t,r,i,o){this._viewportRuler=t,this._document=r,this._platform=i,this._overlayContainer=o,this._lastBoundingBoxSize={width:0,height:0},this._isPushed=!1,this._canPush=!0,this._growAfterOpen=!1,this._hasFlexibleDimensions=!0,this._positionLocked=!1,this._viewportMargin=0,this._scrollables=[],this._preferredPositions=[],this._positionChanges=new ke,this._resizeSubscription=S.EMPTY,this._offsetX=0,this._offsetY=0,this._appliedPanelClasses=[],this.positionChanges=this._positionChanges,this.setOrigin(e)}get positions(){return this._preferredPositions}attach(e){this._validatePositions(),e.hostElement.classList.add(zC),this._overlayRef=e,this._boundingBox=e.hostElement,this._pane=e.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition)return void this.reapplyLastPosition();this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const e=this._originRect,t=this._overlayRect,r=this._viewportRect,i=this._containerRect,o=[];let s;for(let a of this._preferredPositions){let l=this._getOriginPoint(e,i,a),c=this._getOverlayPoint(l,t,a),u=this._getOverlayFit(c,t,r,a);if(u.isCompletelyWithinViewport)return this._isPushed=!1,void this._applyPosition(a,l);this._canFitWithFlexibleDimensions(u,c,r)?o.push({position:a,origin:l,overlayRect:t,boundingBoxRect:this._calculateBoundingBoxRect(l,a)}):(!s||s.overlayFit.visibleAreal&&(l=u,a=c)}return this._isPushed=!1,void this._applyPosition(a.position,a.origin)}if(this._canPush)return this._isPushed=!0,void this._applyPosition(s.position,s.originPoint);this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&oi(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(zC),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;const e=this._lastPosition;if(e){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();const t=this._getOriginPoint(this._originRect,this._containerRect,e);this._applyPosition(e,t)}else this.apply()}withScrollableContainers(e){return this._scrollables=e,this}withPositions(e){return this._preferredPositions=e,-1===e.indexOf(this._lastPosition)&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(e){return this._viewportMargin=e,this}withFlexibleDimensions(e=!0){return this._hasFlexibleDimensions=e,this}withGrowAfterOpen(e=!0){return this._growAfterOpen=e,this}withPush(e=!0){return this._canPush=e,this}withLockedPosition(e=!0){return this._positionLocked=e,this}setOrigin(e){return this._origin=e,this}withDefaultOffsetX(e){return this._offsetX=e,this}withDefaultOffsetY(e){return this._offsetY=e,this}withTransformOriginOn(e){return this._transformOriginSelector=e,this}_getOriginPoint(e,t,r){let i,o;if("center"==r.originX)i=e.left+e.width/2;else{const s=this._isRtl()?e.right:e.left,a=this._isRtl()?e.left:e.right;i="start"==r.originX?s:a}return t.left<0&&(i-=t.left),o="center"==r.originY?e.top+e.height/2:"top"==r.originY?e.top:e.bottom,t.top<0&&(o-=t.top),{x:i,y:o}}_getOverlayPoint(e,t,r){let i,o;return i="center"==r.overlayX?-t.width/2:"start"===r.overlayX?this._isRtl()?-t.width:0:this._isRtl()?0:-t.width,o="center"==r.overlayY?-t.height/2:"top"==r.overlayY?0:-t.height,{x:e.x+i,y:e.y+o}}_getOverlayFit(e,t,r,i){const o=WC(t);let{x:s,y:a}=e,l=this._getOffset(i,"x"),c=this._getOffset(i,"y");l&&(s+=l),c&&(a+=c);let f=0-a,g=a+o.height-r.height,v=this._subtractOverflows(o.width,0-s,s+o.width-r.width),w=this._subtractOverflows(o.height,f,g),A=v*w;return{visibleArea:A,isCompletelyWithinViewport:o.width*o.height===A,fitsInViewportVertically:w===o.height,fitsInViewportHorizontally:v==o.width}}_canFitWithFlexibleDimensions(e,t,r){if(this._hasFlexibleDimensions){const i=r.bottom-t.y,o=r.right-t.x,s=GC(this._overlayRef.getConfig().minHeight),a=GC(this._overlayRef.getConfig().minWidth),c=e.fitsInViewportHorizontally||null!=a&&a<=o;return(e.fitsInViewportVertically||null!=s&&s<=i)&&c}return!1}_pushOverlayOnScreen(e,t,r){if(this._previousPushAmount&&this._positionLocked)return{x:e.x+this._previousPushAmount.x,y:e.y+this._previousPushAmount.y};const i=WC(t),o=this._viewportRect,s=Math.max(e.x+i.width-o.width,0),a=Math.max(e.y+i.height-o.height,0),l=Math.max(o.top-r.top-e.y,0),c=Math.max(o.left-r.left-e.x,0);let u=0,d=0;return u=i.width<=o.width?c||-s:e.xv&&!this._isInitialRender&&!this._growAfterOpen&&(s=e.y-v/2)}if("end"===t.overlayX&&!i||"start"===t.overlayX&&i)f=r.width-e.x+this._viewportMargin,u=e.x-this._viewportMargin;else if("start"===t.overlayX&&!i||"end"===t.overlayX&&i)d=e.x,u=r.right-e.x;else{const g=Math.min(r.right-e.x+r.left,e.x),v=this._lastBoundingBoxSize.width;u=2*g,d=e.x-g,u>v&&!this._isInitialRender&&!this._growAfterOpen&&(d=e.x-v/2)}return{top:s,left:d,bottom:a,right:f,width:u,height:o}}_setBoundingBoxStyles(e,t){const r=this._calculateBoundingBoxRect(e,t);!this._isInitialRender&&!this._growAfterOpen&&(r.height=Math.min(r.height,this._lastBoundingBoxSize.height),r.width=Math.min(r.width,this._lastBoundingBoxSize.width));const i={};if(this._hasExactPosition())i.top=i.left="0",i.bottom=i.right=i.maxHeight=i.maxWidth="",i.width=i.height="100%";else{const o=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;i.height=nt(r.height),i.top=nt(r.top),i.bottom=nt(r.bottom),i.width=nt(r.width),i.left=nt(r.left),i.right=nt(r.right),i.alignItems="center"===t.overlayX?"center":"end"===t.overlayX?"flex-end":"flex-start",i.justifyContent="center"===t.overlayY?"center":"bottom"===t.overlayY?"flex-end":"flex-start",o&&(i.maxHeight=nt(o)),s&&(i.maxWidth=nt(s))}this._lastBoundingBoxSize=r,oi(this._boundingBox.style,i)}_resetBoundingBoxStyles(){oi(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){oi(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(e,t){const r={},i=this._hasExactPosition(),o=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(i){const u=this._viewportRuler.getViewportScrollPosition();oi(r,this._getExactOverlayY(t,e,u)),oi(r,this._getExactOverlayX(t,e,u))}else r.position="static";let a="",l=this._getOffset(t,"x"),c=this._getOffset(t,"y");l&&(a+=`translateX(${l}px) `),c&&(a+=`translateY(${c}px)`),r.transform=a.trim(),s.maxHeight&&(i?r.maxHeight=nt(s.maxHeight):o&&(r.maxHeight="")),s.maxWidth&&(i?r.maxWidth=nt(s.maxWidth):o&&(r.maxWidth="")),oi(this._pane.style,r)}_getExactOverlayY(e,t,r){let i={top:"",bottom:""},o=this._getOverlayPoint(t,this._overlayRect,e);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,r)),"bottom"===e.overlayY?i.bottom=this._document.documentElement.clientHeight-(o.y+this._overlayRect.height)+"px":i.top=nt(o.y),i}_getExactOverlayX(e,t,r){let s,i={left:"",right:""},o=this._getOverlayPoint(t,this._overlayRect,e);return this._isPushed&&(o=this._pushOverlayOnScreen(o,this._overlayRect,r)),s=this._isRtl()?"end"===e.overlayX?"left":"right":"end"===e.overlayX?"right":"left","right"===s?i.right=this._document.documentElement.clientWidth-(o.x+this._overlayRect.width)+"px":i.left=nt(o.x),i}_getScrollVisibility(){const e=this._getOriginRect(),t=this._pane.getBoundingClientRect(),r=this._scrollables.map(i=>i.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:HC(e,r),isOriginOutsideView:Wh(e,r),isOverlayClipped:HC(t,r),isOverlayOutsideView:Wh(t,r)}}_subtractOverflows(e,...t){return t.reduce((r,i)=>r-Math.max(i,0),e)}_getNarrowedViewportRect(){const e=this._document.documentElement.clientWidth,t=this._document.documentElement.clientHeight,r=this._viewportRuler.getViewportScrollPosition();return{top:r.top+this._viewportMargin,left:r.left+this._viewportMargin,right:r.left+e-this._viewportMargin,bottom:r.top+t-this._viewportMargin,width:e-2*this._viewportMargin,height:t-2*this._viewportMargin}}_isRtl(){return"rtl"===this._overlayRef.getDirection()}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(e,t){return"x"===t?e.offsetX??this._offsetX:e.offsetY??this._offsetY}_validatePositions(){}_addPanelClasses(e){this._pane&&EC(e).forEach(t=>{""!==t&&-1===this._appliedPanelClasses.indexOf(t)&&(this._appliedPanelClasses.push(t),this._pane.classList.add(t))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(e=>{this._pane.classList.remove(e)}),this._appliedPanelClasses=[])}_getOriginRect(){const e=this._origin;if(e instanceof dt)return e.nativeElement.getBoundingClientRect();if(e instanceof Element)return e.getBoundingClientRect();const t=e.width||0,r=e.height||0;return{top:e.y,bottom:e.y+r,left:e.x,right:e.x+t,height:r,width:t}}}function oi(n,e){for(let t in e)e.hasOwnProperty(t)&&(n[t]=e[t]);return n}function GC(n){if("number"!=typeof n&&null!=n){const[e,t]=n.split(BN);return t&&"px"!==t?null:parseFloat(e)}return n||null}function WC(n){return{top:Math.floor(n.top),right:Math.floor(n.right),bottom:Math.floor(n.bottom),left:Math.floor(n.left),width:Math.floor(n.width),height:Math.floor(n.height)}}const qC="cdk-global-overlay-wrapper";class jN{constructor(){this._cssPosition="static",this._topOffset="",this._bottomOffset="",this._alignItems="",this._xPosition="",this._xOffset="",this._width="",this._height="",this._isDisposed=!1}attach(e){const t=e.getConfig();this._overlayRef=e,this._width&&!t.width&&e.updateSize({width:this._width}),this._height&&!t.height&&e.updateSize({height:this._height}),e.hostElement.classList.add(qC),this._isDisposed=!1}top(e=""){return this._bottomOffset="",this._topOffset=e,this._alignItems="flex-start",this}left(e=""){return this._xOffset=e,this._xPosition="left",this}bottom(e=""){return this._topOffset="",this._bottomOffset=e,this._alignItems="flex-end",this}right(e=""){return this._xOffset=e,this._xPosition="right",this}start(e=""){return this._xOffset=e,this._xPosition="start",this}end(e=""){return this._xOffset=e,this._xPosition="end",this}width(e=""){return this._overlayRef?this._overlayRef.updateSize({width:e}):this._width=e,this}height(e=""){return this._overlayRef?this._overlayRef.updateSize({height:e}):this._height=e,this}centerHorizontally(e=""){return this.left(e),this._xPosition="center",this}centerVertically(e=""){return this.top(e),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;const e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement.style,r=this._overlayRef.getConfig(),{width:i,height:o,maxWidth:s,maxHeight:a}=r,l=!("100%"!==i&&"100vw"!==i||s&&"100%"!==s&&"100vw"!==s),c=!("100%"!==o&&"100vh"!==o||a&&"100%"!==a&&"100vh"!==a),u=this._xPosition,d=this._xOffset,f="rtl"===this._overlayRef.getConfig().direction;let g="",v="",w="";l?w="flex-start":"center"===u?(w="center",f?v=d:g=d):f?"left"===u||"end"===u?(w="flex-end",g=d):("right"===u||"start"===u)&&(w="flex-start",v=d):"left"===u||"start"===u?(w="flex-start",g=d):("right"===u||"end"===u)&&(w="flex-end",v=d),e.position=this._cssPosition,e.marginLeft=l?"0":g,e.marginTop=c?"0":this._topOffset,e.marginBottom=this._bottomOffset,e.marginRight=l?"0":v,t.justifyContent=w,t.alignItems=c?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;const e=this._overlayRef.overlayElement.style,t=this._overlayRef.hostElement,r=t.style;t.classList.remove(qC),r.justifyContent=r.alignItems=e.marginTop=e.marginBottom=e.marginLeft=e.marginRight=e.position="",this._overlayRef=null,this._isDisposed=!0}}let UN=(()=>{class n{constructor(t,r,i,o){this._viewportRuler=t,this._document=r,this._platform=i,this._overlayContainer=o}global(){return new jN}flexibleConnectedTo(t){return new HN(t,this._viewportRuler,this._document,this._platform,this._overlayContainer)}}return n.\u0275fac=function(t){return new(t||n)(I(zh),I(Ne),I(Os),I($C))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})(),$N=0,qh=(()=>{class n{constructor(t,r,i,o,s,a,l,c,u,d,f,g){this.scrollStrategies=t,this._overlayContainer=r,this._componentFactoryResolver=i,this._positionBuilder=o,this._keyboardDispatcher=s,this._injector=a,this._ngZone=l,this._document=c,this._directionality=u,this._location=d,this._outsideClickDispatcher=f,this._animationsModuleType=g}create(t){const r=this._createHostElement(),i=this._createPaneElement(r),o=this._createPortalOutlet(i),s=new jC(t);return s.direction=s.direction||this._directionality.value,new VN(o,r,i,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,"NoopAnimations"===this._animationsModuleType)}position(){return this._positionBuilder}_createPaneElement(t){const r=this._document.createElement("div");return r.id="cdk-overlay-"+$N++,r.classList.add("cdk-overlay-pane"),t.appendChild(r),r}_createHostElement(){const t=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(t),t}_createPortalOutlet(t){return this._appRef||(this._appRef=this._injector.get(ps)),new wN(t,this._componentFactoryResolver,this._appRef,this._injector,this._document)}}return n.\u0275fac=function(t){return new(t||n)(I(NN),I($C),I(Hi),I(UN),I(FN),I(Vt),I(Re),I(Ne),I(RC),I(rl),I(LN),I(TI,8))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const zN=[{originX:"start",originY:"bottom",overlayX:"start",overlayY:"top"},{originX:"start",originY:"top",overlayX:"start",overlayY:"bottom"},{originX:"end",originY:"top",overlayX:"end",overlayY:"bottom"},{originX:"end",originY:"bottom",overlayX:"end",overlayY:"top"}],YC=new X("cdk-connected-overlay-scroll-strategy");let ZC=(()=>{class n{constructor(t){this.elementRef=t}}return n.\u0275fac=function(t){return new(t||n)(E(dt))},n.\u0275dir=Z({type:n,selectors:[["","cdk-overlay-origin",""],["","overlay-origin",""],["","cdkOverlayOrigin",""]],exportAs:["cdkOverlayOrigin"]}),n})(),KC=(()=>{class n{constructor(t,r,i,o,s){this._overlay=t,this._dir=s,this._hasBackdrop=!1,this._lockPosition=!1,this._growAfterOpen=!1,this._flexibleDimensions=!1,this._push=!1,this._backdropSubscription=S.EMPTY,this._attachSubscription=S.EMPTY,this._detachSubscription=S.EMPTY,this._positionSubscription=S.EMPTY,this.viewportMargin=0,this.open=!1,this.disableClose=!1,this.backdropClick=new he,this.positionChange=new he,this.attach=new he,this.detach=new he,this.overlayKeydown=new he,this.overlayOutsideClick=new he,this._templatePortal=new FC(r,i),this._scrollStrategyFactory=o,this.scrollStrategy=this._scrollStrategyFactory()}get offsetX(){return this._offsetX}set offsetX(t){this._offsetX=t,this._position&&this._updatePositionStrategy(this._position)}get offsetY(){return this._offsetY}set offsetY(t){this._offsetY=t,this._position&&this._updatePositionStrategy(this._position)}get hasBackdrop(){return this._hasBackdrop}set hasBackdrop(t){this._hasBackdrop=As(t)}get lockPosition(){return this._lockPosition}set lockPosition(t){this._lockPosition=As(t)}get flexibleDimensions(){return this._flexibleDimensions}set flexibleDimensions(t){this._flexibleDimensions=As(t)}get growAfterOpen(){return this._growAfterOpen}set growAfterOpen(t){this._growAfterOpen=As(t)}get push(){return this._push}set push(t){this._push=As(t)}get overlayRef(){return this._overlayRef}get dir(){return this._dir?this._dir.value:"ltr"}ngOnDestroy(){this._attachSubscription.unsubscribe(),this._detachSubscription.unsubscribe(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this._overlayRef&&this._overlayRef.dispose()}ngOnChanges(t){this._position&&(this._updatePositionStrategy(this._position),this._overlayRef.updateSize({width:this.width,minWidth:this.minWidth,height:this.height,minHeight:this.minHeight}),t.origin&&this.open&&this._position.apply()),t.open&&(this.open?this._attachOverlay():this._detachOverlay())}_createOverlay(){(!this.positions||!this.positions.length)&&(this.positions=zN);const t=this._overlayRef=this._overlay.create(this._buildConfig());this._attachSubscription=t.attachments().subscribe(()=>this.attach.emit()),this._detachSubscription=t.detachments().subscribe(()=>this.detach.emit()),t.keydownEvents().subscribe(r=>{this.overlayKeydown.next(r),27===r.keyCode&&!this.disableClose&&!function IN(n,...e){return e.length?e.some(t=>n[t]):n.altKey||n.shiftKey||n.ctrlKey||n.metaKey}(r)&&(r.preventDefault(),this._detachOverlay())}),this._overlayRef.outsidePointerEvents().subscribe(r=>{this.overlayOutsideClick.next(r)})}_buildConfig(){const t=this._position=this.positionStrategy||this._createPositionStrategy(),r=new jC({direction:this._dir,positionStrategy:t,scrollStrategy:this.scrollStrategy,hasBackdrop:this.hasBackdrop});return(this.width||0===this.width)&&(r.width=this.width),(this.height||0===this.height)&&(r.height=this.height),(this.minWidth||0===this.minWidth)&&(r.minWidth=this.minWidth),(this.minHeight||0===this.minHeight)&&(r.minHeight=this.minHeight),this.backdropClass&&(r.backdropClass=this.backdropClass),this.panelClass&&(r.panelClass=this.panelClass),r}_updatePositionStrategy(t){const r=this.positions.map(i=>({originX:i.originX,originY:i.originY,overlayX:i.overlayX,overlayY:i.overlayY,offsetX:i.offsetX||this.offsetX,offsetY:i.offsetY||this.offsetY,panelClass:i.panelClass||void 0}));return t.setOrigin(this._getFlexibleConnectedPositionStrategyOrigin()).withPositions(r).withFlexibleDimensions(this.flexibleDimensions).withPush(this.push).withGrowAfterOpen(this.growAfterOpen).withViewportMargin(this.viewportMargin).withLockedPosition(this.lockPosition).withTransformOriginOn(this.transformOriginSelector)}_createPositionStrategy(){const t=this._overlay.position().flexibleConnectedTo(this._getFlexibleConnectedPositionStrategyOrigin());return this._updatePositionStrategy(t),t}_getFlexibleConnectedPositionStrategyOrigin(){return this.origin instanceof ZC?this.origin.elementRef:this.origin}_attachOverlay(){this._overlayRef?this._overlayRef.getConfig().hasBackdrop=this.hasBackdrop:this._createOverlay(),this._overlayRef.hasAttached()||this._overlayRef.attach(this._templatePortal),this.hasBackdrop?this._backdropSubscription=this._overlayRef.backdropClick().subscribe(t=>{this.backdropClick.emit(t)}):this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe(),this.positionChange.observers.length>0&&(this._positionSubscription=this._position.positionChanges.pipe(LC(()=>this.positionChange.observers.length>0)).subscribe(t=>{this.positionChange.emit(t),0===this.positionChange.observers.length&&this._positionSubscription.unsubscribe()}))}_detachOverlay(){this._overlayRef&&this._overlayRef.detach(),this._backdropSubscription.unsubscribe(),this._positionSubscription.unsubscribe()}}return n.\u0275fac=function(t){return new(t||n)(E(qh),E(sn),E(vn),E(YC),E(RC,8))},n.\u0275dir=Z({type:n,selectors:[["","cdk-connected-overlay",""],["","connected-overlay",""],["","cdkConnectedOverlay",""]],inputs:{origin:["cdkConnectedOverlayOrigin","origin"],positions:["cdkConnectedOverlayPositions","positions"],positionStrategy:["cdkConnectedOverlayPositionStrategy","positionStrategy"],offsetX:["cdkConnectedOverlayOffsetX","offsetX"],offsetY:["cdkConnectedOverlayOffsetY","offsetY"],width:["cdkConnectedOverlayWidth","width"],height:["cdkConnectedOverlayHeight","height"],minWidth:["cdkConnectedOverlayMinWidth","minWidth"],minHeight:["cdkConnectedOverlayMinHeight","minHeight"],backdropClass:["cdkConnectedOverlayBackdropClass","backdropClass"],panelClass:["cdkConnectedOverlayPanelClass","panelClass"],viewportMargin:["cdkConnectedOverlayViewportMargin","viewportMargin"],scrollStrategy:["cdkConnectedOverlayScrollStrategy","scrollStrategy"],open:["cdkConnectedOverlayOpen","open"],disableClose:["cdkConnectedOverlayDisableClose","disableClose"],transformOriginSelector:["cdkConnectedOverlayTransformOriginOn","transformOriginSelector"],hasBackdrop:["cdkConnectedOverlayHasBackdrop","hasBackdrop"],lockPosition:["cdkConnectedOverlayLockPosition","lockPosition"],flexibleDimensions:["cdkConnectedOverlayFlexibleDimensions","flexibleDimensions"],growAfterOpen:["cdkConnectedOverlayGrowAfterOpen","growAfterOpen"],push:["cdkConnectedOverlayPush","push"]},outputs:{backdropClick:"backdropClick",positionChange:"positionChange",attach:"attach",detach:"detach",overlayKeydown:"overlayKeydown",overlayOutsideClick:"overlayOutsideClick"},exportAs:["cdkConnectedOverlay"],features:[Nt]}),n})();const WN={provide:YC,deps:[qh],useFactory:function GN(n){return()=>n.scrollStrategies.reposition()}};let qN=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({providers:[qh,WN],imports:[$h,DN,kC,kC]}),n})();class Se{static getOptionByValue(e,t){if(Array.isArray(e))for(const r of e){const i=r.options;if(i){for(const o of i)if(o.value===t)return o}else if(r.value===t)return r}return null}static getOptionsByValue(e,t,r){if(r){const i=Array.isArray(t)?t:[],o=[];for(const s of i){const a=Se.getOptionByValue(e,s);a&&o.push(a)}return o}return Se.getOptionByValue(e,t)}static getFirstAvailableOption(e){if(Array.isArray(e))for(const t of e){const r=t.options;if(r){for(const i of r)if(!i.disabled)return i.value}else{const i=t;if(!i.disabled)return i.value}}return null}static valueIsNotInFilteredData(e,t){if(Se.isNullOrUndefined(t))return!0;for(const r of e){const i=r.options;if(i){for(const o of i)if(o.value===t)return!1}else if(r.value===t)return!1}return!0}static getPreviousOption(e,t){let r=Se.isNullOrUndefined(t);for(let i=e.length-1;i>=0;i--){const o=e[i],s=o.options;if(s)for(let a=s.length-1;a>=0;a--){const l=s[a];if(r&&!l.disabled&&!l.hide)return l;r||(r=l.value===t)}else{const a=o;if(r&&!a.disabled&&!a.hide)return a;r||(r=a.value===t)}}return null}static getNextOption(e,t){let r=Se.isNullOrUndefined(t);for(const i of e){const o=i.options;if(o)for(const s of o)if(r){if(!s.disabled&&!s.hide)return s}else r||(r=s.value===t);else{const s=i;if(r){if(!s.disabled&&!s.hide)return s}else r||(r=s.value===t)}}return null}static getReduceData(e,t=0){if(t>0){let r=0;const i=[];for(const o of e){const s=o.options;if(s){const a={...o,options:[]};i.push(a);for(const l of s)if(a.options.push(l),r++,r===t)return{result:i,reduce:!0}}else i.push(o),r++;if(r===t)return{result:i,reduce:!0}}return{result:i,reduce:!1}}return{result:e,reduce:!1}}static getFilteredData(e,t,r){if(t){const i=[];for(const o of e){const s=o.options;if(s){if(s.some(a=>Se.containSearchText(a.label,t,r))){const a=s.filter(l=>Se.containSearchText(l.label,t,r));i.push({...o,options:a})}}else Se.containSearchText(o.label,t,r)&&i.push(o)}return i}return e}static getFilteredSelectedData(e,t){const r=[];for(const i of e){const o=i.options;if(o){const s=o.filter(a=>"false"===Se.isSelected(t,a,!0));s.length&&r.push({...i,options:s})}else"false"===Se.isSelected(t,i,!0)&&r.push(i)}return r}static isSearchboxHiddex(e,t){return(""===t||null==t||isNaN(+t))&&(t=6),Se.getOptionsCount(e)<+t}static isSelected(e,t,r){return r?e&&e.some(i=>i.value===t.value)?"true":"false":e&&t.value===e.value?"true":"false"}static removeSelection(e,t){for(let r=0;rObject.prototype.toString.call(n).includes(t))}function Zh(n,e){return n?e.document.documentElement:null}function XC(n,e){const t=function hk({container:n,isWindow:e,axis:t}){const{offsetHeightKey:r,clientHeightKey:i}=JC(t);return ew(n,e,r,i)}(e);return e.isWindow?function uk(n,e,t){const{axis:r,container:i,isWindow:o}=t,{offsetHeightKey:s,clientHeightKey:a}=JC(r),l=n+tw(Zh(o,i),r,o),c=ew(e.nativeElement,o,s,a),u=function fk(n,e,t){const r=e.topKey();if(n.getBoundingClientRect)return n.getBoundingClientRect()[r]+tw(n,e,t)}(e.nativeElement,r,o)+c;return{height:n,scrolled:l,totalToScroll:u,isWindow:o}}(t,n,e):function dk(n,e,t){const{axis:r,container:i}=t;return{height:n,scrolled:i[r.scrollTopKey()],totalToScroll:i[r.scrollHeightKey()],isWindow:!1}}(t,0,e)}function JC(n){return{offsetHeightKey:n.offsetHeightKey(),clientHeightKey:n.clientHeightKey()}}function ew(n,e,t,r){if(isNaN(n[t])){const i=Zh(e,n);return i?i[r]:0}return n[t]}function tw(n,e,t){const r=e.pageYOffsetKey(),i=e.scrollTopKey(),o=e.offsetTopKey();return isNaN(window.pageYOffset)?Zh(t,n)[i]:n.ownerDocument?n.ownerDocument.defaultView[r]:n[o]}function pk(n,e={down:0,up:0},t){let r,i;if(n.totalToScroll<=0)return!1;const o=n.isWindow?n.scrolled:n.height+n.scrolled;return t?(r=(n.totalToScroll-o)/n.totalToScroll,i=(e?.down?e.down:0)/10):(r=n.scrolled/(n.scrolled+(n.totalToScroll-o)),i=(e?.up?e.up:0)/10),r<=i}class yk{constructor({totalToScroll:e}){this.lastScrollPosition=0,this.lastTotalToScroll=0,this.totalToScroll=0,this.triggered={down:0,up:0},this.totalToScroll=e}updateScrollPosition(e){return this.lastScrollPosition=e}updateTotalToScroll(e){this.lastTotalToScroll!==e&&(this.lastTotalToScroll=this.totalToScroll,this.totalToScroll=e)}updateScroll(e,t){this.updateScrollPosition(e),this.updateTotalToScroll(t)}updateTriggeredFlag(e,t){t?this.triggered.down=e:this.triggered.up=e}isTriggeredScroll(e,t){return t?this.triggered.down===e:this.triggered.up===e}}function Dk(n){const{scrollDown:e,stats:{scrolled:t}}=n;return{type:e?"[NGX_ISE] DOWN":"[NGX_ISE] UP",payload:{currentScrollPosition:t}}}let Ek=(()=>{class n{constructor(t,r){this.element=t,this.zone=r,this.scrolled=new he,this.scrolledUp=new he,this.infiniteScrollDistance=2,this.infiniteScrollUpDistance=1.5,this.infiniteScrollThrottle=150,this.infiniteScrollDisabled=!1,this.infiniteScrollContainer=null,this.scrollWindow=!0,this.immediateCheck=!1,this.horizontal=!1,this.alwaysCallback=!1,this.fromRoot=!1}ngAfterViewInit(){this.infiniteScrollDisabled||this.setup()}ngOnChanges({infiniteScrollContainer:t,infiniteScrollDisabled:r,infiniteScrollDistance:i}){const o=Yh(t),s=Yh(r),a=Yh(i),l=!s&&!this.infiniteScrollDisabled||s&&!r.currentValue||a;(o||s||a)&&(this.destroyScroller(),l&&this.setup())}setup(){(function nk(){return typeof window<"u"})()&&this.zone.runOutsideAngular(()=>{this.disposeScroller=function bk(n){const{scrollContainer:e,scrollWindow:t,element:r,fromRoot:i}=n,o=function ak({windowElement:n,axis:e}){return function lk(n,e){const t=n.isWindow||e&&!e.nativeElement?e:e.nativeElement;return{...n,container:t}}({axis:e,isWindow:ck(n)},n)}({axis:new ok(!n.horizontal),windowElement:ek(e,t,r,i)}),s=new yk({totalToScroll:XC(r,o)}),l={up:n.upDistance,down:n.downDistance};return function Ck(n){let e=Bh(n.container,"scroll");return n.throttle&&(e=e.pipe(function KN(n,e=Hh,t=QC){return r=>r.lift(new QN(n,e,t.leading,t.trailing))}(n.throttle,void 0,{leading:!0,trailing:!0}))),e}({container:o.container,throttle:n.throttle}).pipe(_t(()=>K(XC(r,o))),Q(c=>function wk(n,e,t){const{scrollDown:r,fire:i}=function mk(n,e,t){const r=function gk(n,e){return ns.updateScroll(c.scrolled,c.totalToScroll)),an(({fire:c,scrollDown:u,stats:{totalToScroll:d}})=>function sk(n,e,t){return!!(n&&e||!t&&e)}(n.alwaysCallback,c,s.isTriggeredScroll(d,u))),Ue(({scrollDown:c,stats:{totalToScroll:u}})=>{s.updateTriggeredFlag(u,c)}),Q(Dk))}({fromRoot:this.fromRoot,alwaysCallback:this.alwaysCallback,disable:this.infiniteScrollDisabled,downDistance:this.infiniteScrollDistance,element:this.element,horizontal:this.horizontal,scrollContainer:this.infiniteScrollContainer,scrollWindow:this.scrollWindow,throttle:this.infiniteScrollThrottle,upDistance:this.infiniteScrollUpDistance}).subscribe(t=>this.zone.run(()=>this.handleOnScroll(t)))})}handleOnScroll({type:t,payload:r}){switch(t){case"[NGX_ISE] DOWN":return this.scrolled.emit(r);case"[NGX_ISE] UP":return this.scrolledUp.emit(r);default:return}}ngOnDestroy(){this.destroyScroller()}destroyScroller(){this.disposeScroller&&this.disposeScroller.unsubscribe()}}return n.\u0275fac=function(t){return new(t||n)(E(dt),E(Re))},n.\u0275dir=Z({type:n,selectors:[["","infiniteScroll",""],["","infinite-scroll",""],["","data-infinite-scroll",""]],inputs:{infiniteScrollDistance:"infiniteScrollDistance",infiniteScrollUpDistance:"infiniteScrollUpDistance",infiniteScrollThrottle:"infiniteScrollThrottle",infiniteScrollDisabled:"infiniteScrollDisabled",infiniteScrollContainer:"infiniteScrollContainer",scrollWindow:"scrollWindow",immediateCheck:"immediateCheck",horizontal:"horizontal",alwaysCallback:"alwaysCallback",fromRoot:"fromRoot"},outputs:{scrolled:"scrolled",scrolledUp:"scrolledUp"},features:[Nt]}),n})(),Sk=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({}),n})();const Mk=["selection"],Ak=["results"],Ok=["searchInput"],Tk=["dropdown"],Ik=["result"];function xk(n,e){1&n&&ie(0,"span",14)}function Pk(n,e){1&n&&(y(0,"span"),C(1,"\xa0"),_())}function Rk(n,e){1&n&&ie(0,"span",18),2&n&&R("innerHTML",te(2).select2Option.label,An)}function Nk(n,e){if(1&n&&(y(0,"span",15),le(1,Pk,2,0,"span",10),le(2,Rk,1,1,"span",16),y(3,"span",17),C(4),_()()),2&n){const t=te();R("title",(null==t.select2Option?null:t.select2Option.label)||""),M(1),R("ngIf",!t.select2Option),M(1),R("ngIf",t.select2Option),M(1),mt("select2-selection__placeholder__option",t.option),M(1),_n(t.placeholder)}}function kk(n,e){if(1&n){const t=Zr();y(0,"span",19),G("click",function(i){return qe(t),Ye(te().reset(i))}),C(1,"\xd7"),_()}}function Fk(n,e){1&n&&ie(0,"span",20)}function Lk(n,e){if(1&n){const t=Zr();y(0,"span",25),G("click",function(i){qe(t);const o=te().$implicit;return Ye(te(2).removeSelection(i,o))}),C(1,"\xd7"),_()}}function Vk(n,e){if(1&n&&(y(0,"li",23),le(1,Lk,2,0,"span",24),ie(2,"span",18),_()),2&n){const t=e.$implicit,r=te(2);R("title",t.label),M(1),R("ngIf",!(r.disabled||r.readonly)),M(1),R("innerHTML",t.label,An)}}function Bk(n,e){if(1&n&&(y(0,"ul",21)(1,"span",17),C(2),_(),le(3,Vk,3,3,"li",22),_()),2&n){const t=te();M(1),mt("select2-selection__placeholder__option",(null==t.select2Options?null:t.select2Options.length)>0),M(1),_n(t.placeholder),M(1),R("ngForOf",t.option)("ngForTrackBy",t.trackBy)}}function Hk(n,e){1&n&&Yr(0)}function jk(n,e){if(1&n&&(ro(0),le(1,Hk,1,0,"ng-container",26),io()),2&n){te();const t=Ze(17);M(1),R("ngTemplateOutlet",t)}}function Uk(n,e){1&n&&Yr(0)}function $k(n,e){1&n&&le(0,Uk,1,0,"ng-container",26),2&n&&(te(),R("ngTemplateOutlet",Ze(17)))}function zk(n,e){if(1&n&&ie(0,"strong",18),2&n){const t=te(2).$implicit;R("innerHTML",t.label,An),St("class","select2-results__group"+(t.classes?" "+t.classes:""))}}function Gk(n,e){1&n&&Yr(0)}function Wk(n,e){if(1&n&&le(0,Gk,1,0,"ng-container",46),2&n){const t=te(2).$implicit;R("ngTemplateOutlet",te(2).getTemplate(t,"group"))("ngTemplateOutletContext",t)}}function qk(n,e){1&n&&ie(0,"div",51),2&n&&R("innerHTML",te().$implicit.label,An)}function Yk(n,e){1&n&&Yr(0)}function Zk(n,e){if(1&n&&le(0,Yk,1,0,"ng-container",46),2&n){const t=te().$implicit;R("ngTemplateOutlet",te(4).getTemplate(t,"option"))("ngTemplateOutletContext",t)}}function Kk(n,e){if(1&n){const t=Zr();y(0,"li",47,48),G("mouseenter",function(){const o=qe(t).$implicit;return Ye(te(4).mouseenter(o))})("click",function(){const o=qe(t).$implicit;return Ye(te(4).click(o))}),le(2,qk,1,1,"div",49),le(3,Zk,1,2,"ng-template",null,50,Mt),_()}if(2&n){const t=e.$implicit,r=e.index,i=Ze(4),o=te(2).index,s=te(2);ld(s.getOptionStyle(t)),R("id",t.id||s.id+"-option-"+o+"-"+r),St("aria-selected",s.isSelected(t))("aria-disabled",s.isDisabled(t)),M(2),R("ngIf",!s.hasTemplate(t,"option"))("ngIfElse",i)}}function Qk(n,e){if(1&n&&(y(0,"li",41),le(1,zk,1,2,"strong",42),le(2,Wk,1,2,"ng-template",null,43,Mt),y(4,"ul",44),le(5,Kk,5,7,"li",45),_()()),2&n){const t=Ze(3),r=te().$implicit,i=te(2);M(1),R("ngIf",!i.hasTemplate(r,"group"))("ngIfElse",t),M(4),R("ngForOf",r.options)("ngForTrackBy",i.trackBy)}}function Xk(n,e){1&n&&ie(0,"div",51),2&n&&R("innerHTML",te(2).$implicit.label,An)}function Jk(n,e){1&n&&Yr(0)}function eF(n,e){if(1&n&&le(0,Jk,1,0,"ng-container",46),2&n){const t=te(2).$implicit;R("ngTemplateOutlet",te(2).getTemplate(t,"option"))("ngTemplateOutletContext",t)}}function tF(n,e){if(1&n){const t=Zr();y(0,"li",47,48),G("mouseenter",function(){qe(t);const i=te().$implicit;return Ye(te(2).mouseenter(i))})("click",function(){qe(t);const i=te().$implicit;return Ye(te(2).click(i))}),le(2,Xk,1,1,"div",49),le(3,eF,1,2,"ng-template",null,52,Mt),_()}if(2&n){const t=Ze(4),r=te(),i=r.$implicit,o=r.index,s=te(2);ld(s.getOptionStyle(i)),R("id",i.id||s.id+"-option-"+o),St("aria-selected",s.isSelected(i))("aria-disabled",s.isDisabled(i)),M(2),R("ngIf",!s.hasTemplate(i,"option"))("ngIfElse",t)}}function nF(n,e){if(1&n&&(ro(0),le(1,Qk,6,4,"li",39),le(2,tF,5,7,"li",40),io()),2&n){const t=e.$implicit;M(1),R("ngIf",t.options),M(1),R("ngIf",!t.options)}}function rF(n,e){1&n&&ie(0,"li",53),2&n&&R("innerHTML",te(2).noResultMessage,An)}function iF(n,e){1&n&&ie(0,"li",54),2&n&&R("innerHTML",te(2).maxResultsMessage,An)}function oF(n,e){if(1&n){const t=Zr();y(0,"div",27)(1,"div",28,29)(3,"div",30)(4,"input",31,32),G("keydown",function(i){return qe(t),Ye(te().keyDown(i))})("keyup",function(i){return qe(t),Ye(te().searchUpdate(i))})("change",function(i){return qe(t),Ye(te().prevChange(i))}),_()(),y(6,"div",33)(7,"ul",34,35),G("scrolled",function(){return qe(t),Ye(te().onScroll("down"))})("scrolledUp",function(){return qe(t),Ye(te().onScroll("up"))})("keydown",function(i){return qe(t),Ye(te().keyDown(i))}),le(9,nF,3,2,"ng-container",36),le(10,rF,1,1,"li",37),le(11,iF,1,1,"li",38),_()()()()}if(2&n){const t=Ze(8),r=te();mt("select2-container--open",r.isOpen)("select2-overlay",r.overlay)("select2-position-auto","auto"===r.listPosition),M(1),mt("select2-dropdown--below",!r.select2above)("select2-dropdown--above",r.select2above),M(2),mt("select2-search--hide",r.hideSearch()),M(1),R("id",r.id+"-search-field")("value",r.searchText),St("tabindex",r.isOpen?r.tabIndex:"-1"),M(3),ka("max-height",r.resultMaxHeight),R("infiniteScrollDisabled",!r.infiniteScroll&&!r.isOpen)("infiniteScrollDistance",r.infiniteScrollDistance)("infiniteScrollThrottle",r.infiniteScrollThrottle)("infiniteScrollContainer",t),M(2),R("ngForOf",r.filteredData)("ngForTrackBy",r.trackBy),M(1),R("ngIf",!(null!=r.filteredData&&r.filteredData.length)&&r.noResultMessage),M(1),R("ngIf",r.maxResultsExceeded)}}const sF=[[["select2-label"]],[["select2-hint"]]],aF=["select2-label","select2-hint"];let lF=0;const cF=["default","hidden","always"];let nw=(()=>{class n{constructor(t,r,i,o,s,a){this._viewportRuler=t,this._changeDetectorRef=r,this._parentForm=i,this._parentFormGroup=o,this._control=s,this.minCharForSearch=0,this.limitSelection=0,this.listPosition="below",this.styleMode="default",this.maxResults=0,this.maxResultsMessage="Too many results\u2026",this.infiniteScrollDistance=1.5,this.infiniteScrollThrottle=150,this.resultMaxHeight="200px",this.update=new he,this.open=new he,this.close=new he,this.focus=new he,this.blur=new he,this.search=new he,this.scroll=new he,this.removeOption=new he,this.option=null,this.isOpen=!1,this.focused=!1,this.hoveringValue=null,this.innerSearchText="",this._stateChanges=new ke,this._disabled=!1,this._required=!1,this._readonly=!1,this._multiple=!1,this._overlay=!1,this._resettable=!1,this._hideSelectedItems=!1,this._clickDetection=!1,this._uid="select2-"+lF++,this._infiniteScroll=!0,this._onTouched=()=>{},this._onChange=()=>{},this.id=this.id,this._tabIndex=parseInt(a,10)||0,this._control&&(this._control.valueAccessor=this),this._clickDetectionFc=this.clickDetection.bind(this)}set data(t){this._data=t,this.updateFilteredData()}get multiple(){return this._multiple}set multiple(t){this._multiple=this._coerceBooleanProperty(t),this.ngOnInit()}get overlay(){return this._overlay}set overlay(t){this._overlay=this._coerceBooleanProperty(t)}get infiniteScroll(){return this._infiniteScroll}set infiniteScroll(t){this._infiniteScroll=this._coerceBooleanProperty(t)}get select2Options(){return this.multiple?this.option:null}get select2Option(){return this.multiple?null:this.option}get searchText(){return this.innerSearchText}set searchText(t){this.customSearchEnabled&&this.search.emit({component:this,value:this._value,search:t}),this.innerSearchText=t}get minCountForSearch(){return this._minCountForSearch}set minCountForSearch(t){this._minCountForSearch=t,this.updateSearchBox()}get id(){return this._id}set id(t){this._id=t||this._uid}get required(){return this._required}set required(t){this._required=this._coerceBooleanProperty(t)}get disabled(){return this._control?this._control.disabled:this._disabled}set disabled(t){this._disabled=this._coerceBooleanProperty(t)}get hideSelectedItems(){return this._hideSelectedItems}set hideSelectedItems(t){this._hideSelectedItems=this._coerceBooleanProperty(t)}get readonly(){return this._readonly}set readonly(t){this._readonly=this._coerceBooleanProperty(t)}get value(){return this._value}set value(t){this.testValueChange(this._value,t)&&setTimeout(()=>{this._value=t,this.writeValue(t)},10)}get tabIndex(){return this.disabled?-1:this._tabIndex}set tabIndex(t){typeof t<"u"&&(this._tabIndex=t)}get resettable(){return this._resettable}set resettable(t){this._resettable=this._coerceBooleanProperty(t)}get ariaInvalid(){return this._isErrorState()}get classMaterial(){return"material"===this.styleMode}get classNostyle(){return"noStyle"===this.styleMode}get select2above(){return this.overlay?this._isAbobeOverlay():"above"===this.listPosition}get _positions(){if("auto"!==this.listPosition)return null}get resultsElement(){return this.resultContainer?.nativeElement}ngOnInit(){this._viewportRuler.change(100).subscribe(()=>{this.isOpen&&this.triggerRect()});const t=Se.getOptionsByValue(this._data,this._control?this._control.value:this.value,this.multiple);null!==t&&(this.option=t),Array.isArray(t)||(this.hoveringValue=this.value),this.updateSearchBox()}ngAfterViewInit(){this.cdkConnectedOverlay.positionChange.subscribe(t=>{"auto"===this.listPosition&&t.connectionPair?.originY&&this._overlayPosition!==t.connectionPair.originY&&(this.triggerRect(),this._overlayPosition=t.connectionPair.originY,this._changeDetectorRef.detectChanges())}),this.selectionElement=this.selection.nativeElement,this.triggerRect()}ngDoCheck(){this.updateSearchBox(),this._dirtyCheckNativeValue(),this._triggerRect&&(this.overlayWidth!==this._triggerRect.width&&(this.overlayWidth=this._triggerRect.width),this._dropdownRect?.height>0&&this.overlayHeight!==this._dropdownRect.height&&(this.overlayHeight="auto"===this.listPosition?this._dropdownRect.height:0))}ngOnDestroy(){window.document.body.removeEventListener("click",this._clickDetectionFc)}updateSearchBox(){const t=!this.customSearchEnabled&&Se.isSearchboxHiddex(this._data,this._minCountForSearch);this.isSearchboxHidden!==t&&(this.isSearchboxHidden=t)}hideSearch(){const t=cF.indexOf(this.displaySearchStatus)>-1?this.displaySearchStatus:"default";return"default"===t&&this.isSearchboxHidden||"hidden"===t}getOptionStyle(t){return"select2-results__option "+(t.hide?"select2-results__option--hide ":"")+(t.value===this.hoveringValue?"select2-results__option--highlighted ":"")+(t.classes||"")}mouseenter(t){t.disabled||(this.hoveringValue=t.value)}click(t){this.testSelection(t)&&this.select(t)}reset(t){this.select(null),t.preventDefault(),t.stopPropagation()}prevChange(t){t.stopPropagation()}toggleOpenAndClose(){this.disabled||(this._focus(!0),this.isOpen=!this.isOpen,this.isOpen?(this.innerSearchText="",this.updateFilteredData(),this._focusSearchboxOrResultsElement(),setTimeout(()=>{this.option?this.updateScrollFromOption(this.option instanceof Array?this.option[0]:this.option):this.resultsElement&&(this.resultsElement.scrollTop=0),setTimeout(()=>{this.triggerRect(),this.cdkConnectedOverlay?.overlayRef?.updatePosition()},100)}),this.open.emit(this)):this.close.emit(this),this.isOpen&&!this._clickDetection&&setTimeout(()=>{window.document.body.addEventListener("click",this._clickDetectionFc,!1),this._clickDetection=!0},200),this._changeDetectorRef.markForCheck())}hasTemplate(t,r){return this.templates instanceof sn||this.templates?.[t.templateId]instanceof sn||this.templates?.[r]instanceof sn}getTemplate(t,r){return this.hasTemplate(t,r)?this.templates[t.templateId]||this.templates[r]||this.templates:void 0}triggerRect(){this._triggerRect=this.selectionElement.getBoundingClientRect(),this._dropdownRect=this.dropdown?.nativeElement?this.dropdown.nativeElement.getBoundingClientRect():void 0}testSelection(t){return!(t.disabled||this.multiple&&this.limitSelection&&!(Array.isArray(this._value)&&this._value.length-1))return!0;return!1}return!0}updateFilteredData(){setTimeout(()=>{let t=this._data;if(this.multiple&&this.hideSelectedItems&&(t=Se.getFilteredSelectedData(t,this.option)),!this.customSearchEnabled&&this.searchText&&this.searchText.length>=+this.minCharForSearch&&(t=Se.getFilteredData(t,this.searchText,this.editPattern)),this.maxResults>0){const r=Se.getReduceData(t,+this.maxResults);t=r.result,this.maxResultsExceeded=r.reduce}else this.maxResultsExceeded=!1;Se.valueIsNotInFilteredData(t,this.hoveringValue)&&(this.hoveringValue=Se.getFirstAvailableOption(t)),this.filteredData=t,this._changeDetectorRef.markForCheck()})}clickDetection(t){this.ifParentContainsClass(t.target,"selection")?this.isOpen&&!this.ifParentContainsId(t.target,this._id)&&(this.toggleOpenAndClose(),this.clickExit()):(this.isOpen&&!this.ifParentContainsClass(t.target,"select2-dropdown")&&this.toggleOpenAndClose(),this.ifParentContainsId(t.target,this._id)||this.clickExit())}clickExit(){this._focus(!1),window.document.body.removeEventListener("click",this._clickDetectionFc),this._clickDetection=!1}ifParentContainsClass(t,r){return null!==this.getParentElementByClass(t,r)}ifParentContainsId(t,r){return null!==this.getParentElementById(t,r)}getParentElementByClass(t,r){return this.containClasses(t,r.trim().split(/\s+/))?t:t.parentElement?this.getParentElementByClass(t.parentElement,r):null}getParentElementById(t,r){return t.id===r?t:t.parentElement?this.getParentElementById(t.parentElement,r):null}containClasses(t,r){if(!t.classList)return!1;for(const i of r)if(!t.classList.contains(i))return!1;return!0}focusin(){this.disabled||this._focus(!0)}focusout(){this.selectionElement&&!this.selectionElement.classList.contains("select2-focused")&&(this._focus(!1),this._onTouched())}select(t){let r;if(null!==t)if(this.multiple){const i=this.option,o=i.findIndex(s=>s.value===t.value);-1===o?i.push(t):i.splice(o,1),r=this.option.map(s=>s.value)}else this.option=t,this.isOpen&&(this.isOpen=!1,this.close.emit(this),this.selectionElement&&this.selectionElement.focus()),r=this.option.value;else this.option=null;this.multiple&&this.hideSelectedItems&&this.updateFilteredData(),this._control?this._onChange(r):this._value=r,this.update.emit({component:this,value:r,options:Array.isArray(this.option)?this.option:this.option?[this.option]:null})}keyDown(t){this._testKey(t,["ArrowDown",40])?(this.moveDown(),t.preventDefault()):this._testKey(t,["ArrowUp",38])?(this.moveUp(),t.preventDefault()):this._testKey(t,["Enter",13])?(this.selectByEnter(),t.preventDefault()):this._testKey(t,["Escape","Tab",9,27])&&this.isOpen&&(this.toggleOpenAndClose(),this._focus(!1))}openKey(t){this._testKey(t,["ArrowDown","ArrowUp","Enter",40,38,13])?(this.toggleOpenAndClose(),t.preventDefault()):this._testKey(t,["Escape","Tab",9,27])&&(this._focus(!1),this._onTouched())}trackBy(t,r){return r.value}searchUpdate(t){this.searchText=t.target.value,this.updateFilteredData()}isSelected(t){return Se.isSelected(this.option,t,this.multiple)}isDisabled(t){return t.disabled?"true":"false"}removeSelection(t,r){Se.removeSelection(this.option,r),this.multiple&&this.hideSelectedItems&&this.updateFilteredData();const i=this.option.map(o=>o.value);this._control?this._onChange(i):this._value=i,this.update.emit({component:this,value:i,options:Array.isArray(this.option)?this.option:this.option?[this.option]:null}),this.removeOption.emit({component:this,value:i,removedOption:r}),t.preventDefault(),t.stopPropagation(),this.isOpen&&this._focusSearchboxOrResultsElement()}writeValue(t){this._setSelectionByValue(t)}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t}onScroll(t){this.scroll.emit({component:this,way:t,search:this.innerSearchText})}_isErrorState(){return!!(this._control&&this._control.invalid&&(this._control&&this._control.touched||this._parentFormGroup&&this._parentFormGroup.submitted||this._parentForm&&this._parentForm.submitted))}moveUp(){this.updateScrollFromOption(Se.getPreviousOption(this.filteredData,this.hoveringValue))}moveDown(){this.updateScrollFromOption(Se.getNextOption(this.filteredData,this.hoveringValue))}updateScrollFromOption(t){if(t){this.hoveringValue=t.value;const r=this.results.find(i=>i.nativeElement.innerText.trim()===t.label);if(r&&this.resultsElement){this.resultsElement.scrollTop=0;const i=this.resultsElement.getBoundingClientRect(),o=r.nativeElement.getBoundingClientRect();this.resultsElement.scrollTop=o.top-i.top}}}selectByEnter(){if(this.hoveringValue){const t=Se.getOptionByValue(this._data,this.hoveringValue);this.select(t)}}_testKey(t,r=[]){return this._isKey(this._getKey(t),r)}_getKey(t){let r;return void 0!==t.key?r=t.key:void 0!==t.keyIdentifier?r=t.keyIdentifier:void 0!==t.keyCode?r=t.keyCode:t.preventDefault(),r}_isKey(t,r=[]){return!!(r&&r.length>0)&&-1!==r.indexOf(t)}_setSelectionByValue(t){if(this.option||null!=t){const r=Array.isArray(t);if(this.multiple&&t&&!r)throw new Error("Non array value.");this._data?this.multiple?(this.option=[],r&&Se.getOptionsByValue(this._data,t,this.multiple).map(o=>this.select(o))):this.select(Se.getOptionByValue(this._data,t)):this._control&&this._control.viewToModelUpdate(t),this._changeDetectorRef.markForCheck()}}_dirtyCheckNativeValue(){const t=this.value;this._previousNativeValue!==t&&(this._previousNativeValue=t,this._stateChanges.next())}_coerceBooleanProperty(t){return null!=t&&"false"!=`${t}`}_focusSearchboxOrResultsElement(){this.isSearchboxHidden?this.resultsElement&&this.resultsElement.focus():setTimeout(()=>{this.searchInput&&this.searchInput.nativeElement&&this.searchInput.nativeElement.focus()})}_focus(t){!t&&this.focused?(this.focused=t,this.blur.emit(this)):t&&!this.focused&&(this.focused=t,this.focus.emit(this))}_isAbobeOverlay(){return this.overlay&&this._overlayPosition&&"auto"===this.listPosition?"top"===this._overlayPosition:"above"===this.listPosition}}return n.\u0275fac=function(t){return new(t||n)(E(zh),E(gs),E(Tl,8),E(go,8),E(fr,10),Ii("tabindex"))},n.\u0275cmp=Fr({type:n,selectors:[["select2"]],viewQuery:function(t,r){if(1&t&&(Xr(KC,5),Xr(Mk,7),Xr(Ak,5),Xr(Ok,5),Xr(Tk,5),Xr(Ik,5)),2&t){let i;sr(i=ar())&&(r.cdkConnectedOverlay=i.first),sr(i=ar())&&(r.selection=i.first),sr(i=ar())&&(r.resultContainer=i.first),sr(i=ar())&&(r.searchInput=i.first),sr(i=ar())&&(r.dropdown=i.first),sr(i=ar())&&(r.results=i)}},hostVars:8,hostBindings:function(t,r){2&t&&(dd("id",r.id),St("aria-invalid",r.ariaInvalid),mt("material",r.classMaterial)("nostyle",r.classNostyle)("select2-above",r.select2above))},inputs:{data:"data",minCharForSearch:"minCharForSearch",displaySearchStatus:"displaySearchStatus",placeholder:"placeholder",customSearchEnabled:"customSearchEnabled",limitSelection:"limitSelection",listPosition:"listPosition",multiple:"multiple",overlay:"overlay",styleMode:"styleMode",noResultMessage:"noResultMessage",maxResults:"maxResults",maxResultsMessage:"maxResultsMessage",infiniteScrollDistance:"infiniteScrollDistance",infiniteScrollThrottle:"infiniteScrollThrottle",infiniteScroll:"infiniteScroll",editPattern:"editPattern",templates:"templates",resultMaxHeight:"resultMaxHeight",minCountForSearch:"minCountForSearch",id:"id",required:"required",disabled:"disabled",hideSelectedItems:"hideSelectedItems",readonly:"readonly",value:"value",tabIndex:"tabIndex",resettable:"resettable"},outputs:{update:"update",open:"open",close:"close",focus:"focus",blur:"blur",search:"search",scroll:"scroll",removeOption:"removeOption"},ngContentSelectors:aF,decls:18,vars:26,consts:[[1,"select2-label",3,"click"],["class","select2-required",4,"ngIf"],[1,"select2","select2-container","select2-container--default","select2-container--focus"],["cdkOverlayOrigin","",1,"selection",3,"click","focus","blur","keydown"],["selection","","trigger","cdkOverlayOrigin"],["role","combobox",1,"select2-selection"],["class","select2-selection__rendered",3,"title",4,"ngIf"],["class","select2-selection__reset","role","presentation",3,"click",4,"ngIf"],["class","select2-selection__arrow","role","presentation",4,"ngIf"],["class","select2-selection__rendered",4,"ngIf"],[4,"ngIf"],[1,"select2-subscript-wrapper"],["cdkConnectedOverlay","","cdkConnectedOverlayHasBackdrop","","cdkConnectedOverlayBackdropClass","select2-overlay-backdrop",3,"cdkConnectedOverlayOrigin","cdkConnectedOverlayOpen","cdkConnectedOverlayMinWidth","cdkConnectedOverlayHeight","cdkConnectedOverlayPositions","backdropClick"],["containerTemplate",""],[1,"select2-required"],[1,"select2-selection__rendered",3,"title"],[3,"innerHTML",4,"ngIf"],[1,"select2-selection__placeholder"],[3,"innerHTML"],["role","presentation",1,"select2-selection__reset",3,"click"],["role","presentation",1,"select2-selection__arrow"],[1,"select2-selection__rendered"],["class","select2-selection__choice",3,"title",4,"ngFor","ngForOf","ngForTrackBy"],[1,"select2-selection__choice",3,"title"],["class","select2-selection__choice__remove","role","presentation",3,"click",4,"ngIf"],["role","presentation",1,"select2-selection__choice__remove",3,"click"],[4,"ngTemplateOutlet"],[1,"select2-container","select2-container--default","select2-container-dropdown"],[1,"select2-dropdown"],["dropdown",""],[1,"select2-search","select2-search--dropdown"],["type","search","role","textbox","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"select2-search__field",3,"id","value","keydown","keyup","change"],["searchInput",""],[1,"select2-results"],["role","tree","tabindex","-1","infiniteScroll","",1,"select2-results__options",3,"infiniteScrollDisabled","infiniteScrollDistance","infiniteScrollThrottle","infiniteScrollContainer","scrolled","scrolledUp","keydown"],["results",""],[4,"ngFor","ngForOf","ngForTrackBy"],["class","select2-no-result select2-results__option",3,"innerHTML",4,"ngIf"],["class","select2-too-much-result select2-results__option",3,"innerHTML",4,"ngIf"],["class","select2-results__option","role","group",4,"ngIf"],["role","treeitem",3,"id","class","mouseenter","click",4,"ngIf"],["role","group",1,"select2-results__option"],[3,"innerHTML",4,"ngIf","ngIfElse"],["optGroup",""],[1,"select2-results__options","select2-results__options--nested"],["role","treeitem",3,"id","class","mouseenter","click",4,"ngFor","ngForOf","ngForTrackBy"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["role","treeitem",3,"id","mouseenter","click"],["result",""],["class","select2-label-content",3,"innerHTML",4,"ngIf","ngIfElse"],["liGroup",""],[1,"select2-label-content",3,"innerHTML"],["li",""],[1,"select2-no-result","select2-results__option",3,"innerHTML"],[1,"select2-too-much-result","select2-results__option",3,"innerHTML"]],template:function(t,r){if(1&t&&(function qm(n){const e=T()[16][6];if(!e.projection){const r=e.projection=Bo(n?n.length:1,null),i=r.slice();let o=e.child;for(;null!==o;){const s=n?UA(o,n):0;null!==s&&(i[s]?i[s].projectionNext=o:r[s]=o,i[s]=o),o=o.next}}}(sF),y(0,"div",0),G("click",function(){return r.toggleOpenAndClose()}),sd(1),le(2,xk,1,0,"span",1),_(),y(3,"div",2)(4,"div",3,4),G("click",function(){return r.toggleOpenAndClose()})("focus",function(){return r.focusin()})("blur",function(){return r.focusout()})("keydown",function(o){return r.openKey(o)}),y(7,"div",5),le(8,Nk,5,6,"span",6),le(9,kk,2,0,"span",7),le(10,Fk,1,0,"span",8),le(11,Bk,4,5,"ul",9),_()(),le(12,jk,2,1,"ng-container",10),y(13,"div",11),sd(14,1),_()(),le(15,$k,1,1,"ng-template",12),G("backdropClick",function(){return r.toggleOpenAndClose()}),le(16,oF,12,25,"ng-template",null,13,Mt)),2&t){const i=Ze(6);M(2),R("ngIf",r.required),M(1),mt("select2-container--below",!r.select2above)("select2-container--above",r.select2above)("select2-container--open",r.isOpen)("select2-container--disabled",r.disabled),M(1),mt("select2-focused",r.focused),St("tabindex",r.isOpen?"-1":r.tabIndex),M(3),mt("select2-selection--multiple",r.multiple)("select2-selection--single",!r.multiple),M(1),R("ngIf",!r.multiple),M(1),R("ngIf",!r.multiple&&r.resettable&&r.select2Option&&!(r.disabled||r.readonly)),M(1),R("ngIf",!r.multiple),M(1),R("ngIf",r.multiple),M(1),R("ngIf",!r.overlay),M(3),R("cdkConnectedOverlayOrigin",i)("cdkConnectedOverlayOpen",r.isOpen&&r.overlay)("cdkConnectedOverlayMinWidth",r.overlayWidth)("cdkConnectedOverlayHeight",r.overlayHeight)("cdkConnectedOverlayPositions",r._positions)}},dependencies:[By,rh,$y,KC,ZC,Ek],styles:['.select2-label[_ngcontent-%COMP%]{color:#000;color:var(--select2-label-text-color, #000)}.select2-container[_ngcontent-%COMP%]{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle;width:100%}.select2-container[_ngcontent-%COMP%] .select2-container-dropdown[_ngcontent-%COMP%]{position:absolute;width:0px;opacity:0}.select2-container[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]{box-sizing:border-box;cursor:pointer;display:block;height:28px;-webkit-user-select:none;user-select:none}.select2-container[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__rendered[_ngcontent-%COMP%]{display:block;padding:0 0 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.select2-container[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__clear[_ngcontent-%COMP%]{position:relative}.select2-container[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;-webkit-user-select:none;user-select:none}.select2-container[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__rendered[_ngcontent-%COMP%]{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container[_ngcontent-%COMP%] .select2-search--inline[_ngcontent-%COMP%]{float:left}.select2-container[_ngcontent-%COMP%] .select2-search--inline[_ngcontent-%COMP%] .select2-search__field[_ngcontent-%COMP%]{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container[_ngcontent-%COMP%] .select2-search--inline[_ngcontent-%COMP%] .select2-search__field[_ngcontent-%COMP%]::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown[_ngcontent-%COMP%]{background:white;background:var(--select2-dropdown-background, white);border:1px solid #aaa;border:1px solid var(--select2-dropdown-border-color, #aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius, 4px);box-sizing:border-box;display:block;position:absolute;width:100%;z-index:1051;height:0;overflow:hidden}.select2-dropdown[_ngcontent-%COMP%] .select2-label-content[_ngcontent-%COMP%]{display:contents}.select2-results[_ngcontent-%COMP%]{display:block}.select2-results__options[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0}.select2-results__option[_ngcontent-%COMP%]{padding:6px;-webkit-user-select:none;user-select:none;color:#000;color:var(--select2-option-text-color, #000)}.select2-results__option[aria-selected][_ngcontent-%COMP%]{cursor:pointer}.select2-container.select2-container-dropdown.select2-container--open[_ngcontent-%COMP%]{width:100%;opacity:1}.select2-container--open[_ngcontent-%COMP%] .select2-dropdown[_ngcontent-%COMP%]{overflow:auto;height:auto}.select2-container--open[_ngcontent-%COMP%] .select2-dropdown--above[_ngcontent-%COMP%]{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;bottom:27px;display:flex;flex-direction:column-reverse}.select2-container--open[_ngcontent-%COMP%] .select2-dropdown--below[_ngcontent-%COMP%]{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown[_ngcontent-%COMP%]{display:block;padding:4px}.select2-search--dropdown[_ngcontent-%COMP%] .select2-search__field[_ngcontent-%COMP%]{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown[_ngcontent-%COMP%] .select2-search__field[_ngcontent-%COMP%]::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide[_ngcontent-%COMP%]{display:none}.select2-close-mask[_ngcontent-%COMP%]{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background:#fff;filter:alpha(opacity=0)}.select2-required[_ngcontent-%COMP%]:before{content:"*";color:red;color:var(--select2-required-color, red)}.select2-hidden-accessible[_ngcontent-%COMP%]{border:0!important;clip:rect(0 0 0 0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important}.select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]{background:#fff;background:var(--select2-selection-background, #fff);border:1px solid #aaa;border:1px solid var(--select2-selection-border-color, #aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius, 4px);display:flex}.select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__rendered[_ngcontent-%COMP%]{color:#444;color:var(--select2-selection-text-color, #444);line-height:28px}.select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__clear[_ngcontent-%COMP%]{cursor:pointer;float:right;font-weight:700}.select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__placeholder[_ngcontent-%COMP%]{color:#999;color:var(--select2-placeholder-color, #999)}.select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__placeholder[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-overflow:var(--select2-placeholder-overflow, ellipsis)}.select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__placeholder__option[_ngcontent-%COMP%]{display:none}.select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__reset[_ngcontent-%COMP%], .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__arrow[_ngcontent-%COMP%]{display:flex;width:20px;align-items:center;justify-content:center}.select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__arrow[_ngcontent-%COMP%]:before{content:" ";border-color:#888 transparent;border-color:var(--select2-arrow-color, #888) transparent;border-style:solid;border-width:5px 4px 0;height:0;width:0}.select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__reset[_ngcontent-%COMP%]{color:#999;color:var(--select2-reset-color, #999)}.select2-container--default.select2-container--disabled[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]{background:#eee;background:var(--select2-selection-disabled-background, #eee);cursor:default}.select2-container--default.select2-container--disabled[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__clear[_ngcontent-%COMP%]{display:none}.select2-container--default.select2-container--open[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__arrow[_ngcontent-%COMP%]:before{border-color:transparent transparent #888;border-color:transparent transparent var(--select2-arrow-color, #888);border-width:0 4px 5px}.select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{background:#fff;background:var(--select2-selection-background, #fff);border:1px solid #aaa;border:1px solid var(--select2-selection-border-color, #aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius, 4px);cursor:text}.select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__rendered[_ngcontent-%COMP%]{flex:1 1 auto;box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__rendered[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{list-style:none}.select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__placeholder[_ngcontent-%COMP%]{display:block;width:100%;color:#999;color:var(--select2-placeholder-color, #999);margin-top:5px;float:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-overflow:var(--select2-placeholder-overflow, ellipsis)}.select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__placeholder__option[_ngcontent-%COMP%]{display:none}.select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__clear[_ngcontent-%COMP%]{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__choice[_ngcontent-%COMP%]{color:#000;color:var(--select2-selection-choice-text-color, #000);background:#e4e4e4;background:var(--select2-selection-choice-background, #e4e4e4);border:1px solid #aaa;border:1px solid var(--select2-selection-choice-border-color, #aaa);border-radius:4px;border-radius:var(--select2-selection-border-radius, 4px);cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__choice__remove[_ngcontent-%COMP%]{color:#999;color:var(--select2-selection-choice-close-color, #999);cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__choice__remove[_ngcontent-%COMP%]:hover{color:#333;color:var(--select2-selection-choice-hover-close-color, #333)}.select2-container--default.select2-container--focused[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{border:solid #000 1px;border:solid var(--select2-selection-focus-border-color, #000) 1px;outline:none}.select2-container--default[_ngcontent-%COMP%]:not(.select2-container--open) .select2-focused[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], .select2-container--default[_ngcontent-%COMP%]:not(.select2-container--open) .select2-focused[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{border:solid #000 1px;border:solid var(--select2-selection-focus-border-color, #000) 1px;outline:none}.select2-container--default.select2-container--disabled[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{background:#eee;background:var(--select2-selection-disabled-background, #eee);cursor:default}.select2-container--default.select2-container--disabled[_ngcontent-%COMP%] .select2-selection__choice__remove[_ngcontent-%COMP%]{display:none}.select2-container--default.select2-container--open.select2-container--above[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], .select2-container--default.select2-container--open.select2-container--above[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], .select2-container--default.select2-container--open.select2-container--below[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default[_ngcontent-%COMP%] .select2-search--dropdown[_ngcontent-%COMP%] .select2-search__field[_ngcontent-%COMP%]{border:1px solid #aaa;border:1px solid var(--select2-search-border-color, #aaa);background:#fff;background:1px solid var(--select2-search-background, #fff);border-radius:0;border-radius:var(--select2-search-border-radius, 0px)}.select2-container--default[_ngcontent-%COMP%] .select2-search--inline[_ngcontent-%COMP%] .select2-search__field[_ngcontent-%COMP%]{background:transparent;border:none;outline:none;box-shadow:none;-webkit-appearance:textfield}.select2-container--default[_ngcontent-%COMP%] .select2-results[_ngcontent-%COMP%] > .select2-results__options[_ngcontent-%COMP%]{overflow-y:auto}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[role=group][_ngcontent-%COMP%]{padding:0}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[aria-disabled=true][_ngcontent-%COMP%]{color:#999;color:var(--select2-option-disabled-text-color, #999);background:transparent;background:var(--select2-option-disabled-background, transparent)}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[aria-selected=true][_ngcontent-%COMP%]{color:#000;color:var(--select2-option-selected-text-color, #000);background:#ddd;background:var(--select2-option-selected-background, #ddd)}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%]{padding-left:1em}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__group[_ngcontent-%COMP%]{padding-left:0}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%]{margin-left:-1em;padding-left:2em}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%]{margin-left:-2em;padding-left:3em}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%]{margin-left:-3em;padding-left:4em}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%]{margin-left:-4em;padding-left:5em}.select2-container--default[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%] .select2-results__option[_ngcontent-%COMP%]{margin-left:-5em;padding-left:6em}.select2-container--default[_ngcontent-%COMP%] .select2-results__option--highlighted[aria-selected][_ngcontent-%COMP%]{background:#5897fb;background:var(--select2-option-highlighted-background, #5897fb);color:#fff;color:var(--select2-option-highlighted-text-color, #fff)}.select2-container--default[_ngcontent-%COMP%] .select2-results__option--hide[_ngcontent-%COMP%]{display:none}.select2-container--default[_ngcontent-%COMP%] .select2-results__group[_ngcontent-%COMP%]{cursor:default;display:block;padding:6px;color:gray;color:var(--select2-option-group-text-color, gray);background:transparent;background:var(--select2-option-group-background, transparent)}.select2-no-result[_ngcontent-%COMP%]{color:#888;color:var(--select2-no-result-color, #888);font-style:italic;font-style:var(--select2-no-result-font-style, italic)}.select2-too-much-result[_ngcontent-%COMP%]{color:#888;color:var(--select2-too-much-result-color, #888);font-style:italic;font-style:var(--select2-too-much-font-style, italic)}.nostyle[_nghost-%COMP%] .select2-dropdown[_ngcontent-%COMP%]{border-color:transparent}.nostyle[_nghost-%COMP%] .select2-selection--single[_ngcontent-%COMP%], .nostyle[_nghost-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{background:transparent;border-color:transparent}.nostyle[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-focused[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], .nostyle[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-focused[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%], .nostyle[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%]:not(.select2-container--open) .select2-focused[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], .nostyle[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%]:not(.select2-container--open) .select2-focused[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{background:transparent;border-color:transparent}.material[_nghost-%COMP%]{display:inline-block;width:300px}.material[_nghost-%COMP%] > .select2-container[_ngcontent-%COMP%]{padding-bottom:1.29688em;vertical-align:inherit}.material[_nghost-%COMP%] > .select2-container[_ngcontent-%COMP%] .selection[_ngcontent-%COMP%]{padding:.4375em 0;border-top:.84375em solid transparent;display:inline-flex;align-items:baseline;width:100%;height:auto}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], .material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{width:100%;border:0;border-radius:0;height:24px;box-sizing:border-box}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]:before, .material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]:before{content:" ";display:block;position:absolute;bottom:1.65em;background:#ddd;background:var(--select2-material-underline, #ddd);height:1px;width:100%}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]:after, .material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]:after{content:" ";display:block;position:absolute;bottom:1.63em;background:#5a419e;background:var(--select2-material-underline-active, #5a419e);height:2px;width:0%;left:50%;transition:none}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__rendered[_ngcontent-%COMP%], .material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__rendered[_ngcontent-%COMP%]{padding-left:1px;line-height:inherit}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%] .select2-selection__placeholder[_ngcontent-%COMP%], .material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%] .select2-selection__placeholder[_ngcontent-%COMP%]{display:block;color:#00000061;color:var(--select2-material-placeholder-color, rgba(0, 0, 0, .38));transition:transform .3s;position:absolute;transform-origin:0 21px;left:0;top:20px}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-container--open[_ngcontent-%COMP%]{left:0;bottom:1.6em}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection__placeholder__option[_ngcontent-%COMP%]{transform:translateY(-1.5em) scale(.75) perspective(100px) translateZ(.001px);width:133.33333%}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection__arrow[_ngcontent-%COMP%]{top:20px}.material[_nghost-%COMP%] .select2-container--default.select2-container--open[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]:after, .material[_nghost-%COMP%] .select2-container--default.select2-container--open[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]:after, .material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-focused[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]:after, .material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-focused[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]:after{transition:width .3s cubic-bezier(.12,1,.77,1),left .3s cubic-bezier(.12,1,.77,1);width:100%;left:0%}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-dropdown[_ngcontent-%COMP%]{border-radius:0;border:0;box-shadow:0 5px 5px #00000080}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-results__option[aria-selected=true][_ngcontent-%COMP%], .material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-results__option--highlighted[aria-selected][_ngcontent-%COMP%]{background:rgba(0,0,0,.04);background:var(--select2-material-option-selected-background, rgba(0, 0, 0, .04));color:#000;color:var(--select2-material-option-highlighted-text-color, #000)}.material[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-results__option[aria-selected=true][_ngcontent-%COMP%]{color:#ff5722;color:var(--select2-material-option-selected-text-color, #ff5722)}.material[_nghost-%COMP%] .select2-container--default.select2-container--disabled[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], .material[_nghost-%COMP%] .select2-container--default.select2-container--disabled[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{background:transparent}.material[_nghost-%COMP%] .select2-container--default.select2-container--disabled[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]:before, .material[_nghost-%COMP%] .select2-container--default.select2-container--disabled[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]:before{background:linear-gradient(to right,rgba(0,0,0,.26) 0,rgba(0,0,0,.26) 33%,transparent 0);background:var(--select2-material-underline-disabled, linear-gradient(to right, rgba(0, 0, 0, .26) 0, rgba(0, 0, 0, .26) 33%, transparent 0));background-size:4px 1px;background-repeat:repeat-x;background-position:0 bottom}.material.ng-invalid.ng-touched[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]:before, .material.ng-invalid.ng-touched[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%]:after, .material.ng-invalid.ng-touched[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]:before, .material.ng-invalid.ng-touched[_nghost-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]:after{background:red;background:var(--select2-material-underline-invalid, red)}.material[_nghost-%COMP%]:not(.select2-container--open) .select2-focused[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], .material[_nghost-%COMP%]:not(.select2-container--open) .select2-focused[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{border:0}.material[_nghost-%COMP%] .select2-subscript-wrapper[_ngcontent-%COMP%]{position:absolute;top:calc(100% - 1.72917em);font-size:75%;color:#888;color:var(--select2-hint-text-color, #888)} .select2-overlay-backdrop{background:rgba(0,0,0,.32);background:var(--select2-overlay-backdrop, transparent)} .cdk-overlay-container .select2-container .select2-dropdown.select2-dropdown--above{bottom:28px} .cdk-overlay-container .select2-container--open.select2-position-auto .select2-dropdown{margin-bottom:28px} .cdk-overlay-container .select2-container--open.select2-position-auto .select2-dropdown.select2-dropdown--above{bottom:0;margin-bottom:0;margin-top:28px}@supports (-moz-appearance: none){select2.material[_ngcontent-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], select2.material[_ngcontent-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{height:26px}}@supports (-ms-scroll-limit: 0){select2.material[_ngcontent-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--single[_ngcontent-%COMP%], select2.material[_ngcontent-%COMP%] .select2-container--default[_ngcontent-%COMP%] .select2-selection--multiple[_ngcontent-%COMP%]{height:25px}}']}),n})(),uF=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({imports:[Wy,Fh,qN,Rl,Sk,Fh,Rl]}),n})();class dF extends z{notifyNext(e,t,r,i,o){this.destination.next(t)}notifyError(e,t){this.destination.error(e)}notifyComplete(e){this.destination.complete()}}class hF extends z{constructor(e,t,r){super(),this.parent=e,this.outerValue=t,this.outerIndex=r,this.index=0}_next(e){this.parent.notifyNext(this.outerValue,e,this.outerIndex,this.index++,this)}_error(e){this.parent.notifyError(e,this),this.unsubscribe()}_complete(){this.parent.notifyComplete(this),this.unsubscribe()}}function fF(n,e,t,r,i=new hF(n,t,r)){if(!i.closed)return e instanceof ve?e.subscribe(i):xt(e)(i)}const rw={};function iw(...n){let e,t;return $t(n[n.length-1])&&(t=n.pop()),"function"==typeof n[n.length-1]&&(e=n.pop()),1===n.length&&h(n[0])&&(n=n[0]),$s(n,t).lift(new pF(e))}class pF{constructor(e){this.resultSelector=e}call(e,t){return t.subscribe(new gF(e,this.resultSelector))}}class gF extends dF{constructor(e,t){super(e),this.resultSelector=t,this.active=0,this.values=[],this.observables=[]}_next(e){this.values.push(rw),this.observables.push(e)}_complete(){const e=this.observables,t=e.length;if(0===t)this.destination.complete();else{this.active=t,this.toRespond=t;for(let r=0;r{let t;try{t=n()}catch(i){return void e.error(i)}return(t?Qe(t):Lh()).subscribe(e)})}const _o=(()=>{function n(){return Error.call(this),this.message="no elements in sequence",this.name="EmptyError",this}return n.prototype=Object.create(Error.prototype),n})();function Hl(n=null){return e=>e.lift(new vF(n))}class vF{constructor(e){this.defaultValue=e}call(e,t){return t.subscribe(new yF(e,this.defaultValue))}}class yF extends z{constructor(e,t){super(e),this.defaultValue=t,this.isEmpty=!0}_next(e){this.isEmpty=!1,this.destination.next(e)}_complete(){this.isEmpty&&this.destination.next(this.defaultValue),this.destination.complete()}}function sw(n=wF){return e=>e.lift(new bF(n))}class bF{constructor(e){this.errorFactory=e}call(e,t){return t.subscribe(new CF(e,this.errorFactory))}}class CF extends z{constructor(e,t){super(e),this.errorFactory=t,this.hasValue=!1}_next(e){this.hasValue=!0,this.destination.next(e)}_complete(){if(this.hasValue)return this.destination.complete();{let e;try{e=this.errorFactory()}catch(t){e=t}this.destination.error(e)}}}function wF(){return new _o}function Nr(n,e){const t=arguments.length>=2;return r=>r.pipe(n?an((i,o)=>n(i,o,r)):bt,ri(1),t?Hl(e):sw(()=>new _o))}function si(n,e){return _t(n,e,1)}function aw(n,e){let t=!1;return arguments.length>=2&&(t=!0),function(i){return i.lift(new DF(n,e,t))}}class DF{constructor(e,t,r=!1){this.accumulator=e,this.seed=t,this.hasSeed=r}call(e,t){return t.subscribe(new EF(e,this.accumulator,this.seed,this.hasSeed))}}class EF extends z{constructor(e,t,r,i){super(e),this.accumulator=t,this._seed=r,this.hasSeed=i,this.index=0}get seed(){return this._seed}set seed(e){this.hasSeed=!0,this._seed=e}_next(e){if(this.hasSeed)return this._tryNext(e);this.seed=e,this.destination.next(e)}_tryNext(e){const t=this.index++;let r;try{r=this.accumulator(this.seed,e,t)}catch(i){this.destination.error(i)}this.seed=r,this.destination.next(r)}}function Qh(n){return function(t){return 0===n?Lh():t.lift(new SF(n))}}class SF{constructor(e){if(this.total=e,this.total<0)throw new DC}call(e,t){return t.subscribe(new MF(e,this.total))}}class MF extends z{constructor(e,t){super(e),this.total=t,this.ring=new Array,this.count=0}_next(e){const t=this.ring,r=this.total,i=this.count++;t.length0){const r=this.count>=this.total?this.total:this.count,i=this.ring;for(let o=0;o=2;return r=>r.pipe(n?an((i,o)=>n(i,o,r)):bt,Qh(1),t?Hl(e):sw(()=>new _o))}class OF{constructor(e){this.value=e}call(e,t){return t.subscribe(new TF(e,this.value))}}class TF extends z{constructor(e,t){super(e),this.value=t}_next(e){this.destination.next(this.value)}}function Xh(n){return e=>e.lift(new IF(n))}class IF{constructor(e){this.callback=e}call(e,t){return t.subscribe(new xF(e,this.callback))}}class xF extends z{constructor(e,t){super(e),this.add(new S(t))}}const fe="primary";class PF{constructor(e){this.params=e||{}}has(e){return Object.prototype.hasOwnProperty.call(this.params,e)}get(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t[0]:t}return null}getAll(e){if(this.has(e)){const t=this.params[e];return Array.isArray(t)?t:[t]}return[]}get keys(){return Object.keys(this.params)}}function vo(n){return new PF(n)}function RF(n,e,t){const r=t.path.split("/");if(r.length>n.length||"full"===t.pathMatch&&(e.hasChildren()||r.lengthr[o]===i)}return n===e}function uw(n){return Array.prototype.concat.apply([],n)}function dw(n){return n.length>0?n[n.length-1]:null}function yt(n,e){for(const t in n)n.hasOwnProperty(t)&&e(n[t],t)}function pr(n){return od(n)?n:is(n)?Qe(Promise.resolve(n)):K(n)}const FF={exact:function pw(n,e,t){if(!li(n.segments,e.segments)||!jl(n.segments,e.segments,t)||n.numberOfChildren!==e.numberOfChildren)return!1;for(const r in e.children)if(!n.children[r]||!pw(n.children[r],e.children[r],t))return!1;return!0},subset:gw},hw={exact:function LF(n,e){return Yn(n,e)},subset:function VF(n,e){return Object.keys(e).length<=Object.keys(n).length&&Object.keys(e).every(t=>cw(n[t],e[t]))},ignored:()=>!0};function fw(n,e,t){return FF[t.paths](n.root,e.root,t.matrixParams)&&hw[t.queryParams](n.queryParams,e.queryParams)&&!("exact"===t.fragment&&n.fragment!==e.fragment)}function gw(n,e,t){return mw(n,e,e.segments,t)}function mw(n,e,t,r){if(n.segments.length>t.length){const i=n.segments.slice(0,t.length);return!(!li(i,t)||e.hasChildren()||!jl(i,t,r))}if(n.segments.length===t.length){if(!li(n.segments,t)||!jl(n.segments,t,r))return!1;for(const i in e.children)if(!n.children[i]||!gw(n.children[i],e.children[i],r))return!1;return!0}{const i=t.slice(0,n.segments.length),o=t.slice(n.segments.length);return!!(li(n.segments,i)&&jl(n.segments,i,r)&&n.children[fe])&&mw(n.children[fe],e,o,r)}}function jl(n,e,t){return e.every((r,i)=>hw[t](n[i].parameters,r.parameters))}class ai{constructor(e,t,r){this.root=e,this.queryParams=t,this.fragment=r}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=vo(this.queryParams)),this._queryParamMap}toString(){return jF.serialize(this)}}class ge{constructor(e,t){this.segments=e,this.children=t,this.parent=null,yt(t,(r,i)=>r.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return Ul(this)}}class Is{constructor(e,t){this.path=e,this.parameters=t}get parameterMap(){return this._parameterMap||(this._parameterMap=vo(this.parameters)),this._parameterMap}toString(){return Cw(this)}}function li(n,e){return n.length===e.length&&n.every((t,r)=>t.path===e[r].path)}class _w{}class vw{parse(e){const t=new KF(e);return new ai(t.parseRootSegment(),t.parseQueryParams(),t.parseFragment())}serialize(e){const t=`/${xs(e.root,!0)}`,r=function zF(n){const e=Object.keys(n).map(t=>{const r=n[t];return Array.isArray(r)?r.map(i=>`${$l(t)}=${$l(i)}`).join("&"):`${$l(t)}=${$l(r)}`}).filter(t=>!!t);return e.length?`?${e.join("&")}`:""}(e.queryParams),i="string"==typeof e.fragment?`#${function UF(n){return encodeURI(n)}(e.fragment)}`:"";return`${t}${r}${i}`}}const jF=new vw;function Ul(n){return n.segments.map(e=>Cw(e)).join("/")}function xs(n,e){if(!n.hasChildren())return Ul(n);if(e){const t=n.children[fe]?xs(n.children[fe],!1):"",r=[];return yt(n.children,(i,o)=>{o!==fe&&r.push(`${o}:${xs(i,!1)}`)}),r.length>0?`${t}(${r.join("//")})`:t}{const t=function HF(n,e){let t=[];return yt(n.children,(r,i)=>{i===fe&&(t=t.concat(e(r,i)))}),yt(n.children,(r,i)=>{i!==fe&&(t=t.concat(e(r,i)))}),t}(n,(r,i)=>i===fe?[xs(n.children[fe],!1)]:[`${i}:${xs(r,!1)}`]);return 1===Object.keys(n.children).length&&null!=n.children[fe]?`${Ul(n)}/${t[0]}`:`${Ul(n)}/(${t.join("//")})`}}function yw(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function $l(n){return yw(n).replace(/%3B/gi,";")}function ef(n){return yw(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function zl(n){return decodeURIComponent(n)}function bw(n){return zl(n.replace(/\+/g,"%20"))}function Cw(n){return`${ef(n.path)}${function $F(n){return Object.keys(n).map(e=>`;${ef(e)}=${ef(n[e])}`).join("")}(n.parameters)}`}const GF=/^[^\/()?;=#]+/;function Gl(n){const e=n.match(GF);return e?e[0]:""}const WF=/^[^=?&#]+/,YF=/^[^&#]+/;class KF{constructor(e){this.url=e,this.remaining=e}parseRootSegment(){return this.consumeOptional("/"),""===this.remaining||this.peekStartsWith("?")||this.peekStartsWith("#")?new ge([],{}):new ge([],this.parseChildren())}parseQueryParams(){const e={};if(this.consumeOptional("?"))do{this.parseQueryParam(e)}while(this.consumeOptional("&"));return e}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(""===this.remaining)return{};this.consumeOptional("/");const e=[];for(this.peekStartsWith("(")||e.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),e.push(this.parseSegment());let t={};this.peekStartsWith("/(")&&(this.capture("/"),t=this.parseParens(!0));let r={};return this.peekStartsWith("(")&&(r=this.parseParens(!1)),(e.length>0||Object.keys(t).length>0)&&(r[fe]=new ge(e,t)),r}parseSegment(){const e=Gl(this.remaining);if(""===e&&this.peekStartsWith(";"))throw new k(4009,!1);return this.capture(e),new Is(zl(e),this.parseMatrixParams())}parseMatrixParams(){const e={};for(;this.consumeOptional(";");)this.parseParam(e);return e}parseParam(e){const t=Gl(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const i=Gl(this.remaining);i&&(r=i,this.capture(r))}e[zl(t)]=zl(r)}parseQueryParam(e){const t=function qF(n){const e=n.match(WF);return e?e[0]:""}(this.remaining);if(!t)return;this.capture(t);let r="";if(this.consumeOptional("=")){const s=function ZF(n){const e=n.match(YF);return e?e[0]:""}(this.remaining);s&&(r=s,this.capture(r))}const i=bw(t),o=bw(r);if(e.hasOwnProperty(i)){let s=e[i];Array.isArray(s)||(s=[s],e[i]=s),s.push(o)}else e[i]=o}parseParens(e){const t={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){const r=Gl(this.remaining),i=this.remaining[r.length];if("/"!==i&&")"!==i&&";"!==i)throw new k(4010,!1);let o;r.indexOf(":")>-1?(o=r.slice(0,r.indexOf(":")),this.capture(o),this.capture(":")):e&&(o=fe);const s=this.parseChildren();t[o]=1===Object.keys(s).length?s[fe]:new ge([],s),this.consumeOptional("//")}return t}peekStartsWith(e){return this.remaining.startsWith(e)}consumeOptional(e){return!!this.peekStartsWith(e)&&(this.remaining=this.remaining.substring(e.length),!0)}capture(e){if(!this.consumeOptional(e))throw new k(4011,!1)}}function tf(n){return n.segments.length>0?new ge([],{[fe]:n}):n}function Wl(n){const e={};for(const r of Object.keys(n.children)){const o=Wl(n.children[r]);(o.segments.length>0||o.hasChildren())&&(e[r]=o)}return function QF(n){if(1===n.numberOfChildren&&n.children[fe]){const e=n.children[fe];return new ge(n.segments.concat(e.segments),e.children)}return n}(new ge(n.segments,e))}function ci(n){return n instanceof ai}function e2(n,e,t,r,i){if(0===t.length)return yo(e.root,e.root,e.root,r,i);const o=function Ew(n){if("string"==typeof n[0]&&1===n.length&&"/"===n[0])return new Dw(!0,0,n);let e=0,t=!1;const r=n.reduce((i,o,s)=>{if("object"==typeof o&&null!=o){if(o.outlets){const a={};return yt(o.outlets,(l,c)=>{a[c]="string"==typeof l?l.split("/"):l}),[...i,{outlets:a}]}if(o.segmentPath)return[...i,o.segmentPath]}return"string"!=typeof o?[...i,o]:0===s?(o.split("/").forEach((a,l)=>{0==l&&"."===a||(0==l&&""===a?t=!0:".."===a?e++:""!=a&&i.push(a))}),i):[...i,o]},[]);return new Dw(t,e,r)}(t);return o.toRoot()?yo(e.root,e.root,new ge([],{}),r,i):function s(l){const c=function n2(n,e,t,r){if(n.isAbsolute)return new bo(e.root,!0,0);if(-1===r)return new bo(t,t===e.root,0);return function Sw(n,e,t){let r=n,i=e,o=t;for(;o>i;){if(o-=i,r=r.parent,!r)throw new k(4005,!1);i=r.segments.length}return new bo(r,!1,i-o)}(t,r+(Ps(n.commands[0])?0:1),n.numberOfDoubleDots)}(o,e,n.snapshot?._urlSegment,l),u=c.processChildren?Ns(c.segmentGroup,c.index,o.commands):rf(c.segmentGroup,c.index,o.commands);return yo(e.root,c.segmentGroup,u,r,i)}(n.snapshot?._lastPathIndex)}function Ps(n){return"object"==typeof n&&null!=n&&!n.outlets&&!n.segmentPath}function Rs(n){return"object"==typeof n&&null!=n&&n.outlets}function yo(n,e,t,r,i){let s,o={};r&&yt(r,(l,c)=>{o[c]=Array.isArray(l)?l.map(u=>`${u}`):`${l}`}),s=n===e?t:ww(n,e,t);const a=tf(Wl(s));return new ai(a,o,i)}function ww(n,e,t){const r={};return yt(n.children,(i,o)=>{r[o]=i===e?t:ww(i,e,t)}),new ge(n.segments,r)}class Dw{constructor(e,t,r){if(this.isAbsolute=e,this.numberOfDoubleDots=t,this.commands=r,e&&r.length>0&&Ps(r[0]))throw new k(4003,!1);const i=r.find(Rs);if(i&&i!==dw(r))throw new k(4004,!1)}toRoot(){return this.isAbsolute&&1===this.commands.length&&"/"==this.commands[0]}}class bo{constructor(e,t,r){this.segmentGroup=e,this.processChildren=t,this.index=r}}function rf(n,e,t){if(n||(n=new ge([],{})),0===n.segments.length&&n.hasChildren())return Ns(n,e,t);const r=function o2(n,e,t){let r=0,i=e;const o={match:!1,pathIndex:0,commandIndex:0};for(;i=t.length)return o;const s=n.segments[i],a=t[r];if(Rs(a))break;const l=`${a}`,c=r0&&void 0===l)break;if(l&&c&&"object"==typeof c&&void 0===c.outlets){if(!Aw(l,c,s))return o;r+=2}else{if(!Aw(l,{},s))return o;r++}i++}return{match:!0,pathIndex:i,commandIndex:r}}(n,e,t),i=t.slice(r.commandIndex);if(r.match&&r.pathIndex{"string"==typeof o&&(o=[o]),null!==o&&(i[s]=rf(n.children[s],e,o))}),yt(n.children,(o,s)=>{void 0===r[s]&&(i[s]=o)}),new ge(n.segments,i)}}function sf(n,e,t){const r=n.segments.slice(0,e);let i=0;for(;i{"string"==typeof t&&(t=[t]),null!==t&&(e[r]=sf(new ge([],{}),0,t))}),e}function Mw(n){const e={};return yt(n,(t,r)=>e[r]=`${t}`),e}function Aw(n,e,t){return n==t.path&&Yn(e,t.parameters)}class gr{constructor(e,t){this.id=e,this.url=t}}class af extends gr{constructor(e,t,r="imperative",i=null){super(e,t),this.type=0,this.navigationTrigger=r,this.restoredState=i}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}}class ui extends gr{constructor(e,t,r){super(e,t),this.urlAfterRedirects=r,this.type=1}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}}class ql extends gr{constructor(e,t,r,i){super(e,t),this.reason=r,this.code=i,this.type=2}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}}class Ow extends gr{constructor(e,t,r,i){super(e,t),this.error=r,this.target=i,this.type=3}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}}class a2 extends gr{constructor(e,t,r,i){super(e,t),this.urlAfterRedirects=r,this.state=i,this.type=4}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class l2 extends gr{constructor(e,t,r,i){super(e,t),this.urlAfterRedirects=r,this.state=i,this.type=7}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class c2 extends gr{constructor(e,t,r,i,o){super(e,t),this.urlAfterRedirects=r,this.state=i,this.shouldActivate=o,this.type=8}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}}class u2 extends gr{constructor(e,t,r,i){super(e,t),this.urlAfterRedirects=r,this.state=i,this.type=5}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class d2 extends gr{constructor(e,t,r,i){super(e,t),this.urlAfterRedirects=r,this.state=i,this.type=6}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}}class h2{constructor(e){this.route=e,this.type=9}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}}class f2{constructor(e){this.route=e,this.type=10}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}}class p2{constructor(e){this.snapshot=e,this.type=11}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class g2{constructor(e){this.snapshot=e,this.type=12}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class m2{constructor(e){this.snapshot=e,this.type=13}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class _2{constructor(e){this.snapshot=e,this.type=14}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}}class Tw{constructor(e,t,r){this.routerEvent=e,this.position=t,this.anchor=r,this.type=15}toString(){return`Scroll(anchor: '${this.anchor}', position: '${this.position?`${this.position[0]}, ${this.position[1]}`:null}')`}}class Iw{constructor(e){this._root=e}get root(){return this._root.value}parent(e){const t=this.pathFromRoot(e);return t.length>1?t[t.length-2]:null}children(e){const t=lf(e,this._root);return t?t.children.map(r=>r.value):[]}firstChild(e){const t=lf(e,this._root);return t&&t.children.length>0?t.children[0].value:null}siblings(e){const t=cf(e,this._root);return t.length<2?[]:t[t.length-2].children.map(i=>i.value).filter(i=>i!==e)}pathFromRoot(e){return cf(e,this._root).map(t=>t.value)}}function lf(n,e){if(n===e.value)return e;for(const t of e.children){const r=lf(n,t);if(r)return r}return null}function cf(n,e){if(n===e.value)return[e];for(const t of e.children){const r=cf(n,t);if(r.length)return r.unshift(e),r}return[]}class mr{constructor(e,t){this.value=e,this.children=t}toString(){return`TreeNode(${this.value})`}}function Co(n){const e={};return n&&n.children.forEach(t=>e[t.value.outlet]=t),e}class xw extends Iw{constructor(e,t){super(e),this.snapshot=t,uf(this,e)}toString(){return this.snapshot.toString()}}function Pw(n,e){const t=function y2(n,e){const s=new Yl([],{},{},"",{},fe,e,null,n.root,-1,{});return new Nw("",new mr(s,[]))}(n,e),r=new Cn([new Is("",{})]),i=new Cn({}),o=new Cn({}),s=new Cn({}),a=new Cn(""),l=new wo(r,i,s,a,o,fe,e,t.root);return l.snapshot=t.root,new xw(new mr(l,[]),t)}class wo{constructor(e,t,r,i,o,s,a,l){this.url=e,this.params=t,this.queryParams=r,this.fragment=i,this.data=o,this.outlet=s,this.component=a,this._futureSnapshot=l}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=this.params.pipe(Q(e=>vo(e)))),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=this.queryParams.pipe(Q(e=>vo(e)))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}}function Rw(n,e="emptyOnly"){const t=n.pathFromRoot;let r=0;if("always"!==e)for(r=t.length-1;r>=1;){const i=t[r],o=t[r-1];if(i.routeConfig&&""===i.routeConfig.path)r--;else{if(o.component)break;r--}}return function b2(n){return n.reduce((e,t)=>({params:{...e.params,...t.params},data:{...e.data,...t.data},resolve:{...t.data,...e.resolve,...t.routeConfig?.data,...t._resolvedData}}),{params:{},data:{},resolve:{}})}(t.slice(r))}class Yl{constructor(e,t,r,i,o,s,a,l,c,u,d,f){this.url=e,this.params=t,this.queryParams=r,this.fragment=i,this.data=o,this.outlet=s,this.component=a,this.routeConfig=l,this._urlSegment=c,this._lastPathIndex=u,this._correctedLastPathIndex=f??u,this._resolve=d}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap||(this._paramMap=vo(this.params)),this._paramMap}get queryParamMap(){return this._queryParamMap||(this._queryParamMap=vo(this.queryParams)),this._queryParamMap}toString(){return`Route(url:'${this.url.map(r=>r.toString()).join("/")}', path:'${this.routeConfig?this.routeConfig.path:""}')`}}class Nw extends Iw{constructor(e,t){super(t),this.url=e,uf(this,t)}toString(){return kw(this._root)}}function uf(n,e){e.value._routerState=n,e.children.forEach(t=>uf(n,t))}function kw(n){const e=n.children.length>0?` { ${n.children.map(kw).join(", ")} } `:"";return`${n.value}${e}`}function df(n){if(n.snapshot){const e=n.snapshot,t=n._futureSnapshot;n.snapshot=t,Yn(e.queryParams,t.queryParams)||n.queryParams.next(t.queryParams),e.fragment!==t.fragment&&n.fragment.next(t.fragment),Yn(e.params,t.params)||n.params.next(t.params),function NF(n,e){if(n.length!==e.length)return!1;for(let t=0;tYn(t.parameters,e[r].parameters))}(n.url,e.url);return t&&!(!n.parent!=!e.parent)&&(!n.parent||hf(n.parent,e.parent))}function ks(n,e,t){if(t&&n.shouldReuseRoute(e.value,t.value.snapshot)){const r=t.value;r._futureSnapshot=e.value;const i=function w2(n,e,t){return e.children.map(r=>{for(const i of t.children)if(n.shouldReuseRoute(r.value,i.value.snapshot))return ks(n,r,i);return ks(n,r)})}(n,e,t);return new mr(r,i)}{if(n.shouldAttach(e.value)){const o=n.retrieve(e.value);if(null!==o){const s=o.route;return s.value._futureSnapshot=e.value,s.children=e.children.map(a=>ks(n,a)),s}}const r=function D2(n){return new wo(new Cn(n.url),new Cn(n.params),new Cn(n.queryParams),new Cn(n.fragment),new Cn(n.data),n.outlet,n.component,n)}(e.value),i=e.children.map(o=>ks(n,o));return new mr(r,i)}}const ff="ngNavigationCancelingError";function Fw(n,e){const{redirectTo:t,navigationBehaviorOptions:r}=ci(e)?{redirectTo:e,navigationBehaviorOptions:void 0}:e,i=Lw(!1,0,e);return i.url=t,i.navigationBehaviorOptions=r,i}function Lw(n,e,t){const r=new Error("NavigationCancelingError: "+(n||""));return r[ff]=!0,r.cancellationCode=e,t&&(r.url=t),r}function Vw(n){return Bw(n)&&ci(n.url)}function Bw(n){return n&&n[ff]}class E2{constructor(){this.outlet=null,this.route=null,this.resolver=null,this.injector=null,this.children=new Fs,this.attachRef=null}}class Fs{constructor(){this.contexts=new Map}onChildOutletCreated(e,t){const r=this.getOrCreateContext(e);r.outlet=t,this.contexts.set(e,r)}onChildOutletDestroyed(e){const t=this.getContext(e);t&&(t.outlet=null,t.attachRef=null)}onOutletDeactivated(){const e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let t=this.getContext(e);return t||(t=new E2,this.contexts.set(e,t)),t}getContext(e){return this.contexts.get(e)||null}}const Zl=!1;let pf=(()=>{class n{constructor(t,r,i,o,s){this.parentContexts=t,this.location=r,this.changeDetector=o,this.environmentInjector=s,this.activated=null,this._activatedRoute=null,this.activateEvents=new he,this.deactivateEvents=new he,this.attachEvents=new he,this.detachEvents=new he,this.name=i||fe,t.onChildOutletCreated(this.name,this)}ngOnDestroy(){this.parentContexts.getContext(this.name)?.outlet===this&&this.parentContexts.onChildOutletDestroyed(this.name)}ngOnInit(){if(!this.activated){const t=this.parentContexts.getContext(this.name);t&&t.route&&(t.attachRef?this.attach(t.attachRef,t.route):this.activateWith(t.route,t.injector))}}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new k(4012,Zl);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new k(4012,Zl);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new k(4012,Zl);this.location.detach();const t=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(t.instance),t}attach(t,r){this.activated=t,this._activatedRoute=r,this.location.insert(t.hostView),this.attachEvents.emit(t.instance)}deactivate(){if(this.activated){const t=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(t)}}activateWith(t,r){if(this.isActivated)throw new k(4013,Zl);this._activatedRoute=t;const i=this.location,s=t._futureSnapshot.component,a=this.parentContexts.getOrCreateContext(this.name).children,l=new S2(t,a,i.injector);if(r&&function M2(n){return!!n.resolveComponentFactory}(r)){const c=r.resolveComponentFactory(s);this.activated=i.createComponent(c,i.length,l)}else this.activated=i.createComponent(s,{index:i.length,injector:l,environmentInjector:r??this.environmentInjector});this.changeDetector.markForCheck(),this.activateEvents.emit(this.activated.instance)}}return n.\u0275fac=function(t){return new(t||n)(E(Fs),E(vn),Ii("name"),E(gs),E(Er))},n.\u0275dir=Z({type:n,selectors:[["router-outlet"]],outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"]}),n})();class S2{constructor(e,t,r){this.route=e,this.childContexts=t,this.parent=r}get(e,t){return e===wo?this.route:e===Fs?this.childContexts:this.parent.get(e,t)}}let Hw=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=Fr({type:n,selectors:[["ng-component"]],decls:1,vars:0,template:function(t,r){1&t&&ie(0,"router-outlet")},dependencies:[pf],encapsulation:2}),n})();function jw(n,e){return n.providers&&!n._injector&&(n._injector=ja(n.providers,e,`Route: ${n.path}`)),n._injector??e}function mf(n){const e=n.children&&n.children.map(mf),t=e?{...n,children:e}:{...n};return!t.component&&!t.loadComponent&&(e||t.loadChildren)&&t.outlet&&t.outlet!==fe&&(t.component=Hw),t}function wn(n){return n.outlet||fe}function Uw(n,e){const t=n.filter(r=>wn(r)===e);return t.push(...n.filter(r=>wn(r)!==e)),t}function $w(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let e=n.parent;e;e=e.parent){const t=e.routeConfig;if(t?._loadedInjector)return t._loadedInjector;if(t?._injector)return t._injector}return null}class x2{constructor(e,t,r,i){this.routeReuseStrategy=e,this.futureState=t,this.currState=r,this.forwardEvent=i}activate(e){const t=this.futureState._root,r=this.currState?this.currState._root:null;this.deactivateChildRoutes(t,r,e),df(this.futureState.root),this.activateChildRoutes(t,r,e)}deactivateChildRoutes(e,t,r){const i=Co(t);e.children.forEach(o=>{const s=o.value.outlet;this.deactivateRoutes(o,i[s],r),delete i[s]}),yt(i,(o,s)=>{this.deactivateRouteAndItsChildren(o,r)})}deactivateRoutes(e,t,r){const i=e.value,o=t?t.value:null;if(i===o)if(i.component){const s=r.getContext(i.outlet);s&&this.deactivateChildRoutes(e,t,s.children)}else this.deactivateChildRoutes(e,t,r);else o&&this.deactivateRouteAndItsChildren(t,r)}deactivateRouteAndItsChildren(e,t){e.value.component&&this.routeReuseStrategy.shouldDetach(e.value.snapshot)?this.detachAndStoreRouteSubtree(e,t):this.deactivateRouteAndOutlet(e,t)}detachAndStoreRouteSubtree(e,t){const r=t.getContext(e.value.outlet),i=r&&e.value.component?r.children:t,o=Co(e);for(const s of Object.keys(o))this.deactivateRouteAndItsChildren(o[s],i);if(r&&r.outlet){const s=r.outlet.detach(),a=r.children.onOutletDeactivated();this.routeReuseStrategy.store(e.value.snapshot,{componentRef:s,route:e,contexts:a})}}deactivateRouteAndOutlet(e,t){const r=t.getContext(e.value.outlet),i=r&&e.value.component?r.children:t,o=Co(e);for(const s of Object.keys(o))this.deactivateRouteAndItsChildren(o[s],i);r&&r.outlet&&(r.outlet.deactivate(),r.children.onOutletDeactivated(),r.attachRef=null,r.resolver=null,r.route=null)}activateChildRoutes(e,t,r){const i=Co(t);e.children.forEach(o=>{this.activateRoutes(o,i[o.value.outlet],r),this.forwardEvent(new _2(o.value.snapshot))}),e.children.length&&this.forwardEvent(new g2(e.value.snapshot))}activateRoutes(e,t,r){const i=e.value,o=t?t.value:null;if(df(i),i===o)if(i.component){const s=r.getOrCreateContext(i.outlet);this.activateChildRoutes(e,t,s.children)}else this.activateChildRoutes(e,t,r);else if(i.component){const s=r.getOrCreateContext(i.outlet);if(this.routeReuseStrategy.shouldAttach(i.snapshot)){const a=this.routeReuseStrategy.retrieve(i.snapshot);this.routeReuseStrategy.store(i.snapshot,null),s.children.onOutletReAttached(a.contexts),s.attachRef=a.componentRef,s.route=a.route.value,s.outlet&&s.outlet.attach(a.componentRef,a.route.value),df(a.route.value),this.activateChildRoutes(e,null,s.children)}else{const a=$w(i.snapshot),l=a?.get(Hi)??null;s.attachRef=null,s.route=i,s.resolver=l,s.injector=a,s.outlet&&s.outlet.activateWith(i,s.injector),this.activateChildRoutes(e,null,s.children)}}else this.activateChildRoutes(e,null,r)}}class zw{constructor(e){this.path=e,this.route=this.path[this.path.length-1]}}class Kl{constructor(e,t){this.component=e,this.route=t}}function P2(n,e,t){const r=n._root;return Ls(r,e?e._root:null,t,[r.value])}function Ql(n,e,t){return($w(e)??t).get(n)}function Ls(n,e,t,r,i={canDeactivateChecks:[],canActivateChecks:[]}){const o=Co(e);return n.children.forEach(s=>{(function N2(n,e,t,r,i={canDeactivateChecks:[],canActivateChecks:[]}){const o=n.value,s=e?e.value:null,a=t?t.getContext(n.value.outlet):null;if(s&&o.routeConfig===s.routeConfig){const l=function k2(n,e,t){if("function"==typeof t)return t(n,e);switch(t){case"pathParamsChange":return!li(n.url,e.url);case"pathParamsOrQueryParamsChange":return!li(n.url,e.url)||!Yn(n.queryParams,e.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!hf(n,e)||!Yn(n.queryParams,e.queryParams);default:return!hf(n,e)}}(s,o,o.routeConfig.runGuardsAndResolvers);l?i.canActivateChecks.push(new zw(r)):(o.data=s.data,o._resolvedData=s._resolvedData),Ls(n,e,o.component?a?a.children:null:t,r,i),l&&a&&a.outlet&&a.outlet.isActivated&&i.canDeactivateChecks.push(new Kl(a.outlet.component,s))}else s&&Vs(e,a,i),i.canActivateChecks.push(new zw(r)),Ls(n,null,o.component?a?a.children:null:t,r,i)})(s,o[s.value.outlet],t,r.concat([s.value]),i),delete o[s.value.outlet]}),yt(o,(s,a)=>Vs(s,t.getContext(a),i)),i}function Vs(n,e,t){const r=Co(n),i=n.value;yt(r,(o,s)=>{Vs(o,i.component?e?e.children.getContext(s):null:e,t)}),t.canDeactivateChecks.push(new Kl(i.component&&e&&e.outlet&&e.outlet.isActivated?e.outlet.component:null,i))}function Bs(n){return"function"==typeof n}const Xl=Symbol("INITIAL_VALUE");function Do(){return ln(n=>iw(n.map(e=>e.pipe(ri(1),function _F(...n){const e=n[n.length-1];return $t(e)?(n.pop(),t=>Kh(n,t,e)):t=>Kh(n,t)}(Xl)))).pipe(Q(e=>{for(const t of e)if(!0!==t){if(t===Xl)return Xl;if(!1===t||t instanceof ai)return t}return!0}),an(e=>e!==Xl),ri(1)))}function Gw(n){return function Tt(...n){return ot(n)}(Ue(e=>{if(ci(e))throw Fw(0,e)}),Q(e=>!0===e))}const _f={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Ww(n,e,t,r,i){const o=vf(n,e,t);return o.matched?function X2(n,e,t,r){const i=e.canMatch;return i&&0!==i.length?K(i.map(s=>{const a=n.get(s),l=function j2(n){return n&&Bs(n.canMatch)}(a)?a.canMatch(e,t):a(e,t);return pr(l)})).pipe(Do(),Gw()):K(!0)}(r=jw(e,r),e,t).pipe(Q(s=>!0===s?o:{..._f})):K(o)}function vf(n,e,t){if(""===e.path)return"full"===e.pathMatch&&(n.hasChildren()||t.length>0)?{..._f}:{matched:!0,consumedSegments:[],remainingSegments:t,parameters:{},positionalParamSegments:{}};const i=(e.matcher||RF)(t,n,e);if(!i)return{..._f};const o={};yt(i.posParams,(a,l)=>{o[l]=a.path});const s=i.consumed.length>0?{...o,...i.consumed[i.consumed.length-1].parameters}:o;return{matched:!0,consumedSegments:i.consumed,remainingSegments:t.slice(i.consumed.length),parameters:s,positionalParamSegments:i.posParams??{}}}function Jl(n,e,t,r,i="corrected"){if(t.length>0&&function tL(n,e,t){return t.some(r=>ec(n,e,r)&&wn(r)!==fe)}(n,t,r)){const s=new ge(e,function eL(n,e,t,r){const i={};i[fe]=r,r._sourceSegment=n,r._segmentIndexShift=e.length;for(const o of t)if(""===o.path&&wn(o)!==fe){const s=new ge([],{});s._sourceSegment=n,s._segmentIndexShift=e.length,i[wn(o)]=s}return i}(n,e,r,new ge(t,n.children)));return s._sourceSegment=n,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:[]}}if(0===t.length&&function nL(n,e,t){return t.some(r=>ec(n,e,r))}(n,t,r)){const s=new ge(n.segments,function J2(n,e,t,r,i,o){const s={};for(const a of r)if(ec(n,t,a)&&!i[wn(a)]){const l=new ge([],{});l._sourceSegment=n,l._segmentIndexShift="legacy"===o?n.segments.length:e.length,s[wn(a)]=l}return{...i,...s}}(n,e,t,r,n.children,i));return s._sourceSegment=n,s._segmentIndexShift=e.length,{segmentGroup:s,slicedSegments:t}}const o=new ge(n.segments,n.children);return o._sourceSegment=n,o._segmentIndexShift=e.length,{segmentGroup:o,slicedSegments:t}}function ec(n,e,t){return(!(n.hasChildren()||e.length>0)||"full"!==t.pathMatch)&&""===t.path}function qw(n,e,t,r){return!!(wn(n)===r||r!==fe&&ec(e,t,n))&&("**"===n.path||vf(e,n,t).matched)}function Yw(n,e,t){return 0===e.length&&!n.children[t]}const tc=!1;class nc{constructor(e){this.segmentGroup=e||null}}class Zw{constructor(e){this.urlTree=e}}function Hs(n){return Wn(new nc(n))}function Kw(n){return Wn(new Zw(n))}class sL{constructor(e,t,r,i,o){this.injector=e,this.configLoader=t,this.urlSerializer=r,this.urlTree=i,this.config=o,this.allowRedirects=!0}apply(){const e=Jl(this.urlTree.root,[],[],this.config).segmentGroup,t=new ge(e.segments,e.children);return this.expandSegmentGroup(this.injector,this.config,t,fe).pipe(Q(o=>this.createUrlTree(Wl(o),this.urlTree.queryParams,this.urlTree.fragment))).pipe(Rr(o=>{if(o instanceof Zw)return this.allowRedirects=!1,this.match(o.urlTree);throw o instanceof nc?this.noMatchError(o):o}))}match(e){return this.expandSegmentGroup(this.injector,this.config,e.root,fe).pipe(Q(i=>this.createUrlTree(Wl(i),e.queryParams,e.fragment))).pipe(Rr(i=>{throw i instanceof nc?this.noMatchError(i):i}))}noMatchError(e){return new k(4002,tc)}createUrlTree(e,t,r){const i=tf(e);return new ai(i,t,r)}expandSegmentGroup(e,t,r,i){return 0===r.segments.length&&r.hasChildren()?this.expandChildren(e,t,r).pipe(Q(o=>new ge([],o))):this.expandSegment(e,r,t,r.segments,i,!0)}expandChildren(e,t,r){const i=[];for(const o of Object.keys(r.children))"primary"===o?i.unshift(o):i.push(o);return Qe(i).pipe(si(o=>{const s=r.children[o],a=Uw(t,o);return this.expandSegmentGroup(e,a,s,o).pipe(Q(l=>({segment:l,outlet:o})))}),aw((o,s)=>(o[s.outlet]=s.segment,o),{}),lw())}expandSegment(e,t,r,i,o,s){return Qe(r).pipe(si(a=>this.expandSegmentAgainstRoute(e,t,r,a,i,o,s).pipe(Rr(c=>{if(c instanceof nc)return K(null);throw c}))),Nr(a=>!!a),Rr((a,l)=>{if(a instanceof _o||"EmptyError"===a.name)return Yw(t,i,o)?K(new ge([],{})):Hs(t);throw a}))}expandSegmentAgainstRoute(e,t,r,i,o,s,a){return qw(i,t,o,s)?void 0===i.redirectTo?this.matchSegmentAgainstRoute(e,t,i,o,s):a&&this.allowRedirects?this.expandSegmentAgainstRouteUsingRedirect(e,t,r,i,o,s):Hs(t):Hs(t)}expandSegmentAgainstRouteUsingRedirect(e,t,r,i,o,s){return"**"===i.path?this.expandWildCardWithParamsAgainstRouteUsingRedirect(e,r,i,s):this.expandRegularSegmentAgainstRouteUsingRedirect(e,t,r,i,o,s)}expandWildCardWithParamsAgainstRouteUsingRedirect(e,t,r,i){const o=this.applyRedirectCommands([],r.redirectTo,{});return r.redirectTo.startsWith("/")?Kw(o):this.lineralizeSegments(r,o).pipe(_t(s=>{const a=new ge(s,{});return this.expandSegment(e,a,t,s,i,!1)}))}expandRegularSegmentAgainstRouteUsingRedirect(e,t,r,i,o,s){const{matched:a,consumedSegments:l,remainingSegments:c,positionalParamSegments:u}=vf(t,i,o);if(!a)return Hs(t);const d=this.applyRedirectCommands(l,i.redirectTo,u);return i.redirectTo.startsWith("/")?Kw(d):this.lineralizeSegments(i,d).pipe(_t(f=>this.expandSegment(e,t,r,f.concat(c),s,!1)))}matchSegmentAgainstRoute(e,t,r,i,o){return"**"===r.path?(e=jw(r,e),r.loadChildren?(r._loadedRoutes?K({routes:r._loadedRoutes,injector:r._loadedInjector}):this.configLoader.loadChildren(e,r)).pipe(Q(a=>(r._loadedRoutes=a.routes,r._loadedInjector=a.injector,new ge(i,{})))):K(new ge(i,{}))):Ww(t,r,i,e).pipe(ln(({matched:s,consumedSegments:a,remainingSegments:l})=>s?this.getChildConfig(e=r._injector??e,r,i).pipe(_t(u=>{const d=u.injector??e,f=u.routes,{segmentGroup:g,slicedSegments:v}=Jl(t,a,l,f),w=new ge(g.segments,g.children);if(0===v.length&&w.hasChildren())return this.expandChildren(d,f,w).pipe(Q(O=>new ge(a,O)));if(0===f.length&&0===v.length)return K(new ge(a,{}));const A=wn(r)===o;return this.expandSegment(d,w,f,v,A?fe:o,!0).pipe(Q(j=>new ge(a.concat(j.segments),j.children)))})):Hs(t)))}getChildConfig(e,t,r){return t.children?K({routes:t.children,injector:e}):t.loadChildren?void 0!==t._loadedRoutes?K({routes:t._loadedRoutes,injector:t._loadedInjector}):function Q2(n,e,t,r){const i=e.canLoad;return void 0===i||0===i.length?K(!0):K(i.map(s=>{const a=n.get(s),l=function L2(n){return n&&Bs(n.canLoad)}(a)?a.canLoad(e,t):a(e,t);return pr(l)})).pipe(Do(),Gw())}(e,t,r).pipe(_t(i=>i?this.configLoader.loadChildren(e,t).pipe(Ue(o=>{t._loadedRoutes=o.routes,t._loadedInjector=o.injector})):function iL(n){return Wn(Lw(tc,3))}())):K({routes:[],injector:e})}lineralizeSegments(e,t){let r=[],i=t.root;for(;;){if(r=r.concat(i.segments),0===i.numberOfChildren)return K(r);if(i.numberOfChildren>1||!i.children[fe])return Wn(new k(4e3,tc));i=i.children[fe]}}applyRedirectCommands(e,t,r){return this.applyRedirectCreateUrlTree(t,this.urlSerializer.parse(t),e,r)}applyRedirectCreateUrlTree(e,t,r,i){const o=this.createSegmentGroup(e,t.root,r,i);return new ai(o,this.createQueryParams(t.queryParams,this.urlTree.queryParams),t.fragment)}createQueryParams(e,t){const r={};return yt(e,(i,o)=>{if("string"==typeof i&&i.startsWith(":")){const a=i.substring(1);r[o]=t[a]}else r[o]=i}),r}createSegmentGroup(e,t,r,i){const o=this.createSegments(e,t.segments,r,i);let s={};return yt(t.children,(a,l)=>{s[l]=this.createSegmentGroup(e,a,r,i)}),new ge(o,s)}createSegments(e,t,r,i){return t.map(o=>o.path.startsWith(":")?this.findPosParam(e,o,i):this.findOrReturn(o,r))}findPosParam(e,t,r){const i=r[t.path.substring(1)];if(!i)throw new k(4001,tc);return i}findOrReturn(e,t){let r=0;for(const i of t){if(i.path===e.path)return t.splice(r),i;r++}return e}}class lL{}class dL{constructor(e,t,r,i,o,s,a,l){this.injector=e,this.rootComponentType=t,this.config=r,this.urlTree=i,this.url=o,this.paramsInheritanceStrategy=s,this.relativeLinkResolution=a,this.urlSerializer=l}recognize(){const e=Jl(this.urlTree.root,[],[],this.config.filter(t=>void 0===t.redirectTo),this.relativeLinkResolution).segmentGroup;return this.processSegmentGroup(this.injector,this.config,e,fe).pipe(Q(t=>{if(null===t)return null;const r=new Yl([],Object.freeze({}),Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,{},fe,this.rootComponentType,null,this.urlTree.root,-1,{}),i=new mr(r,t),o=new Nw(this.url,i);return this.inheritParamsAndData(o._root),o}))}inheritParamsAndData(e){const t=e.value,r=Rw(t,this.paramsInheritanceStrategy);t.params=Object.freeze(r.params),t.data=Object.freeze(r.data),e.children.forEach(i=>this.inheritParamsAndData(i))}processSegmentGroup(e,t,r,i){return 0===r.segments.length&&r.hasChildren()?this.processChildren(e,t,r):this.processSegment(e,t,r,r.segments,i)}processChildren(e,t,r){return Qe(Object.keys(r.children)).pipe(si(i=>{const o=r.children[i],s=Uw(t,i);return this.processSegmentGroup(e,s,o,i)}),aw((i,o)=>i&&o?(i.push(...o),i):null),LC(i=>null!==i),Hl(null),lw(),Q(i=>{if(null===i)return null;const o=Qw(i);return function hL(n){n.sort((e,t)=>e.value.outlet===fe?-1:t.value.outlet===fe?1:e.value.outlet.localeCompare(t.value.outlet))}(o),o}))}processSegment(e,t,r,i,o){return Qe(t).pipe(si(s=>this.processSegmentAgainstRoute(s._injector??e,s,r,i,o)),Nr(s=>!!s),Rr(s=>{if(s instanceof _o)return Yw(r,i,o)?K([]):K(null);throw s}))}processSegmentAgainstRoute(e,t,r,i,o){if(t.redirectTo||!qw(t,r,i,o))return K(null);let s;if("**"===t.path){const a=i.length>0?dw(i).parameters:{},l=Jw(r)+i.length;s=K({snapshot:new Yl(i,a,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,tD(t),wn(t),t.component??t._loadedComponent??null,t,Xw(r),l,nD(t),l),consumedSegments:[],remainingSegments:[]})}else s=Ww(r,t,i,e).pipe(Q(({matched:a,consumedSegments:l,remainingSegments:c,parameters:u})=>{if(!a)return null;const d=Jw(r)+l.length;return{snapshot:new Yl(l,u,Object.freeze({...this.urlTree.queryParams}),this.urlTree.fragment,tD(t),wn(t),t.component??t._loadedComponent??null,t,Xw(r),d,nD(t),d),consumedSegments:l,remainingSegments:c}}));return s.pipe(ln(a=>{if(null===a)return K(null);const{snapshot:l,consumedSegments:c,remainingSegments:u}=a;e=t._injector??e;const d=t._loadedInjector??e,f=function fL(n){return n.children?n.children:n.loadChildren?n._loadedRoutes:[]}(t),{segmentGroup:g,slicedSegments:v}=Jl(r,c,u,f.filter(A=>void 0===A.redirectTo),this.relativeLinkResolution);if(0===v.length&&g.hasChildren())return this.processChildren(d,f,g).pipe(Q(A=>null===A?null:[new mr(l,A)]));if(0===f.length&&0===v.length)return K([new mr(l,[])]);const w=wn(t)===o;return this.processSegment(d,f,g,v,w?fe:o).pipe(Q(A=>null===A?null:[new mr(l,A)]))}))}}function pL(n){const e=n.value.routeConfig;return e&&""===e.path&&void 0===e.redirectTo}function Qw(n){const e=[],t=new Set;for(const r of n){if(!pL(r)){e.push(r);continue}const i=e.find(o=>r.value.routeConfig===o.value.routeConfig);void 0!==i?(i.children.push(...r.children),t.add(i)):e.push(r)}for(const r of t){const i=Qw(r.children);e.push(new mr(r.value,i))}return e.filter(r=>!t.has(r))}function Xw(n){let e=n;for(;e._sourceSegment;)e=e._sourceSegment;return e}function Jw(n){let e=n,t=e._segmentIndexShift??0;for(;e._sourceSegment;)e=e._sourceSegment,t+=e._segmentIndexShift??0;return t-1}function tD(n){return n.data||{}}function nD(n){return n.resolve||{}}const yf=Symbol("RouteTitle");function rD(n){return"string"==typeof n.title||null===n.title}function bf(n){return ln(e=>{const t=n(e);return t?Qe(t).pipe(Q(()=>e)):K(e)})}class EL extends class DL{shouldDetach(e){return!1}store(e,t){}shouldAttach(e){return!1}retrieve(e){return null}shouldReuseRoute(e,t){return e.routeConfig===t.routeConfig}}{}const Cf=new X("ROUTES");let wf=(()=>{class n{constructor(t,r){this.injector=t,this.compiler=r,this.componentLoaders=new WeakMap,this.childrenLoaders=new WeakMap}loadComponent(t){if(this.componentLoaders.get(t))return this.componentLoaders.get(t);if(t._loadedComponent)return K(t._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(t);const r=pr(t.loadComponent()).pipe(Ue(o=>{this.onLoadEndListener&&this.onLoadEndListener(t),t._loadedComponent=o}),Xh(()=>{this.componentLoaders.delete(t)})),i=new sc(r,()=>new ke).pipe(zs());return this.componentLoaders.set(t,i),i}loadChildren(t,r){if(this.childrenLoaders.get(r))return this.childrenLoaders.get(r);if(r._loadedRoutes)return K({routes:r._loadedRoutes,injector:r._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(r);const o=this.loadModuleFactoryOrRoutes(r.loadChildren).pipe(Q(a=>{this.onLoadEndListener&&this.onLoadEndListener(r);let l,c,u=!1;Array.isArray(a)?c=a:(l=a.create(t).injector,c=uw(l.get(Cf,[],J.Self|J.Optional)));return{routes:c.map(mf),injector:l}}),Xh(()=>{this.childrenLoaders.delete(r)})),s=new sc(o,()=>new ke).pipe(zs());return this.childrenLoaders.set(r,s),s}loadModuleFactoryOrRoutes(t){return pr(t()).pipe(_t(r=>r instanceof av||Array.isArray(r)?K(r):Qe(this.compiler.compileModuleAsync(r))))}}return n.\u0275fac=function(t){return new(t||n)(I(Vt),I(Nd))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();class ML{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,t){return e}}function AL(n){throw n}function OL(n,e,t){return e.parse("/")}const TL={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},IL={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"};let Ot=(()=>{class n{constructor(t,r,i,o,s,a,l){this.rootComponentType=t,this.urlSerializer=r,this.rootContexts=i,this.location=o,this.config=l,this.lastSuccessfulNavigation=null,this.currentNavigation=null,this.disposed=!1,this.navigationId=0,this.currentPageId=0,this.isNgZoneEnabled=!1,this.events=new ke,this.errorHandler=AL,this.malformedUriErrorHandler=OL,this.navigated=!1,this.lastSuccessfulId=-1,this.afterPreactivation=()=>K(void 0),this.urlHandlingStrategy=new ML,this.routeReuseStrategy=new EL,this.onSameUrlNavigation="ignore",this.paramsInheritanceStrategy="emptyOnly",this.urlUpdateStrategy="deferred",this.relativeLinkResolution="corrected",this.canceledNavigationResolution="replace",this.configLoader=s.get(wf),this.configLoader.onLoadEndListener=f=>this.triggerEvent(new f2(f)),this.configLoader.onLoadStartListener=f=>this.triggerEvent(new h2(f)),this.ngModule=s.get(Qr),this.console=s.get(II);const d=s.get(Re);this.isNgZoneEnabled=d instanceof Re&&Re.isInAngularZone(),this.resetConfig(l),this.currentUrlTree=function kF(){return new ai(new ge([],{}),{},null)}(),this.rawUrlTree=this.currentUrlTree,this.browserUrlTree=this.currentUrlTree,this.routerState=Pw(this.currentUrlTree,this.rootComponentType),this.transitions=new Cn({id:0,targetPageId:0,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,extractedUrl:this.urlHandlingStrategy.extract(this.currentUrlTree),urlAfterRedirects:this.urlHandlingStrategy.extract(this.currentUrlTree),rawUrl:this.currentUrlTree,extras:{},resolve:null,reject:null,promise:Promise.resolve(!0),source:"imperative",restoredState:null,currentSnapshot:this.routerState.snapshot,targetSnapshot:null,currentRouterState:this.routerState,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null}),this.navigations=this.setupNavigations(this.transitions),this.processNavigations()}get browserPageId(){return this.location.getState()?.\u0275routerPageId}setupNavigations(t){const r=this.events;return t.pipe(an(i=>0!==i.id),Q(i=>({...i,extractedUrl:this.urlHandlingStrategy.extract(i.rawUrl)})),ln(i=>{let o=!1,s=!1;return K(i).pipe(Ue(a=>{this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?{...this.lastSuccessfulNavigation,previousNavigation:null}:null}}),ln(a=>{const l=this.browserUrlTree.toString(),c=!this.navigated||a.extractedUrl.toString()!==l||l!==this.currentUrlTree.toString();if(("reload"===this.onSameUrlNavigation||c)&&this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return oD(a.source)&&(this.browserUrlTree=a.extractedUrl),K(a).pipe(ln(d=>{const f=this.transitions.getValue();return r.next(new af(d.id,this.serializeUrl(d.extractedUrl),d.source,d.restoredState)),f!==this.transitions.getValue()?xr:Promise.resolve(d)}),function aL(n,e,t,r){return ln(i=>function oL(n,e,t,r,i){return new sL(n,e,t,r,i).apply()}(n,e,t,i.extractedUrl,r).pipe(Q(o=>({...i,urlAfterRedirects:o}))))}(this.ngModule.injector,this.configLoader,this.urlSerializer,this.config),Ue(d=>{this.currentNavigation={...this.currentNavigation,finalUrl:d.urlAfterRedirects},i.urlAfterRedirects=d.urlAfterRedirects}),function mL(n,e,t,r,i,o){return _t(s=>function uL(n,e,t,r,i,o,s="emptyOnly",a="legacy"){return new dL(n,e,t,r,i,s,a,o).recognize().pipe(ln(l=>null===l?function cL(n){return new ve(e=>e.error(n))}(new lL):K(l)))}(n,e,t,s.urlAfterRedirects,r.serialize(s.urlAfterRedirects),r,i,o).pipe(Q(a=>({...s,targetSnapshot:a}))))}(this.ngModule.injector,this.rootComponentType,this.config,this.urlSerializer,this.paramsInheritanceStrategy,this.relativeLinkResolution),Ue(d=>{if(i.targetSnapshot=d.targetSnapshot,"eager"===this.urlUpdateStrategy){if(!d.extras.skipLocationChange){const g=this.urlHandlingStrategy.merge(d.urlAfterRedirects,d.rawUrl);this.setBrowserUrl(g,d)}this.browserUrlTree=d.urlAfterRedirects}const f=new a2(d.id,this.serializeUrl(d.extractedUrl),this.serializeUrl(d.urlAfterRedirects),d.targetSnapshot);r.next(f)}));if(c&&this.rawUrlTree&&this.urlHandlingStrategy.shouldProcessUrl(this.rawUrlTree)){const{id:f,extractedUrl:g,source:v,restoredState:w,extras:A}=a,L=new af(f,this.serializeUrl(g),v,w);r.next(L);const j=Pw(g,this.rootComponentType).snapshot;return K(i={...a,targetSnapshot:j,urlAfterRedirects:g,extras:{...A,skipLocationChange:!1,replaceUrl:!1}})}return this.rawUrlTree=a.rawUrl,a.resolve(null),xr}),Ue(a=>{const l=new l2(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot);this.triggerEvent(l)}),Q(a=>i={...a,guards:P2(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),function $2(n,e){return _t(t=>{const{targetSnapshot:r,currentSnapshot:i,guards:{canActivateChecks:o,canDeactivateChecks:s}}=t;return 0===s.length&&0===o.length?K({...t,guardsResult:!0}):function z2(n,e,t,r){return Qe(n).pipe(_t(i=>function K2(n,e,t,r,i){const o=e&&e.routeConfig?e.routeConfig.canDeactivate:null;return o&&0!==o.length?K(o.map(a=>{const l=Ql(a,e,i);return pr(function H2(n){return n&&Bs(n.canDeactivate)}(l)?l.canDeactivate(n,e,t,r):l(n,e,t,r)).pipe(Nr())})).pipe(Do()):K(!0)}(i.component,i.route,t,e,r)),Nr(i=>!0!==i,!0))}(s,r,i,n).pipe(_t(a=>a&&function F2(n){return"boolean"==typeof n}(a)?function G2(n,e,t,r){return Qe(e).pipe(si(i=>Kh(function q2(n,e){return null!==n&&e&&e(new p2(n)),K(!0)}(i.route.parent,r),function W2(n,e){return null!==n&&e&&e(new m2(n)),K(!0)}(i.route,r),function Z2(n,e,t){const r=e[e.length-1],o=e.slice(0,e.length-1).reverse().map(s=>function R2(n){const e=n.routeConfig?n.routeConfig.canActivateChild:null;return e&&0!==e.length?{node:n,guards:e}:null}(s)).filter(s=>null!==s).map(s=>ow(()=>K(s.guards.map(l=>{const c=Ql(l,s.node,t);return pr(function B2(n){return n&&Bs(n.canActivateChild)}(c)?c.canActivateChild(r,n):c(r,n)).pipe(Nr())})).pipe(Do())));return K(o).pipe(Do())}(n,i.path,t),function Y2(n,e,t){const r=e.routeConfig?e.routeConfig.canActivate:null;if(!r||0===r.length)return K(!0);const i=r.map(o=>ow(()=>{const s=Ql(o,e,t);return pr(function V2(n){return n&&Bs(n.canActivate)}(s)?s.canActivate(e,n):s(e,n)).pipe(Nr())}));return K(i).pipe(Do())}(n,i.route,t))),Nr(i=>!0!==i,!0))}(r,o,n,e):K(a)),Q(a=>({...t,guardsResult:a})))})}(this.ngModule.injector,a=>this.triggerEvent(a)),Ue(a=>{if(i.guardsResult=a.guardsResult,ci(a.guardsResult))throw Fw(0,a.guardsResult);const l=new c2(a.id,this.serializeUrl(a.extractedUrl),this.serializeUrl(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.triggerEvent(l)}),an(a=>!!a.guardsResult||(this.restoreHistory(a),this.cancelNavigationTransition(a,"",3),!1)),bf(a=>{if(a.guards.canActivateChecks.length)return K(a).pipe(Ue(l=>{const c=new u2(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot);this.triggerEvent(c)}),ln(l=>{let c=!1;return K(l).pipe(function _L(n,e){return _t(t=>{const{targetSnapshot:r,guards:{canActivateChecks:i}}=t;if(!i.length)return K(t);let o=0;return Qe(i).pipe(si(s=>function vL(n,e,t,r){const i=n.routeConfig,o=n._resolve;return void 0!==i?.title&&!rD(i)&&(o[yf]=i.title),function yL(n,e,t,r){const i=function bL(n){return[...Object.keys(n),...Object.getOwnPropertySymbols(n)]}(n);if(0===i.length)return K({});const o={};return Qe(i).pipe(_t(s=>function CL(n,e,t,r){const i=Ql(n,e,r);return pr(i.resolve?i.resolve(e,t):i(e,t))}(n[s],e,t,r).pipe(Nr(),Ue(a=>{o[s]=a}))),Qh(1),function AF(n){return e=>e.lift(new OF(n))}(o),Rr(s=>s instanceof _o?xr:Wn(s)))}(o,n,e,r).pipe(Q(s=>(n._resolvedData=s,n.data=Rw(n,t).resolve,i&&rD(i)&&(n.data[yf]=i.title),null)))}(s.route,r,n,e)),Ue(()=>o++),Qh(1),_t(s=>o===i.length?K(t):xr))})}(this.paramsInheritanceStrategy,this.ngModule.injector),Ue({next:()=>c=!0,complete:()=>{c||(this.restoreHistory(l),this.cancelNavigationTransition(l,"",2))}}))}),Ue(l=>{const c=new d2(l.id,this.serializeUrl(l.extractedUrl),this.serializeUrl(l.urlAfterRedirects),l.targetSnapshot);this.triggerEvent(c)}))}),bf(a=>{const l=c=>{const u=[];c.routeConfig?.loadComponent&&!c.routeConfig._loadedComponent&&u.push(this.configLoader.loadComponent(c.routeConfig).pipe(Ue(d=>{c.component=d}),Q(()=>{})));for(const d of c.children)u.push(...l(d));return u};return iw(l(a.targetSnapshot.root)).pipe(Hl(),ri(1))}),bf(()=>this.afterPreactivation()),Q(a=>{const l=function C2(n,e,t){const r=ks(n,e._root,t?t._root:void 0);return new xw(r,e)}(this.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return i={...a,targetRouterState:l}}),Ue(a=>{this.currentUrlTree=a.urlAfterRedirects,this.rawUrlTree=this.urlHandlingStrategy.merge(a.urlAfterRedirects,a.rawUrl),this.routerState=a.targetRouterState,"deferred"===this.urlUpdateStrategy&&(a.extras.skipLocationChange||this.setBrowserUrl(this.rawUrlTree,a),this.browserUrlTree=a.urlAfterRedirects)}),((n,e,t)=>Q(r=>(new x2(e,r.targetRouterState,r.currentRouterState,t).activate(n),r)))(this.rootContexts,this.routeReuseStrategy,a=>this.triggerEvent(a)),Ue({next(){o=!0},complete(){o=!0}}),Xh(()=>{o||s||this.cancelNavigationTransition(i,"",1),this.currentNavigation?.id===i.id&&(this.currentNavigation=null)}),Rr(a=>{if(s=!0,Bw(a)){Vw(a)||(this.navigated=!0,this.restoreHistory(i,!0));const l=new ql(i.id,this.serializeUrl(i.extractedUrl),a.message,a.cancellationCode);if(r.next(l),Vw(a)){const c=this.urlHandlingStrategy.merge(a.url,this.rawUrlTree),u={skipLocationChange:i.extras.skipLocationChange,replaceUrl:"eager"===this.urlUpdateStrategy||oD(i.source)};this.scheduleNavigation(c,"imperative",null,u,{resolve:i.resolve,reject:i.reject,promise:i.promise})}else i.resolve(!1)}else{this.restoreHistory(i,!0);const l=new Ow(i.id,this.serializeUrl(i.extractedUrl),a,i.targetSnapshot??void 0);r.next(l);try{i.resolve(this.errorHandler(a))}catch(c){i.reject(c)}}return xr}))}))}resetRootComponentType(t){this.rootComponentType=t,this.routerState.root.component=this.rootComponentType}setTransition(t){this.transitions.next({...this.transitions.value,...t})}initialNavigation(){this.setUpLocationChangeListener(),0===this.navigationId&&this.navigateByUrl(this.location.path(!0),{replaceUrl:!0})}setUpLocationChangeListener(){this.locationSubscription||(this.locationSubscription=this.location.subscribe(t=>{const r="popstate"===t.type?"popstate":"hashchange";"popstate"===r&&setTimeout(()=>{const i={replaceUrl:!0},o=t.state?.navigationId?t.state:null;if(o){const a={...o};delete a.navigationId,delete a.\u0275routerPageId,0!==Object.keys(a).length&&(i.state=a)}const s=this.parseUrl(t.url);this.scheduleNavigation(s,r,o,i)},0)}))}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.currentNavigation}triggerEvent(t){this.events.next(t)}resetConfig(t){this.config=t.map(mf),this.navigated=!1,this.lastSuccessfulId=-1}ngOnDestroy(){this.dispose()}dispose(){this.transitions.complete(),this.locationSubscription&&(this.locationSubscription.unsubscribe(),this.locationSubscription=void 0),this.disposed=!0}createUrlTree(t,r={}){const{relativeTo:i,queryParams:o,fragment:s,queryParamsHandling:a,preserveFragment:l}=r,c=i||this.routerState.root,u=l?this.currentUrlTree.fragment:s;let d=null;switch(a){case"merge":d={...this.currentUrlTree.queryParams,...o};break;case"preserve":d=this.currentUrlTree.queryParams;break;default:d=o||null}return null!==d&&(d=this.removeEmptyProps(d)),e2(c,this.currentUrlTree,t,d,u??null)}navigateByUrl(t,r={skipLocationChange:!1}){const i=ci(t)?t:this.parseUrl(t),o=this.urlHandlingStrategy.merge(i,this.rawUrlTree);return this.scheduleNavigation(o,"imperative",null,r)}navigate(t,r={skipLocationChange:!1}){return function xL(n){for(let e=0;e{const o=t[i];return null!=o&&(r[i]=o),r},{})}processNavigations(){this.navigations.subscribe(t=>{this.navigated=!0,this.lastSuccessfulId=t.id,this.currentPageId=t.targetPageId,this.events.next(new ui(t.id,this.serializeUrl(t.extractedUrl),this.serializeUrl(this.currentUrlTree))),this.lastSuccessfulNavigation=this.currentNavigation,this.titleStrategy?.updateTitle(this.routerState.snapshot),t.resolve(!0)},t=>{this.console.warn(`Unhandled Navigation Error: ${t}`)})}scheduleNavigation(t,r,i,o,s){if(this.disposed)return Promise.resolve(!1);let a,l,c;s?(a=s.resolve,l=s.reject,c=s.promise):c=new Promise((f,g)=>{a=f,l=g});const u=++this.navigationId;let d;return"computed"===this.canceledNavigationResolution?(0===this.currentPageId&&(i=this.location.getState()),d=i&&i.\u0275routerPageId?i.\u0275routerPageId:o.replaceUrl||o.skipLocationChange?this.browserPageId??0:(this.browserPageId??0)+1):d=0,this.setTransition({id:u,targetPageId:d,source:r,restoredState:i,currentUrlTree:this.currentUrlTree,currentRawUrl:this.rawUrlTree,rawUrl:t,extras:o,resolve:a,reject:l,promise:c,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),c.catch(f=>Promise.reject(f))}setBrowserUrl(t,r){const i=this.urlSerializer.serialize(t),o={...r.extras.state,...this.generateNgRouterState(r.id,r.targetPageId)};this.location.isCurrentPathEqualTo(i)||r.extras.replaceUrl?this.location.replaceState(i,"",o):this.location.go(i,"",o)}restoreHistory(t,r=!1){if("computed"===this.canceledNavigationResolution){const i=this.currentPageId-t.targetPageId;"popstate"!==t.source&&"eager"!==this.urlUpdateStrategy&&this.currentUrlTree!==this.currentNavigation?.finalUrl||0===i?this.currentUrlTree===this.currentNavigation?.finalUrl&&0===i&&(this.resetState(t),this.browserUrlTree=t.currentUrlTree,this.resetUrlToCurrentUrlTree()):this.location.historyGo(i)}else"replace"===this.canceledNavigationResolution&&(r&&this.resetState(t),this.resetUrlToCurrentUrlTree())}resetState(t){this.routerState=t.currentRouterState,this.currentUrlTree=t.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,t.rawUrl)}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.rawUrlTree),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}cancelNavigationTransition(t,r,i){const o=new ql(t.id,this.serializeUrl(t.extractedUrl),r,i);this.triggerEvent(o),t.resolve(!1)}generateNgRouterState(t,r){return"computed"===this.canceledNavigationResolution?{navigationId:t,\u0275routerPageId:r}:{navigationId:t}}}return n.\u0275fac=function(t){Pu()},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();function oD(n){return"imperative"!==n}let Df=(()=>{class n{constructor(t,r,i,o,s){this.router=t,this.route=r,this.tabIndexAttribute=i,this.renderer=o,this.el=s,this.commands=null,this.onChanges=new ke,this.setTabIndexIfNotOnNativeEl("0")}setTabIndexIfNotOnNativeEl(t){if(null!=this.tabIndexAttribute)return;const r=this.renderer,i=this.el.nativeElement;null!==t?r.setAttribute(i,"tabindex",t):r.removeAttribute(i,"tabindex")}ngOnChanges(t){this.onChanges.next(this)}set routerLink(t){null!=t?(this.commands=Array.isArray(t)?t:[t],this.setTabIndexIfNotOnNativeEl("0")):(this.commands=null,this.setTabIndexIfNotOnNativeEl(null))}onClick(){if(null===this.urlTree)return!0;const t={skipLocationChange:ur(this.skipLocationChange),replaceUrl:ur(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,t),!0}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:ur(this.preserveFragment)})}}return n.\u0275fac=function(t){return new(t||n)(E(Ot),E(wo),Ii("tabindex"),E(nr),E(dt))},n.\u0275dir=Z({type:n,selectors:[["","routerLink","",5,"a",5,"area"]],hostBindings:function(t,r){1&t&&G("click",function(){return r.onClick()})},inputs:{queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo",routerLink:"routerLink"},features:[Nt]}),n})(),oc=(()=>{class n{constructor(t,r,i){this.router=t,this.route=r,this.locationStrategy=i,this.commands=null,this.href=null,this.onChanges=new ke,this.subscription=t.events.subscribe(o=>{o instanceof ui&&this.updateTargetUrlAndHref()})}set routerLink(t){this.commands=null!=t?Array.isArray(t)?t:[t]:null}ngOnChanges(t){this.updateTargetUrlAndHref(),this.onChanges.next(this)}ngOnDestroy(){this.subscription.unsubscribe()}onClick(t,r,i,o,s){if(0!==t||r||i||o||s||"string"==typeof this.target&&"_self"!=this.target||null===this.urlTree)return!0;const a={skipLocationChange:ur(this.skipLocationChange),replaceUrl:ur(this.replaceUrl),state:this.state};return this.router.navigateByUrl(this.urlTree,a),!1}updateTargetUrlAndHref(){this.href=null!==this.urlTree?this.locationStrategy.prepareExternalUrl(this.router.serializeUrl(this.urlTree)):null}get urlTree(){return null===this.commands?null:this.router.createUrlTree(this.commands,{relativeTo:void 0!==this.relativeTo?this.relativeTo:this.route,queryParams:this.queryParams,fragment:this.fragment,queryParamsHandling:this.queryParamsHandling,preserveFragment:ur(this.preserveFragment)})}}return n.\u0275fac=function(t){return new(t||n)(E(Ot),E(wo),E(ei))},n.\u0275dir=Z({type:n,selectors:[["a","routerLink",""],["area","routerLink",""]],hostVars:2,hostBindings:function(t,r){1&t&&G("click",function(o){return r.onClick(o.button,o.ctrlKey,o.shiftKey,o.altKey,o.metaKey)}),2&t&&St("target",r.target)("href",r.href,Xc)},inputs:{target:"target",queryParams:"queryParams",fragment:"fragment",queryParamsHandling:"queryParamsHandling",preserveFragment:"preserveFragment",skipLocationChange:"skipLocationChange",replaceUrl:"replaceUrl",state:"state",relativeTo:"relativeTo",routerLink:"routerLink"},features:[Nt]}),n})(),sD=(()=>{class n{constructor(t,r,i,o,s,a){this.router=t,this.element=r,this.renderer=i,this.cdr=o,this.link=s,this.linkWithHref=a,this.classes=[],this.isActive=!1,this.routerLinkActiveOptions={exact:!1},this.isActiveChange=new he,this.routerEventsSubscription=t.events.subscribe(l=>{l instanceof ui&&this.update()})}ngAfterContentInit(){K(this.links.changes,this.linksWithHrefs.changes,K(null)).pipe(yi()).subscribe(t=>{this.update(),this.subscribeToEachLinkOnChanges()})}subscribeToEachLinkOnChanges(){this.linkInputChangesSubscription?.unsubscribe();const t=[...this.links.toArray(),...this.linksWithHrefs.toArray(),this.link,this.linkWithHref].filter(r=>!!r).map(r=>r.onChanges);this.linkInputChangesSubscription=Qe(t).pipe(yi()).subscribe(r=>{this.isActive!==this.isLinkActive(this.router)(r)&&this.update()})}set routerLinkActive(t){const r=Array.isArray(t)?t:t.split(" ");this.classes=r.filter(i=>!!i)}ngOnChanges(t){this.update()}ngOnDestroy(){this.routerEventsSubscription.unsubscribe(),this.linkInputChangesSubscription?.unsubscribe()}update(){!this.links||!this.linksWithHrefs||!this.router.navigated||Promise.resolve().then(()=>{const t=this.hasActiveLinks();this.isActive!==t&&(this.isActive=t,this.cdr.markForCheck(),this.classes.forEach(r=>{t?this.renderer.addClass(this.element.nativeElement,r):this.renderer.removeClass(this.element.nativeElement,r)}),t&&void 0!==this.ariaCurrentWhenActive?this.renderer.setAttribute(this.element.nativeElement,"aria-current",this.ariaCurrentWhenActive.toString()):this.renderer.removeAttribute(this.element.nativeElement,"aria-current"),this.isActiveChange.emit(t))})}isLinkActive(t){const r=function PL(n){return!!n.paths}(this.routerLinkActiveOptions)?this.routerLinkActiveOptions:this.routerLinkActiveOptions.exact||!1;return i=>!!i.urlTree&&t.isActive(i.urlTree,r)}hasActiveLinks(){const t=this.isLinkActive(this.router);return this.link&&t(this.link)||this.linkWithHref&&t(this.linkWithHref)||this.links.some(t)||this.linksWithHrefs.some(t)}}return n.\u0275fac=function(t){return new(t||n)(E(Ot),E(dt),E(nr),E(gs),E(Df,8),E(oc,8))},n.\u0275dir=Z({type:n,selectors:[["","routerLinkActive",""]],contentQueries:function(t,r,i){if(1&t&&(Od(i,Df,5),Od(i,oc,5)),2&t){let o;sr(o=ar())&&(r.links=o),sr(o=ar())&&(r.linksWithHrefs=o)}},inputs:{routerLinkActiveOptions:"routerLinkActiveOptions",ariaCurrentWhenActive:"ariaCurrentWhenActive",routerLinkActive:"routerLinkActive"},outputs:{isActiveChange:"isActiveChange"},exportAs:["routerLinkActive"],features:[Nt]}),n})(),aD=(()=>{class n{buildTitle(t){let r,i=t.root;for(;void 0!==i;)r=this.getResolvedTitleForRoute(i)??r,i=i.children.find(o=>o.outlet===fe);return r}getResolvedTitleForRoute(t){return t.data[yf]}}return n.\u0275fac=function(t){return new(t||n)},n.\u0275prov=q({token:n,factory:function(){return tr(RL)},providedIn:"root"}),n})(),RL=(()=>{class n extends aD{constructor(t){super(),this.title=t}updateTitle(t){const r=this.buildTitle(t);void 0!==r&&this.title.setTitle(r)}}return n.\u0275fac=function(t){return new(t||n)(I(db))},n.\u0275prov=q({token:n,factory:n.\u0275fac,providedIn:"root"}),n})();class lD{}let cD=(()=>{class n{constructor(t,r,i,o,s){this.router=t,this.injector=i,this.preloadingStrategy=o,this.loader=s}setUpPreloading(){this.subscription=this.router.events.pipe(an(t=>t instanceof ui),si(()=>this.preload())).subscribe(()=>{})}preload(){return this.processRoutes(this.injector,this.router.config)}ngOnDestroy(){this.subscription&&this.subscription.unsubscribe()}processRoutes(t,r){const i=[];for(const o of r){o.providers&&!o._injector&&(o._injector=ja(o.providers,t,`Route: ${o.path}`));const s=o._injector??t,a=o._loadedInjector??s;o.loadChildren&&!o._loadedRoutes||o.loadComponent&&!o._loadedComponent?i.push(this.preloadConfig(s,o)):(o.children||o._loadedRoutes)&&i.push(this.processRoutes(a,o.children??o._loadedRoutes))}return Qe(i).pipe(yi())}preloadConfig(t,r){return this.preloadingStrategy.preload(r,()=>{let i;i=r.loadChildren&&void 0===r.canLoad?this.loader.loadChildren(t,r):K(null);const o=i.pipe(_t(s=>null===s?K(void 0):(r._loadedRoutes=s.routes,r._loadedInjector=s.injector,this.processRoutes(s.injector??t,s.routes))));return r.loadComponent&&!r._loadedComponent?Qe([o,this.loader.loadComponent(r)]).pipe(yi()):o})}}return n.\u0275fac=function(t){return new(t||n)(I(Ot),I(Nd),I(Er),I(lD),I(wf))},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const uD=new X("");let NL=(()=>{class n{constructor(t,r,i={}){this.router=t,this.viewportScroller=r,this.options=i,this.lastId=0,this.lastSource="imperative",this.restoredId=0,this.store={},i.scrollPositionRestoration=i.scrollPositionRestoration||"disabled",i.anchorScrolling=i.anchorScrolling||"disabled"}init(){"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.setHistoryScrollRestoration("manual"),this.routerEventsSubscription=this.createScrollEvents(),this.scrollEventsSubscription=this.consumeScrollEvents()}createScrollEvents(){return this.router.events.subscribe(t=>{t instanceof af?(this.store[this.lastId]=this.viewportScroller.getScrollPosition(),this.lastSource=t.navigationTrigger,this.restoredId=t.restoredState?t.restoredState.navigationId:0):t instanceof ui&&(this.lastId=t.id,this.scheduleScrollEvent(t,this.router.parseUrl(t.urlAfterRedirects).fragment))})}consumeScrollEvents(){return this.router.events.subscribe(t=>{t instanceof Tw&&(t.position?"top"===this.options.scrollPositionRestoration?this.viewportScroller.scrollToPosition([0,0]):"enabled"===this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition(t.position):t.anchor&&"enabled"===this.options.anchorScrolling?this.viewportScroller.scrollToAnchor(t.anchor):"disabled"!==this.options.scrollPositionRestoration&&this.viewportScroller.scrollToPosition([0,0]))})}scheduleScrollEvent(t,r){this.router.triggerEvent(new Tw(t,"popstate"===this.lastSource?this.store[this.restoredId]:null,r))}ngOnDestroy(){this.routerEventsSubscription&&this.routerEventsSubscription.unsubscribe(),this.scrollEventsSubscription&&this.scrollEventsSubscription.unsubscribe()}}return n.\u0275fac=function(t){Pu()},n.\u0275prov=q({token:n,factory:n.\u0275fac}),n})();const Ef=new X("ROUTER_CONFIGURATION",{providedIn:"root",factory:()=>({})}),dD=new X("ROUTER_FORROOT_GUARD"),hD=new X(""),kL=[rl,{provide:_w,useClass:vw},{provide:Ot,useFactory:function jL(n,e,t,r,i,o,s,a={},l,c){const u=new Ot(null,n,e,t,r,i,uw(o));return l&&(u.urlHandlingStrategy=l),c&&(u.routeReuseStrategy=c),u.titleStrategy=s,function UL(n,e){n.errorHandler&&(e.errorHandler=n.errorHandler),n.malformedUriErrorHandler&&(e.malformedUriErrorHandler=n.malformedUriErrorHandler),n.onSameUrlNavigation&&(e.onSameUrlNavigation=n.onSameUrlNavigation),n.paramsInheritanceStrategy&&(e.paramsInheritanceStrategy=n.paramsInheritanceStrategy),n.relativeLinkResolution&&(e.relativeLinkResolution=n.relativeLinkResolution),n.urlUpdateStrategy&&(e.urlUpdateStrategy=n.urlUpdateStrategy),n.canceledNavigationResolution&&(e.canceledNavigationResolution=n.canceledNavigationResolution)}(a,u),u},deps:[_w,Fs,rl,Vt,Nd,Cf,aD,Ef,[class SL{},new Ur],[class wL{},new Ur]]},Fs,{provide:wo,useFactory:function $L(n){return n.routerState.root},deps:[Ot]},wf];function FL(){return new ry("Router",Ot)}let fD=(()=>{class n{constructor(t,r){}static forRoot(t,r){return{ngModule:n,providers:[kL,[],pD(t),{provide:dD,useFactory:HL,deps:[[Ot,new Ur,new $o]]},{provide:Ef,useValue:r||{}},r?.useHash?{provide:ei,useClass:b1}:{provide:ei,useClass:Ay},{provide:uD,useFactory:()=>{const n=tr(Ot),e=tr(Vx),t=tr(Ef);return t.scrollOffset&&e.setOffset(t.scrollOffset),new NL(n,e,t)}},r?.preloadingStrategy?KL(r.preloadingStrategy):[],{provide:ry,multi:!0,useFactory:FL},r?.initialNavigation?GL(r):[],[{provide:gD,useFactory:zL},{provide:Kv,multi:!0,useExisting:gD}]]}}static forChild(t){return{ngModule:n,providers:[pD(t)]}}}return n.\u0275fac=function(t){return new(t||n)(I(dD,8),I(Ot,8))},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({}),n})();function HL(n){return"guarded"}function pD(n){return[{provide:WE,multi:!0,useValue:n},{provide:Cf,multi:!0,useValue:n}]}function zL(){const n=tr(Vt);return e=>{const t=n.get(ps);if(e!==t.components[0])return;const r=n.get(Ot),i=n.get(mD);null===n.get(Sf,null,J.Optional)&&r.initialNavigation(),n.get(hD,null,J.Optional)?.setUpPreloading(),n.get(uD,null,J.Optional)?.init(),r.resetRootComponentType(t.componentTypes[0]),i.next(),i.complete()}}const gD=new X("");function GL(n){return["disabled"===n.initialNavigation?[{provide:qa,multi:!0,useFactory:()=>{const n=tr(Ot);return()=>{n.setUpLocationChangeListener()}}},{provide:Sf,useValue:"disabled"}]:[],"enabledBlocking"===n.initialNavigation?[{provide:Sf,useValue:"enabledBlocking"},{provide:qa,multi:!0,deps:[Vt],useFactory:n=>{const e=n.get(_1,Promise.resolve(null));let t=!1;return()=>e.then(()=>new Promise(i=>{const o=n.get(Ot),s=n.get(mD);(function r(i){n.get(Ot).events.pipe(an(s=>s instanceof ui||s instanceof ql||s instanceof Ow),Q(s=>s instanceof ui||s instanceof ql&&(0===s.code||1===s.code)&&null),an(s=>null!==s),ri(1)).subscribe(()=>{i()})})(()=>{i(!0),t=!0}),o.afterPreactivation=()=>(i(!0),t||s.closed?K(void 0):s),o.initialNavigation()}))}}]:[]]}const mD=new X("",{factory:()=>new ke}),Sf=new X("");function KL(n){return[cD,{provide:hD,useExisting:cD},{provide:lD,useExisting:n}]}let QL=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275cmp=Fr({type:n,selectors:[["app-root"]],decls:11,vars:0,consts:[["href","https://github.com/Harvest-Dev/ng-select2/tree/master/src","target","_blank"],["routerLink","/examples","routerLinkActive","active"],["routerLink","/generator","routerLinkActive","active"]],template:function(t,r){1&t&&(y(0,"a",0),C(1,"the source code of the demo"),_(),y(2,"nav")(3,"ul")(4,"li")(5,"a",1),C(6,"Exemples"),_()(),y(7,"li")(8,"a",2),C(9,"Code generator"),_()()()(),ie(10,"router-outlet"))},dependencies:[pf,oc,sD],styles:[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!\n Theme: GitHub\n Description: Light theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Outdated base version: https://github.com/primer/github-syntax-light\n Current colors taken from GitHub's CSS\n*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}:root{--select2-label-text-color: #000;--select2-required-color: red;--select2-selection-border-radius: 4px;--select2-selection-background: #fff;--select2-selection-disabled-background: #eee;--select2-selection-border-color: #aaa;--select2-selection-focus-border-color: #000;--select2-selection-text-color: #444;--select2-selection-choice-background: #e4e4e4;--select2-selection-choice-text-color: #000;--select2-selection-choice-border-color: #aaa;--select2-selection-choice-close-color: #999;--select2-selection-choice-hover-close-color: #333;--select2-placeholder-color: #999;--select2-placeholder-overflow: ellipsis;--select2-no-result-color: #888;--select2-no-result-font-style: italic;--select2-too-much-result-color: #888;--select2-too-much-result-style: italic;--select2-reset-color: #999;--select2-arrow-color: #888;--select2-dropdown-background: #fff;--select2-dropdown-border-color: #aaa;--select2-overlay-backdrop: transparent;--select2-search-border-color: #aaa;--select2-search-background: #fff;--select2-search-border-radius: 0px;--select2-option-text-color: #000;--select2-option-disabled-text-color: #999;--select2-option-disabled-background: transparent;--select2-option-selected-text-color: #000;--select2-option-selected-background: #ddd;--select2-option-highlighted-text-color: #fff;--select2-option-highlighted-background: #5897fb;--select2-option-group-text-color: gray;--select2-option-group-background: transparent;--select2-hint-text-color: #888;--select2-material-underline: #ddd;--select2-material-underline-active: #5a419e;--select2-material-underline-disabled: linear-gradient( to right, rgba(0, 0, 0, .26) 0, rgba(0, 0, 0, .26) 33%, transparent 0 );--select2-material-underline-invalid: red;--select2-material-placeholder-color: rgba(0, 0, 0, .38);--select2-material-selection-background: #ddd;--select2-material-option-selected-background: rgba(0, 0, 0, .04);--select2-material-option-highlighted-text-color: #000;--select2-material-option-selected-text-color: #ff5722}nav ul{display:block}nav li{display:inline-block;padding:0 15px}\n"],encapsulation:2}),n})();const js=[{label:"Alaskan/Hawaiian Time Zone",options:[{value:"AK",label:"Alaska"},{value:"HI",label:"Hawaii",disabled:!0}]},{label:"Pacific Time Zone",options:[{value:"CA",label:"California"},{value:"NV",label:"Nevada"},{value:"OR",label:"Oregon"},{value:"WA",label:"Washington"}]},{label:"Mountain Time Zone",options:[{value:"AZ",label:"Arizona"},{value:"CO",label:"Colorado"},{value:"ID",label:"Idaho"},{value:"MT",label:"Montana"},{value:"NE",label:"Nebraska"},{value:"NM",label:"New Mexico"},{value:"ND",label:"North Dakota"},{value:"UT",label:"Utah"},{value:"WY",label:"Wyoming"}]},{label:"Central Time Zone",options:[{value:"AL",label:"Alabama"},{value:"AR",label:"Arkansas"},{value:"IL",label:"Illinois"},{value:"IA",label:"Iowa"},{value:"KS",label:"Kansas"},{value:"KY",label:"Kentucky"},{value:"LA",label:"Louisiana"},{value:"MN",label:"Minnesota"},{value:"MS",label:"Mississippi"},{value:"MO",label:"Missouri"},{value:"OK",label:"Oklahoma"},{value:"SD",label:"South Dakota"},{value:"TX",label:"Texas"},{value:"TN",label:"Tennessee"},{value:"WI",label:"Wisconsin"}]},{label:"Eastern Time Zone",options:[{value:"CT",label:"Connecticut"},{value:"DE",label:"Delaware"},{value:"FL",label:"Florida"},{value:"GA",label:"Georgia"},{value:"IN",label:"Indiana"},{value:"ME",label:"Maine"},{value:"MD",label:"Maryland"},{value:"MA",label:"Massachusetts"},{value:"MI",label:"Michigan"},{value:"NH",label:"New Hampshire"},{value:"NJ",label:"New Jersey"},{value:"NY",label:"New York"},{value:"NC",label:"North Carolina"},{value:"OH",label:"Ohio"},{value:"PA",label:"Pennsylvania"},{value:"RI",label:"Rhode Island"},{value:"SC",label:"South Carolina"},{value:"VT",label:"Vermont"},{value:"VA",label:"Virginia"},{value:"WV",label:"West Virginia"}]}],Eo=[{value:"AK",label:"Alaska"},{value:"HI",label:"Hawaii",disabled:!0},{value:"CA",label:"California"},{value:"NV",label:"Nevada"},{value:"OR",label:"Oregon"},{value:"WA",label:"Washington"},{value:"AZ",label:"Arizona"},{value:"CO",label:"Colorado"},{value:"ID",label:"Idaho"},{value:"MT",label:"Montana"},{value:"NE",label:"Nebraska"},{value:"NM",label:"New Mexico"},{value:"ND",label:"North Dakota"},{value:"UT",label:"Utah"},{value:"WY",label:"Wyoming"},{value:"AL",label:"Alabama"},{value:"AR",label:"Arkansas"},{value:"IL",label:"Illinois"},{value:"IA",label:"Iowa"},{value:"KS",label:"Kansas"},{value:"KY",label:"Kentucky"},{value:"LA",label:"Louisiana"},{value:"MN",label:"Minnesota"},{value:"MS",label:"Mississippi"},{value:"MO",label:"Missouri"},{value:"OK",label:"Oklahoma"},{value:"SD",label:"South Dakota"},{value:"TX",label:"Texas"},{value:"TN",label:"Tennessee"},{value:"WI",label:"Wisconsin"},{value:"CT",label:"Connecticut"},{value:"DE",label:"Delaware"},{value:"FL",label:"Florida"},{value:"GA",label:"Georgia"},{value:"IN",label:"Indiana"},{value:"ME",label:"Maine"},{value:"MD",label:"Maryland"},{value:"MA",label:"Massachusetts"},{value:"MI",label:"Michigan"},{value:"NH",label:"New Hampshire"},{value:"NJ",label:"New Jersey"},{value:"NY",label:"New York"},{value:"NC",label:"North Carolina"},{value:"OH",label:"Ohio"},{value:"PA",label:"Pennsylvania"},{value:"RI",label:"Rhode Island"},{value:"SC",label:"South Carolina"},{value:"VT",label:"Vermont"},{value:"VA",label:"Virginia",disabled:!0},{value:"WV",label:"West Virginia"}],Mf=[{value:"foo",label:"foo"},{value:"bar",label:"bar"},{value:"baz",label:"baz"}],XL=[{value:0,label:"0"},{value:1,label:"1"},{value:2,label:"2"},{value:3,label:"3"},{value:4,label:"4"},{value:5,label:"5"},{value:6,label:"6"}],JL=[{value:"foo1",label:"foo1"},{value:"foo2",label:"foo2"},{value:"foo3",label:"foo3"},{value:"foo4",label:"foo4"},{value:"foo5",label:"foo5"},{value:"foo6",label:"foo6"}],eV=[{label:"Mainland region",options:[{value:"FR-ARA",label:"Auvergne-Rh\xf4ne-Alpes"},{value:"FR-BFC",label:"Bourgogne-Franche-Comt\xe9"},{value:"FR-BRE",label:"Bretagne"},{value:"FR-CVL",label:"Centre-Val de Loire"},{value:"FR-COR",label:"Corse"},{value:"FR-GES",label:"Grand Est"},{value:"FR-HDF",label:"Hauts-de-France"},{value:"FR-IDF",label:"\xcele-de-France"},{value:"FR-NOR",label:"Normandie"},{value:"FR-NAQ",label:"Nouvelle-Aquitaine"},{value:"FR-OCC",label:"Occitanie"},{value:"FR-PDL",label:"Pays de la Loire"},{value:"FR-PAC",label:"Provence-Alpes-C\xf4te d'Azur"}]},{label:"Overseas region",options:[{value:"FR-GP",label:"Guadeloupe"},{value:"FR-MQ",label:"Martinique"},{value:"FR-GF",label:"Guyane"},{value:"FR-RE",label:"La R\xe9union"},{value:"FR-YT",label:"Mayotte"}]}],Af=[{value:"foo1",label:"foo1"},{value:"foo2",label:"foo2"},{value:"foo3",label:"foo3"},{value:"foo4",label:"foo4"},{value:"foo5",label:"foo5"},{value:"foo6",label:"foo6"},{value:"foo7",label:"foo7"},{value:"foo8",label:"foo8"},{value:"foo9",label:"foo9",hide:!0}],tV=[{value:!0,label:"true"},{value:!1,label:"false"}],nV=[{value:"fr",label:'
\n
France
\n
Europe
\n
'},{value:"sp",label:'
\n
Spain
\n
Europe
\n
'},{value:"ch",label:'
\n
China
\n
Asia
\n
'}],rV=[{value:"heliotrope",label:"Heliotrope",classes:"white flower",id:"option-heliotrope"},{value:"hibiscus",label:"Hibiscus",classes:"red flower",id:"option-hibiscus"},{value:"lily",label:"Lily",classes:"white flower",id:"option-lily"},{value:"marigold",label:"Marigold",classes:"red flower",id:"option-marigold"},{value:"petunia",label:"Petunia",classes:"white flower",id:"option-petunia"},{value:"sunflower",label:"Sunflower",classes:"yellow flower",id:"option-sunflower"}],_D=[{value:"heliotrope",label:"Heliotrope",data:{color:"white",name:"Heliotrope"},templateId:"template1",id:"option-heliotrope"},{value:"hibiscus",label:"Hibiscus",data:{color:"red",name:"Hibiscus"},templateId:"template1",id:"option-hibiscus"},{value:"lily",label:"Lily",data:{color:"white",name:"Lily"},templateId:"template2",id:"option-lily"},{value:"marigold",label:"Marigold",data:{color:"red",name:"Marigold"},templateId:"template2",id:"option-marigold"},{value:"petunia",label:"Petunia",data:{color:"white",name:"Petunia"},templateId:"template3",id:"option-petunia"},{value:"sunflower",label:"Sunflower",data:{color:"yellow",name:"Sunflower"},templateId:"template3",id:"option-sunflower"}],vD=[{label:"Red",data:{name:"(Red)"},options:[{value:"hibiscus",label:"Hibiscus",data:{color:"red",name:"Hibiscus"},templateId:"template1",id:"option-hibiscus"},{value:"marigold",label:"Marigold",data:{color:"red",name:"Marigold"},templateId:"template2",id:"option-marigold"}]},{label:"Yellow",data:{name:"(Yellow)"},options:[{value:"sunflower",label:"Sunflower",data:{color:"yellow",name:"Sunflower"},templateId:"template3",id:"option-sunflower"}]},{label:"White",data:{name:"(White)"},options:[{value:"heliotrope",label:"Heliotrope",data:{color:"white",name:"Heliotrope"},templateId:"template1",id:"option-heliotrope"},{value:"lily",label:"Lily",data:{color:"white",name:"Lily"},templateId:"template2",id:"option-lily"},{value:"petunia",label:"Petunia",data:{color:"white",name:"Petunia"},templateId:"template3",id:"option-petunia"}]}];let yD=[];for(let n=1;n<=50;n++)yD.push({value:n,label:">"+n});let bD=[];for(let n=1;n<=200;n++)bD.push({value:n,label:"item n\xb0 "+n});let CD=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275dir=Z({type:n,selectors:[["select2-hint"]]}),n})(),wD=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275dir=Z({type:n,selectors:[["select2-label"]]}),n})();function iV(n,e){if(1&n&&(y(0,"strong"),C(1),_(),C(2)),2&n){const t=e.data;M(1),_n(null==t?null:t.color),M(1),_e(": ",null==t?null:t.name,"")}}function oV(n,e){if(1&n&&(y(0,"strong"),C(1),_(),C(2)),2&n){const t=e.data;M(1),_n(null==t?null:t.color),M(1),_e(": ",null==t?null:t.name,"")}}function sV(n,e){if(1&n&&(y(0,"strong"),C(1),_()),2&n){const t=e.label;M(1),_e("(",t,")")}}function aV(n,e){if(1&n&&(y(0,"span"),C(1),_()),2&n){const t=e.data;ka("background",null==t?null:t.color),M(1),_n(null==t?null:t.name)}}function lV(n,e){if(1&n&&(y(0,"strong"),C(1),_(),C(2)),2&n){const t=e.data;M(1),_n(null==t?null:t.color),M(1),_e(": ",null==t?null:t.name,"")}}function cV(n,e){1&n&&(C(0),Ua(1,"json")),2&n&&_n($a(1,1,e.data))}const uV=function(n,e){return{option:n,group:e}},dV=function(n,e,t){return{template1:n,template2:e,template3:t}};let DD=(()=>{class n{constructor(t){this.fb=t,this.data1=js,this.data2=Eo,this.data3=Mf,this.data4=JSON.parse(JSON.stringify(Mf)),this.data5=XL,this.data6=JL,this.data7=JSON.parse(JSON.stringify(Mf)),this.data8=[],this.data9=JSON.parse(JSON.stringify(js)),this.data10=JSON.parse(JSON.stringify(js)),this.data11=JSON.parse(JSON.stringify(js)),this.data12=JSON.parse(JSON.stringify(js)),this.data13=tV,this.data15=Eo,this.data16=Eo,this.data17=nV,this.data18=eV,this.data19=Af,this.data20=JSON.parse(JSON.stringify(Af)),this.data21=JSON.parse(JSON.stringify(Af)),this.data22=rV,this.data23=_D,this.data24=vD,this.data25=JSON.parse(JSON.stringify(_D)),this.data26=yD,this.data28=bD,this.minCountForSearch=1/0,this.value1="CA",this.value2="CA",this.value3="foo",this.value4="bar",this.value5=0,this.value6="foo3",this.value7="",this.value8="",this.value9=[],this.value10=[],this.value11="CA",this.value12="CA",this.value13=!0,this.value15="",this.value16="",this.value17="",this.value18="",this.value19="",this.value20="",this.value21="foo6",this.value22="",this.value23="",this.value24="",this.value25="",this.value26="",this.value28="",this.limitSelection=0,this.overlay=!1,this.fg=new LP({state:new ye}),this.ctrlForm=this.fb.group({test11:new ye(null,vb.required)}),this.ctrlForm2=this.fb.group({test5:new ye(0,vb.required)}),this.fg.patchValue(this.formData())}addItem(){const t=this.data6.length+1;this.data6.push({value:"foo"+t,label:"foo"+t})}removeItem(){this.data6.pop()}open(t,r){console.log(t,r)}close(t,r){console.log(t,r)}focus(t,r){console.log(t,r)}blur(t,r){console.log(t,r)}change(t,r){console.log(t,r)}search(t,r){console.log(t,r)}open8(){this.data8=JSON.parse(JSON.stringify(Eo))}close8(){alert("close")}search8(t){this.data8=t?JSON.parse(JSON.stringify(Eo)).filter(r=>r.label.toLowerCase().indexOf(t.toLowerCase())>-1):JSON.parse(JSON.stringify(Eo))}reset11(){const t=this.ctrlForm.get("test11");t&&t.reset()}change11(){const t=this.ctrlForm.get("test11");t&&t.setValue("UT")}scroll26(t){if(console.log("scroll26",t),"down"===t.way&&!t.search){const r=this.data26.length;for(let i=1+r;i<=50+r;i++)this.data26.push({value:i,label:">"+i})}}update(t,r){this[t]=r.value}resetForm(){this.fg.reset(this.formData())}print(){console.log("FormControl",this.fg.value)}formData(){return{state:["CA","NV"]}}}return n.\u0275fac=function(t){return new(t||n)(E(CC))},n.\u0275cmp=Fr({type:n,selectors:[["app-root"]],decls:147,vars:131,consts:[["for","disabled"],["type","checkbox",3,"ngModel","ngModelChange"],[2,"width","500px"],["resettable","","id","selec2-1",3,"overlay","data","value","update","change","blur","focus","open","close","search"],["id","selec2-2",3,"overlay","data","value","update"],["id","selec2-3",3,"overlay","data","value","update"],["id","selec2-4",3,"overlay","data","value","disabled"],[3,"formGroup"],["formControlName","test5","id","selec2-5",3,"overlay","data","minCountForSearch","update"],["size","3","value","7"],["limit",""],["status",""],["selected",""],["type","button",3,"click"],["id","selec2-6",3,"overlay","data","value","minCountForSearch","displaySearchStatus","update"],["placeholder","select an item","resettable","","id","selec2-7",3,"overlay","data","update"],["customSearchEnabled","true","listPosition","auto","id","selec2-8",3,"overlay","data","open","close","search","update"],["type","number",3,"ngModel","ngModelChange"],["multiple","true","id","selec2-9",3,"overlay","data","value","limitSelection","update","blur","focus","open","close","search"],["multiple","true","hideSelectedItems","true","id","selec2-10",3,"overlay","data","value","update"],["formControlName","test11","placeholder","Select a state","styleMode","material","id","selec2-11",3,"overlay","ngModel","data","ngModelChange"],[3,"click"],["styleMode","material","id","selec2-12",3,"overlay","data","value","update"],["id","selec2-13",3,"overlay","data","value","update"],["multiple","true","id","selec2-10","formControlName","state",3,"overlay","data"],["id","selec2-15",3,"overlay","data","value","update"],["required","","id","selec2-16",3,"overlay","data","value","update"],["id","select2-17",3,"overlay","data","value","update"],["minCharForSearch","3","id","selec2-18",3,"overlay","data","value","update"],["listPosition","above","id","selec2-19",3,"overlay","data","value","update"],[1,"noStyle"],["listPosition","above","styleMode","noStyle","id","selec2-20",3,"overlay","data","value","update"],["listPosition","above","id","selec2-21",3,"overlay","data","value","update"],["listPosition","auto","id","selec2-22",1,"flower-list",3,"overlay","data","value","update"],["listPosition","above","id","selec2-23",1,"flower-list",3,"overlay","data","value","templates","update"],["template",""],["listPosition","above","id","selec2-24",1,"flower-list",3,"overlay","data","value","templates","update"],["templateOption",""],["templateGroup",""],["listPosition","above","id","selec2-25",1,"flower-list",3,"overlay","data","value","templates","update"],["template1",""],["template2",""],["template3",""],["listPosition","above","infiniteScroll","","infiniteScrollDistance","1.5","infiniteScrollThrottle","150","id","selec2-26",3,"overlay","data","value","update","scroll"],["listPosition","auto","id","selec2-27",3,"overlay","data","value","update"],["listPosition","auto","id","selec2-28","maxResults","50","maxResultsMessage","Too much results in this list.",3,"overlay","data","value"]],template:function(t,r){if(1&t&&(y(0,"h2"),C(1,"Examples"),_(),y(2,"label",0),C(3,"overlay : "),_(),y(4,"input",1),G("ngModelChange",function(o){return r.overlay=o}),_(),y(5,"div",2)(6,"h3"),C(7),_(),y(8,"select2",3),G("update",function(o){return r.update("value1",o)})("change",function(o){return r.change("change1",o)})("blur",function(o){return r.blur("blur1",o)})("focus",function(o){return r.focus("focus1",o)})("open",function(o){return r.open("open1",o)})("close",function(o){return r.close("close1",o)})("search",function(o){return r.search("search1",o)}),_(),y(9,"h3"),C(10),_(),y(11,"select2",4),G("update",function(o){return r.update("value2",o)}),_(),y(12,"h3"),C(13),_(),y(14,"select2",5),G("update",function(o){return r.update("value3",o)}),_(),y(15,"h3"),C(16),_(),ie(17,"select2",6),y(18,"h3"),C(19),_(),y(20,"form",7)(21,"select2",8),G("update",function(o){return r.update("value5",o)}),_()(),y(22,"h3"),C(23," 6. search limit to "),ie(24,"input",9,10),C(26," / display status "),y(27,"select",null,11)(29,"option",12),C(30,"default"),_(),y(31,"option"),C(32,"hidden"),_(),y(33,"option"),C(34,"always"),_()(),C(35),_(),y(36,"div")(37,"button",13),G("click",function(){return r.addItem()}),C(38,"Add item"),_(),y(39,"button",13),G("click",function(){return r.removeItem()}),C(40,"Remove item"),_()(),y(41,"select2",14),G("update",function(o){return r.update("value6",o)}),_(),y(42,"h3"),C(43),_(),y(44,"select2",15),G("update",function(o){return r.update("value7",o)}),_(),y(45,"h3"),C(46),_(),y(47,"select2",16),G("open",function(){return r.open8()})("close",function(){return r.close8()})("search",function(o){return r.search8(o)})("update",function(o){return r.update("value8",o)}),y(48,"select2-hint"),C(49),_()(),y(50,"h3"),C(51,"9. multiple + limite "),y(52,"input",17),G("ngModelChange",function(o){return r.limitSelection=o}),_(),C(53),Ua(54,"json"),_(),y(55,"select2",18),G("update",function(o){return r.update("value9",o)})("blur",function(o){return r.blur("blur9",o)})("focus",function(o){return r.focus("focus9",o)})("open",function(o){return r.open("open9",o)})("close",function(o){return r.close("close9",o)})("search",function(o){return r.search("search9",o)}),_(),y(56,"h3"),C(57),Ua(58,"json"),_(),y(59,"select2",19),G("update",function(o){return r.update("value10",o)}),_(),y(60,"h3"),C(61),_(),y(62,"form",7)(63,"select2",20),G("ngModelChange",function(o){return r.value11=o}),_(),y(64,"button",21),G("click",function(){return r.reset11()}),C(65,"reset"),_(),y(66,"button",21),G("click",function(){return r.change11()}),C(67,"Utah"),_()(),y(68,"h3"),C(69),_(),y(70,"select2",22),G("update",function(o){return r.update("value12",o)}),_(),y(71,"h3"),C(72),_(),y(73,"select2",23),G("update",function(o){return r.update("value13",o)}),_(),y(74,"h3"),C(75,"14. FormControl"),_(),y(76,"form",7),ie(77,"select2",24),y(78,"button",21),G("click",function(){return r.print()}),C(79,"Log Selected"),_(),y(80,"button",21),G("click",function(){return r.resetForm()}),C(81,"Reset Form"),_()(),y(82,"h3"),C(83),_(),y(84,"select2",25),G("update",function(o){return r.update("value15",o)}),y(85,"select2-label"),C(86,"Select a state"),_()(),y(87,"h3"),C(88),_(),y(89,"select2",26),G("update",function(o){return r.update("value16",o)}),y(90,"select2-label"),C(91,"Select a state"),_()(),y(92,"h3"),C(93),_(),y(94,"select2",27),G("update",function(o){return r.update("value17",o)}),_(),y(95,"h3"),C(96,"18. search starts with 3 chars"),_(),y(97,"select2",28),G("update",function(o){return r.update("value18",o)}),_(),y(98,"h3"),C(99),_(),y(100,"select2",29),G("update",function(o){return r.update("value19",o)}),_(),y(101,"div",30)(102,"h3"),C(103),_(),y(104,"select2",31),G("update",function(o){return r.update("value20",o)}),_()(),y(105,"h3"),C(106),_(),y(107,"select2",32),G("update",function(o){return r.update("value21",o)}),_(),y(108,"button",21),G("click",function(){return r.value21=""}),C(109,"Update value to empty string"),_(),y(110,"button",21),G("click",function(){return r.value21=null}),C(111,"Update value to null"),_(),y(112,"button",21),G("click",function(){return r.value21=void 0}),C(113,"Update value to undefined"),_(),y(114,"h3"),C(115),_(),y(116,"select2",33),G("update",function(o){return r.update("value22",o)}),_(),y(117,"h3"),C(118),_(),y(119,"select2",34),G("update",function(o){return r.update("value23",o)}),le(120,iV,3,2,"ng-template",null,35,Mt),_(),y(122,"h3"),C(123),_(),y(124,"select2",36),G("update",function(o){return r.update("value24",o)}),le(125,oV,3,2,"ng-template",null,37,Mt),le(127,sV,2,1,"ng-template",null,38,Mt),_(),y(129,"h3"),C(130),_(),y(131,"select2",39),G("update",function(o){return r.update("value25",o)}),le(132,aV,2,3,"ng-template",null,40,Mt),le(134,lV,3,2,"ng-template",null,41,Mt),le(136,cV,2,3,"ng-template",null,42,Mt),_(),y(138,"h3"),C(139),_(),y(140,"select2",43),G("update",function(o){return r.update("value26",o)})("scroll",function(o){return r.scroll26(o)}),_(),y(141,"h3"),C(142),_(),y(143,"select2",44),G("update",function(o){return r.update("value2",o)}),_(),y(144,"h3"),C(145),_(),ie(146,"select2",45),_()),2&t){const i=Ze(25),o=Ze(28),s=Ze(121),a=Ze(126),l=Ze(128),c=Ze(133),u=Ze(135),d=Ze(137);M(4),R("ngModel",r.overlay),M(3),_e("1. options in group (",r.value1,")"),M(1),R("overlay",r.overlay)("data",r.data1)("value",r.value1),M(2),_e("2. options (",r.value2,")"),M(1),R("overlay",r.overlay)("data",r.data2)("value",r.value2),M(2),_e("3. less options (",r.value3,")"),M(1),R("overlay",r.overlay)("data",r.data3)("value",r.value3),M(2),_e("4. disabled (",r.value4,")"),M(1),R("overlay",r.overlay)("data",r.data4)("value",r.value4)("disabled",!0),M(2),_e("5. hide search box (",r.value5,")"),M(1),R("formGroup",r.ctrlForm2),M(1),R("overlay",r.overlay)("data",r.data5)("minCountForSearch",r.minCountForSearch),M(14),_e(" (",r.value6,") "),M(6),R("overlay",r.overlay)("data",r.data6)("value",r.value6)("minCountForSearch",i.value)("displaySearchStatus",o.value),M(2),_e("7. placeholder (",r.value7,")"),M(1),R("overlay",r.overlay)("data",r.data7),M(2),_e("8. open, close and search event (",r.value8,")"),M(1),R("overlay",r.overlay)("data",r.data8),M(2),_e("value : ",r.value8,""),M(3),R("ngModel",r.limitSelection),M(1),_e(" (",$a(54,120,r.value9),")"),M(2),R("overlay",r.overlay)("data",r.data9)("value",r.value9)("limitSelection",r.limitSelection),M(2),_e("10. multiple + hide selected items (",$a(58,122,r.value10),")"),M(2),R("overlay",r.overlay)("data",r.data10)("value",r.value10),M(2),_e("11. material style and form binding (",r.value11,")"),M(1),R("formGroup",r.ctrlForm),M(1),R("overlay",r.overlay)("ngModel",r.value11)("data",r.data11),M(6),_e("12. material style (",r.value12,")"),M(1),R("overlay",r.overlay)("data",r.data12)("value",r.value12),M(2),_e("13. boolean value (",r.value13,")"),M(1),R("overlay",r.overlay)("data",r.data13)("value",r.value13),M(3),R("formGroup",r.fg),M(1),R("overlay",r.overlay)("data",r.data9),M(6),_e("15. with label (",r.value15,")"),M(1),R("overlay",r.overlay)("data",r.data15)("value",r.value15),M(4),_e("16. required with label (",r.value16,")"),M(1),R("overlay",r.overlay)("data",r.data16)("value",r.value16),M(4),_e("17. with two option labels (",r.value17,")"),M(1),R("overlay",r.overlay)("data",r.data17)("value",r.value17),M(3),R("overlay",r.overlay)("data",r.data18)("value",r.value18),M(2),_e("19. dropdown list position above (",r.value19,")"),M(1),R("overlay",r.overlay)("data",r.data19)("value",r.value19),M(3),_e("20. nostyle (",r.value20,")"),M(1),R("overlay",r.overlay)("data",r.data20)("value",r.value20),M(2),_e("21. update to empty/null/undefined (",r.value21,")"),M(1),R("overlay",r.overlay)("data",r.data21)("value",r.value21),M(8),_e("22. with item classes and id (",r.value22,")"),M(1),R("overlay",r.overlay)("data",r.data22)("value",r.value22),M(2),_e("23 with template (",r.value23,")"),M(1),R("overlay",r.overlay)("data",r.data23)("value",r.value23)("templates",s),M(4),_e("24 with template (option / group) (",r.value24,")"),M(1),R("overlay",r.overlay)("data",r.data24)("value",r.value24)("templates",gv(124,uV,a,l)),M(6),_e("25 with templates Ids (",r.value25,")"),M(1),R("overlay",r.overlay)("data",r.data25)("value",r.value25)("templates",mv(127,dV,c,u,d)),M(8),_e("26. infiniteScroll(",r.value26,")"),M(1),R("overlay",r.overlay)("data",r.data26)("value",r.value26),M(2),_e("27. position (",r.value2,")"),M(1),R("overlay",r.overlay)("data",r.data2)("value",r.value2),M(2),_e("28. max results 50 (",r.value28,")"),M(1),R("overlay",r.overlay)("data",r.data28)("value",r.value28)}},dependencies:[tC,Ph,Nh,Cs,Il,vl,vh,yh,Oh,go,xl,CD,wD,nw,zy],styles:['@charset "UTF-8";#select2-17[_ngcontent-%COMP%] .select2-multiple-labels{display:flex;justify-content:space-between}.noStyle[_ngcontent-%COMP%]{background-color:#faebd7}.flower-list[_ngcontent-%COMP%] .flower.white:before{content:"\\1f33c "}.flower-list[_ngcontent-%COMP%] .flower.red:before{content:"\\1f339 "}.flower-list[_ngcontent-%COMP%] .flower.yellow:before{content:"\\1f33b "}']}),n})();var hV=P(7230);class fV{constructor(e,t={}){this.json=e,this.options={spaceType:"space",spaceLength:4,spaceBase:0,maxLength:0,attrPosition:"alignFirstAttr",wrapAttrNumber:1,type:"html",formatting:"multiline",indent:!0,xmlDefaultTag:"span",noContentTags:["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],removeOptionalEndTags:!1,optionalEndTags:["colgroup","dd","dt","li","optgroup","option","p","rb","rt","rtc","rp","td","th","thead","tbody","tfoot","tr"]},Object.assign(this.options,t)}toString(){let e="";const t="inline"===this.options.formatting;return Array.isArray(this.json)?this.json.forEach((r,i)=>{e+=`${i>0&&!t?"\n":""}${this._getSpacing(0)}${this._generate(0,r,t)}`}):e=`${this._getSpacing(0)}${this._generate(0,this.json,t)}`,e}_generate(e,t,r=!1){const i=!this.options.noContentTags.includes(t.tag.toLowerCase()),o=i&&!t.autoclose||!this._modeXML()?"":"/";let s=`<${t.tag}${this._generateAttrs(e,t,r||t.inline)}${o}>`;if(i&&!t.autoclose){let a=this._generateBody(e,t,r||t.inline);a&&this._hasMultiline()&&!(r||t.inline)&&(a=`${a}\n${this._getSpacing(e)}`),s+=a,(!this.options.removeOptionalEndTags||this._modeXML()||this.options.removeOptionalEndTags&&!this.options.optionalEndTags.includes(t.tag.toLowerCase()))&&(s+=``)}return s}_generateAttrs(e,t,r){let i="";const o=t.attrs;if(o&&Object.keys(o).length){const s=Object.values(t.attrs).filter(u=>void 0!==u).length,a=(this.options.wrapAttrNumber??1){const g=o[u];if(void 0!==g){const v=`${u}${null!==g||g?`="${g}"`:""}`;let w="",A="";const[L,j]=a.split(" ");switch(L){case"inline":if(!this.options.maxLength||(l.replace("\n","")+(c>1?" ":"")+v+(d===f.length-1?">":"")).length{i+=this._generateBodyElement(e,o,!1,r)}):i+=this._generateBodyElement(e,t.body,!0,r)),i}_generateBodyElement(e,t,r,i=!1){let o="";return this._hasMultiline()&&!i&&(o+=`\n${this._getSpacing(e+1)}`),!r&&this._modeXML()&&"string"==typeof t&&(t={tag:this.options.xmlDefaultTag,body:t}),o+="string"==typeof t?this._formatText(e+1,t,i):this._generate(e+1,t,i),o}_formatText(e,t,r=!1){let i="";const o=this._getSpacing(e);if(!r&&this.options.maxLength){const s=t.split("\n");for(const a of s){let l="";if((o+a).length>this.options.maxLength){const c=a.split(" ");for(const u of c)(o+l+(l?" ":"")+u).length{class n{constructor(t){this.fb=t,this.data=vD,this.ctrlForm=this.fb.group({json:new ye(JSON.stringify(this.data,null,2)),label:new ye,hint:new ye,disabled:new ye,overlay:new ye,minCharForSearch:new ye,minCountForSearch:new ye,displaySearchStatus:new ye,placeholder:new ye,customSearchEnabled:new ye,multiple:new ye,resettable:new ye,limitSelection:new ye,hideSelectedItems:new ye,resultMaxHeight:new ye,listPosition:new ye,infiniteScroll:new ye,infiniteScrollDistance:new ye,infiniteScrollThrottle:new ye,styleMode:new ye,noResultMessage:new ye,maxResults:new ye,maxResultsMessage:new ye,template:new ye,update:new ye,open:new ye,close:new ye,focus:new ye,blur:new ye,search:new ye,scroll:new ye,removeOption:new ye}),this.ctrlForm.valueChanges.subscribe(()=>{console.log(this.ctrlForm.value)}),this.ctrlForm.valueChanges.subscribe(r=>this.codeGeneration()),this.ctrlForm.get("json").valueChanges.subscribe(r=>this.changeJson(r))}ngAfterContentInit(){this.codeGeneration()}getTemplate(t,r,i,o,s){switch(this.ctrlForm.value.template){case"ref":return t;case"option-group":return{option:r,group:i};case"templateId":return{template1:o,template2:s}}}_event(t,r){this.ctrlForm.value&&this.ctrlForm.value[t]&&console.log("Event",t,r)}codeGeneration(){const t={tag:"select2",attrs:{"[data]":"data"},body:[]},r=this.ctrlForm.value,i=t.attrs,o=t.body;switch(r.label&&o.push({tag:"select2-label",body:r.label,inline:!0}),r.hint&&o.push({tag:"select2-hint",body:r.hint,inline:!0}),r.disabled&&(i.disabled=this._testBoolean(r.disabled)),r.overlay&&(i.overlay=this._testBoolean(r.overlay)),r.minCharForSearch&&(i.minCharForSearch=r.minCharForSearch),r.minCountForSearch&&(i.minCountForSearch=r.minCountForSearch),r.displaySearchStatus&&(i.displaySearchStatus=r.displaySearchStatus),r.placeholder&&(i.placeholder=r.placeholder),r.customSearchEnabled&&(i.customSearchEnabled=this._testBoolean(r.customSearchEnabled)),r.multiple&&(i.multiple=this._testBoolean(r.multiple)),r.resettable&&(i.resettable=this._testBoolean(r.resettable)),r.limitSelection&&(i.limitSelection=r.limitSelection),r.hideSelectedItems&&(i.hideSelectedItems=this._testBoolean(r.hideSelectedItems)),r.resultMaxHeight&&(i.resultMaxHeight=r.resultMaxHeight),r.listPosition&&(i.listPosition=r.listPosition),r.infiniteScroll&&(i.infiniteScroll=this._testBoolean(r.infiniteScroll)),r.infiniteScrollDistance&&(i.infiniteScrollDistance=r.infiniteScrollDistance),r.infiniteScrollThrottle&&(i.infiniteScrollThrottle=r.infiniteScrollThrottle),r.styleMode&&(i.styleMode=r.styleMode),r.noResultMessage&&(i.noResultMessage=r.noResultMessage),r.maxResultsMessage&&(i.maxResultsMessage=r.maxResultsMessage),r.maxResults&&(i.maxResults=r.maxResults),r.template){case"ref":i["[templates]"]="template",o.push({tag:"ng-template",attrs:{"#template":null,"let-data":"data"},body:' {{data?.color}}: {{data?.name}}'});break;case"option-group":i["[templates]"]="{option : option, group: group}",o.push({tag:"ng-template",attrs:{"#option":null,"let-data":"data"},body:"{{data?.name}}"},{tag:"ng-template",attrs:{"#group":null,"let-label":"label"},body:"Group: {{label}}"});break;case"templateId":i["[templates]"]="{template1 : template1, template2: template2}",o.push({tag:"ng-template",attrs:{"#template1":null,"let-data":"data"},body:"{{data?.name}}"},{tag:"ng-template",attrs:{"#template2":null,"let-label":"label","let-data":"data"},body:"{{label}} : {{data?.color}}"})}r.update&&(i["(update)"]="_update($event)"),r.open&&(i["(open)"]="_open($event)"),r.close&&(i["(close)"]="_close($event)"),r.focus&&(i["(focus)"]="_focus($event)"),r.blur&&(i["(blur)"]="_blur($event)"),r.search&&(i["(search)"]="_search($event)"),this.html=new fV(t).toString()}changeJson(t){this.jsonError="";try{this.data=JSON.parse(t)}catch(r){this.jsonError=this._parseJsonError(t,r)}}_parseJsonError(t,r){let i="";const o=r.message.match(/[^\n]+/)[0],s=hV.getParser(window.navigator.userAgent).getResult();if("Chrome"===s.browser.name)if(o.match(/at position/)){const a=parseInt(o.match(/at position (\d+)/)[1],10),l=t.split(/\n/);let c=1;for(const u of l)if(u){if(c+u.length>=a){i=o+"
"+u+"\n"+" ".repeat(a-c+1)+"^
";break}c+=u.length+1}}else i=o;else if("Firefox"===s.browser.name)if(o.match(/at line/)){const[,a,l]=o.match(/at line (\d+) column (\d+)/),c=t.split(/\n/);i=c[+a-1]?o+"
"+c[+a-1]+"\n"+" ".repeat(+l-1)+"^
":o}else i=o;else i=o;return i}_testBoolean(t){return t?null:void 0}}return n.\u0275fac=function(t){return new(t||n)(E(CC))},n.\u0275cmp=Fr({type:n,selectors:[["app-root"]],decls:180,vars:12,consts:[[1,"cols"],[3,"formGroup"],["for","json"],["formControlName","json","id","json"],[1,"error",3,"innerHTML"],["for","label"],["type","text","formControlName","label","id","label"],["for","hint"],["type","text","formControlName","hint","id","hint"],["for","disabled"],["type","checkbox","formControlName","disabled","id","disabled"],["for","overlay"],["type","checkbox","formControlName","overlay","id","overlay"],["for","minCharForSearch"],["type","number","formControlName","minCharForSearch","id","minCharForSearch"],["for","minCountForSearch"],["type","number","formControlName","minCountForSearch","id","minCountForSearch"],["for","displaySearchStatus"],["formControlName","displaySearchStatus","id","displaySearchStatus"],["value","default"],["value","hidden"],["value","always"],["for","placeholder"],["type","text","formControlName","placeholder","id","placeholder"],["for","noResultMessage"],["type","text","formControlName","noResultMessage","id","noResultMessage"],["for","customSearchEnabled"],["type","checkbox","formControlName","customSearchEnabled","id","customSearchEnabled"],["for","multiple"],["type","checkbox","formControlName","multiple","id","multiple"],["for","resettable"],["type","checkbox","formControlName","resettable","id","resettable"],["for","limitSelection"],["type","number","formControlName","limitSelection","id","limitSelection"],["for","hideSelectedItems"],["type","checkbox","formControlName","hideSelectedItems","id","hideSelectedItems"],["for","resultMaxHeight"],["type","text","formControlName","resultMaxHeight","id","resultMaxHeight"],["for","maxResults"],["type","text","formControlName","maxResults","id","maxResults"],["for","maxResultsMessage"],["type","text","formControlName","maxResultsMessage","id","maxResultsMessage"],["for","listPosition"],["formControlName","listPosition","id","listPosition"],["value","below"],["value","above"],["for","infiniteScroll"],["type","checkbox","formControlName","infiniteScroll","id","infiniteScroll"],["for","infiniteScrollDistance"],["type","number","formControlName","infiniteScrollDistance","id","infiniteScrollDistance"],["for","infiniteScrollThrottle"],["type","number","formControlName","infiniteScrollThrottle","id","infiniteScrollThrottle"],["for","styleMode"],["formControlName","styleMode","id","listPstyleModeosition"],["value",""],["value","material"],["value","noStyle"],["for","template"],["formControlName","template","id","template"],["value","none"],["value","ref"],["value","option-group"],["value","templateId"],["for","update"],["type","checkbox","formControlName","update","id","update"],["for","open"],["type","checkbox","formControlName","open","id","open"],["for","close"],["type","checkbox","formControlName","close","id","close"],["for","focus"],["type","checkbox","formControlName","focus","id","focus"],["for","blur"],["type","checkbox","formControlName","blur","id","blur"],["for","search"],["type","checkbox","formControlName","search","id","search"],["for","scroll"],["type","checkbox","formControlName","scroll","id","scroll"],["for","removeOption"],["type","checkbox","formControlName","removeOption","id","removeOption"],[3,"data","overlay","disabled","minCharForSearch","minCountForSearch","displaySearchStatus","placeholder","customSearchEnabled","multiple","resettable","limitSelection","hideSelectedItems","resultMaxHeight","maxResults","maxResultsMessage","listPosition","infiniteScroll","infiniteScrollDistance","infiniteScrollThrottle","styleMode","noResultMessage","templates","update","open","close","focus","blur","search","scroll","removeOption",4,"ngIf"],[1,"code"],[3,"highlight"],[3,"data","overlay","disabled","minCharForSearch","minCountForSearch","displaySearchStatus","placeholder","customSearchEnabled","multiple","resettable","limitSelection","hideSelectedItems","resultMaxHeight","maxResults","maxResultsMessage","listPosition","infiniteScroll","infiniteScrollDistance","infiniteScrollThrottle","styleMode","noResultMessage","templates","update","open","close","focus","blur","search","scroll","removeOption"],[3,"innerHTML"],["template",""],["option",""],["group",""],["template1",""],["template2",""],[4,"ngIf"]],template:function(t,r){1&t&&(y(0,"h2"),C(1,"Generator"),_(),y(2,"div",0)(3,"div",1)(4,"h4"),C(5,"data"),_(),y(6,"div")(7,"label",2),C(8,"json (for "),y(9,"code"),C(10,"[data]"),_(),C(11,") : "),_(),ie(12,"textarea",3)(13,"div",4),_(),y(14,"h4"),C(15,"tags"),_(),y(16,"div")(17,"label",5),C(18,"label : "),_(),ie(19,"input",6),_(),y(20,"div")(21,"label",7),C(22,"hint : "),_(),ie(23,"input",8),_(),y(24,"h4"),C(25,"parameters"),_(),y(26,"div")(27,"label",9),C(28,"disabled : "),_(),ie(29,"input",10),_(),y(30,"div")(31,"label",11),C(32,"overlay : "),_(),ie(33,"input",12),_(),y(34,"div")(35,"label",13),C(36,"minCharForSearch (0) : "),_(),ie(37,"input",14),_(),y(38,"div")(39,"label",15),C(40,"minCountForSearch (6) : "),_(),ie(41,"input",16),_(),y(42,"div")(43,"label",17),C(44,"displaySearchStatus :"),_(),y(45,"select",18)(46,"option",19),C(47,"default"),_(),y(48,"option",20),C(49,"hidden"),_(),y(50,"option",21),C(51,"always"),_()()(),y(52,"div")(53,"label",22),C(54,"placeholder : "),_(),ie(55,"input",23),_(),y(56,"div")(57,"label",24),C(58,"noResultMessage : "),_(),ie(59,"input",25),_(),y(60,"div")(61,"label",26),C(62,"customSearchEnabled : "),_(),ie(63,"input",27),_(),y(64,"div")(65,"label",28),C(66,"multiple : "),_(),ie(67,"input",29),_(),y(68,"div")(69,"label",30),C(70,"resettable : "),_(),ie(71,"input",31),_(),y(72,"div")(73,"label",32),C(74,"limitSelection (0) : "),_(),ie(75,"input",33),_(),y(76,"div")(77,"label",34),C(78,"hideSelectedItems : "),_(),ie(79,"input",35),_(),y(80,"div")(81,"label",36),C(82,"resultMaxHeight ('200px') : "),_(),ie(83,"input",37),_(),y(84,"div")(85,"label",38),C(86,"maxResults (0 = infinity) : "),_(),ie(87,"input",39),_(),y(88,"div")(89,"label",40),C(90,"maxResultsMessage ('Too much result...') : "),_(),ie(91,"input",41),_(),y(92,"div")(93,"label",42),C(94,"listPosition :"),_(),y(95,"select",43),ie(96,"option"),y(97,"option",44),C(98,"below"),_(),y(99,"option",45),C(100,"above"),_()()(),y(101,"div")(102,"label",46),C(103,"infiniteScroll : "),_(),ie(104,"input",47),_(),y(105,"div")(106,"label",48),C(107,"infiniteScrollDistance (1.5) : "),_(),ie(108,"input",49),_(),y(109,"div")(110,"label",50),C(111,"infiniteScrollThrottle (150) : "),_(),ie(112,"input",51),_(),y(113,"div")(114,"label",52),C(115,"styleMode : "),_(),y(116,"select",53)(117,"option",54),C(118,"default"),_(),y(119,"option",55),C(120,"material"),_(),y(121,"option",56),C(122,"noStyle"),_()()(),y(123,"h4"),C(124,"Templates"),_(),y(125,"div")(126,"label",57),C(127,"template style :"),_(),y(128,"select",58)(129,"option",59),C(130,"None"),_(),y(131,"option",60),C(132,"Unique template"),_(),y(133,"option",61),C(134,"Template group & option"),_(),y(135,"option",62),C(136,"Template by templateId"),_()()(),y(137,"h4"),C(138,"Events"),_(),y(139,"div")(140,"label",63),C(141,"update : "),_(),ie(142,"input",64),_(),y(143,"div")(144,"label",65),C(145,"open : "),_(),ie(146,"input",66),_(),y(147,"div")(148,"label",67),C(149,"close : "),_(),ie(150,"input",68),_(),y(151,"div")(152,"label",69),C(153,"focus : "),_(),ie(154,"input",70),_(),y(155,"div")(156,"label",71),C(157,"blur : "),_(),ie(158,"input",72),_(),y(159,"div")(160,"label",73),C(161,"search : "),_(),ie(162,"input",74),_(),y(163,"div")(164,"label",75),C(165,"scroll : "),_(),ie(166,"input",76),_(),y(167,"div")(168,"label",77),C(169,"removeOption : "),_(),ie(170,"input",78),_()(),y(171,"div")(172,"h4"),C(173,"HTML render"),_(),le(174,bV,13,24,"select2",79),y(175,"h4"),C(176,"HTML Code"),_(),y(177,"div",80)(178,"code"),ie(179,"pre",81),_()()()()),2&t&&(M(3),R("formGroup",r.ctrlForm),M(10),R("innerHTML",r.jsonError,An),M(55),mt("hide",null==r.ctrlForm||null==r.ctrlForm.value?null:r.ctrlForm.value.multiple),M(8),mt("hide",!(null!=r.ctrlForm&&null!=r.ctrlForm.value&&r.ctrlForm.value.multiple)),M(29),mt("hide",!(null!=r.ctrlForm&&null!=r.ctrlForm.value&&r.ctrlForm.value.infiniteScrollDistance)),M(4),mt("hide",!(null!=r.ctrlForm&&null!=r.ctrlForm.value&&r.ctrlForm.value.infiniteScroll)),M(65),R("ngIf",r.ctrlForm.value),M(5),R("highlight",r.html))},dependencies:[rh,Ph,Nh,Cs,Il,vl,Pl,vh,yh,go,xl,CD,wD,nw,UR],styles:["label[_ngcontent-%COMP%]{display:inline-block;width:250px}.cols[_ngcontent-%COMP%]{display:flex;max-width:100%}.cols[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0 50%;max-width:50%}.code[_ngcontent-%COMP%]{overflow:auto}.error[_ngcontent-%COMP%]{color:red}textarea#json[_ngcontent-%COMP%]{width:calc(100% - 15px);resize:vertical;box-sizing:border-box;height:200px}"]}),n})()},{path:"**",component:DD}];let wV=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n}),n.\u0275inj=Xe({imports:[fD.forRoot(CV),fD]}),n})(),DV=(()=>{class n{}return n.\u0275fac=function(t){return new(t||n)},n.\u0275mod=lt({type:n,bootstrap:[QL]}),n.\u0275inj=Xe({providers:[{provide:kl,useValue:{coreLibraryLoader:()=>P.e(112).then(P.bind(P,9112)),lineNumbersLoader:()=>P.e(859).then(P.t.bind(P,859,23)),languages:{typescript:()=>P.e(535).then(P.bind(P,2535)),javascript:()=>P.e(613).then(P.bind(P,6613)),css:()=>P.e(403).then(P.bind(P,4403)),xml:()=>P.e(142).then(P.bind(P,9142))}}}],imports:[hP,wV,Fh,uF,$R]}),n})();(function KI(){hy=!1})(),dP().bootstrapModule(DV).catch(n=>console.log(n))},7230:function(Yt){Yt.exports=function(Ce){var P={};function U(F){if(P[F])return P[F].exports;var b=P[F]={i:F,l:!1,exports:{}};return Ce[F].call(b.exports,b,b.exports,U),b.l=!0,b.exports}return U.m=Ce,U.c=P,U.d=function(F,b,D){U.o(F,b)||Object.defineProperty(F,b,{enumerable:!0,get:D})},U.r=function(F){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(F,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(F,"__esModule",{value:!0})},U.t=function(F,b){if(1&b&&(F=U(F)),8&b||4&b&&"object"==typeof F&&F&&F.__esModule)return F;var D=Object.create(null);if(U.r(D),Object.defineProperty(D,"default",{enumerable:!0,value:F}),2&b&&"string"!=typeof F)for(var $ in F)U.d(D,$,function(h){return F[h]}.bind(null,$));return D},U.n=function(F){var b=F&&F.__esModule?function(){return F.default}:function(){return F};return U.d(b,"a",b),b},U.o=function(F,b){return Object.prototype.hasOwnProperty.call(F,b)},U.p="",U(U.s=90)}({17:function(Ce,P,U){"use strict";P.__esModule=!0,P.default=void 0;var F=U(18),b=function(){function D(){}return D.getFirstMatch=function($,h){var p=h.match($);return p&&p.length>0&&p[1]||""},D.getSecondMatch=function($,h){var p=h.match($);return p&&p.length>1&&p[2]||""},D.matchAndReturnConst=function($,h,p){if($.test(h))return p},D.getWindowsVersionName=function($){switch($){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}},D.getMacOSVersionName=function($){var h=$.split(".").splice(0,2).map(function(p){return parseInt(p,10)||0});if(h.push(0),10===h[0])switch(h[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}},D.getAndroidVersionName=function($){var h=$.split(".").splice(0,2).map(function(p){return parseInt(p,10)||0});if(h.push(0),!(1===h[0]&&h[1]<5))return 1===h[0]&&h[1]<6?"Cupcake":1===h[0]&&h[1]>=6?"Donut":2===h[0]&&h[1]<2?"Eclair":2===h[0]&&2===h[1]?"Froyo":2===h[0]&&h[1]>2?"Gingerbread":3===h[0]?"Honeycomb":4===h[0]&&h[1]<1?"Ice Cream Sandwich":4===h[0]&&h[1]<4?"Jelly Bean":4===h[0]&&h[1]>=4?"KitKat":5===h[0]?"Lollipop":6===h[0]?"Marshmallow":7===h[0]?"Nougat":8===h[0]?"Oreo":9===h[0]?"Pie":void 0},D.getVersionPrecision=function($){return $.split(".").length},D.compareVersions=function($,h,p){void 0===p&&(p=!1);var m=D.getVersionPrecision($),V=D.getVersionPrecision(h),S=Math.max(m,V),x=0,N=D.map([$,h],function(Y){var z=S-D.getVersionPrecision(Y),Me=Y+new Array(z+1).join(".0");return D.map(Me.split("."),function(rt){return new Array(20-rt.length).join("0")+rt}).reverse()});for(p&&(x=S-Math.min(m,V)),S-=1;S>=x;){if(N[0][S]>N[1][S])return 1;if(N[0][S]===N[1][S]){if(S===x)return 0;S-=1}else if(N[0][S]1?V-1:0),x=1;x0){var Ut=Object.keys(Y),it=h.default.find(Ut,function(pt){return N.isOS(pt)});if(it){var bt=this.satisfies(Y[it]);if(void 0!==bt)return bt}var Tt=h.default.find(Ut,function(pt){return N.isPlatform(pt)});if(Tt){var ot=this.satisfies(Y[Tt]);if(void 0!==ot)return ot}}if(rt>0){var ve=Object.keys(Me),Zt=h.default.find(ve,function(pt){return N.isBrowser(pt,!0)});if(void 0!==Zt)return this.compareVersion(Me[Zt])}},S.isBrowser=function(x,N){void 0===N&&(N=!1);var Y=this.getBrowserName().toLowerCase(),z=x.toLowerCase(),Me=h.default.getBrowserTypeByAlias(z);return N&&Me&&(z=Me.toLowerCase()),z===Y},S.compareVersion=function(x){var N=[0],Y=x,z=!1,Me=this.getBrowserVersion();if("string"==typeof Me)return">"===x[0]||"<"===x[0]?(Y=x.substr(1),"="===x[1]?(z=!0,Y=x.substr(2)):N=[],N.push(">"===x[0]?1:-1)):"="===x[0]?Y=x.substr(1):"~"===x[0]&&(z=!0,Y=x.substr(1)),N.indexOf(h.default.compareVersions(Me,Y,z))>-1},S.isOS=function(x){return this.getOSName(!0)===String(x).toLowerCase()},S.isPlatform=function(x){return this.getPlatformType(!0)===String(x).toLowerCase()},S.isEngine=function(x){return this.getEngineName(!0)===String(x).toLowerCase()},S.is=function(x,N){return void 0===N&&(N=!1),this.isBrowser(x,N)||this.isOS(x)||this.isPlatform(x)},S.some=function(x){var N=this;return void 0===x&&(x=[]),x.some(function(Y){return N.is(Y)})},V}();P.default=m,Ce.exports=P.default},92:function(Ce,P,U){"use strict";P.__esModule=!0,P.default=void 0;var F,b=(F=U(17))&&F.__esModule?F:{default:F},D=/version\/(\d+(\.?_?\d+)+)/i;P.default=[{test:[/googlebot/i],describe:function(h){var p={name:"Googlebot"},m=b.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/opera/i],describe:function(h){var p={name:"Opera"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/opr\/|opios/i],describe:function(h){var p={name:"Opera"},m=b.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/SamsungBrowser/i],describe:function(h){var p={name:"Samsung Internet for Android"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/Whale/i],describe:function(h){var p={name:"NAVER Whale Browser"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/MZBrowser/i],describe:function(h){var p={name:"MZ Browser"},m=b.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/focus/i],describe:function(h){var p={name:"Focus"},m=b.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/swing/i],describe:function(h){var p={name:"Swing"},m=b.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/coast/i],describe:function(h){var p={name:"Opera Coast"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe:function(h){var p={name:"Opera Touch"},m=b.default.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/yabrowser/i],describe:function(h){var p={name:"Yandex Browser"},m=b.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/ucbrowser/i],describe:function(h){var p={name:"UC Browser"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/Maxthon|mxios/i],describe:function(h){var p={name:"Maxthon"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/epiphany/i],describe:function(h){var p={name:"Epiphany"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/puffin/i],describe:function(h){var p={name:"Puffin"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/sleipnir/i],describe:function(h){var p={name:"Sleipnir"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/k-meleon/i],describe:function(h){var p={name:"K-Meleon"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/micromessenger/i],describe:function(h){var p={name:"WeChat"},m=b.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/qqbrowser/i],describe:function(h){var p={name:/qqbrowserlite/i.test(h)?"QQ Browser Lite":"QQ Browser"},m=b.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/msie|trident/i],describe:function(h){var p={name:"Internet Explorer"},m=b.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/\sedg\//i],describe:function(h){var p={name:"Microsoft Edge"},m=b.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/edg([ea]|ios)/i],describe:function(h){var p={name:"Microsoft Edge"},m=b.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/vivaldi/i],describe:function(h){var p={name:"Vivaldi"},m=b.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/seamonkey/i],describe:function(h){var p={name:"SeaMonkey"},m=b.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/sailfish/i],describe:function(h){var p={name:"Sailfish"},m=b.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,h);return m&&(p.version=m),p}},{test:[/silk/i],describe:function(h){var p={name:"Amazon Silk"},m=b.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/phantom/i],describe:function(h){var p={name:"PhantomJS"},m=b.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/slimerjs/i],describe:function(h){var p={name:"SlimerJS"},m=b.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(h){var p={name:"BlackBerry"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/(web|hpw)[o0]s/i],describe:function(h){var p={name:"WebOS Browser"},m=b.default.getFirstMatch(D,h)||b.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/bada/i],describe:function(h){var p={name:"Bada"},m=b.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/tizen/i],describe:function(h){var p={name:"Tizen"},m=b.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/qupzilla/i],describe:function(h){var p={name:"QupZilla"},m=b.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/firefox|iceweasel|fxios/i],describe:function(h){var p={name:"Firefox"},m=b.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/electron/i],describe:function(h){var p={name:"Electron"},m=b.default.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/MiuiBrowser/i],describe:function(h){var p={name:"Miui"},m=b.default.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/chromium/i],describe:function(h){var p={name:"Chromium"},m=b.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,h)||b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/chrome|crios|crmo/i],describe:function(h){var p={name:"Chrome"},m=b.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/GSA/i],describe:function(h){var p={name:"Google Search"},m=b.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:function(h){var p=!h.test(/like android/i),m=h.test(/android/i);return p&&m},describe:function(h){var p={name:"Android Browser"},m=b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/playstation 4/i],describe:function(h){var p={name:"PlayStation 4"},m=b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/safari|applewebkit/i],describe:function(h){var p={name:"Safari"},m=b.default.getFirstMatch(D,h);return m&&(p.version=m),p}},{test:[/.*/i],describe:function(h){var p=-1!==h.search("\\(")?/^(.*)\/(.*)[ \t]\((.*)/:/^(.*)\/(.*) /;return{name:b.default.getFirstMatch(p,h),version:b.default.getSecondMatch(p,h)}}}],Ce.exports=P.default},93:function(Ce,P,U){"use strict";P.__esModule=!0,P.default=void 0;var F,b=(F=U(17))&&F.__esModule?F:{default:F},D=U(18);P.default=[{test:[/Roku\/DVP/],describe:function(h){var p=b.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,h);return{name:D.OS_MAP.Roku,version:p}}},{test:[/windows phone/i],describe:function(h){var p=b.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,h);return{name:D.OS_MAP.WindowsPhone,version:p}}},{test:[/windows /i],describe:function(h){var p=b.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,h),m=b.default.getWindowsVersionName(p);return{name:D.OS_MAP.Windows,version:p,versionName:m}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(h){var p={name:D.OS_MAP.iOS},m=b.default.getSecondMatch(/(Version\/)(\d[\d.]+)/,h);return m&&(p.version=m),p}},{test:[/macintosh/i],describe:function(h){var p=b.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,h).replace(/[_\s]/g,"."),m=b.default.getMacOSVersionName(p),V={name:D.OS_MAP.MacOS,version:p};return m&&(V.versionName=m),V}},{test:[/(ipod|iphone|ipad)/i],describe:function(h){var p=b.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,h).replace(/[_\s]/g,".");return{name:D.OS_MAP.iOS,version:p}}},{test:function(h){var p=!h.test(/like android/i),m=h.test(/android/i);return p&&m},describe:function(h){var p=b.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,h),m=b.default.getAndroidVersionName(p),V={name:D.OS_MAP.Android,version:p};return m&&(V.versionName=m),V}},{test:[/(web|hpw)[o0]s/i],describe:function(h){var p=b.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,h),m={name:D.OS_MAP.WebOS};return p&&p.length&&(m.version=p),m}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe:function(h){var p=b.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,h)||b.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,h)||b.default.getFirstMatch(/\bbb(\d+)/i,h);return{name:D.OS_MAP.BlackBerry,version:p}}},{test:[/bada/i],describe:function(h){var p=b.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,h);return{name:D.OS_MAP.Bada,version:p}}},{test:[/tizen/i],describe:function(h){var p=b.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,h);return{name:D.OS_MAP.Tizen,version:p}}},{test:[/linux/i],describe:function(){return{name:D.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:D.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(h){var p=b.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,h);return{name:D.OS_MAP.PlayStation4,version:p}}}],Ce.exports=P.default},94:function(Ce,P,U){"use strict";P.__esModule=!0,P.default=void 0;var F,b=(F=U(17))&&F.__esModule?F:{default:F},D=U(18);P.default=[{test:[/googlebot/i],describe:function(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe:function(h){var p=b.default.getFirstMatch(/(can-l01)/i,h)&&"Nova",m={type:D.PLATFORMS_MAP.mobile,vendor:"Huawei"};return p&&(m.model=p),m}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe:function(){return{type:D.PLATFORMS_MAP.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe:function(){return{type:D.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe:function(){return{type:D.PLATFORMS_MAP.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe:function(){return{type:D.PLATFORMS_MAP.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe:function(){return{type:D.PLATFORMS_MAP.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:D.PLATFORMS_MAP.tablet}}},{test:function(h){var p=h.test(/ipod|iphone/i),m=h.test(/like (ipod|iphone)/i);return p&&!m},describe:function(h){var p=b.default.getFirstMatch(/(ipod|iphone)/i,h);return{type:D.PLATFORMS_MAP.mobile,vendor:"Apple",model:p}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:D.PLATFORMS_MAP.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe:function(){return{type:D.PLATFORMS_MAP.mobile}}},{test:function(h){return"blackberry"===h.getBrowserName(!0)},describe:function(){return{type:D.PLATFORMS_MAP.mobile,vendor:"BlackBerry"}}},{test:function(h){return"bada"===h.getBrowserName(!0)},describe:function(){return{type:D.PLATFORMS_MAP.mobile}}},{test:function(h){return"windows phone"===h.getBrowserName()},describe:function(){return{type:D.PLATFORMS_MAP.mobile,vendor:"Microsoft"}}},{test:function(h){var p=Number(String(h.getOSVersion()).split(".")[0]);return"android"===h.getOSName(!0)&&p>=3},describe:function(){return{type:D.PLATFORMS_MAP.tablet}}},{test:function(h){return"android"===h.getOSName(!0)},describe:function(){return{type:D.PLATFORMS_MAP.mobile}}},{test:function(h){return"macos"===h.getOSName(!0)},describe:function(){return{type:D.PLATFORMS_MAP.desktop,vendor:"Apple"}}},{test:function(h){return"windows"===h.getOSName(!0)},describe:function(){return{type:D.PLATFORMS_MAP.desktop}}},{test:function(h){return"linux"===h.getOSName(!0)},describe:function(){return{type:D.PLATFORMS_MAP.desktop}}},{test:function(h){return"playstation 4"===h.getOSName(!0)},describe:function(){return{type:D.PLATFORMS_MAP.tv}}},{test:function(h){return"roku"===h.getOSName(!0)},describe:function(){return{type:D.PLATFORMS_MAP.tv}}}],Ce.exports=P.default},95:function(Ce,P,U){"use strict";P.__esModule=!0,P.default=void 0;var F,b=(F=U(17))&&F.__esModule?F:{default:F},D=U(18);P.default=[{test:function(h){return"microsoft edge"===h.getBrowserName(!0)},describe:function(h){if(/\sedg\//i.test(h))return{name:D.ENGINE_MAP.Blink};var p=b.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,h);return{name:D.ENGINE_MAP.EdgeHTML,version:p}}},{test:[/trident/i],describe:function(h){var p={name:D.ENGINE_MAP.Trident},m=b.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:function(h){return h.test(/presto/i)},describe:function(h){var p={name:D.ENGINE_MAP.Presto},m=b.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:function(h){var p=h.test(/gecko/i),m=h.test(/like gecko/i);return p&&!m},describe:function(h){var p={name:D.ENGINE_MAP.Gecko},m=b.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:D.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(h){var p={name:D.ENGINE_MAP.WebKit},m=b.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,h);return m&&(p.version=m),p}}],Ce.exports=P.default}})},423:Yt=>{const Ce="[A-Za-z$_][0-9A-Za-z$_]*",P=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],U=["true","false","null","undefined","NaN","Infinity"],F=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],b=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],D=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],$=["arguments","this","super","console","window","document","localStorage","module","global"],h=[].concat(D,F,b);Yt.exports=function p(m){const V=m.regex,x=Ce,z={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(It,at)=>{const xt=It[0].length+It.index,dn=It.input[xt];if("<"===dn||","===dn)return void at.ignoreMatch();let Zn;">"===dn&&(((It,{after:at})=>{const xt="",gi={match:[/const|var|let/,/\s+/,x,/\s*/,/=\s*/,/(async\s*)?/,V.lookahead(pi)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[cn]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:Me,exports:{PARAMS_CONTAINS:ke,CLASS_REFERENCE:Q},illegal:/#(?![$_A-z])/,contains:[m.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},m.APOS_STRING_MODE,m.QUOTE_STRING_MODE,ot,ve,Zt,st,bt,Q,{className:"attr",begin:x+V.lookahead(":"),relevance:0},gi,{begin:"("+m.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[st,m.REGEXP_MODE,{className:"function",begin:pi,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:m.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:Me,contains:ke}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:z.begin,"on:begin":z.isTrulyOpeningTag,end:z.end}],subLanguage:"xml",contains:[{begin:z.begin,end:z.end,skip:!0,contains:["self"]}]}]},So,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+m.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[cn,m.inherit(m.TITLE_MODE,{begin:x,className:"title.function"})]},{match:/\.\.\./,relevance:0},un,{match:"\\$"+x,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[cn]},Ao,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},$t,Us,{match:/\$[(.]/}]}}},206:Yt=>{const P=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],U=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],F=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],b=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],D=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();Yt.exports=function $(h){const p=(h=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:h.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[h.APOS_STRING_MODE,h.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:h.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z][A-Za-z0-9_-]*/}}))(h),m=b,V=F,S="@[a-z-]+",Y={className:"variable",begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[h.C_LINE_COMMENT_MODE,h.C_BLOCK_COMMENT_MODE,p.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},p.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+P.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+V.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+m.join("|")+")"},Y,{begin:/\(/,end:/\)/,contains:[p.CSS_NUMBER_MODE]},p.CSS_VARIABLE,{className:"attribute",begin:"\\b("+D.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[p.BLOCK_COMMENT,Y,p.HEXCOLOR,p.CSS_NUMBER_MODE,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,p.IMPORTANT,p.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:S,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:U.join(" ")},contains:[{begin:S,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},Y,h.QUOTE_STRING_MODE,h.APOS_STRING_MODE,p.HEXCOLOR,p.CSS_NUMBER_MODE]},p.FUNCTION_DISPATCH]}}},3133:Yt=>{const Ce="[A-Za-z$_][0-9A-Za-z$_]*",P=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],U=["true","false","null","undefined","NaN","Infinity"],F=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],b=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],D=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],$=["arguments","this","super","console","window","document","localStorage","module","global"],h=[].concat(D,F,b);Yt.exports=function m(V){const S=function p(V){const S=V.regex,N=Ce,Me={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(at,xt)=>{const dn=at[0].length+at.index,Zn=at.input[dn];if("<"===Zn||","===Zn)return void xt.ignoreMatch();let kr;">"===Zn&&(((at,{after:xt})=>{const dn="",It={match:[/const|var|let/,/\s+/,N,/\s*/,/=\s*/,/(async\s*)?/,S.lookahead(gi)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[$t]};return{name:"Javascript",aliases:["js","jsx","mjs","cjs"],keywords:rt,exports:{PARAMS_CONTAINS:cn,CLASS_REFERENCE:hi},illegal:/#(?![$_A-z])/,contains:[V.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},V.APOS_STRING_MODE,V.QUOTE_STRING_MODE,ve,Zt,pt,vr,Tt,hi,{className:"attr",begin:N+S.lookahead(":"),relevance:0},It,{begin:"("+V.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[vr,V.REGEXP_MODE,{className:"function",begin:gi,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:V.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:rt,contains:cn}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:"<>",end:""},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:Me.begin,"on:begin":Me.isTrulyOpeningTag,end:Me.end}],subLanguage:"xml",contains:[{begin:Me.begin,end:Me.end,skip:!0,contains:["self"]}]}]},fi,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+V.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[$t,V.inherit(V.TITLE_MODE,{begin:N,className:"title.function"})]},{match:/\.\.\./,relevance:0},Us,{match:"\\$"+N,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[$t]},un,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},Q,pi,{match:/\$[(.]/}]}}(V),N=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],Y={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[S.exports.CLASS_REFERENCE]},z={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:N},contains:[S.exports.CLASS_REFERENCE]},Ut={$pattern:Ce,keyword:P.concat(["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"]),literal:U,built_in:h.concat(N),"variable.language":$},it={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},bt=(ot,ve,Zt)=>{const pt=ot.contains.findIndex(st=>st.label===ve);if(-1===pt)throw new Error("can not find mode to replace");ot.contains.splice(pt,1,Zt)};return Object.assign(S.keywords,Ut),S.exports.PARAMS_CONTAINS.push(it),S.contains=S.contains.concat([it,Y,z]),bt(S,"shebang",V.SHEBANG()),bt(S,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/}),S.contains.find(ot=>"func.def"===ot.label).relevance=0,Object.assign(S,{name:"TypeScript",aliases:["ts","tsx"]}),S}},8790:Yt=>{Yt.exports=function Ce(P){const U=P.regex,F=U.concat(/[\p{L}_]/u,U.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),D={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},$={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},h=P.inherit($,{begin:/\(/,end:/\)/}),p=P.inherit(P.APOS_STRING_MODE,{className:"string"}),m=P.inherit(P.QUOTE_STRING_MODE,{className:"string"}),V={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[$,m,p,h,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[$,h,m,p]}]}]},P.COMMENT(//,{relevance:10}),{begin://,relevance:10},D,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[m]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[V],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[V],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:U.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:F,relevance:0,starts:V}]},{className:"tag",begin:U.concat(/<\//,U.lookahead(U.concat(F,/>/))),contains:[{className:"name",begin:F,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}}},Yt=>{Yt(Yt.s=6445)}]); \ No newline at end of file diff --git a/dist/ng-select2/main.js b/dist/ng-select2/main.js deleted file mode 100644 index f5579b6..0000000 --- a/dist/ng-select2/main.js +++ /dev/null @@ -1,2470 +0,0 @@ -"use strict"; -(self["webpackChunkng_select2"] = self["webpackChunkng_select2"] || []).push([["main"],{ - -/***/ 4128: -/*!****************************************************************!*\ - !*** ./projects/ng-select2-component/src/lib/select2-const.ts ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "defaultMinCountForSearch": () => (/* binding */ defaultMinCountForSearch), -/* harmony export */ "protectRegexp": () => (/* binding */ protectRegexp), -/* harmony export */ "timeout": () => (/* binding */ timeout), -/* harmony export */ "unicodePatterns": () => (/* binding */ unicodePatterns) -/* harmony export */ }); -const timeout = 200; -const unicodePatterns = [ - { l: 'a', s: /[ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ]/gi }, - { l: 'aa', s: /ꜳ/gi }, - { l: 'ae', s: /[æǽǣ]/gi }, - { l: 'ao', s: /ꜵ/gi }, - { l: 'au', s: /ꜷ/gi }, - { l: 'av', s: /[ꜹꜻ]/gi }, - { l: 'ay', s: /ꜽ/gi }, - { l: 'b', s: /[ⓑbḃḅḇƀƃɓ]/gi }, - { l: 'c', s: /[ⓒcćĉċčçḉƈȼꜿↄ]/gi }, - { l: 'd', s: /[ⓓdḋďḍḑḓḏđƌɖɗꝺ]/gi }, - { l: 'dz', s: /[dzdž]/gi }, - { l: 'e', s: /[ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ]/gi }, - { l: 'f', s: /[ⓕfḟƒꝼ]/gi }, - { l: 'g', s: /[ⓖgǵĝḡğġǧģǥɠꞡᵹꝿ]/gi }, - { l: 'h', s: /[ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ]/gi }, - { l: 'hv', s: /ƕ/gi }, - { l: 'i', s: /[ⓘiìíîĩīĭİïḯỉǐȉȋịįḭɨı]/gi }, - { l: 'j', s: /[ⓙjĵǰɉ]/gi }, - { l: 'k', s: /[ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ]/gi }, - { l: 'l', s: /[ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇꝆ]/gi }, - { l: 'lj', s: /lj/gi }, - { l: 'm', s: /[ⓜmḿṁṃɱɯ]/gi }, - { l: 'n', s: /[ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ]/gi }, - { l: 'nj', s: /nj/gi }, - { l: 'o', s: /[ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔƟꝋꝍɵ]/gi }, - { l: 'oi', s: /ƣ/gi }, - { l: 'oe', s: /œ/gi }, - { l: 'oo', s: /ꝏ/gi }, - { l: 'ou', s: /ȣ/gi }, - { l: 'p', s: /[ⓟpṕṗƥᵽꝑꝓꝕ]/gi }, - { l: 'q', s: /[ⓠqɋꝗꝙ]/gi }, - { l: 'r', s: /[ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ]/gi }, - { l: 's', s: /[ⓢsßẞśṥŝṡšṧṣṩșşȿꞩꞅẛ]/gi }, - { l: 't', s: /[ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ]/gi }, - { l: 'tz', s: /ꜩ/gi }, - { l: 'u', s: /[ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ]/gi }, - { l: 'v', s: /[ⓥvṽṿʋꝟʌ]/gi }, - { l: 'vy', s: /ꝡ/gi }, - { l: 'w', s: /[ⓦwẁẃŵẇẅẘẉⱳ]/gi }, - { l: 'x', s: /[ⓧxẋẍ]/gi }, - { l: 'y', s: /[ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ]/gi }, - { l: 'z', s: /[ⓩzźẑżžẓẕƶȥɀⱬꝣ]/gi }, -]; -const defaultMinCountForSearch = 6; -const protectRegexp = new RegExp('[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]', 'g'); - - -/***/ }), - -/***/ 2462: -/*!*************************************************************************!*\ - !*** ./projects/ng-select2-component/src/lib/select2-hint.component.ts ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Select2Hint": () => (/* binding */ Select2Hint) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ 4929); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 2560); - - -let Select2Hint = class Select2Hint { -}; -Select2Hint = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([ - (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Directive)({ selector: 'select2-hint' }) -], Select2Hint); - - - -/***/ }), - -/***/ 300: -/*!*********************************************************************!*\ - !*** ./projects/ng-select2-component/src/lib/select2-interfaces.ts ***! - \*********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); - - - -/***/ }), - -/***/ 8871: -/*!**************************************************************************!*\ - !*** ./projects/ng-select2-component/src/lib/select2-label.component.ts ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Select2Label": () => (/* binding */ Select2Label) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! tslib */ 4929); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 2560); - - -let Select2Label = class Select2Label { -}; -Select2Label = (0,tslib__WEBPACK_IMPORTED_MODULE_0__.__decorate)([ - (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.Directive)({ selector: 'select2-label' }) -], Select2Label); - - - -/***/ }), - -/***/ 9442: -/*!****************************************************************!*\ - !*** ./projects/ng-select2-component/src/lib/select2-utils.ts ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Select2Utils": () => (/* binding */ Select2Utils) -/* harmony export */ }); -/* harmony import */ var _select2_const__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select2-const */ 4128); - -class Select2Utils { - static getOptionByValue(data, value) { - if (Array.isArray(data)) { - for (const groupOrOption of data) { - const options = groupOrOption.options; - if (options) { - for (const option of options) { - if (option.value === value) { - return option; - } - } - } - else if (groupOrOption.value === value) { - return groupOrOption; - } - } - } - return null; - } - static getOptionsByValue(data, value, multiple) { - if (multiple) { - const values = Array.isArray(value) ? value : []; - const result = []; - for (const v of values) { - const option = Select2Utils.getOptionByValue(data, v); - if (option) { - result.push(option); - } - } - return result; - } - return Select2Utils.getOptionByValue(data, value); - } - static getFirstAvailableOption(data) { - if (Array.isArray(data)) { - for (const groupOrOption of data) { - const options = groupOrOption.options; - if (options) { - for (const option of options) { - if (!option.disabled) { - return option.value; - } - } - } - else { - const option = groupOrOption; - if (!option.disabled) { - return option.value; - } - } - } - } - return null; - } - static valueIsNotInFilteredData(filteredData, value) { - if (Select2Utils.isNullOrUndefined(value)) { - return true; - } - for (const groupOrOption of filteredData) { - const options = groupOrOption.options; - if (options) { - for (const option of options) { - if (option.value === value) { - return false; - } - } - } - else if (groupOrOption.value === value) { - return false; - } - } - return true; - } - // eslint-disable-next-line - static getPreviousOption(filteredData, hoveringValue) { - let findIt = Select2Utils.isNullOrUndefined(hoveringValue); - for (let i = filteredData.length - 1; i >= 0; i--) { - const groupOrOption = filteredData[i]; - const options = groupOrOption.options; - if (options) { - for (let j = options.length - 1; j >= 0; j--) { - const option = options[j]; - if (findIt && !option.disabled && !option.hide) { - return option; - } - if (!findIt) { - findIt = option.value === hoveringValue; - } - } - } - else { - const option = groupOrOption; - if (findIt && !option.disabled && !option.hide) { - return option; - } - if (!findIt) { - findIt = option.value === hoveringValue; - } - } - } - return null; - } - // eslint-disable-next-line - static getNextOption(filteredData, hoveringValue) { - let findIt = Select2Utils.isNullOrUndefined(hoveringValue); - for (const groupOrOption of filteredData) { - const options = groupOrOption.options; - if (options) { - for (const option of options) { - if (findIt) { - if (!option.disabled && !option.hide) { - return option; - } - } - else if (!findIt) { - findIt = option.value === hoveringValue; - } - } - } - else { - const option = groupOrOption; - if (findIt) { - if (!option.disabled && !option.hide) { - return option; - } - } - else if (!findIt) { - findIt = option.value === hoveringValue; - } - } - } - return null; - } - static getReduceData(data, maxResults = 0) { - if (maxResults > 0) { - let counter = 0; - const result = []; - // debugger; - for (const groupOrOption of data) { - const options = groupOrOption.options; - if (options) { - const group = { - ...groupOrOption, - options: [], - }; - result.push(group); - for (const item of options) { - group.options.push(item); - counter++; - if (counter === maxResults) { - return { result, reduce: true }; - } - } - } - else { - result.push(groupOrOption); - counter++; - } - if (counter === maxResults) { - return { result, reduce: true }; - } - } - return { result, reduce: false }; - } - else { - return { result: data, reduce: false }; - } - } - static getFilteredData(data, searchText, editPattern) { - if (searchText) { - const result = []; - for (const groupOrOption of data) { - const options = groupOrOption.options; - if (options) { - if (options.some(group => Select2Utils.containSearchText(group.label, searchText, editPattern))) { - const filteredOptions = options.filter(group => Select2Utils.containSearchText(group.label, searchText, editPattern)); - result.push({ - ...groupOrOption, - options: filteredOptions, - }); - } - } - else if (Select2Utils.containSearchText(groupOrOption.label, searchText, editPattern)) { - result.push(groupOrOption); - } - } - return result; - } - else { - return data; - } - } - static getFilteredSelectedData(data, selectedOptions) { - const result = []; - for (const groupOrOption of data) { - const options = groupOrOption.options; - if (options) { - const filteredOptions = options.filter(group => Select2Utils.isSelected(selectedOptions, group, true) === 'false'); - if (filteredOptions.length) { - result.push({ - ...groupOrOption, - options: filteredOptions, - }); - } - } - else if (Select2Utils.isSelected(selectedOptions, groupOrOption, true) === 'false') { - result.push(groupOrOption); - } - } - return result; - } - static isSearchboxHiddex(data, minCountForSearch) { - if (minCountForSearch === '' || - minCountForSearch === undefined || - minCountForSearch === null || - isNaN(+minCountForSearch)) { - minCountForSearch = _select2_const__WEBPACK_IMPORTED_MODULE_0__.defaultMinCountForSearch; - } - const optionCount = Select2Utils.getOptionsCount(data); - return optionCount < +minCountForSearch; - } - static isSelected(options, option, multiple) { - return multiple - ? options && options.some(op => op.value === option.value) - ? 'true' - : 'false' - : options && option.value === options.value - ? 'true' - : 'false'; - } - static removeSelection(options, option) { - for (let i = 0; i < options.length; i++) { - if (options[i].value === option.value) { - options.splice(i, 1); - return; - } - } - } - static getOptionsCount(data) { - let count = 0; - if (Array.isArray(data)) { - for (const groupOrOption of data) { - const options = groupOrOption.options; - if (options) { - count += options.length; - } - else { - count++; - } - } - } - return count; - } - static isNullOrUndefined(value) { - return value === null || value === undefined; - } - static containSearchText(label, searchText, editPattern) { - return searchText - ? Select2Utils.formatSansUnicode(label).match(new RegExp(Select2Utils.formatPattern(searchText, editPattern), 'i')) !== null - : true; - } - static protectPattern(str) { - return str.replace(_select2_const__WEBPACK_IMPORTED_MODULE_0__.protectRegexp, '\\$&'); - } - static formatSansUnicode(str) { - for (const unicodePattern of _select2_const__WEBPACK_IMPORTED_MODULE_0__.unicodePatterns) { - str = str.replace(unicodePattern.s, unicodePattern.l); - } - return str; - } - static formatPattern(str, editPattern) { - str = Select2Utils.formatSansUnicode(Select2Utils.protectPattern(str)); - if (editPattern && typeof editPattern === 'function') { - str = editPattern(str); - } - return str; - } -} - - -/***/ }), - -/***/ 6484: -/*!********************************************************************!*\ - !*** ./projects/ng-select2-component/src/lib/select2.component.ts ***! - \********************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Select2": () => (/* binding */ Select2) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! tslib */ 4929); -/* harmony import */ var _select2_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select2.component.html?ngResource */ 7833); -/* harmony import */ var _select2_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select2.component.scss?ngResource */ 8190); -/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/cdk/overlay */ 5895); -/* harmony import */ var _angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/cdk/scrolling */ 6328); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 2560); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/forms */ 2508); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 2218); -/* harmony import */ var _select2_const__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./select2-const */ 4128); -/* harmony import */ var _select2_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./select2-utils */ 9442); - - - - - - - - - - -let nextUniqueId = 0; -const displaySearchStatusList = ['default', 'hidden', 'always']; -let Select2 = class Select2 { - constructor(_viewportRuler, _changeDetectorRef, _parentForm, _parentFormGroup, _control, tabIndex) { - this._viewportRuler = _viewportRuler; - this._changeDetectorRef = _changeDetectorRef; - this._parentForm = _parentForm; - this._parentFormGroup = _parentFormGroup; - this._control = _control; - this.minCharForSearch = 0; - this.limitSelection = 0; - this.listPosition = 'below'; - /** use the material style */ - this.styleMode = 'default'; - /** maximum results limit (0 = no limit) */ - this.maxResults = 0; - /** message when maximum results */ - this.maxResultsMessage = 'Too many results…'; - /** infinite scroll distance */ - this.infiniteScrollDistance = 1.5; - /** infinite scroll distance */ - this.infiniteScrollThrottle = 150; - /** the max height of the results container when opening the select */ - this.resultMaxHeight = '200px'; - this.update = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); - this.open = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); - this.close = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); - this.focus = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); - this.blur = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); - this.search = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); - this.scroll = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); - this.removeOption = new _angular_core__WEBPACK_IMPORTED_MODULE_4__.EventEmitter(); - this.option = null; - this.isOpen = false; - /** Whether the element is focused or not. */ - this.focused = false; - this.hoveringValue = null; - this.innerSearchText = ''; - this._stateChanges = new rxjs__WEBPACK_IMPORTED_MODULE_5__.Subject(); - this._disabled = false; - this._required = false; - this._readonly = false; - this._multiple = false; - this._overlay = false; - this._resettable = false; - this._hideSelectedItems = false; - this._clickDetection = false; - this._uid = `select2-${nextUniqueId++}`; - this._infiniteScroll = true; - /** View -> model callback called when select has been touched */ - this._onTouched = () => { - // do nothing - }; - /** View -> model callback called when value changes */ - this._onChange = () => { - // do nothing - }; - // eslint-disable-next-line no-self-assign - this.id = this.id; - this._tabIndex = parseInt(tabIndex, 10) || 0; - if (this._control) { - this._control.valueAccessor = this; - } - this._clickDetectionFc = this.clickDetection.bind(this); - } - /** data of options & optiongrps */ - set data(data) { - this._data = data; - this.updateFilteredData(); - } - get multiple() { - return this._multiple; - } - set multiple(value) { - this._multiple = this._coerceBooleanProperty(value); - this.ngOnInit(); - } - /** use the material style */ - get overlay() { - return this._overlay; - } - set overlay(value) { - this._overlay = this._coerceBooleanProperty(value); - } - /** infinite scroll activated */ - get infiniteScroll() { - return this._infiniteScroll; - } - set infiniteScroll(value) { - this._infiniteScroll = this._coerceBooleanProperty(value); - } - get select2Options() { - return this.multiple ? this.option : null; - } - get select2Option() { - return this.multiple ? null : this.option; - } - get searchText() { - return this.innerSearchText; - } - set searchText(text) { - if (this.customSearchEnabled) { - this.search.emit({ - component: this, - value: this._value, - search: text, - }); - } - this.innerSearchText = text; - } - /** minimal data of show the search field */ - get minCountForSearch() { - return this._minCountForSearch; - } - set minCountForSearch(value) { - this._minCountForSearch = value; - this.updateSearchBox(); - } - /** Unique id of the element. */ - get id() { - return this._id; - } - set id(value) { - this._id = value || this._uid; - } - /** Whether the element is required. */ - get required() { - return this._required; - } - set required(value) { - this._required = this._coerceBooleanProperty(value); - } - /** Whether selected items should be hidden. */ - get disabled() { - return this._control ? this._control.disabled : this._disabled; - } - set disabled(value) { - this._disabled = this._coerceBooleanProperty(value); - } - /** Whether items are hidden when has. */ - get hideSelectedItems() { - return this._hideSelectedItems; - } - set hideSelectedItems(value) { - this._hideSelectedItems = this._coerceBooleanProperty(value); - } - /** Whether the element is readonly. */ - get readonly() { - return this._readonly; - } - set readonly(value) { - this._readonly = this._coerceBooleanProperty(value); - } - /** The input element's value. */ - get value() { - return this._value; - } - set value(value) { - if (this.testValueChange(this._value, value)) { - setTimeout(() => { - this._value = value; - this.writeValue(value); - }, 10); - } - } - /** Tab index for the select2 element. */ - get tabIndex() { - return this.disabled ? -1 : this._tabIndex; - } - set tabIndex(value) { - if (typeof value !== 'undefined') { - this._tabIndex = value; - } - } - /** reset with no selected value */ - get resettable() { - return this._resettable; - } - set resettable(value) { - this._resettable = this._coerceBooleanProperty(value); - } - get ariaInvalid() { - return this._isErrorState(); - } - get classMaterial() { - return this.styleMode === 'material'; - } - get classNostyle() { - return this.styleMode === 'noStyle'; - } - get select2above() { - return !this.overlay ? this.listPosition === 'above' : this._isAbobeOverlay(); - } - get _positions() { - if (this.listPosition === 'auto') { - [ - { - originX: 'start', - originY: 'bottom', - overlayX: 'start', - overlayY: 'bottom', - }, - { - originX: 'start', - originY: 'top', - overlayX: 'start', - overlayY: 'top', - }, - ]; - } - else { - return null; - } - } - get resultsElement() { - return this.resultContainer?.nativeElement; - } - ngOnInit() { - this._viewportRuler.change(100).subscribe(() => { - if (this.isOpen) { - this.triggerRect(); - } - }); - const option = _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getOptionsByValue(this._data, this._control ? this._control.value : this.value, this.multiple); - if (option !== null) { - this.option = option; - } - if (!Array.isArray(option)) { - this.hoveringValue = this.value; - } - this.updateSearchBox(); - } - ngAfterViewInit() { - this.cdkConnectedOverlay.positionChange.subscribe((posChange) => { - if (this.listPosition === 'auto' && - posChange.connectionPair?.originY && - this._overlayPosition !== posChange.connectionPair.originY) { - this.triggerRect(); - this._overlayPosition = posChange.connectionPair.originY; - this._changeDetectorRef.detectChanges(); - } - }); - this.selectionElement = this.selection.nativeElement; - this.triggerRect(); - } - ngDoCheck() { - this.updateSearchBox(); - this._dirtyCheckNativeValue(); - if (this._triggerRect) { - if (this.overlayWidth !== this._triggerRect.width) { - this.overlayWidth = this._triggerRect.width; - } - if (this._dropdownRect?.height > 0 && this.overlayHeight !== this._dropdownRect.height) { - this.overlayHeight = this.listPosition === 'auto' ? this._dropdownRect.height : 0; - } - } - } - ngOnDestroy() { - window.document.body.removeEventListener('click', this._clickDetectionFc); - } - updateSearchBox() { - const hidden = this.customSearchEnabled - ? false - : _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.isSearchboxHiddex(this._data, this._minCountForSearch); - if (this.isSearchboxHidden !== hidden) { - this.isSearchboxHidden = hidden; - } - } - hideSearch() { - const displaySearchStatus = displaySearchStatusList.indexOf(this.displaySearchStatus) > -1 ? this.displaySearchStatus : 'default'; - return (displaySearchStatus === 'default' && this.isSearchboxHidden) || displaySearchStatus === 'hidden'; - } - getOptionStyle(option) { - return ('select2-results__option ' + - (option.hide ? 'select2-results__option--hide ' : '') + - (option.value === this.hoveringValue ? 'select2-results__option--highlighted ' : '') + - (option.classes || '')); - } - mouseenter(option) { - if (!option.disabled) { - this.hoveringValue = option.value; - } - } - click(option) { - if (this.testSelection(option)) { - this.select(option); - } - } - reset(e) { - this.select(null); - e.preventDefault(); - e.stopPropagation(); - } - prevChange(event) { - event.stopPropagation(); - } - toggleOpenAndClose() { - if (this.disabled) { - return; - } - this._focus(true); - this.isOpen = !this.isOpen; - if (this.isOpen) { - this.innerSearchText = ''; - this.updateFilteredData(); - this._focusSearchboxOrResultsElement(); - setTimeout(() => { - if (this.option) { - const option = this.option instanceof Array ? this.option[0] : this.option; - this.updateScrollFromOption(option); - } - else if (this.resultsElement) { - this.resultsElement.scrollTop = 0; - } - setTimeout(() => { - this.triggerRect(); - this.cdkConnectedOverlay?.overlayRef?.updatePosition(); - }, 100); - }); - this.open.emit(this); - } - else { - this.close.emit(this); - } - if (this.isOpen && !this._clickDetection) { - setTimeout(() => { - window.document.body.addEventListener('click', this._clickDetectionFc, false); - this._clickDetection = true; - }, _select2_const__WEBPACK_IMPORTED_MODULE_2__.timeout); - } - this._changeDetectorRef.markForCheck(); - } - hasTemplate(option, defaut) { - return (this.templates instanceof _angular_core__WEBPACK_IMPORTED_MODULE_4__.TemplateRef || - this.templates?.[option.templateId] instanceof _angular_core__WEBPACK_IMPORTED_MODULE_4__.TemplateRef || - this.templates?.[defaut] instanceof _angular_core__WEBPACK_IMPORTED_MODULE_4__.TemplateRef); - } - getTemplate(option, defaut) { - return this.hasTemplate(option, defaut) - ? this.templates[option.templateId] || this.templates[defaut] || this.templates - : undefined; - } - triggerRect() { - this._triggerRect = this.selectionElement.getBoundingClientRect(); - this._dropdownRect = this.dropdown?.nativeElement - ? this.dropdown.nativeElement.getBoundingClientRect() - : undefined; - } - testSelection(option) { - if (option.disabled) { - return false; - } - if (!this.multiple || - !this.limitSelection || - (Array.isArray(this._value) && this._value.length < this.limitSelection)) { - return true; - } - return false; - } - testValueChange(value1, value2) { - if (((value1 === null || value1 === undefined) && (value2 === null || value2 === undefined)) || - value1 === value2) { - return false; - } - if (this.multiple && - value1?.length && - value2?.length && - value1.length === value2.length) { - for (const e1 of value1) { - const test = value2.indexOf(e1) > -1; - if (!test) { - return true; - } - } - return false; - } - return true; - } - updateFilteredData() { - setTimeout(() => { - let result = this._data; - if (this.multiple && this.hideSelectedItems) { - result = _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getFilteredSelectedData(result, this.option); - } - if (!this.customSearchEnabled && this.searchText && this.searchText.length >= +this.minCharForSearch) { - result = _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getFilteredData(result, this.searchText, this.editPattern); - } - if (this.maxResults > 0) { - const data = _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getReduceData(result, +this.maxResults); - result = data.result; - this.maxResultsExceeded = data.reduce; - } - else { - this.maxResultsExceeded = false; - } - if (_select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.valueIsNotInFilteredData(result, this.hoveringValue)) { - this.hoveringValue = _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getFirstAvailableOption(result); - } - this.filteredData = result; - this._changeDetectorRef.markForCheck(); - }); - } - clickDetection(e) { - if (!this.ifParentContainsClass(e.target, 'selection')) { - if (this.isOpen && !this.ifParentContainsClass(e.target, 'select2-dropdown')) { - this.toggleOpenAndClose(); - } - if (!this.ifParentContainsId(e.target, this._id)) { - this.clickExit(); - } - } - else if (this.isOpen && !this.ifParentContainsId(e.target, this._id)) { - this.toggleOpenAndClose(); - this.clickExit(); - } - } - clickExit() { - this._focus(false); - window.document.body.removeEventListener('click', this._clickDetectionFc); - this._clickDetection = false; - } - ifParentContainsClass(element, cssClass) { - return this.getParentElementByClass(element, cssClass) !== null; - } - ifParentContainsId(element, id) { - return this.getParentElementById(element, id) !== null; - } - getParentElementByClass(element, cssClass) { - if (this.containClasses(element, cssClass.trim().split(/\s+/))) { - return element; - } - return element.parentElement ? this.getParentElementByClass(element.parentElement, cssClass) : null; - } - getParentElementById(element, id) { - if (element.id === id) { - return element; - } - return element.parentElement ? this.getParentElementById(element.parentElement, id) : null; - } - containClasses(element, cssClasses) { - if (!element.classList) { - return false; - } - for (const cssClass of cssClasses) { - if (!element.classList.contains(cssClass)) { - return false; - } - } - return true; - } - focusin() { - if (!this.disabled) { - this._focus(true); - } - } - focusout() { - if (this.selectionElement && !this.selectionElement.classList.contains('select2-focused')) { - this._focus(false); - this._onTouched(); - } - } - select(option) { - let value; - if (option !== null) { - if (this.multiple) { - const options = this.option; - const index = options.findIndex(op => op.value === option.value); - if (index === -1) { - options.push(option); - } - else { - options.splice(index, 1); - } - value = this.option.map(op => op.value); - } - else { - this.option = option; - if (this.isOpen) { - this.isOpen = false; - this.close.emit(this); - if (this.selectionElement) { - this.selectionElement.focus(); - } - } - value = this.option.value; - } - } - else { - this.option = null; - } - if (this.multiple && this.hideSelectedItems) { - this.updateFilteredData(); - } - if (this._control) { - this._onChange(value); - } - else { - this._value = value; - } - this.update.emit({ - component: this, - value: value, - options: Array.isArray(this.option) ? this.option : this.option ? [this.option] : null, - }); - } - keyDown(e) { - if (this._testKey(e, ['ArrowDown', 40])) { - this.moveDown(); - e.preventDefault(); - } - else if (this._testKey(e, ['ArrowUp', 38])) { - this.moveUp(); - e.preventDefault(); - } - else if (this._testKey(e, ['Enter', 13])) { - this.selectByEnter(); - e.preventDefault(); - } - else if (this._testKey(e, ['Escape', 'Tab', 9, 27]) && this.isOpen) { - this.toggleOpenAndClose(); - this._focus(false); - } - } - openKey(e) { - if (this._testKey(e, ['ArrowDown', 'ArrowUp', 'Enter', 40, 38, 13])) { - this.toggleOpenAndClose(); - e.preventDefault(); - } - else if (this._testKey(e, ['Escape', 'Tab', 9, 27])) { - this._focus(false); - this._onTouched(); - } - } - trackBy(_index, item) { - return item.value; - } - searchUpdate(e) { - this.searchText = e.target.value; - this.updateFilteredData(); - } - isSelected(option) { - return _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.isSelected(this.option, option, this.multiple); - } - isDisabled(option) { - return option.disabled ? 'true' : 'false'; - } - removeSelection(e, option) { - _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.removeSelection(this.option, option); - if (this.multiple && this.hideSelectedItems) { - this.updateFilteredData(); - } - const value = this.option.map(op => op.value); - if (this._control) { - this._onChange(value); - } - else { - this._value = value; - } - this.update.emit({ - component: this, - value: value, - options: Array.isArray(this.option) ? this.option : this.option ? [this.option] : null, - }); - this.removeOption.emit({ - component: this, - value: value, - removedOption: option, - }); - e.preventDefault(); - e.stopPropagation(); - if (this.isOpen) { - this._focusSearchboxOrResultsElement(); - } - } - /** - * Sets the model value. Implemented as part of ControlValueAccessor. - * @param value - */ - writeValue(value) { - this._setSelectionByValue(value); - } - /** - * Saves a callback function to be invoked when the select's value - * changes from user input. Part of the ControlValueAccessor interface - * required to integrate with Angular's core forms API. - * - * @param fn Callback to be triggered when the value changes. - */ - registerOnChange(fn) { - this._onChange = fn; - } - /** - * Saves a callback function to be invoked when the select is blurred - * by the user. Part of the ControlValueAccessor interface required - * to integrate with Angular's core forms API. - * - * @param fn Callback to be triggered when the component has been touched. - */ - registerOnTouched(fn) { - this._onTouched = fn; - } - /** - * Sets whether the component should be disabled. - * Implemented as part of ControlValueAccessor. - * @param isDisabled - */ - setDisabledState(isDisabled) { - this.disabled = isDisabled; - } - onScroll(way) { - this.scroll.emit({ - component: this, - way, - search: this.innerSearchText, - }); - } - _isErrorState() { - const isInvalid = this._control && this._control.invalid; - const isTouched = this._control && this._control.touched; - const isSubmitted = (this._parentFormGroup && this._parentFormGroup.submitted) || - (this._parentForm && this._parentForm.submitted); - return !!(isInvalid && (isTouched || isSubmitted)); - } - moveUp() { - this.updateScrollFromOption(_select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getPreviousOption(this.filteredData, this.hoveringValue)); - } - moveDown() { - this.updateScrollFromOption(_select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getNextOption(this.filteredData, this.hoveringValue)); - } - updateScrollFromOption(option) { - if (option) { - this.hoveringValue = option.value; - const domElement = this.results.find(r => r.nativeElement.innerText.trim() === option.label); - if (domElement && this.resultsElement) { - this.resultsElement.scrollTop = 0; - const listClientRect = this.resultsElement.getBoundingClientRect(); - const optionClientRect = domElement.nativeElement.getBoundingClientRect(); - this.resultsElement.scrollTop = optionClientRect.top - listClientRect.top; - } - } - } - selectByEnter() { - if (this.hoveringValue) { - const option = _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getOptionByValue(this._data, this.hoveringValue); - this.select(option); - } - } - _testKey(event, refs = []) { - return this._isKey(this._getKey(event), refs); - } - _getKey(event) { - let code; - if (event.key !== undefined) { - code = event.key; - } - else if (event['keyIdentifier'] !== undefined) { - code = event['keyIdentifier']; - } - else if (event['keyCode'] !== undefined) { - code = event['keyCode']; - } - else { - event.preventDefault(); - } - return code; - } - _isKey(code, refs = []) { - return refs && refs.length > 0 ? refs.indexOf(code) !== -1 : false; - } - /** - * Sets the selected option based on a value. If no option can be - * found with the designated value, the select trigger is cleared. - */ - _setSelectionByValue(value) { - if (this.option || (value !== undefined && value !== null)) { - const isArray = Array.isArray(value); - if (this.multiple && value && !isArray) { - throw new Error('Non array value.'); - } - else if (this._data) { - if (this.multiple) { - this.option = []; // if value is null, then empty option and return - if (isArray) { - // value is not null. Preselect value - const selectedValues = _select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getOptionsByValue(this._data, value, this.multiple); - selectedValues.map(item => this.select(item)); - } - } - else { - this.select(_select2_utils__WEBPACK_IMPORTED_MODULE_3__.Select2Utils.getOptionByValue(this._data, value)); - } - } - else if (this._control) { - this._control.viewToModelUpdate(value); - } - this._changeDetectorRef.markForCheck(); - } - } - /** Does some manual dirty checking on the native input `value` property. */ - _dirtyCheckNativeValue() { - const newValue = this.value; - if (this._previousNativeValue !== newValue) { - this._previousNativeValue = newValue; - this._stateChanges.next(); - } - } - _coerceBooleanProperty(value) { - return value != null && `${value}` !== 'false'; - } - _focusSearchboxOrResultsElement() { - if (!this.isSearchboxHidden) { - setTimeout(() => { - if (this.searchInput && this.searchInput.nativeElement) { - this.searchInput.nativeElement.focus(); - } - }); - } - else if (this.resultsElement) { - this.resultsElement.focus(); - } - } - _focus(state) { - if (!state && this.focused) { - this.focused = state; - this.blur.emit(this); - } - else if (state && !this.focused) { - this.focused = state; - this.focus.emit(this); - } - } - _isAbobeOverlay() { - return this.overlay && this._overlayPosition && this.listPosition === 'auto' - ? this._overlayPosition === 'top' - : this.listPosition === 'above'; - } -}; -Select2.ctorParameters = () => [ - { type: _angular_cdk_scrolling__WEBPACK_IMPORTED_MODULE_6__.ViewportRuler }, - { type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ChangeDetectorRef }, - { type: _angular_forms__WEBPACK_IMPORTED_MODULE_7__.NgForm, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Optional }] }, - { type: _angular_forms__WEBPACK_IMPORTED_MODULE_7__.FormGroupDirective, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Optional }] }, - { type: _angular_forms__WEBPACK_IMPORTED_MODULE_7__.NgControl, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Self }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Optional }] }, - { type: String, decorators: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Attribute, args: ['tabindex',] }] } -]; -Select2.propDecorators = { - data: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - minCharForSearch: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - displaySearchStatus: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - placeholder: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - customSearchEnabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - limitSelection: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - listPosition: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - multiple: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - overlay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - styleMode: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - noResultMessage: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - maxResults: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - maxResultsMessage: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - infiniteScrollDistance: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - infiniteScrollThrottle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - infiniteScroll: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - editPattern: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - templates: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - resultMaxHeight: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - update: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output }], - open: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output }], - close: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output }], - focus: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output }], - blur: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output }], - search: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output }], - scroll: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output }], - removeOption: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Output }], - minCountForSearch: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - id: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }, { type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostBinding, args: ['id',] }], - required: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - disabled: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - hideSelectedItems: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - readonly: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - value: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - tabIndex: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - resettable: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.Input }], - ariaInvalid: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostBinding, args: ['attr.aria-invalid',] }], - classMaterial: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostBinding, args: ['class.material',] }], - classNostyle: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostBinding, args: ['class.nostyle',] }], - select2above: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.HostBinding, args: ['class.select2-above',] }], - cdkConnectedOverlay: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ViewChild, args: [_angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_8__.CdkConnectedOverlay,] }], - selection: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ViewChild, args: ['selection', { static: true },] }], - resultContainer: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ViewChild, args: ['results',] }], - results: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ViewChildren, args: ['result',] }], - searchInput: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ViewChild, args: ['searchInput',] }], - dropdown: [{ type: _angular_core__WEBPACK_IMPORTED_MODULE_4__.ViewChild, args: ['dropdown',] }] -}; -Select2 = (0,tslib__WEBPACK_IMPORTED_MODULE_9__.__decorate)([ - (0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.Component)({ - selector: 'select2', - template: _select2_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, - styles: [_select2_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__] - }) -], Select2); - - - -/***/ }), - -/***/ 1286: -/*!*****************************************************************!*\ - !*** ./projects/ng-select2-component/src/lib/select2.module.ts ***! - \*****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Select2Module": () => (/* binding */ Select2Module) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! tslib */ 4929); -/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/cdk/overlay */ 5895); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 4666); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 2560); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/forms */ 2508); -/* harmony import */ var ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ngx-infinite-scroll */ 7364); -/* harmony import */ var _select2_hint_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./select2-hint.component */ 2462); -/* harmony import */ var _select2_label_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./select2-label.component */ 8871); -/* harmony import */ var _select2_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./select2.component */ 6484); - - - - - - - - - -let Select2Module = class Select2Module { -}; -Select2Module = (0,tslib__WEBPACK_IMPORTED_MODULE_3__.__decorate)([ - (0,_angular_core__WEBPACK_IMPORTED_MODULE_4__.NgModule)({ - imports: [_angular_common__WEBPACK_IMPORTED_MODULE_5__.CommonModule, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.FormsModule, _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_7__.OverlayModule, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.ReactiveFormsModule, ngx_infinite_scroll__WEBPACK_IMPORTED_MODULE_8__.InfiniteScrollModule], - declarations: [_select2_hint_component__WEBPACK_IMPORTED_MODULE_0__.Select2Hint, _select2_label_component__WEBPACK_IMPORTED_MODULE_1__.Select2Label, _select2_component__WEBPACK_IMPORTED_MODULE_2__.Select2], - exports: [_angular_forms__WEBPACK_IMPORTED_MODULE_6__.FormsModule, _angular_forms__WEBPACK_IMPORTED_MODULE_6__.ReactiveFormsModule, _select2_hint_component__WEBPACK_IMPORTED_MODULE_0__.Select2Hint, _select2_label_component__WEBPACK_IMPORTED_MODULE_1__.Select2Label, _select2_component__WEBPACK_IMPORTED_MODULE_2__.Select2], - }) -], Select2Module); - - - -/***/ }), - -/***/ 7365: -/*!*********************************************************!*\ - !*** ./projects/ng-select2-component/src/public_api.ts ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Select2": () => (/* reexport safe */ _lib_select2_component__WEBPACK_IMPORTED_MODULE_2__.Select2), -/* harmony export */ "Select2Hint": () => (/* reexport safe */ _lib_select2_hint_component__WEBPACK_IMPORTED_MODULE_3__.Select2Hint), -/* harmony export */ "Select2Label": () => (/* reexport safe */ _lib_select2_label_component__WEBPACK_IMPORTED_MODULE_4__.Select2Label), -/* harmony export */ "Select2Module": () => (/* reexport safe */ _lib_select2_module__WEBPACK_IMPORTED_MODULE_6__.Select2Module), -/* harmony export */ "Select2Utils": () => (/* reexport safe */ _lib_select2_utils__WEBPACK_IMPORTED_MODULE_5__.Select2Utils), -/* harmony export */ "defaultMinCountForSearch": () => (/* reexport safe */ _lib_select2_const__WEBPACK_IMPORTED_MODULE_1__.defaultMinCountForSearch), -/* harmony export */ "protectRegexp": () => (/* reexport safe */ _lib_select2_const__WEBPACK_IMPORTED_MODULE_1__.protectRegexp), -/* harmony export */ "timeout": () => (/* reexport safe */ _lib_select2_const__WEBPACK_IMPORTED_MODULE_1__.timeout), -/* harmony export */ "unicodePatterns": () => (/* reexport safe */ _lib_select2_const__WEBPACK_IMPORTED_MODULE_1__.unicodePatterns) -/* harmony export */ }); -/* harmony import */ var _lib_select2_interfaces__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./lib/select2-interfaces */ 300); -/* harmony import */ var _lib_select2_const__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./lib/select2-const */ 4128); -/* harmony import */ var _lib_select2_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./lib/select2.component */ 6484); -/* harmony import */ var _lib_select2_hint_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./lib/select2-hint.component */ 2462); -/* harmony import */ var _lib_select2_label_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./lib/select2-label.component */ 8871); -/* harmony import */ var _lib_select2_utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./lib/select2-utils */ 9442); -/* harmony import */ var _lib_select2_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./lib/select2.module */ 1286); -/* - * Public API Surface of ng-select2-component - */ - - - - - - - - - - -/***/ }), - -/***/ 3907: -/*!*******************************************!*\ - !*** ./src/app/app-examples.component.ts ***! - \*******************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AppExamplesComponent": () => (/* binding */ AppExamplesComponent) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! tslib */ 4929); -/* harmony import */ var _app_examples_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app-examples.component.html?ngResource */ 5805); -/* harmony import */ var _app_examples_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-examples.component.scss?ngResource */ 8303); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/core */ 2560); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/forms */ 2508); -/* harmony import */ var _app_data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app.data */ 161); - - - - - - -let AppExamplesComponent = class AppExamplesComponent { - constructor(fb) { - this.fb = fb; - this.data1 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data1; - this.data2 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data2; - this.data3 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data3; - this.data4 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data3)); - this.data5 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data5; - this.data6 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data6; - this.data7 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data3)); - this.data8 = []; - this.data9 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data1)); - this.data10 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data1)); - this.data11 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data1)); - this.data12 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data1)); - this.data13 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data13; - this.data15 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data2; - this.data16 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data2; - this.data17 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data17; - this.data18 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data18; - this.data19 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data19; - this.data20 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data19)); - this.data21 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data19)); - this.data22 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data22; - this.data23 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data23; - this.data24 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data24; - this.data25 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data23)); - this.data26 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data26; - this.data28 = _app_data__WEBPACK_IMPORTED_MODULE_2__.data28; - this.minCountForSearch = Infinity; - this.value1 = 'CA'; - this.value2 = 'CA'; - this.value3 = 'foo'; - this.value4 = 'bar'; - this.value5 = 0; - this.value6 = 'foo3'; - this.value7 = ''; - this.value8 = ''; - this.value9 = []; - this.value10 = []; - this.value11 = 'CA'; - this.value12 = 'CA'; - this.value13 = true; - this.value15 = ''; - this.value16 = ''; - this.value17 = ''; - this.value18 = ''; - this.value19 = ''; - this.value20 = ''; - this.value21 = 'foo6'; - this.value22 = ''; - this.value23 = ''; - this.value24 = ''; - this.value25 = ''; - this.value26 = ''; - this.value28 = ''; - this.limitSelection = 0; - this.overlay = false; - this.fg = new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormGroup({ - state: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormControl(), - }); - this.ctrlForm = this.fb.group({ - test11: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormControl(null, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required), - }); - this.ctrlForm2 = this.fb.group({ - test5: new _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormControl(0, _angular_forms__WEBPACK_IMPORTED_MODULE_3__.Validators.required), - }); - this.fg.patchValue(this.formData()); - } - addItem() { - const count = this.data6.length + 1; - this.data6.push({ value: 'foo' + count, label: 'foo' + count }); - } - removeItem() { - this.data6.pop(); - } - open(key, event) { - console.log(key, event); - } - close(key, event) { - console.log(key, event); - } - focus(key, event) { - console.log(key, event); - } - blur(key, event) { - console.log(key, event); - } - change(key, event) { - console.log(key, event); - } - search(key, event) { - console.log(key, event); - } - open8() { - this.data8 = JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data2)); - } - close8() { - alert('close'); - } - search8(text) { - this.data8 = text - ? JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data2)).filter(option => option.label.toLowerCase().indexOf(text.toLowerCase()) > -1) - : JSON.parse(JSON.stringify(_app_data__WEBPACK_IMPORTED_MODULE_2__.data2)); - } - reset11() { - const test11 = this.ctrlForm.get('test11'); - if (test11) { - test11.reset(); - } - } - change11() { - const test11 = this.ctrlForm.get('test11'); - if (test11) { - test11.setValue('UT'); - } - } - scroll26(event) { - console.log('scroll26', event); - if (event.way === 'down' && !event.search) { - const l = this.data26.length; - for (let i = 1 + l; i <= 50 + l; i++) { - this.data26.push({ value: i, label: '>' + i }); - } - } - } - update(key, event) { - this[key] = event.value; - } - resetForm() { - this.fg.reset(this.formData()); - } - print() { - console.log('FormControl', this.fg.value); - } - formData() { - return { - state: ['CA', 'NV'], - }; - } -}; -AppExamplesComponent.ctorParameters = () => [ - { type: _angular_forms__WEBPACK_IMPORTED_MODULE_3__.UntypedFormBuilder } -]; -AppExamplesComponent = (0,tslib__WEBPACK_IMPORTED_MODULE_4__.__decorate)([ - (0,_angular_core__WEBPACK_IMPORTED_MODULE_5__.Component)({ - selector: 'app-root', - template: _app_examples_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, - styles: [_app_examples_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__] - }) -], AppExamplesComponent); - - - -/***/ }), - -/***/ 380: -/*!**************************************!*\ - !*** ./src/app/app-gen.component.ts ***! - \**************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AppGenComponent": () => (/* binding */ AppGenComponent) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! tslib */ 4929); -/* harmony import */ var _app_gen_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app-gen.component.html?ngResource */ 4380); -/* harmony import */ var _app_gen_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-gen.component.scss?ngResource */ 6913); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/core */ 2560); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/forms */ 2508); -/* harmony import */ var bowser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! bowser */ 3962); -/* harmony import */ var bowser__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(bowser__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var json2html_lib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! json2html-lib */ 1294); -/* harmony import */ var _app_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app.data */ 161); - - - - - - - - -let AppGenComponent = class AppGenComponent { - constructor(fb) { - this.fb = fb; - this.data = _app_data__WEBPACK_IMPORTED_MODULE_3__.data24; - this.ctrlForm = this.fb.group({ - // data - json: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(JSON.stringify(this.data, null, 2)), - // tags - label: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - hint: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - // parameters - disabled: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - overlay: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - minCharForSearch: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - minCountForSearch: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - displaySearchStatus: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - placeholder: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - customSearchEnabled: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - multiple: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - resettable: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - limitSelection: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - hideSelectedItems: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - resultMaxHeight: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - listPosition: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - infiniteScroll: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - infiniteScrollDistance: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - infiniteScrollThrottle: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - styleMode: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - noResultMessage: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - maxResults: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - maxResultsMessage: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - // template - template: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - // event - update: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - open: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - close: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - focus: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - blur: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - search: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - scroll: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - removeOption: new _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormControl(), - }); - this.ctrlForm.valueChanges.subscribe(() => { - const a = this.ctrlForm.value; - console.log(a); - }); - this.ctrlForm.valueChanges.subscribe(_ => this.codeGeneration()); - this.ctrlForm.get('json').valueChanges.subscribe(value => this.changeJson(value)); - } - ngAfterContentInit() { - this.codeGeneration(); - } - getTemplate(template, option, group, template1, template2) { - switch (this.ctrlForm.value.template) { - case 'ref': - return template; - case 'option-group': - return { option: option, group: group }; - case 'templateId': - return { template1: template1, template2: template2 }; - } - } - _event(type, event) { - if (this.ctrlForm.value && this.ctrlForm.value[type]) { - console.log('Event', type, event); - } - } - codeGeneration() { - const json = { - tag: 'select2', - attrs: { - '[data]': 'data', - }, - body: [], - }; - const value = this.ctrlForm.value; - const attrs = json.attrs; - const body = json.body; - // tags - if (value.label) { - body.push({ tag: 'select2-label', body: value.label, inline: true }); - } - if (value.hint) { - body.push({ tag: 'select2-hint', body: value.hint, inline: true }); - } - // parameters - if (value.disabled) { - attrs.disabled = this._testBoolean(value.disabled); - } - if (value.overlay) { - attrs.overlay = this._testBoolean(value.overlay); - } - if (value.minCharForSearch) { - attrs.minCharForSearch = value.minCharForSearch; - } - if (value.minCountForSearch) { - attrs.minCountForSearch = value.minCountForSearch; - } - if (value.displaySearchStatus) { - attrs.displaySearchStatus = value.displaySearchStatus; - } - if (value.placeholder) { - attrs.placeholder = value.placeholder; - } - if (value.customSearchEnabled) { - attrs.customSearchEnabled = this._testBoolean(value.customSearchEnabled); - } - if (value.multiple) { - attrs.multiple = this._testBoolean(value.multiple); - } - if (value.resettable) { - attrs.resettable = this._testBoolean(value.resettable); - } - if (value.limitSelection) { - attrs.limitSelection = value.limitSelection; - } - if (value.hideSelectedItems) { - attrs.hideSelectedItems = this._testBoolean(value.hideSelectedItems); - } - if (value.resultMaxHeight) { - attrs.resultMaxHeight = value.resultMaxHeight; - } - if (value.listPosition) { - attrs.listPosition = value.listPosition; - } - if (value.infiniteScroll) { - attrs.infiniteScroll = this._testBoolean(value.infiniteScroll); - } - if (value.infiniteScrollDistance) { - attrs.infiniteScrollDistance = value.infiniteScrollDistance; - } - if (value.infiniteScrollThrottle) { - attrs.infiniteScrollThrottle = value.infiniteScrollThrottle; - } - if (value.styleMode) { - attrs.styleMode = value.styleMode; - } - if (value.noResultMessage) { - attrs.noResultMessage = value.noResultMessage; - } - if (value.maxResultsMessage) { - attrs.maxResultsMessage = value.maxResultsMessage; - } - if (value.maxResults) { - attrs.maxResults = value.maxResults; - } - // template - switch (value.template) { - case 'ref': - attrs['[templates]'] = 'template'; - body.push({ - tag: 'ng-template', - attrs: { '#template': null, 'let-data': 'data' }, - body: ' {{data?.color}}: {{data?.name}}', - }); - break; - case 'option-group': - attrs['[templates]'] = '{option : option, group: group}'; - body.push({ - tag: 'ng-template', - attrs: { '#option': null, 'let-data': 'data' }, - body: '{{data?.name}}', - }, { - tag: 'ng-template', - attrs: { '#group': null, 'let-label': 'label' }, - body: 'Group: {{label}}', - }); - break; - case 'templateId': - attrs['[templates]'] = '{template1 : template1, template2: template2}'; - body.push({ - tag: 'ng-template', - attrs: { '#template1': null, 'let-data': 'data' }, - body: '{{data?.name}}', - }, { - tag: 'ng-template', - attrs: { '#template2': null, 'let-label': 'label', 'let-data': 'data' }, - body: '{{label}} : {{data?.color}}', - }); - break; - } - // event - if (value.update) { - attrs['(update)'] = '_update($event)'; - } - if (value.open) { - attrs['(open)'] = '_open($event)'; - } - if (value.close) { - attrs['(close)'] = '_close($event)'; - } - if (value.focus) { - attrs['(focus)'] = '_focus($event)'; - } - if (value.blur) { - attrs['(blur)'] = '_blur($event)'; - } - if (value.search) { - attrs['(search)'] = '_search($event)'; - } - this.html = new json2html_lib__WEBPACK_IMPORTED_MODULE_5__.Json2html(json).toString(); - } - changeJson(value) { - this.jsonError = ''; - try { - this.data = JSON.parse(value); - } - catch (error) { - this.jsonError = this._parseJsonError(value, error); - } - } - _parseJsonError(value, error) { - let returnMessage = ''; - const message = error.message.match(/[^\n]+/)[0]; - const browser = bowser__WEBPACK_IMPORTED_MODULE_2__.getParser(window.navigator.userAgent).getResult(); - if (browser.browser.name === 'Chrome') { - if (message.match(/at position/)) { - const position = parseInt(message.match(/at position (\d+)/)[1], 10); - const lines = value.split(/\n/); - let l = 1; - for (const line of lines) { - if (line) { - if (l + line.length >= position) { - returnMessage = - message + '
' + line + '\n' + ' '.repeat(position - l + 1) + '^
'; - break; - } - l += line.length + 1; - } - } - } - else { - returnMessage = message; - } - } - else if (browser.browser.name === 'Firefox') { - if (message.match(/at line/)) { - const [, line, column] = message.match(/at line (\d+) column (\d+)/); - const lines = value.split(/\n/); - if (lines[+line - 1]) { - returnMessage = - message + '
' + lines[+line - 1] + '\n' + ' '.repeat(+column - 1) + '^
'; - } - else { - returnMessage = message; - } - } - else { - returnMessage = message; - } - } - else { - returnMessage = message; - } - return returnMessage; - } - _testBoolean(value) { - return value ? null : undefined; - } -}; -AppGenComponent.ctorParameters = () => [ - { type: _angular_forms__WEBPACK_IMPORTED_MODULE_4__.UntypedFormBuilder } -]; -AppGenComponent = (0,tslib__WEBPACK_IMPORTED_MODULE_6__.__decorate)([ - (0,_angular_core__WEBPACK_IMPORTED_MODULE_7__.Component)({ - selector: 'app-root', - template: _app_gen_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, - styles: [_app_gen_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__] - }) -], AppGenComponent); - - - -/***/ }), - -/***/ 5041: -/*!**********************************!*\ - !*** ./src/app/app.component.ts ***! - \**********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AppComponent": () => (/* binding */ AppComponent) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ 4929); -/* harmony import */ var _app_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app.component.html?ngResource */ 3383); -/* harmony import */ var _app_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app.component.scss?ngResource */ 9259); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 2560); - - - - -let AppComponent = class AppComponent { -}; -AppComponent = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__decorate)([ - (0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.Component)({ - selector: 'app-root', - template: _app_component_html_ngResource__WEBPACK_IMPORTED_MODULE_0__, - encapsulation: _angular_core__WEBPACK_IMPORTED_MODULE_3__.ViewEncapsulation.None, - styles: [_app_component_scss_ngResource__WEBPACK_IMPORTED_MODULE_1__] - }) -], AppComponent); - - - -/***/ }), - -/***/ 161: -/*!*****************************!*\ - !*** ./src/app/app.data.ts ***! - \*****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "data1": () => (/* binding */ data1), -/* harmony export */ "data13": () => (/* binding */ data13), -/* harmony export */ "data17": () => (/* binding */ data17), -/* harmony export */ "data18": () => (/* binding */ data18), -/* harmony export */ "data19": () => (/* binding */ data19), -/* harmony export */ "data2": () => (/* binding */ data2), -/* harmony export */ "data22": () => (/* binding */ data22), -/* harmony export */ "data23": () => (/* binding */ data23), -/* harmony export */ "data24": () => (/* binding */ data24), -/* harmony export */ "data26": () => (/* binding */ data26), -/* harmony export */ "data28": () => (/* binding */ data28), -/* harmony export */ "data3": () => (/* binding */ data3), -/* harmony export */ "data5": () => (/* binding */ data5), -/* harmony export */ "data6": () => (/* binding */ data6) -/* harmony export */ }); -const data1 = [ - { - label: 'Alaskan/Hawaiian Time Zone', - options: [ - { value: 'AK', label: 'Alaska' }, - { value: 'HI', label: 'Hawaii', disabled: true }, - ], - }, - { - label: 'Pacific Time Zone', - options: [ - { value: 'CA', label: 'California' }, - { value: 'NV', label: 'Nevada' }, - { value: 'OR', label: 'Oregon' }, - { value: 'WA', label: 'Washington' }, - ], - }, - { - label: 'Mountain Time Zone', - options: [ - { value: 'AZ', label: 'Arizona' }, - { value: 'CO', label: 'Colorado' }, - { value: 'ID', label: 'Idaho' }, - { value: 'MT', label: 'Montana' }, - { value: 'NE', label: 'Nebraska' }, - { value: 'NM', label: 'New Mexico' }, - { value: 'ND', label: 'North Dakota' }, - { value: 'UT', label: 'Utah' }, - { value: 'WY', label: 'Wyoming' }, - ], - }, - { - label: 'Central Time Zone', - options: [ - { value: 'AL', label: 'Alabama' }, - { value: 'AR', label: 'Arkansas' }, - { value: 'IL', label: 'Illinois' }, - { value: 'IA', label: 'Iowa' }, - { value: 'KS', label: 'Kansas' }, - { value: 'KY', label: 'Kentucky' }, - { value: 'LA', label: 'Louisiana' }, - { value: 'MN', label: 'Minnesota' }, - { value: 'MS', label: 'Mississippi' }, - { value: 'MO', label: 'Missouri' }, - { value: 'OK', label: 'Oklahoma' }, - { value: 'SD', label: 'South Dakota' }, - { value: 'TX', label: 'Texas' }, - { value: 'TN', label: 'Tennessee' }, - { value: 'WI', label: 'Wisconsin' }, - ], - }, - { - label: 'Eastern Time Zone', - options: [ - { value: 'CT', label: 'Connecticut' }, - { value: 'DE', label: 'Delaware' }, - { value: 'FL', label: 'Florida' }, - { value: 'GA', label: 'Georgia' }, - { value: 'IN', label: 'Indiana' }, - { value: 'ME', label: 'Maine' }, - { value: 'MD', label: 'Maryland' }, - { value: 'MA', label: 'Massachusetts' }, - { value: 'MI', label: 'Michigan' }, - { value: 'NH', label: 'New Hampshire' }, - { value: 'NJ', label: 'New Jersey' }, - { value: 'NY', label: 'New York' }, - { value: 'NC', label: 'North Carolina' }, - { value: 'OH', label: 'Ohio' }, - { value: 'PA', label: 'Pennsylvania' }, - { value: 'RI', label: 'Rhode Island' }, - { value: 'SC', label: 'South Carolina' }, - { value: 'VT', label: 'Vermont' }, - { value: 'VA', label: 'Virginia' }, - { value: 'WV', label: 'West Virginia' }, - ], - }, -]; -const data2 = [ - { value: 'AK', label: 'Alaska' }, - { value: 'HI', label: 'Hawaii', disabled: true }, - { value: 'CA', label: 'California' }, - { value: 'NV', label: 'Nevada' }, - { value: 'OR', label: 'Oregon' }, - { value: 'WA', label: 'Washington' }, - { value: 'AZ', label: 'Arizona' }, - { value: 'CO', label: 'Colorado' }, - { value: 'ID', label: 'Idaho' }, - { value: 'MT', label: 'Montana' }, - { value: 'NE', label: 'Nebraska' }, - { value: 'NM', label: 'New Mexico' }, - { value: 'ND', label: 'North Dakota' }, - { value: 'UT', label: 'Utah' }, - { value: 'WY', label: 'Wyoming' }, - { value: 'AL', label: 'Alabama' }, - { value: 'AR', label: 'Arkansas' }, - { value: 'IL', label: 'Illinois' }, - { value: 'IA', label: 'Iowa' }, - { value: 'KS', label: 'Kansas' }, - { value: 'KY', label: 'Kentucky' }, - { value: 'LA', label: 'Louisiana' }, - { value: 'MN', label: 'Minnesota' }, - { value: 'MS', label: 'Mississippi' }, - { value: 'MO', label: 'Missouri' }, - { value: 'OK', label: 'Oklahoma' }, - { value: 'SD', label: 'South Dakota' }, - { value: 'TX', label: 'Texas' }, - { value: 'TN', label: 'Tennessee' }, - { value: 'WI', label: 'Wisconsin' }, - { value: 'CT', label: 'Connecticut' }, - { value: 'DE', label: 'Delaware' }, - { value: 'FL', label: 'Florida' }, - { value: 'GA', label: 'Georgia' }, - { value: 'IN', label: 'Indiana' }, - { value: 'ME', label: 'Maine' }, - { value: 'MD', label: 'Maryland' }, - { value: 'MA', label: 'Massachusetts' }, - { value: 'MI', label: 'Michigan' }, - { value: 'NH', label: 'New Hampshire' }, - { value: 'NJ', label: 'New Jersey' }, - { value: 'NY', label: 'New York' }, - { value: 'NC', label: 'North Carolina' }, - { value: 'OH', label: 'Ohio' }, - { value: 'PA', label: 'Pennsylvania' }, - { value: 'RI', label: 'Rhode Island' }, - { value: 'SC', label: 'South Carolina' }, - { value: 'VT', label: 'Vermont' }, - { value: 'VA', label: 'Virginia', disabled: true }, - { value: 'WV', label: 'West Virginia' }, -]; -const data3 = [ - { value: 'foo', label: 'foo' }, - { value: 'bar', label: 'bar' }, - { value: 'baz', label: 'baz' }, -]; -const data5 = [ - { value: 0, label: '0' }, - { value: 1, label: '1' }, - { value: 2, label: '2' }, - { value: 3, label: '3' }, - { value: 4, label: '4' }, - { value: 5, label: '5' }, - { value: 6, label: '6' }, -]; -const data6 = [ - { value: 'foo1', label: 'foo1' }, - { value: 'foo2', label: 'foo2' }, - { value: 'foo3', label: 'foo3' }, - { value: 'foo4', label: 'foo4' }, - { value: 'foo5', label: 'foo5' }, - { value: 'foo6', label: 'foo6' }, -]; -const data18 = [ - { - label: 'Mainland region', - options: [ - { value: 'FR-ARA', label: 'Auvergne-Rhône-Alpes' }, - { value: 'FR-BFC', label: 'Bourgogne-Franche-Comté' }, - { value: 'FR-BRE', label: 'Bretagne' }, - { value: 'FR-CVL', label: 'Centre-Val de Loire' }, - { value: 'FR-COR', label: 'Corse' }, - { value: 'FR-GES', label: 'Grand Est' }, - { value: 'FR-HDF', label: 'Hauts-de-France' }, - { value: 'FR-IDF', label: 'Île-de-France' }, - { value: 'FR-NOR', label: 'Normandie' }, - { value: 'FR-NAQ', label: 'Nouvelle-Aquitaine' }, - { value: 'FR-OCC', label: 'Occitanie' }, - { value: 'FR-PDL', label: 'Pays de la Loire' }, - { value: 'FR-PAC', label: "Provence-Alpes-Côte d'Azur" }, - ], - }, - { - label: 'Overseas region', - options: [ - { value: 'FR-GP', label: 'Guadeloupe' }, - { value: 'FR-MQ', label: 'Martinique' }, - { value: 'FR-GF', label: 'Guyane' }, - { value: 'FR-RE', label: 'La Réunion' }, - { value: 'FR-YT', label: 'Mayotte' }, - ], - }, -]; -const data19 = [ - { value: 'foo1', label: 'foo1' }, - { value: 'foo2', label: 'foo2' }, - { value: 'foo3', label: 'foo3' }, - { value: 'foo4', label: 'foo4' }, - { value: 'foo5', label: 'foo5' }, - { value: 'foo6', label: 'foo6' }, - { value: 'foo7', label: 'foo7' }, - { value: 'foo8', label: 'foo8' }, - { value: 'foo9', label: 'foo9', hide: true }, -]; -const data13 = [ - { value: true, label: 'true' }, - { value: false, label: 'false' }, -]; -const data17 = [ - { - value: 'fr', - label: `
-
France
-
Europe
-
`, - }, - { - value: 'sp', - label: `
-
Spain
-
Europe
-
`, - }, - { - value: 'ch', - label: `
-
China
-
Asia
-
`, - }, -]; -const data22 = [ - { value: 'heliotrope', label: 'Heliotrope', classes: 'white flower', id: 'option-heliotrope' }, - { value: 'hibiscus', label: 'Hibiscus', classes: 'red flower', id: 'option-hibiscus' }, - { value: 'lily', label: 'Lily', classes: 'white flower', id: 'option-lily' }, - { value: 'marigold', label: 'Marigold', classes: 'red flower', id: 'option-marigold' }, - { value: 'petunia', label: 'Petunia', classes: 'white flower', id: 'option-petunia' }, - { value: 'sunflower', label: 'Sunflower', classes: 'yellow flower', id: 'option-sunflower' }, -]; -const data23 = [ - { - value: 'heliotrope', - label: 'Heliotrope', - data: { color: 'white', name: 'Heliotrope' }, - templateId: 'template1', - id: 'option-heliotrope', - }, - { - value: 'hibiscus', - label: 'Hibiscus', - data: { color: 'red', name: 'Hibiscus' }, - templateId: 'template1', - id: 'option-hibiscus', - }, - { - value: 'lily', - label: 'Lily', - data: { color: 'white', name: 'Lily' }, - templateId: 'template2', - id: 'option-lily', - }, - { - value: 'marigold', - label: 'Marigold', - data: { color: 'red', name: 'Marigold' }, - templateId: 'template2', - id: 'option-marigold', - }, - { - value: 'petunia', - label: 'Petunia', - data: { color: 'white', name: 'Petunia' }, - templateId: 'template3', - id: 'option-petunia', - }, - { - value: 'sunflower', - label: 'Sunflower', - data: { color: 'yellow', name: 'Sunflower' }, - templateId: 'template3', - id: 'option-sunflower', - }, -]; -const data24 = [ - { - label: 'Red', - data: { name: '(Red)' }, - options: [ - { - value: 'hibiscus', - label: 'Hibiscus', - data: { color: 'red', name: 'Hibiscus' }, - templateId: 'template1', - id: 'option-hibiscus', - }, - { - value: 'marigold', - label: 'Marigold', - data: { color: 'red', name: 'Marigold' }, - templateId: 'template2', - id: 'option-marigold', - }, - ], - }, - { - label: 'Yellow', - data: { name: '(Yellow)' }, - options: [ - { - value: 'sunflower', - label: 'Sunflower', - data: { color: 'yellow', name: 'Sunflower' }, - templateId: 'template3', - id: 'option-sunflower', - }, - ], - }, - { - label: 'White', - data: { name: '(White)' }, - options: [ - { - value: 'heliotrope', - label: 'Heliotrope', - data: { color: 'white', name: 'Heliotrope' }, - templateId: 'template1', - id: 'option-heliotrope', - }, - { - value: 'lily', - label: 'Lily', - data: { color: 'white', name: 'Lily' }, - templateId: 'template2', - id: 'option-lily', - }, - { - value: 'petunia', - label: 'Petunia', - data: { color: 'white', name: 'Petunia' }, - templateId: 'template3', - id: 'option-petunia', - }, - ], - }, -]; -let data26 = []; -for (let i = 1; i <= 50; i++) { - data26.push({ value: i, label: '>' + i }); -} -let data28 = []; -for (let i = 1; i <= 200; i++) { - data28.push({ value: i, label: 'item n° ' + i }); -} - - -/***/ }), - -/***/ 6747: -/*!*******************************!*\ - !*** ./src/app/app.module.ts ***! - \*******************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AppModule": () => (/* binding */ AppModule), -/* harmony export */ "hljsLanguages": () => (/* binding */ hljsLanguages) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! tslib */ 4929); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 2560); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 2508); -/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/platform-browser */ 4497); -/* harmony import */ var ngx_highlightjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ngx-highlightjs */ 7101); -/* harmony import */ var projects_ng_select2_component_src_public_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! projects/ng-select2-component/src/public_api */ 7365); -/* harmony import */ var _app_examples_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-examples.component */ 3907); -/* harmony import */ var _app_gen_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app-gen.component */ 380); -/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./app.component */ 5041); -/* harmony import */ var _app_routing__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./app.routing */ 6738); - - - - - - - - - - -/** - * Import every language you wish to highlight here - * NOTE: The name of each language must match the file name its imported from - */ -function hljsLanguages() { - return [ - { name: 'typescript', func: __webpack_require__(/*! highlight.js/lib/languages/typescript */ 2016) }, - { name: 'javascript', func: __webpack_require__(/*! highlight.js/lib/languages/javascript */ 5407) }, - { name: 'scss', func: __webpack_require__(/*! highlight.js/lib/languages/scss */ 541) }, - { name: 'xml', func: __webpack_require__(/*! highlight.js/lib/languages/xml */ 5275) }, - ]; -} -let AppModule = class AppModule { -}; -AppModule = (0,tslib__WEBPACK_IMPORTED_MODULE_5__.__decorate)([ - (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.NgModule)({ - declarations: [_app_component__WEBPACK_IMPORTED_MODULE_3__.AppComponent, _app_examples_component__WEBPACK_IMPORTED_MODULE_1__.AppExamplesComponent, _app_gen_component__WEBPACK_IMPORTED_MODULE_2__.AppGenComponent], - imports: [_angular_platform_browser__WEBPACK_IMPORTED_MODULE_7__.BrowserModule, _app_routing__WEBPACK_IMPORTED_MODULE_4__.AppRoutingModule, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.FormsModule, projects_ng_select2_component_src_public_api__WEBPACK_IMPORTED_MODULE_0__.Select2Module, ngx_highlightjs__WEBPACK_IMPORTED_MODULE_9__.HighlightModule], - providers: [ - { - provide: ngx_highlightjs__WEBPACK_IMPORTED_MODULE_9__.HIGHLIGHT_OPTIONS, - useValue: { - coreLibraryLoader: () => __webpack_require__.e(/*! import() */ "node_modules_highlight_js_es_core_js").then(__webpack_require__.bind(__webpack_require__, /*! highlight.js/lib/core */ 8622)), - lineNumbersLoader: () => __webpack_require__.e(/*! import() */ "node_modules_highlightjs-line-numbers_js_src_highlightjs-line-numbers_js").then(__webpack_require__.t.bind(__webpack_require__, /*! highlightjs-line-numbers.js */ 5523, 23)), - languages: { - typescript: () => __webpack_require__.e(/*! import() */ "node_modules_highlight_js_es_languages_typescript_js").then(__webpack_require__.bind(__webpack_require__, /*! highlight.js/lib/languages/typescript */ 5281)), - javascript: () => __webpack_require__.e(/*! import() */ "node_modules_highlight_js_es_languages_javascript_js").then(__webpack_require__.bind(__webpack_require__, /*! highlight.js/lib/languages/javascript */ 9633)), - css: () => __webpack_require__.e(/*! import() */ "node_modules_highlight_js_es_languages_css_js").then(__webpack_require__.bind(__webpack_require__, /*! highlight.js/lib/languages/css */ 9009)), - xml: () => __webpack_require__.e(/*! import() */ "node_modules_highlight_js_es_languages_xml_js").then(__webpack_require__.bind(__webpack_require__, /*! highlight.js/lib/languages/xml */ 526)), - }, - }, - }, - ], - bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_3__.AppComponent], - }) -], AppModule); - - - -/***/ }), - -/***/ 6738: -/*!********************************!*\ - !*** ./src/app/app.routing.ts ***! - \********************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AppRoutingModule": () => (/* binding */ AppRoutingModule) -/* harmony export */ }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! tslib */ 4929); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 2560); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/router */ 124); -/* harmony import */ var _app_examples_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app-examples.component */ 3907); -/* harmony import */ var _app_gen_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./app-gen.component */ 380); - - - - - -const routes = [ - { path: 'examples', component: _app_examples_component__WEBPACK_IMPORTED_MODULE_0__.AppExamplesComponent }, - { path: 'generator', component: _app_gen_component__WEBPACK_IMPORTED_MODULE_1__.AppGenComponent }, - { path: '**', component: _app_examples_component__WEBPACK_IMPORTED_MODULE_0__.AppExamplesComponent }, -]; -let AppRoutingModule = class AppRoutingModule { -}; -AppRoutingModule = (0,tslib__WEBPACK_IMPORTED_MODULE_2__.__decorate)([ - (0,_angular_core__WEBPACK_IMPORTED_MODULE_3__.NgModule)({ - imports: [_angular_router__WEBPACK_IMPORTED_MODULE_4__.RouterModule.forRoot(routes)], - exports: [_angular_router__WEBPACK_IMPORTED_MODULE_4__.RouterModule], - }) -], AppRoutingModule); - - - -/***/ }), - -/***/ 2340: -/*!*****************************************!*\ - !*** ./src/environments/environment.ts ***! - \*****************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "environment": () => (/* binding */ environment) -/* harmony export */ }); -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. -const environment = { - production: false, -}; -/* - * In development mode, to ignore zone related error stack frames such as - * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can - * import the following file, but please comment it out in production mode - * because it will have performance impact when throw error - */ -// import 'zone.js/plugins/zone-error'; // Included with Angular CLI. - - -/***/ }), - -/***/ 4431: -/*!*********************!*\ - !*** ./src/main.ts ***! - \*********************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 2560); -/* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/platform-browser-dynamic */ 6057); -/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./app/app.module */ 6747); -/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./environments/environment */ 2340); - - - - -if (_environments_environment__WEBPACK_IMPORTED_MODULE_1__.environment.production) { - (0,_angular_core__WEBPACK_IMPORTED_MODULE_2__.enableProdMode)(); -} -(0,_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_3__.platformBrowserDynamic)() - .bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_0__.AppModule) - .catch(err => console.log(err)); - - -/***/ }), - -/***/ 8190: -/*!*********************************************************************************!*\ - !*** ./projects/ng-select2-component/src/lib/select2.component.scss?ngResource ***! - \*********************************************************************************/ -/***/ ((module) => { - -module.exports = ".select2-label {\n color: #000;\n color: var(--select2-label-text-color, #000);\n}\n\n.select2-container {\n box-sizing: border-box;\n display: inline-block;\n margin: 0;\n position: relative;\n vertical-align: middle;\n width: 100%;\n}\n\n.select2-container .select2-container-dropdown {\n position: absolute;\n width: 0px;\n opacity: 0;\n}\n\n.select2-container .select2-selection--single {\n box-sizing: border-box;\n cursor: pointer;\n display: block;\n height: 28px;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.select2-container .select2-selection--single .select2-selection__rendered {\n display: block;\n padding: 0 0 0 8px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1 1 auto;\n}\n\n.select2-container .select2-selection--single .select2-selection__clear {\n position: relative;\n}\n\n.select2-container .select2-selection--multiple {\n box-sizing: border-box;\n cursor: pointer;\n display: block;\n min-height: 32px;\n -webkit-user-select: none;\n user-select: none;\n}\n\n.select2-container .select2-selection--multiple .select2-selection__rendered {\n display: inline-block;\n overflow: hidden;\n padding-left: 8px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.select2-container .select2-search--inline {\n float: left;\n}\n\n.select2-container .select2-search--inline .select2-search__field {\n box-sizing: border-box;\n border: none;\n font-size: 100%;\n margin-top: 5px;\n padding: 0;\n}\n\n.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\n -webkit-appearance: none;\n}\n\n.select2-dropdown {\n background: white;\n background: var(--select2-dropdown-background, white);\n border: 1px solid #aaa;\n border: 1px solid var(--select2-dropdown-border-color, #aaa);\n border-radius: 4px;\n border-radius: var(--select2-selection-border-radius, 4px);\n box-sizing: border-box;\n display: block;\n position: absolute;\n width: 100%;\n z-index: 1051;\n height: 0;\n overflow: hidden;\n}\n\n.select2-dropdown .select2-label-content {\n /* autoprefixer: ignore next */\n display: contents;\n}\n\n.select2-results {\n display: block;\n}\n\n.select2-results__options {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.select2-results__option {\n padding: 6px;\n -webkit-user-select: none;\n user-select: none;\n color: #000;\n color: var(--select2-option-text-color, #000);\n}\n\n.select2-results__option[aria-selected] {\n cursor: pointer;\n}\n\n.select2-container.select2-container-dropdown.select2-container--open {\n width: 100%;\n opacity: 1;\n}\n\n.select2-container--open .select2-dropdown {\n overflow: auto;\n height: auto;\n}\n\n.select2-container--open .select2-dropdown--above {\n border-bottom: none;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n bottom: 27px;\n display: flex;\n flex-direction: column-reverse;\n}\n\n.select2-container--open .select2-dropdown--below {\n border-top: none;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.select2-search--dropdown {\n display: block;\n padding: 4px;\n}\n\n.select2-search--dropdown .select2-search__field {\n padding: 4px;\n width: 100%;\n box-sizing: border-box;\n}\n\n.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\n -webkit-appearance: none;\n}\n\n.select2-search--dropdown.select2-search--hide {\n display: none;\n}\n\n.select2-close-mask {\n border: 0;\n margin: 0;\n padding: 0;\n display: block;\n position: fixed;\n left: 0;\n top: 0;\n min-height: 100%;\n min-width: 100%;\n height: auto;\n width: auto;\n opacity: 0;\n z-index: 99;\n background: #fff;\n filter: alpha(opacity=0);\n}\n\n.select2-required::before {\n content: \"*\";\n color: red;\n color: var(--select2-required-color, red);\n}\n\n.select2-hidden-accessible {\n border: 0 !important;\n clip: rect(0 0 0 0) !important;\n height: 1px !important;\n margin: -1px !important;\n overflow: hidden !important;\n padding: 0 !important;\n position: absolute !important;\n width: 1px !important;\n}\n\n.select2-container--default .select2-selection--single {\n background: #fff;\n background: var(--select2-selection-background, #fff);\n border: 1px solid #aaa;\n border: 1px solid var(--select2-selection-border-color, #aaa);\n border-radius: 4px;\n border-radius: var(--select2-selection-border-radius, 4px);\n display: flex;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__rendered {\n color: #444;\n color: var(--select2-selection-text-color, #444);\n line-height: 28px;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__clear {\n cursor: pointer;\n float: right;\n font-weight: bold;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__placeholder {\n color: #999;\n color: var(--select2-placeholder-color, #999);\n}\n\n.select2-container--default .select2-selection--single .select2-selection__placeholder span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-overflow: var(--select2-placeholder-overflow, ellipsis);\n}\n\n.select2-container--default .select2-selection--single .select2-selection__placeholder__option {\n display: none;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__reset,\n.select2-container--default .select2-selection--single .select2-selection__arrow {\n display: flex;\n width: 20px;\n align-items: center;\n justify-content: center;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__arrow::before {\n content: \" \";\n border-color: #888 transparent;\n border-color: var(--select2-arrow-color, #888) transparent;\n border-style: solid;\n border-width: 5px 4px 0;\n height: 0;\n width: 0;\n}\n\n.select2-container--default .select2-selection--single .select2-selection__reset {\n color: #999;\n color: var(--select2-reset-color, #999);\n}\n\n.select2-container--default.select2-container--disabled .select2-selection--single {\n background: #eee;\n background: var(--select2-selection-disabled-background, #eee);\n cursor: default;\n}\n\n.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\n display: none;\n}\n\n.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow::before {\n border-color: transparent transparent #888;\n border-color: transparent transparent var(--select2-arrow-color, #888);\n border-width: 0 4px 5px;\n}\n\n.select2-container--default .select2-selection--multiple {\n background: #fff;\n background: var(--select2-selection-background, #fff);\n border: 1px solid #aaa;\n border: 1px solid var(--select2-selection-border-color, #aaa);\n border-radius: 4px;\n border-radius: var(--select2-selection-border-radius, 4px);\n cursor: text;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered {\n flex: 1 1 auto;\n box-sizing: border-box;\n list-style: none;\n margin: 0;\n padding: 0 5px;\n width: 100%;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__rendered li {\n list-style: none;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__placeholder {\n display: block;\n width: 100%;\n color: #999;\n color: var(--select2-placeholder-color, #999);\n margin-top: 5px;\n float: left;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n text-overflow: var(--select2-placeholder-overflow, ellipsis);\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__placeholder__option {\n display: none;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__clear {\n cursor: pointer;\n float: right;\n font-weight: bold;\n margin-top: 5px;\n margin-right: 10px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice {\n color: #000;\n color: var(--select2-selection-choice-text-color, #000);\n background: #e4e4e4;\n background: var(--select2-selection-choice-background, #e4e4e4);\n border: 1px solid #aaa;\n border: 1px solid var(--select2-selection-choice-border-color, #aaa);\n border-radius: 4px;\n border-radius: var(--select2-selection-border-radius, 4px);\n cursor: default;\n float: left;\n margin-right: 5px;\n margin-top: 5px;\n padding: 0 5px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\n color: #999;\n color: var(--select2-selection-choice-close-color, #999);\n cursor: pointer;\n display: inline-block;\n font-weight: bold;\n margin-right: 2px;\n}\n\n.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\n color: #333;\n color: var(--select2-selection-choice-hover-close-color, #333);\n}\n\n.select2-container--default.select2-container--focused .select2-selection--multiple {\n border: solid #000 1px;\n border: solid var(--select2-selection-focus-border-color, #000) 1px;\n outline: none;\n}\n\n.select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--single,\n.select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--multiple {\n border: solid #000 1px;\n border: solid var(--select2-selection-focus-border-color, #000) 1px;\n outline: none;\n}\n\n.select2-container--default.select2-container--disabled .select2-selection--multiple {\n background: #eee;\n background: var(--select2-selection-disabled-background, #eee);\n cursor: default;\n}\n\n.select2-container--default.select2-container--disabled .select2-selection__choice__remove {\n display: none;\n}\n\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.select2-container--default .select2-search--dropdown .select2-search__field {\n border: 1px solid #aaa;\n border: 1px solid var(--select2-search-border-color, #aaa);\n background: #fff;\n background: 1px solid var(--select2-search-background, #fff);\n border-radius: 0px;\n border-radius: var(--select2-search-border-radius, 0px);\n}\n\n.select2-container--default .select2-search--inline .select2-search__field {\n background: transparent;\n border: none;\n outline: none;\n box-shadow: none;\n -webkit-appearance: textfield;\n}\n\n.select2-container--default .select2-results > .select2-results__options {\n overflow-y: auto;\n}\n\n.select2-container--default .select2-results__option[role=group] {\n padding: 0;\n}\n\n.select2-container--default .select2-results__option[aria-disabled=true] {\n color: #999;\n color: var(--select2-option-disabled-text-color, #999);\n background: transparent;\n background: var(--select2-option-disabled-background, transparent);\n}\n\n.select2-container--default .select2-results__option[aria-selected=true] {\n color: #000;\n color: var(--select2-option-selected-text-color, #000);\n background: #ddd;\n background: var(--select2-option-selected-background, #ddd);\n}\n\n.select2-container--default .select2-results__option .select2-results__option {\n padding-left: 1em;\n}\n\n.select2-container--default .select2-results__option .select2-results__option .select2-results__group {\n padding-left: 0;\n}\n\n.select2-container--default .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -1em;\n padding-left: 2em;\n}\n\n.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -2em;\n padding-left: 3em;\n}\n\n.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -3em;\n padding-left: 4em;\n}\n\n.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -4em;\n padding-left: 5em;\n}\n\n.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\n margin-left: -5em;\n padding-left: 6em;\n}\n\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\n background: #5897fb;\n background: var(--select2-option-highlighted-background, #5897fb);\n color: #fff;\n color: var(--select2-option-highlighted-text-color, #fff);\n}\n\n.select2-container--default .select2-results__option--hide {\n display: none;\n}\n\n.select2-container--default .select2-results__group {\n cursor: default;\n display: block;\n padding: 6px;\n color: gray;\n color: var(--select2-option-group-text-color, gray);\n background: transparent;\n background: var(--select2-option-group-background, transparent);\n}\n\n.select2-no-result {\n color: #888;\n color: var(--select2-no-result-color, #888);\n font-style: italic;\n font-style: var(--select2-no-result-font-style, italic);\n}\n\n.select2-too-much-result {\n color: #888;\n color: var(--select2-too-much-result-color, #888);\n font-style: italic;\n font-style: var(--select2-too-much-font-style, italic);\n}\n\n:host.nostyle .select2-dropdown {\n border-color: transparent;\n}\n\n:host.nostyle .select2-selection--single,\n:host.nostyle .select2-selection--multiple {\n background: transparent;\n border-color: transparent;\n}\n\n:host.nostyle .select2-container--default .select2-focused .select2-selection--single,\n:host.nostyle .select2-container--default .select2-focused .select2-selection--multiple,\n:host.nostyle .select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--single,\n:host.nostyle .select2-container--default:not(.select2-container--open) .select2-focused .select2-selection--multiple {\n background: transparent;\n border-color: transparent;\n}\n\n/* stylelint-disable-next-line selector-type-no-unknown */\n\n:host.material {\n display: inline-block;\n width: 300px;\n}\n\n:host.material > .select2-container {\n padding-bottom: 1.29688em;\n vertical-align: inherit;\n}\n\n:host.material > .select2-container .selection {\n padding: 0.4375em 0;\n border-top: 0.84375em solid transparent;\n display: inline-flex;\n align-items: baseline;\n width: 100%;\n height: auto;\n}\n\n:host.material .select2-container--default .select2-selection--single,\n:host.material .select2-container--default .select2-selection--multiple {\n width: 100%;\n border: 0;\n border-radius: 0;\n height: 24px;\n box-sizing: border-box;\n}\n\n:host.material .select2-container--default .select2-selection--single::before,\n:host.material .select2-container--default .select2-selection--multiple::before {\n content: \" \";\n display: block;\n position: absolute;\n bottom: 1.65em;\n background: #ddd;\n background: var(--select2-material-underline, #ddd);\n height: 1px;\n width: 100%;\n}\n\n:host.material .select2-container--default .select2-selection--single::after,\n:host.material .select2-container--default .select2-selection--multiple::after {\n content: \" \";\n display: block;\n position: absolute;\n bottom: 1.63em;\n background: #5a419e;\n background: var(--select2-material-underline-active, #5a419e);\n height: 2px;\n width: 0%;\n left: 50%;\n transition: none;\n}\n\n:host.material .select2-container--default .select2-selection--single .select2-selection__rendered,\n:host.material .select2-container--default .select2-selection--multiple .select2-selection__rendered {\n padding-left: 1px;\n line-height: inherit;\n}\n\n:host.material .select2-container--default .select2-selection--single .select2-selection__placeholder,\n:host.material .select2-container--default .select2-selection--multiple .select2-selection__placeholder {\n display: block;\n color: rgba(0, 0, 0, 0.38);\n color: var(--select2-material-placeholder-color, rgba(0, 0, 0, 0.38));\n transition: transform 0.3s;\n position: absolute;\n transform-origin: 0 21px;\n left: 0;\n top: 20px;\n}\n\n:host.material .select2-container--default .select2-container--open {\n left: 0;\n bottom: 1.6em;\n}\n\n:host.material .select2-container--default .select2-selection__placeholder__option {\n transform: translateY(-1.5em) scale(0.75) perspective(100px) translateZ(0.001px);\n width: 133.33333%;\n}\n\n:host.material .select2-container--default .select2-selection__arrow {\n top: 20px;\n}\n\n:host.material .select2-container--default.select2-container--open .select2-selection--single::after,\n:host.material .select2-container--default.select2-container--open .select2-selection--multiple::after,\n:host.material .select2-container--default .select2-focused .select2-selection--single::after,\n:host.material .select2-container--default .select2-focused .select2-selection--multiple::after {\n transition: width 0.3s cubic-bezier(0.12, 1, 0.77, 1), left 0.3s cubic-bezier(0.12, 1, 0.77, 1);\n width: 100%;\n left: 0%;\n}\n\n:host.material .select2-container--default .select2-dropdown {\n border-radius: 0;\n border: 0;\n box-shadow: 0 5px 5px rgba(0, 0, 0, 0.5);\n}\n\n:host.material .select2-container--default .select2-results__option[aria-selected=true],\n:host.material .select2-container--default .select2-results__option--highlighted[aria-selected] {\n background: rgba(0, 0, 0, 0.04);\n background: var(--select2-material-option-selected-background, rgba(0, 0, 0, 0.04));\n color: #000;\n color: var(--select2-material-option-highlighted-text-color, #000);\n}\n\n:host.material .select2-container--default .select2-results__option[aria-selected=true] {\n color: #ff5722;\n color: var(--select2-material-option-selected-text-color, #ff5722);\n}\n\n:host.material .select2-container--default.select2-container--disabled .select2-selection--single, :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple {\n background: transparent;\n}\n\n:host.material .select2-container--default.select2-container--disabled .select2-selection--single::before, :host.material .select2-container--default.select2-container--disabled .select2-selection--multiple::before {\n background: linear-gradient(to right, rgba(0, 0, 0, 0.26) 0, rgba(0, 0, 0, 0.26) 33%, transparent 0);\n background: var(--select2-material-underline-disabled, linear-gradient(to right, rgba(0, 0, 0, 0.26) 0, rgba(0, 0, 0, 0.26) 33%, transparent 0));\n background-size: 4px 1px;\n background-repeat: repeat-x;\n background-position: 0 bottom;\n}\n\n:host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::before, :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--single::after, :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::before, :host.material.ng-invalid.ng-touched .select2-container--default .select2-selection--multiple::after {\n background: red;\n background: var(--select2-material-underline-invalid, red);\n}\n\n:host.material:not(.select2-container--open) .select2-focused .select2-selection--single,\n:host.material:not(.select2-container--open) .select2-focused .select2-selection--multiple {\n border: 0;\n}\n\n:host.material .select2-subscript-wrapper {\n position: absolute;\n top: calc(100% - 1.72917em);\n font-size: 75%;\n color: #888;\n color: var(--select2-hint-text-color, #888);\n}\n\n::ng-deep .select2-overlay-backdrop {\n background: rgba(0, 0, 0, 0.32);\n background: var(--select2-overlay-backdrop, transparent);\n}\n\n::ng-deep .cdk-overlay-container .select2-container .select2-dropdown.select2-dropdown--above {\n bottom: 28px;\n}\n\n::ng-deep .cdk-overlay-container .select2-container--open.select2-position-auto .select2-dropdown {\n margin-bottom: 28px;\n}\n\n::ng-deep .cdk-overlay-container .select2-container--open.select2-position-auto .select2-dropdown.select2-dropdown--above {\n bottom: 0;\n margin-bottom: 0;\n margin-top: 28px;\n}\n\n/* stylelint-disable selector-type-no-unknown */\n\n@supports (-moz-appearance: none) {\n select2.material .select2-container--default .select2-selection--single,\nselect2.material .select2-container--default .select2-selection--multiple {\n height: 26px;\n }\n}\n\n@supports (-ms-scroll-limit: 0) {\n select2.material .select2-container--default .select2-selection--single,\nselect2.material .select2-container--default .select2-selection--multiple {\n height: 25px;\n }\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlbGVjdDIuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxXQUFBO0VBQ0EsNENBQUE7QUFDSjs7QUFFQTtFQUNJLHNCQUFBO0VBQ0EscUJBQUE7RUFDQSxTQUFBO0VBQ0Esa0JBQUE7RUFDQSxzQkFBQTtFQUNBLFdBQUE7QUFDSjs7QUFDSTtFQUNJLGtCQUFBO0VBQ0EsVUFBQTtFQUNBLFVBQUE7QUFDUjs7QUFFSTtFQUNJLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7VUFBQSxpQkFBQTtBQUFSOztBQUVRO0VBQ0ksY0FBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx1QkFBQTtFQUNBLG1CQUFBO0VBQ0EsY0FBQTtBQUFaOztBQUdRO0VBQ0ksa0JBQUE7QUFEWjs7QUFLSTtFQUNJLHNCQUFBO0VBQ0EsZUFBQTtFQUNBLGNBQUE7RUFDQSxnQkFBQTtFQUNBLHlCQUFBO1VBQUEsaUJBQUE7QUFIUjs7QUFLUTtFQUNJLHFCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLHVCQUFBO0VBQ0EsbUJBQUE7QUFIWjs7QUFPSTtFQUNJLFdBQUE7QUFMUjs7QUFPUTtFQUNJLHNCQUFBO0VBQ0EsWUFBQTtFQUNBLGVBQUE7RUFDQSxlQUFBO0VBQ0EsVUFBQTtBQUxaOztBQU9ZO0VBQ0ksd0JBQUE7QUFMaEI7O0FBV0E7RUFDSSxpQkFBQTtFQUNBLHFEQUFBO0VBQ0Esc0JBQUE7RUFDQSw0REFBQTtFQUNBLGtCQUFBO0VBQ0EsMERBQUE7RUFDQSxzQkFBQTtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLFdBQUE7RUFDQSxhQUFBO0VBQ0EsU0FBQTtFQUNBLGdCQUFBO0FBUko7O0FBVUk7RUFDSSw4QkFBQTtFQUNBLGlCQUFBO0FBUlI7O0FBWUE7RUFDSSxjQUFBO0FBVEo7O0FBWUE7RUFDSSxnQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0FBVEo7O0FBWUE7RUFDSSxZQUFB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Q0Esa0JBQUE7RUFDQSx3QkFBQTtFQUNBLE9BQUE7RUFDQSxTQUFBO0FBOUZoQjs7QUFrR1E7RUFDSSxPQUFBO0VBQ0EsYUFBQTtBQWhHWjs7QUFtR1E7RUFDSSxnRkFBQTtFQUNBLGlCQUFBO0FBakdaOztBQW9HUTtFQUNJLFNBQUE7QUFsR1o7O0FBdUdZOzs7O0VBRUksK0ZBQUE7RUFDQSxXQUFBO0VBQ0EsUUFBQTtBQW5HaEI7O0FBdUdRO0VBQ0ksZ0JBQUE7RUFDQSxTQUFBO0VBQ0Esd0NBQUE7QUFyR1o7O0FBd0dROztFQUVJLCtCQUFBO0VBQ0EsbUZBQUE7RUFDQSxXQUFBO0VBQ0Esa0VBQUE7QUF0R1o7O0FBeUdRO0VBQ0ksY0FBQTtFQUNBLGtFQUFBO0FBdkdaOztBQTBHUTtFQUVJLHVCQUFBO0FBekdaOztBQTJHWTtFQUNJLG9HQUFBO0VBQ0EsZ0pBQUE7RUFJQSx3QkFBQTtFQUNBLDJCQUFBO0VBQ0EsNkJBQUE7QUE1R2hCOztBQW1IUTtFQUVJLGVBQUE7RUFDQSwwREFBQTtBQWxIWjs7QUF1SFE7O0VBRUksU0FBQTtBQXJIWjs7QUF5SEk7RUFDSSxrQkFBQTtFQUNBLDJCQUFBO0VBQ0EsY0FBQTtFQUNBLFdBQUE7RUFDQSwyQ0FBQTtBQXZIUjs7QUE0SEk7RUFDSSwrQkFBQTtFQUNBLHdEQUFBO0FBekhSOztBQTRIUTtFQUNJLFlBQUE7QUExSFo7O0FBNEhRO0VBQ0ksbUJBQUE7QUExSFo7O0FBMkhZO0VBQ0ksU0FBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7QUF6SGhCOztBQWdJQSwrQ0FBQTs7QUFDQTtFQUNJOztJQUVJLFlBQUE7RUE3SE47QUFDRjs7QUFrSUE7RUFDSTs7SUFFSSxZQUFBO0VBaElOO0FBQ0YiLCJmaWxlIjoic2VsZWN0Mi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5zZWxlY3QyLWxhYmVsIHtcbiAgICBjb2xvcjogIzAwMDtcbiAgICBjb2xvcjogdmFyKC0tc2VsZWN0Mi1sYWJlbC10ZXh0LWNvbG9yLCAjMDAwKTtcbn1cblxuLnNlbGVjdDItY29udGFpbmVyIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICAuc2VsZWN0Mi1jb250YWluZXItZHJvcGRvd24ge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHdpZHRoOiAwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IDI4cHg7XG4gICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDAgMCA4cHg7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtaW4taGVpZ2h0OiAzMnB4O1xuICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDhweDtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWxlY3QyLXNlYXJjaC0taW5saW5lIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogNXB4O1xuICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgJjo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbiB7XG4gICAgICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2VsZWN0Mi1kcm9wZG93biB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tc2VsZWN0Mi1kcm9wZG93bi1iYWNrZ3JvdW5kLCB3aGl0ZSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1zZWxlY3QyLWRyb3Bkb3duLWJvcmRlci1jb2xvciwgI2FhYSk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXNlbGVjdDItc2VsZWN0aW9uLWJvcmRlci1yYWRpdXMsIDRweCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogMTA1MTtcbiAgICBoZWlnaHQ6IDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIC5zZWxlY3QyLWxhYmVsLWNvbnRlbnQge1xuICAgICAgICAvKiBhdXRvcHJlZml4ZXI6IGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgIH1cbn1cblxuLnNlbGVjdDItcmVzdWx0cyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbnMge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XG4gICAgcGFkZGluZzogNnB4O1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGNvbG9yOiB2YXIoLS1zZWxlY3QyLW9wdGlvbi10ZXh0LWNvbG9yLCAjMDAwKTtcblxuICAgICZbYXJpYS1zZWxlY3RlZF0ge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgfVxufVxuXG4uc2VsZWN0Mi1jb250YWluZXIuc2VsZWN0Mi1jb250YWluZXItZHJvcGRvd24uc2VsZWN0Mi1jb250YWluZXItLW9wZW4ge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiB7XG4gICAgLnNlbGVjdDItZHJvcGRvd24ge1xuICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgIH1cblxuICAgIC5zZWxlY3QyLWRyb3Bkb3duLS1hYm92ZSB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDA7XG4gICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICBib3R0b206IDI3cHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1kcm9wZG93bi0tYmVsb3cge1xuICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMDtcbiAgICB9XG59XG5cbi5zZWxlY3QyLXNlYXJjaC0tZHJvcGRvd24ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDRweDtcblxuICAgIC5zZWxlY3QyLXNlYXJjaF9fZmllbGQge1xuICAgICAgICBwYWRkaW5nOiA0cHg7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgICY6Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24ge1xuICAgICAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zZWxlY3QyLXNlYXJjaC0taGlkZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG4uc2VsZWN0Mi1jbG9zZS1tYXNrIHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIGxlZnQ6IDA7XG4gICAgdG9wOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogYXV0bztcbiAgICB3aWR0aDogYXV0bztcbiAgICBvcGFjaXR5OiAwO1xuICAgIHotaW5kZXg6IDk5O1xuXG4gICAgLy8gc3R5bGVzIHJlcXVpcmVkIGZvciBJRSB0byB3b3JrXG5cbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGZpbHRlcjogYWxwaGEob3BhY2l0eSA9IDApO1xufVxuXG4uc2VsZWN0Mi1yZXF1aXJlZDo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnKic7XG4gICAgY29sb3I6IHJlZDtcbiAgICBjb2xvcjogdmFyKC0tc2VsZWN0Mi1yZXF1aXJlZC1jb2xvciwgcmVkKTtcbn1cblxuLnNlbGVjdDItaGlkZGVuLWFjY2Vzc2libGUge1xuICAgIGJvcmRlcjogMCAhaW1wb3J0YW50O1xuICAgIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xufVxuXG4uc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQge1xuICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2VsZWN0Mi1zZWxlY3Rpb24tYmFja2dyb3VuZCwgI2ZmZik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlbGVjdDItc2VsZWN0aW9uLWJvcmRlci1jb2xvciwgI2FhYSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2VsZWN0Mi1zZWxlY3Rpb24tYm9yZGVyLXJhZGl1cywgNHB4KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcblxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNDQ0O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlbGVjdDItc2VsZWN0aW9uLXRleHQtY29sb3IsICM0NDQpO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBjb2xvcjogIzk5OTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWxlY3QyLXBsYWNlaG9sZGVyLWNvbG9yLCAjOTk5KTtcblxuICAgICAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IHZhcigtLXNlbGVjdDItcGxhY2Vob2xkZXItb3ZlcmZsb3csIGVsbGlwc2lzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcGxhY2Vob2xkZXJfX29wdGlvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZXNldCxcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19hcnJvdyB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgd2lkdGg6IDIwcHg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Fycm93OjpiZWZvcmUge1xuICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjODg4IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1zZWxlY3QyLWFycm93LWNvbG9yLCAjODg4KSB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDVweCA0cHggMDtcbiAgICAgICAgICAgIGhlaWdodDogMDtcbiAgICAgICAgICAgIHdpZHRoOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19yZXNldCB7XG4gICAgICAgICAgICBjb2xvcjogIzk5OTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWxlY3QyLXJlc2V0LWNvbG9yLCAjOTk5KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkIHtcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogI2VlZTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlbGVjdDItc2VsZWN0aW9uLWRpc2FibGVkLWJhY2tncm91bmQsICNlZWUpO1xuICAgICAgICAgICAgY3Vyc29yOiBkZWZhdWx0O1xuXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2NsZWFyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbiB7XG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlIHtcbiAgICAgICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3c6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAjODg4O1xuICAgICAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdmFyKC0tc2VsZWN0Mi1hcnJvdy1jb2xvciwgIzg4OCk7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIDRweCA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2VsZWN0Mi1zZWxlY3Rpb24tYmFja2dyb3VuZCwgI2ZmZik7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICNhYWE7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlbGVjdDItc2VsZWN0aW9uLWJvcmRlci1jb2xvciwgI2FhYSk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2VsZWN0Mi1zZWxlY3Rpb24tYm9yZGVyLXJhZGl1cywgNHB4KTtcbiAgICAgICAgY3Vyc29yOiB0ZXh0O1xuXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fcmVuZGVyZWQge1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICAgIGxpIHtcbiAgICAgICAgICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgY29sb3I6ICM5OTk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tc2VsZWN0Mi1wbGFjZWhvbGRlci1jb2xvciwgIzk5OSk7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgICAgICAgICB0ZXh0LW92ZXJmbG93OiB2YXIoLS1zZWxlY3QyLXBsYWNlaG9sZGVyLW92ZXJmbG93LCBlbGxpcHNpcyk7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyX19vcHRpb24ge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2xlYXIge1xuICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX2Nob2ljZSB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWxlY3QyLXNlbGVjdGlvbi1jaG9pY2UtdGV4dC1jb2xvciwgIzAwMCk7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZTRlNGU0O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2VsZWN0Mi1zZWxlY3Rpb24tY2hvaWNlLWJhY2tncm91bmQsICNlNGU0ZTQpO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2FhYTtcbiAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLXNlbGVjdDItc2VsZWN0aW9uLWNob2ljZS1ib3JkZXItY29sb3IsICNhYWEpO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2VsZWN0Mi1zZWxlY3Rpb24tYm9yZGVyLXJhZGl1cywgNHB4KTtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA1cHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlX19yZW1vdmUge1xuICAgICAgICAgICAgY29sb3I6ICM5OTk7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tc2VsZWN0Mi1zZWxlY3Rpb24tY2hvaWNlLWNsb3NlLWNvbG9yLCAjOTk5KTtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAycHg7XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGNvbG9yOiAjMzMzO1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWxlY3QyLXNlbGVjdGlvbi1jaG9pY2UtaG92ZXItY2xvc2UtY29sb3IsICMzMzMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZm9jdXNlZCB7XG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAjMDAwIDFweDtcbiAgICAgICAgICAgIGJvcmRlcjogc29saWQgdmFyKC0tc2VsZWN0Mi1zZWxlY3Rpb24tZm9jdXMtYm9yZGVyLWNvbG9yLCAjMDAwKSAxcHg7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLnNlbGVjdDItY29udGFpbmVyLS1vcGVuKSAuc2VsZWN0Mi1mb2N1c2VkIHtcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xuICAgICAgICAgICAgYm9yZGVyOiBzb2xpZCAjMDAwIDFweDtcbiAgICAgICAgICAgIGJvcmRlcjogc29saWQgdmFyKC0tc2VsZWN0Mi1zZWxlY3Rpb24tZm9jdXMtYm9yZGVyLWNvbG9yLCAjMDAwKSAxcHg7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQge1xuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNlZWU7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWxlY3QyLXNlbGVjdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLCAjZWVlKTtcbiAgICAgICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fY2hvaWNlX19yZW1vdmUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuc2VsZWN0Mi1jb250YWluZXItLW9wZW4uc2VsZWN0Mi1jb250YWluZXItLWFib3ZlIHtcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xuICAgICAgICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tb3Blbi5zZWxlY3QyLWNvbnRhaW5lci0tYmVsb3cge1xuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1zZWFyY2gtLWRyb3Bkb3duIHtcbiAgICAgICAgLnNlbGVjdDItc2VhcmNoX19maWVsZCB7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tc2VsZWN0Mi1zZWFyY2gtYm9yZGVyLWNvbG9yLCAjYWFhKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAxcHggc29saWQgdmFyKC0tc2VsZWN0Mi1zZWFyY2gtYmFja2dyb3VuZCwgI2ZmZik7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHg7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zZWxlY3QyLXNlYXJjaC1ib3JkZXItcmFkaXVzLCAwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlbGVjdDItc2VhcmNoLS1pbmxpbmUge1xuICAgICAgICAuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5zZWxlY3QyLXJlc3VsdHMgPiAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25zIHtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xuICAgICAgICAmW3JvbGU9J2dyb3VwJ10ge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZbYXJpYS1kaXNhYmxlZD0ndHJ1ZSddIHtcbiAgICAgICAgICAgIGNvbG9yOiAjOTk5O1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlbGVjdDItb3B0aW9uLWRpc2FibGVkLXRleHQtY29sb3IsICM5OTkpO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWxlY3QyLW9wdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kLCB0cmFuc3BhcmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICAmW2FyaWEtc2VsZWN0ZWQ9J3RydWUnXSB7XG4gICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1zZWxlY3QyLW9wdGlvbi1zZWxlY3RlZC10ZXh0LWNvbG9yLCAjMDAwKTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICNkZGQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWxlY3QyLW9wdGlvbi1zZWxlY3RlZC1iYWNrZ3JvdW5kLCAjZGRkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFlbTtcblxuICAgICAgICAgICAgLnNlbGVjdDItcmVzdWx0c19fZ3JvdXAge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTFlbTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDJlbTtcblxuICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtMmVtO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDNlbTtcblxuICAgICAgICAgICAgICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IC0zZW07XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDRlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLTRlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDVlbTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAtNWVtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDZlbTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb24tLWhpZ2hsaWdodGVkW2FyaWEtc2VsZWN0ZWRdIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzU4OTdmYjtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2VsZWN0Mi1vcHRpb24taGlnaGxpZ2h0ZWQtYmFja2dyb3VuZCwgIzU4OTdmYik7XG4gICAgICAgIGNvbG9yOiAjZmZmO1xuICAgICAgICBjb2xvcjogdmFyKC0tc2VsZWN0Mi1vcHRpb24taGlnaGxpZ2h0ZWQtdGV4dC1jb2xvciwgI2ZmZik7XG4gICAgfVxuXG4gICAgLnNlbGVjdDItcmVzdWx0c19fb3B0aW9uLS1oaWRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1yZXN1bHRzX19ncm91cCB7XG4gICAgICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDZweDtcbiAgICAgICAgY29sb3I6IGdyYXk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zZWxlY3QyLW9wdGlvbi1ncm91cC10ZXh0LWNvbG9yLCBncmF5KTtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlbGVjdDItb3B0aW9uLWdyb3VwLWJhY2tncm91bmQsIHRyYW5zcGFyZW50KTtcbiAgICB9XG59XG5cbi5zZWxlY3QyLW5vLXJlc3VsdCB7XG4gICAgY29sb3I6ICM4ODg7XG4gICAgY29sb3I6IHZhcigtLXNlbGVjdDItbm8tcmVzdWx0LWNvbG9yLCAjODg4KTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC1zdHlsZTogdmFyKC0tc2VsZWN0Mi1uby1yZXN1bHQtZm9udC1zdHlsZSwgaXRhbGljKTtcbn1cblxuLnNlbGVjdDItdG9vLW11Y2gtcmVzdWx0IHtcbiAgICBjb2xvcjogIzg4ODtcbiAgICBjb2xvcjogdmFyKC0tc2VsZWN0Mi10b28tbXVjaC1yZXN1bHQtY29sb3IsICM4ODgpO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBmb250LXN0eWxlOiB2YXIoLS1zZWxlY3QyLXRvby1tdWNoLWZvbnQtc3R5bGUsIGl0YWxpYyk7XG59XG5cbjpob3N0Lm5vc3R5bGUge1xuICAgIC5zZWxlY3QyLWRyb3Bkb3duIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcbiAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlIHtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgfVxuXG4gICAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLWZvY3VzZWQsXG4gICAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0Om5vdCguc2VsZWN0Mi1jb250YWluZXItLW9wZW4pIC5zZWxlY3QyLWZvY3VzZWQge1xuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIG1hdGVyaWFsIHN0eWxlXG4vKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2VsZWN0b3ItdHlwZS1uby11bmtub3duICovXG46aG9zdC5tYXRlcmlhbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAzMDBweDtcblxuICAgICYgPiAuc2VsZWN0Mi1jb250YWluZXIge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMS4yOTY4OGVtO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogaW5oZXJpdDtcblxuICAgICAgICAuc2VsZWN0aW9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuNDM3NWVtIDA7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAwLjg0Mzc1ZW0gc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBiYXNlbGluZTtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IHtcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiAnICc7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIGJvdHRvbTogMS42NWVtO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNkZGQ7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tc2VsZWN0Mi1tYXRlcmlhbC11bmRlcmxpbmUsICNkZGQpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyAnO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IDEuNjNlbTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjNWE0MTllO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlbGVjdDItbWF0ZXJpYWwtdW5kZXJsaW5lLWFjdGl2ZSwgIzVhNDE5ZSk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAycHg7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3JlbmRlcmVkIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDFweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uX19wbGFjZWhvbGRlciB7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zOCk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlbGVjdDItbWF0ZXJpYWwtcGxhY2Vob2xkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4zOCkpO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiAwIDIxcHg7XG4gICAgICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0Mi1jb250YWluZXItLW9wZW4ge1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMS42ZW07XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb25fX3BsYWNlaG9sZGVyX19vcHRpb24ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xLjVlbSkgc2NhbGUoMC43NSkgcGVyc3BlY3RpdmUoMTAwcHgpIHRyYW5zbGF0ZVooMC4wMDFweCk7XG4gICAgICAgICAgICB3aWR0aDogMTMzLjMzMzMzJTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QyLXNlbGVjdGlvbl9fYXJyb3cge1xuICAgICAgICAgICAgdG9wOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tb3BlbixcbiAgICAgICAgLnNlbGVjdDItZm9jdXNlZCB7XG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZTo6YWZ0ZXIsXG4gICAgICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLW11bHRpcGxlOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMC4zcyBjdWJpYy1iZXppZXIoMC4xMiwgMSwgMC43NywgMSksIGxlZnQgMC4zcyBjdWJpYy1iZXppZXIoMC4xMiwgMSwgMC43NywgMSk7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICAgICAgbGVmdDogMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0Mi1kcm9wZG93biB7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCA1cHggNXB4IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvblthcmlhLXNlbGVjdGVkPSd0cnVlJ10sXG4gICAgICAgIC5zZWxlY3QyLXJlc3VsdHNfX29wdGlvbi0taGlnaGxpZ2h0ZWRbYXJpYS1zZWxlY3RlZF0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjA0KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlbGVjdDItbWF0ZXJpYWwtb3B0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQsIHJnYmEoMCwgMCwgMCwgMC4wNCkpO1xuICAgICAgICAgICAgY29sb3I6ICMwMDA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tc2VsZWN0Mi1tYXRlcmlhbC1vcHRpb24taGlnaGxpZ2h0ZWQtdGV4dC1jb2xvciwgIzAwMCk7XG4gICAgICAgIH1cblxuICAgICAgICAuc2VsZWN0Mi1yZXN1bHRzX19vcHRpb25bYXJpYS1zZWxlY3RlZD0ndHJ1ZSddIHtcbiAgICAgICAgICAgIGNvbG9yOiAjZmY1NzIyO1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLXNlbGVjdDItbWF0ZXJpYWwtb3B0aW9uLXNlbGVjdGVkLXRleHQtY29sb3IsICNmZjU3MjIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWxlY3QyLWNvbnRhaW5lci0tZGlzYWJsZWQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXG4gICAgICAgICYuc2VsZWN0Mi1jb250YWluZXItLWRpc2FibGVkIC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCByZ2JhKDAsIDAsIDAsIDAuMjYpIDAsIHJnYmEoMCwgMCwgMCwgMC4yNikgMzMlLCB0cmFuc3BhcmVudCAwKTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoXG4gICAgICAgICAgICAgICAgICAgIC0tc2VsZWN0Mi1tYXRlcmlhbC11bmRlcmxpbmUtZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgIGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgcmdiYSgwLCAwLCAwLCAwLjI2KSAwLCByZ2JhKDAsIDAsIDAsIDAuMjYpIDMzJSwgdHJhbnNwYXJlbnQgMClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogNHB4IDFweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0LXg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCBib3R0b207XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLm5nLWludmFsaWQubmctdG91Y2hlZCAuc2VsZWN0Mi1jb250YWluZXItLWRlZmF1bHQgLnNlbGVjdDItc2VsZWN0aW9uLS1zaW5nbGUsXG4gICAgJi5uZy1pbnZhbGlkLm5nLXRvdWNoZWQgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xuICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJlZDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLXNlbGVjdDItbWF0ZXJpYWwtdW5kZXJsaW5lLWludmFsaWQsIHJlZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguc2VsZWN0Mi1jb250YWluZXItLW9wZW4pIC5zZWxlY3QyLWZvY3VzZWQge1xuICAgICAgICAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSxcbiAgICAgICAgLnNlbGVjdDItc2VsZWN0aW9uLS1tdWx0aXBsZSB7XG4gICAgICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuc2VsZWN0Mi1zdWJzY3JpcHQtd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgLSAxLjcyOTE3ZW0pO1xuICAgICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgICAgY29sb3I6ICM4ODg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1zZWxlY3QyLWhpbnQtdGV4dC1jb2xvciwgIzg4OCk7XG4gICAgfVxufVxuXG46Om5nLWRlZXAge1xuICAgIC5zZWxlY3QyLW92ZXJsYXktYmFja2Ryb3Age1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMzIpO1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1zZWxlY3QyLW92ZXJsYXktYmFja2Ryb3AsIHRyYW5zcGFyZW50KTtcbiAgICB9XG4gICAgLmNkay1vdmVybGF5LWNvbnRhaW5lciB7XG4gICAgICAgIC5zZWxlY3QyLWNvbnRhaW5lciAuc2VsZWN0Mi1kcm9wZG93bi5zZWxlY3QyLWRyb3Bkb3duLS1hYm92ZSB7XG4gICAgICAgICAgICBib3R0b206IDI4cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnNlbGVjdDItY29udGFpbmVyLS1vcGVuLnNlbGVjdDItcG9zaXRpb24tYXV0byAuc2VsZWN0Mi1kcm9wZG93biB7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAyOHB4O1xuICAgICAgICAgICAgJi5zZWxlY3QyLWRyb3Bkb3duLS1hYm92ZSB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjhweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gbWF0ZXJpYWwgZml4IChmaXJlZm94KVxuLyogc3R5bGVsaW50LWRpc2FibGUgc2VsZWN0b3ItdHlwZS1uby11bmtub3duICovXG5Ac3VwcG9ydHMgKC1tb3otYXBwZWFyYW5jZTogbm9uZSkge1xuICAgIHNlbGVjdDIubWF0ZXJpYWwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlLFxuICAgIHNlbGVjdDIubWF0ZXJpYWwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xuICAgICAgICBoZWlnaHQ6IDI2cHg7XG4gICAgfVxufVxuXG4vLyBtYXRlcmlhbCBmaXggKG1zIGVkZ2UpXG5cbkBzdXBwb3J0cyAoLW1zLXNjcm9sbC1saW1pdDogMCkge1xuICAgIHNlbGVjdDIubWF0ZXJpYWwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tc2luZ2xlLFxuICAgIHNlbGVjdDIubWF0ZXJpYWwgLnNlbGVjdDItY29udGFpbmVyLS1kZWZhdWx0IC5zZWxlY3QyLXNlbGVjdGlvbi0tbXVsdGlwbGUge1xuICAgICAgICBoZWlnaHQ6IDI1cHg7XG4gICAgfVxufVxuIl19 */"; - -/***/ }), - -/***/ 8303: -/*!********************************************************!*\ - !*** ./src/app/app-examples.component.scss?ngResource ***! - \********************************************************/ -/***/ ((module) => { - -module.exports = "@charset \"UTF-8\";\n#select2-17 ::ng-deep .select2-multiple-labels {\n display: flex;\n justify-content: space-between;\n}\n.noStyle {\n background-color: antiquewhite;\n}\n.flower-list ::ng-deep .flower.white::before {\n content: \"🌼 \";\n}\n.flower-list ::ng-deep .flower.red::before {\n content: \"🌹 \";\n}\n.flower-list ::ng-deep .flower.yellow::before {\n content: \"🌻 \";\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1leGFtcGxlcy5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUFBaEI7RUFDSSxhQUFBO0VBQ0EsOEJBQUE7QUFFSjtBQUNBO0VBQ0ksOEJBQUE7QUFFSjtBQUVJO0VBQ0ksY0FBQTtBQUNSO0FBRUk7RUFDSSxjQUFBO0FBQVI7QUFHSTtFQUNJLGNBQUE7QUFEUiIsImZpbGUiOiJhcHAtZXhhbXBsZXMuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjc2VsZWN0Mi0xNyA6Om5nLWRlZXAgLnNlbGVjdDItbXVsdGlwbGUtbGFiZWxzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLm5vU3R5bGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6IGFudGlxdWV3aGl0ZTtcbn1cblxuLmZsb3dlci1saXN0IDo6bmctZGVlcCAuZmxvd2VyIHtcbiAgICAmLndoaXRlOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAn8J+MvCAnO1xuICAgIH1cblxuICAgICYucmVkOjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAn8J+MuSAnO1xuICAgIH1cblxuICAgICYueWVsbG93OjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAn8J+MuyAnO1xuICAgIH1cbn1cbiJdfQ== */"; - -/***/ }), - -/***/ 6913: -/*!***************************************************!*\ - !*** ./src/app/app-gen.component.scss?ngResource ***! - \***************************************************/ -/***/ ((module) => { - -module.exports = "label {\n display: inline-block;\n width: 250px;\n}\n\n.cols {\n display: flex;\n max-width: 100%;\n}\n\n.cols > * {\n flex: 1 0 50%;\n max-width: 50%;\n}\n\n.code {\n overflow: auto;\n}\n\n.error {\n color: red;\n}\n\ntextarea#json {\n width: calc(100% - 15px);\n resize: vertical;\n box-sizing: border-box;\n height: 200px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC1nZW4uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxxQkFBQTtFQUNBLFlBQUE7QUFDSjs7QUFFQTtFQUNJLGFBQUE7RUFDQSxlQUFBO0FBQ0o7O0FBQ0k7RUFDSSxhQUFBO0VBQ0EsY0FBQTtBQUNSOztBQUdBO0VBQ0ksY0FBQTtBQUFKOztBQUdBO0VBQ0ksVUFBQTtBQUFKOztBQUdBO0VBQ0ksd0JBQUE7RUFDQSxnQkFBQTtFQUNBLHNCQUFBO0VBQ0EsYUFBQTtBQUFKIiwiZmlsZSI6ImFwcC1nZW4uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyJsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAyNTBweDtcbn1cblxuLmNvbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuXG4gICAgJiA+ICoge1xuICAgICAgICBmbGV4OiAxIDAgNTAlO1xuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcbiAgICB9XG59XG5cbi5jb2RlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbn1cblxuLmVycm9yIHtcbiAgICBjb2xvcjogcmVkO1xufVxuXG50ZXh0YXJlYSNqc29uIHtcbiAgICB3aWR0aDogY2FsYygxMDAlIC0gMTVweCk7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGhlaWdodDogMjAwcHg7XG59XG4iXX0= */"; - -/***/ }), - -/***/ 9259: -/*!***********************************************!*\ - !*** ./src/app/app.component.scss?ngResource ***! - \***********************************************/ -/***/ ((module) => { - -module.exports = ".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*!\n Theme: GitHub\n Description: Light theme as seen on github.com\n Author: github.com\n Maintainer: @Hirse\n Updated: 2021-05-15\n\n Outdated base version: https://github.com/primer/github-syntax-light\n Current colors taken from GitHub's CSS\n*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}:root {\n /* label */\n --select2-label-text-color: #000;\n --select2-required-color: red;\n /* selection */\n --select2-selection-border-radius: 4px;\n --select2-selection-background: #fff;\n --select2-selection-disabled-background: #eee;\n --select2-selection-border-color: #aaa;\n --select2-selection-focus-border-color: #000;\n --select2-selection-text-color: #444;\n /* selection: choice item (multiple) */\n --select2-selection-choice-background: #e4e4e4;\n --select2-selection-choice-text-color: #000;\n --select2-selection-choice-border-color: #aaa;\n --select2-selection-choice-close-color: #999;\n --select2-selection-choice-hover-close-color: #333;\n /* placeholder */\n --select2-placeholder-color: #999;\n --select2-placeholder-overflow: ellipsis;\n /* no result message */\n --select2-no-result-color: #888;\n --select2-no-result-font-style: italic;\n /* no result message */\n --select2-too-much-result-color: #888;\n --select2-too-much-result-style: italic;\n /* reset */\n --select2-reset-color: #999;\n /* arrow */\n --select2-arrow-color: #888;\n /* dropdown panel */\n --select2-dropdown-background: #fff;\n --select2-dropdown-border-color: #aaa;\n /* overlay */\n --select2-overlay-backdrop: transparent;\n /* search field */\n --select2-search-border-color: #aaa;\n --select2-search-background: #fff;\n --select2-search-border-radius: 0px;\n /* dropdown option */\n --select2-option-text-color: #000;\n --select2-option-disabled-text-color: #999;\n --select2-option-disabled-background: transparent;\n --select2-option-selected-text-color: #000;\n --select2-option-selected-background: #ddd;\n --select2-option-highlighted-text-color: #fff;\n --select2-option-highlighted-background: #5897fb;\n --select2-option-group-text-color: gray;\n --select2-option-group-background: transparent;\n /* hint */\n --select2-hint-text-color: #888;\n /* for Material ------------------------------------------*/\n --select2-material-underline: #ddd;\n --select2-material-underline-active: #5a419e;\n --select2-material-underline-disabled: linear-gradient(\n to right,\n rgba(0, 0, 0, 0.26) 0,\n rgba(0, 0, 0, 0.26) 33%,\n transparent 0\n );\n --select2-material-underline-invalid: red;\n --select2-material-placeholder-color: rgba(0, 0, 0, 0.38);\n --select2-material-selection-background: #ddd;\n --select2-material-option-selected-background: rgba(0, 0, 0, 0.04);\n --select2-material-option-highlighted-text-color: #000;\n --select2-material-option-selected-text-color: #ff5722;\n}nav ul {\n display: block;\n}nav li {\n display: inline-block;\n padding: 0 15px;\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL25vZGVfbW9kdWxlcy9AYW5ndWxhci9jZGsvb3ZlcmxheS1wcmVidWlsdC5jc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvaGlnaGxpZ2h0LmpzL3N0eWxlcy9naXRodWIuY3NzIiwiYXBwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG1EQUFtRCxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsdUJBQXVCLGNBQWMsQ0FBQyxZQUFZLENBQUMsNkJBQTZCLFlBQVksQ0FBQyw0QkFBNEIsWUFBWSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLHNCQUFzQixpQkFBaUIsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLHlDQUF5QyxDQUFDLHlEQUF5RCxDQUFDLFNBQVMsQ0FBQyxtREFBbUQsU0FBUyxDQUFDLDZFQUE2RSxVQUFVLENBQUMsMkJBQTJCLDBCQUEwQixDQUFDLGtDQUFrQyxtREFBbUQsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsK0RBQStELFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxxQ0FBcUMsZUFBZSxDQUFDLDZDQUE2QyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsd0JBQXdCLGNBQWMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENDQXp3QyxjQUFjLGFBQWEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLFVBQVUsZUFBZSxDQUFDOzs7Ozs7Ozs7Q0FTakYsQ0FBQyxNQUFNLGFBQWEsQ0FBQyxlQUFlLENBQUMsbUlBQW1JLGFBQWEsQ0FBQyxvRkFBb0YsYUFBYSxDQUFDLDBKQUEwSixhQUFhLENBQUMsa0RBQWtELGFBQWEsQ0FBQyw0QkFBNEIsYUFBYSxDQUFDLHVDQUF1QyxhQUFhLENBQUMsZ0VBQWdFLGFBQWEsQ0FBQyxZQUFZLGFBQWEsQ0FBQyxjQUFjLGFBQWEsQ0FBQyxlQUFlLENBQUMsYUFBYSxhQUFhLENBQUMsZUFBZSxhQUFhLENBQUMsaUJBQWlCLENBQUMsYUFBYSxhQUFhLENBQUMsZUFBZSxDQUFDLGVBQWUsYUFBYSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsYUFBYSxDQUFDLHdCQUF3QixDQ05wOUI7RUFDSSxVQUFBO0VBQ0EsZ0NBQUE7RUFDQSw2QkFBQTtFQUVBLGNBQUE7RUFDQSxzQ0FBQTtFQUNBLG9DQUFBO0VBQ0EsNkNBQUE7RUFDQSxzQ0FBQTtFQUNBLDRDQUFBO0VBQ0Esb0NBQUE7RUFFQSxzQ0FBQTtFQUNBLDhDQUFBO0VBQ0EsMkNBQUE7RUFDQSw2Q0FBQTtFQUNBLDRDQUFBO0VBQ0Esa0RBQUE7RUFFQSxnQkFBQTtFQUNBLGlDQUFBO0VBQ0Esd0NBQUE7RUFFQSxzQkFBQTtFQUNBLCtCQUFBO0VBQ0Esc0NBQUE7RUFFQSxzQkFBQTtFQUNBLHFDQUFBO0VBQ0EsdUNBQUE7RUFFQSxVQUFBO0VBQ0EsMkJBQUE7RUFFQSxVQUFBO0VBQ0EsMkJBQUE7RUFFQSxtQkFBQTtFQUNBLG1DQUFBO0VBQ0EscUNBQUE7RUFFQSxZQUFBO0VBQ0EsdUNBQUE7RUFFQSxpQkFBQTtFQUNBLG1DQUFBO0VBQ0EsaUNBQUE7RUFDQSxtQ0FBQTtFQUVBLG9CQUFBO0VBQ0EsaUNBQUE7RUFDQSwwQ0FBQTtFQUNBLGlEQUFBO0VBQ0EsMENBQUE7RUFDQSwwQ0FBQTtFQUNBLDZDQUFBO0VBQ0EsZ0RBQUE7RUFDQSx1Q0FBQTtFQUNBLDhDQUFBO0VBRUEsU0FBQTtFQUNBLCtCQUFBO0VBRUEsMkRBQUE7RUFDQSxrQ0FBQTtFQUNBLDRDQUFBO0VBQ0E7Ozs7O0dBQUE7RUFNQSx5Q0FBQTtFQUNBLHlEQUFBO0VBQ0EsNkNBQUE7RUFDQSxrRUFBQTtFQUNBLHNEQUFBO0VBQ0Esc0RBQUE7QUFiSixDQWlCSTtFQUNJLGNBQUE7QUFkUixDQWlCSTtFQUNJLHFCQUFBO0VBQ0EsZUFBQTtBQWZSIiwiZmlsZSI6ImFwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5jZGstb3ZlcmxheS1jb250YWluZXIsLmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVye3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjA7bGVmdDowO2hlaWdodDoxMDAlO3dpZHRoOjEwMCV9LmNkay1vdmVybGF5LWNvbnRhaW5lcntwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LWNvbnRhaW5lcjplbXB0eXtkaXNwbGF5Om5vbmV9LmNkay1nbG9iYWwtb3ZlcmxheS13cmFwcGVye2Rpc3BsYXk6ZmxleDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDB9LmNkay1vdmVybGF5LXBhbmV7cG9zaXRpb246YWJzb2x1dGU7cG9pbnRlci1ldmVudHM6YXV0bztib3gtc2l6aW5nOmJvcmRlci1ib3g7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LmNkay1vdmVybGF5LWJhY2tkcm9we3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6MTAwMDtwb2ludGVyLWV2ZW50czphdXRvOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsMCwwLDApO3RyYW5zaXRpb246b3BhY2l0eSA0MDBtcyBjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKTtvcGFjaXR5OjB9LmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eToxfS5jZGstaGlnaC1jb250cmFzdC1hY3RpdmUgLmNkay1vdmVybGF5LWJhY2tkcm9wLmNkay1vdmVybGF5LWJhY2tkcm9wLXNob3dpbmd7b3BhY2l0eTouNn0uY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcHtiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjMyKX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3B7dHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyBsaW5lYXIsb3BhY2l0eSAxbXMgbGluZWFyO3Zpc2liaWxpdHk6aGlkZGVuO29wYWNpdHk6MX0uY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AuY2RrLW92ZXJsYXktYmFja2Ryb3Atc2hvd2luZ3tvcGFjaXR5OjA7dmlzaWJpbGl0eTp2aXNpYmxlfS5jZGstb3ZlcmxheS1iYWNrZHJvcC1ub29wLWFuaW1hdGlvbnt0cmFuc2l0aW9uOm5vbmV9LmNkay1vdmVybGF5LWNvbm5lY3RlZC1wb3NpdGlvbi1ib3VuZGluZy1ib3h7cG9zaXRpb246YWJzb2x1dGU7ei1pbmRleDoxMDAwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjFweDttaW4taGVpZ2h0OjFweH0uY2RrLWdsb2JhbC1zY3JvbGxibG9ja3twb3NpdGlvbjpmaXhlZDt3aWR0aDoxMDAlO292ZXJmbG93LXk6c2Nyb2xsfSIsInByZSBjb2RlLmhsanN7ZGlzcGxheTpibG9jaztvdmVyZmxvdy14OmF1dG87cGFkZGluZzoxZW19Y29kZS5obGpze3BhZGRpbmc6M3B4IDVweH0vKiFcbiAgVGhlbWU6IEdpdEh1YlxuICBEZXNjcmlwdGlvbjogTGlnaHQgdGhlbWUgYXMgc2VlbiBvbiBnaXRodWIuY29tXG4gIEF1dGhvcjogZ2l0aHViLmNvbVxuICBNYWludGFpbmVyOiBASGlyc2VcbiAgVXBkYXRlZDogMjAyMS0wNS0xNVxuXG4gIE91dGRhdGVkIGJhc2UgdmVyc2lvbjogaHR0cHM6Ly9naXRodWIuY29tL3ByaW1lci9naXRodWItc3ludGF4LWxpZ2h0XG4gIEN1cnJlbnQgY29sb3JzIHRha2VuIGZyb20gR2l0SHViJ3MgQ1NTXG4qLy5obGpze2NvbG9yOiMyNDI5MmU7YmFja2dyb3VuZDojZmZmfS5obGpzLWRvY3RhZywuaGxqcy1rZXl3b3JkLC5obGpzLW1ldGEgLmhsanMta2V5d29yZCwuaGxqcy10ZW1wbGF0ZS10YWcsLmhsanMtdGVtcGxhdGUtdmFyaWFibGUsLmhsanMtdHlwZSwuaGxqcy12YXJpYWJsZS5sYW5ndWFnZV97Y29sb3I6I2Q3M2E0OX0uaGxqcy10aXRsZSwuaGxqcy10aXRsZS5jbGFzc18sLmhsanMtdGl0bGUuY2xhc3NfLmluaGVyaXRlZF9fLC5obGpzLXRpdGxlLmZ1bmN0aW9uX3tjb2xvcjojNmY0MmMxfS5obGpzLWF0dHIsLmhsanMtYXR0cmlidXRlLC5obGpzLWxpdGVyYWwsLmhsanMtbWV0YSwuaGxqcy1udW1iZXIsLmhsanMtb3BlcmF0b3IsLmhsanMtc2VsZWN0b3ItYXR0ciwuaGxqcy1zZWxlY3Rvci1jbGFzcywuaGxqcy1zZWxlY3Rvci1pZCwuaGxqcy12YXJpYWJsZXtjb2xvcjojMDA1Y2M1fS5obGpzLW1ldGEgLmhsanMtc3RyaW5nLC5obGpzLXJlZ2V4cCwuaGxqcy1zdHJpbmd7Y29sb3I6IzAzMmY2Mn0uaGxqcy1idWlsdF9pbiwuaGxqcy1zeW1ib2x7Y29sb3I6I2UzNjIwOX0uaGxqcy1jb2RlLC5obGpzLWNvbW1lbnQsLmhsanMtZm9ybXVsYXtjb2xvcjojNmE3MzdkfS5obGpzLW5hbWUsLmhsanMtcXVvdGUsLmhsanMtc2VsZWN0b3ItcHNldWRvLC5obGpzLXNlbGVjdG9yLXRhZ3tjb2xvcjojMjI4NjNhfS5obGpzLXN1YnN0e2NvbG9yOiMyNDI5MmV9LmhsanMtc2VjdGlvbntjb2xvcjojMDA1Y2M1O2ZvbnQtd2VpZ2h0OjcwMH0uaGxqcy1idWxsZXR7Y29sb3I6IzczNWMwZn0uaGxqcy1lbXBoYXNpc3tjb2xvcjojMjQyOTJlO2ZvbnQtc3R5bGU6aXRhbGljfS5obGpzLXN0cm9uZ3tjb2xvcjojMjQyOTJlO2ZvbnQtd2VpZ2h0OjcwMH0uaGxqcy1hZGRpdGlvbntjb2xvcjojMjI4NjNhO2JhY2tncm91bmQtY29sb3I6I2YwZmZmNH0uaGxqcy1kZWxldGlvbntjb2xvcjojYjMxZDI4O2JhY2tncm91bmQtY29sb3I6I2ZmZWVmMH0iLCJAaW1wb3J0ICdAYW5ndWxhci9jZGsvb3ZlcmxheS1wcmVidWlsdC5jc3MnO1xuQGltcG9ydCAnfmhpZ2hsaWdodC5qcy9zdHlsZXMvZ2l0aHViLmNzcyc7XG5cbjpyb290IHtcbiAgICAvKiBsYWJlbCAqL1xuICAgIC0tc2VsZWN0Mi1sYWJlbC10ZXh0LWNvbG9yOiAjMDAwO1xuICAgIC0tc2VsZWN0Mi1yZXF1aXJlZC1jb2xvcjogcmVkO1xuXG4gICAgLyogc2VsZWN0aW9uICovXG4gICAgLS1zZWxlY3QyLXNlbGVjdGlvbi1ib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgLS1zZWxlY3QyLXNlbGVjdGlvbi1iYWNrZ3JvdW5kOiAjZmZmO1xuICAgIC0tc2VsZWN0Mi1zZWxlY3Rpb24tZGlzYWJsZWQtYmFja2dyb3VuZDogI2VlZTtcbiAgICAtLXNlbGVjdDItc2VsZWN0aW9uLWJvcmRlci1jb2xvcjogI2FhYTtcbiAgICAtLXNlbGVjdDItc2VsZWN0aW9uLWZvY3VzLWJvcmRlci1jb2xvcjogIzAwMDtcbiAgICAtLXNlbGVjdDItc2VsZWN0aW9uLXRleHQtY29sb3I6ICM0NDQ7XG5cbiAgICAvKiBzZWxlY3Rpb246IGNob2ljZSBpdGVtIChtdWx0aXBsZSkgKi9cbiAgICAtLXNlbGVjdDItc2VsZWN0aW9uLWNob2ljZS1iYWNrZ3JvdW5kOiAjZTRlNGU0O1xuICAgIC0tc2VsZWN0Mi1zZWxlY3Rpb24tY2hvaWNlLXRleHQtY29sb3I6ICMwMDA7XG4gICAgLS1zZWxlY3QyLXNlbGVjdGlvbi1jaG9pY2UtYm9yZGVyLWNvbG9yOiAjYWFhO1xuICAgIC0tc2VsZWN0Mi1zZWxlY3Rpb24tY2hvaWNlLWNsb3NlLWNvbG9yOiAjOTk5O1xuICAgIC0tc2VsZWN0Mi1zZWxlY3Rpb24tY2hvaWNlLWhvdmVyLWNsb3NlLWNvbG9yOiAjMzMzO1xuXG4gICAgLyogcGxhY2Vob2xkZXIgKi9cbiAgICAtLXNlbGVjdDItcGxhY2Vob2xkZXItY29sb3I6ICM5OTk7XG4gICAgLS1zZWxlY3QyLXBsYWNlaG9sZGVyLW92ZXJmbG93OiBlbGxpcHNpcztcblxuICAgIC8qIG5vIHJlc3VsdCBtZXNzYWdlICovXG4gICAgLS1zZWxlY3QyLW5vLXJlc3VsdC1jb2xvcjogIzg4ODtcbiAgICAtLXNlbGVjdDItbm8tcmVzdWx0LWZvbnQtc3R5bGU6IGl0YWxpYztcblxuICAgIC8qIG5vIHJlc3VsdCBtZXNzYWdlICovXG4gICAgLS1zZWxlY3QyLXRvby1tdWNoLXJlc3VsdC1jb2xvcjogIzg4ODtcbiAgICAtLXNlbGVjdDItdG9vLW11Y2gtcmVzdWx0LXN0eWxlOiBpdGFsaWM7XG5cbiAgICAvKiByZXNldCAqL1xuICAgIC0tc2VsZWN0Mi1yZXNldC1jb2xvcjogIzk5OTtcblxuICAgIC8qIGFycm93ICovXG4gICAgLS1zZWxlY3QyLWFycm93LWNvbG9yOiAjODg4O1xuXG4gICAgLyogZHJvcGRvd24gcGFuZWwgKi9cbiAgICAtLXNlbGVjdDItZHJvcGRvd24tYmFja2dyb3VuZDogI2ZmZjtcbiAgICAtLXNlbGVjdDItZHJvcGRvd24tYm9yZGVyLWNvbG9yOiAjYWFhO1xuXG4gICAgLyogb3ZlcmxheSAqL1xuICAgIC0tc2VsZWN0Mi1vdmVybGF5LWJhY2tkcm9wOiB0cmFuc3BhcmVudDtcblxuICAgIC8qIHNlYXJjaCBmaWVsZCAqL1xuICAgIC0tc2VsZWN0Mi1zZWFyY2gtYm9yZGVyLWNvbG9yOiAjYWFhO1xuICAgIC0tc2VsZWN0Mi1zZWFyY2gtYmFja2dyb3VuZDogI2ZmZjtcbiAgICAtLXNlbGVjdDItc2VhcmNoLWJvcmRlci1yYWRpdXM6IDBweDtcblxuICAgIC8qIGRyb3Bkb3duIG9wdGlvbiAqL1xuICAgIC0tc2VsZWN0Mi1vcHRpb24tdGV4dC1jb2xvcjogIzAwMDtcbiAgICAtLXNlbGVjdDItb3B0aW9uLWRpc2FibGVkLXRleHQtY29sb3I6ICM5OTk7XG4gICAgLS1zZWxlY3QyLW9wdGlvbi1kaXNhYmxlZC1iYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICAtLXNlbGVjdDItb3B0aW9uLXNlbGVjdGVkLXRleHQtY29sb3I6ICMwMDA7XG4gICAgLS1zZWxlY3QyLW9wdGlvbi1zZWxlY3RlZC1iYWNrZ3JvdW5kOiAjZGRkO1xuICAgIC0tc2VsZWN0Mi1vcHRpb24taGlnaGxpZ2h0ZWQtdGV4dC1jb2xvcjogI2ZmZjtcbiAgICAtLXNlbGVjdDItb3B0aW9uLWhpZ2hsaWdodGVkLWJhY2tncm91bmQ6ICM1ODk3ZmI7XG4gICAgLS1zZWxlY3QyLW9wdGlvbi1ncm91cC10ZXh0LWNvbG9yOiBncmF5O1xuICAgIC0tc2VsZWN0Mi1vcHRpb24tZ3JvdXAtYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG5cbiAgICAvKiBoaW50ICovXG4gICAgLS1zZWxlY3QyLWhpbnQtdGV4dC1jb2xvcjogIzg4ODtcblxuICAgIC8qIGZvciBNYXRlcmlhbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuICAgIC0tc2VsZWN0Mi1tYXRlcmlhbC11bmRlcmxpbmU6ICNkZGQ7XG4gICAgLS1zZWxlY3QyLW1hdGVyaWFsLXVuZGVybGluZS1hY3RpdmU6ICM1YTQxOWU7XG4gICAgLS1zZWxlY3QyLW1hdGVyaWFsLXVuZGVybGluZS1kaXNhYmxlZDogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICB0byByaWdodCxcbiAgICAgICAgcmdiYSgwLCAwLCAwLCAwLjI2KSAwLFxuICAgICAgICByZ2JhKDAsIDAsIDAsIDAuMjYpIDMzJSxcbiAgICAgICAgdHJhbnNwYXJlbnQgMFxuICAgICk7XG4gICAgLS1zZWxlY3QyLW1hdGVyaWFsLXVuZGVybGluZS1pbnZhbGlkOiByZWQ7XG4gICAgLS1zZWxlY3QyLW1hdGVyaWFsLXBsYWNlaG9sZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuMzgpO1xuICAgIC0tc2VsZWN0Mi1tYXRlcmlhbC1zZWxlY3Rpb24tYmFja2dyb3VuZDogI2RkZDtcbiAgICAtLXNlbGVjdDItbWF0ZXJpYWwtb3B0aW9uLXNlbGVjdGVkLWJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC4wNCk7XG4gICAgLS1zZWxlY3QyLW1hdGVyaWFsLW9wdGlvbi1oaWdobGlnaHRlZC10ZXh0LWNvbG9yOiAjMDAwO1xuICAgIC0tc2VsZWN0Mi1tYXRlcmlhbC1vcHRpb24tc2VsZWN0ZWQtdGV4dC1jb2xvcjogI2ZmNTcyMjtcbn1cblxubmF2IHtcbiAgICB1bCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIGxpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOiAwIDE1cHg7XG4gICAgfVxufVxuIl19 */"; - -/***/ }), - -/***/ 7833: -/*!*********************************************************************************!*\ - !*** ./projects/ng-select2-component/src/lib/select2.component.html?ngResource ***! - \*********************************************************************************/ -/***/ ((module) => { - -module.exports = "
\n \n \n
\n\n \n \n \n  \n \n {{\n placeholder\n }}\n \n ×\n \n
    \n 0\"\n class=\"select2-selection__placeholder\"\n >{{ placeholder }}\n
  • \n ×\n \n
  • \n
\n \n \n \n \n \n\n
\n \n
\n\n\n\n \n\n\n\n \n \n \n
\n \n \n
  • \n \n \n \n \n \n\n
      \n \n
  • \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n"; - -/***/ }), - -/***/ 5805: -/*!********************************************************!*\ - !*** ./src/app/app-examples.component.html?ngResource ***! - \********************************************************/ -/***/ ((module) => { - -module.exports = "

    Examples

    \n\n\n\n\n
    \n

    1. options in group ({{ value1 }})

    \n \n \n

    2. options ({{ value2 }})

    \n \n \n

    3. less options ({{ value3 }})

    \n \n \n

    4. disabled ({{ value4 }})

    \n \n

    5. hide search box ({{ value5 }})

    \n
    \n \n \n \n

    \n 6. search limit to / display status\n \n ({{ value6 }})\n

    \n
    \n \n \n
    \n \n \n

    7. placeholder ({{ value7 }})

    \n \n \n

    8. open, close and search event ({{ value8 }})

    \n \n value : {{ value8 }}\n \n

    9. multiple + limite ({{ value9 | json }})

    \n \n \n

    10. multiple + hide selected items ({{ value10 | json }})

    \n \n \n

    11. material style and form binding ({{ value11 }})

    \n
    \n \n \n \n \n\n

    12. material style ({{ value12 }})

    \n \n \n

    13. boolean value ({{ value13 }})

    \n \n \n

    14. FormControl

    \n
    \n \n \n \n
    \n

    15. with label ({{ value15 }})

    \n \n Select a state\n \n

    16. required with label ({{ value16 }})

    \n \n Select a state\n \n

    17. with two option labels ({{ value17 }})

    \n \n \n

    18. search starts with 3 chars

    \n \n \n

    19. dropdown list position above ({{ value19 }})

    \n \n \n
    \n

    20. nostyle ({{ value20 }})

    \n \n \n
    \n

    21. update to empty/null/undefined ({{ value21 }})

    \n \n \n \n \n \n

    22. with item classes and id ({{ value22 }})

    \n \n \n\n

    23 with template ({{ value23 }})

    \n\n \n {{ data?.color }}: {{ data?.name }}\n \n\n

    24 with template (option / group) ({{ value24 }})

    \n\n \n {{ data?.color }}: {{ data?.name }}\n ({{ label }})\n \n\n

    25 with templates Ids ({{ value25 }})

    \n\n \n {{ data?.name }}\n {{ data?.color }}: {{ data?.name }}\n {{ data | json }}\n \n

    26. infiniteScroll({{ value26 }})

    \n \n

    27. position ({{ value2 }})

    \n \n

    28. max results 50 ({{ value28 }})

    \n \n
    \n"; - -/***/ }), - -/***/ 4380: -/*!***************************************************!*\ - !*** ./src/app/app-gen.component.html?ngResource ***! - \***************************************************/ -/***/ ((module) => { - -module.exports = "

    Generator

    \n\n
    \n
    \n

    data

    \n
    \n \n \n
    \n
    \n

    tags

    \n
    \n \n \n
    \n
    \n \n \n
    \n

    parameters

    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n

    Templates

    \n
    \n \n \n
    \n

    Events

    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n

    HTML render

    \n \n \n \n \n \n {{ data?.color }}: {{ data?.name }}\n \n {{ data?.name }}\n Group: {{ label }}\n {{ data?.name }}\n {{ label }} : {{ data?.color }}\n \n\n

    HTML Code

    \n\n
    \n
    \n
    \n
    \n
    \n"; - -/***/ }), - -/***/ 3383: -/*!***********************************************!*\ - !*** ./src/app/app.component.html?ngResource ***! - \***********************************************/ -/***/ ((module) => { - -module.exports = "the source code of the demo\n\n\n\n\n"; - -/***/ }) - -}, -/******/ __webpack_require__ => { // webpackRuntimeModules -/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) -/******/ __webpack_require__.O(0, ["vendor"], () => (__webpack_exec__(4431))); -/******/ var __webpack_exports__ = __webpack_require__.O(); -/******/ } -]); -//# sourceMappingURL=main.js.map \ No newline at end of file diff --git a/dist/ng-select2/main.js.map b/dist/ng-select2/main.js.map deleted file mode 100644 index dde40c8..0000000 --- a/dist/ng-select2/main.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"main.js","mappings":"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","sources":["./projects/ng-select2-component/src/lib/select2-const.ts","./projects/ng-select2-component/src/lib/select2-hint.component.ts","./projects/ng-select2-component/src/lib/select2-interfaces.ts","./projects/ng-select2-component/src/lib/select2-label.component.ts","./projects/ng-select2-component/src/lib/select2-utils.ts","./projects/ng-select2-component/src/lib/select2.component.ts","./projects/ng-select2-component/src/lib/select2.module.ts","./projects/ng-select2-component/src/public_api.ts","./src/app/app-examples.component.ts","./src/app/app-gen.component.ts","./src/app/app.component.ts","./src/app/app.data.ts","./src/app/app.module.ts","./src/app/app.routing.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["export const timeout = 200;\n\nexport const unicodePatterns: { l: string; s: RegExp }[] = [\n { l: 'a', s: /[ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐ]/gi },\n { l: 'aa', s: /ꜳ/gi },\n { l: 'ae', s: /[æǽǣ]/gi },\n { l: 'ao', s: /ꜵ/gi },\n { l: 'au', s: /ꜷ/gi },\n { l: 'av', s: /[ꜹꜻ]/gi },\n { l: 'ay', s: /ꜽ/gi },\n { l: 'b', s: /[ⓑbḃḅḇƀƃɓ]/gi },\n { l: 'c', s: /[ⓒcćĉċčçḉƈȼꜿↄ]/gi },\n { l: 'd', s: /[ⓓdḋďḍḑḓḏđƌɖɗꝺ]/gi },\n { l: 'dz', s: /[dzdž]/gi },\n { l: 'e', s: /[ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ]/gi },\n { l: 'f', s: /[ⓕfḟƒꝼ]/gi },\n { l: 'g', s: /[ⓖgǵĝḡğġǧģǥɠꞡᵹꝿ]/gi },\n { l: 'h', s: /[ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ]/gi },\n { l: 'hv', s: /ƕ/gi },\n { l: 'i', s: /[ⓘiìíîĩīĭİïḯỉǐȉȋịįḭɨı]/gi },\n { l: 'j', s: /[ⓙjĵǰɉ]/gi },\n { l: 'k', s: /[ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ]/gi },\n { l: 'l', s: /[ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇꝆ]/gi },\n { l: 'lj', s: /lj/gi },\n { l: 'm', s: /[ⓜmḿṁṃɱɯ]/gi },\n { l: 'n', s: /[ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥ]/gi },\n { l: 'nj', s: /nj/gi },\n { l: 'o', s: /[ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔƟꝋꝍɵ]/gi },\n { l: 'oi', s: /ƣ/gi },\n { l: 'oe', s: /œ/gi },\n { l: 'oo', s: /ꝏ/gi },\n { l: 'ou', s: /ȣ/gi },\n { l: 'p', s: /[ⓟpṕṗƥᵽꝑꝓꝕ]/gi },\n { l: 'q', s: /[ⓠqɋꝗꝙ]/gi },\n { l: 'r', s: /[ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ]/gi },\n { l: 's', s: /[ⓢsßẞśṥŝṡšṧṣṩșşȿꞩꞅẛ]/gi },\n { l: 't', s: /[ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ]/gi },\n { l: 'tz', s: /ꜩ/gi },\n { l: 'u', s: /[ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ]/gi },\n { l: 'v', s: /[ⓥvṽṿʋꝟʌ]/gi },\n { l: 'vy', s: /ꝡ/gi },\n { l: 'w', s: /[ⓦwẁẃŵẇẅẘẉⱳ]/gi },\n { l: 'x', s: /[ⓧxẋẍ]/gi },\n { l: 'y', s: /[ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ]/gi },\n { l: 'z', s: /[ⓩzźẑżžẓẕƶȥɀⱬꝣ]/gi },\n];\n\nexport const defaultMinCountForSearch = 6;\n\nexport const protectRegexp = new RegExp('[\\\\-\\\\[\\\\]\\\\/\\\\{\\\\}\\\\(\\\\)\\\\*\\\\+\\\\?\\\\.\\\\\\\\\\\\^\\\\$\\\\|]', 'g');\n","import { Directive } from '@angular/core';\n\n\n@Directive({ selector: 'select2-hint' })\nexport class Select2Hint {}\n","import { Select2 } from './select2.component';\n\n\nexport interface Select2Group {\n /** label of group */\n label: string;\n /** options list */\n options: Select2Option[];\n /** add classes */\n classes?: string;\n /** template id */\n templateId?: string;\n /** template data */\n data?: any;\n}\n\nexport interface Select2Option {\n /** value */\n value: Select2Value;\n /** label of option */\n label: string;\n /** no selectable is disabled */\n disabled?: boolean;\n /** for identification */\n id?: string;\n /** add classes */\n classes?: string;\n /** template id */\n templateId?: string;\n /** template data */\n data?: any;\n /** hide this option */\n hide?: boolean;\n}\n\nexport type Select2Value = string | number | boolean | object;\n\nexport type Select2UpdateValue = Select2Value | Select2Value[];\n\nexport type Select2Data = (Select2Group | Select2Option)[];\n\nexport interface Select2UpdateEvent {\n component: Select2;\n value: U;\n options: Select2Option[];\n}\n\nexport interface Select2SearchEvent {\n component: Select2;\n value: U;\n search: string;\n}\n\nexport interface Select2RemoveEvent {\n component: Select2;\n value: U;\n removedOption: Select2Option;\n}\n\nexport interface Select2ScrollEvent {\n component: Select2;\n way: 'up' | 'down';\n search: string;\n}\n","import { Directive } from '@angular/core';\n\n\n@Directive({ selector: 'select2-label' })\nexport class Select2Label {}\n","import { defaultMinCountForSearch, protectRegexp, unicodePatterns } from './select2-const';\nimport { Select2Data, Select2Group, Select2Option, Select2UpdateValue, Select2Value } from './select2-interfaces';\n\n\nexport class Select2Utils {\n static getOptionByValue(data: Select2Data, value: Select2Value | null | undefined) {\n if (Array.isArray(data)) {\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (option.value === value) {\n return option;\n }\n }\n } else if ((groupOrOption as Select2Option).value === value) {\n return groupOrOption as Select2Option;\n }\n }\n }\n return null;\n }\n\n static getOptionsByValue(\n data: Select2Data,\n value: Select2UpdateValue | null | undefined,\n multiple: boolean | null | undefined,\n ) {\n if (multiple) {\n const values: Select2Value[] = Array.isArray(value) ? value : [];\n const result: Select2Option[] = [];\n for (const v of values) {\n const option = Select2Utils.getOptionByValue(data, v);\n if (option) {\n result.push(option);\n }\n }\n return result;\n }\n return Select2Utils.getOptionByValue(data, value as Select2Value | null | undefined);\n }\n\n static getFirstAvailableOption(data: Select2Data) {\n if (Array.isArray(data)) {\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (!option.disabled) {\n return option.value;\n }\n }\n } else {\n const option = groupOrOption as Select2Option;\n if (!option.disabled) {\n return option.value;\n }\n }\n }\n }\n return null;\n }\n\n static valueIsNotInFilteredData(filteredData: Select2Data, value: Select2Value | null | undefined) {\n if (Select2Utils.isNullOrUndefined(value)) {\n return true;\n }\n for (const groupOrOption of filteredData) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (option.value === value) {\n return false;\n }\n }\n } else if ((groupOrOption as Select2Option).value === value) {\n return false;\n }\n }\n return true;\n }\n\n // eslint-disable-next-line\n static getPreviousOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\n for (let i = filteredData.length - 1; i >= 0; i--) {\n const groupOrOption = filteredData[i];\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (let j = options.length - 1; j >= 0; j--) {\n const option = options[j];\n if (findIt && !option.disabled && !option.hide) {\n return option;\n }\n if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n } else {\n const option = groupOrOption as Select2Option;\n if (findIt && !option.disabled && !option.hide) {\n return option;\n }\n if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n }\n return null;\n }\n // eslint-disable-next-line\n static getNextOption(filteredData: Select2Data, hoveringValue: Select2Value | null | undefined) {\n let findIt = Select2Utils.isNullOrUndefined(hoveringValue);\n for (const groupOrOption of filteredData) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n for (const option of options) {\n if (findIt) {\n if (!option.disabled && !option.hide) {\n return option;\n }\n } else if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n } else {\n const option = groupOrOption as Select2Option;\n if (findIt) {\n if (!option.disabled && !option.hide) {\n return option;\n }\n } else if (!findIt) {\n findIt = option.value === hoveringValue;\n }\n }\n }\n return null;\n }\n\n static getReduceData(data: Select2Data, maxResults: number = 0): { result: Select2Data; reduce: boolean } {\n if (maxResults > 0) {\n let counter = 0;\n const result: Select2Data = [];\n // debugger;\n\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n const group = {\n ...groupOrOption,\n options: [],\n };\n result.push(group);\n for (const item of options) {\n group.options.push(item);\n counter++;\n if (counter === maxResults) {\n return { result, reduce: true };\n }\n }\n } else {\n result.push(groupOrOption);\n counter++;\n }\n if (counter === maxResults) {\n return { result, reduce: true };\n }\n }\n return { result, reduce: false };\n } else {\n return { result: data, reduce: false };\n }\n }\n\n static getFilteredData(\n data: Select2Data,\n searchText: string | null,\n editPattern?: (str: string) => string,\n ): Select2Data {\n if (searchText) {\n const result: Select2Data = [];\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n if (options.some(group => Select2Utils.containSearchText(group.label, searchText, editPattern))) {\n const filteredOptions = options.filter(group =>\n Select2Utils.containSearchText(group.label, searchText, editPattern),\n );\n result.push({\n ...groupOrOption,\n options: filteredOptions,\n });\n }\n } else if (Select2Utils.containSearchText(groupOrOption.label, searchText, editPattern)) {\n result.push(groupOrOption);\n }\n }\n return result;\n } else {\n return data;\n }\n }\n\n static getFilteredSelectedData(\n data: Select2Data,\n selectedOptions: Select2Option | Select2Option[] | null,\n ): Select2Data {\n const result: Select2Data = [];\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n const filteredOptions = options.filter(\n group => Select2Utils.isSelected(selectedOptions, group, true) === 'false',\n );\n if (filteredOptions.length) {\n result.push({\n ...groupOrOption,\n options: filteredOptions,\n });\n }\n } else if (Select2Utils.isSelected(selectedOptions, groupOrOption as Select2Option, true) === 'false') {\n result.push(groupOrOption);\n }\n }\n return result;\n }\n\n static isSearchboxHiddex(data: Select2Data, minCountForSearch?: number | string): boolean {\n if (\n minCountForSearch === '' ||\n minCountForSearch === undefined ||\n minCountForSearch === null ||\n isNaN(+minCountForSearch)\n ) {\n minCountForSearch = defaultMinCountForSearch;\n }\n const optionCount = Select2Utils.getOptionsCount(data);\n return optionCount < +minCountForSearch;\n }\n\n static isSelected(\n options: Select2Option | Select2Option[] | null,\n option: Select2Option,\n multiple: boolean | null | undefined,\n ) {\n return multiple\n ? options && (options as Select2Option[]).some(op => op.value === option.value)\n ? 'true'\n : 'false'\n : options && option.value === (options as Select2Option).value\n ? 'true'\n : 'false';\n }\n\n static removeSelection(options: Select2Option | Select2Option[] | null, option: Select2Option) {\n for (let i = 0; i < (options as Select2Option[]).length; i++) {\n if ((options as Select2Option[])[i].value === option.value) {\n (options as Select2Option[]).splice(i, 1);\n return;\n }\n }\n }\n\n private static getOptionsCount(data: Select2Data) {\n let count = 0;\n if (Array.isArray(data)) {\n for (const groupOrOption of data) {\n const options = (groupOrOption as Select2Group).options;\n if (options) {\n count += options.length;\n } else {\n count++;\n }\n }\n }\n return count;\n }\n\n private static isNullOrUndefined(value: any) {\n return value === null || value === undefined;\n }\n\n private static containSearchText(\n label: string,\n searchText: string | null,\n editPattern: ((str: string) => string) | undefined,\n ): boolean {\n return searchText\n ? Select2Utils.formatSansUnicode(label).match(\n new RegExp(Select2Utils.formatPattern(searchText, editPattern), 'i'),\n ) !== null\n : true;\n }\n\n private static protectPattern(str: string): string {\n return str.replace(protectRegexp, '\\\\$&');\n }\n\n private static formatSansUnicode(str: string): string {\n for (const unicodePattern of unicodePatterns) {\n str = str.replace(unicodePattern.s, unicodePattern.l);\n }\n return str;\n }\n\n private static formatPattern(str: string, editPattern: ((str: string) => string) | undefined): string {\n str = Select2Utils.formatSansUnicode(Select2Utils.protectPattern(str));\n\n if (editPattern && typeof editPattern === 'function') {\n str = editPattern(str);\n }\n return str;\n }\n}\n","import {\n CdkConnectedOverlay,\n ConnectedOverlayPositionChange,\n ConnectedPosition,\n VerticalConnectionPos,\n} from '@angular/cdk/overlay';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport type { ElementRef, QueryList } from '@angular/core';\nimport {\n AfterViewInit,\n Attribute,\n ChangeDetectorRef,\n Component,\n DoCheck,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Self,\n TemplateRef,\n ViewChild,\n ViewChildren,\n} from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NgControl, NgForm } from '@angular/forms';\n\nimport { Subject } from 'rxjs';\n\nimport { timeout } from './select2-const';\nimport {\n Select2Data,\n Select2Group,\n Select2Option,\n Select2RemoveEvent,\n Select2ScrollEvent,\n Select2SearchEvent,\n Select2UpdateEvent,\n Select2UpdateValue,\n Select2Value,\n} from './select2-interfaces';\nimport { Select2Utils } from './select2-utils';\n\n\nlet nextUniqueId = 0;\n\nconst displaySearchStatusList = ['default', 'hidden', 'always'];\n\n@Component({\n selector: 'select2',\n templateUrl: './select2.component.html',\n styleUrls: ['./select2.component.scss'],\n})\nexport class Select2 implements ControlValueAccessor, OnInit, OnDestroy, DoCheck, AfterViewInit {\n _data: Select2Data;\n\n /** data of options & optiongrps */\n @Input() set data(data: Select2Data) {\n this._data = data;\n this.updateFilteredData();\n }\n @Input() minCharForSearch = 0;\n @Input() displaySearchStatus: 'default' | 'hidden' | 'always';\n @Input() placeholder: string;\n @Input() customSearchEnabled: boolean;\n @Input() limitSelection = 0;\n @Input() listPosition: 'above' | 'below' | 'auto' = 'below';\n\n @Input()\n get multiple(): any {\n return this._multiple;\n }\n set multiple(value: any) {\n this._multiple = this._coerceBooleanProperty(value);\n this.ngOnInit();\n }\n\n /** use the material style */\n @Input()\n get overlay(): any {\n return this._overlay;\n }\n set overlay(value: any) {\n this._overlay = this._coerceBooleanProperty(value);\n }\n\n /** use the material style */\n @Input() styleMode: 'material' | 'noStyle' | 'default' = 'default';\n\n /** message when no result */\n @Input() noResultMessage: string;\n\n /** maximum results limit (0 = no limit) */\n @Input() maxResults = 0;\n\n /** message when maximum results */\n @Input() maxResultsMessage = 'Too many results…';\n\n /** infinite scroll distance */\n @Input() infiniteScrollDistance = 1.5;\n\n /** infinite scroll distance */\n @Input() infiniteScrollThrottle = 150;\n\n /** infinite scroll activated */\n @Input()\n get infiniteScroll(): any {\n return this._infiniteScroll;\n }\n set infiniteScroll(value: any) {\n this._infiniteScroll = this._coerceBooleanProperty(value);\n }\n\n /** use it for change the pattern of the filter search */\n @Input() editPattern: (str: string) => string;\n\n /** template for formating */\n @Input() templates: TemplateRef | { [key: string]: TemplateRef };\n\n /** the max height of the results container when opening the select */\n @Input() resultMaxHeight = '200px';\n\n @Output() update = new EventEmitter>();\n @Output() open = new EventEmitter();\n @Output() close = new EventEmitter();\n @Output() focus = new EventEmitter();\n @Output() blur = new EventEmitter();\n @Output() search = new EventEmitter>();\n @Output() scroll = new EventEmitter();\n @Output() removeOption = new EventEmitter>();\n\n option: Select2Option | Select2Option[] | null = null;\n isOpen = false;\n searchStyle: string;\n\n /** Whether the element is focused or not. */\n focused = false;\n\n filteredData: Select2Data;\n\n get select2Options() {\n return this.multiple ? (this.option as Select2Option[]) : null;\n }\n\n get select2Option() {\n return this.multiple ? null : (this.option as Select2Option);\n }\n\n get searchText() {\n return this.innerSearchText;\n }\n\n set searchText(text: string) {\n if (this.customSearchEnabled) {\n this.search.emit({\n component: this,\n value: this._value,\n search: text,\n });\n }\n this.innerSearchText = text;\n }\n\n /** minimal data of show the search field */\n @Input()\n get minCountForSearch(): number | string {\n return this._minCountForSearch;\n }\n\n set minCountForSearch(value: number | string) {\n this._minCountForSearch = value;\n this.updateSearchBox();\n }\n\n /** Unique id of the element. */\n @Input()\n @HostBinding('id')\n get id() {\n return this._id;\n }\n set id(value: string) {\n this._id = value || this._uid;\n }\n\n /** Whether the element is required. */\n @Input()\n get required() {\n return this._required;\n }\n set required(value: any) {\n this._required = this._coerceBooleanProperty(value);\n }\n\n /** Whether selected items should be hidden. */\n @Input()\n get disabled() {\n return this._control ? this._control.disabled : this._disabled;\n }\n set disabled(value: any) {\n this._disabled = this._coerceBooleanProperty(value);\n }\n\n /** Whether items are hidden when has. */\n @Input()\n get hideSelectedItems() {\n return this._hideSelectedItems;\n }\n set hideSelectedItems(value: any) {\n this._hideSelectedItems = this._coerceBooleanProperty(value);\n }\n\n /** Whether the element is readonly. */\n @Input()\n get readonly() {\n return this._readonly;\n }\n set readonly(value: any) {\n this._readonly = this._coerceBooleanProperty(value);\n }\n\n /** The input element's value. */\n @Input()\n get value() {\n return this._value;\n }\n set value(value: Select2UpdateValue) {\n if (this.testValueChange(this._value, value)) {\n setTimeout(() => {\n this._value = value;\n this.writeValue(value);\n }, 10);\n }\n }\n\n /** Tab index for the select2 element. */\n @Input()\n get tabIndex(): number {\n return this.disabled ? -1 : this._tabIndex;\n }\n set tabIndex(value: number) {\n if (typeof value !== 'undefined') {\n this._tabIndex = value;\n }\n }\n\n /** reset with no selected value */\n @Input()\n get resettable() {\n return this._resettable;\n }\n set resettable(value: any) {\n this._resettable = this._coerceBooleanProperty(value);\n }\n\n @HostBinding('attr.aria-invalid')\n get ariaInvalid(): boolean {\n return this._isErrorState();\n }\n\n @HostBinding('class.material')\n get classMaterial(): boolean {\n return this.styleMode === 'material';\n }\n\n @HostBinding('class.nostyle')\n get classNostyle(): boolean {\n return this.styleMode === 'noStyle';\n }\n\n @HostBinding('class.select2-above')\n get select2above(): boolean {\n return !this.overlay ? this.listPosition === 'above' : this._isAbobeOverlay();\n }\n\n overlayWidth: number;\n overlayHeight: number;\n _triggerRect: DOMRect;\n _dropdownRect: DOMRect;\n\n get _positions(): ConnectedPosition[] {\n if (this.listPosition === 'auto') {\n [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n ];\n } else {\n return null;\n }\n }\n\n maxResultsExceeded: boolean;\n\n private _minCountForSearch?: number | string;\n\n @ViewChild(CdkConnectedOverlay)\n private cdkConnectedOverlay: CdkConnectedOverlay;\n\n @ViewChild('selection', { static: true })\n private selection: ElementRef;\n @ViewChild('results') private resultContainer: ElementRef;\n @ViewChildren('result') private results: QueryList;\n @ViewChild('searchInput') private searchInput: ElementRef;\n @ViewChild('dropdown') private dropdown: ElementRef;\n\n private hoveringValue: Select2Value | null | undefined = null;\n private innerSearchText = '';\n private isSearchboxHidden: boolean;\n\n private selectionElement: HTMLElement;\n\n private get resultsElement(): HTMLElement {\n return this.resultContainer?.nativeElement;\n }\n\n private _stateChanges = new Subject();\n\n /** Tab index for the element. */\n private _tabIndex: number;\n\n private _disabled = false;\n private _required = false;\n private _readonly = false;\n private _multiple = false;\n private _overlay = false;\n private _resettable = false;\n private _hideSelectedItems = false;\n private _clickDetection = false;\n private _clickDetectionFc: (e: MouseEvent) => void;\n private _id: string;\n private _uid = `select2-${nextUniqueId++}`;\n private _value: Select2UpdateValue;\n private _previousNativeValue: Select2UpdateValue;\n private _infiniteScroll = true;\n private _overlayPosition: VerticalConnectionPos;\n\n constructor(\n protected _viewportRuler: ViewportRuler,\n private _changeDetectorRef: ChangeDetectorRef,\n @Optional() private _parentForm: NgForm,\n @Optional() private _parentFormGroup: FormGroupDirective,\n @Self() @Optional() public _control: NgControl,\n @Attribute('tabindex') tabIndex: string,\n ) {\n // eslint-disable-next-line no-self-assign\n this.id = this.id;\n this._tabIndex = parseInt(tabIndex, 10) || 0;\n\n if (this._control) {\n this._control.valueAccessor = this;\n }\n\n this._clickDetectionFc = this.clickDetection.bind(this);\n }\n\n /** View -> model callback called when select has been touched */\n private _onTouched = () => {\n // do nothing\n };\n\n /** View -> model callback called when value changes */\n private _onChange: (value: any) => void = () => {\n // do nothing\n };\n\n ngOnInit() {\n this._viewportRuler.change(100).subscribe(() => {\n if (this.isOpen) {\n this.triggerRect();\n }\n });\n\n const option = Select2Utils.getOptionsByValue(\n this._data,\n this._control ? this._control.value : this.value,\n this.multiple,\n );\n if (option !== null) {\n this.option = option;\n }\n if (!Array.isArray(option)) {\n this.hoveringValue = this.value as string | undefined;\n }\n this.updateSearchBox();\n }\n\n ngAfterViewInit() {\n this.cdkConnectedOverlay.positionChange.subscribe((posChange: ConnectedOverlayPositionChange) => {\n if (\n this.listPosition === 'auto' &&\n posChange.connectionPair?.originY &&\n this._overlayPosition !== posChange.connectionPair.originY\n ) {\n this.triggerRect();\n this._overlayPosition = posChange.connectionPair.originY;\n this._changeDetectorRef.detectChanges();\n }\n });\n\n this.selectionElement = this.selection.nativeElement;\n this.triggerRect();\n }\n\n ngDoCheck() {\n this.updateSearchBox();\n this._dirtyCheckNativeValue();\n if (this._triggerRect) {\n if (this.overlayWidth !== this._triggerRect.width) {\n this.overlayWidth = this._triggerRect.width;\n }\n if (this._dropdownRect?.height > 0 && this.overlayHeight !== this._dropdownRect.height) {\n this.overlayHeight = this.listPosition === 'auto' ? this._dropdownRect.height : 0;\n }\n }\n }\n\n ngOnDestroy() {\n window.document.body.removeEventListener('click', this._clickDetectionFc);\n }\n\n updateSearchBox() {\n const hidden = this.customSearchEnabled\n ? false\n : Select2Utils.isSearchboxHiddex(this._data, this._minCountForSearch);\n if (this.isSearchboxHidden !== hidden) {\n this.isSearchboxHidden = hidden;\n }\n }\n\n hideSearch(): boolean {\n const displaySearchStatus =\n displaySearchStatusList.indexOf(this.displaySearchStatus) > -1 ? this.displaySearchStatus : 'default';\n return (displaySearchStatus === 'default' && this.isSearchboxHidden) || displaySearchStatus === 'hidden';\n }\n\n getOptionStyle(option: Select2Option) {\n return (\n 'select2-results__option ' +\n (option.hide ? 'select2-results__option--hide ' : '') +\n (option.value === this.hoveringValue ? 'select2-results__option--highlighted ' : '') +\n (option.classes || '')\n );\n }\n\n mouseenter(option: Select2Option) {\n if (!option.disabled) {\n this.hoveringValue = option.value;\n }\n }\n\n click(option: Select2Option) {\n if (this.testSelection(option)) {\n this.select(option);\n }\n }\n\n reset(e: MouseEvent) {\n this.select(null);\n\n e.preventDefault();\n e.stopPropagation();\n }\n\n prevChange(event: Event) {\n event.stopPropagation();\n }\n\n toggleOpenAndClose() {\n if (this.disabled) {\n return;\n }\n this._focus(true);\n this.isOpen = !this.isOpen;\n\n if (this.isOpen) {\n this.innerSearchText = '';\n this.updateFilteredData();\n this._focusSearchboxOrResultsElement();\n\n setTimeout(() => {\n if (this.option) {\n const option: Select2Option = this.option instanceof Array ? this.option[0] : this.option;\n this.updateScrollFromOption(option);\n } else if (this.resultsElement) {\n this.resultsElement.scrollTop = 0;\n }\n setTimeout(() => {\n this.triggerRect();\n this.cdkConnectedOverlay?.overlayRef?.updatePosition();\n }, 100);\n });\n this.open.emit(this);\n } else {\n this.close.emit(this);\n }\n\n if (this.isOpen && !this._clickDetection) {\n setTimeout(() => {\n window.document.body.addEventListener('click', this._clickDetectionFc, false);\n this._clickDetection = true;\n }, timeout);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n\n hasTemplate(option: Select2Option | Select2Group, defaut: string) {\n return (\n this.templates instanceof TemplateRef ||\n this.templates?.[option.templateId] instanceof TemplateRef ||\n this.templates?.[defaut] instanceof TemplateRef\n );\n }\n\n getTemplate(option: Select2Option | Select2Group, defaut: string) {\n return this.hasTemplate(option, defaut)\n ? this.templates[option.templateId] || this.templates[defaut] || this.templates\n : undefined;\n }\n\n triggerRect() {\n this._triggerRect = this.selectionElement.getBoundingClientRect();\n this._dropdownRect = this.dropdown?.nativeElement\n ? this.dropdown.nativeElement.getBoundingClientRect()\n : undefined;\n }\n\n private testSelection(option: Select2Option) {\n if (option.disabled) {\n return false;\n }\n\n if (\n !this.multiple ||\n !this.limitSelection ||\n (Array.isArray(this._value) && this._value.length < this.limitSelection)\n ) {\n return true;\n }\n return false;\n }\n\n private testValueChange(value1: Select2UpdateValue, value2: Select2UpdateValue) {\n if (\n ((value1 === null || value1 === undefined) && (value2 === null || value2 === undefined)) ||\n value1 === value2\n ) {\n return false;\n }\n if (\n this.multiple &&\n (value1 as Select2Value[])?.length &&\n (value2 as Select2Value[])?.length &&\n (value1 as Select2Value[]).length === (value2 as Select2Value[]).length\n ) {\n for (const e1 of value1 as Select2Value[]) {\n const test = (value2 as Select2Value[]).indexOf(e1) > -1;\n if (!test) {\n return true;\n }\n }\n return false;\n }\n return true;\n }\n\n private updateFilteredData() {\n setTimeout(() => {\n let result = this._data;\n if (this.multiple && this.hideSelectedItems) {\n result = Select2Utils.getFilteredSelectedData(result, this.option);\n }\n\n if (!this.customSearchEnabled && this.searchText && this.searchText.length >= +this.minCharForSearch) {\n result = Select2Utils.getFilteredData(result, this.searchText, this.editPattern);\n }\n\n if (this.maxResults > 0) {\n const data = Select2Utils.getReduceData(result, +this.maxResults);\n result = data.result;\n this.maxResultsExceeded = data.reduce;\n } else {\n this.maxResultsExceeded = false;\n }\n\n if (Select2Utils.valueIsNotInFilteredData(result, this.hoveringValue)) {\n this.hoveringValue = Select2Utils.getFirstAvailableOption(result);\n }\n\n this.filteredData = result;\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private clickDetection(e: MouseEvent) {\n if (!this.ifParentContainsClass(e.target as HTMLElement, 'selection')) {\n if (this.isOpen && !this.ifParentContainsClass(e.target as HTMLElement, 'select2-dropdown')) {\n this.toggleOpenAndClose();\n }\n if (!this.ifParentContainsId(e.target as HTMLElement, this._id)) {\n this.clickExit();\n }\n } else if (this.isOpen && !this.ifParentContainsId(e.target as HTMLElement, this._id)) {\n this.toggleOpenAndClose();\n this.clickExit();\n }\n }\n\n private clickExit() {\n this._focus(false);\n window.document.body.removeEventListener('click', this._clickDetectionFc);\n this._clickDetection = false;\n }\n\n private ifParentContainsClass(element: HTMLElement, cssClass: string): boolean {\n return this.getParentElementByClass(element, cssClass) !== null;\n }\n\n private ifParentContainsId(element: HTMLElement, id: string): boolean {\n return this.getParentElementById(element, id) !== null;\n }\n\n private getParentElementByClass(element: HTMLElement, cssClass: string): HTMLElement | null {\n if (this.containClasses(element, cssClass.trim().split(/\\s+/))) {\n return element;\n }\n return element.parentElement ? this.getParentElementByClass(element.parentElement, cssClass) : null;\n }\n\n private getParentElementById(element: HTMLElement, id: string): HTMLElement | null {\n if (element.id === id) {\n return element;\n }\n return element.parentElement ? this.getParentElementById(element.parentElement, id) : null;\n }\n\n private containClasses(element: HTMLElement, cssClasses: string[]): boolean {\n if (!element.classList) {\n return false;\n }\n for (const cssClass of cssClasses) {\n if (!element.classList.contains(cssClass)) {\n return false;\n }\n }\n return true;\n }\n\n focusin() {\n if (!this.disabled) {\n this._focus(true);\n }\n }\n\n focusout() {\n if (this.selectionElement && !this.selectionElement.classList.contains('select2-focused')) {\n this._focus(false);\n this._onTouched();\n }\n }\n\n select(option: Select2Option | null) {\n let value: any;\n if (option !== null) {\n if (this.multiple) {\n const options = this.option as Select2Option[];\n const index = options.findIndex(op => op.value === option.value);\n if (index === -1) {\n options.push(option);\n } else {\n options.splice(index, 1);\n }\n value = (this.option as Select2Option[]).map(op => op.value);\n } else {\n this.option = option;\n if (this.isOpen) {\n this.isOpen = false;\n this.close.emit(this);\n if (this.selectionElement) {\n this.selectionElement.focus();\n }\n }\n value = this.option.value;\n }\n } else {\n this.option = null;\n }\n\n if (this.multiple && this.hideSelectedItems) {\n this.updateFilteredData();\n }\n\n if (this._control) {\n this._onChange(value);\n } else {\n this._value = value;\n }\n\n this.update.emit({\n component: this,\n value: value,\n options: Array.isArray(this.option) ? this.option : this.option ? [this.option] : null,\n });\n }\n\n keyDown(e: KeyboardEvent) {\n if (this._testKey(e, ['ArrowDown', 40])) {\n this.moveDown();\n e.preventDefault();\n } else if (this._testKey(e, ['ArrowUp', 38])) {\n this.moveUp();\n e.preventDefault();\n } else if (this._testKey(e, ['Enter', 13])) {\n this.selectByEnter();\n e.preventDefault();\n } else if (this._testKey(e, ['Escape', 'Tab', 9, 27]) && this.isOpen) {\n this.toggleOpenAndClose();\n this._focus(false);\n }\n }\n\n openKey(e: KeyboardEvent) {\n if (this._testKey(e, ['ArrowDown', 'ArrowUp', 'Enter', 40, 38, 13])) {\n this.toggleOpenAndClose();\n e.preventDefault();\n } else if (this._testKey(e, ['Escape', 'Tab', 9, 27])) {\n this._focus(false);\n this._onTouched();\n }\n }\n\n trackBy(_index: number, item: Select2Option): any {\n return item.value;\n }\n\n searchUpdate(e: Event) {\n this.searchText = (e.target as HTMLInputElement).value;\n this.updateFilteredData();\n }\n\n isSelected(option: Select2Option) {\n return Select2Utils.isSelected(this.option, option, this.multiple);\n }\n\n isDisabled(option: Select2Option) {\n return option.disabled ? 'true' : 'false';\n }\n\n removeSelection(e: MouseEvent, option: Select2Option) {\n Select2Utils.removeSelection(this.option, option);\n\n if (this.multiple && this.hideSelectedItems) {\n this.updateFilteredData();\n }\n\n const value = (this.option as Select2Option[]).map(op => op.value);\n\n if (this._control) {\n this._onChange(value);\n } else {\n this._value = value;\n }\n\n this.update.emit({\n component: this,\n value: value,\n options: Array.isArray(this.option) ? this.option : this.option ? [this.option] : null,\n });\n this.removeOption.emit({\n component: this,\n value: value,\n removedOption: option,\n });\n\n e.preventDefault();\n e.stopPropagation();\n\n if (this.isOpen) {\n this._focusSearchboxOrResultsElement();\n }\n }\n\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value\n */\n writeValue(value: any) {\n this._setSelectionByValue(value);\n }\n\n /**\n * Saves a callback function to be invoked when the select's value\n * changes from user input. Part of the ControlValueAccessor interface\n * required to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the value changes.\n */\n registerOnChange(fn: (value: any) => void): void {\n this._onChange = fn;\n }\n\n /**\n * Saves a callback function to be invoked when the select is blurred\n * by the user. Part of the ControlValueAccessor interface required\n * to integrate with Angular's core forms API.\n *\n * @param fn Callback to be triggered when the component has been touched.\n */\n registerOnTouched(fn: () => {}): void {\n this._onTouched = fn;\n }\n\n /**\n * Sets whether the component should be disabled.\n * Implemented as part of ControlValueAccessor.\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n onScroll(way: 'up' | 'down') {\n this.scroll.emit({\n component: this,\n way,\n search: this.innerSearchText,\n });\n }\n\n _isErrorState(): boolean {\n const isInvalid = this._control && this._control.invalid;\n const isTouched = this._control && this._control.touched;\n const isSubmitted =\n (this._parentFormGroup && this._parentFormGroup.submitted) ||\n (this._parentForm && this._parentForm.submitted);\n\n return !!(isInvalid && (isTouched || isSubmitted));\n }\n\n private moveUp() {\n this.updateScrollFromOption(Select2Utils.getPreviousOption(this.filteredData, this.hoveringValue));\n }\n\n private moveDown() {\n this.updateScrollFromOption(Select2Utils.getNextOption(this.filteredData, this.hoveringValue));\n }\n\n private updateScrollFromOption(option: Select2Option) {\n if (option) {\n this.hoveringValue = option.value;\n const domElement = this.results.find(r => r.nativeElement.innerText.trim() === option.label);\n if (domElement && this.resultsElement) {\n this.resultsElement.scrollTop = 0;\n const listClientRect = this.resultsElement.getBoundingClientRect();\n const optionClientRect = domElement.nativeElement.getBoundingClientRect();\n this.resultsElement.scrollTop = optionClientRect.top - listClientRect.top;\n }\n }\n }\n\n private selectByEnter() {\n if (this.hoveringValue) {\n const option = Select2Utils.getOptionByValue(this._data, this.hoveringValue);\n this.select(option);\n }\n }\n\n private _testKey(event: KeyboardEvent, refs: (number | string)[] = []): boolean {\n return this._isKey(this._getKey(event), refs);\n }\n\n private _getKey(event: KeyboardEvent): number | string {\n let code: number | string;\n\n if (event.key !== undefined) {\n code = event.key;\n } else if (event['keyIdentifier'] !== undefined) {\n code = event['keyIdentifier'];\n } else if (event['keyCode'] !== undefined) {\n code = event['keyCode'];\n } else {\n event.preventDefault();\n }\n\n return code;\n }\n\n private _isKey(code: number | string, refs: (number | string)[] = []): boolean {\n return refs && refs.length > 0 ? refs.indexOf(code) !== -1 : false;\n }\n\n /**\n * Sets the selected option based on a value. If no option can be\n * found with the designated value, the select trigger is cleared.\n */\n private _setSelectionByValue(value: any | any[]): void {\n if (this.option || (value !== undefined && value !== null)) {\n const isArray = Array.isArray(value);\n if (this.multiple && value && !isArray) {\n throw new Error('Non array value.');\n } else if (this._data) {\n if (this.multiple) {\n this.option = []; // if value is null, then empty option and return\n if (isArray) {\n // value is not null. Preselect value\n const selectedValues: any = Select2Utils.getOptionsByValue(this._data, value, this.multiple);\n selectedValues.map(item => this.select(item));\n }\n } else {\n this.select(Select2Utils.getOptionByValue(this._data, value));\n }\n } else if (this._control) {\n this._control.viewToModelUpdate(value);\n }\n\n this._changeDetectorRef.markForCheck();\n }\n }\n\n /** Does some manual dirty checking on the native input `value` property. */\n private _dirtyCheckNativeValue() {\n const newValue = this.value;\n\n if (this._previousNativeValue !== newValue) {\n this._previousNativeValue = newValue;\n this._stateChanges.next();\n }\n }\n\n private _coerceBooleanProperty(value: any): boolean {\n return value != null && `${value}` !== 'false';\n }\n\n private _focusSearchboxOrResultsElement() {\n if (!this.isSearchboxHidden) {\n setTimeout(() => {\n if (this.searchInput && this.searchInput.nativeElement) {\n this.searchInput.nativeElement.focus();\n }\n });\n } else if (this.resultsElement) {\n this.resultsElement.focus();\n }\n }\n\n private _focus(state: boolean) {\n if (!state && this.focused) {\n this.focused = state;\n this.blur.emit(this);\n } else if (state && !this.focused) {\n this.focused = state;\n this.focus.emit(this);\n }\n }\n\n private _isAbobeOverlay(): boolean {\n return this.overlay && this._overlayPosition && this.listPosition === 'auto'\n ? this._overlayPosition === 'top'\n : this.listPosition === 'above';\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\n\nimport { Select2Hint } from './select2-hint.component';\nimport { Select2Label } from './select2-label.component';\nimport { Select2 } from './select2.component';\n\n\n@NgModule({\n imports: [CommonModule, FormsModule, OverlayModule, ReactiveFormsModule, InfiniteScrollModule],\n declarations: [Select2Hint, Select2Label, Select2],\n exports: [FormsModule, ReactiveFormsModule, Select2Hint, Select2Label, Select2],\n})\nexport class Select2Module {}\n","/*\n * Public API Surface of ng-select2-component\n */\n\nexport * from './lib/select2-interfaces';\nexport * from './lib/select2-const';\nexport * from './lib/select2.component';\nexport * from './lib/select2.component';\nexport * from './lib/select2-hint.component';\nexport * from './lib/select2-label.component';\nexport * from './lib/select2-utils';\nexport * from './lib/select2.module';\n","import { Component } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\n\nimport {\n Select2Data,\n Select2Option,\n Select2ScrollEvent,\n Select2UpdateEvent,\n} from 'projects/ng-select2-component/src/public_api';\n\nimport {\n data1,\n data13,\n data17,\n data18,\n data19,\n data2,\n data22,\n data23,\n data24,\n data26,\n data28,\n data3,\n data5,\n data6,\n} from './app.data';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app-examples.component.html',\n styleUrls: ['./app-examples.component.scss'],\n})\nexport class AppExamplesComponent {\n data1 = data1;\n data2 = data2;\n data3 = data3;\n data4: Select2Data = JSON.parse(JSON.stringify(data3));\n data5 = data5;\n data6 = data6;\n data7: Select2Data = JSON.parse(JSON.stringify(data3));\n data8: Select2Option[] = [];\n data9: Select2Data = JSON.parse(JSON.stringify(data1));\n data10: Select2Data = JSON.parse(JSON.stringify(data1));\n data11: Select2Data = JSON.parse(JSON.stringify(data1));\n data12: Select2Data = JSON.parse(JSON.stringify(data1));\n data13 = data13;\n data15 = data2;\n data16 = data2;\n data17 = data17;\n data18 = data18;\n data19 = data19;\n data20: Select2Data = JSON.parse(JSON.stringify(data19));\n data21: Select2Data = JSON.parse(JSON.stringify(data19));\n data22 = data22;\n data23 = data23;\n data24 = data24;\n data25: Select2Data = JSON.parse(JSON.stringify(data23));\n data26 = data26;\n data28 = data28;\n\n minCountForSearch = Infinity;\n\n ctrlForm: UntypedFormGroup;\n ctrlForm2: UntypedFormGroup;\n\n value1 = 'CA';\n value2 = 'CA';\n value3 = 'foo';\n value4 = 'bar';\n value5 = 0;\n value6 = 'foo3';\n value7 = '';\n value8 = '';\n value9: string[] = [];\n value10: string[] = [];\n value11 = 'CA';\n value12 = 'CA';\n value13 = true;\n value15 = '';\n value16 = '';\n value17 = '';\n value18 = '';\n value19 = '';\n value20 = '';\n value21 = 'foo6';\n value22 = '';\n value23 = '';\n value24 = '';\n value25 = '';\n value26 = '';\n value28 = '';\n\n limitSelection = 0;\n\n overlay = false;\n\n fg: UntypedFormGroup = new UntypedFormGroup({\n state: new UntypedFormControl(),\n });\n\n constructor(private fb: UntypedFormBuilder) {\n this.ctrlForm = this.fb.group({\n test11: new UntypedFormControl(null, Validators.required),\n });\n\n this.ctrlForm2 = this.fb.group({\n test5: new UntypedFormControl(0, Validators.required),\n });\n\n this.fg.patchValue(this.formData());\n }\n\n addItem() {\n const count = this.data6.length + 1;\n this.data6.push({ value: 'foo' + count, label: 'foo' + count });\n }\n\n removeItem() {\n this.data6.pop();\n }\n\n open(key: string, event: Event) {\n console.log(key, event);\n }\n\n close(key: string, event: Event) {\n console.log(key, event);\n }\n\n focus(key: string, event: Event) {\n console.log(key, event);\n }\n\n blur(key: string, event: Event) {\n console.log(key, event);\n }\n\n change(key: string, event: Event) {\n console.log(key, event);\n }\n\n search(key: string, event: Event) {\n console.log(key, event);\n }\n\n open8() {\n this.data8 = JSON.parse(JSON.stringify(data2));\n }\n\n close8() {\n alert('close');\n }\n\n search8(text: string) {\n this.data8 = text\n ? (JSON.parse(JSON.stringify(data2)) as Select2Option[]).filter(\n option => option.label.toLowerCase().indexOf(text.toLowerCase()) > -1,\n )\n : JSON.parse(JSON.stringify(data2));\n }\n\n reset11() {\n const test11 = this.ctrlForm.get('test11');\n if (test11) {\n test11.reset();\n }\n }\n\n change11() {\n const test11 = this.ctrlForm.get('test11');\n if (test11) {\n test11.setValue('UT');\n }\n }\n\n scroll26(event: Select2ScrollEvent) {\n console.log('scroll26', event);\n if (event.way === 'down' && !event.search) {\n const l = this.data26.length;\n for (let i = 1 + l; i <= 50 + l; i++) {\n this.data26.push({ value: i, label: '>' + i });\n }\n }\n }\n\n update(key: string, event: Select2UpdateEvent) {\n this[key] = event.value;\n }\n\n resetForm() {\n this.fg.reset(this.formData());\n }\n\n print() {\n console.log('FormControl', this.fg.value);\n }\n\n formData() {\n return {\n state: ['CA', 'NV'],\n };\n }\n}\n","import { AfterContentInit, Component, TemplateRef } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nimport * as Bowser from 'bowser';\nimport { Json2html, Json2htmlRef } from 'json2html-lib';\n\nimport { data24 } from './app.data';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app-gen.component.html',\n styleUrls: ['./app-gen.component.scss'],\n})\nexport class AppGenComponent implements AfterContentInit {\n data = data24;\n\n html: string;\n\n jsonError: string;\n\n ctrlForm: UntypedFormGroup;\n\n constructor(private fb: UntypedFormBuilder) {\n this.ctrlForm = this.fb.group({\n // data\n json: new UntypedFormControl(JSON.stringify(this.data, null, 2)),\n // tags\n label: new UntypedFormControl(),\n hint: new UntypedFormControl(),\n // parameters\n disabled: new UntypedFormControl(),\n overlay: new UntypedFormControl(),\n minCharForSearch: new UntypedFormControl(),\n minCountForSearch: new UntypedFormControl(),\n displaySearchStatus: new UntypedFormControl(),\n placeholder: new UntypedFormControl(),\n customSearchEnabled: new UntypedFormControl(),\n multiple: new UntypedFormControl(),\n resettable: new UntypedFormControl(),\n limitSelection: new UntypedFormControl(),\n hideSelectedItems: new UntypedFormControl(),\n resultMaxHeight: new UntypedFormControl(),\n listPosition: new UntypedFormControl(),\n infiniteScroll: new UntypedFormControl(),\n infiniteScrollDistance: new UntypedFormControl(),\n infiniteScrollThrottle: new UntypedFormControl(),\n styleMode: new UntypedFormControl(),\n noResultMessage: new UntypedFormControl(),\n maxResults: new UntypedFormControl(),\n maxResultsMessage: new UntypedFormControl(),\n // template\n template: new UntypedFormControl(),\n // event\n update: new UntypedFormControl(),\n open: new UntypedFormControl(),\n close: new UntypedFormControl(),\n focus: new UntypedFormControl(),\n blur: new UntypedFormControl(),\n search: new UntypedFormControl(),\n scroll: new UntypedFormControl(),\n removeOption: new UntypedFormControl(),\n });\n\n this.ctrlForm.valueChanges.subscribe(() => {\n const a = this.ctrlForm.value;\n console.log(a);\n });\n\n this.ctrlForm.valueChanges.subscribe(_ => this.codeGeneration());\n this.ctrlForm.get('json').valueChanges.subscribe(value => this.changeJson(value));\n }\n\n ngAfterContentInit() {\n this.codeGeneration();\n }\n\n getTemplate(\n template: TemplateRef,\n option: TemplateRef,\n group: TemplateRef,\n template1: TemplateRef,\n template2: TemplateRef,\n ) {\n switch (this.ctrlForm.value.template) {\n case 'ref':\n return template;\n case 'option-group':\n return { option: option, group: group };\n case 'templateId':\n return { template1: template1, template2: template2 };\n }\n }\n\n _event(type: string, event: any) {\n if (this.ctrlForm.value && this.ctrlForm.value[type]) {\n console.log('Event', type, event);\n }\n }\n\n codeGeneration() {\n const json: Json2htmlRef = {\n tag: 'select2',\n attrs: {\n '[data]': 'data',\n },\n body: [],\n };\n const value = this.ctrlForm.value;\n const attrs = json.attrs;\n const body = json.body as Json2htmlRef[];\n\n // tags\n\n if (value.label) {\n body.push({ tag: 'select2-label', body: value.label, inline: true });\n }\n if (value.hint) {\n body.push({ tag: 'select2-hint', body: value.hint, inline: true });\n }\n\n // parameters\n\n if (value.disabled) {\n attrs.disabled = this._testBoolean(value.disabled);\n }\n if (value.overlay) {\n attrs.overlay = this._testBoolean(value.overlay);\n }\n if (value.minCharForSearch) {\n attrs.minCharForSearch = value.minCharForSearch;\n }\n if (value.minCountForSearch) {\n attrs.minCountForSearch = value.minCountForSearch;\n }\n if (value.displaySearchStatus) {\n attrs.displaySearchStatus = value.displaySearchStatus;\n }\n if (value.placeholder) {\n attrs.placeholder = value.placeholder;\n }\n if (value.customSearchEnabled) {\n attrs.customSearchEnabled = this._testBoolean(value.customSearchEnabled);\n }\n if (value.multiple) {\n attrs.multiple = this._testBoolean(value.multiple);\n }\n if (value.resettable) {\n attrs.resettable = this._testBoolean(value.resettable);\n }\n if (value.limitSelection) {\n attrs.limitSelection = value.limitSelection;\n }\n if (value.hideSelectedItems) {\n attrs.hideSelectedItems = this._testBoolean(value.hideSelectedItems);\n }\n if (value.resultMaxHeight) {\n attrs.resultMaxHeight = value.resultMaxHeight;\n }\n if (value.listPosition) {\n attrs.listPosition = value.listPosition;\n }\n if (value.infiniteScroll) {\n attrs.infiniteScroll = this._testBoolean(value.infiniteScroll);\n }\n if (value.infiniteScrollDistance) {\n attrs.infiniteScrollDistance = value.infiniteScrollDistance;\n }\n if (value.infiniteScrollThrottle) {\n attrs.infiniteScrollThrottle = value.infiniteScrollThrottle;\n }\n if (value.styleMode) {\n attrs.styleMode = value.styleMode;\n }\n if (value.noResultMessage) {\n attrs.noResultMessage = value.noResultMessage;\n }\n if (value.maxResultsMessage) {\n attrs.maxResultsMessage = value.maxResultsMessage;\n }\n if (value.maxResults) {\n attrs.maxResults = value.maxResults;\n }\n\n // template\n\n switch (value.template) {\n case 'ref':\n attrs['[templates]'] = 'template';\n body.push({\n tag: 'ng-template',\n attrs: { '#template': null, 'let-data': 'data' },\n body: ' {{data?.color}}: {{data?.name}}',\n });\n break;\n case 'option-group':\n attrs['[templates]'] = '{option : option, group: group}';\n body.push(\n {\n tag: 'ng-template',\n attrs: { '#option': null, 'let-data': 'data' },\n body: '{{data?.name}}',\n },\n {\n tag: 'ng-template',\n attrs: { '#group': null, 'let-label': 'label' },\n body: 'Group: {{label}}',\n },\n );\n break;\n case 'templateId':\n attrs['[templates]'] = '{template1 : template1, template2: template2}';\n body.push(\n {\n tag: 'ng-template',\n attrs: { '#template1': null, 'let-data': 'data' },\n body: '{{data?.name}}',\n },\n {\n tag: 'ng-template',\n attrs: { '#template2': null, 'let-label': 'label', 'let-data': 'data' },\n body: '{{label}} : {{data?.color}}',\n },\n );\n break;\n }\n\n // event\n\n if (value.update) {\n attrs['(update)'] = '_update($event)';\n }\n if (value.open) {\n attrs['(open)'] = '_open($event)';\n }\n if (value.close) {\n attrs['(close)'] = '_close($event)';\n }\n if (value.focus) {\n attrs['(focus)'] = '_focus($event)';\n }\n if (value.blur) {\n attrs['(blur)'] = '_blur($event)';\n }\n if (value.search) {\n attrs['(search)'] = '_search($event)';\n }\n\n this.html = new Json2html(json).toString();\n }\n\n changeJson(value: string): void {\n this.jsonError = '';\n try {\n this.data = JSON.parse(value);\n } catch (error) {\n this.jsonError = this._parseJsonError(value, error);\n }\n }\n\n private _parseJsonError(value: string, error: Error): string {\n let returnMessage = '';\n\n const message = error.message.match(/[^\\n]+/)[0];\n\n const browser = Bowser.getParser(window.navigator.userAgent).getResult();\n\n if (browser.browser.name === 'Chrome') {\n if (message.match(/at position/)) {\n const position = parseInt(message.match(/at position (\\d+)/)[1], 10);\n const lines = value.split(/\\n/);\n let l = 1;\n for (const line of lines) {\n if (line) {\n if (l + line.length >= position) {\n returnMessage =\n message + '
    ' + line + '\\n' + ' '.repeat(position - l + 1) + '^
    ';\n break;\n }\n l += line.length + 1;\n }\n }\n } else {\n returnMessage = message;\n }\n } else if (browser.browser.name === 'Firefox') {\n if (message.match(/at line/)) {\n const [, line, column] = message.match(/at line (\\d+) column (\\d+)/);\n const lines = value.split(/\\n/);\n if (lines[+line - 1]) {\n returnMessage =\n message + '
    ' + lines[+line - 1] + '\\n' + ' '.repeat(+column - 1) + '^
    ';\n } else {\n returnMessage = message;\n }\n } else {\n returnMessage = message;\n }\n } else {\n returnMessage = message;\n }\n\n return returnMessage;\n }\n\n private _testBoolean(value: any) {\n return value ? null : undefined;\n }\n}\n","import { Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent {}\n","import { Select2Data } from 'projects/ng-select2-component/src/public_api';\n\nexport const data1: Select2Data = [\n {\n label: 'Alaskan/Hawaiian Time Zone',\n options: [\n { value: 'AK', label: 'Alaska' },\n { value: 'HI', label: 'Hawaii', disabled: true },\n ],\n },\n {\n label: 'Pacific Time Zone',\n options: [\n { value: 'CA', label: 'California' },\n { value: 'NV', label: 'Nevada' },\n { value: 'OR', label: 'Oregon' },\n { value: 'WA', label: 'Washington' },\n ],\n },\n {\n label: 'Mountain Time Zone',\n options: [\n { value: 'AZ', label: 'Arizona' },\n { value: 'CO', label: 'Colorado' },\n { value: 'ID', label: 'Idaho' },\n { value: 'MT', label: 'Montana' },\n { value: 'NE', label: 'Nebraska' },\n { value: 'NM', label: 'New Mexico' },\n { value: 'ND', label: 'North Dakota' },\n { value: 'UT', label: 'Utah' },\n { value: 'WY', label: 'Wyoming' },\n ],\n },\n {\n label: 'Central Time Zone',\n options: [\n { value: 'AL', label: 'Alabama' },\n { value: 'AR', label: 'Arkansas' },\n { value: 'IL', label: 'Illinois' },\n { value: 'IA', label: 'Iowa' },\n { value: 'KS', label: 'Kansas' },\n { value: 'KY', label: 'Kentucky' },\n { value: 'LA', label: 'Louisiana' },\n { value: 'MN', label: 'Minnesota' },\n { value: 'MS', label: 'Mississippi' },\n { value: 'MO', label: 'Missouri' },\n { value: 'OK', label: 'Oklahoma' },\n { value: 'SD', label: 'South Dakota' },\n { value: 'TX', label: 'Texas' },\n { value: 'TN', label: 'Tennessee' },\n { value: 'WI', label: 'Wisconsin' },\n ],\n },\n {\n label: 'Eastern Time Zone',\n options: [\n { value: 'CT', label: 'Connecticut' },\n { value: 'DE', label: 'Delaware' },\n { value: 'FL', label: 'Florida' },\n { value: 'GA', label: 'Georgia' },\n { value: 'IN', label: 'Indiana' },\n { value: 'ME', label: 'Maine' },\n { value: 'MD', label: 'Maryland' },\n { value: 'MA', label: 'Massachusetts' },\n { value: 'MI', label: 'Michigan' },\n { value: 'NH', label: 'New Hampshire' },\n { value: 'NJ', label: 'New Jersey' },\n { value: 'NY', label: 'New York' },\n { value: 'NC', label: 'North Carolina' },\n { value: 'OH', label: 'Ohio' },\n { value: 'PA', label: 'Pennsylvania' },\n { value: 'RI', label: 'Rhode Island' },\n { value: 'SC', label: 'South Carolina' },\n { value: 'VT', label: 'Vermont' },\n { value: 'VA', label: 'Virginia' },\n { value: 'WV', label: 'West Virginia' },\n ],\n },\n];\n\nexport const data2: Select2Data = [\n { value: 'AK', label: 'Alaska' },\n { value: 'HI', label: 'Hawaii', disabled: true },\n { value: 'CA', label: 'California' },\n { value: 'NV', label: 'Nevada' },\n { value: 'OR', label: 'Oregon' },\n { value: 'WA', label: 'Washington' },\n { value: 'AZ', label: 'Arizona' },\n { value: 'CO', label: 'Colorado' },\n { value: 'ID', label: 'Idaho' },\n { value: 'MT', label: 'Montana' },\n { value: 'NE', label: 'Nebraska' },\n { value: 'NM', label: 'New Mexico' },\n { value: 'ND', label: 'North Dakota' },\n { value: 'UT', label: 'Utah' },\n { value: 'WY', label: 'Wyoming' },\n { value: 'AL', label: 'Alabama' },\n { value: 'AR', label: 'Arkansas' },\n { value: 'IL', label: 'Illinois' },\n { value: 'IA', label: 'Iowa' },\n { value: 'KS', label: 'Kansas' },\n { value: 'KY', label: 'Kentucky' },\n { value: 'LA', label: 'Louisiana' },\n { value: 'MN', label: 'Minnesota' },\n { value: 'MS', label: 'Mississippi' },\n { value: 'MO', label: 'Missouri' },\n { value: 'OK', label: 'Oklahoma' },\n { value: 'SD', label: 'South Dakota' },\n { value: 'TX', label: 'Texas' },\n { value: 'TN', label: 'Tennessee' },\n { value: 'WI', label: 'Wisconsin' },\n { value: 'CT', label: 'Connecticut' },\n { value: 'DE', label: 'Delaware' },\n { value: 'FL', label: 'Florida' },\n { value: 'GA', label: 'Georgia' },\n { value: 'IN', label: 'Indiana' },\n { value: 'ME', label: 'Maine' },\n { value: 'MD', label: 'Maryland' },\n { value: 'MA', label: 'Massachusetts' },\n { value: 'MI', label: 'Michigan' },\n { value: 'NH', label: 'New Hampshire' },\n { value: 'NJ', label: 'New Jersey' },\n { value: 'NY', label: 'New York' },\n { value: 'NC', label: 'North Carolina' },\n { value: 'OH', label: 'Ohio' },\n { value: 'PA', label: 'Pennsylvania' },\n { value: 'RI', label: 'Rhode Island' },\n { value: 'SC', label: 'South Carolina' },\n { value: 'VT', label: 'Vermont' },\n { value: 'VA', label: 'Virginia', disabled: true },\n { value: 'WV', label: 'West Virginia' },\n];\n\nexport const data3: Select2Data = [\n { value: 'foo', label: 'foo' },\n { value: 'bar', label: 'bar' },\n { value: 'baz', label: 'baz' },\n];\n\nexport const data5: Select2Data = [\n { value: 0, label: '0' },\n { value: 1, label: '1' },\n { value: 2, label: '2' },\n { value: 3, label: '3' },\n { value: 4, label: '4' },\n { value: 5, label: '5' },\n { value: 6, label: '6' },\n];\n\nexport const data6: Select2Data = [\n { value: 'foo1', label: 'foo1' },\n { value: 'foo2', label: 'foo2' },\n { value: 'foo3', label: 'foo3' },\n { value: 'foo4', label: 'foo4' },\n { value: 'foo5', label: 'foo5' },\n { value: 'foo6', label: 'foo6' },\n];\n\nexport const data18: Select2Data = [\n {\n label: 'Mainland region',\n options: [\n { value: 'FR-ARA', label: 'Auvergne-Rhône-Alpes' },\n { value: 'FR-BFC', label: 'Bourgogne-Franche-Comté' },\n { value: 'FR-BRE', label: 'Bretagne' },\n { value: 'FR-CVL', label: 'Centre-Val de Loire' },\n { value: 'FR-COR', label: 'Corse' },\n { value: 'FR-GES', label: 'Grand Est' },\n { value: 'FR-HDF', label: 'Hauts-de-France' },\n { value: 'FR-IDF', label: 'Île-de-France' },\n { value: 'FR-NOR', label: 'Normandie' },\n { value: 'FR-NAQ', label: 'Nouvelle-Aquitaine' },\n { value: 'FR-OCC', label: 'Occitanie' },\n { value: 'FR-PDL', label: 'Pays de la Loire' },\n { value: 'FR-PAC', label: \"Provence-Alpes-Côte d'Azur\" },\n ],\n },\n {\n label: 'Overseas region',\n options: [\n { value: 'FR-GP', label: 'Guadeloupe' },\n { value: 'FR-MQ', label: 'Martinique' },\n { value: 'FR-GF', label: 'Guyane' },\n { value: 'FR-RE', label: 'La Réunion' },\n { value: 'FR-YT', label: 'Mayotte' },\n ],\n },\n];\n\nexport const data19: Select2Data = [\n { value: 'foo1', label: 'foo1' },\n { value: 'foo2', label: 'foo2' },\n { value: 'foo3', label: 'foo3' },\n { value: 'foo4', label: 'foo4' },\n { value: 'foo5', label: 'foo5' },\n { value: 'foo6', label: 'foo6' },\n { value: 'foo7', label: 'foo7' },\n { value: 'foo8', label: 'foo8' },\n { value: 'foo9', label: 'foo9', hide: true },\n];\n\nexport const data13: Select2Data = [\n { value: true, label: 'true' },\n { value: false, label: 'false' },\n];\n\nexport const data17: Select2Data = [\n {\n value: 'fr',\n label: `
    \n
    France
    \n
    Europe
    \n
    `,\n },\n {\n value: 'sp',\n label: `
    \n
    Spain
    \n
    Europe
    \n
    `,\n },\n {\n value: 'ch',\n label: `
    \n
    China
    \n
    Asia
    \n
    `,\n },\n];\n\nexport const data22: Select2Data = [\n { value: 'heliotrope', label: 'Heliotrope', classes: 'white flower', id: 'option-heliotrope' },\n { value: 'hibiscus', label: 'Hibiscus', classes: 'red flower', id: 'option-hibiscus' },\n { value: 'lily', label: 'Lily', classes: 'white flower', id: 'option-lily' },\n { value: 'marigold', label: 'Marigold', classes: 'red flower', id: 'option-marigold' },\n { value: 'petunia', label: 'Petunia', classes: 'white flower', id: 'option-petunia' },\n { value: 'sunflower', label: 'Sunflower', classes: 'yellow flower', id: 'option-sunflower' },\n];\n\nexport const data23: Select2Data = [\n {\n value: 'heliotrope',\n label: 'Heliotrope',\n data: { color: 'white', name: 'Heliotrope' },\n templateId: 'template1',\n id: 'option-heliotrope',\n },\n {\n value: 'hibiscus',\n label: 'Hibiscus',\n data: { color: 'red', name: 'Hibiscus' },\n templateId: 'template1',\n id: 'option-hibiscus',\n },\n {\n value: 'lily',\n label: 'Lily',\n data: { color: 'white', name: 'Lily' },\n templateId: 'template2',\n id: 'option-lily',\n },\n {\n value: 'marigold',\n label: 'Marigold',\n data: { color: 'red', name: 'Marigold' },\n templateId: 'template2',\n id: 'option-marigold',\n },\n {\n value: 'petunia',\n label: 'Petunia',\n data: { color: 'white', name: 'Petunia' },\n templateId: 'template3',\n id: 'option-petunia',\n },\n {\n value: 'sunflower',\n label: 'Sunflower',\n data: { color: 'yellow', name: 'Sunflower' },\n templateId: 'template3',\n id: 'option-sunflower',\n },\n];\n\nexport const data24: Select2Data = [\n {\n label: 'Red',\n data: { name: '(Red)' },\n options: [\n {\n value: 'hibiscus',\n label: 'Hibiscus',\n data: { color: 'red', name: 'Hibiscus' },\n templateId: 'template1',\n id: 'option-hibiscus',\n },\n {\n value: 'marigold',\n label: 'Marigold',\n data: { color: 'red', name: 'Marigold' },\n templateId: 'template2',\n id: 'option-marigold',\n },\n ],\n },\n {\n label: 'Yellow',\n data: { name: '(Yellow)' },\n options: [\n {\n value: 'sunflower',\n label: 'Sunflower',\n data: { color: 'yellow', name: 'Sunflower' },\n templateId: 'template3',\n id: 'option-sunflower',\n },\n ],\n },\n {\n label: 'White',\n data: { name: '(White)' },\n options: [\n {\n value: 'heliotrope',\n label: 'Heliotrope',\n data: { color: 'white', name: 'Heliotrope' },\n templateId: 'template1',\n id: 'option-heliotrope',\n },\n {\n value: 'lily',\n label: 'Lily',\n data: { color: 'white', name: 'Lily' },\n templateId: 'template2',\n id: 'option-lily',\n },\n {\n value: 'petunia',\n label: 'Petunia',\n data: { color: 'white', name: 'Petunia' },\n templateId: 'template3',\n id: 'option-petunia',\n },\n ],\n },\n];\n\nexport let data26: Select2Data = [];\nfor (let i = 1; i <= 50; i++) {\n data26.push({ value: i, label: '>' + i });\n}\n\nexport let data28: Select2Data = [];\nfor (let i = 1; i <= 200; i++) {\n data28.push({ value: i, label: 'item n° ' + i });\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\n\nimport { HIGHLIGHT_OPTIONS, HighlightModule } from 'ngx-highlightjs';\n\nimport { Select2Module } from 'projects/ng-select2-component/src/public_api';\n\nimport { AppExamplesComponent } from './app-examples.component';\nimport { AppGenComponent } from './app-gen.component';\nimport { AppComponent } from './app.component';\n\nimport { AppRoutingModule } from './app.routing';\n\ndeclare var require: any;\n\n/**\n * Import every language you wish to highlight here\n * NOTE: The name of each language must match the file name its imported from\n */\nexport function hljsLanguages() {\n return [\n { name: 'typescript', func: require('highlight.js/lib/languages/typescript') },\n { name: 'javascript', func: require('highlight.js/lib/languages/javascript') },\n { name: 'scss', func: require('highlight.js/lib/languages/scss') },\n { name: 'xml', func: require('highlight.js/lib/languages/xml') },\n ];\n}\n\n@NgModule({\n declarations: [AppComponent, AppExamplesComponent, AppGenComponent],\n imports: [BrowserModule, AppRoutingModule, FormsModule, Select2Module, HighlightModule],\n providers: [\n {\n provide: HIGHLIGHT_OPTIONS,\n useValue: {\n coreLibraryLoader: () => import('highlight.js/lib/core'),\n lineNumbersLoader: () => import('highlightjs-line-numbers.js'),\n languages: {\n typescript: () => import('highlight.js/lib/languages/typescript'),\n javascript: () => import('highlight.js/lib/languages/javascript'),\n css: () => import('highlight.js/lib/languages/css'),\n xml: () => import('highlight.js/lib/languages/xml'),\n },\n },\n },\n ],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\n\nimport { AppExamplesComponent } from './app-examples.component';\nimport { AppGenComponent } from './app-gen.component';\n\nconst routes: Routes = [\n { path: 'examples', component: AppExamplesComponent },\n { path: 'generator', component: AppGenComponent },\n { path: '**', component: AppExamplesComponent },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes)],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n};\n\n/*\n * In development mode, to ignore zone related error stack frames such as\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\n * import the following file, but please comment it out in production mode\n * because it will have performance impact when throw error\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file diff --git a/dist/ng-select2/node_modules_highlight_js_es_core_js.js b/dist/ng-select2/node_modules_highlight_js_es_core_js.js deleted file mode 100644 index b699504..0000000 --- a/dist/ng-select2/node_modules_highlight_js_es_core_js.js +++ /dev/null @@ -1,2723 +0,0 @@ -(self["webpackChunkng_select2"] = self["webpackChunkng_select2"] || []).push([["node_modules_highlight_js_es_core_js"],{ - -/***/ 9265: -/*!***********************************************!*\ - !*** ./node_modules/highlight.js/lib/core.js ***! - \***********************************************/ -/***/ ((module) => { - -var deepFreezeEs6 = { - exports: {} -}; - -function deepFreeze(obj) { - if (obj instanceof Map) { - obj.clear = obj.delete = obj.set = function () { - throw new Error('map is read-only'); - }; - } else if (obj instanceof Set) { - obj.add = obj.clear = obj.delete = function () { - throw new Error('set is read-only'); - }; - } // Freeze self - - - Object.freeze(obj); - Object.getOwnPropertyNames(obj).forEach(function (name) { - var prop = obj[name]; // Freeze prop if it is an object - - if (typeof prop == 'object' && !Object.isFrozen(prop)) { - deepFreeze(prop); - } - }); - return obj; -} - -deepFreezeEs6.exports = deepFreeze; -deepFreezeEs6.exports.default = deepFreeze; -var deepFreeze$1 = deepFreezeEs6.exports; -/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */ - -/** @typedef {import('highlight.js').CompiledMode} CompiledMode */ - -/** @implements CallbackResponse */ - -class Response { - /** - * @param {CompiledMode} mode - */ - constructor(mode) { - // eslint-disable-next-line no-undefined - if (mode.data === undefined) mode.data = {}; - this.data = mode.data; - this.isMatchIgnored = false; - } - - ignoreMatch() { - this.isMatchIgnored = true; - } - -} -/** - * @param {string} value - * @returns {string} - */ - - -function escapeHTML(value) { - return value.replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, '''); -} -/** - * performs a shallow merge of multiple objects into one - * - * @template T - * @param {T} original - * @param {Record[]} objects - * @returns {T} a single new object - */ - - -function inherit$1(original, ...objects) { - /** @type Record */ - const result = Object.create(null); - - for (const key in original) { - result[key] = original[key]; - } - - objects.forEach(function (obj) { - for (const key in obj) { - result[key] = obj[key]; - } - }); - return ( - /** @type {T} */ - result - ); -} -/** - * @typedef {object} Renderer - * @property {(text: string) => void} addText - * @property {(node: Node) => void} openNode - * @property {(node: Node) => void} closeNode - * @property {() => string} value - */ - -/** @typedef {{kind?: string, sublanguage?: boolean}} Node */ - -/** @typedef {{walk: (r: Renderer) => void}} Tree */ - -/** */ - - -const SPAN_CLOSE = ''; -/** - * Determines if a node needs to be wrapped in - * - * @param {Node} node */ - -const emitsWrappingTags = node => { - return !!node.kind; -}; -/** - * - * @param {string} name - * @param {{prefix:string}} options - */ - - -const expandScopeName = (name, { - prefix -}) => { - if (name.includes(".")) { - const pieces = name.split("."); - return [`${prefix}${pieces.shift()}`, ...pieces.map((x, i) => `${x}${"_".repeat(i + 1)}`)].join(" "); - } - - return `${prefix}${name}`; -}; -/** @type {Renderer} */ - - -class HTMLRenderer { - /** - * Creates a new HTMLRenderer - * - * @param {Tree} parseTree - the parse tree (must support `walk` API) - * @param {{classPrefix: string}} options - */ - constructor(parseTree, options) { - this.buffer = ""; - this.classPrefix = options.classPrefix; - parseTree.walk(this); - } - /** - * Adds texts to the output stream - * - * @param {string} text */ - - - addText(text) { - this.buffer += escapeHTML(text); - } - /** - * Adds a node open to the output stream (if needed) - * - * @param {Node} node */ - - - openNode(node) { - if (!emitsWrappingTags(node)) return; - let scope = node.kind; - - if (node.sublanguage) { - scope = `language-${scope}`; - } else { - scope = expandScopeName(scope, { - prefix: this.classPrefix - }); - } - - this.span(scope); - } - /** - * Adds a node close to the output stream (if needed) - * - * @param {Node} node */ - - - closeNode(node) { - if (!emitsWrappingTags(node)) return; - this.buffer += SPAN_CLOSE; - } - /** - * returns the accumulated buffer - */ - - - value() { - return this.buffer; - } // helpers - - /** - * Builds a span element - * - * @param {string} className */ - - - span(className) { - this.buffer += ``; - } - -} -/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */ - -/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */ - -/** @typedef {import('highlight.js').Emitter} Emitter */ - -/** */ - - -class TokenTree { - constructor() { - /** @type DataNode */ - this.rootNode = { - children: [] - }; - this.stack = [this.rootNode]; - } - - get top() { - return this.stack[this.stack.length - 1]; - } - - get root() { - return this.rootNode; - } - /** @param {Node} node */ - - - add(node) { - this.top.children.push(node); - } - /** @param {string} kind */ - - - openNode(kind) { - /** @type Node */ - const node = { - kind, - children: [] - }; - this.add(node); - this.stack.push(node); - } - - closeNode() { - if (this.stack.length > 1) { - return this.stack.pop(); - } // eslint-disable-next-line no-undefined - - - return undefined; - } - - closeAllNodes() { - while (this.closeNode()); - } - - toJSON() { - return JSON.stringify(this.rootNode, null, 4); - } - /** - * @typedef { import("./html_renderer").Renderer } Renderer - * @param {Renderer} builder - */ - - - walk(builder) { - // this does not - return this.constructor._walk(builder, this.rootNode); // this works - // return TokenTree._walk(builder, this.rootNode); - } - /** - * @param {Renderer} builder - * @param {Node} node - */ - - - static _walk(builder, node) { - if (typeof node === "string") { - builder.addText(node); - } else if (node.children) { - builder.openNode(node); - node.children.forEach(child => this._walk(builder, child)); - builder.closeNode(node); - } - - return builder; - } - /** - * @param {Node} node - */ - - - static _collapse(node) { - if (typeof node === "string") return; - if (!node.children) return; - - if (node.children.every(el => typeof el === "string")) { - // node.text = node.children.join(""); - // delete node.children; - node.children = [node.children.join("")]; - } else { - node.children.forEach(child => { - TokenTree._collapse(child); - }); - } - } - -} -/** - Currently this is all private API, but this is the minimal API necessary - that an Emitter must implement to fully support the parser. - - Minimal interface: - - - addKeyword(text, kind) - - addText(text) - - addSublanguage(emitter, subLanguageName) - - finalize() - - openNode(kind) - - closeNode() - - closeAllNodes() - - toHTML() - -*/ - -/** - * @implements {Emitter} - */ - - -class TokenTreeEmitter extends TokenTree { - /** - * @param {*} options - */ - constructor(options) { - super(); - this.options = options; - } - /** - * @param {string} text - * @param {string} kind - */ - - - addKeyword(text, kind) { - if (text === "") { - return; - } - - this.openNode(kind); - this.addText(text); - this.closeNode(); - } - /** - * @param {string} text - */ - - - addText(text) { - if (text === "") { - return; - } - - this.add(text); - } - /** - * @param {Emitter & {root: DataNode}} emitter - * @param {string} name - */ - - - addSublanguage(emitter, name) { - /** @type DataNode */ - const node = emitter.root; - node.kind = name; - node.sublanguage = true; - this.add(node); - } - - toHTML() { - const renderer = new HTMLRenderer(this, this.options); - return renderer.value(); - } - - finalize() { - return true; - } - -} -/** - * @param {string} value - * @returns {RegExp} - * */ - -/** - * @param {RegExp | string } re - * @returns {string} - */ - - -function source(re) { - if (!re) return null; - if (typeof re === "string") return re; - return re.source; -} -/** - * @param {RegExp | string } re - * @returns {string} - */ - - -function lookahead(re) { - return concat('(?=', re, ')'); -} -/** - * @param {RegExp | string } re - * @returns {string} - */ - - -function anyNumberOfTimes(re) { - return concat('(?:', re, ')*'); -} -/** - * @param {RegExp | string } re - * @returns {string} - */ - - -function optional(re) { - return concat('(?:', re, ')?'); -} -/** - * @param {...(RegExp | string) } args - * @returns {string} - */ - - -function concat(...args) { - const joined = args.map(x => source(x)).join(""); - return joined; -} -/** - * @param { Array } args - * @returns {object} - */ - - -function stripOptionsFromArgs(args) { - const opts = args[args.length - 1]; - - if (typeof opts === 'object' && opts.constructor === Object) { - args.splice(args.length - 1, 1); - return opts; - } else { - return {}; - } -} -/** @typedef { {capture?: boolean} } RegexEitherOptions */ - -/** - * Any of the passed expresssions may match - * - * Creates a huge this | this | that | that match - * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args - * @returns {string} - */ - - -function either(...args) { - /** @type { object & {capture?: boolean} } */ - const opts = stripOptionsFromArgs(args); - const joined = '(' + (opts.capture ? "" : "?:") + args.map(x => source(x)).join("|") + ")"; - return joined; -} -/** - * @param {RegExp | string} re - * @returns {number} - */ - - -function countMatchGroups(re) { - return new RegExp(re.toString() + '|').exec('').length - 1; -} -/** - * Does lexeme start with a regular expression match at the beginning - * @param {RegExp} re - * @param {string} lexeme - */ - - -function startsWith(re, lexeme) { - const match = re && re.exec(lexeme); - return match && match.index === 0; -} // BACKREF_RE matches an open parenthesis or backreference. To avoid -// an incorrect parse, it additionally matches the following: -// - [...] elements, where the meaning of parentheses and escapes change -// - other escape sequences, so we do not misparse escape sequences as -// interesting elements -// - non-matching or lookahead parentheses, which do not capture. These -// follow the '(' with a '?'. - - -const BACKREF_RE = /\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./; // **INTERNAL** Not intended for outside usage -// join logically computes regexps.join(separator), but fixes the -// backreferences so they continue to match. -// it also places each individual regular expression into it's own -// match group, keeping track of the sequencing of those match groups -// is currently an exercise for the caller. :-) - -/** - * @param {(string | RegExp)[]} regexps - * @param {{joinWith: string}} opts - * @returns {string} - */ - -function _rewriteBackreferences(regexps, { - joinWith -}) { - let numCaptures = 0; - return regexps.map(regex => { - numCaptures += 1; - const offset = numCaptures; - let re = source(regex); - let out = ''; - - while (re.length > 0) { - const match = BACKREF_RE.exec(re); - - if (!match) { - out += re; - break; - } - - out += re.substring(0, match.index); - re = re.substring(match.index + match[0].length); - - if (match[0][0] === '\\' && match[1]) { - // Adjust the backreference. - out += '\\' + String(Number(match[1]) + offset); - } else { - out += match[0]; - - if (match[0] === '(') { - numCaptures++; - } - } - } - - return out; - }).map(re => `(${re})`).join(joinWith); -} -/** @typedef {import('highlight.js').Mode} Mode */ - -/** @typedef {import('highlight.js').ModeCallback} ModeCallback */ -// Common regexps - - -const MATCH_NOTHING_RE = /\b\B/; -const IDENT_RE = '[a-zA-Z]\\w*'; -const UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\w*'; -const NUMBER_RE = '\\b\\d+(\\.\\d+)?'; -const C_NUMBER_RE = '(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)'; // 0x..., 0..., decimal, float - -const BINARY_NUMBER_RE = '\\b(0b[01]+)'; // 0b... - -const RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~'; -/** -* @param { Partial & {binary?: string | RegExp} } opts -*/ - -const SHEBANG = (opts = {}) => { - const beginShebang = /^#![ ]*\//; - - if (opts.binary) { - opts.begin = concat(beginShebang, /.*\b/, opts.binary, /\b.*/); - } - - return inherit$1({ - scope: 'meta', - begin: beginShebang, - end: /$/, - relevance: 0, - - /** @type {ModeCallback} */ - "on:begin": (m, resp) => { - if (m.index !== 0) resp.ignoreMatch(); - } - }, opts); -}; // Common modes - - -const BACKSLASH_ESCAPE = { - begin: '\\\\[\\s\\S]', - relevance: 0 -}; -const APOS_STRING_MODE = { - scope: 'string', - begin: '\'', - end: '\'', - illegal: '\\n', - contains: [BACKSLASH_ESCAPE] -}; -const QUOTE_STRING_MODE = { - scope: 'string', - begin: '"', - end: '"', - illegal: '\\n', - contains: [BACKSLASH_ESCAPE] -}; -const PHRASAL_WORDS_MODE = { - begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ -}; -/** - * Creates a comment mode - * - * @param {string | RegExp} begin - * @param {string | RegExp} end - * @param {Mode | {}} [modeOptions] - * @returns {Partial} - */ - -const COMMENT = function (begin, end, modeOptions = {}) { - const mode = inherit$1({ - scope: 'comment', - begin, - end, - contains: [] - }, modeOptions); - mode.contains.push({ - scope: 'doctag', - // hack to avoid the space from being included. the space is necessary to - // match here to prevent the plain text rule below from gobbling up doctags - begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)', - end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/, - excludeBegin: true, - relevance: 0 - }); - const ENGLISH_WORD = either( // list of common 1 and 2 letter words in English - "I", "a", "is", "so", "us", "to", "at", "if", "in", "it", "on", // note: this is not an exhaustive list of contractions, just popular ones - /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc - /[A-Za-z]+[-][a-z]+/, // `no-way`, etc. - /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences - ); // looking like plain text, more likely to be a comment - - mode.contains.push({ - // TODO: how to include ", (, ) without breaking grammars that use these for - // comment delimiters? - // begin: /[ ]+([()"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()":]?([.][ ]|[ ]|\))){3}/ - // --- - // this tries to find sequences of 3 english words in a row (without any - // "programming" type syntax) this gives us a strong signal that we've - // TRULY found a comment - vs perhaps scanning with the wrong language. - // It's possible to find something that LOOKS like the start of the - // comment - but then if there is no readable text - good chance it is a - // false match and not a comment. - // - // for a visual example please see: - // https://github.com/highlightjs/highlight.js/issues/2827 - begin: concat(/[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */ - '(', ENGLISH_WORD, /[.]?[:]?([.][ ]|[ ])/, '){3}') // look for 3 words in a row - - }); - return mode; -}; - -const C_LINE_COMMENT_MODE = COMMENT('//', '$'); -const C_BLOCK_COMMENT_MODE = COMMENT('/\\*', '\\*/'); -const HASH_COMMENT_MODE = COMMENT('#', '$'); -const NUMBER_MODE = { - scope: 'number', - begin: NUMBER_RE, - relevance: 0 -}; -const C_NUMBER_MODE = { - scope: 'number', - begin: C_NUMBER_RE, - relevance: 0 -}; -const BINARY_NUMBER_MODE = { - scope: 'number', - begin: BINARY_NUMBER_RE, - relevance: 0 -}; -const REGEXP_MODE = { - // this outer rule makes sure we actually have a WHOLE regex and not simply - // an expression such as: - // - // 3 / something - // - // (which will then blow up when regex's `illegal` sees the newline) - begin: /(?=\/[^/\n]*\/)/, - contains: [{ - scope: 'regexp', - begin: /\//, - end: /\/[gimuy]*/, - illegal: /\n/, - contains: [BACKSLASH_ESCAPE, { - begin: /\[/, - end: /\]/, - relevance: 0, - contains: [BACKSLASH_ESCAPE] - }] - }] -}; -const TITLE_MODE = { - scope: 'title', - begin: IDENT_RE, - relevance: 0 -}; -const UNDERSCORE_TITLE_MODE = { - scope: 'title', - begin: UNDERSCORE_IDENT_RE, - relevance: 0 -}; -const METHOD_GUARD = { - // excludes method names from keyword processing - begin: '\\.\\s*' + UNDERSCORE_IDENT_RE, - relevance: 0 -}; -/** - * Adds end same as begin mechanics to a mode - * - * Your mode must include at least a single () match group as that first match - * group is what is used for comparison - * @param {Partial} mode - */ - -const END_SAME_AS_BEGIN = function (mode) { - return Object.assign(mode, { - /** @type {ModeCallback} */ - 'on:begin': (m, resp) => { - resp.data._beginMatch = m[1]; - }, - - /** @type {ModeCallback} */ - 'on:end': (m, resp) => { - if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); - } - }); -}; - -var MODES = /*#__PURE__*/Object.freeze({ - __proto__: null, - MATCH_NOTHING_RE: MATCH_NOTHING_RE, - IDENT_RE: IDENT_RE, - UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE, - NUMBER_RE: NUMBER_RE, - C_NUMBER_RE: C_NUMBER_RE, - BINARY_NUMBER_RE: BINARY_NUMBER_RE, - RE_STARTERS_RE: RE_STARTERS_RE, - SHEBANG: SHEBANG, - BACKSLASH_ESCAPE: BACKSLASH_ESCAPE, - APOS_STRING_MODE: APOS_STRING_MODE, - QUOTE_STRING_MODE: QUOTE_STRING_MODE, - PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE, - COMMENT: COMMENT, - C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE, - C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE, - HASH_COMMENT_MODE: HASH_COMMENT_MODE, - NUMBER_MODE: NUMBER_MODE, - C_NUMBER_MODE: C_NUMBER_MODE, - BINARY_NUMBER_MODE: BINARY_NUMBER_MODE, - REGEXP_MODE: REGEXP_MODE, - TITLE_MODE: TITLE_MODE, - UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE, - METHOD_GUARD: METHOD_GUARD, - END_SAME_AS_BEGIN: END_SAME_AS_BEGIN -}); -/** -@typedef {import('highlight.js').CallbackResponse} CallbackResponse -@typedef {import('highlight.js').CompilerExt} CompilerExt -*/ -// Grammar extensions / plugins -// See: https://github.com/highlightjs/highlight.js/issues/2833 -// Grammar extensions allow "syntactic sugar" to be added to the grammar modes -// without requiring any underlying changes to the compiler internals. -// `compileMatch` being the perfect small example of now allowing a grammar -// author to write `match` when they desire to match a single expression rather -// than being forced to use `begin`. The extension then just moves `match` into -// `begin` when it runs. Ie, no features have been added, but we've just made -// the experience of writing (and reading grammars) a little bit nicer. -// ------ -// TODO: We need negative look-behind support to do this properly - -/** - * Skip a match if it has a preceding dot - * - * This is used for `beginKeywords` to prevent matching expressions such as - * `bob.keyword.do()`. The mode compiler automatically wires this up as a - * special _internal_ 'on:begin' callback for modes with `beginKeywords` - * @param {RegExpMatchArray} match - * @param {CallbackResponse} response - */ - -function skipIfHasPrecedingDot(match, response) { - const before = match.input[match.index - 1]; - - if (before === ".") { - response.ignoreMatch(); - } -} -/** - * - * @type {CompilerExt} - */ - - -function scopeClassName(mode, _parent) { - // eslint-disable-next-line no-undefined - if (mode.className !== undefined) { - mode.scope = mode.className; - delete mode.className; - } -} -/** - * `beginKeywords` syntactic sugar - * @type {CompilerExt} - */ - - -function beginKeywords(mode, parent) { - if (!parent) return; - if (!mode.beginKeywords) return; // for languages with keywords that include non-word characters checking for - // a word boundary is not sufficient, so instead we check for a word boundary - // or whitespace - this does no harm in any case since our keyword engine - // doesn't allow spaces in keywords anyways and we still check for the boundary - // first - - mode.begin = '\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\.)(?=\\b|\\s)'; - mode.__beforeBegin = skipIfHasPrecedingDot; - mode.keywords = mode.keywords || mode.beginKeywords; - delete mode.beginKeywords; // prevents double relevance, the keywords themselves provide - // relevance, the mode doesn't need to double it - // eslint-disable-next-line no-undefined - - if (mode.relevance === undefined) mode.relevance = 0; -} -/** - * Allow `illegal` to contain an array of illegal values - * @type {CompilerExt} - */ - - -function compileIllegal(mode, _parent) { - if (!Array.isArray(mode.illegal)) return; - mode.illegal = either(...mode.illegal); -} -/** - * `match` to match a single expression for readability - * @type {CompilerExt} - */ - - -function compileMatch(mode, _parent) { - if (!mode.match) return; - if (mode.begin || mode.end) throw new Error("begin & end are not supported with match"); - mode.begin = mode.match; - delete mode.match; -} -/** - * provides the default 1 relevance to all modes - * @type {CompilerExt} - */ - - -function compileRelevance(mode, _parent) { - // eslint-disable-next-line no-undefined - if (mode.relevance === undefined) mode.relevance = 1; -} // allow beforeMatch to act as a "qualifier" for the match -// the full match begin must be [beforeMatch][begin] - - -const beforeMatchExt = (mode, parent) => { - if (!mode.beforeMatch) return; // starts conflicts with endsParent which we need to make sure the child - // rule is not matched multiple times - - if (mode.starts) throw new Error("beforeMatch cannot be used with starts"); - const originalMode = Object.assign({}, mode); - Object.keys(mode).forEach(key => { - delete mode[key]; - }); - mode.keywords = originalMode.keywords; - mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin)); - mode.starts = { - relevance: 0, - contains: [Object.assign(originalMode, { - endsParent: true - })] - }; - mode.relevance = 0; - delete originalMode.beforeMatch; -}; // keywords that should have no default relevance value - - -const COMMON_KEYWORDS = ['of', 'and', 'for', 'in', 'not', 'or', 'if', 'then', 'parent', // common variable name -'list', // common variable name -'value' // common variable name -]; -const DEFAULT_KEYWORD_SCOPE = "keyword"; -/** - * Given raw keywords from a language definition, compile them. - * - * @param {string | Record | Array} rawKeywords - * @param {boolean} caseInsensitive - */ - -function compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) { - /** @type KeywordDict */ - const compiledKeywords = Object.create(null); // input can be a string of keywords, an array of keywords, or a object with - // named keys representing scopeName (which can then point to a string or array) - - if (typeof rawKeywords === 'string') { - compileList(scopeName, rawKeywords.split(" ")); - } else if (Array.isArray(rawKeywords)) { - compileList(scopeName, rawKeywords); - } else { - Object.keys(rawKeywords).forEach(function (scopeName) { - // collapse all our objects back into the parent object - Object.assign(compiledKeywords, compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)); - }); - } - - return compiledKeywords; // --- - - /** - * Compiles an individual list of keywords - * - * Ex: "for if when while|5" - * - * @param {string} scopeName - * @param {Array} keywordList - */ - - function compileList(scopeName, keywordList) { - if (caseInsensitive) { - keywordList = keywordList.map(x => x.toLowerCase()); - } - - keywordList.forEach(function (keyword) { - const pair = keyword.split('|'); - compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])]; - }); - } -} -/** - * Returns the proper score for a given keyword - * - * Also takes into account comment keywords, which will be scored 0 UNLESS - * another score has been manually assigned. - * @param {string} keyword - * @param {string} [providedScore] - */ - - -function scoreForKeyword(keyword, providedScore) { - // manual scores always win over common keywords - // so you can force a score of 1 if you really insist - if (providedScore) { - return Number(providedScore); - } - - return commonKeyword(keyword) ? 0 : 1; -} -/** - * Determines if a given keyword is common or not - * - * @param {string} keyword */ - - -function commonKeyword(keyword) { - return COMMON_KEYWORDS.includes(keyword.toLowerCase()); -} -/* - -For the reasoning behind this please see: -https://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419 - -*/ - -/** - * @type {Record} - */ - - -const seenDeprecations = {}; -/** - * @param {string} message - */ - -const error = message => { - console.error(message); -}; -/** - * @param {string} message - * @param {any} args - */ - - -const warn = (message, ...args) => { - console.log(`WARN: ${message}`, ...args); -}; -/** - * @param {string} version - * @param {string} message - */ - - -const deprecated = (version, message) => { - if (seenDeprecations[`${version}/${message}`]) return; - console.log(`Deprecated as of ${version}. ${message}`); - seenDeprecations[`${version}/${message}`] = true; -}; -/* eslint-disable no-throw-literal */ - -/** -@typedef {import('highlight.js').CompiledMode} CompiledMode -*/ - - -const MultiClassError = new Error(); -/** - * Renumbers labeled scope names to account for additional inner match - * groups that otherwise would break everything. - * - * Lets say we 3 match scopes: - * - * { 1 => ..., 2 => ..., 3 => ... } - * - * So what we need is a clean match like this: - * - * (a)(b)(c) => [ "a", "b", "c" ] - * - * But this falls apart with inner match groups: - * - * (a)(((b)))(c) => ["a", "b", "b", "b", "c" ] - * - * Our scopes are now "out of alignment" and we're repeating `b` 3 times. - * What needs to happen is the numbers are remapped: - * - * { 1 => ..., 2 => ..., 5 => ... } - * - * We also need to know that the ONLY groups that should be output - * are 1, 2, and 5. This function handles this behavior. - * - * @param {CompiledMode} mode - * @param {Array} regexes - * @param {{key: "beginScope"|"endScope"}} opts - */ - -function remapScopeNames(mode, regexes, { - key -}) { - let offset = 0; - const scopeNames = mode[key]; - /** @type Record */ - - const emit = {}; - /** @type Record */ - - const positions = {}; - - for (let i = 1; i <= regexes.length; i++) { - positions[i + offset] = scopeNames[i]; - emit[i + offset] = true; - offset += countMatchGroups(regexes[i - 1]); - } // we use _emit to keep track of which match groups are "top-level" to avoid double - // output from inside match groups - - - mode[key] = positions; - mode[key]._emit = emit; - mode[key]._multi = true; -} -/** - * @param {CompiledMode} mode - */ - - -function beginMultiClass(mode) { - if (!Array.isArray(mode.begin)) return; - - if (mode.skip || mode.excludeBegin || mode.returnBegin) { - error("skip, excludeBegin, returnBegin not compatible with beginScope: {}"); - throw MultiClassError; - } - - if (typeof mode.beginScope !== "object" || mode.beginScope === null) { - error("beginScope must be object"); - throw MultiClassError; - } - - remapScopeNames(mode, mode.begin, { - key: "beginScope" - }); - mode.begin = _rewriteBackreferences(mode.begin, { - joinWith: "" - }); -} -/** - * @param {CompiledMode} mode - */ - - -function endMultiClass(mode) { - if (!Array.isArray(mode.end)) return; - - if (mode.skip || mode.excludeEnd || mode.returnEnd) { - error("skip, excludeEnd, returnEnd not compatible with endScope: {}"); - throw MultiClassError; - } - - if (typeof mode.endScope !== "object" || mode.endScope === null) { - error("endScope must be object"); - throw MultiClassError; - } - - remapScopeNames(mode, mode.end, { - key: "endScope" - }); - mode.end = _rewriteBackreferences(mode.end, { - joinWith: "" - }); -} -/** - * this exists only to allow `scope: {}` to be used beside `match:` - * Otherwise `beginScope` would necessary and that would look weird - - { - match: [ /def/, /\w+/ ] - scope: { 1: "keyword" , 2: "title" } - } - - * @param {CompiledMode} mode - */ - - -function scopeSugar(mode) { - if (mode.scope && typeof mode.scope === "object" && mode.scope !== null) { - mode.beginScope = mode.scope; - delete mode.scope; - } -} -/** - * @param {CompiledMode} mode - */ - - -function MultiClass(mode) { - scopeSugar(mode); - - if (typeof mode.beginScope === "string") { - mode.beginScope = { - _wrap: mode.beginScope - }; - } - - if (typeof mode.endScope === "string") { - mode.endScope = { - _wrap: mode.endScope - }; - } - - beginMultiClass(mode); - endMultiClass(mode); -} -/** -@typedef {import('highlight.js').Mode} Mode -@typedef {import('highlight.js').CompiledMode} CompiledMode -@typedef {import('highlight.js').Language} Language -@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin -@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage -*/ -// compilation - -/** - * Compiles a language definition result - * - * Given the raw result of a language definition (Language), compiles this so - * that it is ready for highlighting code. - * @param {Language} language - * @returns {CompiledLanguage} - */ - - -function compileLanguage(language) { - /** - * Builds a regex with the case sensitivity of the current language - * - * @param {RegExp | string} value - * @param {boolean} [global] - */ - function langRe(value, global) { - return new RegExp(source(value), 'm' + (language.case_insensitive ? 'i' : '') + (language.unicodeRegex ? 'u' : '') + (global ? 'g' : '')); - } - /** - Stores multiple regular expressions and allows you to quickly search for - them all in a string simultaneously - returning the first match. It does - this by creating a huge (a|b|c) regex - each individual item wrapped with () - and joined by `|` - using match groups to track position. When a match is - found checking which position in the array has content allows us to figure - out which of the original regexes / match groups triggered the match. - The match object itself (the result of `Regex.exec`) is returned but also - enhanced by merging in any meta-data that was registered with the regex. - This is how we keep track of which mode matched, and what type of rule - (`illegal`, `begin`, end, etc). - */ - - - class MultiRegex { - constructor() { - this.matchIndexes = {}; // @ts-ignore - - this.regexes = []; - this.matchAt = 1; - this.position = 0; - } // @ts-ignore - - - addRule(re, opts) { - opts.position = this.position++; // @ts-ignore - - this.matchIndexes[this.matchAt] = opts; - this.regexes.push([opts, re]); - this.matchAt += countMatchGroups(re) + 1; - } - - compile() { - if (this.regexes.length === 0) { - // avoids the need to check length every time exec is called - // @ts-ignore - this.exec = () => null; - } - - const terminators = this.regexes.map(el => el[1]); - this.matcherRe = langRe(_rewriteBackreferences(terminators, { - joinWith: '|' - }), true); - this.lastIndex = 0; - } - /** @param {string} s */ - - - exec(s) { - this.matcherRe.lastIndex = this.lastIndex; - const match = this.matcherRe.exec(s); - - if (!match) { - return null; - } // eslint-disable-next-line no-undefined - - - const i = match.findIndex((el, i) => i > 0 && el !== undefined); // @ts-ignore - - const matchData = this.matchIndexes[i]; // trim off any earlier non-relevant match groups (ie, the other regex - // match groups that make up the multi-matcher) - - match.splice(0, i); - return Object.assign(match, matchData); - } - - } - /* - Created to solve the key deficiently with MultiRegex - there is no way to - test for multiple matches at a single location. Why would we need to do - that? In the future a more dynamic engine will allow certain matches to be - ignored. An example: if we matched say the 3rd regex in a large group but - decided to ignore it - we'd need to started testing again at the 4th - regex... but MultiRegex itself gives us no real way to do that. - So what this class creates MultiRegexs on the fly for whatever search - position they are needed. - NOTE: These additional MultiRegex objects are created dynamically. For most - grammars most of the time we will never actually need anything more than the - first MultiRegex - so this shouldn't have too much overhead. - Say this is our search group, and we match regex3, but wish to ignore it. - regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0 - What we need is a new MultiRegex that only includes the remaining - possibilities: - regex4 | regex5 ' ie, startAt = 3 - This class wraps all that complexity up in a simple API... `startAt` decides - where in the array of expressions to start doing the matching. It - auto-increments, so if a match is found at position 2, then startAt will be - set to 3. If the end is reached startAt will return to 0. - MOST of the time the parser will be setting startAt manually to 0. - */ - - - class ResumableMultiRegex { - constructor() { - // @ts-ignore - this.rules = []; // @ts-ignore - - this.multiRegexes = []; - this.count = 0; - this.lastIndex = 0; - this.regexIndex = 0; - } // @ts-ignore - - - getMatcher(index) { - if (this.multiRegexes[index]) return this.multiRegexes[index]; - const matcher = new MultiRegex(); - this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts)); - matcher.compile(); - this.multiRegexes[index] = matcher; - return matcher; - } - - resumingScanAtSamePosition() { - return this.regexIndex !== 0; - } - - considerAll() { - this.regexIndex = 0; - } // @ts-ignore - - - addRule(re, opts) { - this.rules.push([re, opts]); - if (opts.type === "begin") this.count++; - } - /** @param {string} s */ - - - exec(s) { - const m = this.getMatcher(this.regexIndex); - m.lastIndex = this.lastIndex; - let result = m.exec(s); // The following is because we have no easy way to say "resume scanning at the - // existing position but also skip the current rule ONLY". What happens is - // all prior rules are also skipped which can result in matching the wrong - // thing. Example of matching "booger": - // our matcher is [string, "booger", number] - // - // ....booger.... - // if "booger" is ignored then we'd really need a regex to scan from the - // SAME position for only: [string, number] but ignoring "booger" (if it - // was the first match), a simple resume would scan ahead who knows how - // far looking only for "number", ignoring potential string matches (or - // future "booger" matches that might be valid.) - // So what we do: We execute two matchers, one resuming at the same - // position, but the second full matcher starting at the position after: - // /--- resume first regex match here (for [number]) - // |/---- full match here for [string, "booger", number] - // vv - // ....booger.... - // Which ever results in a match first is then used. So this 3-4 step - // process essentially allows us to say "match at this position, excluding - // a prior rule that was ignored". - // - // 1. Match "booger" first, ignore. Also proves that [string] does non match. - // 2. Resume matching for [number] - // 3. Match at index + 1 for [string, "booger", number] - // 4. If #2 and #3 result in matches, which came first? - - if (this.resumingScanAtSamePosition()) { - if (result && result.index === this.lastIndex) ;else { - // use the second matcher result - const m2 = this.getMatcher(0); - m2.lastIndex = this.lastIndex + 1; - result = m2.exec(s); - } - } - - if (result) { - this.regexIndex += result.position + 1; - - if (this.regexIndex === this.count) { - // wrap-around to considering all matches again - this.considerAll(); - } - } - - return result; - } - - } - /** - * Given a mode, builds a huge ResumableMultiRegex that can be used to walk - * the content and find matches. - * - * @param {CompiledMode} mode - * @returns {ResumableMultiRegex} - */ - - - function buildModeRegex(mode) { - const mm = new ResumableMultiRegex(); - mode.contains.forEach(term => mm.addRule(term.begin, { - rule: term, - type: "begin" - })); - - if (mode.terminatorEnd) { - mm.addRule(mode.terminatorEnd, { - type: "end" - }); - } - - if (mode.illegal) { - mm.addRule(mode.illegal, { - type: "illegal" - }); - } - - return mm; - } - /** skip vs abort vs ignore - * - * @skip - The mode is still entered and exited normally (and contains rules apply), - * but all content is held and added to the parent buffer rather than being - * output when the mode ends. Mostly used with `sublanguage` to build up - * a single large buffer than can be parsed by sublanguage. - * - * - The mode begin ands ends normally. - * - Content matched is added to the parent mode buffer. - * - The parser cursor is moved forward normally. - * - * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it - * never matched) but DOES NOT continue to match subsequent `contains` - * modes. Abort is bad/suboptimal because it can result in modes - * farther down not getting applied because an earlier rule eats the - * content but then aborts. - * - * - The mode does not begin. - * - Content matched by `begin` is added to the mode buffer. - * - The parser cursor is moved forward accordingly. - * - * @ignore - Ignores the mode (as if it never matched) and continues to match any - * subsequent `contains` modes. Ignore isn't technically possible with - * the current parser implementation. - * - * - The mode does not begin. - * - Content matched by `begin` is ignored. - * - The parser cursor is not moved forward. - */ - - /** - * Compiles an individual mode - * - * This can raise an error if the mode contains certain detectable known logic - * issues. - * @param {Mode} mode - * @param {CompiledMode | null} [parent] - * @returns {CompiledMode | never} - */ - - - function compileMode(mode, parent) { - const cmode = - /** @type CompiledMode */ - mode; - if (mode.isCompiled) return cmode; - [scopeClassName, // do this early so compiler extensions generally don't have to worry about - // the distinction between match/begin - compileMatch, MultiClass, beforeMatchExt].forEach(ext => ext(mode, parent)); - language.compilerExtensions.forEach(ext => ext(mode, parent)); // __beforeBegin is considered private API, internal use only - - mode.__beforeBegin = null; - [beginKeywords, // do this later so compiler extensions that come earlier have access to the - // raw array if they wanted to perhaps manipulate it, etc. - compileIllegal, // default to 1 relevance if not specified - compileRelevance].forEach(ext => ext(mode, parent)); - mode.isCompiled = true; - let keywordPattern = null; - - if (typeof mode.keywords === "object" && mode.keywords.$pattern) { - // we need a copy because keywords might be compiled multiple times - // so we can't go deleting $pattern from the original on the first - // pass - mode.keywords = Object.assign({}, mode.keywords); - keywordPattern = mode.keywords.$pattern; - delete mode.keywords.$pattern; - } - - keywordPattern = keywordPattern || /\w+/; - - if (mode.keywords) { - mode.keywords = compileKeywords(mode.keywords, language.case_insensitive); - } - - cmode.keywordPatternRe = langRe(keywordPattern, true); - - if (parent) { - if (!mode.begin) mode.begin = /\B|\b/; - cmode.beginRe = langRe(cmode.begin); - if (!mode.end && !mode.endsWithParent) mode.end = /\B|\b/; - if (mode.end) cmode.endRe = langRe(cmode.end); - cmode.terminatorEnd = source(cmode.end) || ''; - - if (mode.endsWithParent && parent.terminatorEnd) { - cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd; - } - } - - if (mode.illegal) cmode.illegalRe = langRe( - /** @type {RegExp | string} */ - mode.illegal); - if (!mode.contains) mode.contains = []; - mode.contains = [].concat(...mode.contains.map(function (c) { - return expandOrCloneMode(c === 'self' ? mode : c); - })); - mode.contains.forEach(function (c) { - compileMode( - /** @type Mode */ - c, cmode); - }); - - if (mode.starts) { - compileMode(mode.starts, parent); - } - - cmode.matcher = buildModeRegex(cmode); - return cmode; - } - - if (!language.compilerExtensions) language.compilerExtensions = []; // self is not valid at the top-level - - if (language.contains && language.contains.includes('self')) { - throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation."); - } // we need a null object, which inherit will guarantee - - - language.classNameAliases = inherit$1(language.classNameAliases || {}); - return compileMode( - /** @type Mode */ - language); -} -/** - * Determines if a mode has a dependency on it's parent or not - * - * If a mode does have a parent dependency then often we need to clone it if - * it's used in multiple places so that each copy points to the correct parent, - * where-as modes without a parent can often safely be re-used at the bottom of - * a mode chain. - * - * @param {Mode | null} mode - * @returns {boolean} - is there a dependency on the parent? - * */ - - -function dependencyOnParent(mode) { - if (!mode) return false; - return mode.endsWithParent || dependencyOnParent(mode.starts); -} -/** - * Expands a mode or clones it if necessary - * - * This is necessary for modes with parental dependenceis (see notes on - * `dependencyOnParent`) and for nodes that have `variants` - which must then be - * exploded into their own individual modes at compile time. - * - * @param {Mode} mode - * @returns {Mode | Mode[]} - * */ - - -function expandOrCloneMode(mode) { - if (mode.variants && !mode.cachedVariants) { - mode.cachedVariants = mode.variants.map(function (variant) { - return inherit$1(mode, { - variants: null - }, variant); - }); - } // EXPAND - // if we have variants then essentially "replace" the mode with the variants - // this happens in compileMode, where this function is called from - - - if (mode.cachedVariants) { - return mode.cachedVariants; - } // CLONE - // if we have dependencies on parents then we need a unique - // instance of ourselves, so we can be reused with many - // different parents without issue - - - if (dependencyOnParent(mode)) { - return inherit$1(mode, { - starts: mode.starts ? inherit$1(mode.starts) : null - }); - } - - if (Object.isFrozen(mode)) { - return inherit$1(mode); - } // no special dependency issues, just return ourselves - - - return mode; -} - -var version = "11.4.0"; - -class HTMLInjectionError extends Error { - constructor(reason, html) { - super(reason); - this.name = "HTMLInjectionError"; - this.html = html; - } - -} -/* -Syntax highlighting with language autodetection. -https://highlightjs.org/ -*/ - -/** -@typedef {import('highlight.js').Mode} Mode -@typedef {import('highlight.js').CompiledMode} CompiledMode -@typedef {import('highlight.js').CompiledScope} CompiledScope -@typedef {import('highlight.js').Language} Language -@typedef {import('highlight.js').HLJSApi} HLJSApi -@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin -@typedef {import('highlight.js').PluginEvent} PluginEvent -@typedef {import('highlight.js').HLJSOptions} HLJSOptions -@typedef {import('highlight.js').LanguageFn} LanguageFn -@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement -@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext -@typedef {import('highlight.js/private').MatchType} MatchType -@typedef {import('highlight.js/private').KeywordData} KeywordData -@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch -@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError -@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult -@typedef {import('highlight.js').HighlightOptions} HighlightOptions -@typedef {import('highlight.js').HighlightResult} HighlightResult -*/ - - -const escape = escapeHTML; -const inherit = inherit$1; -const NO_MATCH = Symbol("nomatch"); -const MAX_KEYWORD_HITS = 7; -/** - * @param {any} hljs - object that is extended (legacy) - * @returns {HLJSApi} - */ - -const HLJS = function (hljs) { - // Global internal variables used within the highlight.js library. - - /** @type {Record} */ - const languages = Object.create(null); - /** @type {Record} */ - - const aliases = Object.create(null); - /** @type {HLJSPlugin[]} */ - - const plugins = []; // safe/production mode - swallows more errors, tries to keep running - // even if a single syntax or parse hits a fatal error - - let SAFE_MODE = true; - const LANGUAGE_NOT_FOUND = "Could not find the language '{}', did you forget to load/include a language module?"; - /** @type {Language} */ - - const PLAINTEXT_LANGUAGE = { - disableAutodetect: true, - name: 'Plain text', - contains: [] - }; // Global options used when within external APIs. This is modified when - // calling the `hljs.configure` function. - - /** @type HLJSOptions */ - - let options = { - ignoreUnescapedHTML: false, - throwUnescapedHTML: false, - noHighlightRe: /^(no-?highlight)$/i, - languageDetectRe: /\blang(?:uage)?-([\w-]+)\b/i, - classPrefix: 'hljs-', - cssSelector: 'pre code', - languages: null, - // beta configuration options, subject to change, welcome to discuss - // https://github.com/highlightjs/highlight.js/issues/1086 - __emitter: TokenTreeEmitter - }; - /* Utility functions */ - - /** - * Tests a language name to see if highlighting should be skipped - * @param {string} languageName - */ - - function shouldNotHighlight(languageName) { - return options.noHighlightRe.test(languageName); - } - /** - * @param {HighlightedHTMLElement} block - the HTML element to determine language for - */ - - - function blockLanguage(block) { - let classes = block.className + ' '; - classes += block.parentNode ? block.parentNode.className : ''; // language-* takes precedence over non-prefixed class names. - - const match = options.languageDetectRe.exec(classes); - - if (match) { - const language = getLanguage(match[1]); - - if (!language) { - warn(LANGUAGE_NOT_FOUND.replace("{}", match[1])); - warn("Falling back to no-highlight mode for this block.", block); - } - - return language ? match[1] : 'no-highlight'; - } - - return classes.split(/\s+/).find(_class => shouldNotHighlight(_class) || getLanguage(_class)); - } - /** - * Core highlighting function. - * - * OLD API - * highlight(lang, code, ignoreIllegals, continuation) - * - * NEW API - * highlight(code, {lang, ignoreIllegals}) - * - * @param {string} codeOrLanguageName - the language to use for highlighting - * @param {string | HighlightOptions} optionsOrCode - the code to highlight - * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail - * - * @returns {HighlightResult} Result - an object that represents the result - * @property {string} language - the language name - * @property {number} relevance - the relevance score - * @property {string} value - the highlighted HTML code - * @property {string} code - the original raw code - * @property {CompiledMode} top - top of the current mode stack - * @property {boolean} illegal - indicates whether any illegal matches were found - */ - - - function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) { - let code = ""; - let languageName = ""; - - if (typeof optionsOrCode === "object") { - code = codeOrLanguageName; - ignoreIllegals = optionsOrCode.ignoreIllegals; - languageName = optionsOrCode.language; - } else { - // old API - deprecated("10.7.0", "highlight(lang, code, ...args) has been deprecated."); - deprecated("10.7.0", "Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"); - languageName = codeOrLanguageName; - code = optionsOrCode; - } // https://github.com/highlightjs/highlight.js/issues/3149 - // eslint-disable-next-line no-undefined - - - if (ignoreIllegals === undefined) { - ignoreIllegals = true; - } - /** @type {BeforeHighlightContext} */ - - - const context = { - code, - language: languageName - }; // the plugin can change the desired language or the code to be highlighted - // just be changing the object it was passed - - fire("before:highlight", context); // a before plugin can usurp the result completely by providing it's own - // in which case we don't even need to call highlight - - const result = context.result ? context.result : _highlight(context.language, context.code, ignoreIllegals); - result.code = context.code; // the plugin can change anything in result to suite it - - fire("after:highlight", result); - return result; - } - /** - * private highlight that's used internally and does not fire callbacks - * - * @param {string} languageName - the language to use for highlighting - * @param {string} codeToHighlight - the code to highlight - * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail - * @param {CompiledMode?} [continuation] - current continuation mode, if any - * @returns {HighlightResult} - result of the highlight operation - */ - - - function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) { - const keywordHits = Object.create(null); - /** - * Return keyword data if a match is a keyword - * @param {CompiledMode} mode - current mode - * @param {string} matchText - the textual match - * @returns {KeywordData | false} - */ - - function keywordData(mode, matchText) { - return mode.keywords[matchText]; - } - - function processKeywords() { - if (!top.keywords) { - emitter.addText(modeBuffer); - return; - } - - let lastIndex = 0; - top.keywordPatternRe.lastIndex = 0; - let match = top.keywordPatternRe.exec(modeBuffer); - let buf = ""; - - while (match) { - buf += modeBuffer.substring(lastIndex, match.index); - const word = language.case_insensitive ? match[0].toLowerCase() : match[0]; - const data = keywordData(top, word); - - if (data) { - const [kind, keywordRelevance] = data; - emitter.addText(buf); - buf = ""; - keywordHits[word] = (keywordHits[word] || 0) + 1; - if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance; - - if (kind.startsWith("_")) { - // _ implied for relevance only, do not highlight - // by applying a class name - buf += match[0]; - } else { - const cssClass = language.classNameAliases[kind] || kind; - emitter.addKeyword(match[0], cssClass); - } - } else { - buf += match[0]; - } - - lastIndex = top.keywordPatternRe.lastIndex; - match = top.keywordPatternRe.exec(modeBuffer); - } - - buf += modeBuffer.substr(lastIndex); - emitter.addText(buf); - } - - function processSubLanguage() { - if (modeBuffer === "") return; - /** @type HighlightResult */ - - let result = null; - - if (typeof top.subLanguage === 'string') { - if (!languages[top.subLanguage]) { - emitter.addText(modeBuffer); - return; - } - - result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]); - continuations[top.subLanguage] = - /** @type {CompiledMode} */ - result._top; - } else { - result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null); - } // Counting embedded language score towards the host language may be disabled - // with zeroing the containing mode relevance. Use case in point is Markdown that - // allows XML everywhere and makes every XML snippet to have a much larger Markdown - // score. - - - if (top.relevance > 0) { - relevance += result.relevance; - } - - emitter.addSublanguage(result._emitter, result.language); - } - - function processBuffer() { - if (top.subLanguage != null) { - processSubLanguage(); - } else { - processKeywords(); - } - - modeBuffer = ''; - } - /** - * @param {CompiledScope} scope - * @param {RegExpMatchArray} match - */ - - - function emitMultiClass(scope, match) { - let i = 1; // eslint-disable-next-line no-undefined - - while (match[i] !== undefined) { - if (!scope._emit[i]) { - i++; - continue; - } - - const klass = language.classNameAliases[scope[i]] || scope[i]; - const text = match[i]; - - if (klass) { - emitter.addKeyword(text, klass); - } else { - modeBuffer = text; - processKeywords(); - modeBuffer = ""; - } - - i++; - } - } - /** - * @param {CompiledMode} mode - new mode to start - * @param {RegExpMatchArray} match - */ - - - function startNewMode(mode, match) { - if (mode.scope && typeof mode.scope === "string") { - emitter.openNode(language.classNameAliases[mode.scope] || mode.scope); - } - - if (mode.beginScope) { - // beginScope just wraps the begin match itself in a scope - if (mode.beginScope._wrap) { - emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap); - modeBuffer = ""; - } else if (mode.beginScope._multi) { - // at this point modeBuffer should just be the match - emitMultiClass(mode.beginScope, match); - modeBuffer = ""; - } - } - - top = Object.create(mode, { - parent: { - value: top - } - }); - return top; - } - /** - * @param {CompiledMode } mode - the mode to potentially end - * @param {RegExpMatchArray} match - the latest match - * @param {string} matchPlusRemainder - match plus remainder of content - * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode - */ - - - function endOfMode(mode, match, matchPlusRemainder) { - let matched = startsWith(mode.endRe, matchPlusRemainder); - - if (matched) { - if (mode["on:end"]) { - const resp = new Response(mode); - mode["on:end"](match, resp); - if (resp.isMatchIgnored) matched = false; - } - - if (matched) { - while (mode.endsParent && mode.parent) { - mode = mode.parent; - } - - return mode; - } - } // even if on:end fires an `ignore` it's still possible - // that we might trigger the end node because of a parent mode - - - if (mode.endsWithParent) { - return endOfMode(mode.parent, match, matchPlusRemainder); - } - } - /** - * Handle matching but then ignoring a sequence of text - * - * @param {string} lexeme - string containing full match text - */ - - - function doIgnore(lexeme) { - if (top.matcher.regexIndex === 0) { - // no more regexes to potentially match here, so we move the cursor forward one - // space - modeBuffer += lexeme[0]; - return 1; - } else { - // no need to move the cursor, we still have additional regexes to try and - // match at this very spot - resumeScanAtSamePosition = true; - return 0; - } - } - /** - * Handle the start of a new potential mode match - * - * @param {EnhancedMatch} match - the current match - * @returns {number} how far to advance the parse cursor - */ - - - function doBeginMatch(match) { - const lexeme = match[0]; - const newMode = match.rule; - const resp = new Response(newMode); // first internal before callbacks, then the public ones - - const beforeCallbacks = [newMode.__beforeBegin, newMode["on:begin"]]; - - for (const cb of beforeCallbacks) { - if (!cb) continue; - cb(match, resp); - if (resp.isMatchIgnored) return doIgnore(lexeme); - } - - if (newMode.skip) { - modeBuffer += lexeme; - } else { - if (newMode.excludeBegin) { - modeBuffer += lexeme; - } - - processBuffer(); - - if (!newMode.returnBegin && !newMode.excludeBegin) { - modeBuffer = lexeme; - } - } - - startNewMode(newMode, match); - return newMode.returnBegin ? 0 : lexeme.length; - } - /** - * Handle the potential end of mode - * - * @param {RegExpMatchArray} match - the current match - */ - - - function doEndMatch(match) { - const lexeme = match[0]; - const matchPlusRemainder = codeToHighlight.substr(match.index); - const endMode = endOfMode(top, match, matchPlusRemainder); - - if (!endMode) { - return NO_MATCH; - } - - const origin = top; - - if (top.endScope && top.endScope._wrap) { - processBuffer(); - emitter.addKeyword(lexeme, top.endScope._wrap); - } else if (top.endScope && top.endScope._multi) { - processBuffer(); - emitMultiClass(top.endScope, match); - } else if (origin.skip) { - modeBuffer += lexeme; - } else { - if (!(origin.returnEnd || origin.excludeEnd)) { - modeBuffer += lexeme; - } - - processBuffer(); - - if (origin.excludeEnd) { - modeBuffer = lexeme; - } - } - - do { - if (top.scope) { - emitter.closeNode(); - } - - if (!top.skip && !top.subLanguage) { - relevance += top.relevance; - } - - top = top.parent; - } while (top !== endMode.parent); - - if (endMode.starts) { - startNewMode(endMode.starts, match); - } - - return origin.returnEnd ? 0 : lexeme.length; - } - - function processContinuations() { - const list = []; - - for (let current = top; current !== language; current = current.parent) { - if (current.scope) { - list.unshift(current.scope); - } - } - - list.forEach(item => emitter.openNode(item)); - } - /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */ - - - let lastMatch = {}; - /** - * Process an individual match - * - * @param {string} textBeforeMatch - text preceding the match (since the last match) - * @param {EnhancedMatch} [match] - the match itself - */ - - function processLexeme(textBeforeMatch, match) { - const lexeme = match && match[0]; // add non-matched text to the current mode buffer - - modeBuffer += textBeforeMatch; - - if (lexeme == null) { - processBuffer(); - return 0; - } // we've found a 0 width match and we're stuck, so we need to advance - // this happens when we have badly behaved rules that have optional matchers to the degree that - // sometimes they can end up matching nothing at all - // Ref: https://github.com/highlightjs/highlight.js/issues/2140 - - - if (lastMatch.type === "begin" && match.type === "end" && lastMatch.index === match.index && lexeme === "") { - // spit the "skipped" character that our regex choked on back into the output sequence - modeBuffer += codeToHighlight.slice(match.index, match.index + 1); - - if (!SAFE_MODE) { - /** @type {AnnotatedError} */ - const err = new Error(`0 width match regex (${languageName})`); - err.languageName = languageName; - err.badRule = lastMatch.rule; - throw err; - } - - return 1; - } - - lastMatch = match; - - if (match.type === "begin") { - return doBeginMatch(match); - } else if (match.type === "illegal" && !ignoreIllegals) { - // illegal match, we do not continue processing - - /** @type {AnnotatedError} */ - const err = new Error('Illegal lexeme "' + lexeme + '" for mode "' + (top.scope || '') + '"'); - err.mode = top; - throw err; - } else if (match.type === "end") { - const processed = doEndMatch(match); - - if (processed !== NO_MATCH) { - return processed; - } - } // edge case for when illegal matches $ (end of line) which is technically - // a 0 width match but not a begin/end match so it's not caught by the - // first handler (when ignoreIllegals is true) - - - if (match.type === "illegal" && lexeme === "") { - // advance so we aren't stuck in an infinite loop - return 1; - } // infinite loops are BAD, this is a last ditch catch all. if we have a - // decent number of iterations yet our index (cursor position in our - // parsing) still 3x behind our index then something is very wrong - // so we bail - - - if (iterations > 100000 && iterations > match.index * 3) { - const err = new Error('potential infinite loop, way more iterations than matches'); - throw err; - } - /* - Why might be find ourselves here? An potential end match that was - triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH. - (this could be because a callback requests the match be ignored, etc) - This causes no real harm other than stopping a few times too many. - */ - - - modeBuffer += lexeme; - return lexeme.length; - } - - const language = getLanguage(languageName); - - if (!language) { - error(LANGUAGE_NOT_FOUND.replace("{}", languageName)); - throw new Error('Unknown language: "' + languageName + '"'); - } - - const md = compileLanguage(language); - let result = ''; - /** @type {CompiledMode} */ - - let top = continuation || md; - /** @type Record */ - - const continuations = {}; // keep continuations for sub-languages - - const emitter = new options.__emitter(options); - processContinuations(); - let modeBuffer = ''; - let relevance = 0; - let index = 0; - let iterations = 0; - let resumeScanAtSamePosition = false; - - try { - top.matcher.considerAll(); - - for (;;) { - iterations++; - - if (resumeScanAtSamePosition) { - // only regexes not matched previously will now be - // considered for a potential match - resumeScanAtSamePosition = false; - } else { - top.matcher.considerAll(); - } - - top.matcher.lastIndex = index; - const match = top.matcher.exec(codeToHighlight); // console.log("match", match[0], match.rule && match.rule.begin) - - if (!match) break; - const beforeMatch = codeToHighlight.substring(index, match.index); - const processedCount = processLexeme(beforeMatch, match); - index = match.index + processedCount; - } - - processLexeme(codeToHighlight.substr(index)); - emitter.closeAllNodes(); - emitter.finalize(); - result = emitter.toHTML(); - return { - language: languageName, - value: result, - relevance: relevance, - illegal: false, - _emitter: emitter, - _top: top - }; - } catch (err) { - if (err.message && err.message.includes('Illegal')) { - return { - language: languageName, - value: escape(codeToHighlight), - illegal: true, - relevance: 0, - _illegalBy: { - message: err.message, - index: index, - context: codeToHighlight.slice(index - 100, index + 100), - mode: err.mode, - resultSoFar: result - }, - _emitter: emitter - }; - } else if (SAFE_MODE) { - return { - language: languageName, - value: escape(codeToHighlight), - illegal: false, - relevance: 0, - errorRaised: err, - _emitter: emitter, - _top: top - }; - } else { - throw err; - } - } - } - /** - * returns a valid highlight result, without actually doing any actual work, - * auto highlight starts with this and it's possible for small snippets that - * auto-detection may not find a better match - * @param {string} code - * @returns {HighlightResult} - */ - - - function justTextHighlightResult(code) { - const result = { - value: escape(code), - illegal: false, - relevance: 0, - _top: PLAINTEXT_LANGUAGE, - _emitter: new options.__emitter(options) - }; - - result._emitter.addText(code); - - return result; - } - /** - Highlighting with language detection. Accepts a string with the code to - highlight. Returns an object with the following properties: - - language (detected language) - - relevance (int) - - value (an HTML string with highlighting markup) - - secondBest (object with the same structure for second-best heuristically - detected language, may be absent) - @param {string} code - @param {Array} [languageSubset] - @returns {AutoHighlightResult} - */ - - - function highlightAuto(code, languageSubset) { - languageSubset = languageSubset || options.languages || Object.keys(languages); - const plaintext = justTextHighlightResult(code); - const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name => _highlight(name, code, false)); - results.unshift(plaintext); // plaintext is always an option - - const sorted = results.sort((a, b) => { - // sort base on relevance - if (a.relevance !== b.relevance) return b.relevance - a.relevance; // always award the tie to the base language - // ie if C++ and Arduino are tied, it's more likely to be C++ - - if (a.language && b.language) { - if (getLanguage(a.language).supersetOf === b.language) { - return 1; - } else if (getLanguage(b.language).supersetOf === a.language) { - return -1; - } - } // otherwise say they are equal, which has the effect of sorting on - // relevance while preserving the original ordering - which is how ties - // have historically been settled, ie the language that comes first always - // wins in the case of a tie - - - return 0; - }); - const [best, secondBest] = sorted; - /** @type {AutoHighlightResult} */ - - const result = best; - result.secondBest = secondBest; - return result; - } - /** - * Builds new class name for block given the language name - * - * @param {HTMLElement} element - * @param {string} [currentLang] - * @param {string} [resultLang] - */ - - - function updateClassName(element, currentLang, resultLang) { - const language = currentLang && aliases[currentLang] || resultLang; - element.classList.add("hljs"); - element.classList.add(`language-${language}`); - } - /** - * Applies highlighting to a DOM node containing code. - * - * @param {HighlightedHTMLElement} element - the HTML element to highlight - */ - - - function highlightElement(element) { - /** @type HTMLElement */ - let node = null; - const language = blockLanguage(element); - if (shouldNotHighlight(language)) return; - fire("before:highlightElement", { - el: element, - language: language - }); // we should be all text, no child nodes (unescaped HTML) - this is possibly - // an HTML injection attack - it's likely too late if this is already in - // production (the code has likely already done its damage by the time - // we're seeing it)... but we yell loudly about this so that hopefully it's - // more likely to be caught in development before making it to production - - if (element.children.length > 0) { - if (!options.ignoreUnescapedHTML) { - console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."); - console.warn("https://github.com/highlightjs/highlight.js/wiki/security"); - console.warn("The element with unescaped HTML:"); - console.warn(element); - } - - if (options.throwUnescapedHTML) { - const err = new HTMLInjectionError("One of your code blocks includes unescaped HTML.", element.innerHTML); - throw err; - } - } - - node = element; - const text = node.textContent; - const result = language ? highlight(text, { - language, - ignoreIllegals: true - }) : highlightAuto(text); - element.innerHTML = result.value; - updateClassName(element, language, result.language); - element.result = { - language: result.language, - // TODO: remove with version 11.0 - re: result.relevance, - relevance: result.relevance - }; - - if (result.secondBest) { - element.secondBest = { - language: result.secondBest.language, - relevance: result.secondBest.relevance - }; - } - - fire("after:highlightElement", { - el: element, - result, - text - }); - } - /** - * Updates highlight.js global options with the passed options - * - * @param {Partial} userOptions - */ - - - function configure(userOptions) { - options = inherit(options, userOptions); - } // TODO: remove v12, deprecated - - - const initHighlighting = () => { - highlightAll(); - deprecated("10.6.0", "initHighlighting() deprecated. Use highlightAll() now."); - }; // TODO: remove v12, deprecated - - - function initHighlightingOnLoad() { - highlightAll(); - deprecated("10.6.0", "initHighlightingOnLoad() deprecated. Use highlightAll() now."); - } - - let wantsHighlight = false; - /** - * auto-highlights all pre>code elements on the page - */ - - function highlightAll() { - // if we are called too early in the loading process - if (document.readyState === "loading") { - wantsHighlight = true; - return; - } - - const blocks = document.querySelectorAll(options.cssSelector); - blocks.forEach(highlightElement); - } - - function boot() { - // if a highlight was requested before DOM was loaded, do now - if (wantsHighlight) highlightAll(); - } // make sure we are in the browser environment - - - if (typeof window !== 'undefined' && window.addEventListener) { - window.addEventListener('DOMContentLoaded', boot, false); - } - /** - * Register a language grammar module - * - * @param {string} languageName - * @param {LanguageFn} languageDefinition - */ - - - function registerLanguage(languageName, languageDefinition) { - let lang = null; - - try { - lang = languageDefinition(hljs); - } catch (error$1) { - error("Language definition for '{}' could not be registered.".replace("{}", languageName)); // hard or soft error - - if (!SAFE_MODE) { - throw error$1; - } else { - error(error$1); - } // languages that have serious errors are replaced with essentially a - // "plaintext" stand-in so that the code blocks will still get normal - // css classes applied to them - and one bad language won't break the - // entire highlighter - - - lang = PLAINTEXT_LANGUAGE; - } // give it a temporary name if it doesn't have one in the meta-data - - - if (!lang.name) lang.name = languageName; - languages[languageName] = lang; - lang.rawDefinition = languageDefinition.bind(null, hljs); - - if (lang.aliases) { - registerAliases(lang.aliases, { - languageName - }); - } - } - /** - * Remove a language grammar module - * - * @param {string} languageName - */ - - - function unregisterLanguage(languageName) { - delete languages[languageName]; - - for (const alias of Object.keys(aliases)) { - if (aliases[alias] === languageName) { - delete aliases[alias]; - } - } - } - /** - * @returns {string[]} List of language internal names - */ - - - function listLanguages() { - return Object.keys(languages); - } - /** - * @param {string} name - name of the language to retrieve - * @returns {Language | undefined} - */ - - - function getLanguage(name) { - name = (name || '').toLowerCase(); - return languages[name] || languages[aliases[name]]; - } - /** - * - * @param {string|string[]} aliasList - single alias or list of aliases - * @param {{languageName: string}} opts - */ - - - function registerAliases(aliasList, { - languageName - }) { - if (typeof aliasList === 'string') { - aliasList = [aliasList]; - } - - aliasList.forEach(alias => { - aliases[alias.toLowerCase()] = languageName; - }); - } - /** - * Determines if a given language has auto-detection enabled - * @param {string} name - name of the language - */ - - - function autoDetection(name) { - const lang = getLanguage(name); - return lang && !lang.disableAutodetect; - } - /** - * Upgrades the old highlightBlock plugins to the new - * highlightElement API - * @param {HLJSPlugin} plugin - */ - - - function upgradePluginAPI(plugin) { - // TODO: remove with v12 - if (plugin["before:highlightBlock"] && !plugin["before:highlightElement"]) { - plugin["before:highlightElement"] = data => { - plugin["before:highlightBlock"](Object.assign({ - block: data.el - }, data)); - }; - } - - if (plugin["after:highlightBlock"] && !plugin["after:highlightElement"]) { - plugin["after:highlightElement"] = data => { - plugin["after:highlightBlock"](Object.assign({ - block: data.el - }, data)); - }; - } - } - /** - * @param {HLJSPlugin} plugin - */ - - - function addPlugin(plugin) { - upgradePluginAPI(plugin); - plugins.push(plugin); - } - /** - * - * @param {PluginEvent} event - * @param {any} args - */ - - - function fire(event, args) { - const cb = event; - plugins.forEach(function (plugin) { - if (plugin[cb]) { - plugin[cb](args); - } - }); - } - /** - * DEPRECATED - * @param {HighlightedHTMLElement} el - */ - - - function deprecateHighlightBlock(el) { - deprecated("10.7.0", "highlightBlock will be removed entirely in v12.0"); - deprecated("10.7.0", "Please use highlightElement now."); - return highlightElement(el); - } - /* Interface definition */ - - - Object.assign(hljs, { - highlight, - highlightAuto, - highlightAll, - highlightElement, - // TODO: Remove with v12 API - highlightBlock: deprecateHighlightBlock, - configure, - initHighlighting, - initHighlightingOnLoad, - registerLanguage, - unregisterLanguage, - listLanguages, - getLanguage, - registerAliases, - autoDetection, - inherit, - addPlugin - }); - - hljs.debugMode = function () { - SAFE_MODE = false; - }; - - hljs.safeMode = function () { - SAFE_MODE = true; - }; - - hljs.versionString = version; - hljs.regex = { - concat: concat, - lookahead: lookahead, - either: either, - optional: optional, - anyNumberOfTimes: anyNumberOfTimes - }; - - for (const key in MODES) { - // @ts-ignore - if (typeof MODES[key] === "object") { - // @ts-ignore - deepFreeze$1(MODES[key]); - } - } // merge all the modes/regexes into our main object - - - Object.assign(hljs, MODES); - return hljs; -}; // export an "instance" of the highlighter - - -var highlight = HLJS({}); -module.exports = highlight; -highlight.HighlightJS = highlight; -highlight.default = highlight; - -/***/ }), - -/***/ 8622: -/*!**********************************************!*\ - !*** ./node_modules/highlight.js/es/core.js ***! - \**********************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "HighlightJS": () => (/* reexport default export from named module */ _lib_core_js__WEBPACK_IMPORTED_MODULE_0__), -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _lib_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../lib/core.js */ 9265); -// https://nodejs.org/api/packages.html#packages_writing_dual_packages_while_avoiding_or_minimizing_hazards - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_lib_core_js__WEBPACK_IMPORTED_MODULE_0__); - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_highlight_js_es_core_js.js.map \ No newline at end of file diff --git a/dist/ng-select2/node_modules_highlight_js_es_core_js.js.map b/dist/ng-select2/node_modules_highlight_js_es_core_js.js.map deleted file mode 100644 index eac3e5c..0000000 --- a/dist/ng-select2/node_modules_highlight_js_es_core_js.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_highlight_js_es_core_js.js","mappings":"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","sources":["./node_modules/highlight.js/lib/core.js","./node_modules/highlight.js/es/core.js"],"sourcesContent":["var deepFreezeEs6 = {exports: {}};\n\nfunction deepFreeze(obj) {\n if (obj instanceof Map) {\n obj.clear = obj.delete = obj.set = function () {\n throw new Error('map is read-only');\n };\n } else if (obj instanceof Set) {\n obj.add = obj.clear = obj.delete = function () {\n throw new Error('set is read-only');\n };\n }\n\n // Freeze self\n Object.freeze(obj);\n\n Object.getOwnPropertyNames(obj).forEach(function (name) {\n var prop = obj[name];\n\n // Freeze prop if it is an object\n if (typeof prop == 'object' && !Object.isFrozen(prop)) {\n deepFreeze(prop);\n }\n });\n\n return obj;\n}\n\ndeepFreezeEs6.exports = deepFreeze;\ndeepFreezeEs6.exports.default = deepFreeze;\n\nvar deepFreeze$1 = deepFreezeEs6.exports;\n\n/** @typedef {import('highlight.js').CallbackResponse} CallbackResponse */\n/** @typedef {import('highlight.js').CompiledMode} CompiledMode */\n/** @implements CallbackResponse */\n\nclass Response {\n /**\n * @param {CompiledMode} mode\n */\n constructor(mode) {\n // eslint-disable-next-line no-undefined\n if (mode.data === undefined) mode.data = {};\n\n this.data = mode.data;\n this.isMatchIgnored = false;\n }\n\n ignoreMatch() {\n this.isMatchIgnored = true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {string}\n */\nfunction escapeHTML(value) {\n return value\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n}\n\n/**\n * performs a shallow merge of multiple objects into one\n *\n * @template T\n * @param {T} original\n * @param {Record[]} objects\n * @returns {T} a single new object\n */\nfunction inherit$1(original, ...objects) {\n /** @type Record */\n const result = Object.create(null);\n\n for (const key in original) {\n result[key] = original[key];\n }\n objects.forEach(function(obj) {\n for (const key in obj) {\n result[key] = obj[key];\n }\n });\n return /** @type {T} */ (result);\n}\n\n/**\n * @typedef {object} Renderer\n * @property {(text: string) => void} addText\n * @property {(node: Node) => void} openNode\n * @property {(node: Node) => void} closeNode\n * @property {() => string} value\n */\n\n/** @typedef {{kind?: string, sublanguage?: boolean}} Node */\n/** @typedef {{walk: (r: Renderer) => void}} Tree */\n/** */\n\nconst SPAN_CLOSE = '';\n\n/**\n * Determines if a node needs to be wrapped in \n *\n * @param {Node} node */\nconst emitsWrappingTags = (node) => {\n return !!node.kind;\n};\n\n/**\n *\n * @param {string} name\n * @param {{prefix:string}} options\n */\nconst expandScopeName = (name, { prefix }) => {\n if (name.includes(\".\")) {\n const pieces = name.split(\".\");\n return [\n `${prefix}${pieces.shift()}`,\n ...(pieces.map((x, i) => `${x}${\"_\".repeat(i + 1)}`))\n ].join(\" \");\n }\n return `${prefix}${name}`;\n};\n\n/** @type {Renderer} */\nclass HTMLRenderer {\n /**\n * Creates a new HTMLRenderer\n *\n * @param {Tree} parseTree - the parse tree (must support `walk` API)\n * @param {{classPrefix: string}} options\n */\n constructor(parseTree, options) {\n this.buffer = \"\";\n this.classPrefix = options.classPrefix;\n parseTree.walk(this);\n }\n\n /**\n * Adds texts to the output stream\n *\n * @param {string} text */\n addText(text) {\n this.buffer += escapeHTML(text);\n }\n\n /**\n * Adds a node open to the output stream (if needed)\n *\n * @param {Node} node */\n openNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n let scope = node.kind;\n if (node.sublanguage) {\n scope = `language-${scope}`;\n } else {\n scope = expandScopeName(scope, { prefix: this.classPrefix });\n }\n this.span(scope);\n }\n\n /**\n * Adds a node close to the output stream (if needed)\n *\n * @param {Node} node */\n closeNode(node) {\n if (!emitsWrappingTags(node)) return;\n\n this.buffer += SPAN_CLOSE;\n }\n\n /**\n * returns the accumulated buffer\n */\n value() {\n return this.buffer;\n }\n\n // helpers\n\n /**\n * Builds a span element\n *\n * @param {string} className */\n span(className) {\n this.buffer += ``;\n }\n}\n\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} | string} Node */\n/** @typedef {{kind?: string, sublanguage?: boolean, children: Node[]} } DataNode */\n/** @typedef {import('highlight.js').Emitter} Emitter */\n/** */\n\nclass TokenTree {\n constructor() {\n /** @type DataNode */\n this.rootNode = { children: [] };\n this.stack = [this.rootNode];\n }\n\n get top() {\n return this.stack[this.stack.length - 1];\n }\n\n get root() { return this.rootNode; }\n\n /** @param {Node} node */\n add(node) {\n this.top.children.push(node);\n }\n\n /** @param {string} kind */\n openNode(kind) {\n /** @type Node */\n const node = { kind, children: [] };\n this.add(node);\n this.stack.push(node);\n }\n\n closeNode() {\n if (this.stack.length > 1) {\n return this.stack.pop();\n }\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n\n closeAllNodes() {\n while (this.closeNode());\n }\n\n toJSON() {\n return JSON.stringify(this.rootNode, null, 4);\n }\n\n /**\n * @typedef { import(\"./html_renderer\").Renderer } Renderer\n * @param {Renderer} builder\n */\n walk(builder) {\n // this does not\n return this.constructor._walk(builder, this.rootNode);\n // this works\n // return TokenTree._walk(builder, this.rootNode);\n }\n\n /**\n * @param {Renderer} builder\n * @param {Node} node\n */\n static _walk(builder, node) {\n if (typeof node === \"string\") {\n builder.addText(node);\n } else if (node.children) {\n builder.openNode(node);\n node.children.forEach((child) => this._walk(builder, child));\n builder.closeNode(node);\n }\n return builder;\n }\n\n /**\n * @param {Node} node\n */\n static _collapse(node) {\n if (typeof node === \"string\") return;\n if (!node.children) return;\n\n if (node.children.every(el => typeof el === \"string\")) {\n // node.text = node.children.join(\"\");\n // delete node.children;\n node.children = [node.children.join(\"\")];\n } else {\n node.children.forEach((child) => {\n TokenTree._collapse(child);\n });\n }\n }\n}\n\n/**\n Currently this is all private API, but this is the minimal API necessary\n that an Emitter must implement to fully support the parser.\n\n Minimal interface:\n\n - addKeyword(text, kind)\n - addText(text)\n - addSublanguage(emitter, subLanguageName)\n - finalize()\n - openNode(kind)\n - closeNode()\n - closeAllNodes()\n - toHTML()\n\n*/\n\n/**\n * @implements {Emitter}\n */\nclass TokenTreeEmitter extends TokenTree {\n /**\n * @param {*} options\n */\n constructor(options) {\n super();\n this.options = options;\n }\n\n /**\n * @param {string} text\n * @param {string} kind\n */\n addKeyword(text, kind) {\n if (text === \"\") { return; }\n\n this.openNode(kind);\n this.addText(text);\n this.closeNode();\n }\n\n /**\n * @param {string} text\n */\n addText(text) {\n if (text === \"\") { return; }\n\n this.add(text);\n }\n\n /**\n * @param {Emitter & {root: DataNode}} emitter\n * @param {string} name\n */\n addSublanguage(emitter, name) {\n /** @type DataNode */\n const node = emitter.root;\n node.kind = name;\n node.sublanguage = true;\n this.add(node);\n }\n\n toHTML() {\n const renderer = new HTMLRenderer(this, this.options);\n return renderer.value();\n }\n\n finalize() {\n return true;\n }\n}\n\n/**\n * @param {string} value\n * @returns {RegExp}\n * */\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction source(re) {\n if (!re) return null;\n if (typeof re === \"string\") return re;\n\n return re.source;\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction lookahead(re) {\n return concat('(?=', re, ')');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction anyNumberOfTimes(re) {\n return concat('(?:', re, ')*');\n}\n\n/**\n * @param {RegExp | string } re\n * @returns {string}\n */\nfunction optional(re) {\n return concat('(?:', re, ')?');\n}\n\n/**\n * @param {...(RegExp | string) } args\n * @returns {string}\n */\nfunction concat(...args) {\n const joined = args.map((x) => source(x)).join(\"\");\n return joined;\n}\n\n/**\n * @param { Array } args\n * @returns {object}\n */\nfunction stripOptionsFromArgs(args) {\n const opts = args[args.length - 1];\n\n if (typeof opts === 'object' && opts.constructor === Object) {\n args.splice(args.length - 1, 1);\n return opts;\n } else {\n return {};\n }\n}\n\n/** @typedef { {capture?: boolean} } RegexEitherOptions */\n\n/**\n * Any of the passed expresssions may match\n *\n * Creates a huge this | this | that | that match\n * @param {(RegExp | string)[] | [...(RegExp | string)[], RegexEitherOptions]} args\n * @returns {string}\n */\nfunction either(...args) {\n /** @type { object & {capture?: boolean} } */\n const opts = stripOptionsFromArgs(args);\n const joined = '('\n + (opts.capture ? \"\" : \"?:\")\n + args.map((x) => source(x)).join(\"|\") + \")\";\n return joined;\n}\n\n/**\n * @param {RegExp | string} re\n * @returns {number}\n */\nfunction countMatchGroups(re) {\n return (new RegExp(re.toString() + '|')).exec('').length - 1;\n}\n\n/**\n * Does lexeme start with a regular expression match at the beginning\n * @param {RegExp} re\n * @param {string} lexeme\n */\nfunction startsWith(re, lexeme) {\n const match = re && re.exec(lexeme);\n return match && match.index === 0;\n}\n\n// BACKREF_RE matches an open parenthesis or backreference. To avoid\n// an incorrect parse, it additionally matches the following:\n// - [...] elements, where the meaning of parentheses and escapes change\n// - other escape sequences, so we do not misparse escape sequences as\n// interesting elements\n// - non-matching or lookahead parentheses, which do not capture. These\n// follow the '(' with a '?'.\nconst BACKREF_RE = /\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./;\n\n// **INTERNAL** Not intended for outside usage\n// join logically computes regexps.join(separator), but fixes the\n// backreferences so they continue to match.\n// it also places each individual regular expression into it's own\n// match group, keeping track of the sequencing of those match groups\n// is currently an exercise for the caller. :-)\n/**\n * @param {(string | RegExp)[]} regexps\n * @param {{joinWith: string}} opts\n * @returns {string}\n */\nfunction _rewriteBackreferences(regexps, { joinWith }) {\n let numCaptures = 0;\n\n return regexps.map((regex) => {\n numCaptures += 1;\n const offset = numCaptures;\n let re = source(regex);\n let out = '';\n\n while (re.length > 0) {\n const match = BACKREF_RE.exec(re);\n if (!match) {\n out += re;\n break;\n }\n out += re.substring(0, match.index);\n re = re.substring(match.index + match[0].length);\n if (match[0][0] === '\\\\' && match[1]) {\n // Adjust the backreference.\n out += '\\\\' + String(Number(match[1]) + offset);\n } else {\n out += match[0];\n if (match[0] === '(') {\n numCaptures++;\n }\n }\n }\n return out;\n }).map(re => `(${re})`).join(joinWith);\n}\n\n/** @typedef {import('highlight.js').Mode} Mode */\n/** @typedef {import('highlight.js').ModeCallback} ModeCallback */\n\n// Common regexps\nconst MATCH_NOTHING_RE = /\\b\\B/;\nconst IDENT_RE = '[a-zA-Z]\\\\w*';\nconst UNDERSCORE_IDENT_RE = '[a-zA-Z_]\\\\w*';\nconst NUMBER_RE = '\\\\b\\\\d+(\\\\.\\\\d+)?';\nconst C_NUMBER_RE = '(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)'; // 0x..., 0..., decimal, float\nconst BINARY_NUMBER_RE = '\\\\b(0b[01]+)'; // 0b...\nconst RE_STARTERS_RE = '!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~';\n\n/**\n* @param { Partial & {binary?: string | RegExp} } opts\n*/\nconst SHEBANG = (opts = {}) => {\n const beginShebang = /^#![ ]*\\//;\n if (opts.binary) {\n opts.begin = concat(\n beginShebang,\n /.*\\b/,\n opts.binary,\n /\\b.*/);\n }\n return inherit$1({\n scope: 'meta',\n begin: beginShebang,\n end: /$/,\n relevance: 0,\n /** @type {ModeCallback} */\n \"on:begin\": (m, resp) => {\n if (m.index !== 0) resp.ignoreMatch();\n }\n }, opts);\n};\n\n// Common modes\nconst BACKSLASH_ESCAPE = {\n begin: '\\\\\\\\[\\\\s\\\\S]', relevance: 0\n};\nconst APOS_STRING_MODE = {\n scope: 'string',\n begin: '\\'',\n end: '\\'',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst QUOTE_STRING_MODE = {\n scope: 'string',\n begin: '\"',\n end: '\"',\n illegal: '\\\\n',\n contains: [BACKSLASH_ESCAPE]\n};\nconst PHRASAL_WORDS_MODE = {\n begin: /\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/\n};\n/**\n * Creates a comment mode\n *\n * @param {string | RegExp} begin\n * @param {string | RegExp} end\n * @param {Mode | {}} [modeOptions]\n * @returns {Partial}\n */\nconst COMMENT = function(begin, end, modeOptions = {}) {\n const mode = inherit$1(\n {\n scope: 'comment',\n begin,\n end,\n contains: []\n },\n modeOptions\n );\n mode.contains.push({\n scope: 'doctag',\n // hack to avoid the space from being included. the space is necessary to\n // match here to prevent the plain text rule below from gobbling up doctags\n begin: '[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)',\n end: /(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,\n excludeBegin: true,\n relevance: 0\n });\n const ENGLISH_WORD = either(\n // list of common 1 and 2 letter words in English\n \"I\",\n \"a\",\n \"is\",\n \"so\",\n \"us\",\n \"to\",\n \"at\",\n \"if\",\n \"in\",\n \"it\",\n \"on\",\n // note: this is not an exhaustive list of contractions, just popular ones\n /[A-Za-z]+['](d|ve|re|ll|t|s|n)/, // contractions - can't we'd they're let's, etc\n /[A-Za-z]+[-][a-z]+/, // `no-way`, etc.\n /[A-Za-z][a-z]{2,}/ // allow capitalized words at beginning of sentences\n );\n // looking like plain text, more likely to be a comment\n mode.contains.push(\n {\n // TODO: how to include \", (, ) without breaking grammars that use these for\n // comment delimiters?\n // begin: /[ ]+([()\"]?([A-Za-z'-]{3,}|is|a|I|so|us|[tT][oO]|at|if|in|it|on)[.]?[()\":]?([.][ ]|[ ]|\\))){3}/\n // ---\n\n // this tries to find sequences of 3 english words in a row (without any\n // \"programming\" type syntax) this gives us a strong signal that we've\n // TRULY found a comment - vs perhaps scanning with the wrong language.\n // It's possible to find something that LOOKS like the start of the\n // comment - but then if there is no readable text - good chance it is a\n // false match and not a comment.\n //\n // for a visual example please see:\n // https://github.com/highlightjs/highlight.js/issues/2827\n\n begin: concat(\n /[ ]+/, // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */\n '(',\n ENGLISH_WORD,\n /[.]?[:]?([.][ ]|[ ])/,\n '){3}') // look for 3 words in a row\n }\n );\n return mode;\n};\nconst C_LINE_COMMENT_MODE = COMMENT('//', '$');\nconst C_BLOCK_COMMENT_MODE = COMMENT('/\\\\*', '\\\\*/');\nconst HASH_COMMENT_MODE = COMMENT('#', '$');\nconst NUMBER_MODE = {\n scope: 'number',\n begin: NUMBER_RE,\n relevance: 0\n};\nconst C_NUMBER_MODE = {\n scope: 'number',\n begin: C_NUMBER_RE,\n relevance: 0\n};\nconst BINARY_NUMBER_MODE = {\n scope: 'number',\n begin: BINARY_NUMBER_RE,\n relevance: 0\n};\nconst REGEXP_MODE = {\n // this outer rule makes sure we actually have a WHOLE regex and not simply\n // an expression such as:\n //\n // 3 / something\n //\n // (which will then blow up when regex's `illegal` sees the newline)\n begin: /(?=\\/[^/\\n]*\\/)/,\n contains: [{\n scope: 'regexp',\n begin: /\\//,\n end: /\\/[gimuy]*/,\n illegal: /\\n/,\n contains: [\n BACKSLASH_ESCAPE,\n {\n begin: /\\[/,\n end: /\\]/,\n relevance: 0,\n contains: [BACKSLASH_ESCAPE]\n }\n ]\n }]\n};\nconst TITLE_MODE = {\n scope: 'title',\n begin: IDENT_RE,\n relevance: 0\n};\nconst UNDERSCORE_TITLE_MODE = {\n scope: 'title',\n begin: UNDERSCORE_IDENT_RE,\n relevance: 0\n};\nconst METHOD_GUARD = {\n // excludes method names from keyword processing\n begin: '\\\\.\\\\s*' + UNDERSCORE_IDENT_RE,\n relevance: 0\n};\n\n/**\n * Adds end same as begin mechanics to a mode\n *\n * Your mode must include at least a single () match group as that first match\n * group is what is used for comparison\n * @param {Partial} mode\n */\nconst END_SAME_AS_BEGIN = function(mode) {\n return Object.assign(mode,\n {\n /** @type {ModeCallback} */\n 'on:begin': (m, resp) => { resp.data._beginMatch = m[1]; },\n /** @type {ModeCallback} */\n 'on:end': (m, resp) => { if (resp.data._beginMatch !== m[1]) resp.ignoreMatch(); }\n });\n};\n\nvar MODES = /*#__PURE__*/Object.freeze({\n __proto__: null,\n MATCH_NOTHING_RE: MATCH_NOTHING_RE,\n IDENT_RE: IDENT_RE,\n UNDERSCORE_IDENT_RE: UNDERSCORE_IDENT_RE,\n NUMBER_RE: NUMBER_RE,\n C_NUMBER_RE: C_NUMBER_RE,\n BINARY_NUMBER_RE: BINARY_NUMBER_RE,\n RE_STARTERS_RE: RE_STARTERS_RE,\n SHEBANG: SHEBANG,\n BACKSLASH_ESCAPE: BACKSLASH_ESCAPE,\n APOS_STRING_MODE: APOS_STRING_MODE,\n QUOTE_STRING_MODE: QUOTE_STRING_MODE,\n PHRASAL_WORDS_MODE: PHRASAL_WORDS_MODE,\n COMMENT: COMMENT,\n C_LINE_COMMENT_MODE: C_LINE_COMMENT_MODE,\n C_BLOCK_COMMENT_MODE: C_BLOCK_COMMENT_MODE,\n HASH_COMMENT_MODE: HASH_COMMENT_MODE,\n NUMBER_MODE: NUMBER_MODE,\n C_NUMBER_MODE: C_NUMBER_MODE,\n BINARY_NUMBER_MODE: BINARY_NUMBER_MODE,\n REGEXP_MODE: REGEXP_MODE,\n TITLE_MODE: TITLE_MODE,\n UNDERSCORE_TITLE_MODE: UNDERSCORE_TITLE_MODE,\n METHOD_GUARD: METHOD_GUARD,\n END_SAME_AS_BEGIN: END_SAME_AS_BEGIN\n});\n\n/**\n@typedef {import('highlight.js').CallbackResponse} CallbackResponse\n@typedef {import('highlight.js').CompilerExt} CompilerExt\n*/\n\n// Grammar extensions / plugins\n// See: https://github.com/highlightjs/highlight.js/issues/2833\n\n// Grammar extensions allow \"syntactic sugar\" to be added to the grammar modes\n// without requiring any underlying changes to the compiler internals.\n\n// `compileMatch` being the perfect small example of now allowing a grammar\n// author to write `match` when they desire to match a single expression rather\n// than being forced to use `begin`. The extension then just moves `match` into\n// `begin` when it runs. Ie, no features have been added, but we've just made\n// the experience of writing (and reading grammars) a little bit nicer.\n\n// ------\n\n// TODO: We need negative look-behind support to do this properly\n/**\n * Skip a match if it has a preceding dot\n *\n * This is used for `beginKeywords` to prevent matching expressions such as\n * `bob.keyword.do()`. The mode compiler automatically wires this up as a\n * special _internal_ 'on:begin' callback for modes with `beginKeywords`\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\nfunction skipIfHasPrecedingDot(match, response) {\n const before = match.input[match.index - 1];\n if (before === \".\") {\n response.ignoreMatch();\n }\n}\n\n/**\n *\n * @type {CompilerExt}\n */\nfunction scopeClassName(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.className !== undefined) {\n mode.scope = mode.className;\n delete mode.className;\n }\n}\n\n/**\n * `beginKeywords` syntactic sugar\n * @type {CompilerExt}\n */\nfunction beginKeywords(mode, parent) {\n if (!parent) return;\n if (!mode.beginKeywords) return;\n\n // for languages with keywords that include non-word characters checking for\n // a word boundary is not sufficient, so instead we check for a word boundary\n // or whitespace - this does no harm in any case since our keyword engine\n // doesn't allow spaces in keywords anyways and we still check for the boundary\n // first\n mode.begin = '\\\\b(' + mode.beginKeywords.split(' ').join('|') + ')(?!\\\\.)(?=\\\\b|\\\\s)';\n mode.__beforeBegin = skipIfHasPrecedingDot;\n mode.keywords = mode.keywords || mode.beginKeywords;\n delete mode.beginKeywords;\n\n // prevents double relevance, the keywords themselves provide\n // relevance, the mode doesn't need to double it\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 0;\n}\n\n/**\n * Allow `illegal` to contain an array of illegal values\n * @type {CompilerExt}\n */\nfunction compileIllegal(mode, _parent) {\n if (!Array.isArray(mode.illegal)) return;\n\n mode.illegal = either(...mode.illegal);\n}\n\n/**\n * `match` to match a single expression for readability\n * @type {CompilerExt}\n */\nfunction compileMatch(mode, _parent) {\n if (!mode.match) return;\n if (mode.begin || mode.end) throw new Error(\"begin & end are not supported with match\");\n\n mode.begin = mode.match;\n delete mode.match;\n}\n\n/**\n * provides the default 1 relevance to all modes\n * @type {CompilerExt}\n */\nfunction compileRelevance(mode, _parent) {\n // eslint-disable-next-line no-undefined\n if (mode.relevance === undefined) mode.relevance = 1;\n}\n\n// allow beforeMatch to act as a \"qualifier\" for the match\n// the full match begin must be [beforeMatch][begin]\nconst beforeMatchExt = (mode, parent) => {\n if (!mode.beforeMatch) return;\n // starts conflicts with endsParent which we need to make sure the child\n // rule is not matched multiple times\n if (mode.starts) throw new Error(\"beforeMatch cannot be used with starts\");\n\n const originalMode = Object.assign({}, mode);\n Object.keys(mode).forEach((key) => { delete mode[key]; });\n\n mode.keywords = originalMode.keywords;\n mode.begin = concat(originalMode.beforeMatch, lookahead(originalMode.begin));\n mode.starts = {\n relevance: 0,\n contains: [\n Object.assign(originalMode, { endsParent: true })\n ]\n };\n mode.relevance = 0;\n\n delete originalMode.beforeMatch;\n};\n\n// keywords that should have no default relevance value\nconst COMMON_KEYWORDS = [\n 'of',\n 'and',\n 'for',\n 'in',\n 'not',\n 'or',\n 'if',\n 'then',\n 'parent', // common variable name\n 'list', // common variable name\n 'value' // common variable name\n];\n\nconst DEFAULT_KEYWORD_SCOPE = \"keyword\";\n\n/**\n * Given raw keywords from a language definition, compile them.\n *\n * @param {string | Record | Array} rawKeywords\n * @param {boolean} caseInsensitive\n */\nfunction compileKeywords(rawKeywords, caseInsensitive, scopeName = DEFAULT_KEYWORD_SCOPE) {\n /** @type KeywordDict */\n const compiledKeywords = Object.create(null);\n\n // input can be a string of keywords, an array of keywords, or a object with\n // named keys representing scopeName (which can then point to a string or array)\n if (typeof rawKeywords === 'string') {\n compileList(scopeName, rawKeywords.split(\" \"));\n } else if (Array.isArray(rawKeywords)) {\n compileList(scopeName, rawKeywords);\n } else {\n Object.keys(rawKeywords).forEach(function(scopeName) {\n // collapse all our objects back into the parent object\n Object.assign(\n compiledKeywords,\n compileKeywords(rawKeywords[scopeName], caseInsensitive, scopeName)\n );\n });\n }\n return compiledKeywords;\n\n // ---\n\n /**\n * Compiles an individual list of keywords\n *\n * Ex: \"for if when while|5\"\n *\n * @param {string} scopeName\n * @param {Array} keywordList\n */\n function compileList(scopeName, keywordList) {\n if (caseInsensitive) {\n keywordList = keywordList.map(x => x.toLowerCase());\n }\n keywordList.forEach(function(keyword) {\n const pair = keyword.split('|');\n compiledKeywords[pair[0]] = [scopeName, scoreForKeyword(pair[0], pair[1])];\n });\n }\n}\n\n/**\n * Returns the proper score for a given keyword\n *\n * Also takes into account comment keywords, which will be scored 0 UNLESS\n * another score has been manually assigned.\n * @param {string} keyword\n * @param {string} [providedScore]\n */\nfunction scoreForKeyword(keyword, providedScore) {\n // manual scores always win over common keywords\n // so you can force a score of 1 if you really insist\n if (providedScore) {\n return Number(providedScore);\n }\n\n return commonKeyword(keyword) ? 0 : 1;\n}\n\n/**\n * Determines if a given keyword is common or not\n *\n * @param {string} keyword */\nfunction commonKeyword(keyword) {\n return COMMON_KEYWORDS.includes(keyword.toLowerCase());\n}\n\n/*\n\nFor the reasoning behind this please see:\nhttps://github.com/highlightjs/highlight.js/issues/2880#issuecomment-747275419\n\n*/\n\n/**\n * @type {Record}\n */\nconst seenDeprecations = {};\n\n/**\n * @param {string} message\n */\nconst error = (message) => {\n console.error(message);\n};\n\n/**\n * @param {string} message\n * @param {any} args\n */\nconst warn = (message, ...args) => {\n console.log(`WARN: ${message}`, ...args);\n};\n\n/**\n * @param {string} version\n * @param {string} message\n */\nconst deprecated = (version, message) => {\n if (seenDeprecations[`${version}/${message}`]) return;\n\n console.log(`Deprecated as of ${version}. ${message}`);\n seenDeprecations[`${version}/${message}`] = true;\n};\n\n/* eslint-disable no-throw-literal */\n\n/**\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n*/\n\nconst MultiClassError = new Error();\n\n/**\n * Renumbers labeled scope names to account for additional inner match\n * groups that otherwise would break everything.\n *\n * Lets say we 3 match scopes:\n *\n * { 1 => ..., 2 => ..., 3 => ... }\n *\n * So what we need is a clean match like this:\n *\n * (a)(b)(c) => [ \"a\", \"b\", \"c\" ]\n *\n * But this falls apart with inner match groups:\n *\n * (a)(((b)))(c) => [\"a\", \"b\", \"b\", \"b\", \"c\" ]\n *\n * Our scopes are now \"out of alignment\" and we're repeating `b` 3 times.\n * What needs to happen is the numbers are remapped:\n *\n * { 1 => ..., 2 => ..., 5 => ... }\n *\n * We also need to know that the ONLY groups that should be output\n * are 1, 2, and 5. This function handles this behavior.\n *\n * @param {CompiledMode} mode\n * @param {Array} regexes\n * @param {{key: \"beginScope\"|\"endScope\"}} opts\n */\nfunction remapScopeNames(mode, regexes, { key }) {\n let offset = 0;\n const scopeNames = mode[key];\n /** @type Record */\n const emit = {};\n /** @type Record */\n const positions = {};\n\n for (let i = 1; i <= regexes.length; i++) {\n positions[i + offset] = scopeNames[i];\n emit[i + offset] = true;\n offset += countMatchGroups(regexes[i - 1]);\n }\n // we use _emit to keep track of which match groups are \"top-level\" to avoid double\n // output from inside match groups\n mode[key] = positions;\n mode[key]._emit = emit;\n mode[key]._multi = true;\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction beginMultiClass(mode) {\n if (!Array.isArray(mode.begin)) return;\n\n if (mode.skip || mode.excludeBegin || mode.returnBegin) {\n error(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.beginScope !== \"object\" || mode.beginScope === null) {\n error(\"beginScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.begin, { key: \"beginScope\" });\n mode.begin = _rewriteBackreferences(mode.begin, { joinWith: \"\" });\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction endMultiClass(mode) {\n if (!Array.isArray(mode.end)) return;\n\n if (mode.skip || mode.excludeEnd || mode.returnEnd) {\n error(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\");\n throw MultiClassError;\n }\n\n if (typeof mode.endScope !== \"object\" || mode.endScope === null) {\n error(\"endScope must be object\");\n throw MultiClassError;\n }\n\n remapScopeNames(mode, mode.end, { key: \"endScope\" });\n mode.end = _rewriteBackreferences(mode.end, { joinWith: \"\" });\n}\n\n/**\n * this exists only to allow `scope: {}` to be used beside `match:`\n * Otherwise `beginScope` would necessary and that would look weird\n\n {\n match: [ /def/, /\\w+/ ]\n scope: { 1: \"keyword\" , 2: \"title\" }\n }\n\n * @param {CompiledMode} mode\n */\nfunction scopeSugar(mode) {\n if (mode.scope && typeof mode.scope === \"object\" && mode.scope !== null) {\n mode.beginScope = mode.scope;\n delete mode.scope;\n }\n}\n\n/**\n * @param {CompiledMode} mode\n */\nfunction MultiClass(mode) {\n scopeSugar(mode);\n\n if (typeof mode.beginScope === \"string\") {\n mode.beginScope = { _wrap: mode.beginScope };\n }\n if (typeof mode.endScope === \"string\") {\n mode.endScope = { _wrap: mode.endScope };\n }\n\n beginMultiClass(mode);\n endMultiClass(mode);\n}\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').CompiledLanguage} CompiledLanguage\n*/\n\n// compilation\n\n/**\n * Compiles a language definition result\n *\n * Given the raw result of a language definition (Language), compiles this so\n * that it is ready for highlighting code.\n * @param {Language} language\n * @returns {CompiledLanguage}\n */\nfunction compileLanguage(language) {\n /**\n * Builds a regex with the case sensitivity of the current language\n *\n * @param {RegExp | string} value\n * @param {boolean} [global]\n */\n function langRe(value, global) {\n return new RegExp(\n source(value),\n 'm'\n + (language.case_insensitive ? 'i' : '')\n + (language.unicodeRegex ? 'u' : '')\n + (global ? 'g' : '')\n );\n }\n\n /**\n Stores multiple regular expressions and allows you to quickly search for\n them all in a string simultaneously - returning the first match. It does\n this by creating a huge (a|b|c) regex - each individual item wrapped with ()\n and joined by `|` - using match groups to track position. When a match is\n found checking which position in the array has content allows us to figure\n out which of the original regexes / match groups triggered the match.\n\n The match object itself (the result of `Regex.exec`) is returned but also\n enhanced by merging in any meta-data that was registered with the regex.\n This is how we keep track of which mode matched, and what type of rule\n (`illegal`, `begin`, end, etc).\n */\n class MultiRegex {\n constructor() {\n this.matchIndexes = {};\n // @ts-ignore\n this.regexes = [];\n this.matchAt = 1;\n this.position = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n opts.position = this.position++;\n // @ts-ignore\n this.matchIndexes[this.matchAt] = opts;\n this.regexes.push([opts, re]);\n this.matchAt += countMatchGroups(re) + 1;\n }\n\n compile() {\n if (this.regexes.length === 0) {\n // avoids the need to check length every time exec is called\n // @ts-ignore\n this.exec = () => null;\n }\n const terminators = this.regexes.map(el => el[1]);\n this.matcherRe = langRe(_rewriteBackreferences(terminators, { joinWith: '|' }), true);\n this.lastIndex = 0;\n }\n\n /** @param {string} s */\n exec(s) {\n this.matcherRe.lastIndex = this.lastIndex;\n const match = this.matcherRe.exec(s);\n if (!match) { return null; }\n\n // eslint-disable-next-line no-undefined\n const i = match.findIndex((el, i) => i > 0 && el !== undefined);\n // @ts-ignore\n const matchData = this.matchIndexes[i];\n // trim off any earlier non-relevant match groups (ie, the other regex\n // match groups that make up the multi-matcher)\n match.splice(0, i);\n\n return Object.assign(match, matchData);\n }\n }\n\n /*\n Created to solve the key deficiently with MultiRegex - there is no way to\n test for multiple matches at a single location. Why would we need to do\n that? In the future a more dynamic engine will allow certain matches to be\n ignored. An example: if we matched say the 3rd regex in a large group but\n decided to ignore it - we'd need to started testing again at the 4th\n regex... but MultiRegex itself gives us no real way to do that.\n\n So what this class creates MultiRegexs on the fly for whatever search\n position they are needed.\n\n NOTE: These additional MultiRegex objects are created dynamically. For most\n grammars most of the time we will never actually need anything more than the\n first MultiRegex - so this shouldn't have too much overhead.\n\n Say this is our search group, and we match regex3, but wish to ignore it.\n\n regex1 | regex2 | regex3 | regex4 | regex5 ' ie, startAt = 0\n\n What we need is a new MultiRegex that only includes the remaining\n possibilities:\n\n regex4 | regex5 ' ie, startAt = 3\n\n This class wraps all that complexity up in a simple API... `startAt` decides\n where in the array of expressions to start doing the matching. It\n auto-increments, so if a match is found at position 2, then startAt will be\n set to 3. If the end is reached startAt will return to 0.\n\n MOST of the time the parser will be setting startAt manually to 0.\n */\n class ResumableMultiRegex {\n constructor() {\n // @ts-ignore\n this.rules = [];\n // @ts-ignore\n this.multiRegexes = [];\n this.count = 0;\n\n this.lastIndex = 0;\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n getMatcher(index) {\n if (this.multiRegexes[index]) return this.multiRegexes[index];\n\n const matcher = new MultiRegex();\n this.rules.slice(index).forEach(([re, opts]) => matcher.addRule(re, opts));\n matcher.compile();\n this.multiRegexes[index] = matcher;\n return matcher;\n }\n\n resumingScanAtSamePosition() {\n return this.regexIndex !== 0;\n }\n\n considerAll() {\n this.regexIndex = 0;\n }\n\n // @ts-ignore\n addRule(re, opts) {\n this.rules.push([re, opts]);\n if (opts.type === \"begin\") this.count++;\n }\n\n /** @param {string} s */\n exec(s) {\n const m = this.getMatcher(this.regexIndex);\n m.lastIndex = this.lastIndex;\n let result = m.exec(s);\n\n // The following is because we have no easy way to say \"resume scanning at the\n // existing position but also skip the current rule ONLY\". What happens is\n // all prior rules are also skipped which can result in matching the wrong\n // thing. Example of matching \"booger\":\n\n // our matcher is [string, \"booger\", number]\n //\n // ....booger....\n\n // if \"booger\" is ignored then we'd really need a regex to scan from the\n // SAME position for only: [string, number] but ignoring \"booger\" (if it\n // was the first match), a simple resume would scan ahead who knows how\n // far looking only for \"number\", ignoring potential string matches (or\n // future \"booger\" matches that might be valid.)\n\n // So what we do: We execute two matchers, one resuming at the same\n // position, but the second full matcher starting at the position after:\n\n // /--- resume first regex match here (for [number])\n // |/---- full match here for [string, \"booger\", number]\n // vv\n // ....booger....\n\n // Which ever results in a match first is then used. So this 3-4 step\n // process essentially allows us to say \"match at this position, excluding\n // a prior rule that was ignored\".\n //\n // 1. Match \"booger\" first, ignore. Also proves that [string] does non match.\n // 2. Resume matching for [number]\n // 3. Match at index + 1 for [string, \"booger\", number]\n // 4. If #2 and #3 result in matches, which came first?\n if (this.resumingScanAtSamePosition()) {\n if (result && result.index === this.lastIndex) ; else { // use the second matcher result\n const m2 = this.getMatcher(0);\n m2.lastIndex = this.lastIndex + 1;\n result = m2.exec(s);\n }\n }\n\n if (result) {\n this.regexIndex += result.position + 1;\n if (this.regexIndex === this.count) {\n // wrap-around to considering all matches again\n this.considerAll();\n }\n }\n\n return result;\n }\n }\n\n /**\n * Given a mode, builds a huge ResumableMultiRegex that can be used to walk\n * the content and find matches.\n *\n * @param {CompiledMode} mode\n * @returns {ResumableMultiRegex}\n */\n function buildModeRegex(mode) {\n const mm = new ResumableMultiRegex();\n\n mode.contains.forEach(term => mm.addRule(term.begin, { rule: term, type: \"begin\" }));\n\n if (mode.terminatorEnd) {\n mm.addRule(mode.terminatorEnd, { type: \"end\" });\n }\n if (mode.illegal) {\n mm.addRule(mode.illegal, { type: \"illegal\" });\n }\n\n return mm;\n }\n\n /** skip vs abort vs ignore\n *\n * @skip - The mode is still entered and exited normally (and contains rules apply),\n * but all content is held and added to the parent buffer rather than being\n * output when the mode ends. Mostly used with `sublanguage` to build up\n * a single large buffer than can be parsed by sublanguage.\n *\n * - The mode begin ands ends normally.\n * - Content matched is added to the parent mode buffer.\n * - The parser cursor is moved forward normally.\n *\n * @abort - A hack placeholder until we have ignore. Aborts the mode (as if it\n * never matched) but DOES NOT continue to match subsequent `contains`\n * modes. Abort is bad/suboptimal because it can result in modes\n * farther down not getting applied because an earlier rule eats the\n * content but then aborts.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is added to the mode buffer.\n * - The parser cursor is moved forward accordingly.\n *\n * @ignore - Ignores the mode (as if it never matched) and continues to match any\n * subsequent `contains` modes. Ignore isn't technically possible with\n * the current parser implementation.\n *\n * - The mode does not begin.\n * - Content matched by `begin` is ignored.\n * - The parser cursor is not moved forward.\n */\n\n /**\n * Compiles an individual mode\n *\n * This can raise an error if the mode contains certain detectable known logic\n * issues.\n * @param {Mode} mode\n * @param {CompiledMode | null} [parent]\n * @returns {CompiledMode | never}\n */\n function compileMode(mode, parent) {\n const cmode = /** @type CompiledMode */ (mode);\n if (mode.isCompiled) return cmode;\n\n [\n scopeClassName,\n // do this early so compiler extensions generally don't have to worry about\n // the distinction between match/begin\n compileMatch,\n MultiClass,\n beforeMatchExt\n ].forEach(ext => ext(mode, parent));\n\n language.compilerExtensions.forEach(ext => ext(mode, parent));\n\n // __beforeBegin is considered private API, internal use only\n mode.__beforeBegin = null;\n\n [\n beginKeywords,\n // do this later so compiler extensions that come earlier have access to the\n // raw array if they wanted to perhaps manipulate it, etc.\n compileIllegal,\n // default to 1 relevance if not specified\n compileRelevance\n ].forEach(ext => ext(mode, parent));\n\n mode.isCompiled = true;\n\n let keywordPattern = null;\n if (typeof mode.keywords === \"object\" && mode.keywords.$pattern) {\n // we need a copy because keywords might be compiled multiple times\n // so we can't go deleting $pattern from the original on the first\n // pass\n mode.keywords = Object.assign({}, mode.keywords);\n keywordPattern = mode.keywords.$pattern;\n delete mode.keywords.$pattern;\n }\n keywordPattern = keywordPattern || /\\w+/;\n\n if (mode.keywords) {\n mode.keywords = compileKeywords(mode.keywords, language.case_insensitive);\n }\n\n cmode.keywordPatternRe = langRe(keywordPattern, true);\n\n if (parent) {\n if (!mode.begin) mode.begin = /\\B|\\b/;\n cmode.beginRe = langRe(cmode.begin);\n if (!mode.end && !mode.endsWithParent) mode.end = /\\B|\\b/;\n if (mode.end) cmode.endRe = langRe(cmode.end);\n cmode.terminatorEnd = source(cmode.end) || '';\n if (mode.endsWithParent && parent.terminatorEnd) {\n cmode.terminatorEnd += (mode.end ? '|' : '') + parent.terminatorEnd;\n }\n }\n if (mode.illegal) cmode.illegalRe = langRe(/** @type {RegExp | string} */ (mode.illegal));\n if (!mode.contains) mode.contains = [];\n\n mode.contains = [].concat(...mode.contains.map(function(c) {\n return expandOrCloneMode(c === 'self' ? mode : c);\n }));\n mode.contains.forEach(function(c) { compileMode(/** @type Mode */ (c), cmode); });\n\n if (mode.starts) {\n compileMode(mode.starts, parent);\n }\n\n cmode.matcher = buildModeRegex(cmode);\n return cmode;\n }\n\n if (!language.compilerExtensions) language.compilerExtensions = [];\n\n // self is not valid at the top-level\n if (language.contains && language.contains.includes('self')) {\n throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");\n }\n\n // we need a null object, which inherit will guarantee\n language.classNameAliases = inherit$1(language.classNameAliases || {});\n\n return compileMode(/** @type Mode */ (language));\n}\n\n/**\n * Determines if a mode has a dependency on it's parent or not\n *\n * If a mode does have a parent dependency then often we need to clone it if\n * it's used in multiple places so that each copy points to the correct parent,\n * where-as modes without a parent can often safely be re-used at the bottom of\n * a mode chain.\n *\n * @param {Mode | null} mode\n * @returns {boolean} - is there a dependency on the parent?\n * */\nfunction dependencyOnParent(mode) {\n if (!mode) return false;\n\n return mode.endsWithParent || dependencyOnParent(mode.starts);\n}\n\n/**\n * Expands a mode or clones it if necessary\n *\n * This is necessary for modes with parental dependenceis (see notes on\n * `dependencyOnParent`) and for nodes that have `variants` - which must then be\n * exploded into their own individual modes at compile time.\n *\n * @param {Mode} mode\n * @returns {Mode | Mode[]}\n * */\nfunction expandOrCloneMode(mode) {\n if (mode.variants && !mode.cachedVariants) {\n mode.cachedVariants = mode.variants.map(function(variant) {\n return inherit$1(mode, { variants: null }, variant);\n });\n }\n\n // EXPAND\n // if we have variants then essentially \"replace\" the mode with the variants\n // this happens in compileMode, where this function is called from\n if (mode.cachedVariants) {\n return mode.cachedVariants;\n }\n\n // CLONE\n // if we have dependencies on parents then we need a unique\n // instance of ourselves, so we can be reused with many\n // different parents without issue\n if (dependencyOnParent(mode)) {\n return inherit$1(mode, { starts: mode.starts ? inherit$1(mode.starts) : null });\n }\n\n if (Object.isFrozen(mode)) {\n return inherit$1(mode);\n }\n\n // no special dependency issues, just return ourselves\n return mode;\n}\n\nvar version = \"11.4.0\";\n\nclass HTMLInjectionError extends Error {\n constructor(reason, html) {\n super(reason);\n this.name = \"HTMLInjectionError\";\n this.html = html;\n }\n}\n\n/*\nSyntax highlighting with language autodetection.\nhttps://highlightjs.org/\n*/\n\n/**\n@typedef {import('highlight.js').Mode} Mode\n@typedef {import('highlight.js').CompiledMode} CompiledMode\n@typedef {import('highlight.js').CompiledScope} CompiledScope\n@typedef {import('highlight.js').Language} Language\n@typedef {import('highlight.js').HLJSApi} HLJSApi\n@typedef {import('highlight.js').HLJSPlugin} HLJSPlugin\n@typedef {import('highlight.js').PluginEvent} PluginEvent\n@typedef {import('highlight.js').HLJSOptions} HLJSOptions\n@typedef {import('highlight.js').LanguageFn} LanguageFn\n@typedef {import('highlight.js').HighlightedHTMLElement} HighlightedHTMLElement\n@typedef {import('highlight.js').BeforeHighlightContext} BeforeHighlightContext\n@typedef {import('highlight.js/private').MatchType} MatchType\n@typedef {import('highlight.js/private').KeywordData} KeywordData\n@typedef {import('highlight.js/private').EnhancedMatch} EnhancedMatch\n@typedef {import('highlight.js/private').AnnotatedError} AnnotatedError\n@typedef {import('highlight.js').AutoHighlightResult} AutoHighlightResult\n@typedef {import('highlight.js').HighlightOptions} HighlightOptions\n@typedef {import('highlight.js').HighlightResult} HighlightResult\n*/\n\n\nconst escape = escapeHTML;\nconst inherit = inherit$1;\nconst NO_MATCH = Symbol(\"nomatch\");\nconst MAX_KEYWORD_HITS = 7;\n\n/**\n * @param {any} hljs - object that is extended (legacy)\n * @returns {HLJSApi}\n */\nconst HLJS = function(hljs) {\n // Global internal variables used within the highlight.js library.\n /** @type {Record} */\n const languages = Object.create(null);\n /** @type {Record} */\n const aliases = Object.create(null);\n /** @type {HLJSPlugin[]} */\n const plugins = [];\n\n // safe/production mode - swallows more errors, tries to keep running\n // even if a single syntax or parse hits a fatal error\n let SAFE_MODE = true;\n const LANGUAGE_NOT_FOUND = \"Could not find the language '{}', did you forget to load/include a language module?\";\n /** @type {Language} */\n const PLAINTEXT_LANGUAGE = { disableAutodetect: true, name: 'Plain text', contains: [] };\n\n // Global options used when within external APIs. This is modified when\n // calling the `hljs.configure` function.\n /** @type HLJSOptions */\n let options = {\n ignoreUnescapedHTML: false,\n throwUnescapedHTML: false,\n noHighlightRe: /^(no-?highlight)$/i,\n languageDetectRe: /\\blang(?:uage)?-([\\w-]+)\\b/i,\n classPrefix: 'hljs-',\n cssSelector: 'pre code',\n languages: null,\n // beta configuration options, subject to change, welcome to discuss\n // https://github.com/highlightjs/highlight.js/issues/1086\n __emitter: TokenTreeEmitter\n };\n\n /* Utility functions */\n\n /**\n * Tests a language name to see if highlighting should be skipped\n * @param {string} languageName\n */\n function shouldNotHighlight(languageName) {\n return options.noHighlightRe.test(languageName);\n }\n\n /**\n * @param {HighlightedHTMLElement} block - the HTML element to determine language for\n */\n function blockLanguage(block) {\n let classes = block.className + ' ';\n\n classes += block.parentNode ? block.parentNode.className : '';\n\n // language-* takes precedence over non-prefixed class names.\n const match = options.languageDetectRe.exec(classes);\n if (match) {\n const language = getLanguage(match[1]);\n if (!language) {\n warn(LANGUAGE_NOT_FOUND.replace(\"{}\", match[1]));\n warn(\"Falling back to no-highlight mode for this block.\", block);\n }\n return language ? match[1] : 'no-highlight';\n }\n\n return classes\n .split(/\\s+/)\n .find((_class) => shouldNotHighlight(_class) || getLanguage(_class));\n }\n\n /**\n * Core highlighting function.\n *\n * OLD API\n * highlight(lang, code, ignoreIllegals, continuation)\n *\n * NEW API\n * highlight(code, {lang, ignoreIllegals})\n *\n * @param {string} codeOrLanguageName - the language to use for highlighting\n * @param {string | HighlightOptions} optionsOrCode - the code to highlight\n * @param {boolean} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n *\n * @returns {HighlightResult} Result - an object that represents the result\n * @property {string} language - the language name\n * @property {number} relevance - the relevance score\n * @property {string} value - the highlighted HTML code\n * @property {string} code - the original raw code\n * @property {CompiledMode} top - top of the current mode stack\n * @property {boolean} illegal - indicates whether any illegal matches were found\n */\n function highlight(codeOrLanguageName, optionsOrCode, ignoreIllegals) {\n let code = \"\";\n let languageName = \"\";\n if (typeof optionsOrCode === \"object\") {\n code = codeOrLanguageName;\n ignoreIllegals = optionsOrCode.ignoreIllegals;\n languageName = optionsOrCode.language;\n } else {\n // old API\n deprecated(\"10.7.0\", \"highlight(lang, code, ...args) has been deprecated.\");\n deprecated(\"10.7.0\", \"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\");\n languageName = codeOrLanguageName;\n code = optionsOrCode;\n }\n\n // https://github.com/highlightjs/highlight.js/issues/3149\n // eslint-disable-next-line no-undefined\n if (ignoreIllegals === undefined) { ignoreIllegals = true; }\n\n /** @type {BeforeHighlightContext} */\n const context = {\n code,\n language: languageName\n };\n // the plugin can change the desired language or the code to be highlighted\n // just be changing the object it was passed\n fire(\"before:highlight\", context);\n\n // a before plugin can usurp the result completely by providing it's own\n // in which case we don't even need to call highlight\n const result = context.result\n ? context.result\n : _highlight(context.language, context.code, ignoreIllegals);\n\n result.code = context.code;\n // the plugin can change anything in result to suite it\n fire(\"after:highlight\", result);\n\n return result;\n }\n\n /**\n * private highlight that's used internally and does not fire callbacks\n *\n * @param {string} languageName - the language to use for highlighting\n * @param {string} codeToHighlight - the code to highlight\n * @param {boolean?} [ignoreIllegals] - whether to ignore illegal matches, default is to bail\n * @param {CompiledMode?} [continuation] - current continuation mode, if any\n * @returns {HighlightResult} - result of the highlight operation\n */\n function _highlight(languageName, codeToHighlight, ignoreIllegals, continuation) {\n const keywordHits = Object.create(null);\n\n /**\n * Return keyword data if a match is a keyword\n * @param {CompiledMode} mode - current mode\n * @param {string} matchText - the textual match\n * @returns {KeywordData | false}\n */\n function keywordData(mode, matchText) {\n return mode.keywords[matchText];\n }\n\n function processKeywords() {\n if (!top.keywords) {\n emitter.addText(modeBuffer);\n return;\n }\n\n let lastIndex = 0;\n top.keywordPatternRe.lastIndex = 0;\n let match = top.keywordPatternRe.exec(modeBuffer);\n let buf = \"\";\n\n while (match) {\n buf += modeBuffer.substring(lastIndex, match.index);\n const word = language.case_insensitive ? match[0].toLowerCase() : match[0];\n const data = keywordData(top, word);\n if (data) {\n const [kind, keywordRelevance] = data;\n emitter.addText(buf);\n buf = \"\";\n\n keywordHits[word] = (keywordHits[word] || 0) + 1;\n if (keywordHits[word] <= MAX_KEYWORD_HITS) relevance += keywordRelevance;\n if (kind.startsWith(\"_\")) {\n // _ implied for relevance only, do not highlight\n // by applying a class name\n buf += match[0];\n } else {\n const cssClass = language.classNameAliases[kind] || kind;\n emitter.addKeyword(match[0], cssClass);\n }\n } else {\n buf += match[0];\n }\n lastIndex = top.keywordPatternRe.lastIndex;\n match = top.keywordPatternRe.exec(modeBuffer);\n }\n buf += modeBuffer.substr(lastIndex);\n emitter.addText(buf);\n }\n\n function processSubLanguage() {\n if (modeBuffer === \"\") return;\n /** @type HighlightResult */\n let result = null;\n\n if (typeof top.subLanguage === 'string') {\n if (!languages[top.subLanguage]) {\n emitter.addText(modeBuffer);\n return;\n }\n result = _highlight(top.subLanguage, modeBuffer, true, continuations[top.subLanguage]);\n continuations[top.subLanguage] = /** @type {CompiledMode} */ (result._top);\n } else {\n result = highlightAuto(modeBuffer, top.subLanguage.length ? top.subLanguage : null);\n }\n\n // Counting embedded language score towards the host language may be disabled\n // with zeroing the containing mode relevance. Use case in point is Markdown that\n // allows XML everywhere and makes every XML snippet to have a much larger Markdown\n // score.\n if (top.relevance > 0) {\n relevance += result.relevance;\n }\n emitter.addSublanguage(result._emitter, result.language);\n }\n\n function processBuffer() {\n if (top.subLanguage != null) {\n processSubLanguage();\n } else {\n processKeywords();\n }\n modeBuffer = '';\n }\n\n /**\n * @param {CompiledScope} scope\n * @param {RegExpMatchArray} match\n */\n function emitMultiClass(scope, match) {\n let i = 1;\n // eslint-disable-next-line no-undefined\n while (match[i] !== undefined) {\n if (!scope._emit[i]) { i++; continue; }\n const klass = language.classNameAliases[scope[i]] || scope[i];\n const text = match[i];\n if (klass) {\n emitter.addKeyword(text, klass);\n } else {\n modeBuffer = text;\n processKeywords();\n modeBuffer = \"\";\n }\n i++;\n }\n }\n\n /**\n * @param {CompiledMode} mode - new mode to start\n * @param {RegExpMatchArray} match\n */\n function startNewMode(mode, match) {\n if (mode.scope && typeof mode.scope === \"string\") {\n emitter.openNode(language.classNameAliases[mode.scope] || mode.scope);\n }\n if (mode.beginScope) {\n // beginScope just wraps the begin match itself in a scope\n if (mode.beginScope._wrap) {\n emitter.addKeyword(modeBuffer, language.classNameAliases[mode.beginScope._wrap] || mode.beginScope._wrap);\n modeBuffer = \"\";\n } else if (mode.beginScope._multi) {\n // at this point modeBuffer should just be the match\n emitMultiClass(mode.beginScope, match);\n modeBuffer = \"\";\n }\n }\n\n top = Object.create(mode, { parent: { value: top } });\n return top;\n }\n\n /**\n * @param {CompiledMode } mode - the mode to potentially end\n * @param {RegExpMatchArray} match - the latest match\n * @param {string} matchPlusRemainder - match plus remainder of content\n * @returns {CompiledMode | void} - the next mode, or if void continue on in current mode\n */\n function endOfMode(mode, match, matchPlusRemainder) {\n let matched = startsWith(mode.endRe, matchPlusRemainder);\n\n if (matched) {\n if (mode[\"on:end\"]) {\n const resp = new Response(mode);\n mode[\"on:end\"](match, resp);\n if (resp.isMatchIgnored) matched = false;\n }\n\n if (matched) {\n while (mode.endsParent && mode.parent) {\n mode = mode.parent;\n }\n return mode;\n }\n }\n // even if on:end fires an `ignore` it's still possible\n // that we might trigger the end node because of a parent mode\n if (mode.endsWithParent) {\n return endOfMode(mode.parent, match, matchPlusRemainder);\n }\n }\n\n /**\n * Handle matching but then ignoring a sequence of text\n *\n * @param {string} lexeme - string containing full match text\n */\n function doIgnore(lexeme) {\n if (top.matcher.regexIndex === 0) {\n // no more regexes to potentially match here, so we move the cursor forward one\n // space\n modeBuffer += lexeme[0];\n return 1;\n } else {\n // no need to move the cursor, we still have additional regexes to try and\n // match at this very spot\n resumeScanAtSamePosition = true;\n return 0;\n }\n }\n\n /**\n * Handle the start of a new potential mode match\n *\n * @param {EnhancedMatch} match - the current match\n * @returns {number} how far to advance the parse cursor\n */\n function doBeginMatch(match) {\n const lexeme = match[0];\n const newMode = match.rule;\n\n const resp = new Response(newMode);\n // first internal before callbacks, then the public ones\n const beforeCallbacks = [newMode.__beforeBegin, newMode[\"on:begin\"]];\n for (const cb of beforeCallbacks) {\n if (!cb) continue;\n cb(match, resp);\n if (resp.isMatchIgnored) return doIgnore(lexeme);\n }\n\n if (newMode.skip) {\n modeBuffer += lexeme;\n } else {\n if (newMode.excludeBegin) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (!newMode.returnBegin && !newMode.excludeBegin) {\n modeBuffer = lexeme;\n }\n }\n startNewMode(newMode, match);\n return newMode.returnBegin ? 0 : lexeme.length;\n }\n\n /**\n * Handle the potential end of mode\n *\n * @param {RegExpMatchArray} match - the current match\n */\n function doEndMatch(match) {\n const lexeme = match[0];\n const matchPlusRemainder = codeToHighlight.substr(match.index);\n\n const endMode = endOfMode(top, match, matchPlusRemainder);\n if (!endMode) { return NO_MATCH; }\n\n const origin = top;\n if (top.endScope && top.endScope._wrap) {\n processBuffer();\n emitter.addKeyword(lexeme, top.endScope._wrap);\n } else if (top.endScope && top.endScope._multi) {\n processBuffer();\n emitMultiClass(top.endScope, match);\n } else if (origin.skip) {\n modeBuffer += lexeme;\n } else {\n if (!(origin.returnEnd || origin.excludeEnd)) {\n modeBuffer += lexeme;\n }\n processBuffer();\n if (origin.excludeEnd) {\n modeBuffer = lexeme;\n }\n }\n do {\n if (top.scope) {\n emitter.closeNode();\n }\n if (!top.skip && !top.subLanguage) {\n relevance += top.relevance;\n }\n top = top.parent;\n } while (top !== endMode.parent);\n if (endMode.starts) {\n startNewMode(endMode.starts, match);\n }\n return origin.returnEnd ? 0 : lexeme.length;\n }\n\n function processContinuations() {\n const list = [];\n for (let current = top; current !== language; current = current.parent) {\n if (current.scope) {\n list.unshift(current.scope);\n }\n }\n list.forEach(item => emitter.openNode(item));\n }\n\n /** @type {{type?: MatchType, index?: number, rule?: Mode}}} */\n let lastMatch = {};\n\n /**\n * Process an individual match\n *\n * @param {string} textBeforeMatch - text preceding the match (since the last match)\n * @param {EnhancedMatch} [match] - the match itself\n */\n function processLexeme(textBeforeMatch, match) {\n const lexeme = match && match[0];\n\n // add non-matched text to the current mode buffer\n modeBuffer += textBeforeMatch;\n\n if (lexeme == null) {\n processBuffer();\n return 0;\n }\n\n // we've found a 0 width match and we're stuck, so we need to advance\n // this happens when we have badly behaved rules that have optional matchers to the degree that\n // sometimes they can end up matching nothing at all\n // Ref: https://github.com/highlightjs/highlight.js/issues/2140\n if (lastMatch.type === \"begin\" && match.type === \"end\" && lastMatch.index === match.index && lexeme === \"\") {\n // spit the \"skipped\" character that our regex choked on back into the output sequence\n modeBuffer += codeToHighlight.slice(match.index, match.index + 1);\n if (!SAFE_MODE) {\n /** @type {AnnotatedError} */\n const err = new Error(`0 width match regex (${languageName})`);\n err.languageName = languageName;\n err.badRule = lastMatch.rule;\n throw err;\n }\n return 1;\n }\n lastMatch = match;\n\n if (match.type === \"begin\") {\n return doBeginMatch(match);\n } else if (match.type === \"illegal\" && !ignoreIllegals) {\n // illegal match, we do not continue processing\n /** @type {AnnotatedError} */\n const err = new Error('Illegal lexeme \"' + lexeme + '\" for mode \"' + (top.scope || '') + '\"');\n err.mode = top;\n throw err;\n } else if (match.type === \"end\") {\n const processed = doEndMatch(match);\n if (processed !== NO_MATCH) {\n return processed;\n }\n }\n\n // edge case for when illegal matches $ (end of line) which is technically\n // a 0 width match but not a begin/end match so it's not caught by the\n // first handler (when ignoreIllegals is true)\n if (match.type === \"illegal\" && lexeme === \"\") {\n // advance so we aren't stuck in an infinite loop\n return 1;\n }\n\n // infinite loops are BAD, this is a last ditch catch all. if we have a\n // decent number of iterations yet our index (cursor position in our\n // parsing) still 3x behind our index then something is very wrong\n // so we bail\n if (iterations > 100000 && iterations > match.index * 3) {\n const err = new Error('potential infinite loop, way more iterations than matches');\n throw err;\n }\n\n /*\n Why might be find ourselves here? An potential end match that was\n triggered but could not be completed. IE, `doEndMatch` returned NO_MATCH.\n (this could be because a callback requests the match be ignored, etc)\n\n This causes no real harm other than stopping a few times too many.\n */\n\n modeBuffer += lexeme;\n return lexeme.length;\n }\n\n const language = getLanguage(languageName);\n if (!language) {\n error(LANGUAGE_NOT_FOUND.replace(\"{}\", languageName));\n throw new Error('Unknown language: \"' + languageName + '\"');\n }\n\n const md = compileLanguage(language);\n let result = '';\n /** @type {CompiledMode} */\n let top = continuation || md;\n /** @type Record */\n const continuations = {}; // keep continuations for sub-languages\n const emitter = new options.__emitter(options);\n processContinuations();\n let modeBuffer = '';\n let relevance = 0;\n let index = 0;\n let iterations = 0;\n let resumeScanAtSamePosition = false;\n\n try {\n top.matcher.considerAll();\n\n for (;;) {\n iterations++;\n if (resumeScanAtSamePosition) {\n // only regexes not matched previously will now be\n // considered for a potential match\n resumeScanAtSamePosition = false;\n } else {\n top.matcher.considerAll();\n }\n top.matcher.lastIndex = index;\n\n const match = top.matcher.exec(codeToHighlight);\n // console.log(\"match\", match[0], match.rule && match.rule.begin)\n\n if (!match) break;\n\n const beforeMatch = codeToHighlight.substring(index, match.index);\n const processedCount = processLexeme(beforeMatch, match);\n index = match.index + processedCount;\n }\n processLexeme(codeToHighlight.substr(index));\n emitter.closeAllNodes();\n emitter.finalize();\n result = emitter.toHTML();\n\n return {\n language: languageName,\n value: result,\n relevance: relevance,\n illegal: false,\n _emitter: emitter,\n _top: top\n };\n } catch (err) {\n if (err.message && err.message.includes('Illegal')) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: true,\n relevance: 0,\n _illegalBy: {\n message: err.message,\n index: index,\n context: codeToHighlight.slice(index - 100, index + 100),\n mode: err.mode,\n resultSoFar: result\n },\n _emitter: emitter\n };\n } else if (SAFE_MODE) {\n return {\n language: languageName,\n value: escape(codeToHighlight),\n illegal: false,\n relevance: 0,\n errorRaised: err,\n _emitter: emitter,\n _top: top\n };\n } else {\n throw err;\n }\n }\n }\n\n /**\n * returns a valid highlight result, without actually doing any actual work,\n * auto highlight starts with this and it's possible for small snippets that\n * auto-detection may not find a better match\n * @param {string} code\n * @returns {HighlightResult}\n */\n function justTextHighlightResult(code) {\n const result = {\n value: escape(code),\n illegal: false,\n relevance: 0,\n _top: PLAINTEXT_LANGUAGE,\n _emitter: new options.__emitter(options)\n };\n result._emitter.addText(code);\n return result;\n }\n\n /**\n Highlighting with language detection. Accepts a string with the code to\n highlight. Returns an object with the following properties:\n\n - language (detected language)\n - relevance (int)\n - value (an HTML string with highlighting markup)\n - secondBest (object with the same structure for second-best heuristically\n detected language, may be absent)\n\n @param {string} code\n @param {Array} [languageSubset]\n @returns {AutoHighlightResult}\n */\n function highlightAuto(code, languageSubset) {\n languageSubset = languageSubset || options.languages || Object.keys(languages);\n const plaintext = justTextHighlightResult(code);\n\n const results = languageSubset.filter(getLanguage).filter(autoDetection).map(name =>\n _highlight(name, code, false)\n );\n results.unshift(plaintext); // plaintext is always an option\n\n const sorted = results.sort((a, b) => {\n // sort base on relevance\n if (a.relevance !== b.relevance) return b.relevance - a.relevance;\n\n // always award the tie to the base language\n // ie if C++ and Arduino are tied, it's more likely to be C++\n if (a.language && b.language) {\n if (getLanguage(a.language).supersetOf === b.language) {\n return 1;\n } else if (getLanguage(b.language).supersetOf === a.language) {\n return -1;\n }\n }\n\n // otherwise say they are equal, which has the effect of sorting on\n // relevance while preserving the original ordering - which is how ties\n // have historically been settled, ie the language that comes first always\n // wins in the case of a tie\n return 0;\n });\n\n const [best, secondBest] = sorted;\n\n /** @type {AutoHighlightResult} */\n const result = best;\n result.secondBest = secondBest;\n\n return result;\n }\n\n /**\n * Builds new class name for block given the language name\n *\n * @param {HTMLElement} element\n * @param {string} [currentLang]\n * @param {string} [resultLang]\n */\n function updateClassName(element, currentLang, resultLang) {\n const language = (currentLang && aliases[currentLang]) || resultLang;\n\n element.classList.add(\"hljs\");\n element.classList.add(`language-${language}`);\n }\n\n /**\n * Applies highlighting to a DOM node containing code.\n *\n * @param {HighlightedHTMLElement} element - the HTML element to highlight\n */\n function highlightElement(element) {\n /** @type HTMLElement */\n let node = null;\n const language = blockLanguage(element);\n\n if (shouldNotHighlight(language)) return;\n\n fire(\"before:highlightElement\",\n { el: element, language: language });\n\n // we should be all text, no child nodes (unescaped HTML) - this is possibly\n // an HTML injection attack - it's likely too late if this is already in\n // production (the code has likely already done its damage by the time\n // we're seeing it)... but we yell loudly about this so that hopefully it's\n // more likely to be caught in development before making it to production\n if (element.children.length > 0) {\n if (!options.ignoreUnescapedHTML) {\n console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\");\n console.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\");\n console.warn(\"The element with unescaped HTML:\");\n console.warn(element);\n }\n if (options.throwUnescapedHTML) {\n const err = new HTMLInjectionError(\n \"One of your code blocks includes unescaped HTML.\",\n element.innerHTML\n );\n throw err;\n }\n }\n\n node = element;\n const text = node.textContent;\n const result = language ? highlight(text, { language, ignoreIllegals: true }) : highlightAuto(text);\n\n element.innerHTML = result.value;\n updateClassName(element, language, result.language);\n element.result = {\n language: result.language,\n // TODO: remove with version 11.0\n re: result.relevance,\n relevance: result.relevance\n };\n if (result.secondBest) {\n element.secondBest = {\n language: result.secondBest.language,\n relevance: result.secondBest.relevance\n };\n }\n\n fire(\"after:highlightElement\", { el: element, result, text });\n }\n\n /**\n * Updates highlight.js global options with the passed options\n *\n * @param {Partial} userOptions\n */\n function configure(userOptions) {\n options = inherit(options, userOptions);\n }\n\n // TODO: remove v12, deprecated\n const initHighlighting = () => {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlighting() deprecated. Use highlightAll() now.\");\n };\n\n // TODO: remove v12, deprecated\n function initHighlightingOnLoad() {\n highlightAll();\n deprecated(\"10.6.0\", \"initHighlightingOnLoad() deprecated. Use highlightAll() now.\");\n }\n\n let wantsHighlight = false;\n\n /**\n * auto-highlights all pre>code elements on the page\n */\n function highlightAll() {\n // if we are called too early in the loading process\n if (document.readyState === \"loading\") {\n wantsHighlight = true;\n return;\n }\n\n const blocks = document.querySelectorAll(options.cssSelector);\n blocks.forEach(highlightElement);\n }\n\n function boot() {\n // if a highlight was requested before DOM was loaded, do now\n if (wantsHighlight) highlightAll();\n }\n\n // make sure we are in the browser environment\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('DOMContentLoaded', boot, false);\n }\n\n /**\n * Register a language grammar module\n *\n * @param {string} languageName\n * @param {LanguageFn} languageDefinition\n */\n function registerLanguage(languageName, languageDefinition) {\n let lang = null;\n try {\n lang = languageDefinition(hljs);\n } catch (error$1) {\n error(\"Language definition for '{}' could not be registered.\".replace(\"{}\", languageName));\n // hard or soft error\n if (!SAFE_MODE) { throw error$1; } else { error(error$1); }\n // languages that have serious errors are replaced with essentially a\n // \"plaintext\" stand-in so that the code blocks will still get normal\n // css classes applied to them - and one bad language won't break the\n // entire highlighter\n lang = PLAINTEXT_LANGUAGE;\n }\n // give it a temporary name if it doesn't have one in the meta-data\n if (!lang.name) lang.name = languageName;\n languages[languageName] = lang;\n lang.rawDefinition = languageDefinition.bind(null, hljs);\n\n if (lang.aliases) {\n registerAliases(lang.aliases, { languageName });\n }\n }\n\n /**\n * Remove a language grammar module\n *\n * @param {string} languageName\n */\n function unregisterLanguage(languageName) {\n delete languages[languageName];\n for (const alias of Object.keys(aliases)) {\n if (aliases[alias] === languageName) {\n delete aliases[alias];\n }\n }\n }\n\n /**\n * @returns {string[]} List of language internal names\n */\n function listLanguages() {\n return Object.keys(languages);\n }\n\n /**\n * @param {string} name - name of the language to retrieve\n * @returns {Language | undefined}\n */\n function getLanguage(name) {\n name = (name || '').toLowerCase();\n return languages[name] || languages[aliases[name]];\n }\n\n /**\n *\n * @param {string|string[]} aliasList - single alias or list of aliases\n * @param {{languageName: string}} opts\n */\n function registerAliases(aliasList, { languageName }) {\n if (typeof aliasList === 'string') {\n aliasList = [aliasList];\n }\n aliasList.forEach(alias => { aliases[alias.toLowerCase()] = languageName; });\n }\n\n /**\n * Determines if a given language has auto-detection enabled\n * @param {string} name - name of the language\n */\n function autoDetection(name) {\n const lang = getLanguage(name);\n return lang && !lang.disableAutodetect;\n }\n\n /**\n * Upgrades the old highlightBlock plugins to the new\n * highlightElement API\n * @param {HLJSPlugin} plugin\n */\n function upgradePluginAPI(plugin) {\n // TODO: remove with v12\n if (plugin[\"before:highlightBlock\"] && !plugin[\"before:highlightElement\"]) {\n plugin[\"before:highlightElement\"] = (data) => {\n plugin[\"before:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n if (plugin[\"after:highlightBlock\"] && !plugin[\"after:highlightElement\"]) {\n plugin[\"after:highlightElement\"] = (data) => {\n plugin[\"after:highlightBlock\"](\n Object.assign({ block: data.el }, data)\n );\n };\n }\n }\n\n /**\n * @param {HLJSPlugin} plugin\n */\n function addPlugin(plugin) {\n upgradePluginAPI(plugin);\n plugins.push(plugin);\n }\n\n /**\n *\n * @param {PluginEvent} event\n * @param {any} args\n */\n function fire(event, args) {\n const cb = event;\n plugins.forEach(function(plugin) {\n if (plugin[cb]) {\n plugin[cb](args);\n }\n });\n }\n\n /**\n * DEPRECATED\n * @param {HighlightedHTMLElement} el\n */\n function deprecateHighlightBlock(el) {\n deprecated(\"10.7.0\", \"highlightBlock will be removed entirely in v12.0\");\n deprecated(\"10.7.0\", \"Please use highlightElement now.\");\n\n return highlightElement(el);\n }\n\n /* Interface definition */\n Object.assign(hljs, {\n highlight,\n highlightAuto,\n highlightAll,\n highlightElement,\n // TODO: Remove with v12 API\n highlightBlock: deprecateHighlightBlock,\n configure,\n initHighlighting,\n initHighlightingOnLoad,\n registerLanguage,\n unregisterLanguage,\n listLanguages,\n getLanguage,\n registerAliases,\n autoDetection,\n inherit,\n addPlugin\n });\n\n hljs.debugMode = function() { SAFE_MODE = false; };\n hljs.safeMode = function() { SAFE_MODE = true; };\n hljs.versionString = version;\n\n hljs.regex = {\n concat: concat,\n lookahead: lookahead,\n either: either,\n optional: optional,\n anyNumberOfTimes: anyNumberOfTimes\n };\n\n for (const key in MODES) {\n // @ts-ignore\n if (typeof MODES[key] === \"object\") {\n // @ts-ignore\n deepFreeze$1(MODES[key]);\n }\n }\n\n // merge all the modes/regexes into our main object\n Object.assign(hljs, MODES);\n\n return hljs;\n};\n\n// export an \"instance\" of the highlighter\nvar highlight = HLJS({});\n\nmodule.exports = highlight;\nhighlight.HighlightJS = highlight;\nhighlight.default = highlight;\n","// https://nodejs.org/api/packages.html#packages_writing_dual_packages_while_avoiding_or_minimizing_hazards\nimport HighlightJS from '../lib/core.js';\nexport { HighlightJS };\nexport default HighlightJS;\n"],"names":["deepFreezeEs6","exports","deepFreeze","obj","Map","clear","delete","set","Error","Set","add","Object","freeze","getOwnPropertyNames","forEach","name","prop","isFrozen","default","deepFreeze$1","Response","constructor","mode","data","undefined","isMatchIgnored","ignoreMatch","escapeHTML","value","replace","inherit$1","original","objects","result","create","key","SPAN_CLOSE","emitsWrappingTags","node","kind","expandScopeName","prefix","includes","pieces","split","shift","map","x","i","repeat","join","HTMLRenderer","parseTree","options","buffer","classPrefix","walk","addText","text","openNode","scope","sublanguage","span","closeNode","className","TokenTree","rootNode","children","stack","top","length","root","push","pop","closeAllNodes","toJSON","JSON","stringify","builder","_walk","child","_collapse","every","el","TokenTreeEmitter","addKeyword","addSublanguage","emitter","toHTML","renderer","finalize","source","re","lookahead","concat","anyNumberOfTimes","optional","args","joined","stripOptionsFromArgs","opts","splice","either","capture","countMatchGroups","RegExp","toString","exec","startsWith","lexeme","match","index","BACKREF_RE","_rewriteBackreferences","regexps","joinWith","numCaptures","regex","offset","out","substring","String","Number","MATCH_NOTHING_RE","IDENT_RE","UNDERSCORE_IDENT_RE","NUMBER_RE","C_NUMBER_RE","BINARY_NUMBER_RE","RE_STARTERS_RE","SHEBANG","beginShebang","binary","begin","end","relevance","m","resp","BACKSLASH_ESCAPE","APOS_STRING_MODE","illegal","contains","QUOTE_STRING_MODE","PHRASAL_WORDS_MODE","COMMENT","modeOptions","excludeBegin","ENGLISH_WORD","C_LINE_COMMENT_MODE","C_BLOCK_COMMENT_MODE","HASH_COMMENT_MODE","NUMBER_MODE","C_NUMBER_MODE","BINARY_NUMBER_MODE","REGEXP_MODE","TITLE_MODE","UNDERSCORE_TITLE_MODE","METHOD_GUARD","END_SAME_AS_BEGIN","assign","_beginMatch","MODES","__proto__","skipIfHasPrecedingDot","response","before","input","scopeClassName","_parent","beginKeywords","parent","__beforeBegin","keywords","compileIllegal","Array","isArray","compileMatch","compileRelevance","beforeMatchExt","beforeMatch","starts","originalMode","keys","endsParent","COMMON_KEYWORDS","DEFAULT_KEYWORD_SCOPE","compileKeywords","rawKeywords","caseInsensitive","scopeName","compiledKeywords","compileList","keywordList","toLowerCase","keyword","pair","scoreForKeyword","providedScore","commonKeyword","seenDeprecations","error","message","console","warn","log","deprecated","version","MultiClassError","remapScopeNames","regexes","scopeNames","emit","positions","_emit","_multi","beginMultiClass","skip","returnBegin","beginScope","endMultiClass","excludeEnd","returnEnd","endScope","scopeSugar","MultiClass","_wrap","compileLanguage","language","langRe","global","case_insensitive","unicodeRegex","MultiRegex","matchIndexes","matchAt","position","addRule","compile","terminators","matcherRe","lastIndex","s","findIndex","matchData","ResumableMultiRegex","rules","multiRegexes","count","regexIndex","getMatcher","matcher","slice","resumingScanAtSamePosition","considerAll","type","m2","buildModeRegex","mm","term","rule","terminatorEnd","compileMode","cmode","isCompiled","ext","compilerExtensions","keywordPattern","$pattern","keywordPatternRe","beginRe","endsWithParent","endRe","illegalRe","c","expandOrCloneMode","classNameAliases","dependencyOnParent","variants","cachedVariants","variant","HTMLInjectionError","reason","html","escape","inherit","NO_MATCH","Symbol","MAX_KEYWORD_HITS","HLJS","hljs","languages","aliases","plugins","SAFE_MODE","LANGUAGE_NOT_FOUND","PLAINTEXT_LANGUAGE","disableAutodetect","ignoreUnescapedHTML","throwUnescapedHTML","noHighlightRe","languageDetectRe","cssSelector","__emitter","shouldNotHighlight","languageName","test","blockLanguage","block","classes","parentNode","getLanguage","find","_class","highlight","codeOrLanguageName","optionsOrCode","ignoreIllegals","code","context","fire","_highlight","codeToHighlight","continuation","keywordHits","keywordData","matchText","processKeywords","modeBuffer","buf","word","keywordRelevance","cssClass","substr","processSubLanguage","subLanguage","continuations","_top","highlightAuto","_emitter","processBuffer","emitMultiClass","klass","startNewMode","endOfMode","matchPlusRemainder","matched","doIgnore","resumeScanAtSamePosition","doBeginMatch","newMode","beforeCallbacks","cb","doEndMatch","endMode","origin","processContinuations","list","current","unshift","item","lastMatch","processLexeme","textBeforeMatch","err","badRule","processed","iterations","md","processedCount","_illegalBy","resultSoFar","errorRaised","justTextHighlightResult","languageSubset","plaintext","results","filter","autoDetection","sorted","sort","a","b","supersetOf","best","secondBest","updateClassName","element","currentLang","resultLang","classList","highlightElement","innerHTML","textContent","configure","userOptions","initHighlighting","highlightAll","initHighlightingOnLoad","wantsHighlight","document","readyState","blocks","querySelectorAll","boot","window","addEventListener","registerLanguage","languageDefinition","lang","error$1","rawDefinition","bind","registerAliases","unregisterLanguage","alias","listLanguages","aliasList","upgradePluginAPI","plugin","addPlugin","event","deprecateHighlightBlock","highlightBlock","debugMode","safeMode","versionString","module","HighlightJS"],"sourceRoot":"webpack:///","x_google_ignoreList":[0,1]} \ No newline at end of file diff --git a/dist/ng-select2/node_modules_highlight_js_es_languages_css_js.js b/dist/ng-select2/node_modules_highlight_js_es_languages_css_js.js deleted file mode 100644 index 8b0e97d..0000000 --- a/dist/ng-select2/node_modules_highlight_js_es_languages_css_js.js +++ /dev/null @@ -1,190 +0,0 @@ -"use strict"; -(self["webpackChunkng_select2"] = self["webpackChunkng_select2"] || []).push([["node_modules_highlight_js_es_languages_css_js"],{ - -/***/ 9009: -/*!*******************************************************!*\ - !*** ./node_modules/highlight.js/es/languages/css.js ***! - \*******************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ css) -/* harmony export */ }); -const MODES = hljs => { - return { - IMPORTANT: { - scope: 'meta', - begin: '!important' - }, - BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE, - HEXCOLOR: { - scope: 'number', - begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/ - }, - FUNCTION_DISPATCH: { - className: "built_in", - begin: /[\w-]+(?=\()/ - }, - ATTRIBUTE_SELECTOR_MODE: { - scope: 'selector-attr', - begin: /\[/, - end: /\]/, - illegal: '$', - contains: [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE] - }, - CSS_NUMBER_MODE: { - scope: 'number', - begin: hljs.NUMBER_RE + '(' + '%|em|ex|ch|rem' + '|vw|vh|vmin|vmax' + '|cm|mm|in|pt|pc|px' + '|deg|grad|rad|turn' + '|s|ms' + '|Hz|kHz' + '|dpi|dpcm|dppx' + ')?', - relevance: 0 - }, - CSS_VARIABLE: { - className: "attr", - begin: /--[A-Za-z][A-Za-z0-9_-]*/ - } - }; -}; - -const TAGS = ['a', 'abbr', 'address', 'article', 'aside', 'audio', 'b', 'blockquote', 'body', 'button', 'canvas', 'caption', 'cite', 'code', 'dd', 'del', 'details', 'dfn', 'div', 'dl', 'dt', 'em', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'mark', 'menu', 'nav', 'object', 'ol', 'p', 'q', 'quote', 'samp', 'section', 'span', 'strong', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'ul', 'var', 'video']; -const MEDIA_FEATURES = ['any-hover', 'any-pointer', 'aspect-ratio', 'color', 'color-gamut', 'color-index', 'device-aspect-ratio', 'device-height', 'device-width', 'display-mode', 'forced-colors', 'grid', 'height', 'hover', 'inverted-colors', 'monochrome', 'orientation', 'overflow-block', 'overflow-inline', 'pointer', 'prefers-color-scheme', 'prefers-contrast', 'prefers-reduced-motion', 'prefers-reduced-transparency', 'resolution', 'scan', 'scripting', 'update', 'width', // TODO: find a better solution? -'min-width', 'max-width', 'min-height', 'max-height']; // https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes - -const PSEUDO_CLASSES = ['active', 'any-link', 'blank', 'checked', 'current', 'default', 'defined', 'dir', // dir() -'disabled', 'drop', 'empty', 'enabled', 'first', 'first-child', 'first-of-type', 'fullscreen', 'future', 'focus', 'focus-visible', 'focus-within', 'has', // has() -'host', // host or host() -'host-context', // host-context() -'hover', 'indeterminate', 'in-range', 'invalid', 'is', // is() -'lang', // lang() -'last-child', 'last-of-type', 'left', 'link', 'local-link', 'not', // not() -'nth-child', // nth-child() -'nth-col', // nth-col() -'nth-last-child', // nth-last-child() -'nth-last-col', // nth-last-col() -'nth-last-of-type', //nth-last-of-type() -'nth-of-type', //nth-of-type() -'only-child', 'only-of-type', 'optional', 'out-of-range', 'past', 'placeholder-shown', 'read-only', 'read-write', 'required', 'right', 'root', 'scope', 'target', 'target-within', 'user-invalid', 'valid', 'visited', 'where' // where() -]; // https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements - -const PSEUDO_ELEMENTS = ['after', 'backdrop', 'before', 'cue', 'cue-region', 'first-letter', 'first-line', 'grammar-error', 'marker', 'part', 'placeholder', 'selection', 'slotted', 'spelling-error']; -const ATTRIBUTES = ['align-content', 'align-items', 'align-self', 'all', 'animation', 'animation-delay', 'animation-direction', 'animation-duration', 'animation-fill-mode', 'animation-iteration-count', 'animation-name', 'animation-play-state', 'animation-timing-function', 'backface-visibility', 'background', 'background-attachment', 'background-clip', 'background-color', 'background-image', 'background-origin', 'background-position', 'background-repeat', 'background-size', 'border', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-style', 'border-bottom-width', 'border-collapse', 'border-color', 'border-image', 'border-image-outset', 'border-image-repeat', 'border-image-slice', 'border-image-source', 'border-image-width', 'border-left', 'border-left-color', 'border-left-style', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-style', 'border-right-width', 'border-spacing', 'border-style', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-style', 'border-top-width', 'border-width', 'bottom', 'box-decoration-break', 'box-shadow', 'box-sizing', 'break-after', 'break-before', 'break-inside', 'caption-side', 'caret-color', 'clear', 'clip', 'clip-path', 'clip-rule', 'color', 'column-count', 'column-fill', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-style', 'column-rule-width', 'column-span', 'column-width', 'columns', 'contain', 'content', 'content-visibility', 'counter-increment', 'counter-reset', 'cue', 'cue-after', 'cue-before', 'cursor', 'direction', 'display', 'empty-cells', 'filter', 'flex', 'flex-basis', 'flex-direction', 'flex-flow', 'flex-grow', 'flex-shrink', 'flex-wrap', 'float', 'flow', 'font', 'font-display', 'font-family', 'font-feature-settings', 'font-kerning', 'font-language-override', 'font-size', 'font-size-adjust', 'font-smoothing', 'font-stretch', 'font-style', 'font-synthesis', 'font-variant', 'font-variant-caps', 'font-variant-east-asian', 'font-variant-ligatures', 'font-variant-numeric', 'font-variant-position', 'font-variation-settings', 'font-weight', 'gap', 'glyph-orientation-vertical', 'grid', 'grid-area', 'grid-auto-columns', 'grid-auto-flow', 'grid-auto-rows', 'grid-column', 'grid-column-end', 'grid-column-start', 'grid-gap', 'grid-row', 'grid-row-end', 'grid-row-start', 'grid-template', 'grid-template-areas', 'grid-template-columns', 'grid-template-rows', 'hanging-punctuation', 'height', 'hyphens', 'icon', 'image-orientation', 'image-rendering', 'image-resolution', 'ime-mode', 'isolation', 'justify-content', 'left', 'letter-spacing', 'line-break', 'line-height', 'list-style', 'list-style-image', 'list-style-position', 'list-style-type', 'margin', 'margin-bottom', 'margin-left', 'margin-right', 'margin-top', 'marks', 'mask', 'mask-border', 'mask-border-mode', 'mask-border-outset', 'mask-border-repeat', 'mask-border-slice', 'mask-border-source', 'mask-border-width', 'mask-clip', 'mask-composite', 'mask-image', 'mask-mode', 'mask-origin', 'mask-position', 'mask-repeat', 'mask-size', 'mask-type', 'max-height', 'max-width', 'min-height', 'min-width', 'mix-blend-mode', 'nav-down', 'nav-index', 'nav-left', 'nav-right', 'nav-up', 'none', 'normal', 'object-fit', 'object-position', 'opacity', 'order', 'orphans', 'outline', 'outline-color', 'outline-offset', 'outline-style', 'outline-width', 'overflow', 'overflow-wrap', 'overflow-x', 'overflow-y', 'padding', 'padding-bottom', 'padding-left', 'padding-right', 'padding-top', 'page-break-after', 'page-break-before', 'page-break-inside', 'pause', 'pause-after', 'pause-before', 'perspective', 'perspective-origin', 'pointer-events', 'position', 'quotes', 'resize', 'rest', 'rest-after', 'rest-before', 'right', 'row-gap', 'scroll-margin', 'scroll-margin-block', 'scroll-margin-block-end', 'scroll-margin-block-start', 'scroll-margin-bottom', 'scroll-margin-inline', 'scroll-margin-inline-end', 'scroll-margin-inline-start', 'scroll-margin-left', 'scroll-margin-right', 'scroll-margin-top', 'scroll-padding', 'scroll-padding-block', 'scroll-padding-block-end', 'scroll-padding-block-start', 'scroll-padding-bottom', 'scroll-padding-inline', 'scroll-padding-inline-end', 'scroll-padding-inline-start', 'scroll-padding-left', 'scroll-padding-right', 'scroll-padding-top', 'scroll-snap-align', 'scroll-snap-stop', 'scroll-snap-type', 'shape-image-threshold', 'shape-margin', 'shape-outside', 'speak', 'speak-as', 'src', // @font-face -'tab-size', 'table-layout', 'text-align', 'text-align-all', 'text-align-last', 'text-combine-upright', 'text-decoration', 'text-decoration-color', 'text-decoration-line', 'text-decoration-style', 'text-emphasis', 'text-emphasis-color', 'text-emphasis-position', 'text-emphasis-style', 'text-indent', 'text-justify', 'text-orientation', 'text-overflow', 'text-rendering', 'text-shadow', 'text-transform', 'text-underline-position', 'top', 'transform', 'transform-box', 'transform-origin', 'transform-style', 'transition', 'transition-delay', 'transition-duration', 'transition-property', 'transition-timing-function', 'unicode-bidi', 'vertical-align', 'visibility', 'voice-balance', 'voice-duration', 'voice-family', 'voice-pitch', 'voice-range', 'voice-rate', 'voice-stress', 'voice-volume', 'white-space', 'widows', 'width', 'will-change', 'word-break', 'word-spacing', 'word-wrap', 'writing-mode', 'z-index' // reverse makes sure longer attributes `font-weight` are matched fully -// instead of getting false positives on say `font` -].reverse(); -/* -Language: CSS -Category: common, css, web -Website: https://developer.mozilla.org/en-US/docs/Web/CSS -*/ - -/** @type LanguageFn */ - -function css(hljs) { - const regex = hljs.regex; - const modes = MODES(hljs); - const VENDOR_PREFIX = { - begin: /-(webkit|moz|ms|o)-(?=[a-z])/ - }; - const AT_MODIFIERS = "and or not only"; - const AT_PROPERTY_RE = /@-?\w[\w]*(-\w+)*/; // @-webkit-keyframes - - const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*'; - const STRINGS = [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE]; - return { - name: 'CSS', - case_insensitive: true, - illegal: /[=|'\$]/, - keywords: { - keyframePosition: "from to" - }, - classNameAliases: { - // for visual continuity with `tag {}` and because we - // don't have a great class for this? - keyframePosition: "selector-tag" - }, - contains: [modes.BLOCK_COMMENT, VENDOR_PREFIX, // to recognize keyframe 40% etc which are outside the scope of our - // attribute value mode - modes.CSS_NUMBER_MODE, { - className: 'selector-id', - begin: /#[A-Za-z0-9_-]+/, - relevance: 0 - }, { - className: 'selector-class', - begin: '\\.' + IDENT_RE, - relevance: 0 - }, modes.ATTRIBUTE_SELECTOR_MODE, { - className: 'selector-pseudo', - variants: [{ - begin: ':(' + PSEUDO_CLASSES.join('|') + ')' - }, { - begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')' - }] - }, // we may actually need this (12/2020) - // { // pseudo-selector params - // begin: /\(/, - // end: /\)/, - // contains: [ hljs.CSS_NUMBER_MODE ] - // }, - modes.CSS_VARIABLE, { - className: 'attribute', - begin: '\\b(' + ATTRIBUTES.join('|') + ')\\b' - }, // attribute values - { - begin: /:/, - end: /[;}{]/, - contains: [modes.BLOCK_COMMENT, modes.HEXCOLOR, modes.IMPORTANT, modes.CSS_NUMBER_MODE, ...STRINGS, // needed to highlight these as strings and to avoid issues with - // illegal characters that might be inside urls that would tigger the - // languages illegal stack - { - begin: /(url|data-uri)\(/, - end: /\)/, - relevance: 0, - // from keywords - keywords: { - built_in: "url data-uri" - }, - contains: [{ - className: "string", - // any character other than `)` as in `url()` will be the start - // of a string, which ends with `)` (from the parent mode) - begin: /[^)]/, - endsWithParent: true, - excludeEnd: true - }] - }, modes.FUNCTION_DISPATCH] - }, { - begin: regex.lookahead(/@/), - end: '[{;]', - relevance: 0, - illegal: /:/, - // break on Less variables @var: ... - contains: [{ - className: 'keyword', - begin: AT_PROPERTY_RE - }, { - begin: /\s/, - endsWithParent: true, - excludeEnd: true, - relevance: 0, - keywords: { - $pattern: /[a-z-]+/, - keyword: AT_MODIFIERS, - attribute: MEDIA_FEATURES.join(" ") - }, - contains: [{ - begin: /[a-z-]+(?=:)/, - className: "attribute" - }, ...STRINGS, modes.CSS_NUMBER_MODE] - }] - }, { - className: 'selector-tag', - begin: '\\b(' + TAGS.join('|') + ')\\b' - }] - }; -} - - - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_highlight_js_es_languages_css_js.js.map \ No newline at end of file diff --git a/dist/ng-select2/node_modules_highlight_js_es_languages_css_js.js.map b/dist/ng-select2/node_modules_highlight_js_es_languages_css_js.js.map deleted file mode 100644 index 7871feb..0000000 --- a/dist/ng-select2/node_modules_highlight_js_es_languages_css_js.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_highlight_js_es_languages_css_js.js","mappings":"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","sources":["./node_modules/highlight.js/es/languages/css.js"],"sourcesContent":["const MODES = (hljs) => {\n return {\n IMPORTANT: {\n scope: 'meta',\n begin: '!important'\n },\n BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,\n HEXCOLOR: {\n scope: 'number',\n begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/\n },\n FUNCTION_DISPATCH: {\n className: \"built_in\",\n begin: /[\\w-]+(?=\\()/\n },\n ATTRIBUTE_SELECTOR_MODE: {\n scope: 'selector-attr',\n begin: /\\[/,\n end: /\\]/,\n illegal: '$',\n contains: [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ]\n },\n CSS_NUMBER_MODE: {\n scope: 'number',\n begin: hljs.NUMBER_RE + '(' +\n '%|em|ex|ch|rem' +\n '|vw|vh|vmin|vmax' +\n '|cm|mm|in|pt|pc|px' +\n '|deg|grad|rad|turn' +\n '|s|ms' +\n '|Hz|kHz' +\n '|dpi|dpcm|dppx' +\n ')?',\n relevance: 0\n },\n CSS_VARIABLE: {\n className: \"attr\",\n begin: /--[A-Za-z][A-Za-z0-9_-]*/\n }\n };\n};\n\nconst TAGS = [\n 'a',\n 'abbr',\n 'address',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'blockquote',\n 'body',\n 'button',\n 'canvas',\n 'caption',\n 'cite',\n 'code',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'fieldset',\n 'figcaption',\n 'figure',\n 'footer',\n 'form',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'header',\n 'hgroup',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'main',\n 'mark',\n 'menu',\n 'nav',\n 'object',\n 'ol',\n 'p',\n 'q',\n 'quote',\n 'samp',\n 'section',\n 'span',\n 'strong',\n 'summary',\n 'sup',\n 'table',\n 'tbody',\n 'td',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'tr',\n 'ul',\n 'var',\n 'video'\n];\n\nconst MEDIA_FEATURES = [\n 'any-hover',\n 'any-pointer',\n 'aspect-ratio',\n 'color',\n 'color-gamut',\n 'color-index',\n 'device-aspect-ratio',\n 'device-height',\n 'device-width',\n 'display-mode',\n 'forced-colors',\n 'grid',\n 'height',\n 'hover',\n 'inverted-colors',\n 'monochrome',\n 'orientation',\n 'overflow-block',\n 'overflow-inline',\n 'pointer',\n 'prefers-color-scheme',\n 'prefers-contrast',\n 'prefers-reduced-motion',\n 'prefers-reduced-transparency',\n 'resolution',\n 'scan',\n 'scripting',\n 'update',\n 'width',\n // TODO: find a better solution?\n 'min-width',\n 'max-width',\n 'min-height',\n 'max-height'\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes\nconst PSEUDO_CLASSES = [\n 'active',\n 'any-link',\n 'blank',\n 'checked',\n 'current',\n 'default',\n 'defined',\n 'dir', // dir()\n 'disabled',\n 'drop',\n 'empty',\n 'enabled',\n 'first',\n 'first-child',\n 'first-of-type',\n 'fullscreen',\n 'future',\n 'focus',\n 'focus-visible',\n 'focus-within',\n 'has', // has()\n 'host', // host or host()\n 'host-context', // host-context()\n 'hover',\n 'indeterminate',\n 'in-range',\n 'invalid',\n 'is', // is()\n 'lang', // lang()\n 'last-child',\n 'last-of-type',\n 'left',\n 'link',\n 'local-link',\n 'not', // not()\n 'nth-child', // nth-child()\n 'nth-col', // nth-col()\n 'nth-last-child', // nth-last-child()\n 'nth-last-col', // nth-last-col()\n 'nth-last-of-type', //nth-last-of-type()\n 'nth-of-type', //nth-of-type()\n 'only-child',\n 'only-of-type',\n 'optional',\n 'out-of-range',\n 'past',\n 'placeholder-shown',\n 'read-only',\n 'read-write',\n 'required',\n 'right',\n 'root',\n 'scope',\n 'target',\n 'target-within',\n 'user-invalid',\n 'valid',\n 'visited',\n 'where' // where()\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements\nconst PSEUDO_ELEMENTS = [\n 'after',\n 'backdrop',\n 'before',\n 'cue',\n 'cue-region',\n 'first-letter',\n 'first-line',\n 'grammar-error',\n 'marker',\n 'part',\n 'placeholder',\n 'selection',\n 'slotted',\n 'spelling-error'\n];\n\nconst ATTRIBUTES = [\n 'align-content',\n 'align-items',\n 'align-self',\n 'all',\n 'animation',\n 'animation-delay',\n 'animation-direction',\n 'animation-duration',\n 'animation-fill-mode',\n 'animation-iteration-count',\n 'animation-name',\n 'animation-play-state',\n 'animation-timing-function',\n 'backface-visibility',\n 'background',\n 'background-attachment',\n 'background-clip',\n 'background-color',\n 'background-image',\n 'background-origin',\n 'background-position',\n 'background-repeat',\n 'background-size',\n 'border',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-style',\n 'border-bottom-width',\n 'border-collapse',\n 'border-color',\n 'border-image',\n 'border-image-outset',\n 'border-image-repeat',\n 'border-image-slice',\n 'border-image-source',\n 'border-image-width',\n 'border-left',\n 'border-left-color',\n 'border-left-style',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-style',\n 'border-right-width',\n 'border-spacing',\n 'border-style',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-style',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-decoration-break',\n 'box-shadow',\n 'box-sizing',\n 'break-after',\n 'break-before',\n 'break-inside',\n 'caption-side',\n 'caret-color',\n 'clear',\n 'clip',\n 'clip-path',\n 'clip-rule',\n 'color',\n 'column-count',\n 'column-fill',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-style',\n 'column-rule-width',\n 'column-span',\n 'column-width',\n 'columns',\n 'contain',\n 'content',\n 'content-visibility',\n 'counter-increment',\n 'counter-reset',\n 'cue',\n 'cue-after',\n 'cue-before',\n 'cursor',\n 'direction',\n 'display',\n 'empty-cells',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-direction',\n 'flex-flow',\n 'flex-grow',\n 'flex-shrink',\n 'flex-wrap',\n 'float',\n 'flow',\n 'font',\n 'font-display',\n 'font-family',\n 'font-feature-settings',\n 'font-kerning',\n 'font-language-override',\n 'font-size',\n 'font-size-adjust',\n 'font-smoothing',\n 'font-stretch',\n 'font-style',\n 'font-synthesis',\n 'font-variant',\n 'font-variant-caps',\n 'font-variant-east-asian',\n 'font-variant-ligatures',\n 'font-variant-numeric',\n 'font-variant-position',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'glyph-orientation-vertical',\n 'grid',\n 'grid-area',\n 'grid-auto-columns',\n 'grid-auto-flow',\n 'grid-auto-rows',\n 'grid-column',\n 'grid-column-end',\n 'grid-column-start',\n 'grid-gap',\n 'grid-row',\n 'grid-row-end',\n 'grid-row-start',\n 'grid-template',\n 'grid-template-areas',\n 'grid-template-columns',\n 'grid-template-rows',\n 'hanging-punctuation',\n 'height',\n 'hyphens',\n 'icon',\n 'image-orientation',\n 'image-rendering',\n 'image-resolution',\n 'ime-mode',\n 'isolation',\n 'justify-content',\n 'left',\n 'letter-spacing',\n 'line-break',\n 'line-height',\n 'list-style',\n 'list-style-image',\n 'list-style-position',\n 'list-style-type',\n 'margin',\n 'margin-bottom',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'marks',\n 'mask',\n 'mask-border',\n 'mask-border-mode',\n 'mask-border-outset',\n 'mask-border-repeat',\n 'mask-border-slice',\n 'mask-border-source',\n 'mask-border-width',\n 'mask-clip',\n 'mask-composite',\n 'mask-image',\n 'mask-mode',\n 'mask-origin',\n 'mask-position',\n 'mask-repeat',\n 'mask-size',\n 'mask-type',\n 'max-height',\n 'max-width',\n 'min-height',\n 'min-width',\n 'mix-blend-mode',\n 'nav-down',\n 'nav-index',\n 'nav-left',\n 'nav-right',\n 'nav-up',\n 'none',\n 'normal',\n 'object-fit',\n 'object-position',\n 'opacity',\n 'order',\n 'orphans',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-style',\n 'outline-width',\n 'overflow',\n 'overflow-wrap',\n 'overflow-x',\n 'overflow-y',\n 'padding',\n 'padding-bottom',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'page-break-after',\n 'page-break-before',\n 'page-break-inside',\n 'pause',\n 'pause-after',\n 'pause-before',\n 'perspective',\n 'perspective-origin',\n 'pointer-events',\n 'position',\n 'quotes',\n 'resize',\n 'rest',\n 'rest-after',\n 'rest-before',\n 'right',\n 'row-gap',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-align',\n 'scroll-snap-stop',\n 'scroll-snap-type',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'speak',\n 'speak-as',\n 'src', // @font-face\n 'tab-size',\n 'table-layout',\n 'text-align',\n 'text-align-all',\n 'text-align-last',\n 'text-combine-upright',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-line',\n 'text-decoration-style',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-emphasis-position',\n 'text-emphasis-style',\n 'text-indent',\n 'text-justify',\n 'text-orientation',\n 'text-overflow',\n 'text-rendering',\n 'text-shadow',\n 'text-transform',\n 'text-underline-position',\n 'top',\n 'transform',\n 'transform-box',\n 'transform-origin',\n 'transform-style',\n 'transition',\n 'transition-delay',\n 'transition-duration',\n 'transition-property',\n 'transition-timing-function',\n 'unicode-bidi',\n 'vertical-align',\n 'visibility',\n 'voice-balance',\n 'voice-duration',\n 'voice-family',\n 'voice-pitch',\n 'voice-range',\n 'voice-rate',\n 'voice-stress',\n 'voice-volume',\n 'white-space',\n 'widows',\n 'width',\n 'will-change',\n 'word-break',\n 'word-spacing',\n 'word-wrap',\n 'writing-mode',\n 'z-index'\n // reverse makes sure longer attributes `font-weight` are matched fully\n // instead of getting false positives on say `font`\n].reverse();\n\n/*\nLanguage: CSS\nCategory: common, css, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/CSS\n*/\n\n/** @type LanguageFn */\nfunction css(hljs) {\n const regex = hljs.regex;\n const modes = MODES(hljs);\n const VENDOR_PREFIX = {\n begin: /-(webkit|moz|ms|o)-(?=[a-z])/\n };\n const AT_MODIFIERS = \"and or not only\";\n const AT_PROPERTY_RE = /@-?\\w[\\w]*(-\\w+)*/; // @-webkit-keyframes\n const IDENT_RE = '[a-zA-Z-][a-zA-Z0-9_-]*';\n const STRINGS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE\n ];\n\n return {\n name: 'CSS',\n case_insensitive: true,\n illegal: /[=|'\\$]/,\n keywords: {\n keyframePosition: \"from to\"\n },\n classNameAliases: {\n // for visual continuity with `tag {}` and because we\n // don't have a great class for this?\n keyframePosition: \"selector-tag\"\n },\n contains: [\n modes.BLOCK_COMMENT,\n VENDOR_PREFIX,\n // to recognize keyframe 40% etc which are outside the scope of our\n // attribute value mode\n modes.CSS_NUMBER_MODE,\n {\n className: 'selector-id',\n begin: /#[A-Za-z0-9_-]+/,\n relevance: 0\n },\n {\n className: 'selector-class',\n begin: '\\\\.' + IDENT_RE,\n relevance: 0\n },\n modes.ATTRIBUTE_SELECTOR_MODE,\n {\n className: 'selector-pseudo',\n variants: [\n {\n begin: ':(' + PSEUDO_CLASSES.join('|') + ')'\n },\n {\n begin: ':(:)?(' + PSEUDO_ELEMENTS.join('|') + ')'\n }\n ]\n },\n // we may actually need this (12/2020)\n // { // pseudo-selector params\n // begin: /\\(/,\n // end: /\\)/,\n // contains: [ hljs.CSS_NUMBER_MODE ]\n // },\n modes.CSS_VARIABLE,\n {\n className: 'attribute',\n begin: '\\\\b(' + ATTRIBUTES.join('|') + ')\\\\b'\n },\n // attribute values\n {\n begin: /:/,\n end: /[;}{]/,\n contains: [\n modes.BLOCK_COMMENT,\n modes.HEXCOLOR,\n modes.IMPORTANT,\n modes.CSS_NUMBER_MODE,\n ...STRINGS,\n // needed to highlight these as strings and to avoid issues with\n // illegal characters that might be inside urls that would tigger the\n // languages illegal stack\n {\n begin: /(url|data-uri)\\(/,\n end: /\\)/,\n relevance: 0, // from keywords\n keywords: {\n built_in: \"url data-uri\"\n },\n contains: [\n {\n className: \"string\",\n // any character other than `)` as in `url()` will be the start\n // of a string, which ends with `)` (from the parent mode)\n begin: /[^)]/,\n endsWithParent: true,\n excludeEnd: true\n }\n ]\n },\n modes.FUNCTION_DISPATCH\n ]\n },\n {\n begin: regex.lookahead(/@/),\n end: '[{;]',\n relevance: 0,\n illegal: /:/, // break on Less variables @var: ...\n contains: [\n {\n className: 'keyword',\n begin: AT_PROPERTY_RE\n },\n {\n begin: /\\s/,\n endsWithParent: true,\n excludeEnd: true,\n relevance: 0,\n keywords: {\n $pattern: /[a-z-]+/,\n keyword: AT_MODIFIERS,\n attribute: MEDIA_FEATURES.join(\" \")\n },\n contains: [\n {\n begin: /[a-z-]+(?=:)/,\n className: \"attribute\"\n },\n ...STRINGS,\n modes.CSS_NUMBER_MODE\n ]\n }\n ]\n },\n {\n className: 'selector-tag',\n begin: '\\\\b(' + TAGS.join('|') + ')\\\\b'\n }\n ]\n };\n}\n\nexport { css as default };\n"],"names":["MODES","hljs","IMPORTANT","scope","begin","BLOCK_COMMENT","C_BLOCK_COMMENT_MODE","HEXCOLOR","FUNCTION_DISPATCH","className","ATTRIBUTE_SELECTOR_MODE","end","illegal","contains","APOS_STRING_MODE","QUOTE_STRING_MODE","CSS_NUMBER_MODE","NUMBER_RE","relevance","CSS_VARIABLE","TAGS","MEDIA_FEATURES","PSEUDO_CLASSES","PSEUDO_ELEMENTS","ATTRIBUTES","reverse","css","regex","modes","VENDOR_PREFIX","AT_MODIFIERS","AT_PROPERTY_RE","IDENT_RE","STRINGS","name","case_insensitive","keywords","keyframePosition","classNameAliases","variants","join","built_in","endsWithParent","excludeEnd","lookahead","$pattern","keyword","attribute","default"],"sourceRoot":"webpack:///","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/ng-select2/node_modules_highlight_js_es_languages_javascript_js.js b/dist/ng-select2/node_modules_highlight_js_es_languages_javascript_js.js deleted file mode 100644 index 6a1daf8..0000000 --- a/dist/ng-select2/node_modules_highlight_js_es_languages_javascript_js.js +++ /dev/null @@ -1,480 +0,0 @@ -"use strict"; -(self["webpackChunkng_select2"] = self["webpackChunkng_select2"] || []).push([["node_modules_highlight_js_es_languages_javascript_js"],{ - -/***/ 9633: -/*!**************************************************************!*\ - !*** ./node_modules/highlight.js/es/languages/javascript.js ***! - \**************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ javascript) -/* harmony export */ }); -const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*'; -const KEYWORDS = ["as", // for exports -"in", "of", "if", "for", "while", "finally", "var", "new", "function", "do", "return", "void", "else", "break", "catch", "instanceof", "with", "throw", "case", "default", "try", "switch", "continue", "typeof", "delete", "let", "yield", "const", "class", // JS handles these with a special rule -// "get", -// "set", -"debugger", "async", "await", "static", "import", "from", "export", "extends"]; -const LITERALS = ["true", "false", "null", "undefined", "NaN", "Infinity"]; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects - -const TYPES = [// Fundamental objects -"Object", "Function", "Boolean", "Symbol", // numbers and dates -"Math", "Date", "Number", "BigInt", // text -"String", "RegExp", // Indexed collections -"Array", "Float32Array", "Float64Array", "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Int32Array", "Uint16Array", "Uint32Array", "BigInt64Array", "BigUint64Array", // Keyed collections -"Set", "Map", "WeakSet", "WeakMap", // Structured data -"ArrayBuffer", "SharedArrayBuffer", "Atomics", "DataView", "JSON", // Control abstraction objects -"Promise", "Generator", "GeneratorFunction", "AsyncFunction", // Reflection -"Reflect", "Proxy", // Internationalization -"Intl", // WebAssembly -"WebAssembly"]; -const ERROR_TYPES = ["Error", "EvalError", "InternalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError"]; -const BUILT_IN_GLOBALS = ["setInterval", "setTimeout", "clearInterval", "clearTimeout", "require", "exports", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "unescape"]; -const BUILT_IN_VARIABLES = ["arguments", "this", "super", "console", "window", "document", "localStorage", "module", "global" // Node.js -]; -const BUILT_INS = [].concat(BUILT_IN_GLOBALS, TYPES, ERROR_TYPES); -/* -Language: JavaScript -Description: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions. -Category: common, scripting, web -Website: https://developer.mozilla.org/en-US/docs/Web/JavaScript -*/ - -/** @type LanguageFn */ - -function javascript(hljs) { - const regex = hljs.regex; - /** - * Takes a string like " { - const tag = "', - end: '' - }; // to avoid some special cases inside isTrulyOpeningTag - - const XML_SELF_CLOSING = /<[A-Za-z0-9\\._:-]+\s*\/>/; - const XML_TAG = { - begin: /<[A-Za-z0-9\\._:-]+/, - end: /\/[A-Za-z0-9\\._:-]+>|\/>/, - - /** - * @param {RegExpMatchArray} match - * @param {CallbackResponse} response - */ - isTrulyOpeningTag: (match, response) => { - const afterMatchIndex = match[0].length + match.index; - const nextChar = match.input[afterMatchIndex]; - - if ( // HTML should not include another raw `<` inside a tag - // nested type? - // `>`, etc. - nextChar === "<" || // the , gives away that this is not HTML - // `` - nextChar === ",") { - response.ignoreMatch(); - return; - } // `` - // Quite possibly a tag, lets look for a matching closing tag... - - - if (nextChar === ">") { - // if we cannot find a matching closing tag, then we - // will ignore it - if (!hasClosingTag(match, { - after: afterMatchIndex - })) { - response.ignoreMatch(); - } - } // `` (self-closing) - // handled by simpleSelfClosing rule - // `` - // technically this could be HTML, but it smells like a type - - - let m; - const afterMatch = match.input.substr(afterMatchIndex); // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276 - - if (m = afterMatch.match(/^\s+extends\s+/)) { - if (m.index === 0) { - response.ignoreMatch(); // eslint-disable-next-line no-useless-return - - return; - } - } - } - }; - const KEYWORDS$1 = { - $pattern: IDENT_RE, - keyword: KEYWORDS, - literal: LITERALS, - built_in: BUILT_INS, - "variable.language": BUILT_IN_VARIABLES - }; // https://tc39.es/ecma262/#sec-literals-numeric-literals - - const decimalDigits = '[0-9](_?[0-9])*'; - const frac = `\\.(${decimalDigits})`; // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral - // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals - - const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`; - const NUMBER = { - className: 'number', - variants: [// DecimalLiteral - { - begin: `(\\b(${decimalInteger})((${frac})|\\.)?|(${frac}))` + `[eE][+-]?(${decimalDigits})\\b` - }, { - begin: `\\b(${decimalInteger})\\b((${frac})\\b|\\.)?|(${frac})\\b` - }, // DecimalBigIntegerLiteral - { - begin: `\\b(0|[1-9](_?[0-9])*)n\\b` - }, // NonDecimalIntegerLiteral - { - begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b" - }, { - begin: "\\b0[bB][0-1](_?[0-1])*n?\\b" - }, { - begin: "\\b0[oO][0-7](_?[0-7])*n?\\b" - }, // LegacyOctalIntegerLiteral (does not include underscore separators) - // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals - { - begin: "\\b0[0-7]+n?\\b" - }], - relevance: 0 - }; - const SUBST = { - className: 'subst', - begin: '\\$\\{', - end: '\\}', - keywords: KEYWORDS$1, - contains: [] // defined later - - }; - const HTML_TEMPLATE = { - begin: 'html`', - end: '', - starts: { - end: '`', - returnEnd: false, - contains: [hljs.BACKSLASH_ESCAPE, SUBST], - subLanguage: 'xml' - } - }; - const CSS_TEMPLATE = { - begin: 'css`', - end: '', - starts: { - end: '`', - returnEnd: false, - contains: [hljs.BACKSLASH_ESCAPE, SUBST], - subLanguage: 'css' - } - }; - const TEMPLATE_STRING = { - className: 'string', - begin: '`', - end: '`', - contains: [hljs.BACKSLASH_ESCAPE, SUBST] - }; - const JSDOC_COMMENT = hljs.COMMENT(/\/\*\*(?!\/)/, '\\*/', { - relevance: 0, - contains: [{ - begin: '(?=@[A-Za-z]+)', - relevance: 0, - contains: [{ - className: 'doctag', - begin: '@[A-Za-z]+' - }, { - className: 'type', - begin: '\\{', - end: '\\}', - excludeEnd: true, - excludeBegin: true, - relevance: 0 - }, { - className: 'variable', - begin: IDENT_RE$1 + '(?=\\s*(-)|$)', - endsParent: true, - relevance: 0 - }, // eat spaces (not newlines) so we can find - // types or variables - { - begin: /(?=[^\n])\s/, - relevance: 0 - }] - }] - }); - const COMMENT = { - className: "comment", - variants: [JSDOC_COMMENT, hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE] - }; - const SUBST_INTERNALS = [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, TEMPLATE_STRING, NUMBER // This is intentional: - // See https://github.com/highlightjs/highlight.js/issues/3288 - // hljs.REGEXP_MODE - ]; - SUBST.contains = SUBST_INTERNALS.concat({ - // we need to pair up {} inside our subst to prevent - // it from ending too early by matching another } - begin: /\{/, - end: /\}/, - keywords: KEYWORDS$1, - contains: ["self"].concat(SUBST_INTERNALS) - }); - const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains); - const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([// eat recursive parens in sub expressions - { - begin: /\(/, - end: /\)/, - keywords: KEYWORDS$1, - contains: ["self"].concat(SUBST_AND_COMMENTS) - }]); - const PARAMS = { - className: 'params', - begin: /\(/, - end: /\)/, - excludeBegin: true, - excludeEnd: true, - keywords: KEYWORDS$1, - contains: PARAMS_CONTAINS - }; // ES6 classes - - const CLASS_OR_EXTENDS = { - variants: [// class Car extends vehicle - { - match: [/class/, /\s+/, IDENT_RE$1, /\s+/, /extends/, /\s+/, regex.concat(IDENT_RE$1, "(", regex.concat(/\./, IDENT_RE$1), ")*")], - scope: { - 1: "keyword", - 3: "title.class", - 5: "keyword", - 7: "title.class.inherited" - } - }, // class Car - { - match: [/class/, /\s+/, IDENT_RE$1], - scope: { - 1: "keyword", - 3: "title.class" - } - }] - }; - const CLASS_REFERENCE = { - relevance: 0, - match: regex.either( // Hard coded exceptions - /\bJSON/, // Float32Array, OutT - /\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/, // CSSFactory, CSSFactoryT - /\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/, // FPs, FPsT - /\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/ // P - // single letters are not highlighted - // BLAH - // this will be flagged as a UPPER_CASE_CONSTANT instead - ), - className: "title.class", - keywords: { - _: [// se we still get relevance credit for JS library classes - ...TYPES, ...ERROR_TYPES] - } - }; - const USE_STRICT = { - label: "use_strict", - className: 'meta', - relevance: 10, - begin: /^\s*['"]use (strict|asm)['"]/ - }; - const FUNCTION_DEFINITION = { - variants: [{ - match: [/function/, /\s+/, IDENT_RE$1, /(?=\s*\()/] - }, // anonymous function - { - match: [/function/, /\s*(?=\()/] - }], - className: { - 1: "keyword", - 3: "title.function" - }, - label: "func.def", - contains: [PARAMS], - illegal: /%/ - }; - const UPPER_CASE_CONSTANT = { - relevance: 0, - match: /\b[A-Z][A-Z_0-9]+\b/, - className: "variable.constant" - }; - - function noneOf(list) { - return regex.concat("(?!", list.join("|"), ")"); - } - - const FUNCTION_CALL = { - match: regex.concat(/\b/, noneOf([...BUILT_IN_GLOBALS, "super"]), IDENT_RE$1, regex.lookahead(/\(/)), - className: "title.function", - relevance: 0 - }; - const PROPERTY_ACCESS = { - begin: regex.concat(/\./, regex.lookahead(regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/))), - end: IDENT_RE$1, - excludeBegin: true, - keywords: "prototype", - className: "property", - relevance: 0 - }; - const GETTER_OR_SETTER = { - match: [/get|set/, /\s+/, IDENT_RE$1, /(?=\()/], - className: { - 1: "keyword", - 3: "title.function" - }, - contains: [{ - // eat to avoid empty params - begin: /\(\)/ - }, PARAMS] - }; - const FUNC_LEAD_IN_RE = '(\\(' + '[^()]*(\\(' + '[^()]*(\\(' + '[^()]*' + '\\)[^()]*)*' + '\\)[^()]*)*' + '\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\s*=>'; - const FUNCTION_VARIABLE = { - match: [/const|var|let/, /\s+/, IDENT_RE$1, /\s*/, /=\s*/, /(async\s*)?/, // async is optional - regex.lookahead(FUNC_LEAD_IN_RE)], - keywords: "async", - className: { - 1: "keyword", - 3: "title.function" - }, - contains: [PARAMS] - }; - return { - name: 'Javascript', - aliases: ['js', 'jsx', 'mjs', 'cjs'], - keywords: KEYWORDS$1, - // this will be extended by TypeScript - exports: { - PARAMS_CONTAINS, - CLASS_REFERENCE - }, - illegal: /#(?![$_A-z])/, - contains: [hljs.SHEBANG({ - label: "shebang", - binary: "node", - relevance: 5 - }), USE_STRICT, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, TEMPLATE_STRING, COMMENT, NUMBER, CLASS_REFERENCE, { - className: 'attr', - begin: IDENT_RE$1 + regex.lookahead(':'), - relevance: 0 - }, FUNCTION_VARIABLE, { - // "value" container - begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*', - keywords: 'return throw case', - relevance: 0, - contains: [COMMENT, hljs.REGEXP_MODE, { - className: 'function', - // we have to count the parens to make sure we actually have the - // correct bounding ( ) before the =>. There could be any number of - // sub-expressions inside also surrounded by parens. - begin: FUNC_LEAD_IN_RE, - returnBegin: true, - end: '\\s*=>', - contains: [{ - className: 'params', - variants: [{ - begin: hljs.UNDERSCORE_IDENT_RE, - relevance: 0 - }, { - className: null, - begin: /\(\s*\)/, - skip: true - }, { - begin: /\(/, - end: /\)/, - excludeBegin: true, - excludeEnd: true, - keywords: KEYWORDS$1, - contains: PARAMS_CONTAINS - }] - }] - }, { - // could be a comma delimited list of params to a function call - begin: /,/, - relevance: 0 - }, { - match: /\s+/, - relevance: 0 - }, { - // JSX - variants: [{ - begin: FRAGMENT.begin, - end: FRAGMENT.end - }, { - match: XML_SELF_CLOSING - }, { - begin: XML_TAG.begin, - // we carefully check the opening tag to see if it truly - // is a tag and not a false positive - 'on:begin': XML_TAG.isTrulyOpeningTag, - end: XML_TAG.end - }], - subLanguage: 'xml', - contains: [{ - begin: XML_TAG.begin, - end: XML_TAG.end, - skip: true, - contains: ['self'] - }] - }] - }, FUNCTION_DEFINITION, { - // prevent this from getting swallowed up by function - // since they appear "function like" - beginKeywords: "while if switch catch for" - }, { - // we have to count the parens to make sure we actually have the correct - // bounding ( ). There could be any number of sub-expressions inside - // also surrounded by parens. - begin: '\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE + '\\(' + // first parens - '[^()]*(\\(' + '[^()]*(\\(' + '[^()]*' + '\\)[^()]*)*' + '\\)[^()]*)*' + '\\)\\s*\\{', - // end parens - returnBegin: true, - label: "func.def", - contains: [PARAMS, hljs.inherit(hljs.TITLE_MODE, { - begin: IDENT_RE$1, - className: "title.function" - })] - }, // catch ... so it won't trigger the property rule below - { - match: /\.\.\./, - relevance: 0 - }, PROPERTY_ACCESS, // hack: prevents detection of keywords in some circumstances - // .keyword() - // $keyword = x - { - match: '\\$' + IDENT_RE$1, - relevance: 0 - }, { - match: [/\bconstructor(?=\s*\()/], - className: { - 1: "title.function" - }, - contains: [PARAMS] - }, FUNCTION_CALL, UPPER_CASE_CONSTANT, CLASS_OR_EXTENDS, GETTER_OR_SETTER, { - match: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something` - - }] - }; -} - - - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_highlight_js_es_languages_javascript_js.js.map \ No newline at end of file diff --git a/dist/ng-select2/node_modules_highlight_js_es_languages_javascript_js.js.map b/dist/ng-select2/node_modules_highlight_js_es_languages_javascript_js.js.map deleted file mode 100644 index 516caf9..0000000 --- a/dist/ng-select2/node_modules_highlight_js_es_languages_javascript_js.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_highlight_js_es_languages_javascript_js.js","mappings":"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","sources":["./node_modules/highlight.js/es/languages/javascript.js"],"sourcesContent":["const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\") {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n // ``\n // technically this could be HTML, but it smells like a type\n let m;\n const afterMatch = match.input.substr(afterMatchIndex);\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'Javascript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\nexport { javascript as default };\n"],"names":["IDENT_RE","KEYWORDS","LITERALS","TYPES","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","BUILT_INS","concat","javascript","hljs","regex","hasClosingTag","match","after","tag","slice","pos","input","indexOf","IDENT_RE$1","FRAGMENT","begin","end","XML_SELF_CLOSING","XML_TAG","isTrulyOpeningTag","response","afterMatchIndex","length","index","nextChar","ignoreMatch","m","afterMatch","substr","KEYWORDS$1","$pattern","keyword","literal","built_in","decimalDigits","frac","decimalInteger","NUMBER","className","variants","relevance","SUBST","keywords","contains","HTML_TEMPLATE","starts","returnEnd","BACKSLASH_ESCAPE","subLanguage","CSS_TEMPLATE","TEMPLATE_STRING","JSDOC_COMMENT","COMMENT","excludeEnd","excludeBegin","endsParent","C_BLOCK_COMMENT_MODE","C_LINE_COMMENT_MODE","SUBST_INTERNALS","APOS_STRING_MODE","QUOTE_STRING_MODE","SUBST_AND_COMMENTS","PARAMS_CONTAINS","PARAMS","CLASS_OR_EXTENDS","scope","CLASS_REFERENCE","either","_","USE_STRICT","label","FUNCTION_DEFINITION","illegal","UPPER_CASE_CONSTANT","noneOf","list","join","FUNCTION_CALL","lookahead","PROPERTY_ACCESS","GETTER_OR_SETTER","FUNC_LEAD_IN_RE","UNDERSCORE_IDENT_RE","FUNCTION_VARIABLE","name","aliases","exports","SHEBANG","binary","RE_STARTERS_RE","REGEXP_MODE","returnBegin","skip","beginKeywords","inherit","TITLE_MODE","default"],"sourceRoot":"webpack:///","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/ng-select2/node_modules_highlight_js_es_languages_typescript_js.js b/dist/ng-select2/node_modules_highlight_js_es_languages_typescript_js.js deleted file mode 100644 index fb5fd11..0000000 --- a/dist/ng-select2/node_modules_highlight_js_es_languages_typescript_js.js +++ /dev/null @@ -1,558 +0,0 @@ -"use strict"; -(self["webpackChunkng_select2"] = self["webpackChunkng_select2"] || []).push([["node_modules_highlight_js_es_languages_typescript_js"],{ - -/***/ 5281: -/*!**************************************************************!*\ - !*** ./node_modules/highlight.js/es/languages/typescript.js ***! - \**************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ typescript) -/* harmony export */ }); -const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*'; -const KEYWORDS = ["as", // for exports -"in", "of", "if", "for", "while", "finally", "var", "new", "function", "do", "return", "void", "else", "break", "catch", "instanceof", "with", "throw", "case", "default", "try", "switch", "continue", "typeof", "delete", "let", "yield", "const", "class", // JS handles these with a special rule -// "get", -// "set", -"debugger", "async", "await", "static", "import", "from", "export", "extends"]; -const LITERALS = ["true", "false", "null", "undefined", "NaN", "Infinity"]; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects - -const TYPES = [// Fundamental objects -"Object", "Function", "Boolean", "Symbol", // numbers and dates -"Math", "Date", "Number", "BigInt", // text -"String", "RegExp", // Indexed collections -"Array", "Float32Array", "Float64Array", "Int8Array", "Uint8Array", "Uint8ClampedArray", "Int16Array", "Int32Array", "Uint16Array", "Uint32Array", "BigInt64Array", "BigUint64Array", // Keyed collections -"Set", "Map", "WeakSet", "WeakMap", // Structured data -"ArrayBuffer", "SharedArrayBuffer", "Atomics", "DataView", "JSON", // Control abstraction objects -"Promise", "Generator", "GeneratorFunction", "AsyncFunction", // Reflection -"Reflect", "Proxy", // Internationalization -"Intl", // WebAssembly -"WebAssembly"]; -const ERROR_TYPES = ["Error", "EvalError", "InternalError", "RangeError", "ReferenceError", "SyntaxError", "TypeError", "URIError"]; -const BUILT_IN_GLOBALS = ["setInterval", "setTimeout", "clearInterval", "clearTimeout", "require", "exports", "eval", "isFinite", "isNaN", "parseFloat", "parseInt", "decodeURI", "decodeURIComponent", "encodeURI", "encodeURIComponent", "escape", "unescape"]; -const BUILT_IN_VARIABLES = ["arguments", "this", "super", "console", "window", "document", "localStorage", "module", "global" // Node.js -]; -const BUILT_INS = [].concat(BUILT_IN_GLOBALS, TYPES, ERROR_TYPES); -/* -Language: JavaScript -Description: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions. -Category: common, scripting, web -Website: https://developer.mozilla.org/en-US/docs/Web/JavaScript -*/ - -/** @type LanguageFn */ - -function javascript(hljs) { - const regex = hljs.regex; - /** - * Takes a string like " { - const tag = "', - end: '' - }; // to avoid some special cases inside isTrulyOpeningTag - - const XML_SELF_CLOSING = /<[A-Za-z0-9\\._:-]+\s*\/>/; - const XML_TAG = { - begin: /<[A-Za-z0-9\\._:-]+/, - end: /\/[A-Za-z0-9\\._:-]+>|\/>/, - - /** - * @param {RegExpMatchArray} match - * @param {CallbackResponse} response - */ - isTrulyOpeningTag: (match, response) => { - const afterMatchIndex = match[0].length + match.index; - const nextChar = match.input[afterMatchIndex]; - - if ( // HTML should not include another raw `<` inside a tag - // nested type? - // `>`, etc. - nextChar === "<" || // the , gives away that this is not HTML - // `` - nextChar === ",") { - response.ignoreMatch(); - return; - } // `` - // Quite possibly a tag, lets look for a matching closing tag... - - - if (nextChar === ">") { - // if we cannot find a matching closing tag, then we - // will ignore it - if (!hasClosingTag(match, { - after: afterMatchIndex - })) { - response.ignoreMatch(); - } - } // `` (self-closing) - // handled by simpleSelfClosing rule - // `` - // technically this could be HTML, but it smells like a type - - - let m; - const afterMatch = match.input.substr(afterMatchIndex); // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276 - - if (m = afterMatch.match(/^\s+extends\s+/)) { - if (m.index === 0) { - response.ignoreMatch(); // eslint-disable-next-line no-useless-return - - return; - } - } - } - }; - const KEYWORDS$1 = { - $pattern: IDENT_RE, - keyword: KEYWORDS, - literal: LITERALS, - built_in: BUILT_INS, - "variable.language": BUILT_IN_VARIABLES - }; // https://tc39.es/ecma262/#sec-literals-numeric-literals - - const decimalDigits = '[0-9](_?[0-9])*'; - const frac = `\\.(${decimalDigits})`; // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral - // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals - - const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`; - const NUMBER = { - className: 'number', - variants: [// DecimalLiteral - { - begin: `(\\b(${decimalInteger})((${frac})|\\.)?|(${frac}))` + `[eE][+-]?(${decimalDigits})\\b` - }, { - begin: `\\b(${decimalInteger})\\b((${frac})\\b|\\.)?|(${frac})\\b` - }, // DecimalBigIntegerLiteral - { - begin: `\\b(0|[1-9](_?[0-9])*)n\\b` - }, // NonDecimalIntegerLiteral - { - begin: "\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b" - }, { - begin: "\\b0[bB][0-1](_?[0-1])*n?\\b" - }, { - begin: "\\b0[oO][0-7](_?[0-7])*n?\\b" - }, // LegacyOctalIntegerLiteral (does not include underscore separators) - // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals - { - begin: "\\b0[0-7]+n?\\b" - }], - relevance: 0 - }; - const SUBST = { - className: 'subst', - begin: '\\$\\{', - end: '\\}', - keywords: KEYWORDS$1, - contains: [] // defined later - - }; - const HTML_TEMPLATE = { - begin: 'html`', - end: '', - starts: { - end: '`', - returnEnd: false, - contains: [hljs.BACKSLASH_ESCAPE, SUBST], - subLanguage: 'xml' - } - }; - const CSS_TEMPLATE = { - begin: 'css`', - end: '', - starts: { - end: '`', - returnEnd: false, - contains: [hljs.BACKSLASH_ESCAPE, SUBST], - subLanguage: 'css' - } - }; - const TEMPLATE_STRING = { - className: 'string', - begin: '`', - end: '`', - contains: [hljs.BACKSLASH_ESCAPE, SUBST] - }; - const JSDOC_COMMENT = hljs.COMMENT(/\/\*\*(?!\/)/, '\\*/', { - relevance: 0, - contains: [{ - begin: '(?=@[A-Za-z]+)', - relevance: 0, - contains: [{ - className: 'doctag', - begin: '@[A-Za-z]+' - }, { - className: 'type', - begin: '\\{', - end: '\\}', - excludeEnd: true, - excludeBegin: true, - relevance: 0 - }, { - className: 'variable', - begin: IDENT_RE$1 + '(?=\\s*(-)|$)', - endsParent: true, - relevance: 0 - }, // eat spaces (not newlines) so we can find - // types or variables - { - begin: /(?=[^\n])\s/, - relevance: 0 - }] - }] - }); - const COMMENT = { - className: "comment", - variants: [JSDOC_COMMENT, hljs.C_BLOCK_COMMENT_MODE, hljs.C_LINE_COMMENT_MODE] - }; - const SUBST_INTERNALS = [hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, TEMPLATE_STRING, NUMBER // This is intentional: - // See https://github.com/highlightjs/highlight.js/issues/3288 - // hljs.REGEXP_MODE - ]; - SUBST.contains = SUBST_INTERNALS.concat({ - // we need to pair up {} inside our subst to prevent - // it from ending too early by matching another } - begin: /\{/, - end: /\}/, - keywords: KEYWORDS$1, - contains: ["self"].concat(SUBST_INTERNALS) - }); - const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains); - const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([// eat recursive parens in sub expressions - { - begin: /\(/, - end: /\)/, - keywords: KEYWORDS$1, - contains: ["self"].concat(SUBST_AND_COMMENTS) - }]); - const PARAMS = { - className: 'params', - begin: /\(/, - end: /\)/, - excludeBegin: true, - excludeEnd: true, - keywords: KEYWORDS$1, - contains: PARAMS_CONTAINS - }; // ES6 classes - - const CLASS_OR_EXTENDS = { - variants: [// class Car extends vehicle - { - match: [/class/, /\s+/, IDENT_RE$1, /\s+/, /extends/, /\s+/, regex.concat(IDENT_RE$1, "(", regex.concat(/\./, IDENT_RE$1), ")*")], - scope: { - 1: "keyword", - 3: "title.class", - 5: "keyword", - 7: "title.class.inherited" - } - }, // class Car - { - match: [/class/, /\s+/, IDENT_RE$1], - scope: { - 1: "keyword", - 3: "title.class" - } - }] - }; - const CLASS_REFERENCE = { - relevance: 0, - match: regex.either( // Hard coded exceptions - /\bJSON/, // Float32Array, OutT - /\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/, // CSSFactory, CSSFactoryT - /\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/, // FPs, FPsT - /\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/ // P - // single letters are not highlighted - // BLAH - // this will be flagged as a UPPER_CASE_CONSTANT instead - ), - className: "title.class", - keywords: { - _: [// se we still get relevance credit for JS library classes - ...TYPES, ...ERROR_TYPES] - } - }; - const USE_STRICT = { - label: "use_strict", - className: 'meta', - relevance: 10, - begin: /^\s*['"]use (strict|asm)['"]/ - }; - const FUNCTION_DEFINITION = { - variants: [{ - match: [/function/, /\s+/, IDENT_RE$1, /(?=\s*\()/] - }, // anonymous function - { - match: [/function/, /\s*(?=\()/] - }], - className: { - 1: "keyword", - 3: "title.function" - }, - label: "func.def", - contains: [PARAMS], - illegal: /%/ - }; - const UPPER_CASE_CONSTANT = { - relevance: 0, - match: /\b[A-Z][A-Z_0-9]+\b/, - className: "variable.constant" - }; - - function noneOf(list) { - return regex.concat("(?!", list.join("|"), ")"); - } - - const FUNCTION_CALL = { - match: regex.concat(/\b/, noneOf([...BUILT_IN_GLOBALS, "super"]), IDENT_RE$1, regex.lookahead(/\(/)), - className: "title.function", - relevance: 0 - }; - const PROPERTY_ACCESS = { - begin: regex.concat(/\./, regex.lookahead(regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/))), - end: IDENT_RE$1, - excludeBegin: true, - keywords: "prototype", - className: "property", - relevance: 0 - }; - const GETTER_OR_SETTER = { - match: [/get|set/, /\s+/, IDENT_RE$1, /(?=\()/], - className: { - 1: "keyword", - 3: "title.function" - }, - contains: [{ - // eat to avoid empty params - begin: /\(\)/ - }, PARAMS] - }; - const FUNC_LEAD_IN_RE = '(\\(' + '[^()]*(\\(' + '[^()]*(\\(' + '[^()]*' + '\\)[^()]*)*' + '\\)[^()]*)*' + '\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\s*=>'; - const FUNCTION_VARIABLE = { - match: [/const|var|let/, /\s+/, IDENT_RE$1, /\s*/, /=\s*/, /(async\s*)?/, // async is optional - regex.lookahead(FUNC_LEAD_IN_RE)], - keywords: "async", - className: { - 1: "keyword", - 3: "title.function" - }, - contains: [PARAMS] - }; - return { - name: 'Javascript', - aliases: ['js', 'jsx', 'mjs', 'cjs'], - keywords: KEYWORDS$1, - // this will be extended by TypeScript - exports: { - PARAMS_CONTAINS, - CLASS_REFERENCE - }, - illegal: /#(?![$_A-z])/, - contains: [hljs.SHEBANG({ - label: "shebang", - binary: "node", - relevance: 5 - }), USE_STRICT, hljs.APOS_STRING_MODE, hljs.QUOTE_STRING_MODE, HTML_TEMPLATE, CSS_TEMPLATE, TEMPLATE_STRING, COMMENT, NUMBER, CLASS_REFERENCE, { - className: 'attr', - begin: IDENT_RE$1 + regex.lookahead(':'), - relevance: 0 - }, FUNCTION_VARIABLE, { - // "value" container - begin: '(' + hljs.RE_STARTERS_RE + '|\\b(case|return|throw)\\b)\\s*', - keywords: 'return throw case', - relevance: 0, - contains: [COMMENT, hljs.REGEXP_MODE, { - className: 'function', - // we have to count the parens to make sure we actually have the - // correct bounding ( ) before the =>. There could be any number of - // sub-expressions inside also surrounded by parens. - begin: FUNC_LEAD_IN_RE, - returnBegin: true, - end: '\\s*=>', - contains: [{ - className: 'params', - variants: [{ - begin: hljs.UNDERSCORE_IDENT_RE, - relevance: 0 - }, { - className: null, - begin: /\(\s*\)/, - skip: true - }, { - begin: /\(/, - end: /\)/, - excludeBegin: true, - excludeEnd: true, - keywords: KEYWORDS$1, - contains: PARAMS_CONTAINS - }] - }] - }, { - // could be a comma delimited list of params to a function call - begin: /,/, - relevance: 0 - }, { - match: /\s+/, - relevance: 0 - }, { - // JSX - variants: [{ - begin: FRAGMENT.begin, - end: FRAGMENT.end - }, { - match: XML_SELF_CLOSING - }, { - begin: XML_TAG.begin, - // we carefully check the opening tag to see if it truly - // is a tag and not a false positive - 'on:begin': XML_TAG.isTrulyOpeningTag, - end: XML_TAG.end - }], - subLanguage: 'xml', - contains: [{ - begin: XML_TAG.begin, - end: XML_TAG.end, - skip: true, - contains: ['self'] - }] - }] - }, FUNCTION_DEFINITION, { - // prevent this from getting swallowed up by function - // since they appear "function like" - beginKeywords: "while if switch catch for" - }, { - // we have to count the parens to make sure we actually have the correct - // bounding ( ). There could be any number of sub-expressions inside - // also surrounded by parens. - begin: '\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE + '\\(' + // first parens - '[^()]*(\\(' + '[^()]*(\\(' + '[^()]*' + '\\)[^()]*)*' + '\\)[^()]*)*' + '\\)\\s*\\{', - // end parens - returnBegin: true, - label: "func.def", - contains: [PARAMS, hljs.inherit(hljs.TITLE_MODE, { - begin: IDENT_RE$1, - className: "title.function" - })] - }, // catch ... so it won't trigger the property rule below - { - match: /\.\.\./, - relevance: 0 - }, PROPERTY_ACCESS, // hack: prevents detection of keywords in some circumstances - // .keyword() - // $keyword = x - { - match: '\\$' + IDENT_RE$1, - relevance: 0 - }, { - match: [/\bconstructor(?=\s*\()/], - className: { - 1: "title.function" - }, - contains: [PARAMS] - }, FUNCTION_CALL, UPPER_CASE_CONSTANT, CLASS_OR_EXTENDS, GETTER_OR_SETTER, { - match: /\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something` - - }] - }; -} -/* -Language: TypeScript -Author: Panu Horsmalahti -Contributors: Ike Ku -Description: TypeScript is a strict superset of JavaScript -Website: https://www.typescriptlang.org -Category: common, scripting -*/ - -/** @type LanguageFn */ - - -function typescript(hljs) { - const tsLanguage = javascript(hljs); - const IDENT_RE$1 = IDENT_RE; - const TYPES = ["any", "void", "number", "boolean", "string", "object", "never", "enum"]; - const NAMESPACE = { - beginKeywords: 'namespace', - end: /\{/, - excludeEnd: true, - contains: [tsLanguage.exports.CLASS_REFERENCE] - }; - const INTERFACE = { - beginKeywords: 'interface', - end: /\{/, - excludeEnd: true, - keywords: { - keyword: 'interface extends', - built_in: TYPES - }, - contains: [tsLanguage.exports.CLASS_REFERENCE] - }; - const USE_STRICT = { - className: 'meta', - relevance: 10, - begin: /^\s*['"]use strict['"]/ - }; - const TS_SPECIFIC_KEYWORDS = ["type", "namespace", "typedef", "interface", "public", "private", "protected", "implements", "declare", "abstract", "readonly"]; - const KEYWORDS$1 = { - $pattern: IDENT_RE, - keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS), - literal: LITERALS, - built_in: BUILT_INS.concat(TYPES), - "variable.language": BUILT_IN_VARIABLES - }; - const DECORATOR = { - className: 'meta', - begin: '@' + IDENT_RE$1 - }; - - const swapMode = (mode, label, replacement) => { - const indx = mode.contains.findIndex(m => m.label === label); - - if (indx === -1) { - throw new Error("can not find mode to replace"); - } - - mode.contains.splice(indx, 1, replacement); - }; // this should update anywhere keywords is used since - // it will be the same actual JS object - - - Object.assign(tsLanguage.keywords, KEYWORDS$1); - tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR); - tsLanguage.contains = tsLanguage.contains.concat([DECORATOR, NAMESPACE, INTERFACE]); // TS gets a simpler shebang rule than JS - - swapMode(tsLanguage, "shebang", hljs.SHEBANG()); // JS use strict rule purposely excludes `asm` which makes no sense - - swapMode(tsLanguage, "use_strict", USE_STRICT); - const functionDeclaration = tsLanguage.contains.find(m => m.label === "func.def"); - functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript - - Object.assign(tsLanguage, { - name: 'TypeScript', - aliases: ['ts', 'tsx'] - }); - return tsLanguage; -} - - - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_highlight_js_es_languages_typescript_js.js.map \ No newline at end of file diff --git a/dist/ng-select2/node_modules_highlight_js_es_languages_typescript_js.js.map b/dist/ng-select2/node_modules_highlight_js_es_languages_typescript_js.js.map deleted file mode 100644 index 1f08118..0000000 --- a/dist/ng-select2/node_modules_highlight_js_es_languages_typescript_js.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_highlight_js_es_languages_typescript_js.js","mappings":"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","sources":["./node_modules/highlight.js/es/languages/typescript.js"],"sourcesContent":["const IDENT_RE = '[A-Za-z$_][0-9A-Za-z$_]*';\nconst KEYWORDS = [\n \"as\", // for exports\n \"in\",\n \"of\",\n \"if\",\n \"for\",\n \"while\",\n \"finally\",\n \"var\",\n \"new\",\n \"function\",\n \"do\",\n \"return\",\n \"void\",\n \"else\",\n \"break\",\n \"catch\",\n \"instanceof\",\n \"with\",\n \"throw\",\n \"case\",\n \"default\",\n \"try\",\n \"switch\",\n \"continue\",\n \"typeof\",\n \"delete\",\n \"let\",\n \"yield\",\n \"const\",\n \"class\",\n // JS handles these with a special rule\n // \"get\",\n // \"set\",\n \"debugger\",\n \"async\",\n \"await\",\n \"static\",\n \"import\",\n \"from\",\n \"export\",\n \"extends\"\n];\nconst LITERALS = [\n \"true\",\n \"false\",\n \"null\",\n \"undefined\",\n \"NaN\",\n \"Infinity\"\n];\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects\nconst TYPES = [\n // Fundamental objects\n \"Object\",\n \"Function\",\n \"Boolean\",\n \"Symbol\",\n // numbers and dates\n \"Math\",\n \"Date\",\n \"Number\",\n \"BigInt\",\n // text\n \"String\",\n \"RegExp\",\n // Indexed collections\n \"Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Uint8ClampedArray\",\n \"Int16Array\",\n \"Int32Array\",\n \"Uint16Array\",\n \"Uint32Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // Keyed collections\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n // Structured data\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"Atomics\",\n \"DataView\",\n \"JSON\",\n // Control abstraction objects\n \"Promise\",\n \"Generator\",\n \"GeneratorFunction\",\n \"AsyncFunction\",\n // Reflection\n \"Reflect\",\n \"Proxy\",\n // Internationalization\n \"Intl\",\n // WebAssembly\n \"WebAssembly\"\n];\n\nconst ERROR_TYPES = [\n \"Error\",\n \"EvalError\",\n \"InternalError\",\n \"RangeError\",\n \"ReferenceError\",\n \"SyntaxError\",\n \"TypeError\",\n \"URIError\"\n];\n\nconst BUILT_IN_GLOBALS = [\n \"setInterval\",\n \"setTimeout\",\n \"clearInterval\",\n \"clearTimeout\",\n\n \"require\",\n \"exports\",\n\n \"eval\",\n \"isFinite\",\n \"isNaN\",\n \"parseFloat\",\n \"parseInt\",\n \"decodeURI\",\n \"decodeURIComponent\",\n \"encodeURI\",\n \"encodeURIComponent\",\n \"escape\",\n \"unescape\"\n];\n\nconst BUILT_IN_VARIABLES = [\n \"arguments\",\n \"this\",\n \"super\",\n \"console\",\n \"window\",\n \"document\",\n \"localStorage\",\n \"module\",\n \"global\" // Node.js\n];\n\nconst BUILT_INS = [].concat(\n BUILT_IN_GLOBALS,\n TYPES,\n ERROR_TYPES\n);\n\n/*\nLanguage: JavaScript\nDescription: JavaScript (JS) is a lightweight, interpreted, or just-in-time compiled programming language with first-class functions.\nCategory: common, scripting, web\nWebsite: https://developer.mozilla.org/en-US/docs/Web/JavaScript\n*/\n\n/** @type LanguageFn */\nfunction javascript(hljs) {\n const regex = hljs.regex;\n /**\n * Takes a string like \" {\n const tag = \"',\n end: ''\n };\n // to avoid some special cases inside isTrulyOpeningTag\n const XML_SELF_CLOSING = /<[A-Za-z0-9\\\\._:-]+\\s*\\/>/;\n const XML_TAG = {\n begin: /<[A-Za-z0-9\\\\._:-]+/,\n end: /\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,\n /**\n * @param {RegExpMatchArray} match\n * @param {CallbackResponse} response\n */\n isTrulyOpeningTag: (match, response) => {\n const afterMatchIndex = match[0].length + match.index;\n const nextChar = match.input[afterMatchIndex];\n if (\n // HTML should not include another raw `<` inside a tag\n // nested type?\n // `>`, etc.\n nextChar === \"<\" ||\n // the , gives away that this is not HTML\n // ``\n nextChar === \",\") {\n response.ignoreMatch();\n return;\n }\n\n // ``\n // Quite possibly a tag, lets look for a matching closing tag...\n if (nextChar === \">\") {\n // if we cannot find a matching closing tag, then we\n // will ignore it\n if (!hasClosingTag(match, { after: afterMatchIndex })) {\n response.ignoreMatch();\n }\n }\n\n // `` (self-closing)\n // handled by simpleSelfClosing rule\n\n // ``\n // technically this could be HTML, but it smells like a type\n let m;\n const afterMatch = match.input.substr(afterMatchIndex);\n // NOTE: This is ugh, but added specifically for https://github.com/highlightjs/highlight.js/issues/3276\n if ((m = afterMatch.match(/^\\s+extends\\s+/))) {\n if (m.index === 0) {\n response.ignoreMatch();\n // eslint-disable-next-line no-useless-return\n return;\n }\n }\n }\n };\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS,\n literal: LITERALS,\n built_in: BUILT_INS,\n \"variable.language\": BUILT_IN_VARIABLES\n };\n\n // https://tc39.es/ecma262/#sec-literals-numeric-literals\n const decimalDigits = '[0-9](_?[0-9])*';\n const frac = `\\\\.(${decimalDigits})`;\n // DecimalIntegerLiteral, including Annex B NonOctalDecimalIntegerLiteral\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n const decimalInteger = `0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`;\n const NUMBER = {\n className: 'number',\n variants: [\n // DecimalLiteral\n { begin: `(\\\\b(${decimalInteger})((${frac})|\\\\.)?|(${frac}))` +\n `[eE][+-]?(${decimalDigits})\\\\b` },\n { begin: `\\\\b(${decimalInteger})\\\\b((${frac})\\\\b|\\\\.)?|(${frac})\\\\b` },\n\n // DecimalBigIntegerLiteral\n { begin: `\\\\b(0|[1-9](_?[0-9])*)n\\\\b` },\n\n // NonDecimalIntegerLiteral\n { begin: \"\\\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\\\b\" },\n { begin: \"\\\\b0[bB][0-1](_?[0-1])*n?\\\\b\" },\n { begin: \"\\\\b0[oO][0-7](_?[0-7])*n?\\\\b\" },\n\n // LegacyOctalIntegerLiteral (does not include underscore separators)\n // https://tc39.es/ecma262/#sec-additional-syntax-numeric-literals\n { begin: \"\\\\b0[0-7]+n?\\\\b\" },\n ],\n relevance: 0\n };\n\n const SUBST = {\n className: 'subst',\n begin: '\\\\$\\\\{',\n end: '\\\\}',\n keywords: KEYWORDS$1,\n contains: [] // defined later\n };\n const HTML_TEMPLATE = {\n begin: 'html`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'xml'\n }\n };\n const CSS_TEMPLATE = {\n begin: 'css`',\n end: '',\n starts: {\n end: '`',\n returnEnd: false,\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ],\n subLanguage: 'css'\n }\n };\n const TEMPLATE_STRING = {\n className: 'string',\n begin: '`',\n end: '`',\n contains: [\n hljs.BACKSLASH_ESCAPE,\n SUBST\n ]\n };\n const JSDOC_COMMENT = hljs.COMMENT(\n /\\/\\*\\*(?!\\/)/,\n '\\\\*/',\n {\n relevance: 0,\n contains: [\n {\n begin: '(?=@[A-Za-z]+)',\n relevance: 0,\n contains: [\n {\n className: 'doctag',\n begin: '@[A-Za-z]+'\n },\n {\n className: 'type',\n begin: '\\\\{',\n end: '\\\\}',\n excludeEnd: true,\n excludeBegin: true,\n relevance: 0\n },\n {\n className: 'variable',\n begin: IDENT_RE$1 + '(?=\\\\s*(-)|$)',\n endsParent: true,\n relevance: 0\n },\n // eat spaces (not newlines) so we can find\n // types or variables\n {\n begin: /(?=[^\\n])\\s/,\n relevance: 0\n }\n ]\n }\n ]\n }\n );\n const COMMENT = {\n className: \"comment\",\n variants: [\n JSDOC_COMMENT,\n hljs.C_BLOCK_COMMENT_MODE,\n hljs.C_LINE_COMMENT_MODE\n ]\n };\n const SUBST_INTERNALS = [\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n NUMBER,\n // This is intentional:\n // See https://github.com/highlightjs/highlight.js/issues/3288\n // hljs.REGEXP_MODE\n ];\n SUBST.contains = SUBST_INTERNALS\n .concat({\n // we need to pair up {} inside our subst to prevent\n // it from ending too early by matching another }\n begin: /\\{/,\n end: /\\}/,\n keywords: KEYWORDS$1,\n contains: [\n \"self\"\n ].concat(SUBST_INTERNALS)\n });\n const SUBST_AND_COMMENTS = [].concat(COMMENT, SUBST.contains);\n const PARAMS_CONTAINS = SUBST_AND_COMMENTS.concat([\n // eat recursive parens in sub expressions\n {\n begin: /\\(/,\n end: /\\)/,\n keywords: KEYWORDS$1,\n contains: [\"self\"].concat(SUBST_AND_COMMENTS)\n }\n ]);\n const PARAMS = {\n className: 'params',\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n };\n\n // ES6 classes\n const CLASS_OR_EXTENDS = {\n variants: [\n // class Car extends vehicle\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1,\n /\\s+/,\n /extends/,\n /\\s+/,\n regex.concat(IDENT_RE$1, \"(\", regex.concat(/\\./, IDENT_RE$1), \")*\")\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\",\n 5: \"keyword\",\n 7: \"title.class.inherited\"\n }\n },\n // class Car\n {\n match: [\n /class/,\n /\\s+/,\n IDENT_RE$1\n ],\n scope: {\n 1: \"keyword\",\n 3: \"title.class\"\n }\n },\n\n ]\n };\n\n const CLASS_REFERENCE = {\n relevance: 0,\n match:\n regex.either(\n // Hard coded exceptions\n /\\bJSON/,\n // Float32Array, OutT\n /\\b[A-Z][a-z]+([A-Z][a-z]*|\\d)*/,\n // CSSFactory, CSSFactoryT\n /\\b[A-Z]{2,}([A-Z][a-z]+|\\d)+([A-Z][a-z]*)*/,\n // FPs, FPsT\n /\\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\\d)*([A-Z][a-z]*)*/,\n // P\n // single letters are not highlighted\n // BLAH\n // this will be flagged as a UPPER_CASE_CONSTANT instead\n ),\n className: \"title.class\",\n keywords: {\n _: [\n // se we still get relevance credit for JS library classes\n ...TYPES,\n ...ERROR_TYPES\n ]\n }\n };\n\n const USE_STRICT = {\n label: \"use_strict\",\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use (strict|asm)['\"]/\n };\n\n const FUNCTION_DEFINITION = {\n variants: [\n {\n match: [\n /function/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\s*\\()/\n ]\n },\n // anonymous function\n {\n match: [\n /function/,\n /\\s*(?=\\()/\n ]\n }\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n label: \"func.def\",\n contains: [ PARAMS ],\n illegal: /%/\n };\n\n const UPPER_CASE_CONSTANT = {\n relevance: 0,\n match: /\\b[A-Z][A-Z_0-9]+\\b/,\n className: \"variable.constant\"\n };\n\n function noneOf(list) {\n return regex.concat(\"(?!\", list.join(\"|\"), \")\");\n }\n\n const FUNCTION_CALL = {\n match: regex.concat(\n /\\b/,\n noneOf([\n ...BUILT_IN_GLOBALS,\n \"super\"\n ]),\n IDENT_RE$1, regex.lookahead(/\\(/)),\n className: \"title.function\",\n relevance: 0\n };\n\n const PROPERTY_ACCESS = {\n begin: regex.concat(/\\./, regex.lookahead(\n regex.concat(IDENT_RE$1, /(?![0-9A-Za-z$_(])/)\n )),\n end: IDENT_RE$1,\n excludeBegin: true,\n keywords: \"prototype\",\n className: \"property\",\n relevance: 0\n };\n\n const GETTER_OR_SETTER = {\n match: [\n /get|set/,\n /\\s+/,\n IDENT_RE$1,\n /(?=\\()/\n ],\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n { // eat to avoid empty params\n begin: /\\(\\)/\n },\n PARAMS\n ]\n };\n\n const FUNC_LEAD_IN_RE = '(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)|' + hljs.UNDERSCORE_IDENT_RE + ')\\\\s*=>';\n\n const FUNCTION_VARIABLE = {\n match: [\n /const|var|let/, /\\s+/,\n IDENT_RE$1, /\\s*/,\n /=\\s*/,\n /(async\\s*)?/, // async is optional\n regex.lookahead(FUNC_LEAD_IN_RE)\n ],\n keywords: \"async\",\n className: {\n 1: \"keyword\",\n 3: \"title.function\"\n },\n contains: [\n PARAMS\n ]\n };\n\n return {\n name: 'Javascript',\n aliases: ['js', 'jsx', 'mjs', 'cjs'],\n keywords: KEYWORDS$1,\n // this will be extended by TypeScript\n exports: { PARAMS_CONTAINS, CLASS_REFERENCE },\n illegal: /#(?![$_A-z])/,\n contains: [\n hljs.SHEBANG({\n label: \"shebang\",\n binary: \"node\",\n relevance: 5\n }),\n USE_STRICT,\n hljs.APOS_STRING_MODE,\n hljs.QUOTE_STRING_MODE,\n HTML_TEMPLATE,\n CSS_TEMPLATE,\n TEMPLATE_STRING,\n COMMENT,\n NUMBER,\n CLASS_REFERENCE,\n {\n className: 'attr',\n begin: IDENT_RE$1 + regex.lookahead(':'),\n relevance: 0\n },\n FUNCTION_VARIABLE,\n { // \"value\" container\n begin: '(' + hljs.RE_STARTERS_RE + '|\\\\b(case|return|throw)\\\\b)\\\\s*',\n keywords: 'return throw case',\n relevance: 0,\n contains: [\n COMMENT,\n hljs.REGEXP_MODE,\n {\n className: 'function',\n // we have to count the parens to make sure we actually have the\n // correct bounding ( ) before the =>. There could be any number of\n // sub-expressions inside also surrounded by parens.\n begin: FUNC_LEAD_IN_RE,\n returnBegin: true,\n end: '\\\\s*=>',\n contains: [\n {\n className: 'params',\n variants: [\n {\n begin: hljs.UNDERSCORE_IDENT_RE,\n relevance: 0\n },\n {\n className: null,\n begin: /\\(\\s*\\)/,\n skip: true\n },\n {\n begin: /\\(/,\n end: /\\)/,\n excludeBegin: true,\n excludeEnd: true,\n keywords: KEYWORDS$1,\n contains: PARAMS_CONTAINS\n }\n ]\n }\n ]\n },\n { // could be a comma delimited list of params to a function call\n begin: /,/,\n relevance: 0\n },\n {\n match: /\\s+/,\n relevance: 0\n },\n { // JSX\n variants: [\n { begin: FRAGMENT.begin, end: FRAGMENT.end },\n { match: XML_SELF_CLOSING },\n {\n begin: XML_TAG.begin,\n // we carefully check the opening tag to see if it truly\n // is a tag and not a false positive\n 'on:begin': XML_TAG.isTrulyOpeningTag,\n end: XML_TAG.end\n }\n ],\n subLanguage: 'xml',\n contains: [\n {\n begin: XML_TAG.begin,\n end: XML_TAG.end,\n skip: true,\n contains: ['self']\n }\n ]\n }\n ],\n },\n FUNCTION_DEFINITION,\n {\n // prevent this from getting swallowed up by function\n // since they appear \"function like\"\n beginKeywords: \"while if switch catch for\"\n },\n {\n // we have to count the parens to make sure we actually have the correct\n // bounding ( ). There could be any number of sub-expressions inside\n // also surrounded by parens.\n begin: '\\\\b(?!function)' + hljs.UNDERSCORE_IDENT_RE +\n '\\\\(' + // first parens\n '[^()]*(\\\\(' +\n '[^()]*(\\\\(' +\n '[^()]*' +\n '\\\\)[^()]*)*' +\n '\\\\)[^()]*)*' +\n '\\\\)\\\\s*\\\\{', // end parens\n returnBegin:true,\n label: \"func.def\",\n contains: [\n PARAMS,\n hljs.inherit(hljs.TITLE_MODE, { begin: IDENT_RE$1, className: \"title.function\" })\n ]\n },\n // catch ... so it won't trigger the property rule below\n {\n match: /\\.\\.\\./,\n relevance: 0\n },\n PROPERTY_ACCESS,\n // hack: prevents detection of keywords in some circumstances\n // .keyword()\n // $keyword = x\n {\n match: '\\\\$' + IDENT_RE$1,\n relevance: 0\n },\n {\n match: [ /\\bconstructor(?=\\s*\\()/ ],\n className: { 1: \"title.function\" },\n contains: [ PARAMS ]\n },\n FUNCTION_CALL,\n UPPER_CASE_CONSTANT,\n CLASS_OR_EXTENDS,\n GETTER_OR_SETTER,\n {\n match: /\\$[(.]/ // relevance booster for a pattern common to JS libs: `$(something)` and `$.something`\n }\n ]\n };\n}\n\n/*\nLanguage: TypeScript\nAuthor: Panu Horsmalahti \nContributors: Ike Ku \nDescription: TypeScript is a strict superset of JavaScript\nWebsite: https://www.typescriptlang.org\nCategory: common, scripting\n*/\n\n/** @type LanguageFn */\nfunction typescript(hljs) {\n const tsLanguage = javascript(hljs);\n\n const IDENT_RE$1 = IDENT_RE;\n const TYPES = [\n \"any\",\n \"void\",\n \"number\",\n \"boolean\",\n \"string\",\n \"object\",\n \"never\",\n \"enum\"\n ];\n const NAMESPACE = {\n beginKeywords: 'namespace',\n end: /\\{/,\n excludeEnd: true,\n contains: [\n tsLanguage.exports.CLASS_REFERENCE\n ]\n };\n const INTERFACE = {\n beginKeywords: 'interface',\n end: /\\{/,\n excludeEnd: true,\n keywords: {\n keyword: 'interface extends',\n built_in: TYPES\n },\n contains: [\n tsLanguage.exports.CLASS_REFERENCE\n ]\n };\n const USE_STRICT = {\n className: 'meta',\n relevance: 10,\n begin: /^\\s*['\"]use strict['\"]/\n };\n const TS_SPECIFIC_KEYWORDS = [\n \"type\",\n \"namespace\",\n \"typedef\",\n \"interface\",\n \"public\",\n \"private\",\n \"protected\",\n \"implements\",\n \"declare\",\n \"abstract\",\n \"readonly\"\n ];\n const KEYWORDS$1 = {\n $pattern: IDENT_RE,\n keyword: KEYWORDS.concat(TS_SPECIFIC_KEYWORDS),\n literal: LITERALS,\n built_in: BUILT_INS.concat(TYPES),\n \"variable.language\": BUILT_IN_VARIABLES\n };\n const DECORATOR = {\n className: 'meta',\n begin: '@' + IDENT_RE$1,\n };\n\n const swapMode = (mode, label, replacement) => {\n const indx = mode.contains.findIndex(m => m.label === label);\n if (indx === -1) { throw new Error(\"can not find mode to replace\"); }\n mode.contains.splice(indx, 1, replacement);\n };\n\n\n // this should update anywhere keywords is used since\n // it will be the same actual JS object\n Object.assign(tsLanguage.keywords, KEYWORDS$1);\n\n tsLanguage.exports.PARAMS_CONTAINS.push(DECORATOR);\n tsLanguage.contains = tsLanguage.contains.concat([\n DECORATOR,\n NAMESPACE,\n INTERFACE,\n ]);\n\n // TS gets a simpler shebang rule than JS\n swapMode(tsLanguage, \"shebang\", hljs.SHEBANG());\n // JS use strict rule purposely excludes `asm` which makes no sense\n swapMode(tsLanguage, \"use_strict\", USE_STRICT);\n\n const functionDeclaration = tsLanguage.contains.find(m => m.label === \"func.def\");\n functionDeclaration.relevance = 0; // () => {} is more typical in TypeScript\n\n Object.assign(tsLanguage, {\n name: 'TypeScript',\n aliases: ['ts', 'tsx']\n });\n\n return tsLanguage;\n}\n\nexport { typescript as default };\n"],"names":["IDENT_RE","KEYWORDS","LITERALS","TYPES","ERROR_TYPES","BUILT_IN_GLOBALS","BUILT_IN_VARIABLES","BUILT_INS","concat","javascript","hljs","regex","hasClosingTag","match","after","tag","slice","pos","input","indexOf","IDENT_RE$1","FRAGMENT","begin","end","XML_SELF_CLOSING","XML_TAG","isTrulyOpeningTag","response","afterMatchIndex","length","index","nextChar","ignoreMatch","m","afterMatch","substr","KEYWORDS$1","$pattern","keyword","literal","built_in","decimalDigits","frac","decimalInteger","NUMBER","className","variants","relevance","SUBST","keywords","contains","HTML_TEMPLATE","starts","returnEnd","BACKSLASH_ESCAPE","subLanguage","CSS_TEMPLATE","TEMPLATE_STRING","JSDOC_COMMENT","COMMENT","excludeEnd","excludeBegin","endsParent","C_BLOCK_COMMENT_MODE","C_LINE_COMMENT_MODE","SUBST_INTERNALS","APOS_STRING_MODE","QUOTE_STRING_MODE","SUBST_AND_COMMENTS","PARAMS_CONTAINS","PARAMS","CLASS_OR_EXTENDS","scope","CLASS_REFERENCE","either","_","USE_STRICT","label","FUNCTION_DEFINITION","illegal","UPPER_CASE_CONSTANT","noneOf","list","join","FUNCTION_CALL","lookahead","PROPERTY_ACCESS","GETTER_OR_SETTER","FUNC_LEAD_IN_RE","UNDERSCORE_IDENT_RE","FUNCTION_VARIABLE","name","aliases","exports","SHEBANG","binary","RE_STARTERS_RE","REGEXP_MODE","returnBegin","skip","beginKeywords","inherit","TITLE_MODE","typescript","tsLanguage","NAMESPACE","INTERFACE","TS_SPECIFIC_KEYWORDS","DECORATOR","swapMode","mode","replacement","indx","findIndex","Error","splice","Object","assign","push","functionDeclaration","find","default"],"sourceRoot":"webpack:///","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/dist/ng-select2/node_modules_highlight_js_es_languages_xml_js.js b/dist/ng-select2/node_modules_highlight_js_es_languages_xml_js.js deleted file mode 100644 index 428f7af..0000000 --- a/dist/ng-select2/node_modules_highlight_js_es_languages_xml_js.js +++ /dev/null @@ -1,180 +0,0 @@ -"use strict"; -(self["webpackChunkng_select2"] = self["webpackChunkng_select2"] || []).push([["node_modules_highlight_js_es_languages_xml_js"],{ - -/***/ 526: -/*!*******************************************************!*\ - !*** ./node_modules/highlight.js/es/languages/xml.js ***! - \*******************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ xml) -/* harmony export */ }); -/* -Language: HTML, XML -Website: https://www.w3.org/XML/ -Category: common, web -Audit: 2020 -*/ - -/** @type LanguageFn */ -function xml(hljs) { - const regex = hljs.regex; // Element names can contain letters, digits, hyphens, underscores, and periods - - const TAG_NAME_RE = regex.concat(/[A-Z_]/, regex.optional(/[A-Z0-9_.-]*:/), /[A-Z0-9_.-]*/); - const XML_IDENT_RE = /[A-Za-z0-9._:-]+/; - const XML_ENTITIES = { - className: 'symbol', - begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/ - }; - const XML_META_KEYWORDS = { - begin: /\s/, - contains: [{ - className: 'keyword', - begin: /#?[a-z_][a-z1-9_-]+/, - illegal: /\n/ - }] - }; - const XML_META_PAR_KEYWORDS = hljs.inherit(XML_META_KEYWORDS, { - begin: /\(/, - end: /\)/ - }); - const APOS_META_STRING_MODE = hljs.inherit(hljs.APOS_STRING_MODE, { - className: 'string' - }); - const QUOTE_META_STRING_MODE = hljs.inherit(hljs.QUOTE_STRING_MODE, { - className: 'string' - }); - const TAG_INTERNALS = { - endsWithParent: true, - illegal: /`]+/ - }] - }] - }] - }; - return { - name: 'HTML, XML', - aliases: ['html', 'xhtml', 'rss', 'atom', 'xjb', 'xsd', 'xsl', 'plist', 'wsf', 'svg'], - case_insensitive: true, - contains: [{ - className: 'meta', - begin: //, - relevance: 10, - contains: [XML_META_KEYWORDS, QUOTE_META_STRING_MODE, APOS_META_STRING_MODE, XML_META_PAR_KEYWORDS, { - begin: /\[/, - end: /\]/, - contains: [{ - className: 'meta', - begin: //, - contains: [XML_META_KEYWORDS, XML_META_PAR_KEYWORDS, QUOTE_META_STRING_MODE, APOS_META_STRING_MODE] - }] - }] - }, hljs.COMMENT(//, { - relevance: 10 - }), { - begin: //, - relevance: 10 - }, XML_ENTITIES, { - className: 'meta', - begin: /<\?xml/, - end: /\?>/, - relevance: 10 - }, { - className: 'tag', - - /* - The lookahead pattern (?=...) ensures that 'begin' only matches - ')/, - end: />/, - keywords: { - name: 'style' - }, - contains: [TAG_INTERNALS], - starts: { - end: /<\/style>/, - returnEnd: true, - subLanguage: ['css', 'xml'] - } - }, { - className: 'tag', - // See the comment in the - - - could become: - - -
    - -
    - - Note the use of @polyfill in the comment above a ShadowDOM specific style - declaration. This is a directive to the styling shim to use the selector - in comments in lieu of the next selector when running under polyfill. -*/ - - -class ShadowCss { - constructor() { - this.strictStyling = true; - } - /* - * Shim some cssText with the given selector. Returns cssText that can - * be included in the document via WebComponents.ShadowCSS.addCssToDocument(css). - * - * When strictStyling is true: - * - selector is the attribute added to all elements inside the host, - * - hostSelector is the attribute added to the host itself. - */ - - - shimCssText(cssText, selector, hostSelector = '') { - const commentsWithHash = extractCommentsWithHash(cssText); - cssText = stripComments(cssText); - cssText = this._insertDirectives(cssText); - - const scopedCssText = this._scopeCssText(cssText, selector, hostSelector); - - return [scopedCssText, ...commentsWithHash].join('\n'); - } - - _insertDirectives(cssText) { - cssText = this._insertPolyfillDirectivesInCssText(cssText); - return this._insertPolyfillRulesInCssText(cssText); - } - /* - * Process styles to convert native ShadowDOM rules that will trip - * up the css parser; we rely on decorating the stylesheet with inert rules. - * - * For example, we convert this rule: - * - * polyfill-next-selector { content: ':host menu-item'; } - * ::content menu-item { - * - * to this: - * - * scopeName menu-item { - * - **/ - - - _insertPolyfillDirectivesInCssText(cssText) { - // Difference with webcomponents.js: does not handle comments - return cssText.replace(_cssContentNextSelectorRe, function (...m) { - return m[2] + '{'; - }); - } - /* - * Process styles to add rules which will only apply under the polyfill - * - * For example, we convert this rule: - * - * polyfill-rule { - * content: ':host menu-item'; - * ... - * } - * - * to this: - * - * scopeName menu-item {...} - * - **/ - - - _insertPolyfillRulesInCssText(cssText) { - // Difference with webcomponents.js: does not handle comments - return cssText.replace(_cssContentRuleRe, (...m) => { - const rule = m[0].replace(m[1], '').replace(m[2], ''); - return m[4] + rule; - }); - } - /* Ensure styles are scoped. Pseudo-scoping takes a rule like: - * - * .foo {... } - * - * and converts this to - * - * scopeName .foo { ... } - */ - - - _scopeCssText(cssText, scopeSelector, hostSelector) { - const unscopedRules = this._extractUnscopedRulesFromCssText(cssText); // replace :host and :host-context -shadowcsshost and -shadowcsshost respectively - - - cssText = this._insertPolyfillHostInCssText(cssText); - cssText = this._convertColonHost(cssText); - cssText = this._convertColonHostContext(cssText); - cssText = this._convertShadowDOMSelectors(cssText); - - if (scopeSelector) { - cssText = this._scopeSelectors(cssText, scopeSelector, hostSelector); - } - - cssText = cssText + '\n' + unscopedRules; - return cssText.trim(); - } - /* - * Process styles to add rules which will only apply under the polyfill - * and do not process via CSSOM. (CSSOM is destructive to rules on rare - * occasions, e.g. -webkit-calc on Safari.) - * For example, we convert this rule: - * - * @polyfill-unscoped-rule { - * content: 'menu-item'; - * ... } - * - * to this: - * - * menu-item {...} - * - **/ - - - _extractUnscopedRulesFromCssText(cssText) { - // Difference with webcomponents.js: does not handle comments - let r = ''; - let m; - _cssContentUnscopedRuleRe.lastIndex = 0; - - while ((m = _cssContentUnscopedRuleRe.exec(cssText)) !== null) { - const rule = m[0].replace(m[2], '').replace(m[1], m[4]); - r += rule + '\n\n'; - } - - return r; - } - /* - * convert a rule like :host(.foo) > .bar { } - * - * to - * - * .foo > .bar - */ - - - _convertColonHost(cssText) { - return cssText.replace(_cssColonHostRe, (_, hostSelectors, otherSelectors) => { - if (hostSelectors) { - const convertedSelectors = []; - const hostSelectorArray = hostSelectors.split(',').map(p => p.trim()); - - for (const hostSelector of hostSelectorArray) { - if (!hostSelector) break; - const convertedSelector = _polyfillHostNoCombinator + hostSelector.replace(_polyfillHost, '') + otherSelectors; - convertedSelectors.push(convertedSelector); - } - - return convertedSelectors.join(','); - } else { - return _polyfillHostNoCombinator + otherSelectors; - } - }); - } - /* - * convert a rule like :host-context(.foo) > .bar { } - * - * to - * - * .foo > .bar, .foo > .bar { } - * - * and - * - * :host-context(.foo:host) .bar { ... } - * - * to - * - * .foo .bar { ... } - */ - - - _convertColonHostContext(cssText) { - return cssText.replace(_cssColonHostContextReGlobal, selectorText => { - // We have captured a selector that contains a `:host-context` rule. - // For backward compatibility `:host-context` may contain a comma separated list of selectors. - // Each context selector group will contain a list of host-context selectors that must match - // an ancestor of the host. - // (Normally `contextSelectorGroups` will only contain a single array of context selectors.) - const contextSelectorGroups = [[]]; // There may be more than `:host-context` in this selector so `selectorText` could look like: - // `:host-context(.one):host-context(.two)`. - // Execute `_cssColonHostContextRe` over and over until we have extracted all the - // `:host-context` selectors from this selector. - - let match; - - while (match = _cssColonHostContextRe.exec(selectorText)) { - // `match` = [':host-context()', , ] - // The `` could actually be a comma separated list: `:host-context(.one, .two)`. - const newContextSelectors = (match[1] ?? '').trim().split(',').map(m => m.trim()).filter(m => m !== ''); // We must duplicate the current selector group for each of these new selectors. - // For example if the current groups are: - // ``` - // [ - // ['a', 'b', 'c'], - // ['x', 'y', 'z'], - // ] - // ``` - // And we have a new set of comma separated selectors: `:host-context(m,n)` then the new - // groups are: - // ``` - // [ - // ['a', 'b', 'c', 'm'], - // ['x', 'y', 'z', 'm'], - // ['a', 'b', 'c', 'n'], - // ['x', 'y', 'z', 'n'], - // ] - // ``` - - const contextSelectorGroupsLength = contextSelectorGroups.length; - repeatGroups(contextSelectorGroups, newContextSelectors.length); - - for (let i = 0; i < newContextSelectors.length; i++) { - for (let j = 0; j < contextSelectorGroupsLength; j++) { - contextSelectorGroups[j + i * contextSelectorGroupsLength].push(newContextSelectors[i]); - } - } // Update the `selectorText` and see repeat to see if there are more `:host-context`s. - - - selectorText = match[2]; - } // The context selectors now must be combined with each other to capture all the possible - // selectors that `:host-context` can match. See `combineHostContextSelectors()` for more - // info about how this is done. - - - return contextSelectorGroups.map(contextSelectors => combineHostContextSelectors(contextSelectors, selectorText)).join(', '); - }); - } - /* - * Convert combinators like ::shadow and pseudo-elements like ::content - * by replacing with space. - */ - - - _convertShadowDOMSelectors(cssText) { - return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, ' '), cssText); - } // change a selector like 'div' to 'name div' - - - _scopeSelectors(cssText, scopeSelector, hostSelector) { - return processRules(cssText, rule => { - let selector = rule.selector; - let content = rule.content; - - if (rule.selector[0] !== '@') { - selector = this._scopeSelector(rule.selector, scopeSelector, hostSelector, this.strictStyling); - } else if (rule.selector.startsWith('@media') || rule.selector.startsWith('@supports') || rule.selector.startsWith('@document') || rule.selector.startsWith('@layer')) { - content = this._scopeSelectors(rule.content, scopeSelector, hostSelector); - } else if (rule.selector.startsWith('@font-face') || rule.selector.startsWith('@page')) { - content = this._stripScopingSelectors(rule.content); - } - - return new CssRule(selector, content); - }); - } - /** - * Handle a css text that is within a rule that should not contain scope selectors by simply - * removing them! An example of such a rule is `@font-face`. - * - * `@font-face` rules cannot contain nested selectors. Nor can they be nested under a selector. - * Normally this would be a syntax error by the author of the styles. But in some rare cases, such - * as importing styles from a library, and applying `:host ::ng-deep` to the imported styles, we - * can end up with broken css if the imported styles happen to contain @font-face rules. - * - * For example: - * - * ``` - * :host ::ng-deep { - * import 'some/lib/containing/font-face'; - * } - * - * Similar logic applies to `@page` rules which can contain a particular set of properties, - * as well as some specific at-rules. Since they can't be encapsulated, we have to strip - * any scoping selectors from them. For more information: https://www.w3.org/TR/css-page-3 - * ``` - */ - - - _stripScopingSelectors(cssText) { - return processRules(cssText, rule => { - const selector = rule.selector.replace(_shadowDeepSelectors, ' ').replace(_polyfillHostNoCombinatorRe, ' '); - return new CssRule(selector, rule.content); - }); - } - - _scopeSelector(selector, scopeSelector, hostSelector, strict) { - return selector.split(',').map(part => part.trim().split(_shadowDeepSelectors)).map(deepParts => { - const [shallowPart, ...otherParts] = deepParts; - - const applyScope = shallowPart => { - if (this._selectorNeedsScoping(shallowPart, scopeSelector)) { - return strict ? this._applyStrictSelectorScope(shallowPart, scopeSelector, hostSelector) : this._applySelectorScope(shallowPart, scopeSelector, hostSelector); - } else { - return shallowPart; - } - }; - - return [applyScope(shallowPart), ...otherParts].join(' '); - }).join(', '); - } - - _selectorNeedsScoping(selector, scopeSelector) { - const re = this._makeScopeMatcher(scopeSelector); - - return !re.test(selector); - } - - _makeScopeMatcher(scopeSelector) { - const lre = /\[/g; - const rre = /\]/g; - scopeSelector = scopeSelector.replace(lre, '\\[').replace(rre, '\\]'); - return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm'); - } - - _applySelectorScope(selector, scopeSelector, hostSelector) { - // Difference from webcomponents.js: scopeSelector could not be an array - return this._applySimpleSelectorScope(selector, scopeSelector, hostSelector); - } // scope via name and [is=name] - - - _applySimpleSelectorScope(selector, scopeSelector, hostSelector) { - // In Android browser, the lastIndex is not reset when the regex is used in String.replace() - _polyfillHostRe.lastIndex = 0; - - if (_polyfillHostRe.test(selector)) { - const replaceBy = this.strictStyling ? `[${hostSelector}]` : scopeSelector; - return selector.replace(_polyfillHostNoCombinatorRe, (hnc, selector) => { - return selector.replace(/([^:]*)(:*)(.*)/, (_, before, colon, after) => { - return before + replaceBy + colon + after; - }); - }).replace(_polyfillHostRe, replaceBy + ' '); - } - - return scopeSelector + ' ' + selector; - } // return a selector with [name] suffix on each simple selector - // e.g. .foo.bar > .zot becomes .foo[name].bar[name] > .zot[name] /** @internal */ - - - _applyStrictSelectorScope(selector, scopeSelector, hostSelector) { - const isRe = /\[is=([^\]]*)\]/g; - scopeSelector = scopeSelector.replace(isRe, (_, ...parts) => parts[0]); - const attrName = '[' + scopeSelector + ']'; - - const _scopeSelectorPart = p => { - let scopedP = p.trim(); - - if (!scopedP) { - return ''; - } - - if (p.indexOf(_polyfillHostNoCombinator) > -1) { - scopedP = this._applySimpleSelectorScope(p, scopeSelector, hostSelector); - } else { - // remove :host since it should be unnecessary - const t = p.replace(_polyfillHostRe, ''); - - if (t.length > 0) { - const matches = t.match(/([^:]*)(:*)(.*)/); - - if (matches) { - scopedP = matches[1] + attrName + matches[2] + matches[3]; - } - } - } - - return scopedP; - }; - - const safeContent = new SafeSelector(selector); - selector = safeContent.content(); - let scopedSelector = ''; - let startIndex = 0; - let res; - const sep = /( |>|\+|~(?!=))\s*/g; // If a selector appears before :host it should not be shimmed as it - // matches on ancestor elements and not on elements in the host's shadow - // `:host-context(div)` is transformed to - // `-shadowcsshost-no-combinatordiv, div -shadowcsshost-no-combinator` - // the `div` is not part of the component in the 2nd selectors and should not be scoped. - // Historically `component-tag:host` was matching the component so we also want to preserve - // this behavior to avoid breaking legacy apps (it should not match). - // The behavior should be: - // - `tag:host` -> `tag[h]` (this is to avoid breaking legacy apps, should not match anything) - // - `tag :host` -> `tag [h]` (`tag` is not scoped because it's considered part of a - // `:host-context(tag)`) - - const hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1; // Only scope parts after the first `-shadowcsshost-no-combinator` when it is present - - let shouldScope = !hasHost; - - while ((res = sep.exec(selector)) !== null) { - const separator = res[1]; - const part = selector.slice(startIndex, res.index).trim(); - shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1; - const scopedPart = shouldScope ? _scopeSelectorPart(part) : part; - scopedSelector += `${scopedPart} ${separator} `; - startIndex = sep.lastIndex; - } - - const part = selector.substring(startIndex); - shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1; - scopedSelector += shouldScope ? _scopeSelectorPart(part) : part; // replace the placeholders with their original values - - return safeContent.restore(scopedSelector); - } - - _insertPolyfillHostInCssText(selector) { - return selector.replace(_colonHostContextRe, _polyfillHostContext).replace(_colonHostRe, _polyfillHost); - } - -} - -class SafeSelector { - constructor(selector) { - this.placeholders = []; - this.index = 0; // Replaces attribute selectors with placeholders. - // The WS in [attr="va lue"] would otherwise be interpreted as a selector separator. - - selector = this._escapeRegexMatches(selector, /(\[[^\]]*\])/g); // CSS allows for certain special characters to be used in selectors if they're escaped. - // E.g. `.foo:blue` won't match a class called `foo:blue`, because the colon denotes a - // pseudo-class, but writing `.foo\:blue` will match, because the colon was escaped. - // Replace all escape sequences (`\` followed by a character) with a placeholder so - // that our handling of pseudo-selectors doesn't mess with them. - - selector = this._escapeRegexMatches(selector, /(\\.)/g); // Replaces the expression in `:nth-child(2n + 1)` with a placeholder. - // WS and "+" would otherwise be interpreted as selector separators. - - this._content = selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g, (_, pseudo, exp) => { - const replaceBy = `__ph-${this.index}__`; - this.placeholders.push(exp); - this.index++; - return pseudo + replaceBy; - }); - } - - restore(content) { - return content.replace(/__ph-(\d+)__/g, (_ph, index) => this.placeholders[+index]); - } - - content() { - return this._content; - } - /** - * Replaces all of the substrings that match a regex within a - * special string (e.g. `__ph-0__`, `__ph-1__`, etc). - */ - - - _escapeRegexMatches(content, pattern) { - return content.replace(pattern, (_, keep) => { - const replaceBy = `__ph-${this.index}__`; - this.placeholders.push(keep); - this.index++; - return replaceBy; - }); - } - -} - -const _cssContentNextSelectorRe = /polyfill-next-selector[^}]*content:[\s]*?(['"])(.*?)\1[;\s]*}([^{]*?){/gim; -const _cssContentRuleRe = /(polyfill-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim; -const _cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content:[\s]*(['"])(.*?)\3)[;\s]*[^}]*}/gim; -const _polyfillHost = '-shadowcsshost'; // note: :host-context pre-processed to -shadowcsshostcontext. - -const _polyfillHostContext = '-shadowcsscontext'; - -const _parenSuffix = '(?:\\((' + '(?:\\([^)(]*\\)|[^)(]*)+?' + ')\\))?([^,{]*)'; - -const _cssColonHostRe = new RegExp(_polyfillHost + _parenSuffix, 'gim'); - -const _cssColonHostContextReGlobal = new RegExp(_polyfillHostContext + _parenSuffix, 'gim'); - -const _cssColonHostContextRe = new RegExp(_polyfillHostContext + _parenSuffix, 'im'); - -const _polyfillHostNoCombinator = _polyfillHost + '-no-combinator'; - -const _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/; -const _shadowDOMSelectorsRe = [/::shadow/g, /::content/g, // Deprecated selectors -/\/shadow-deep\//g, /\/shadow\//g]; // The deep combinator is deprecated in the CSS spec -// Support for `>>>`, `deep`, `::ng-deep` is then also deprecated and will be removed in the future. -// see https://github.com/angular/angular/pull/17677 - -const _shadowDeepSelectors = /(?:>>>)|(?:\/deep\/)|(?:::ng-deep)/g; -const _selectorReSuffix = '([>\\s~+[.,{:][\\s\\S]*)?$'; -const _polyfillHostRe = /-shadowcsshost/gim; -const _colonHostRe = /:host/gim; -const _colonHostContextRe = /:host-context/gim; -const _commentRe = /\/\*[\s\S]*?\*\//g; - -function stripComments(input) { - return input.replace(_commentRe, ''); -} - -const _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g; - -function extractCommentsWithHash(input) { - return input.match(_commentWithHashRe) || []; -} - -const BLOCK_PLACEHOLDER = '%BLOCK%'; -const QUOTE_PLACEHOLDER = '%QUOTED%'; -const _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g; -const _quotedRe = /%QUOTED%/g; -const CONTENT_PAIRS = new Map([['{', '}']]); -const QUOTE_PAIRS = new Map([[`"`, `"`], [`'`, `'`]]); - -class CssRule { - constructor(selector, content) { - this.selector = selector; - this.content = content; - } - -} - -function processRules(input, ruleCallback) { - const inputWithEscapedQuotes = escapeBlocks(input, QUOTE_PAIRS, QUOTE_PLACEHOLDER); - const inputWithEscapedBlocks = escapeBlocks(inputWithEscapedQuotes.escapedString, CONTENT_PAIRS, BLOCK_PLACEHOLDER); - let nextBlockIndex = 0; - let nextQuoteIndex = 0; - return inputWithEscapedBlocks.escapedString.replace(_ruleRe, (...m) => { - const selector = m[2]; - let content = ''; - let suffix = m[4]; - let contentPrefix = ''; - - if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) { - content = inputWithEscapedBlocks.blocks[nextBlockIndex++]; - suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1); - contentPrefix = '{'; - } - - const rule = ruleCallback(new CssRule(selector, content)); - return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`; - }).replace(_quotedRe, () => inputWithEscapedQuotes.blocks[nextQuoteIndex++]); -} - -class StringWithEscapedBlocks { - constructor(escapedString, blocks) { - this.escapedString = escapedString; - this.blocks = blocks; - } - -} - -function escapeBlocks(input, charPairs, placeholder) { - const resultParts = []; - const escapedBlocks = []; - let openCharCount = 0; - let nonBlockStartIndex = 0; - let blockStartIndex = -1; - let openChar; - let closeChar; - - for (let i = 0; i < input.length; i++) { - const char = input[i]; - - if (char === '\\') { - i++; - } else if (char === closeChar) { - openCharCount--; - - if (openCharCount === 0) { - escapedBlocks.push(input.substring(blockStartIndex, i)); - resultParts.push(placeholder); - nonBlockStartIndex = i; - blockStartIndex = -1; - openChar = closeChar = undefined; - } - } else if (char === openChar) { - openCharCount++; - } else if (openCharCount === 0 && charPairs.has(char)) { - openChar = char; - closeChar = charPairs.get(char); - openCharCount = 1; - blockStartIndex = i + 1; - resultParts.push(input.substring(nonBlockStartIndex, blockStartIndex)); - } - } - - if (blockStartIndex !== -1) { - escapedBlocks.push(input.substring(blockStartIndex)); - resultParts.push(placeholder); - } else { - resultParts.push(input.substring(nonBlockStartIndex)); - } - - return new StringWithEscapedBlocks(resultParts.join(''), escapedBlocks); -} -/** - * Combine the `contextSelectors` with the `hostMarker` and the `otherSelectors` - * to create a selector that matches the same as `:host-context()`. - * - * Given a single context selector `A` we need to output selectors that match on the host and as an - * ancestor of the host: - * - * ``` - * A , A {} - * ``` - * - * When there is more than one context selector we also have to create combinations of those - * selectors with each other. For example if there are `A` and `B` selectors the output is: - * - * ``` - * AB, AB , A B, - * B A, A B , B A {} - * ``` - * - * And so on... - * - * @param hostMarker the string that selects the host element. - * @param contextSelectors an array of context selectors that will be combined. - * @param otherSelectors the rest of the selectors that are not context selectors. - */ - - -function combineHostContextSelectors(contextSelectors, otherSelectors) { - const hostMarker = _polyfillHostNoCombinator; - _polyfillHostRe.lastIndex = 0; // reset the regex to ensure we get an accurate test - - const otherSelectorsHasHost = _polyfillHostRe.test(otherSelectors); // If there are no context selectors then just output a host marker - - - if (contextSelectors.length === 0) { - return hostMarker + otherSelectors; - } - - const combined = [contextSelectors.pop() || '']; - - while (contextSelectors.length > 0) { - const length = combined.length; - const contextSelector = contextSelectors.pop(); - - for (let i = 0; i < length; i++) { - const previousSelectors = combined[i]; // Add the new selector as a descendant of the previous selectors - - combined[length * 2 + i] = previousSelectors + ' ' + contextSelector; // Add the new selector as an ancestor of the previous selectors - - combined[length + i] = contextSelector + ' ' + previousSelectors; // Add the new selector to act on the same element as the previous selectors - - combined[i] = contextSelector + previousSelectors; - } - } // Finally connect the selector to the `hostMarker`s: either acting directly on the host - // (A) or as an ancestor (A ). - - - return combined.map(s => otherSelectorsHasHost ? `${s}${otherSelectors}` : `${s}${hostMarker}${otherSelectors}, ${s} ${hostMarker}${otherSelectors}`).join(','); -} -/** - * Mutate the given `groups` array so that there are `multiples` clones of the original array - * stored. - * - * For example `repeatGroups([a, b], 3)` will result in `[a, b, a, b, a, b]` - but importantly the - * newly added groups will be clones of the original. - * - * @param groups An array of groups of strings that will be repeated. This array is mutated - * in-place. - * @param multiples The number of times the current groups should appear. - */ - - -function repeatGroups(groups, multiples) { - const length = groups.length; - - for (let i = 1; i < multiples; i++) { - for (let j = 0; j < length; j++) { - groups[j + i * length] = groups[j].slice(0); - } - } -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -/** - * Parses string representation of a style and converts it into object literal. - * - * @param value string representation of style as used in the `style` attribute in HTML. - * Example: `color: red; height: auto`. - * @returns An array of style property name and value pairs, e.g. `['color', 'red', 'height', - * 'auto']` - */ - - -function parse(value) { - // we use a string array here instead of a string map - // because a string-map is not guaranteed to retain the - // order of the entries whereas a string array can be - // constructed in a [key, value, key, value] format. - const styles = []; - let i = 0; - let parenDepth = 0; - let quote = 0 - /* Char.QuoteNone */ - ; - let valueStart = 0; - let propStart = 0; - let currentProp = null; - let valueHasQuotes = false; - - while (i < value.length) { - const token = value.charCodeAt(i++); - - switch (token) { - case 40 - /* Char.OpenParen */ - : - parenDepth++; - break; - - case 41 - /* Char.CloseParen */ - : - parenDepth--; - break; - - case 39 - /* Char.QuoteSingle */ - : - // valueStart needs to be there since prop values don't - // have quotes in CSS - valueHasQuotes = valueHasQuotes || valueStart > 0; - - if (quote === 0 - /* Char.QuoteNone */ - ) { - quote = 39 - /* Char.QuoteSingle */ - ; - } else if (quote === 39 - /* Char.QuoteSingle */ - && value.charCodeAt(i - 1) !== 92 - /* Char.BackSlash */ - ) { - quote = 0 - /* Char.QuoteNone */ - ; - } - - break; - - case 34 - /* Char.QuoteDouble */ - : - // same logic as above - valueHasQuotes = valueHasQuotes || valueStart > 0; - - if (quote === 0 - /* Char.QuoteNone */ - ) { - quote = 34 - /* Char.QuoteDouble */ - ; - } else if (quote === 34 - /* Char.QuoteDouble */ - && value.charCodeAt(i - 1) !== 92 - /* Char.BackSlash */ - ) { - quote = 0 - /* Char.QuoteNone */ - ; - } - - break; - - case 58 - /* Char.Colon */ - : - if (!currentProp && parenDepth === 0 && quote === 0 - /* Char.QuoteNone */ - ) { - currentProp = hyphenate(value.substring(propStart, i - 1).trim()); - valueStart = i; - } - - break; - - case 59 - /* Char.Semicolon */ - : - if (currentProp && valueStart > 0 && parenDepth === 0 && quote === 0 - /* Char.QuoteNone */ - ) { - const styleVal = value.substring(valueStart, i - 1).trim(); - styles.push(currentProp, valueHasQuotes ? stripUnnecessaryQuotes(styleVal) : styleVal); - propStart = i; - valueStart = 0; - currentProp = null; - valueHasQuotes = false; - } - - break; - } - } - - if (currentProp && valueStart) { - const styleVal = value.slice(valueStart).trim(); - styles.push(currentProp, valueHasQuotes ? stripUnnecessaryQuotes(styleVal) : styleVal); - } - - return styles; -} - -function stripUnnecessaryQuotes(value) { - const qS = value.charCodeAt(0); - const qE = value.charCodeAt(value.length - 1); - - if (qS == qE && (qS == 39 - /* Char.QuoteSingle */ - || qS == 34 - /* Char.QuoteDouble */ - )) { - const tempValue = value.substring(1, value.length - 1); // special case to avoid using a multi-quoted string that was just chomped - // (e.g. `font-family: "Verdana", "sans-serif"`) - - if (tempValue.indexOf('\'') == -1 && tempValue.indexOf('"') == -1) { - value = tempValue; - } - } - - return value; -} - -function hyphenate(value) { - return value.replace(/[a-z][A-Z]/g, v => { - return v.charAt(0) + '-' + v.charAt(1); - }).toLowerCase(); -} - -const IMPORTANT_FLAG = '!important'; -/** - * Minimum amount of binding slots required in the runtime for style/class bindings. - * - * Styling in Angular uses up two slots in the runtime LView/TData data structures to - * record binding data, property information and metadata. - * - * When a binding is registered it will place the following information in the `LView`: - * - * slot 1) binding value - * slot 2) cached value (all other values collected before it in string form) - * - * When a binding is registered it will place the following information in the `TData`: - * - * slot 1) prop name - * slot 2) binding index that points to the previous style/class binding (and some extra config - * values) - * - * Let's imagine we have a binding that looks like so: - * - * ``` - *
    - * ``` - * - * Our `LView` and `TData` data-structures look like so: - * - * ```typescript - * LView = [ - * // ... - * x, // value of x - * "width: x", - * - * y, // value of y - * "width: x; height: y", - * // ... - * ]; - * - * TData = [ - * // ... - * "width", // binding slot 20 - * 0, - * - * "height", - * 20, - * // ... - * ]; - * ``` - * - * */ - -const MIN_STYLING_BINDING_SLOTS_REQUIRED = 2; -/** - * Produces creation/update instructions for all styling bindings (class and style) - * - * It also produces the creation instruction to register all initial styling values - * (which are all the static class="..." and style="..." attribute values that exist - * on an element within a template). - * - * The builder class below handles producing instructions for the following cases: - * - * - Static style/class attributes (style="..." and class="...") - * - Dynamic style/class map bindings ([style]="map" and [class]="map|string") - * - Dynamic style/class property bindings ([style.prop]="exp" and [class.name]="exp") - * - * Due to the complex relationship of all of these cases, the instructions generated - * for these attributes/properties/bindings must be done so in the correct order. The - * order which these must be generated is as follows: - * - * if (createMode) { - * styling(...) - * } - * if (updateMode) { - * styleMap(...) - * classMap(...) - * styleProp(...) - * classProp(...) - * } - * - * The creation/update methods within the builder class produce these instructions. - */ - -class StylingBuilder { - constructor(_directiveExpr) { - this._directiveExpr = _directiveExpr; - /** Whether or not there are any static styling values present */ - - this._hasInitialValues = false; - /** - * Whether or not there are any styling bindings present - * (i.e. `[style]`, `[class]`, `[style.prop]` or `[class.name]`) - */ - - this.hasBindings = false; - this.hasBindingsWithPipes = false; - /** the input for [class] (if it exists) */ - - this._classMapInput = null; - /** the input for [style] (if it exists) */ - - this._styleMapInput = null; - /** an array of each [style.prop] input */ - - this._singleStyleInputs = null; - /** an array of each [class.name] input */ - - this._singleClassInputs = null; - this._lastStylingInput = null; - this._firstStylingInput = null; // maps are used instead of hash maps because a Map will - // retain the ordering of the keys - - /** - * Represents the location of each style binding in the template - * (e.g. `
    ` implies - * that `width=0` and `height=1`) - */ - - this._stylesIndex = new Map(); - /** - * Represents the location of each class binding in the template - * (e.g. `
    ` implies - * that `big=0` and `hidden=1`) - */ - - this._classesIndex = new Map(); - this._initialStyleValues = []; - this._initialClassValues = []; - } - /** - * Registers a given input to the styling builder to be later used when producing AOT code. - * - * The code below will only accept the input if it is somehow tied to styling (whether it be - * style/class bindings or static style/class attributes). - */ - - - registerBoundInput(input) { - // [attr.style] or [attr.class] are skipped in the code below, - // they should not be treated as styling-based bindings since - // they are intended to be written directly to the attr and - // will therefore skip all style/class resolution that is present - // with style="", [style]="" and [style.prop]="", class="", - // [class.prop]="". [class]="" assignments - let binding = null; - let name = input.name; - - switch (input.type) { - case 0 - /* BindingType.Property */ - : - binding = this.registerInputBasedOnName(name, input.value, input.sourceSpan); - break; - - case 3 - /* BindingType.Style */ - : - binding = this.registerStyleInput(name, false, input.value, input.sourceSpan, input.unit); - break; - - case 2 - /* BindingType.Class */ - : - binding = this.registerClassInput(name, false, input.value, input.sourceSpan); - break; - } - - return binding ? true : false; - } - - registerInputBasedOnName(name, expression, sourceSpan) { - let binding = null; - const prefix = name.substring(0, 6); - const isStyle = name === 'style' || prefix === 'style.' || prefix === 'style!'; - const isClass = !isStyle && (name === 'class' || prefix === 'class.' || prefix === 'class!'); - - if (isStyle || isClass) { - const isMapBased = name.charAt(5) !== '.'; // style.prop or class.prop makes this a no - - const property = name.slice(isMapBased ? 5 : 6); // the dot explains why there's a +1 - - if (isStyle) { - binding = this.registerStyleInput(property, isMapBased, expression, sourceSpan); - } else { - binding = this.registerClassInput(property, isMapBased, expression, sourceSpan); - } - } - - return binding; - } - - registerStyleInput(name, isMapBased, value, sourceSpan, suffix) { - if (isEmptyExpression(value)) { - return null; - } // CSS custom properties are case-sensitive so we shouldn't normalize them. - // See: https://www.w3.org/TR/css-variables-1/#defining-variables - - - if (!isCssCustomProperty(name)) { - name = hyphenate(name); - } - - const { - property, - hasOverrideFlag, - suffix: bindingSuffix - } = parseProperty(name); - suffix = typeof suffix === 'string' && suffix.length !== 0 ? suffix : bindingSuffix; - const entry = { - name: property, - suffix: suffix, - value, - sourceSpan, - hasOverrideFlag - }; - - if (isMapBased) { - this._styleMapInput = entry; - } else { - (this._singleStyleInputs = this._singleStyleInputs || []).push(entry); - registerIntoMap(this._stylesIndex, property); - } - - this._lastStylingInput = entry; - this._firstStylingInput = this._firstStylingInput || entry; - - this._checkForPipes(value); - - this.hasBindings = true; - return entry; - } - - registerClassInput(name, isMapBased, value, sourceSpan) { - if (isEmptyExpression(value)) { - return null; - } - - const { - property, - hasOverrideFlag - } = parseProperty(name); - const entry = { - name: property, - value, - sourceSpan, - hasOverrideFlag, - suffix: null - }; - - if (isMapBased) { - this._classMapInput = entry; - } else { - (this._singleClassInputs = this._singleClassInputs || []).push(entry); - registerIntoMap(this._classesIndex, property); - } - - this._lastStylingInput = entry; - this._firstStylingInput = this._firstStylingInput || entry; - - this._checkForPipes(value); - - this.hasBindings = true; - return entry; - } - - _checkForPipes(value) { - if (value instanceof ASTWithSource && value.ast instanceof BindingPipe) { - this.hasBindingsWithPipes = true; - } - } - /** - * Registers the element's static style string value to the builder. - * - * @param value the style string (e.g. `width:100px; height:200px;`) - */ - - - registerStyleAttr(value) { - this._initialStyleValues = parse(value); - this._hasInitialValues = true; - } - /** - * Registers the element's static class string value to the builder. - * - * @param value the className string (e.g. `disabled gold zoom`) - */ - - - registerClassAttr(value) { - this._initialClassValues = value.trim().split(/\s+/g); - this._hasInitialValues = true; - } - /** - * Appends all styling-related expressions to the provided attrs array. - * - * @param attrs an existing array where each of the styling expressions - * will be inserted into. - */ - - - populateInitialStylingAttrs(attrs) { - // [CLASS_MARKER, 'foo', 'bar', 'baz' ...] - if (this._initialClassValues.length) { - attrs.push(literal(1 - /* AttributeMarker.Classes */ - )); - - for (let i = 0; i < this._initialClassValues.length; i++) { - attrs.push(literal(this._initialClassValues[i])); - } - } // [STYLE_MARKER, 'width', '200px', 'height', '100px', ...] - - - if (this._initialStyleValues.length) { - attrs.push(literal(2 - /* AttributeMarker.Styles */ - )); - - for (let i = 0; i < this._initialStyleValues.length; i += 2) { - attrs.push(literal(this._initialStyleValues[i]), literal(this._initialStyleValues[i + 1])); - } - } - } - /** - * Builds an instruction with all the expressions and parameters for `elementHostAttrs`. - * - * The instruction generation code below is used for producing the AOT statement code which is - * responsible for registering initial styles (within a directive hostBindings' creation block), - * as well as any of the provided attribute values, to the directive host element. - */ - - - assignHostAttrs(attrs, definitionMap) { - if (this._directiveExpr && (attrs.length || this._hasInitialValues)) { - this.populateInitialStylingAttrs(attrs); - definitionMap.set('hostAttrs', literalArr(attrs)); - } - } - /** - * Builds an instruction with all the expressions and parameters for `classMap`. - * - * The instruction data will contain all expressions for `classMap` to function - * which includes the `[class]` expression params. - */ - - - buildClassMapInstruction(valueConverter) { - if (this._classMapInput) { - return this._buildMapBasedInstruction(valueConverter, true, this._classMapInput); - } - - return null; - } - /** - * Builds an instruction with all the expressions and parameters for `styleMap`. - * - * The instruction data will contain all expressions for `styleMap` to function - * which includes the `[style]` expression params. - */ - - - buildStyleMapInstruction(valueConverter) { - if (this._styleMapInput) { - return this._buildMapBasedInstruction(valueConverter, false, this._styleMapInput); - } - - return null; - } - - _buildMapBasedInstruction(valueConverter, isClassBased, stylingInput) { - // each styling binding value is stored in the LView - // map-based bindings allocate two slots: one for the - // previous binding value and another for the previous - // className or style attribute value. - let totalBindingSlotsRequired = MIN_STYLING_BINDING_SLOTS_REQUIRED; // these values must be outside of the update block so that they can - // be evaluated (the AST visit call) during creation time so that any - // pipes can be picked up in time before the template is built - - const mapValue = stylingInput.value.visit(valueConverter); - let reference; - - if (mapValue instanceof Interpolation) { - totalBindingSlotsRequired += mapValue.expressions.length; - reference = isClassBased ? getClassMapInterpolationExpression(mapValue) : getStyleMapInterpolationExpression(mapValue); - } else { - reference = isClassBased ? Identifiers.classMap : Identifiers.styleMap; - } - - return { - reference, - calls: [{ - supportsInterpolation: true, - sourceSpan: stylingInput.sourceSpan, - allocateBindingSlots: totalBindingSlotsRequired, - params: convertFn => { - const convertResult = convertFn(mapValue); - const params = Array.isArray(convertResult) ? convertResult : [convertResult]; - return params; - } - }] - }; - } - - _buildSingleInputs(reference, inputs, valueConverter, getInterpolationExpressionFn, isClassBased) { - const instructions = []; - inputs.forEach(input => { - const previousInstruction = instructions[instructions.length - 1]; - const value = input.value.visit(valueConverter); - let referenceForCall = reference; // each styling binding value is stored in the LView - // but there are two values stored for each binding: - // 1) the value itself - // 2) an intermediate value (concatenation of style up to this point). - // We need to store the intermediate value so that we don't allocate - // the strings on each CD. - - let totalBindingSlotsRequired = MIN_STYLING_BINDING_SLOTS_REQUIRED; - - if (value instanceof Interpolation) { - totalBindingSlotsRequired += value.expressions.length; - - if (getInterpolationExpressionFn) { - referenceForCall = getInterpolationExpressionFn(value); - } - } - - const call = { - sourceSpan: input.sourceSpan, - allocateBindingSlots: totalBindingSlotsRequired, - supportsInterpolation: !!getInterpolationExpressionFn, - params: convertFn => { - // params => stylingProp(propName, value, suffix) - const params = []; - params.push(literal(input.name)); - const convertResult = convertFn(value); - - if (Array.isArray(convertResult)) { - params.push(...convertResult); - } else { - params.push(convertResult); - } // [style.prop] bindings may use suffix values (e.g. px, em, etc...), therefore, - // if that is detected then we need to pass that in as an optional param. - - - if (!isClassBased && input.suffix !== null) { - params.push(literal(input.suffix)); - } - - return params; - } - }; // If we ended up generating a call to the same instruction as the previous styling property - // we can chain the calls together safely to save some bytes, otherwise we have to generate - // a separate instruction call. This is primarily a concern with interpolation instructions - // where we may start off with one `reference`, but end up using another based on the - // number of interpolations. - - if (previousInstruction && previousInstruction.reference === referenceForCall) { - previousInstruction.calls.push(call); - } else { - instructions.push({ - reference: referenceForCall, - calls: [call] - }); - } - }); - return instructions; - } - - _buildClassInputs(valueConverter) { - if (this._singleClassInputs) { - return this._buildSingleInputs(Identifiers.classProp, this._singleClassInputs, valueConverter, null, true); - } - - return []; - } - - _buildStyleInputs(valueConverter) { - if (this._singleStyleInputs) { - return this._buildSingleInputs(Identifiers.styleProp, this._singleStyleInputs, valueConverter, getStylePropInterpolationExpression, false); - } - - return []; - } - /** - * Constructs all instructions which contain the expressions that will be placed - * into the update block of a template function or a directive hostBindings function. - */ - - - buildUpdateLevelInstructions(valueConverter) { - const instructions = []; - - if (this.hasBindings) { - const styleMapInstruction = this.buildStyleMapInstruction(valueConverter); - - if (styleMapInstruction) { - instructions.push(styleMapInstruction); - } - - const classMapInstruction = this.buildClassMapInstruction(valueConverter); - - if (classMapInstruction) { - instructions.push(classMapInstruction); - } - - instructions.push(...this._buildStyleInputs(valueConverter)); - instructions.push(...this._buildClassInputs(valueConverter)); - } - - return instructions; - } - -} - -function registerIntoMap(map, key) { - if (!map.has(key)) { - map.set(key, map.size); - } -} - -function parseProperty(name) { - let hasOverrideFlag = false; - const overrideIndex = name.indexOf(IMPORTANT_FLAG); - - if (overrideIndex !== -1) { - name = overrideIndex > 0 ? name.substring(0, overrideIndex) : ''; - hasOverrideFlag = true; - } - - let suffix = null; - let property = name; - const unitIndex = name.lastIndexOf('.'); - - if (unitIndex > 0) { - suffix = name.slice(unitIndex + 1); - property = name.substring(0, unitIndex); - } - - return { - property, - suffix, - hasOverrideFlag - }; -} -/** - * Gets the instruction to generate for an interpolated class map. - * @param interpolation An Interpolation AST - */ - - -function getClassMapInterpolationExpression(interpolation) { - switch (getInterpolationArgsLength(interpolation)) { - case 1: - return Identifiers.classMap; - - case 3: - return Identifiers.classMapInterpolate1; - - case 5: - return Identifiers.classMapInterpolate2; - - case 7: - return Identifiers.classMapInterpolate3; - - case 9: - return Identifiers.classMapInterpolate4; - - case 11: - return Identifiers.classMapInterpolate5; - - case 13: - return Identifiers.classMapInterpolate6; - - case 15: - return Identifiers.classMapInterpolate7; - - case 17: - return Identifiers.classMapInterpolate8; - - default: - return Identifiers.classMapInterpolateV; - } -} -/** - * Gets the instruction to generate for an interpolated style map. - * @param interpolation An Interpolation AST - */ - - -function getStyleMapInterpolationExpression(interpolation) { - switch (getInterpolationArgsLength(interpolation)) { - case 1: - return Identifiers.styleMap; - - case 3: - return Identifiers.styleMapInterpolate1; - - case 5: - return Identifiers.styleMapInterpolate2; - - case 7: - return Identifiers.styleMapInterpolate3; - - case 9: - return Identifiers.styleMapInterpolate4; - - case 11: - return Identifiers.styleMapInterpolate5; - - case 13: - return Identifiers.styleMapInterpolate6; - - case 15: - return Identifiers.styleMapInterpolate7; - - case 17: - return Identifiers.styleMapInterpolate8; - - default: - return Identifiers.styleMapInterpolateV; - } -} -/** - * Gets the instruction to generate for an interpolated style prop. - * @param interpolation An Interpolation AST - */ - - -function getStylePropInterpolationExpression(interpolation) { - switch (getInterpolationArgsLength(interpolation)) { - case 1: - return Identifiers.styleProp; - - case 3: - return Identifiers.stylePropInterpolate1; - - case 5: - return Identifiers.stylePropInterpolate2; - - case 7: - return Identifiers.stylePropInterpolate3; - - case 9: - return Identifiers.stylePropInterpolate4; - - case 11: - return Identifiers.stylePropInterpolate5; - - case 13: - return Identifiers.stylePropInterpolate6; - - case 15: - return Identifiers.stylePropInterpolate7; - - case 17: - return Identifiers.stylePropInterpolate8; - - default: - return Identifiers.stylePropInterpolateV; - } -} -/** - * Checks whether property name is a custom CSS property. - * See: https://www.w3.org/TR/css-variables-1 - */ - - -function isCssCustomProperty(name) { - return name.startsWith('--'); -} - -function isEmptyExpression(ast) { - if (ast instanceof ASTWithSource) { - ast = ast.ast; - } - - return ast instanceof EmptyExpr; -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -var TokenType; - -(function (TokenType) { - TokenType[TokenType["Character"] = 0] = "Character"; - TokenType[TokenType["Identifier"] = 1] = "Identifier"; - TokenType[TokenType["PrivateIdentifier"] = 2] = "PrivateIdentifier"; - TokenType[TokenType["Keyword"] = 3] = "Keyword"; - TokenType[TokenType["String"] = 4] = "String"; - TokenType[TokenType["Operator"] = 5] = "Operator"; - TokenType[TokenType["Number"] = 6] = "Number"; - TokenType[TokenType["Error"] = 7] = "Error"; -})(TokenType || (TokenType = {})); - -const KEYWORDS = ['var', 'let', 'as', 'null', 'undefined', 'true', 'false', 'if', 'else', 'this']; - -class Lexer { - tokenize(text) { - const scanner = new _Scanner(text); - const tokens = []; - let token = scanner.scanToken(); - - while (token != null) { - tokens.push(token); - token = scanner.scanToken(); - } - - return tokens; - } - -} - -class Token { - constructor(index, end, type, numValue, strValue) { - this.index = index; - this.end = end; - this.type = type; - this.numValue = numValue; - this.strValue = strValue; - } - - isCharacter(code) { - return this.type == TokenType.Character && this.numValue == code; - } - - isNumber() { - return this.type == TokenType.Number; - } - - isString() { - return this.type == TokenType.String; - } - - isOperator(operator) { - return this.type == TokenType.Operator && this.strValue == operator; - } - - isIdentifier() { - return this.type == TokenType.Identifier; - } - - isPrivateIdentifier() { - return this.type == TokenType.PrivateIdentifier; - } - - isKeyword() { - return this.type == TokenType.Keyword; - } - - isKeywordLet() { - return this.type == TokenType.Keyword && this.strValue == 'let'; - } - - isKeywordAs() { - return this.type == TokenType.Keyword && this.strValue == 'as'; - } - - isKeywordNull() { - return this.type == TokenType.Keyword && this.strValue == 'null'; - } - - isKeywordUndefined() { - return this.type == TokenType.Keyword && this.strValue == 'undefined'; - } - - isKeywordTrue() { - return this.type == TokenType.Keyword && this.strValue == 'true'; - } - - isKeywordFalse() { - return this.type == TokenType.Keyword && this.strValue == 'false'; - } - - isKeywordThis() { - return this.type == TokenType.Keyword && this.strValue == 'this'; - } - - isError() { - return this.type == TokenType.Error; - } - - toNumber() { - return this.type == TokenType.Number ? this.numValue : -1; - } - - toString() { - switch (this.type) { - case TokenType.Character: - case TokenType.Identifier: - case TokenType.Keyword: - case TokenType.Operator: - case TokenType.PrivateIdentifier: - case TokenType.String: - case TokenType.Error: - return this.strValue; - - case TokenType.Number: - return this.numValue.toString(); - - default: - return null; - } - } - -} - -function newCharacterToken(index, end, code) { - return new Token(index, end, TokenType.Character, code, String.fromCharCode(code)); -} - -function newIdentifierToken(index, end, text) { - return new Token(index, end, TokenType.Identifier, 0, text); -} - -function newPrivateIdentifierToken(index, end, text) { - return new Token(index, end, TokenType.PrivateIdentifier, 0, text); -} - -function newKeywordToken(index, end, text) { - return new Token(index, end, TokenType.Keyword, 0, text); -} - -function newOperatorToken(index, end, text) { - return new Token(index, end, TokenType.Operator, 0, text); -} - -function newStringToken(index, end, text) { - return new Token(index, end, TokenType.String, 0, text); -} - -function newNumberToken(index, end, n) { - return new Token(index, end, TokenType.Number, n, ''); -} - -function newErrorToken(index, end, message) { - return new Token(index, end, TokenType.Error, 0, message); -} - -const EOF = new Token(-1, -1, TokenType.Character, 0, ''); - -class _Scanner { - constructor(input) { - this.input = input; - this.peek = 0; - this.index = -1; - this.length = input.length; - this.advance(); - } - - advance() { - this.peek = ++this.index >= this.length ? $EOF : this.input.charCodeAt(this.index); - } - - scanToken() { - const input = this.input, - length = this.length; - let peek = this.peek, - index = this.index; // Skip whitespace. - - while (peek <= $SPACE) { - if (++index >= length) { - peek = $EOF; - break; - } else { - peek = input.charCodeAt(index); - } - } - - this.peek = peek; - this.index = index; - - if (index >= length) { - return null; - } // Handle identifiers and numbers. - - - if (isIdentifierStart(peek)) return this.scanIdentifier(); - if (isDigit(peek)) return this.scanNumber(index); - const start = index; - - switch (peek) { - case $PERIOD: - this.advance(); - return isDigit(this.peek) ? this.scanNumber(start) : newCharacterToken(start, this.index, $PERIOD); - - case $LPAREN: - case $RPAREN: - case $LBRACE: - case $RBRACE: - case $LBRACKET: - case $RBRACKET: - case $COMMA: - case $COLON: - case $SEMICOLON: - return this.scanCharacter(start, peek); - - case $SQ: - case $DQ: - return this.scanString(); - - case $HASH: - return this.scanPrivateIdentifier(); - - case $PLUS: - case $MINUS: - case $STAR: - case $SLASH: - case $PERCENT: - case $CARET: - return this.scanOperator(start, String.fromCharCode(peek)); - - case $QUESTION: - return this.scanQuestion(start); - - case $LT: - case $GT: - return this.scanComplexOperator(start, String.fromCharCode(peek), $EQ, '='); - - case $BANG: - case $EQ: - return this.scanComplexOperator(start, String.fromCharCode(peek), $EQ, '=', $EQ, '='); - - case $AMPERSAND: - return this.scanComplexOperator(start, '&', $AMPERSAND, '&'); - - case $BAR: - return this.scanComplexOperator(start, '|', $BAR, '|'); - - case $NBSP: - while (isWhitespace(this.peek)) this.advance(); - - return this.scanToken(); - } - - this.advance(); - return this.error(`Unexpected character [${String.fromCharCode(peek)}]`, 0); - } - - scanCharacter(start, code) { - this.advance(); - return newCharacterToken(start, this.index, code); - } - - scanOperator(start, str) { - this.advance(); - return newOperatorToken(start, this.index, str); - } - /** - * Tokenize a 2/3 char long operator - * - * @param start start index in the expression - * @param one first symbol (always part of the operator) - * @param twoCode code point for the second symbol - * @param two second symbol (part of the operator when the second code point matches) - * @param threeCode code point for the third symbol - * @param three third symbol (part of the operator when provided and matches source expression) - */ - - - scanComplexOperator(start, one, twoCode, two, threeCode, three) { - this.advance(); - let str = one; - - if (this.peek == twoCode) { - this.advance(); - str += two; - } - - if (threeCode != null && this.peek == threeCode) { - this.advance(); - str += three; - } - - return newOperatorToken(start, this.index, str); - } - - scanIdentifier() { - const start = this.index; - this.advance(); - - while (isIdentifierPart(this.peek)) this.advance(); - - const str = this.input.substring(start, this.index); - return KEYWORDS.indexOf(str) > -1 ? newKeywordToken(start, this.index, str) : newIdentifierToken(start, this.index, str); - } - /** Scans an ECMAScript private identifier. */ - - - scanPrivateIdentifier() { - const start = this.index; - this.advance(); - - if (!isIdentifierStart(this.peek)) { - return this.error('Invalid character [#]', -1); - } - - while (isIdentifierPart(this.peek)) this.advance(); - - const identifierName = this.input.substring(start, this.index); - return newPrivateIdentifierToken(start, this.index, identifierName); - } - - scanNumber(start) { - let simple = this.index === start; - let hasSeparators = false; - this.advance(); // Skip initial digit. - - while (true) { - if (isDigit(this.peek)) {// Do nothing. - } else if (this.peek === $_) { - // Separators are only valid when they're surrounded by digits. E.g. `1_0_1` is - // valid while `_101` and `101_` are not. The separator can't be next to the decimal - // point or another separator either. Note that it's unlikely that we'll hit a case where - // the underscore is at the start, because that's a valid identifier and it will be picked - // up earlier in the parsing. We validate for it anyway just in case. - if (!isDigit(this.input.charCodeAt(this.index - 1)) || !isDigit(this.input.charCodeAt(this.index + 1))) { - return this.error('Invalid numeric separator', 0); - } - - hasSeparators = true; - } else if (this.peek === $PERIOD) { - simple = false; - } else if (isExponentStart(this.peek)) { - this.advance(); - if (isExponentSign(this.peek)) this.advance(); - if (!isDigit(this.peek)) return this.error('Invalid exponent', -1); - simple = false; - } else { - break; - } - - this.advance(); - } - - let str = this.input.substring(start, this.index); - - if (hasSeparators) { - str = str.replace(/_/g, ''); - } - - const value = simple ? parseIntAutoRadix(str) : parseFloat(str); - return newNumberToken(start, this.index, value); - } - - scanString() { - const start = this.index; - const quote = this.peek; - this.advance(); // Skip initial quote. - - let buffer = ''; - let marker = this.index; - const input = this.input; - - while (this.peek != quote) { - if (this.peek == $BACKSLASH) { - buffer += input.substring(marker, this.index); - this.advance(); - let unescapedCode; // Workaround for TS2.1-introduced type strictness - - this.peek = this.peek; - - if (this.peek == $u) { - // 4 character hex code for unicode character. - const hex = input.substring(this.index + 1, this.index + 5); - - if (/^[0-9a-f]+$/i.test(hex)) { - unescapedCode = parseInt(hex, 16); - } else { - return this.error(`Invalid unicode escape [\\u${hex}]`, 0); - } - - for (let i = 0; i < 5; i++) { - this.advance(); - } - } else { - unescapedCode = unescape(this.peek); - this.advance(); - } - - buffer += String.fromCharCode(unescapedCode); - marker = this.index; - } else if (this.peek == $EOF) { - return this.error('Unterminated quote', 0); - } else { - this.advance(); - } - } - - const last = input.substring(marker, this.index); - this.advance(); // Skip terminating quote. - - return newStringToken(start, this.index, buffer + last); - } - - scanQuestion(start) { - this.advance(); - let str = '?'; // Either `a ?? b` or 'a?.b'. - - if (this.peek === $QUESTION || this.peek === $PERIOD) { - str += this.peek === $PERIOD ? '.' : '?'; - this.advance(); - } - - return newOperatorToken(start, this.index, str); - } - - error(message, offset) { - const position = this.index + offset; - return newErrorToken(position, this.index, `Lexer Error: ${message} at column ${position} in expression [${this.input}]`); - } - -} - -function isIdentifierStart(code) { - return $a <= code && code <= $z || $A <= code && code <= $Z || code == $_ || code == $$; -} - -function isIdentifier(input) { - if (input.length == 0) return false; - const scanner = new _Scanner(input); - if (!isIdentifierStart(scanner.peek)) return false; - scanner.advance(); - - while (scanner.peek !== $EOF) { - if (!isIdentifierPart(scanner.peek)) return false; - scanner.advance(); - } - - return true; -} - -function isIdentifierPart(code) { - return isAsciiLetter(code) || isDigit(code) || code == $_ || code == $$; -} - -function isExponentStart(code) { - return code == $e || code == $E; -} - -function isExponentSign(code) { - return code == $MINUS || code == $PLUS; -} - -function unescape(code) { - switch (code) { - case $n: - return $LF; - - case $f: - return $FF; - - case $r: - return $CR; - - case $t: - return $TAB; - - case $v: - return $VTAB; - - default: - return code; - } -} - -function parseIntAutoRadix(text) { - const result = parseInt(text); - - if (isNaN(result)) { - throw new Error('Invalid integer literal when parsing ' + text); - } - - return result; -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -class SplitInterpolation { - constructor(strings, expressions, offsets) { - this.strings = strings; - this.expressions = expressions; - this.offsets = offsets; - } - -} - -class TemplateBindingParseResult { - constructor(templateBindings, warnings, errors) { - this.templateBindings = templateBindings; - this.warnings = warnings; - this.errors = errors; - } - -} - -class Parser$1 { - constructor(_lexer) { - this._lexer = _lexer; - this.errors = []; - } - - parseAction(input, isAssignmentEvent, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) { - this._checkNoInterpolation(input, location, interpolationConfig); - - const sourceToLex = this._stripComments(input); - - const tokens = this._lexer.tokenize(sourceToLex); - - let flags = 1 - /* ParseFlags.Action */ - ; - - if (isAssignmentEvent) { - flags |= 2 - /* ParseFlags.AssignmentEvent */ - ; - } - - const ast = new _ParseAST(input, location, absoluteOffset, tokens, flags, this.errors, 0).parseChain(); - return new ASTWithSource(ast, input, location, absoluteOffset, this.errors); - } - - parseBinding(input, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) { - const ast = this._parseBindingAst(input, location, absoluteOffset, interpolationConfig); - - return new ASTWithSource(ast, input, location, absoluteOffset, this.errors); - } - - checkSimpleExpression(ast) { - const checker = new SimpleExpressionChecker(); - ast.visit(checker); - return checker.errors; - } - - parseSimpleBinding(input, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) { - const ast = this._parseBindingAst(input, location, absoluteOffset, interpolationConfig); - - const errors = this.checkSimpleExpression(ast); - - if (errors.length > 0) { - this._reportError(`Host binding expression cannot contain ${errors.join(' ')}`, input, location); - } - - return new ASTWithSource(ast, input, location, absoluteOffset, this.errors); - } - - _reportError(message, input, errLocation, ctxLocation) { - this.errors.push(new ParserError(message, input, errLocation, ctxLocation)); - } - - _parseBindingAst(input, location, absoluteOffset, interpolationConfig) { - this._checkNoInterpolation(input, location, interpolationConfig); - - const sourceToLex = this._stripComments(input); - - const tokens = this._lexer.tokenize(sourceToLex); - - return new _ParseAST(input, location, absoluteOffset, tokens, 0 - /* ParseFlags.None */ - , this.errors, 0).parseChain(); - } - /** - * Parse microsyntax template expression and return a list of bindings or - * parsing errors in case the given expression is invalid. - * - * For example, - * ``` - *
    - * ^ ^ absoluteValueOffset for `templateValue` - * absoluteKeyOffset for `templateKey` - * ``` - * contains three bindings: - * 1. ngFor -> null - * 2. item -> NgForOfContext.$implicit - * 3. ngForOf -> items - * - * This is apparent from the de-sugared template: - * ``` - * - * ``` - * - * @param templateKey name of directive, without the * prefix. For example: ngIf, ngFor - * @param templateValue RHS of the microsyntax attribute - * @param templateUrl template filename if it's external, component filename if it's inline - * @param absoluteKeyOffset start of the `templateKey` - * @param absoluteValueOffset start of the `templateValue` - */ - - - parseTemplateBindings(templateKey, templateValue, templateUrl, absoluteKeyOffset, absoluteValueOffset) { - const tokens = this._lexer.tokenize(templateValue); - - const parser = new _ParseAST(templateValue, templateUrl, absoluteValueOffset, tokens, 0 - /* ParseFlags.None */ - , this.errors, 0 - /* relative offset */ - ); - return parser.parseTemplateBindings({ - source: templateKey, - span: new AbsoluteSourceSpan(absoluteKeyOffset, absoluteKeyOffset + templateKey.length) - }); - } - - parseInterpolation(input, location, absoluteOffset, interpolatedTokens, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) { - const { - strings, - expressions, - offsets - } = this.splitInterpolation(input, location, interpolatedTokens, interpolationConfig); - if (expressions.length === 0) return null; - const expressionNodes = []; - - for (let i = 0; i < expressions.length; ++i) { - const expressionText = expressions[i].text; - - const sourceToLex = this._stripComments(expressionText); - - const tokens = this._lexer.tokenize(sourceToLex); - - const ast = new _ParseAST(input, location, absoluteOffset, tokens, 0 - /* ParseFlags.None */ - , this.errors, offsets[i]).parseChain(); - expressionNodes.push(ast); - } - - return this.createInterpolationAst(strings.map(s => s.text), expressionNodes, input, location, absoluteOffset); - } - /** - * Similar to `parseInterpolation`, but treats the provided string as a single expression - * element that would normally appear within the interpolation prefix and suffix (`{{` and `}}`). - * This is used for parsing the switch expression in ICUs. - */ - - - parseInterpolationExpression(expression, location, absoluteOffset) { - const sourceToLex = this._stripComments(expression); - - const tokens = this._lexer.tokenize(sourceToLex); - - const ast = new _ParseAST(expression, location, absoluteOffset, tokens, 0 - /* ParseFlags.None */ - , this.errors, 0).parseChain(); - const strings = ['', '']; // The prefix and suffix strings are both empty - - return this.createInterpolationAst(strings, [ast], expression, location, absoluteOffset); - } - - createInterpolationAst(strings, expressions, input, location, absoluteOffset) { - const span = new ParseSpan(0, input.length); - const interpolation = new Interpolation(span, span.toAbsolute(absoluteOffset), strings, expressions); - return new ASTWithSource(interpolation, input, location, absoluteOffset, this.errors); - } - /** - * Splits a string of text into "raw" text segments and expressions present in interpolations in - * the string. - * Returns `null` if there are no interpolations, otherwise a - * `SplitInterpolation` with splits that look like - * ... - */ - - - splitInterpolation(input, location, interpolatedTokens, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) { - const strings = []; - const expressions = []; - const offsets = []; - const inputToTemplateIndexMap = interpolatedTokens ? getIndexMapForOriginalTemplate(interpolatedTokens) : null; - let i = 0; - let atInterpolation = false; - let extendLastString = false; - let { - start: interpStart, - end: interpEnd - } = interpolationConfig; - - while (i < input.length) { - if (!atInterpolation) { - // parse until starting {{ - const start = i; - i = input.indexOf(interpStart, i); - - if (i === -1) { - i = input.length; - } - - const text = input.substring(start, i); - strings.push({ - text, - start, - end: i - }); - atInterpolation = true; - } else { - // parse from starting {{ to ending }} while ignoring content inside quotes. - const fullStart = i; - const exprStart = fullStart + interpStart.length; - - const exprEnd = this._getInterpolationEndIndex(input, interpEnd, exprStart); - - if (exprEnd === -1) { - // Could not find the end of the interpolation; do not parse an expression. - // Instead we should extend the content on the last raw string. - atInterpolation = false; - extendLastString = true; - break; - } - - const fullEnd = exprEnd + interpEnd.length; - const text = input.substring(exprStart, exprEnd); - - if (text.trim().length === 0) { - this._reportError('Blank expressions are not allowed in interpolated strings', input, `at column ${i} in`, location); - } - - expressions.push({ - text, - start: fullStart, - end: fullEnd - }); - const startInOriginalTemplate = inputToTemplateIndexMap?.get(fullStart) ?? fullStart; - const offset = startInOriginalTemplate + interpStart.length; - offsets.push(offset); - i = fullEnd; - atInterpolation = false; - } - } - - if (!atInterpolation) { - // If we are now at a text section, add the remaining content as a raw string. - if (extendLastString) { - const piece = strings[strings.length - 1]; - piece.text += input.substring(i); - piece.end = input.length; - } else { - strings.push({ - text: input.substring(i), - start: i, - end: input.length - }); - } - } - - return new SplitInterpolation(strings, expressions, offsets); - } - - wrapLiteralPrimitive(input, location, absoluteOffset) { - const span = new ParseSpan(0, input == null ? 0 : input.length); - return new ASTWithSource(new LiteralPrimitive(span, span.toAbsolute(absoluteOffset), input), input, location, absoluteOffset, this.errors); - } - - _stripComments(input) { - const i = this._commentStart(input); - - return i != null ? input.substring(0, i) : input; - } - - _commentStart(input) { - let outerQuote = null; - - for (let i = 0; i < input.length - 1; i++) { - const char = input.charCodeAt(i); - const nextChar = input.charCodeAt(i + 1); - if (char === $SLASH && nextChar == $SLASH && outerQuote == null) return i; - - if (outerQuote === char) { - outerQuote = null; - } else if (outerQuote == null && isQuote(char)) { - outerQuote = char; - } - } - - return null; - } - - _checkNoInterpolation(input, location, { - start, - end - }) { - let startIndex = -1; - let endIndex = -1; - - for (const charIndex of this._forEachUnquotedChar(input, 0)) { - if (startIndex === -1) { - if (input.startsWith(start)) { - startIndex = charIndex; - } - } else { - endIndex = this._getInterpolationEndIndex(input, end, charIndex); - - if (endIndex > -1) { - break; - } - } - } - - if (startIndex > -1 && endIndex > -1) { - this._reportError(`Got interpolation (${start}${end}) where expression was expected`, input, `at column ${startIndex} in`, location); - } - } - /** - * Finds the index of the end of an interpolation expression - * while ignoring comments and quoted content. - */ - - - _getInterpolationEndIndex(input, expressionEnd, start) { - for (const charIndex of this._forEachUnquotedChar(input, start)) { - if (input.startsWith(expressionEnd, charIndex)) { - return charIndex; - } // Nothing else in the expression matters after we've - // hit a comment so look directly for the end token. - - - if (input.startsWith('//', charIndex)) { - return input.indexOf(expressionEnd, charIndex); - } - } - - return -1; - } - /** - * Generator used to iterate over the character indexes of a string that are outside of quotes. - * @param input String to loop through. - * @param start Index within the string at which to start. - */ - - - *_forEachUnquotedChar(input, start) { - let currentQuote = null; - let escapeCount = 0; - - for (let i = start; i < input.length; i++) { - const char = input[i]; // Skip the characters inside quotes. Note that we only care about the outer-most - // quotes matching up and we need to account for escape characters. - - if (isQuote(input.charCodeAt(i)) && (currentQuote === null || currentQuote === char) && escapeCount % 2 === 0) { - currentQuote = currentQuote === null ? char : null; - } else if (currentQuote === null) { - yield i; - } - - escapeCount = char === '\\' ? escapeCount + 1 : 0; - } - } - -} -/** Describes a stateful context an expression parser is in. */ - - -var ParseContextFlags; - -(function (ParseContextFlags) { - ParseContextFlags[ParseContextFlags["None"] = 0] = "None"; - /** - * A Writable context is one in which a value may be written to an lvalue. - * For example, after we see a property access, we may expect a write to the - * property via the "=" operator. - * prop - * ^ possible "=" after - */ - - ParseContextFlags[ParseContextFlags["Writable"] = 1] = "Writable"; -})(ParseContextFlags || (ParseContextFlags = {})); - -class _ParseAST { - constructor(input, location, absoluteOffset, tokens, parseFlags, errors, offset) { - this.input = input; - this.location = location; - this.absoluteOffset = absoluteOffset; - this.tokens = tokens; - this.parseFlags = parseFlags; - this.errors = errors; - this.offset = offset; - this.rparensExpected = 0; - this.rbracketsExpected = 0; - this.rbracesExpected = 0; - this.context = ParseContextFlags.None; // Cache of expression start and input indeces to the absolute source span they map to, used to - // prevent creating superfluous source spans in `sourceSpan`. - // A serial of the expression start and input index is used for mapping because both are stateful - // and may change for subsequent expressions visited by the parser. - - this.sourceSpanCache = new Map(); - this.index = 0; - } - - peek(offset) { - const i = this.index + offset; - return i < this.tokens.length ? this.tokens[i] : EOF; - } - - get next() { - return this.peek(0); - } - /** Whether all the parser input has been processed. */ - - - get atEOF() { - return this.index >= this.tokens.length; - } - /** - * Index of the next token to be processed, or the end of the last token if all have been - * processed. - */ - - - get inputIndex() { - return this.atEOF ? this.currentEndIndex : this.next.index + this.offset; - } - /** - * End index of the last processed token, or the start of the first token if none have been - * processed. - */ - - - get currentEndIndex() { - if (this.index > 0) { - const curToken = this.peek(-1); - return curToken.end + this.offset; - } // No tokens have been processed yet; return the next token's start or the length of the input - // if there is no token. - - - if (this.tokens.length === 0) { - return this.input.length + this.offset; - } - - return this.next.index + this.offset; - } - /** - * Returns the absolute offset of the start of the current token. - */ - - - get currentAbsoluteOffset() { - return this.absoluteOffset + this.inputIndex; - } - /** - * Retrieve a `ParseSpan` from `start` to the current position (or to `artificialEndIndex` if - * provided). - * - * @param start Position from which the `ParseSpan` will start. - * @param artificialEndIndex Optional ending index to be used if provided (and if greater than the - * natural ending index) - */ - - - span(start, artificialEndIndex) { - let endIndex = this.currentEndIndex; - - if (artificialEndIndex !== undefined && artificialEndIndex > this.currentEndIndex) { - endIndex = artificialEndIndex; - } // In some unusual parsing scenarios (like when certain tokens are missing and an `EmptyExpr` is - // being created), the current token may already be advanced beyond the `currentEndIndex`. This - // appears to be a deep-seated parser bug. - // - // As a workaround for now, swap the start and end indices to ensure a valid `ParseSpan`. - // TODO(alxhub): fix the bug upstream in the parser state, and remove this workaround. - - - if (start > endIndex) { - const tmp = endIndex; - endIndex = start; - start = tmp; - } - - return new ParseSpan(start, endIndex); - } - - sourceSpan(start, artificialEndIndex) { - const serial = `${start}@${this.inputIndex}:${artificialEndIndex}`; - - if (!this.sourceSpanCache.has(serial)) { - this.sourceSpanCache.set(serial, this.span(start, artificialEndIndex).toAbsolute(this.absoluteOffset)); - } - - return this.sourceSpanCache.get(serial); - } - - advance() { - this.index++; - } - /** - * Executes a callback in the provided context. - */ - - - withContext(context, cb) { - this.context |= context; - const ret = cb(); - this.context ^= context; - return ret; - } - - consumeOptionalCharacter(code) { - if (this.next.isCharacter(code)) { - this.advance(); - return true; - } else { - return false; - } - } - - peekKeywordLet() { - return this.next.isKeywordLet(); - } - - peekKeywordAs() { - return this.next.isKeywordAs(); - } - /** - * Consumes an expected character, otherwise emits an error about the missing expected character - * and skips over the token stream until reaching a recoverable point. - * - * See `this.error` and `this.skip` for more details. - */ - - - expectCharacter(code) { - if (this.consumeOptionalCharacter(code)) return; - this.error(`Missing expected ${String.fromCharCode(code)}`); - } - - consumeOptionalOperator(op) { - if (this.next.isOperator(op)) { - this.advance(); - return true; - } else { - return false; - } - } - - expectOperator(operator) { - if (this.consumeOptionalOperator(operator)) return; - this.error(`Missing expected operator ${operator}`); - } - - prettyPrintToken(tok) { - return tok === EOF ? 'end of input' : `token ${tok}`; - } - - expectIdentifierOrKeyword() { - const n = this.next; - - if (!n.isIdentifier() && !n.isKeyword()) { - if (n.isPrivateIdentifier()) { - this._reportErrorForPrivateIdentifier(n, 'expected identifier or keyword'); - } else { - this.error(`Unexpected ${this.prettyPrintToken(n)}, expected identifier or keyword`); - } - - return null; - } - - this.advance(); - return n.toString(); - } - - expectIdentifierOrKeywordOrString() { - const n = this.next; - - if (!n.isIdentifier() && !n.isKeyword() && !n.isString()) { - if (n.isPrivateIdentifier()) { - this._reportErrorForPrivateIdentifier(n, 'expected identifier, keyword or string'); - } else { - this.error(`Unexpected ${this.prettyPrintToken(n)}, expected identifier, keyword, or string`); - } - - return ''; - } - - this.advance(); - return n.toString(); - } - - parseChain() { - const exprs = []; - const start = this.inputIndex; - - while (this.index < this.tokens.length) { - const expr = this.parsePipe(); - exprs.push(expr); - - if (this.consumeOptionalCharacter($SEMICOLON)) { - if (!(this.parseFlags & 1 - /* ParseFlags.Action */ - )) { - this.error('Binding expression cannot contain chained expression'); - } - - while (this.consumeOptionalCharacter($SEMICOLON)) {} // read all semicolons - - } else if (this.index < this.tokens.length) { - this.error(`Unexpected token '${this.next}'`); - } - } - - if (exprs.length == 0) { - // We have no expressions so create an empty expression that spans the entire input length - const artificialStart = this.offset; - const artificialEnd = this.offset + this.input.length; - return new EmptyExpr(this.span(artificialStart, artificialEnd), this.sourceSpan(artificialStart, artificialEnd)); - } - - if (exprs.length == 1) return exprs[0]; - return new Chain(this.span(start), this.sourceSpan(start), exprs); - } - - parsePipe() { - const start = this.inputIndex; - let result = this.parseExpression(); - - if (this.consumeOptionalOperator('|')) { - if (this.parseFlags & 1 - /* ParseFlags.Action */ - ) { - this.error('Cannot have a pipe in an action expression'); - } - - do { - const nameStart = this.inputIndex; - let nameId = this.expectIdentifierOrKeyword(); - let nameSpan; - let fullSpanEnd = undefined; - - if (nameId !== null) { - nameSpan = this.sourceSpan(nameStart); - } else { - // No valid identifier was found, so we'll assume an empty pipe name (''). - nameId = ''; // However, there may have been whitespace present between the pipe character and the next - // token in the sequence (or the end of input). We want to track this whitespace so that - // the `BindingPipe` we produce covers not just the pipe character, but any trailing - // whitespace beyond it. Another way of thinking about this is that the zero-length name - // is assumed to be at the end of any whitespace beyond the pipe character. - // - // Therefore, we push the end of the `ParseSpan` for this pipe all the way up to the - // beginning of the next token, or until the end of input if the next token is EOF. - - fullSpanEnd = this.next.index !== -1 ? this.next.index : this.input.length + this.offset; // The `nameSpan` for an empty pipe name is zero-length at the end of any whitespace - // beyond the pipe character. - - nameSpan = new ParseSpan(fullSpanEnd, fullSpanEnd).toAbsolute(this.absoluteOffset); - } - - const args = []; - - while (this.consumeOptionalCharacter($COLON)) { - args.push(this.parseExpression()); // If there are additional expressions beyond the name, then the artificial end for the - // name is no longer relevant. - } - - result = new BindingPipe(this.span(start), this.sourceSpan(start, fullSpanEnd), result, nameId, args, nameSpan); - } while (this.consumeOptionalOperator('|')); - } - - return result; - } - - parseExpression() { - return this.parseConditional(); - } - - parseConditional() { - const start = this.inputIndex; - const result = this.parseLogicalOr(); - - if (this.consumeOptionalOperator('?')) { - const yes = this.parsePipe(); - let no; - - if (!this.consumeOptionalCharacter($COLON)) { - const end = this.inputIndex; - const expression = this.input.substring(start, end); - this.error(`Conditional expression ${expression} requires all 3 expressions`); - no = new EmptyExpr(this.span(start), this.sourceSpan(start)); - } else { - no = this.parsePipe(); - } - - return new Conditional(this.span(start), this.sourceSpan(start), result, yes, no); - } else { - return result; - } - } - - parseLogicalOr() { - // '||' - const start = this.inputIndex; - let result = this.parseLogicalAnd(); - - while (this.consumeOptionalOperator('||')) { - const right = this.parseLogicalAnd(); - result = new Binary(this.span(start), this.sourceSpan(start), '||', result, right); - } - - return result; - } - - parseLogicalAnd() { - // '&&' - const start = this.inputIndex; - let result = this.parseNullishCoalescing(); - - while (this.consumeOptionalOperator('&&')) { - const right = this.parseNullishCoalescing(); - result = new Binary(this.span(start), this.sourceSpan(start), '&&', result, right); - } - - return result; - } - - parseNullishCoalescing() { - // '??' - const start = this.inputIndex; - let result = this.parseEquality(); - - while (this.consumeOptionalOperator('??')) { - const right = this.parseEquality(); - result = new Binary(this.span(start), this.sourceSpan(start), '??', result, right); - } - - return result; - } - - parseEquality() { - // '==','!=','===','!==' - const start = this.inputIndex; - let result = this.parseRelational(); - - while (this.next.type == TokenType.Operator) { - const operator = this.next.strValue; - - switch (operator) { - case '==': - case '===': - case '!=': - case '!==': - this.advance(); - const right = this.parseRelational(); - result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right); - continue; - } - - break; - } - - return result; - } - - parseRelational() { - // '<', '>', '<=', '>=' - const start = this.inputIndex; - let result = this.parseAdditive(); - - while (this.next.type == TokenType.Operator) { - const operator = this.next.strValue; - - switch (operator) { - case '<': - case '>': - case '<=': - case '>=': - this.advance(); - const right = this.parseAdditive(); - result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right); - continue; - } - - break; - } - - return result; - } - - parseAdditive() { - // '+', '-' - const start = this.inputIndex; - let result = this.parseMultiplicative(); - - while (this.next.type == TokenType.Operator) { - const operator = this.next.strValue; - - switch (operator) { - case '+': - case '-': - this.advance(); - let right = this.parseMultiplicative(); - result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right); - continue; - } - - break; - } - - return result; - } - - parseMultiplicative() { - // '*', '%', '/' - const start = this.inputIndex; - let result = this.parsePrefix(); - - while (this.next.type == TokenType.Operator) { - const operator = this.next.strValue; - - switch (operator) { - case '*': - case '%': - case '/': - this.advance(); - let right = this.parsePrefix(); - result = new Binary(this.span(start), this.sourceSpan(start), operator, result, right); - continue; - } - - break; - } - - return result; - } - - parsePrefix() { - if (this.next.type == TokenType.Operator) { - const start = this.inputIndex; - const operator = this.next.strValue; - let result; - - switch (operator) { - case '+': - this.advance(); - result = this.parsePrefix(); - return Unary.createPlus(this.span(start), this.sourceSpan(start), result); - - case '-': - this.advance(); - result = this.parsePrefix(); - return Unary.createMinus(this.span(start), this.sourceSpan(start), result); - - case '!': - this.advance(); - result = this.parsePrefix(); - return new PrefixNot(this.span(start), this.sourceSpan(start), result); - } - } - - return this.parseCallChain(); - } - - parseCallChain() { - const start = this.inputIndex; - let result = this.parsePrimary(); - - while (true) { - if (this.consumeOptionalCharacter($PERIOD)) { - result = this.parseAccessMember(result, start, false); - } else if (this.consumeOptionalOperator('?.')) { - if (this.consumeOptionalCharacter($LPAREN)) { - result = this.parseCall(result, start, true); - } else { - result = this.consumeOptionalCharacter($LBRACKET) ? this.parseKeyedReadOrWrite(result, start, true) : this.parseAccessMember(result, start, true); - } - } else if (this.consumeOptionalCharacter($LBRACKET)) { - result = this.parseKeyedReadOrWrite(result, start, false); - } else if (this.consumeOptionalCharacter($LPAREN)) { - result = this.parseCall(result, start, false); - } else if (this.consumeOptionalOperator('!')) { - result = new NonNullAssert(this.span(start), this.sourceSpan(start), result); - } else { - return result; - } - } - } - - parsePrimary() { - const start = this.inputIndex; - - if (this.consumeOptionalCharacter($LPAREN)) { - this.rparensExpected++; - const result = this.parsePipe(); - this.rparensExpected--; - this.expectCharacter($RPAREN); - return result; - } else if (this.next.isKeywordNull()) { - this.advance(); - return new LiteralPrimitive(this.span(start), this.sourceSpan(start), null); - } else if (this.next.isKeywordUndefined()) { - this.advance(); - return new LiteralPrimitive(this.span(start), this.sourceSpan(start), void 0); - } else if (this.next.isKeywordTrue()) { - this.advance(); - return new LiteralPrimitive(this.span(start), this.sourceSpan(start), true); - } else if (this.next.isKeywordFalse()) { - this.advance(); - return new LiteralPrimitive(this.span(start), this.sourceSpan(start), false); - } else if (this.next.isKeywordThis()) { - this.advance(); - return new ThisReceiver(this.span(start), this.sourceSpan(start)); - } else if (this.consumeOptionalCharacter($LBRACKET)) { - this.rbracketsExpected++; - const elements = this.parseExpressionList($RBRACKET); - this.rbracketsExpected--; - this.expectCharacter($RBRACKET); - return new LiteralArray(this.span(start), this.sourceSpan(start), elements); - } else if (this.next.isCharacter($LBRACE)) { - return this.parseLiteralMap(); - } else if (this.next.isIdentifier()) { - return this.parseAccessMember(new ImplicitReceiver(this.span(start), this.sourceSpan(start)), start, false); - } else if (this.next.isNumber()) { - const value = this.next.toNumber(); - this.advance(); - return new LiteralPrimitive(this.span(start), this.sourceSpan(start), value); - } else if (this.next.isString()) { - const literalValue = this.next.toString(); - this.advance(); - return new LiteralPrimitive(this.span(start), this.sourceSpan(start), literalValue); - } else if (this.next.isPrivateIdentifier()) { - this._reportErrorForPrivateIdentifier(this.next, null); - - return new EmptyExpr(this.span(start), this.sourceSpan(start)); - } else if (this.index >= this.tokens.length) { - this.error(`Unexpected end of expression: ${this.input}`); - return new EmptyExpr(this.span(start), this.sourceSpan(start)); - } else { - this.error(`Unexpected token ${this.next}`); - return new EmptyExpr(this.span(start), this.sourceSpan(start)); - } - } - - parseExpressionList(terminator) { - const result = []; - - do { - if (!this.next.isCharacter(terminator)) { - result.push(this.parsePipe()); - } else { - break; - } - } while (this.consumeOptionalCharacter($COMMA)); - - return result; - } - - parseLiteralMap() { - const keys = []; - const values = []; - const start = this.inputIndex; - this.expectCharacter($LBRACE); - - if (!this.consumeOptionalCharacter($RBRACE)) { - this.rbracesExpected++; - - do { - const keyStart = this.inputIndex; - const quoted = this.next.isString(); - const key = this.expectIdentifierOrKeywordOrString(); - keys.push({ - key, - quoted - }); // Properties with quoted keys can't use the shorthand syntax. - - if (quoted) { - this.expectCharacter($COLON); - values.push(this.parsePipe()); - } else if (this.consumeOptionalCharacter($COLON)) { - values.push(this.parsePipe()); - } else { - const span = this.span(keyStart); - const sourceSpan = this.sourceSpan(keyStart); - values.push(new PropertyRead(span, sourceSpan, sourceSpan, new ImplicitReceiver(span, sourceSpan), key)); - } - } while (this.consumeOptionalCharacter($COMMA)); - - this.rbracesExpected--; - this.expectCharacter($RBRACE); - } - - return new LiteralMap(this.span(start), this.sourceSpan(start), keys, values); - } - - parseAccessMember(readReceiver, start, isSafe) { - const nameStart = this.inputIndex; - const id = this.withContext(ParseContextFlags.Writable, () => { - const id = this.expectIdentifierOrKeyword() ?? ''; - - if (id.length === 0) { - this.error(`Expected identifier for property access`, readReceiver.span.end); - } - - return id; - }); - const nameSpan = this.sourceSpan(nameStart); - let receiver; - - if (isSafe) { - if (this.consumeOptionalAssignment()) { - this.error('The \'?.\' operator cannot be used in the assignment'); - receiver = new EmptyExpr(this.span(start), this.sourceSpan(start)); - } else { - receiver = new SafePropertyRead(this.span(start), this.sourceSpan(start), nameSpan, readReceiver, id); - } - } else { - if (this.consumeOptionalAssignment()) { - if (!(this.parseFlags & 1 - /* ParseFlags.Action */ - )) { - this.error('Bindings cannot contain assignments'); - return new EmptyExpr(this.span(start), this.sourceSpan(start)); - } - - const value = this.parseConditional(); - receiver = new PropertyWrite(this.span(start), this.sourceSpan(start), nameSpan, readReceiver, id, value); - } else { - receiver = new PropertyRead(this.span(start), this.sourceSpan(start), nameSpan, readReceiver, id); - } - } - - return receiver; - } - - parseCall(receiver, start, isSafe) { - const argumentStart = this.inputIndex; - this.rparensExpected++; - const args = this.parseCallArguments(); - const argumentSpan = this.span(argumentStart, this.inputIndex).toAbsolute(this.absoluteOffset); - this.expectCharacter($RPAREN); - this.rparensExpected--; - const span = this.span(start); - const sourceSpan = this.sourceSpan(start); - return isSafe ? new SafeCall(span, sourceSpan, receiver, args, argumentSpan) : new Call(span, sourceSpan, receiver, args, argumentSpan); - } - - consumeOptionalAssignment() { - // When parsing assignment events (originating from two-way-binding aka banana-in-a-box syntax), - // it is valid for the primary expression to be terminated by the non-null operator. This - // primary expression is substituted as LHS of the assignment operator to achieve - // two-way-binding, such that the LHS could be the non-null operator. The grammar doesn't - // naturally allow for this syntax, so assignment events are parsed specially. - if (this.parseFlags & 2 - /* ParseFlags.AssignmentEvent */ - && this.next.isOperator('!') && this.peek(1).isOperator('=')) { - // First skip over the ! operator. - this.advance(); // Then skip over the = operator, to fully consume the optional assignment operator. - - this.advance(); - return true; - } - - return this.consumeOptionalOperator('='); - } - - parseCallArguments() { - if (this.next.isCharacter($RPAREN)) return []; - const positionals = []; - - do { - positionals.push(this.parsePipe()); - } while (this.consumeOptionalCharacter($COMMA)); - - return positionals; - } - /** - * Parses an identifier, a keyword, a string with an optional `-` in between, - * and returns the string along with its absolute source span. - */ - - - expectTemplateBindingKey() { - let result = ''; - let operatorFound = false; - const start = this.currentAbsoluteOffset; - - do { - result += this.expectIdentifierOrKeywordOrString(); - operatorFound = this.consumeOptionalOperator('-'); - - if (operatorFound) { - result += '-'; - } - } while (operatorFound); - - return { - source: result, - span: new AbsoluteSourceSpan(start, start + result.length) - }; - } - /** - * Parse microsyntax template expression and return a list of bindings or - * parsing errors in case the given expression is invalid. - * - * For example, - * ``` - *
    - * ``` - * contains five bindings: - * 1. ngFor -> null - * 2. item -> NgForOfContext.$implicit - * 3. ngForOf -> items - * 4. i -> NgForOfContext.index - * 5. ngForTrackBy -> func - * - * For a full description of the microsyntax grammar, see - * https://gist.github.com/mhevery/d3530294cff2e4a1b3fe15ff75d08855 - * - * @param templateKey name of the microsyntax directive, like ngIf, ngFor, - * without the *, along with its absolute span. - */ - - - parseTemplateBindings(templateKey) { - const bindings = []; // The first binding is for the template key itself - // In *ngFor="let item of items", key = "ngFor", value = null - // In *ngIf="cond | pipe", key = "ngIf", value = "cond | pipe" - - bindings.push(...this.parseDirectiveKeywordBindings(templateKey)); - - while (this.index < this.tokens.length) { - // If it starts with 'let', then this must be variable declaration - const letBinding = this.parseLetBinding(); - - if (letBinding) { - bindings.push(letBinding); - } else { - // Two possible cases here, either `value "as" key` or - // "directive-keyword expression". We don't know which case, but both - // "value" and "directive-keyword" are template binding key, so consume - // the key first. - const key = this.expectTemplateBindingKey(); // Peek at the next token, if it is "as" then this must be variable - // declaration. - - const binding = this.parseAsBinding(key); - - if (binding) { - bindings.push(binding); - } else { - // Otherwise the key must be a directive keyword, like "of". Transform - // the key to actual key. Eg. of -> ngForOf, trackBy -> ngForTrackBy - key.source = templateKey.source + key.source.charAt(0).toUpperCase() + key.source.substring(1); - bindings.push(...this.parseDirectiveKeywordBindings(key)); - } - } - - this.consumeStatementTerminator(); - } - - return new TemplateBindingParseResult(bindings, [] - /* warnings */ - , this.errors); - } - - parseKeyedReadOrWrite(receiver, start, isSafe) { - return this.withContext(ParseContextFlags.Writable, () => { - this.rbracketsExpected++; - const key = this.parsePipe(); - - if (key instanceof EmptyExpr) { - this.error(`Key access cannot be empty`); - } - - this.rbracketsExpected--; - this.expectCharacter($RBRACKET); - - if (this.consumeOptionalOperator('=')) { - if (isSafe) { - this.error('The \'?.\' operator cannot be used in the assignment'); - } else { - const value = this.parseConditional(); - return new KeyedWrite(this.span(start), this.sourceSpan(start), receiver, key, value); - } - } else { - return isSafe ? new SafeKeyedRead(this.span(start), this.sourceSpan(start), receiver, key) : new KeyedRead(this.span(start), this.sourceSpan(start), receiver, key); - } - - return new EmptyExpr(this.span(start), this.sourceSpan(start)); - }); - } - /** - * Parse a directive keyword, followed by a mandatory expression. - * For example, "of items", "trackBy: func". - * The bindings are: ngForOf -> items, ngForTrackBy -> func - * There could be an optional "as" binding that follows the expression. - * For example, - * ``` - * *ngFor="let item of items | slice:0:1 as collection". - * ^^ ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ - * keyword bound target optional 'as' binding - * ``` - * - * @param key binding key, for example, ngFor, ngIf, ngForOf, along with its - * absolute span. - */ - - - parseDirectiveKeywordBindings(key) { - const bindings = []; - this.consumeOptionalCharacter($COLON); // trackBy: trackByFunction - - const value = this.getDirectiveBoundTarget(); - let spanEnd = this.currentAbsoluteOffset; // The binding could optionally be followed by "as". For example, - // *ngIf="cond | pipe as x". In this case, the key in the "as" binding - // is "x" and the value is the template key itself ("ngIf"). Note that the - // 'key' in the current context now becomes the "value" in the next binding. - - const asBinding = this.parseAsBinding(key); - - if (!asBinding) { - this.consumeStatementTerminator(); - spanEnd = this.currentAbsoluteOffset; - } - - const sourceSpan = new AbsoluteSourceSpan(key.span.start, spanEnd); - bindings.push(new ExpressionBinding(sourceSpan, key, value)); - - if (asBinding) { - bindings.push(asBinding); - } - - return bindings; - } - /** - * Return the expression AST for the bound target of a directive keyword - * binding. For example, - * ``` - * *ngIf="condition | pipe" - * ^^^^^^^^^^^^^^^^ bound target for "ngIf" - * *ngFor="let item of items" - * ^^^^^ bound target for "ngForOf" - * ``` - */ - - - getDirectiveBoundTarget() { - if (this.next === EOF || this.peekKeywordAs() || this.peekKeywordLet()) { - return null; - } - - const ast = this.parsePipe(); // example: "condition | async" - - const { - start, - end - } = ast.span; - const value = this.input.substring(start, end); - return new ASTWithSource(ast, value, this.location, this.absoluteOffset + start, this.errors); - } - /** - * Return the binding for a variable declared using `as`. Note that the order - * of the key-value pair in this declaration is reversed. For example, - * ``` - * *ngFor="let item of items; index as i" - * ^^^^^ ^ - * value key - * ``` - * - * @param value name of the value in the declaration, "ngIf" in the example - * above, along with its absolute span. - */ - - - parseAsBinding(value) { - if (!this.peekKeywordAs()) { - return null; - } - - this.advance(); // consume the 'as' keyword - - const key = this.expectTemplateBindingKey(); - this.consumeStatementTerminator(); - const sourceSpan = new AbsoluteSourceSpan(value.span.start, this.currentAbsoluteOffset); - return new VariableBinding(sourceSpan, key, value); - } - /** - * Return the binding for a variable declared using `let`. For example, - * ``` - * *ngFor="let item of items; let i=index;" - * ^^^^^^^^ ^^^^^^^^^^^ - * ``` - * In the first binding, `item` is bound to `NgForOfContext.$implicit`. - * In the second binding, `i` is bound to `NgForOfContext.index`. - */ - - - parseLetBinding() { - if (!this.peekKeywordLet()) { - return null; - } - - const spanStart = this.currentAbsoluteOffset; - this.advance(); // consume the 'let' keyword - - const key = this.expectTemplateBindingKey(); - let value = null; - - if (this.consumeOptionalOperator('=')) { - value = this.expectTemplateBindingKey(); - } - - this.consumeStatementTerminator(); - const sourceSpan = new AbsoluteSourceSpan(spanStart, this.currentAbsoluteOffset); - return new VariableBinding(sourceSpan, key, value); - } - /** - * Consume the optional statement terminator: semicolon or comma. - */ - - - consumeStatementTerminator() { - this.consumeOptionalCharacter($SEMICOLON) || this.consumeOptionalCharacter($COMMA); - } - /** - * Records an error and skips over the token stream until reaching a recoverable point. See - * `this.skip` for more details on token skipping. - */ - - - error(message, index = null) { - this.errors.push(new ParserError(message, this.input, this.locationText(index), this.location)); - this.skip(); - } - - locationText(index = null) { - if (index == null) index = this.index; - return index < this.tokens.length ? `at column ${this.tokens[index].index + 1} in` : `at the end of the expression`; - } - /** - * Records an error for an unexpected private identifier being discovered. - * @param token Token representing a private identifier. - * @param extraMessage Optional additional message being appended to the error. - */ - - - _reportErrorForPrivateIdentifier(token, extraMessage) { - let errorMessage = `Private identifiers are not supported. Unexpected private identifier: ${token}`; - - if (extraMessage !== null) { - errorMessage += `, ${extraMessage}`; - } - - this.error(errorMessage); - } - /** - * Error recovery should skip tokens until it encounters a recovery point. - * - * The following are treated as unconditional recovery points: - * - end of input - * - ';' (parseChain() is always the root production, and it expects a ';') - * - '|' (since pipes may be chained and each pipe expression may be treated independently) - * - * The following are conditional recovery points: - * - ')', '}', ']' if one of calling productions is expecting one of these symbols - * - This allows skip() to recover from errors such as '(a.) + 1' allowing more of the AST to - * be retained (it doesn't skip any tokens as the ')' is retained because of the '(' begins - * an '(' ')' production). - * The recovery points of grouping symbols must be conditional as they must be skipped if - * none of the calling productions are not expecting the closing token else we will never - * make progress in the case of an extraneous group closing symbol (such as a stray ')'). - * That is, we skip a closing symbol if we are not in a grouping production. - * - '=' in a `Writable` context - * - In this context, we are able to recover after seeing the `=` operator, which - * signals the presence of an independent rvalue expression following the `=` operator. - * - * If a production expects one of these token it increments the corresponding nesting count, - * and then decrements it just prior to checking if the token is in the input. - */ - - - skip() { - let n = this.next; - - while (this.index < this.tokens.length && !n.isCharacter($SEMICOLON) && !n.isOperator('|') && (this.rparensExpected <= 0 || !n.isCharacter($RPAREN)) && (this.rbracesExpected <= 0 || !n.isCharacter($RBRACE)) && (this.rbracketsExpected <= 0 || !n.isCharacter($RBRACKET)) && (!(this.context & ParseContextFlags.Writable) || !n.isOperator('='))) { - if (this.next.isError()) { - this.errors.push(new ParserError(this.next.toString(), this.input, this.locationText(), this.location)); - } - - this.advance(); - n = this.next; - } - } - -} - -class SimpleExpressionChecker extends RecursiveAstVisitor { - constructor() { - super(...arguments); - this.errors = []; - } - - visitPipe() { - this.errors.push('pipes'); - } - -} -/** - * Computes the real offset in the original template for indexes in an interpolation. - * - * Because templates can have encoded HTML entities and the input passed to the parser at this stage - * of the compiler is the _decoded_ value, we need to compute the real offset using the original - * encoded values in the interpolated tokens. Note that this is only a special case handling for - * `MlParserTokenType.ENCODED_ENTITY` token types. All other interpolated tokens are expected to - * have parts which exactly match the input string for parsing the interpolation. - * - * @param interpolatedTokens The tokens for the interpolated value. - * - * @returns A map of index locations in the decoded template to indexes in the original template - */ - - -function getIndexMapForOriginalTemplate(interpolatedTokens) { - let offsetMap = new Map(); - let consumedInOriginalTemplate = 0; - let consumedInInput = 0; - let tokenIndex = 0; - - while (tokenIndex < interpolatedTokens.length) { - const currentToken = interpolatedTokens[tokenIndex]; - - if (currentToken.type === 9 - /* MlParserTokenType.ENCODED_ENTITY */ - ) { - const [decoded, encoded] = currentToken.parts; - consumedInOriginalTemplate += encoded.length; - consumedInInput += decoded.length; - } else { - const lengthOfParts = currentToken.parts.reduce((sum, current) => sum + current.length, 0); - consumedInInput += lengthOfParts; - consumedInOriginalTemplate += lengthOfParts; - } - - offsetMap.set(consumedInInput, consumedInOriginalTemplate); - tokenIndex++; - } - - return offsetMap; -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -class NodeWithI18n { - constructor(sourceSpan, i18n) { - this.sourceSpan = sourceSpan; - this.i18n = i18n; - } - -} - -class Text extends NodeWithI18n { - constructor(value, sourceSpan, tokens, i18n) { - super(sourceSpan, i18n); - this.value = value; - this.tokens = tokens; - } - - visit(visitor, context) { - return visitor.visitText(this, context); - } - -} - -class Expansion extends NodeWithI18n { - constructor(switchValue, type, cases, sourceSpan, switchValueSourceSpan, i18n) { - super(sourceSpan, i18n); - this.switchValue = switchValue; - this.type = type; - this.cases = cases; - this.switchValueSourceSpan = switchValueSourceSpan; - } - - visit(visitor, context) { - return visitor.visitExpansion(this, context); - } - -} - -class ExpansionCase { - constructor(value, expression, sourceSpan, valueSourceSpan, expSourceSpan) { - this.value = value; - this.expression = expression; - this.sourceSpan = sourceSpan; - this.valueSourceSpan = valueSourceSpan; - this.expSourceSpan = expSourceSpan; - } - - visit(visitor, context) { - return visitor.visitExpansionCase(this, context); - } - -} - -class Attribute extends NodeWithI18n { - constructor(name, value, sourceSpan, keySpan, valueSpan, valueTokens, i18n) { - super(sourceSpan, i18n); - this.name = name; - this.value = value; - this.keySpan = keySpan; - this.valueSpan = valueSpan; - this.valueTokens = valueTokens; - } - - visit(visitor, context) { - return visitor.visitAttribute(this, context); - } - -} - -class Element extends NodeWithI18n { - constructor(name, attrs, children, sourceSpan, startSourceSpan, endSourceSpan = null, i18n) { - super(sourceSpan, i18n); - this.name = name; - this.attrs = attrs; - this.children = children; - this.startSourceSpan = startSourceSpan; - this.endSourceSpan = endSourceSpan; - } - - visit(visitor, context) { - return visitor.visitElement(this, context); - } - -} - -class Comment { - constructor(value, sourceSpan) { - this.value = value; - this.sourceSpan = sourceSpan; - } - - visit(visitor, context) { - return visitor.visitComment(this, context); - } - -} - -function visitAll(visitor, nodes, context = null) { - const result = []; - const visit = visitor.visit ? ast => visitor.visit(ast, context) || ast.visit(visitor, context) : ast => ast.visit(visitor, context); - nodes.forEach(ast => { - const astResult = visit(ast); - - if (astResult) { - result.push(astResult); - } - }); - return result; -} - -class RecursiveVisitor { - constructor() {} - - visitElement(ast, context) { - this.visitChildren(context, visit => { - visit(ast.attrs); - visit(ast.children); - }); - } - - visitAttribute(ast, context) {} - - visitText(ast, context) {} - - visitComment(ast, context) {} - - visitExpansion(ast, context) { - return this.visitChildren(context, visit => { - visit(ast.cases); - }); - } - - visitExpansionCase(ast, context) {} - - visitChildren(context, cb) { - let results = []; - let t = this; - - function visit(children) { - if (children) results.push(visitAll(t, children, context)); - } - - cb(visit); - return Array.prototype.concat.apply([], results); - } - -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -// Mapping between all HTML entity names and their unicode representation. -// Generated from https://html.spec.whatwg.org/multipage/entities.json by stripping -// the `&` and `;` from the keys and removing the duplicates. -// see https://www.w3.org/TR/html51/syntax.html#named-character-references - - -const NAMED_ENTITIES = { - 'AElig': '\u00C6', - 'AMP': '\u0026', - 'amp': '\u0026', - 'Aacute': '\u00C1', - 'Abreve': '\u0102', - 'Acirc': '\u00C2', - 'Acy': '\u0410', - 'Afr': '\uD835\uDD04', - 'Agrave': '\u00C0', - 'Alpha': '\u0391', - 'Amacr': '\u0100', - 'And': '\u2A53', - 'Aogon': '\u0104', - 'Aopf': '\uD835\uDD38', - 'ApplyFunction': '\u2061', - 'af': '\u2061', - 'Aring': '\u00C5', - 'angst': '\u00C5', - 'Ascr': '\uD835\uDC9C', - 'Assign': '\u2254', - 'colone': '\u2254', - 'coloneq': '\u2254', - 'Atilde': '\u00C3', - 'Auml': '\u00C4', - 'Backslash': '\u2216', - 'setminus': '\u2216', - 'setmn': '\u2216', - 'smallsetminus': '\u2216', - 'ssetmn': '\u2216', - 'Barv': '\u2AE7', - 'Barwed': '\u2306', - 'doublebarwedge': '\u2306', - 'Bcy': '\u0411', - 'Because': '\u2235', - 'becaus': '\u2235', - 'because': '\u2235', - 'Bernoullis': '\u212C', - 'Bscr': '\u212C', - 'bernou': '\u212C', - 'Beta': '\u0392', - 'Bfr': '\uD835\uDD05', - 'Bopf': '\uD835\uDD39', - 'Breve': '\u02D8', - 'breve': '\u02D8', - 'Bumpeq': '\u224E', - 'HumpDownHump': '\u224E', - 'bump': '\u224E', - 'CHcy': '\u0427', - 'COPY': '\u00A9', - 'copy': '\u00A9', - 'Cacute': '\u0106', - 'Cap': '\u22D2', - 'CapitalDifferentialD': '\u2145', - 'DD': '\u2145', - 'Cayleys': '\u212D', - 'Cfr': '\u212D', - 'Ccaron': '\u010C', - 'Ccedil': '\u00C7', - 'Ccirc': '\u0108', - 'Cconint': '\u2230', - 'Cdot': '\u010A', - 'Cedilla': '\u00B8', - 'cedil': '\u00B8', - 'CenterDot': '\u00B7', - 'centerdot': '\u00B7', - 'middot': '\u00B7', - 'Chi': '\u03A7', - 'CircleDot': '\u2299', - 'odot': '\u2299', - 'CircleMinus': '\u2296', - 'ominus': '\u2296', - 'CirclePlus': '\u2295', - 'oplus': '\u2295', - 'CircleTimes': '\u2297', - 'otimes': '\u2297', - 'ClockwiseContourIntegral': '\u2232', - 'cwconint': '\u2232', - 'CloseCurlyDoubleQuote': '\u201D', - 'rdquo': '\u201D', - 'rdquor': '\u201D', - 'CloseCurlyQuote': '\u2019', - 'rsquo': '\u2019', - 'rsquor': '\u2019', - 'Colon': '\u2237', - 'Proportion': '\u2237', - 'Colone': '\u2A74', - 'Congruent': '\u2261', - 'equiv': '\u2261', - 'Conint': '\u222F', - 'DoubleContourIntegral': '\u222F', - 'ContourIntegral': '\u222E', - 'conint': '\u222E', - 'oint': '\u222E', - 'Copf': '\u2102', - 'complexes': '\u2102', - 'Coproduct': '\u2210', - 'coprod': '\u2210', - 'CounterClockwiseContourIntegral': '\u2233', - 'awconint': '\u2233', - 'Cross': '\u2A2F', - 'Cscr': '\uD835\uDC9E', - 'Cup': '\u22D3', - 'CupCap': '\u224D', - 'asympeq': '\u224D', - 'DDotrahd': '\u2911', - 'DJcy': '\u0402', - 'DScy': '\u0405', - 'DZcy': '\u040F', - 'Dagger': '\u2021', - 'ddagger': '\u2021', - 'Darr': '\u21A1', - 'Dashv': '\u2AE4', - 'DoubleLeftTee': '\u2AE4', - 'Dcaron': '\u010E', - 'Dcy': '\u0414', - 'Del': '\u2207', - 'nabla': '\u2207', - 'Delta': '\u0394', - 'Dfr': '\uD835\uDD07', - 'DiacriticalAcute': '\u00B4', - 'acute': '\u00B4', - 'DiacriticalDot': '\u02D9', - 'dot': '\u02D9', - 'DiacriticalDoubleAcute': '\u02DD', - 'dblac': '\u02DD', - 'DiacriticalGrave': '\u0060', - 'grave': '\u0060', - 'DiacriticalTilde': '\u02DC', - 'tilde': '\u02DC', - 'Diamond': '\u22C4', - 'diam': '\u22C4', - 'diamond': '\u22C4', - 'DifferentialD': '\u2146', - 'dd': '\u2146', - 'Dopf': '\uD835\uDD3B', - 'Dot': '\u00A8', - 'DoubleDot': '\u00A8', - 'die': '\u00A8', - 'uml': '\u00A8', - 'DotDot': '\u20DC', - 'DotEqual': '\u2250', - 'doteq': '\u2250', - 'esdot': '\u2250', - 'DoubleDownArrow': '\u21D3', - 'Downarrow': '\u21D3', - 'dArr': '\u21D3', - 'DoubleLeftArrow': '\u21D0', - 'Leftarrow': '\u21D0', - 'lArr': '\u21D0', - 'DoubleLeftRightArrow': '\u21D4', - 'Leftrightarrow': '\u21D4', - 'hArr': '\u21D4', - 'iff': '\u21D4', - 'DoubleLongLeftArrow': '\u27F8', - 'Longleftarrow': '\u27F8', - 'xlArr': '\u27F8', - 'DoubleLongLeftRightArrow': '\u27FA', - 'Longleftrightarrow': '\u27FA', - 'xhArr': '\u27FA', - 'DoubleLongRightArrow': '\u27F9', - 'Longrightarrow': '\u27F9', - 'xrArr': '\u27F9', - 'DoubleRightArrow': '\u21D2', - 'Implies': '\u21D2', - 'Rightarrow': '\u21D2', - 'rArr': '\u21D2', - 'DoubleRightTee': '\u22A8', - 'vDash': '\u22A8', - 'DoubleUpArrow': '\u21D1', - 'Uparrow': '\u21D1', - 'uArr': '\u21D1', - 'DoubleUpDownArrow': '\u21D5', - 'Updownarrow': '\u21D5', - 'vArr': '\u21D5', - 'DoubleVerticalBar': '\u2225', - 'par': '\u2225', - 'parallel': '\u2225', - 'shortparallel': '\u2225', - 'spar': '\u2225', - 'DownArrow': '\u2193', - 'ShortDownArrow': '\u2193', - 'darr': '\u2193', - 'downarrow': '\u2193', - 'DownArrowBar': '\u2913', - 'DownArrowUpArrow': '\u21F5', - 'duarr': '\u21F5', - 'DownBreve': '\u0311', - 'DownLeftRightVector': '\u2950', - 'DownLeftTeeVector': '\u295E', - 'DownLeftVector': '\u21BD', - 'leftharpoondown': '\u21BD', - 'lhard': '\u21BD', - 'DownLeftVectorBar': '\u2956', - 'DownRightTeeVector': '\u295F', - 'DownRightVector': '\u21C1', - 'rhard': '\u21C1', - 'rightharpoondown': '\u21C1', - 'DownRightVectorBar': '\u2957', - 'DownTee': '\u22A4', - 'top': '\u22A4', - 'DownTeeArrow': '\u21A7', - 'mapstodown': '\u21A7', - 'Dscr': '\uD835\uDC9F', - 'Dstrok': '\u0110', - 'ENG': '\u014A', - 'ETH': '\u00D0', - 'Eacute': '\u00C9', - 'Ecaron': '\u011A', - 'Ecirc': '\u00CA', - 'Ecy': '\u042D', - 'Edot': '\u0116', - 'Efr': '\uD835\uDD08', - 'Egrave': '\u00C8', - 'Element': '\u2208', - 'in': '\u2208', - 'isin': '\u2208', - 'isinv': '\u2208', - 'Emacr': '\u0112', - 'EmptySmallSquare': '\u25FB', - 'EmptyVerySmallSquare': '\u25AB', - 'Eogon': '\u0118', - 'Eopf': '\uD835\uDD3C', - 'Epsilon': '\u0395', - 'Equal': '\u2A75', - 'EqualTilde': '\u2242', - 'eqsim': '\u2242', - 'esim': '\u2242', - 'Equilibrium': '\u21CC', - 'rightleftharpoons': '\u21CC', - 'rlhar': '\u21CC', - 'Escr': '\u2130', - 'expectation': '\u2130', - 'Esim': '\u2A73', - 'Eta': '\u0397', - 'Euml': '\u00CB', - 'Exists': '\u2203', - 'exist': '\u2203', - 'ExponentialE': '\u2147', - 'ee': '\u2147', - 'exponentiale': '\u2147', - 'Fcy': '\u0424', - 'Ffr': '\uD835\uDD09', - 'FilledSmallSquare': '\u25FC', - 'FilledVerySmallSquare': '\u25AA', - 'blacksquare': '\u25AA', - 'squarf': '\u25AA', - 'squf': '\u25AA', - 'Fopf': '\uD835\uDD3D', - 'ForAll': '\u2200', - 'forall': '\u2200', - 'Fouriertrf': '\u2131', - 'Fscr': '\u2131', - 'GJcy': '\u0403', - 'GT': '\u003E', - 'gt': '\u003E', - 'Gamma': '\u0393', - 'Gammad': '\u03DC', - 'Gbreve': '\u011E', - 'Gcedil': '\u0122', - 'Gcirc': '\u011C', - 'Gcy': '\u0413', - 'Gdot': '\u0120', - 'Gfr': '\uD835\uDD0A', - 'Gg': '\u22D9', - 'ggg': '\u22D9', - 'Gopf': '\uD835\uDD3E', - 'GreaterEqual': '\u2265', - 'ge': '\u2265', - 'geq': '\u2265', - 'GreaterEqualLess': '\u22DB', - 'gel': '\u22DB', - 'gtreqless': '\u22DB', - 'GreaterFullEqual': '\u2267', - 'gE': '\u2267', - 'geqq': '\u2267', - 'GreaterGreater': '\u2AA2', - 'GreaterLess': '\u2277', - 'gl': '\u2277', - 'gtrless': '\u2277', - 'GreaterSlantEqual': '\u2A7E', - 'geqslant': '\u2A7E', - 'ges': '\u2A7E', - 'GreaterTilde': '\u2273', - 'gsim': '\u2273', - 'gtrsim': '\u2273', - 'Gscr': '\uD835\uDCA2', - 'Gt': '\u226B', - 'NestedGreaterGreater': '\u226B', - 'gg': '\u226B', - 'HARDcy': '\u042A', - 'Hacek': '\u02C7', - 'caron': '\u02C7', - 'Hat': '\u005E', - 'Hcirc': '\u0124', - 'Hfr': '\u210C', - 'Poincareplane': '\u210C', - 'HilbertSpace': '\u210B', - 'Hscr': '\u210B', - 'hamilt': '\u210B', - 'Hopf': '\u210D', - 'quaternions': '\u210D', - 'HorizontalLine': '\u2500', - 'boxh': '\u2500', - 'Hstrok': '\u0126', - 'HumpEqual': '\u224F', - 'bumpe': '\u224F', - 'bumpeq': '\u224F', - 'IEcy': '\u0415', - 'IJlig': '\u0132', - 'IOcy': '\u0401', - 'Iacute': '\u00CD', - 'Icirc': '\u00CE', - 'Icy': '\u0418', - 'Idot': '\u0130', - 'Ifr': '\u2111', - 'Im': '\u2111', - 'image': '\u2111', - 'imagpart': '\u2111', - 'Igrave': '\u00CC', - 'Imacr': '\u012A', - 'ImaginaryI': '\u2148', - 'ii': '\u2148', - 'Int': '\u222C', - 'Integral': '\u222B', - 'int': '\u222B', - 'Intersection': '\u22C2', - 'bigcap': '\u22C2', - 'xcap': '\u22C2', - 'InvisibleComma': '\u2063', - 'ic': '\u2063', - 'InvisibleTimes': '\u2062', - 'it': '\u2062', - 'Iogon': '\u012E', - 'Iopf': '\uD835\uDD40', - 'Iota': '\u0399', - 'Iscr': '\u2110', - 'imagline': '\u2110', - 'Itilde': '\u0128', - 'Iukcy': '\u0406', - 'Iuml': '\u00CF', - 'Jcirc': '\u0134', - 'Jcy': '\u0419', - 'Jfr': '\uD835\uDD0D', - 'Jopf': '\uD835\uDD41', - 'Jscr': '\uD835\uDCA5', - 'Jsercy': '\u0408', - 'Jukcy': '\u0404', - 'KHcy': '\u0425', - 'KJcy': '\u040C', - 'Kappa': '\u039A', - 'Kcedil': '\u0136', - 'Kcy': '\u041A', - 'Kfr': '\uD835\uDD0E', - 'Kopf': '\uD835\uDD42', - 'Kscr': '\uD835\uDCA6', - 'LJcy': '\u0409', - 'LT': '\u003C', - 'lt': '\u003C', - 'Lacute': '\u0139', - 'Lambda': '\u039B', - 'Lang': '\u27EA', - 'Laplacetrf': '\u2112', - 'Lscr': '\u2112', - 'lagran': '\u2112', - 'Larr': '\u219E', - 'twoheadleftarrow': '\u219E', - 'Lcaron': '\u013D', - 'Lcedil': '\u013B', - 'Lcy': '\u041B', - 'LeftAngleBracket': '\u27E8', - 'lang': '\u27E8', - 'langle': '\u27E8', - 'LeftArrow': '\u2190', - 'ShortLeftArrow': '\u2190', - 'larr': '\u2190', - 'leftarrow': '\u2190', - 'slarr': '\u2190', - 'LeftArrowBar': '\u21E4', - 'larrb': '\u21E4', - 'LeftArrowRightArrow': '\u21C6', - 'leftrightarrows': '\u21C6', - 'lrarr': '\u21C6', - 'LeftCeiling': '\u2308', - 'lceil': '\u2308', - 'LeftDoubleBracket': '\u27E6', - 'lobrk': '\u27E6', - 'LeftDownTeeVector': '\u2961', - 'LeftDownVector': '\u21C3', - 'dharl': '\u21C3', - 'downharpoonleft': '\u21C3', - 'LeftDownVectorBar': '\u2959', - 'LeftFloor': '\u230A', - 'lfloor': '\u230A', - 'LeftRightArrow': '\u2194', - 'harr': '\u2194', - 'leftrightarrow': '\u2194', - 'LeftRightVector': '\u294E', - 'LeftTee': '\u22A3', - 'dashv': '\u22A3', - 'LeftTeeArrow': '\u21A4', - 'mapstoleft': '\u21A4', - 'LeftTeeVector': '\u295A', - 'LeftTriangle': '\u22B2', - 'vartriangleleft': '\u22B2', - 'vltri': '\u22B2', - 'LeftTriangleBar': '\u29CF', - 'LeftTriangleEqual': '\u22B4', - 'ltrie': '\u22B4', - 'trianglelefteq': '\u22B4', - 'LeftUpDownVector': '\u2951', - 'LeftUpTeeVector': '\u2960', - 'LeftUpVector': '\u21BF', - 'uharl': '\u21BF', - 'upharpoonleft': '\u21BF', - 'LeftUpVectorBar': '\u2958', - 'LeftVector': '\u21BC', - 'leftharpoonup': '\u21BC', - 'lharu': '\u21BC', - 'LeftVectorBar': '\u2952', - 'LessEqualGreater': '\u22DA', - 'leg': '\u22DA', - 'lesseqgtr': '\u22DA', - 'LessFullEqual': '\u2266', - 'lE': '\u2266', - 'leqq': '\u2266', - 'LessGreater': '\u2276', - 'lessgtr': '\u2276', - 'lg': '\u2276', - 'LessLess': '\u2AA1', - 'LessSlantEqual': '\u2A7D', - 'leqslant': '\u2A7D', - 'les': '\u2A7D', - 'LessTilde': '\u2272', - 'lesssim': '\u2272', - 'lsim': '\u2272', - 'Lfr': '\uD835\uDD0F', - 'Ll': '\u22D8', - 'Lleftarrow': '\u21DA', - 'lAarr': '\u21DA', - 'Lmidot': '\u013F', - 'LongLeftArrow': '\u27F5', - 'longleftarrow': '\u27F5', - 'xlarr': '\u27F5', - 'LongLeftRightArrow': '\u27F7', - 'longleftrightarrow': '\u27F7', - 'xharr': '\u27F7', - 'LongRightArrow': '\u27F6', - 'longrightarrow': '\u27F6', - 'xrarr': '\u27F6', - 'Lopf': '\uD835\uDD43', - 'LowerLeftArrow': '\u2199', - 'swarr': '\u2199', - 'swarrow': '\u2199', - 'LowerRightArrow': '\u2198', - 'searr': '\u2198', - 'searrow': '\u2198', - 'Lsh': '\u21B0', - 'lsh': '\u21B0', - 'Lstrok': '\u0141', - 'Lt': '\u226A', - 'NestedLessLess': '\u226A', - 'll': '\u226A', - 'Map': '\u2905', - 'Mcy': '\u041C', - 'MediumSpace': '\u205F', - 'Mellintrf': '\u2133', - 'Mscr': '\u2133', - 'phmmat': '\u2133', - 'Mfr': '\uD835\uDD10', - 'MinusPlus': '\u2213', - 'mnplus': '\u2213', - 'mp': '\u2213', - 'Mopf': '\uD835\uDD44', - 'Mu': '\u039C', - 'NJcy': '\u040A', - 'Nacute': '\u0143', - 'Ncaron': '\u0147', - 'Ncedil': '\u0145', - 'Ncy': '\u041D', - 'NegativeMediumSpace': '\u200B', - 'NegativeThickSpace': '\u200B', - 'NegativeThinSpace': '\u200B', - 'NegativeVeryThinSpace': '\u200B', - 'ZeroWidthSpace': '\u200B', - 'NewLine': '\u000A', - 'Nfr': '\uD835\uDD11', - 'NoBreak': '\u2060', - 'NonBreakingSpace': '\u00A0', - 'nbsp': '\u00A0', - 'Nopf': '\u2115', - 'naturals': '\u2115', - 'Not': '\u2AEC', - 'NotCongruent': '\u2262', - 'nequiv': '\u2262', - 'NotCupCap': '\u226D', - 'NotDoubleVerticalBar': '\u2226', - 'npar': '\u2226', - 'nparallel': '\u2226', - 'nshortparallel': '\u2226', - 'nspar': '\u2226', - 'NotElement': '\u2209', - 'notin': '\u2209', - 'notinva': '\u2209', - 'NotEqual': '\u2260', - 'ne': '\u2260', - 'NotEqualTilde': '\u2242\u0338', - 'nesim': '\u2242\u0338', - 'NotExists': '\u2204', - 'nexist': '\u2204', - 'nexists': '\u2204', - 'NotGreater': '\u226F', - 'ngt': '\u226F', - 'ngtr': '\u226F', - 'NotGreaterEqual': '\u2271', - 'nge': '\u2271', - 'ngeq': '\u2271', - 'NotGreaterFullEqual': '\u2267\u0338', - 'ngE': '\u2267\u0338', - 'ngeqq': '\u2267\u0338', - 'NotGreaterGreater': '\u226B\u0338', - 'nGtv': '\u226B\u0338', - 'NotGreaterLess': '\u2279', - 'ntgl': '\u2279', - 'NotGreaterSlantEqual': '\u2A7E\u0338', - 'ngeqslant': '\u2A7E\u0338', - 'nges': '\u2A7E\u0338', - 'NotGreaterTilde': '\u2275', - 'ngsim': '\u2275', - 'NotHumpDownHump': '\u224E\u0338', - 'nbump': '\u224E\u0338', - 'NotHumpEqual': '\u224F\u0338', - 'nbumpe': '\u224F\u0338', - 'NotLeftTriangle': '\u22EA', - 'nltri': '\u22EA', - 'ntriangleleft': '\u22EA', - 'NotLeftTriangleBar': '\u29CF\u0338', - 'NotLeftTriangleEqual': '\u22EC', - 'nltrie': '\u22EC', - 'ntrianglelefteq': '\u22EC', - 'NotLess': '\u226E', - 'nless': '\u226E', - 'nlt': '\u226E', - 'NotLessEqual': '\u2270', - 'nle': '\u2270', - 'nleq': '\u2270', - 'NotLessGreater': '\u2278', - 'ntlg': '\u2278', - 'NotLessLess': '\u226A\u0338', - 'nLtv': '\u226A\u0338', - 'NotLessSlantEqual': '\u2A7D\u0338', - 'nleqslant': '\u2A7D\u0338', - 'nles': '\u2A7D\u0338', - 'NotLessTilde': '\u2274', - 'nlsim': '\u2274', - 'NotNestedGreaterGreater': '\u2AA2\u0338', - 'NotNestedLessLess': '\u2AA1\u0338', - 'NotPrecedes': '\u2280', - 'npr': '\u2280', - 'nprec': '\u2280', - 'NotPrecedesEqual': '\u2AAF\u0338', - 'npre': '\u2AAF\u0338', - 'npreceq': '\u2AAF\u0338', - 'NotPrecedesSlantEqual': '\u22E0', - 'nprcue': '\u22E0', - 'NotReverseElement': '\u220C', - 'notni': '\u220C', - 'notniva': '\u220C', - 'NotRightTriangle': '\u22EB', - 'nrtri': '\u22EB', - 'ntriangleright': '\u22EB', - 'NotRightTriangleBar': '\u29D0\u0338', - 'NotRightTriangleEqual': '\u22ED', - 'nrtrie': '\u22ED', - 'ntrianglerighteq': '\u22ED', - 'NotSquareSubset': '\u228F\u0338', - 'NotSquareSubsetEqual': '\u22E2', - 'nsqsube': '\u22E2', - 'NotSquareSuperset': '\u2290\u0338', - 'NotSquareSupersetEqual': '\u22E3', - 'nsqsupe': '\u22E3', - 'NotSubset': '\u2282\u20D2', - 'nsubset': '\u2282\u20D2', - 'vnsub': '\u2282\u20D2', - 'NotSubsetEqual': '\u2288', - 'nsube': '\u2288', - 'nsubseteq': '\u2288', - 'NotSucceeds': '\u2281', - 'nsc': '\u2281', - 'nsucc': '\u2281', - 'NotSucceedsEqual': '\u2AB0\u0338', - 'nsce': '\u2AB0\u0338', - 'nsucceq': '\u2AB0\u0338', - 'NotSucceedsSlantEqual': '\u22E1', - 'nsccue': '\u22E1', - 'NotSucceedsTilde': '\u227F\u0338', - 'NotSuperset': '\u2283\u20D2', - 'nsupset': '\u2283\u20D2', - 'vnsup': '\u2283\u20D2', - 'NotSupersetEqual': '\u2289', - 'nsupe': '\u2289', - 'nsupseteq': '\u2289', - 'NotTilde': '\u2241', - 'nsim': '\u2241', - 'NotTildeEqual': '\u2244', - 'nsime': '\u2244', - 'nsimeq': '\u2244', - 'NotTildeFullEqual': '\u2247', - 'ncong': '\u2247', - 'NotTildeTilde': '\u2249', - 'nap': '\u2249', - 'napprox': '\u2249', - 'NotVerticalBar': '\u2224', - 'nmid': '\u2224', - 'nshortmid': '\u2224', - 'nsmid': '\u2224', - 'Nscr': '\uD835\uDCA9', - 'Ntilde': '\u00D1', - 'Nu': '\u039D', - 'OElig': '\u0152', - 'Oacute': '\u00D3', - 'Ocirc': '\u00D4', - 'Ocy': '\u041E', - 'Odblac': '\u0150', - 'Ofr': '\uD835\uDD12', - 'Ograve': '\u00D2', - 'Omacr': '\u014C', - 'Omega': '\u03A9', - 'ohm': '\u03A9', - 'Omicron': '\u039F', - 'Oopf': '\uD835\uDD46', - 'OpenCurlyDoubleQuote': '\u201C', - 'ldquo': '\u201C', - 'OpenCurlyQuote': '\u2018', - 'lsquo': '\u2018', - 'Or': '\u2A54', - 'Oscr': '\uD835\uDCAA', - 'Oslash': '\u00D8', - 'Otilde': '\u00D5', - 'Otimes': '\u2A37', - 'Ouml': '\u00D6', - 'OverBar': '\u203E', - 'oline': '\u203E', - 'OverBrace': '\u23DE', - 'OverBracket': '\u23B4', - 'tbrk': '\u23B4', - 'OverParenthesis': '\u23DC', - 'PartialD': '\u2202', - 'part': '\u2202', - 'Pcy': '\u041F', - 'Pfr': '\uD835\uDD13', - 'Phi': '\u03A6', - 'Pi': '\u03A0', - 'PlusMinus': '\u00B1', - 'plusmn': '\u00B1', - 'pm': '\u00B1', - 'Popf': '\u2119', - 'primes': '\u2119', - 'Pr': '\u2ABB', - 'Precedes': '\u227A', - 'pr': '\u227A', - 'prec': '\u227A', - 'PrecedesEqual': '\u2AAF', - 'pre': '\u2AAF', - 'preceq': '\u2AAF', - 'PrecedesSlantEqual': '\u227C', - 'prcue': '\u227C', - 'preccurlyeq': '\u227C', - 'PrecedesTilde': '\u227E', - 'precsim': '\u227E', - 'prsim': '\u227E', - 'Prime': '\u2033', - 'Product': '\u220F', - 'prod': '\u220F', - 'Proportional': '\u221D', - 'prop': '\u221D', - 'propto': '\u221D', - 'varpropto': '\u221D', - 'vprop': '\u221D', - 'Pscr': '\uD835\uDCAB', - 'Psi': '\u03A8', - 'QUOT': '\u0022', - 'quot': '\u0022', - 'Qfr': '\uD835\uDD14', - 'Qopf': '\u211A', - 'rationals': '\u211A', - 'Qscr': '\uD835\uDCAC', - 'RBarr': '\u2910', - 'drbkarow': '\u2910', - 'REG': '\u00AE', - 'circledR': '\u00AE', - 'reg': '\u00AE', - 'Racute': '\u0154', - 'Rang': '\u27EB', - 'Rarr': '\u21A0', - 'twoheadrightarrow': '\u21A0', - 'Rarrtl': '\u2916', - 'Rcaron': '\u0158', - 'Rcedil': '\u0156', - 'Rcy': '\u0420', - 'Re': '\u211C', - 'Rfr': '\u211C', - 'real': '\u211C', - 'realpart': '\u211C', - 'ReverseElement': '\u220B', - 'SuchThat': '\u220B', - 'ni': '\u220B', - 'niv': '\u220B', - 'ReverseEquilibrium': '\u21CB', - 'leftrightharpoons': '\u21CB', - 'lrhar': '\u21CB', - 'ReverseUpEquilibrium': '\u296F', - 'duhar': '\u296F', - 'Rho': '\u03A1', - 'RightAngleBracket': '\u27E9', - 'rang': '\u27E9', - 'rangle': '\u27E9', - 'RightArrow': '\u2192', - 'ShortRightArrow': '\u2192', - 'rarr': '\u2192', - 'rightarrow': '\u2192', - 'srarr': '\u2192', - 'RightArrowBar': '\u21E5', - 'rarrb': '\u21E5', - 'RightArrowLeftArrow': '\u21C4', - 'rightleftarrows': '\u21C4', - 'rlarr': '\u21C4', - 'RightCeiling': '\u2309', - 'rceil': '\u2309', - 'RightDoubleBracket': '\u27E7', - 'robrk': '\u27E7', - 'RightDownTeeVector': '\u295D', - 'RightDownVector': '\u21C2', - 'dharr': '\u21C2', - 'downharpoonright': '\u21C2', - 'RightDownVectorBar': '\u2955', - 'RightFloor': '\u230B', - 'rfloor': '\u230B', - 'RightTee': '\u22A2', - 'vdash': '\u22A2', - 'RightTeeArrow': '\u21A6', - 'map': '\u21A6', - 'mapsto': '\u21A6', - 'RightTeeVector': '\u295B', - 'RightTriangle': '\u22B3', - 'vartriangleright': '\u22B3', - 'vrtri': '\u22B3', - 'RightTriangleBar': '\u29D0', - 'RightTriangleEqual': '\u22B5', - 'rtrie': '\u22B5', - 'trianglerighteq': '\u22B5', - 'RightUpDownVector': '\u294F', - 'RightUpTeeVector': '\u295C', - 'RightUpVector': '\u21BE', - 'uharr': '\u21BE', - 'upharpoonright': '\u21BE', - 'RightUpVectorBar': '\u2954', - 'RightVector': '\u21C0', - 'rharu': '\u21C0', - 'rightharpoonup': '\u21C0', - 'RightVectorBar': '\u2953', - 'Ropf': '\u211D', - 'reals': '\u211D', - 'RoundImplies': '\u2970', - 'Rrightarrow': '\u21DB', - 'rAarr': '\u21DB', - 'Rscr': '\u211B', - 'realine': '\u211B', - 'Rsh': '\u21B1', - 'rsh': '\u21B1', - 'RuleDelayed': '\u29F4', - 'SHCHcy': '\u0429', - 'SHcy': '\u0428', - 'SOFTcy': '\u042C', - 'Sacute': '\u015A', - 'Sc': '\u2ABC', - 'Scaron': '\u0160', - 'Scedil': '\u015E', - 'Scirc': '\u015C', - 'Scy': '\u0421', - 'Sfr': '\uD835\uDD16', - 'ShortUpArrow': '\u2191', - 'UpArrow': '\u2191', - 'uarr': '\u2191', - 'uparrow': '\u2191', - 'Sigma': '\u03A3', - 'SmallCircle': '\u2218', - 'compfn': '\u2218', - 'Sopf': '\uD835\uDD4A', - 'Sqrt': '\u221A', - 'radic': '\u221A', - 'Square': '\u25A1', - 'squ': '\u25A1', - 'square': '\u25A1', - 'SquareIntersection': '\u2293', - 'sqcap': '\u2293', - 'SquareSubset': '\u228F', - 'sqsub': '\u228F', - 'sqsubset': '\u228F', - 'SquareSubsetEqual': '\u2291', - 'sqsube': '\u2291', - 'sqsubseteq': '\u2291', - 'SquareSuperset': '\u2290', - 'sqsup': '\u2290', - 'sqsupset': '\u2290', - 'SquareSupersetEqual': '\u2292', - 'sqsupe': '\u2292', - 'sqsupseteq': '\u2292', - 'SquareUnion': '\u2294', - 'sqcup': '\u2294', - 'Sscr': '\uD835\uDCAE', - 'Star': '\u22C6', - 'sstarf': '\u22C6', - 'Sub': '\u22D0', - 'Subset': '\u22D0', - 'SubsetEqual': '\u2286', - 'sube': '\u2286', - 'subseteq': '\u2286', - 'Succeeds': '\u227B', - 'sc': '\u227B', - 'succ': '\u227B', - 'SucceedsEqual': '\u2AB0', - 'sce': '\u2AB0', - 'succeq': '\u2AB0', - 'SucceedsSlantEqual': '\u227D', - 'sccue': '\u227D', - 'succcurlyeq': '\u227D', - 'SucceedsTilde': '\u227F', - 'scsim': '\u227F', - 'succsim': '\u227F', - 'Sum': '\u2211', - 'sum': '\u2211', - 'Sup': '\u22D1', - 'Supset': '\u22D1', - 'Superset': '\u2283', - 'sup': '\u2283', - 'supset': '\u2283', - 'SupersetEqual': '\u2287', - 'supe': '\u2287', - 'supseteq': '\u2287', - 'THORN': '\u00DE', - 'TRADE': '\u2122', - 'trade': '\u2122', - 'TSHcy': '\u040B', - 'TScy': '\u0426', - 'Tab': '\u0009', - 'Tau': '\u03A4', - 'Tcaron': '\u0164', - 'Tcedil': '\u0162', - 'Tcy': '\u0422', - 'Tfr': '\uD835\uDD17', - 'Therefore': '\u2234', - 'there4': '\u2234', - 'therefore': '\u2234', - 'Theta': '\u0398', - 'ThickSpace': '\u205F\u200A', - 'ThinSpace': '\u2009', - 'thinsp': '\u2009', - 'Tilde': '\u223C', - 'sim': '\u223C', - 'thicksim': '\u223C', - 'thksim': '\u223C', - 'TildeEqual': '\u2243', - 'sime': '\u2243', - 'simeq': '\u2243', - 'TildeFullEqual': '\u2245', - 'cong': '\u2245', - 'TildeTilde': '\u2248', - 'ap': '\u2248', - 'approx': '\u2248', - 'asymp': '\u2248', - 'thickapprox': '\u2248', - 'thkap': '\u2248', - 'Topf': '\uD835\uDD4B', - 'TripleDot': '\u20DB', - 'tdot': '\u20DB', - 'Tscr': '\uD835\uDCAF', - 'Tstrok': '\u0166', - 'Uacute': '\u00DA', - 'Uarr': '\u219F', - 'Uarrocir': '\u2949', - 'Ubrcy': '\u040E', - 'Ubreve': '\u016C', - 'Ucirc': '\u00DB', - 'Ucy': '\u0423', - 'Udblac': '\u0170', - 'Ufr': '\uD835\uDD18', - 'Ugrave': '\u00D9', - 'Umacr': '\u016A', - 'UnderBar': '\u005F', - 'lowbar': '\u005F', - 'UnderBrace': '\u23DF', - 'UnderBracket': '\u23B5', - 'bbrk': '\u23B5', - 'UnderParenthesis': '\u23DD', - 'Union': '\u22C3', - 'bigcup': '\u22C3', - 'xcup': '\u22C3', - 'UnionPlus': '\u228E', - 'uplus': '\u228E', - 'Uogon': '\u0172', - 'Uopf': '\uD835\uDD4C', - 'UpArrowBar': '\u2912', - 'UpArrowDownArrow': '\u21C5', - 'udarr': '\u21C5', - 'UpDownArrow': '\u2195', - 'updownarrow': '\u2195', - 'varr': '\u2195', - 'UpEquilibrium': '\u296E', - 'udhar': '\u296E', - 'UpTee': '\u22A5', - 'bot': '\u22A5', - 'bottom': '\u22A5', - 'perp': '\u22A5', - 'UpTeeArrow': '\u21A5', - 'mapstoup': '\u21A5', - 'UpperLeftArrow': '\u2196', - 'nwarr': '\u2196', - 'nwarrow': '\u2196', - 'UpperRightArrow': '\u2197', - 'nearr': '\u2197', - 'nearrow': '\u2197', - 'Upsi': '\u03D2', - 'upsih': '\u03D2', - 'Upsilon': '\u03A5', - 'Uring': '\u016E', - 'Uscr': '\uD835\uDCB0', - 'Utilde': '\u0168', - 'Uuml': '\u00DC', - 'VDash': '\u22AB', - 'Vbar': '\u2AEB', - 'Vcy': '\u0412', - 'Vdash': '\u22A9', - 'Vdashl': '\u2AE6', - 'Vee': '\u22C1', - 'bigvee': '\u22C1', - 'xvee': '\u22C1', - 'Verbar': '\u2016', - 'Vert': '\u2016', - 'VerticalBar': '\u2223', - 'mid': '\u2223', - 'shortmid': '\u2223', - 'smid': '\u2223', - 'VerticalLine': '\u007C', - 'verbar': '\u007C', - 'vert': '\u007C', - 'VerticalSeparator': '\u2758', - 'VerticalTilde': '\u2240', - 'wr': '\u2240', - 'wreath': '\u2240', - 'VeryThinSpace': '\u200A', - 'hairsp': '\u200A', - 'Vfr': '\uD835\uDD19', - 'Vopf': '\uD835\uDD4D', - 'Vscr': '\uD835\uDCB1', - 'Vvdash': '\u22AA', - 'Wcirc': '\u0174', - 'Wedge': '\u22C0', - 'bigwedge': '\u22C0', - 'xwedge': '\u22C0', - 'Wfr': '\uD835\uDD1A', - 'Wopf': '\uD835\uDD4E', - 'Wscr': '\uD835\uDCB2', - 'Xfr': '\uD835\uDD1B', - 'Xi': '\u039E', - 'Xopf': '\uD835\uDD4F', - 'Xscr': '\uD835\uDCB3', - 'YAcy': '\u042F', - 'YIcy': '\u0407', - 'YUcy': '\u042E', - 'Yacute': '\u00DD', - 'Ycirc': '\u0176', - 'Ycy': '\u042B', - 'Yfr': '\uD835\uDD1C', - 'Yopf': '\uD835\uDD50', - 'Yscr': '\uD835\uDCB4', - 'Yuml': '\u0178', - 'ZHcy': '\u0416', - 'Zacute': '\u0179', - 'Zcaron': '\u017D', - 'Zcy': '\u0417', - 'Zdot': '\u017B', - 'Zeta': '\u0396', - 'Zfr': '\u2128', - 'zeetrf': '\u2128', - 'Zopf': '\u2124', - 'integers': '\u2124', - 'Zscr': '\uD835\uDCB5', - 'aacute': '\u00E1', - 'abreve': '\u0103', - 'ac': '\u223E', - 'mstpos': '\u223E', - 'acE': '\u223E\u0333', - 'acd': '\u223F', - 'acirc': '\u00E2', - 'acy': '\u0430', - 'aelig': '\u00E6', - 'afr': '\uD835\uDD1E', - 'agrave': '\u00E0', - 'alefsym': '\u2135', - 'aleph': '\u2135', - 'alpha': '\u03B1', - 'amacr': '\u0101', - 'amalg': '\u2A3F', - 'and': '\u2227', - 'wedge': '\u2227', - 'andand': '\u2A55', - 'andd': '\u2A5C', - 'andslope': '\u2A58', - 'andv': '\u2A5A', - 'ang': '\u2220', - 'angle': '\u2220', - 'ange': '\u29A4', - 'angmsd': '\u2221', - 'measuredangle': '\u2221', - 'angmsdaa': '\u29A8', - 'angmsdab': '\u29A9', - 'angmsdac': '\u29AA', - 'angmsdad': '\u29AB', - 'angmsdae': '\u29AC', - 'angmsdaf': '\u29AD', - 'angmsdag': '\u29AE', - 'angmsdah': '\u29AF', - 'angrt': '\u221F', - 'angrtvb': '\u22BE', - 'angrtvbd': '\u299D', - 'angsph': '\u2222', - 'angzarr': '\u237C', - 'aogon': '\u0105', - 'aopf': '\uD835\uDD52', - 'apE': '\u2A70', - 'apacir': '\u2A6F', - 'ape': '\u224A', - 'approxeq': '\u224A', - 'apid': '\u224B', - 'apos': '\u0027', - 'aring': '\u00E5', - 'ascr': '\uD835\uDCB6', - 'ast': '\u002A', - 'midast': '\u002A', - 'atilde': '\u00E3', - 'auml': '\u00E4', - 'awint': '\u2A11', - 'bNot': '\u2AED', - 'backcong': '\u224C', - 'bcong': '\u224C', - 'backepsilon': '\u03F6', - 'bepsi': '\u03F6', - 'backprime': '\u2035', - 'bprime': '\u2035', - 'backsim': '\u223D', - 'bsim': '\u223D', - 'backsimeq': '\u22CD', - 'bsime': '\u22CD', - 'barvee': '\u22BD', - 'barwed': '\u2305', - 'barwedge': '\u2305', - 'bbrktbrk': '\u23B6', - 'bcy': '\u0431', - 'bdquo': '\u201E', - 'ldquor': '\u201E', - 'bemptyv': '\u29B0', - 'beta': '\u03B2', - 'beth': '\u2136', - 'between': '\u226C', - 'twixt': '\u226C', - 'bfr': '\uD835\uDD1F', - 'bigcirc': '\u25EF', - 'xcirc': '\u25EF', - 'bigodot': '\u2A00', - 'xodot': '\u2A00', - 'bigoplus': '\u2A01', - 'xoplus': '\u2A01', - 'bigotimes': '\u2A02', - 'xotime': '\u2A02', - 'bigsqcup': '\u2A06', - 'xsqcup': '\u2A06', - 'bigstar': '\u2605', - 'starf': '\u2605', - 'bigtriangledown': '\u25BD', - 'xdtri': '\u25BD', - 'bigtriangleup': '\u25B3', - 'xutri': '\u25B3', - 'biguplus': '\u2A04', - 'xuplus': '\u2A04', - 'bkarow': '\u290D', - 'rbarr': '\u290D', - 'blacklozenge': '\u29EB', - 'lozf': '\u29EB', - 'blacktriangle': '\u25B4', - 'utrif': '\u25B4', - 'blacktriangledown': '\u25BE', - 'dtrif': '\u25BE', - 'blacktriangleleft': '\u25C2', - 'ltrif': '\u25C2', - 'blacktriangleright': '\u25B8', - 'rtrif': '\u25B8', - 'blank': '\u2423', - 'blk12': '\u2592', - 'blk14': '\u2591', - 'blk34': '\u2593', - 'block': '\u2588', - 'bne': '\u003D\u20E5', - 'bnequiv': '\u2261\u20E5', - 'bnot': '\u2310', - 'bopf': '\uD835\uDD53', - 'bowtie': '\u22C8', - 'boxDL': '\u2557', - 'boxDR': '\u2554', - 'boxDl': '\u2556', - 'boxDr': '\u2553', - 'boxH': '\u2550', - 'boxHD': '\u2566', - 'boxHU': '\u2569', - 'boxHd': '\u2564', - 'boxHu': '\u2567', - 'boxUL': '\u255D', - 'boxUR': '\u255A', - 'boxUl': '\u255C', - 'boxUr': '\u2559', - 'boxV': '\u2551', - 'boxVH': '\u256C', - 'boxVL': '\u2563', - 'boxVR': '\u2560', - 'boxVh': '\u256B', - 'boxVl': '\u2562', - 'boxVr': '\u255F', - 'boxbox': '\u29C9', - 'boxdL': '\u2555', - 'boxdR': '\u2552', - 'boxdl': '\u2510', - 'boxdr': '\u250C', - 'boxhD': '\u2565', - 'boxhU': '\u2568', - 'boxhd': '\u252C', - 'boxhu': '\u2534', - 'boxminus': '\u229F', - 'minusb': '\u229F', - 'boxplus': '\u229E', - 'plusb': '\u229E', - 'boxtimes': '\u22A0', - 'timesb': '\u22A0', - 'boxuL': '\u255B', - 'boxuR': '\u2558', - 'boxul': '\u2518', - 'boxur': '\u2514', - 'boxv': '\u2502', - 'boxvH': '\u256A', - 'boxvL': '\u2561', - 'boxvR': '\u255E', - 'boxvh': '\u253C', - 'boxvl': '\u2524', - 'boxvr': '\u251C', - 'brvbar': '\u00A6', - 'bscr': '\uD835\uDCB7', - 'bsemi': '\u204F', - 'bsol': '\u005C', - 'bsolb': '\u29C5', - 'bsolhsub': '\u27C8', - 'bull': '\u2022', - 'bullet': '\u2022', - 'bumpE': '\u2AAE', - 'cacute': '\u0107', - 'cap': '\u2229', - 'capand': '\u2A44', - 'capbrcup': '\u2A49', - 'capcap': '\u2A4B', - 'capcup': '\u2A47', - 'capdot': '\u2A40', - 'caps': '\u2229\uFE00', - 'caret': '\u2041', - 'ccaps': '\u2A4D', - 'ccaron': '\u010D', - 'ccedil': '\u00E7', - 'ccirc': '\u0109', - 'ccups': '\u2A4C', - 'ccupssm': '\u2A50', - 'cdot': '\u010B', - 'cemptyv': '\u29B2', - 'cent': '\u00A2', - 'cfr': '\uD835\uDD20', - 'chcy': '\u0447', - 'check': '\u2713', - 'checkmark': '\u2713', - 'chi': '\u03C7', - 'cir': '\u25CB', - 'cirE': '\u29C3', - 'circ': '\u02C6', - 'circeq': '\u2257', - 'cire': '\u2257', - 'circlearrowleft': '\u21BA', - 'olarr': '\u21BA', - 'circlearrowright': '\u21BB', - 'orarr': '\u21BB', - 'circledS': '\u24C8', - 'oS': '\u24C8', - 'circledast': '\u229B', - 'oast': '\u229B', - 'circledcirc': '\u229A', - 'ocir': '\u229A', - 'circleddash': '\u229D', - 'odash': '\u229D', - 'cirfnint': '\u2A10', - 'cirmid': '\u2AEF', - 'cirscir': '\u29C2', - 'clubs': '\u2663', - 'clubsuit': '\u2663', - 'colon': '\u003A', - 'comma': '\u002C', - 'commat': '\u0040', - 'comp': '\u2201', - 'complement': '\u2201', - 'congdot': '\u2A6D', - 'copf': '\uD835\uDD54', - 'copysr': '\u2117', - 'crarr': '\u21B5', - 'cross': '\u2717', - 'cscr': '\uD835\uDCB8', - 'csub': '\u2ACF', - 'csube': '\u2AD1', - 'csup': '\u2AD0', - 'csupe': '\u2AD2', - 'ctdot': '\u22EF', - 'cudarrl': '\u2938', - 'cudarrr': '\u2935', - 'cuepr': '\u22DE', - 'curlyeqprec': '\u22DE', - 'cuesc': '\u22DF', - 'curlyeqsucc': '\u22DF', - 'cularr': '\u21B6', - 'curvearrowleft': '\u21B6', - 'cularrp': '\u293D', - 'cup': '\u222A', - 'cupbrcap': '\u2A48', - 'cupcap': '\u2A46', - 'cupcup': '\u2A4A', - 'cupdot': '\u228D', - 'cupor': '\u2A45', - 'cups': '\u222A\uFE00', - 'curarr': '\u21B7', - 'curvearrowright': '\u21B7', - 'curarrm': '\u293C', - 'curlyvee': '\u22CE', - 'cuvee': '\u22CE', - 'curlywedge': '\u22CF', - 'cuwed': '\u22CF', - 'curren': '\u00A4', - 'cwint': '\u2231', - 'cylcty': '\u232D', - 'dHar': '\u2965', - 'dagger': '\u2020', - 'daleth': '\u2138', - 'dash': '\u2010', - 'hyphen': '\u2010', - 'dbkarow': '\u290F', - 'rBarr': '\u290F', - 'dcaron': '\u010F', - 'dcy': '\u0434', - 'ddarr': '\u21CA', - 'downdownarrows': '\u21CA', - 'ddotseq': '\u2A77', - 'eDDot': '\u2A77', - 'deg': '\u00B0', - 'delta': '\u03B4', - 'demptyv': '\u29B1', - 'dfisht': '\u297F', - 'dfr': '\uD835\uDD21', - 'diamondsuit': '\u2666', - 'diams': '\u2666', - 'digamma': '\u03DD', - 'gammad': '\u03DD', - 'disin': '\u22F2', - 'div': '\u00F7', - 'divide': '\u00F7', - 'divideontimes': '\u22C7', - 'divonx': '\u22C7', - 'djcy': '\u0452', - 'dlcorn': '\u231E', - 'llcorner': '\u231E', - 'dlcrop': '\u230D', - 'dollar': '\u0024', - 'dopf': '\uD835\uDD55', - 'doteqdot': '\u2251', - 'eDot': '\u2251', - 'dotminus': '\u2238', - 'minusd': '\u2238', - 'dotplus': '\u2214', - 'plusdo': '\u2214', - 'dotsquare': '\u22A1', - 'sdotb': '\u22A1', - 'drcorn': '\u231F', - 'lrcorner': '\u231F', - 'drcrop': '\u230C', - 'dscr': '\uD835\uDCB9', - 'dscy': '\u0455', - 'dsol': '\u29F6', - 'dstrok': '\u0111', - 'dtdot': '\u22F1', - 'dtri': '\u25BF', - 'triangledown': '\u25BF', - 'dwangle': '\u29A6', - 'dzcy': '\u045F', - 'dzigrarr': '\u27FF', - 'eacute': '\u00E9', - 'easter': '\u2A6E', - 'ecaron': '\u011B', - 'ecir': '\u2256', - 'eqcirc': '\u2256', - 'ecirc': '\u00EA', - 'ecolon': '\u2255', - 'eqcolon': '\u2255', - 'ecy': '\u044D', - 'edot': '\u0117', - 'efDot': '\u2252', - 'fallingdotseq': '\u2252', - 'efr': '\uD835\uDD22', - 'eg': '\u2A9A', - 'egrave': '\u00E8', - 'egs': '\u2A96', - 'eqslantgtr': '\u2A96', - 'egsdot': '\u2A98', - 'el': '\u2A99', - 'elinters': '\u23E7', - 'ell': '\u2113', - 'els': '\u2A95', - 'eqslantless': '\u2A95', - 'elsdot': '\u2A97', - 'emacr': '\u0113', - 'empty': '\u2205', - 'emptyset': '\u2205', - 'emptyv': '\u2205', - 'varnothing': '\u2205', - 'emsp13': '\u2004', - 'emsp14': '\u2005', - 'emsp': '\u2003', - 'eng': '\u014B', - 'ensp': '\u2002', - 'eogon': '\u0119', - 'eopf': '\uD835\uDD56', - 'epar': '\u22D5', - 'eparsl': '\u29E3', - 'eplus': '\u2A71', - 'epsi': '\u03B5', - 'epsilon': '\u03B5', - 'epsiv': '\u03F5', - 'straightepsilon': '\u03F5', - 'varepsilon': '\u03F5', - 'equals': '\u003D', - 'equest': '\u225F', - 'questeq': '\u225F', - 'equivDD': '\u2A78', - 'eqvparsl': '\u29E5', - 'erDot': '\u2253', - 'risingdotseq': '\u2253', - 'erarr': '\u2971', - 'escr': '\u212F', - 'eta': '\u03B7', - 'eth': '\u00F0', - 'euml': '\u00EB', - 'euro': '\u20AC', - 'excl': '\u0021', - 'fcy': '\u0444', - 'female': '\u2640', - 'ffilig': '\uFB03', - 'fflig': '\uFB00', - 'ffllig': '\uFB04', - 'ffr': '\uD835\uDD23', - 'filig': '\uFB01', - 'fjlig': '\u0066\u006A', - 'flat': '\u266D', - 'fllig': '\uFB02', - 'fltns': '\u25B1', - 'fnof': '\u0192', - 'fopf': '\uD835\uDD57', - 'fork': '\u22D4', - 'pitchfork': '\u22D4', - 'forkv': '\u2AD9', - 'fpartint': '\u2A0D', - 'frac12': '\u00BD', - 'half': '\u00BD', - 'frac13': '\u2153', - 'frac14': '\u00BC', - 'frac15': '\u2155', - 'frac16': '\u2159', - 'frac18': '\u215B', - 'frac23': '\u2154', - 'frac25': '\u2156', - 'frac34': '\u00BE', - 'frac35': '\u2157', - 'frac38': '\u215C', - 'frac45': '\u2158', - 'frac56': '\u215A', - 'frac58': '\u215D', - 'frac78': '\u215E', - 'frasl': '\u2044', - 'frown': '\u2322', - 'sfrown': '\u2322', - 'fscr': '\uD835\uDCBB', - 'gEl': '\u2A8C', - 'gtreqqless': '\u2A8C', - 'gacute': '\u01F5', - 'gamma': '\u03B3', - 'gap': '\u2A86', - 'gtrapprox': '\u2A86', - 'gbreve': '\u011F', - 'gcirc': '\u011D', - 'gcy': '\u0433', - 'gdot': '\u0121', - 'gescc': '\u2AA9', - 'gesdot': '\u2A80', - 'gesdoto': '\u2A82', - 'gesdotol': '\u2A84', - 'gesl': '\u22DB\uFE00', - 'gesles': '\u2A94', - 'gfr': '\uD835\uDD24', - 'gimel': '\u2137', - 'gjcy': '\u0453', - 'glE': '\u2A92', - 'gla': '\u2AA5', - 'glj': '\u2AA4', - 'gnE': '\u2269', - 'gneqq': '\u2269', - 'gnap': '\u2A8A', - 'gnapprox': '\u2A8A', - 'gne': '\u2A88', - 'gneq': '\u2A88', - 'gnsim': '\u22E7', - 'gopf': '\uD835\uDD58', - 'gscr': '\u210A', - 'gsime': '\u2A8E', - 'gsiml': '\u2A90', - 'gtcc': '\u2AA7', - 'gtcir': '\u2A7A', - 'gtdot': '\u22D7', - 'gtrdot': '\u22D7', - 'gtlPar': '\u2995', - 'gtquest': '\u2A7C', - 'gtrarr': '\u2978', - 'gvertneqq': '\u2269\uFE00', - 'gvnE': '\u2269\uFE00', - 'hardcy': '\u044A', - 'harrcir': '\u2948', - 'harrw': '\u21AD', - 'leftrightsquigarrow': '\u21AD', - 'hbar': '\u210F', - 'hslash': '\u210F', - 'planck': '\u210F', - 'plankv': '\u210F', - 'hcirc': '\u0125', - 'hearts': '\u2665', - 'heartsuit': '\u2665', - 'hellip': '\u2026', - 'mldr': '\u2026', - 'hercon': '\u22B9', - 'hfr': '\uD835\uDD25', - 'hksearow': '\u2925', - 'searhk': '\u2925', - 'hkswarow': '\u2926', - 'swarhk': '\u2926', - 'hoarr': '\u21FF', - 'homtht': '\u223B', - 'hookleftarrow': '\u21A9', - 'larrhk': '\u21A9', - 'hookrightarrow': '\u21AA', - 'rarrhk': '\u21AA', - 'hopf': '\uD835\uDD59', - 'horbar': '\u2015', - 'hscr': '\uD835\uDCBD', - 'hstrok': '\u0127', - 'hybull': '\u2043', - 'iacute': '\u00ED', - 'icirc': '\u00EE', - 'icy': '\u0438', - 'iecy': '\u0435', - 'iexcl': '\u00A1', - 'ifr': '\uD835\uDD26', - 'igrave': '\u00EC', - 'iiiint': '\u2A0C', - 'qint': '\u2A0C', - 'iiint': '\u222D', - 'tint': '\u222D', - 'iinfin': '\u29DC', - 'iiota': '\u2129', - 'ijlig': '\u0133', - 'imacr': '\u012B', - 'imath': '\u0131', - 'inodot': '\u0131', - 'imof': '\u22B7', - 'imped': '\u01B5', - 'incare': '\u2105', - 'infin': '\u221E', - 'infintie': '\u29DD', - 'intcal': '\u22BA', - 'intercal': '\u22BA', - 'intlarhk': '\u2A17', - 'intprod': '\u2A3C', - 'iprod': '\u2A3C', - 'iocy': '\u0451', - 'iogon': '\u012F', - 'iopf': '\uD835\uDD5A', - 'iota': '\u03B9', - 'iquest': '\u00BF', - 'iscr': '\uD835\uDCBE', - 'isinE': '\u22F9', - 'isindot': '\u22F5', - 'isins': '\u22F4', - 'isinsv': '\u22F3', - 'itilde': '\u0129', - 'iukcy': '\u0456', - 'iuml': '\u00EF', - 'jcirc': '\u0135', - 'jcy': '\u0439', - 'jfr': '\uD835\uDD27', - 'jmath': '\u0237', - 'jopf': '\uD835\uDD5B', - 'jscr': '\uD835\uDCBF', - 'jsercy': '\u0458', - 'jukcy': '\u0454', - 'kappa': '\u03BA', - 'kappav': '\u03F0', - 'varkappa': '\u03F0', - 'kcedil': '\u0137', - 'kcy': '\u043A', - 'kfr': '\uD835\uDD28', - 'kgreen': '\u0138', - 'khcy': '\u0445', - 'kjcy': '\u045C', - 'kopf': '\uD835\uDD5C', - 'kscr': '\uD835\uDCC0', - 'lAtail': '\u291B', - 'lBarr': '\u290E', - 'lEg': '\u2A8B', - 'lesseqqgtr': '\u2A8B', - 'lHar': '\u2962', - 'lacute': '\u013A', - 'laemptyv': '\u29B4', - 'lambda': '\u03BB', - 'langd': '\u2991', - 'lap': '\u2A85', - 'lessapprox': '\u2A85', - 'laquo': '\u00AB', - 'larrbfs': '\u291F', - 'larrfs': '\u291D', - 'larrlp': '\u21AB', - 'looparrowleft': '\u21AB', - 'larrpl': '\u2939', - 'larrsim': '\u2973', - 'larrtl': '\u21A2', - 'leftarrowtail': '\u21A2', - 'lat': '\u2AAB', - 'latail': '\u2919', - 'late': '\u2AAD', - 'lates': '\u2AAD\uFE00', - 'lbarr': '\u290C', - 'lbbrk': '\u2772', - 'lbrace': '\u007B', - 'lcub': '\u007B', - 'lbrack': '\u005B', - 'lsqb': '\u005B', - 'lbrke': '\u298B', - 'lbrksld': '\u298F', - 'lbrkslu': '\u298D', - 'lcaron': '\u013E', - 'lcedil': '\u013C', - 'lcy': '\u043B', - 'ldca': '\u2936', - 'ldrdhar': '\u2967', - 'ldrushar': '\u294B', - 'ldsh': '\u21B2', - 'le': '\u2264', - 'leq': '\u2264', - 'leftleftarrows': '\u21C7', - 'llarr': '\u21C7', - 'leftthreetimes': '\u22CB', - 'lthree': '\u22CB', - 'lescc': '\u2AA8', - 'lesdot': '\u2A7F', - 'lesdoto': '\u2A81', - 'lesdotor': '\u2A83', - 'lesg': '\u22DA\uFE00', - 'lesges': '\u2A93', - 'lessdot': '\u22D6', - 'ltdot': '\u22D6', - 'lfisht': '\u297C', - 'lfr': '\uD835\uDD29', - 'lgE': '\u2A91', - 'lharul': '\u296A', - 'lhblk': '\u2584', - 'ljcy': '\u0459', - 'llhard': '\u296B', - 'lltri': '\u25FA', - 'lmidot': '\u0140', - 'lmoust': '\u23B0', - 'lmoustache': '\u23B0', - 'lnE': '\u2268', - 'lneqq': '\u2268', - 'lnap': '\u2A89', - 'lnapprox': '\u2A89', - 'lne': '\u2A87', - 'lneq': '\u2A87', - 'lnsim': '\u22E6', - 'loang': '\u27EC', - 'loarr': '\u21FD', - 'longmapsto': '\u27FC', - 'xmap': '\u27FC', - 'looparrowright': '\u21AC', - 'rarrlp': '\u21AC', - 'lopar': '\u2985', - 'lopf': '\uD835\uDD5D', - 'loplus': '\u2A2D', - 'lotimes': '\u2A34', - 'lowast': '\u2217', - 'loz': '\u25CA', - 'lozenge': '\u25CA', - 'lpar': '\u0028', - 'lparlt': '\u2993', - 'lrhard': '\u296D', - 'lrm': '\u200E', - 'lrtri': '\u22BF', - 'lsaquo': '\u2039', - 'lscr': '\uD835\uDCC1', - 'lsime': '\u2A8D', - 'lsimg': '\u2A8F', - 'lsquor': '\u201A', - 'sbquo': '\u201A', - 'lstrok': '\u0142', - 'ltcc': '\u2AA6', - 'ltcir': '\u2A79', - 'ltimes': '\u22C9', - 'ltlarr': '\u2976', - 'ltquest': '\u2A7B', - 'ltrPar': '\u2996', - 'ltri': '\u25C3', - 'triangleleft': '\u25C3', - 'lurdshar': '\u294A', - 'luruhar': '\u2966', - 'lvertneqq': '\u2268\uFE00', - 'lvnE': '\u2268\uFE00', - 'mDDot': '\u223A', - 'macr': '\u00AF', - 'strns': '\u00AF', - 'male': '\u2642', - 'malt': '\u2720', - 'maltese': '\u2720', - 'marker': '\u25AE', - 'mcomma': '\u2A29', - 'mcy': '\u043C', - 'mdash': '\u2014', - 'mfr': '\uD835\uDD2A', - 'mho': '\u2127', - 'micro': '\u00B5', - 'midcir': '\u2AF0', - 'minus': '\u2212', - 'minusdu': '\u2A2A', - 'mlcp': '\u2ADB', - 'models': '\u22A7', - 'mopf': '\uD835\uDD5E', - 'mscr': '\uD835\uDCC2', - 'mu': '\u03BC', - 'multimap': '\u22B8', - 'mumap': '\u22B8', - 'nGg': '\u22D9\u0338', - 'nGt': '\u226B\u20D2', - 'nLeftarrow': '\u21CD', - 'nlArr': '\u21CD', - 'nLeftrightarrow': '\u21CE', - 'nhArr': '\u21CE', - 'nLl': '\u22D8\u0338', - 'nLt': '\u226A\u20D2', - 'nRightarrow': '\u21CF', - 'nrArr': '\u21CF', - 'nVDash': '\u22AF', - 'nVdash': '\u22AE', - 'nacute': '\u0144', - 'nang': '\u2220\u20D2', - 'napE': '\u2A70\u0338', - 'napid': '\u224B\u0338', - 'napos': '\u0149', - 'natur': '\u266E', - 'natural': '\u266E', - 'ncap': '\u2A43', - 'ncaron': '\u0148', - 'ncedil': '\u0146', - 'ncongdot': '\u2A6D\u0338', - 'ncup': '\u2A42', - 'ncy': '\u043D', - 'ndash': '\u2013', - 'neArr': '\u21D7', - 'nearhk': '\u2924', - 'nedot': '\u2250\u0338', - 'nesear': '\u2928', - 'toea': '\u2928', - 'nfr': '\uD835\uDD2B', - 'nharr': '\u21AE', - 'nleftrightarrow': '\u21AE', - 'nhpar': '\u2AF2', - 'nis': '\u22FC', - 'nisd': '\u22FA', - 'njcy': '\u045A', - 'nlE': '\u2266\u0338', - 'nleqq': '\u2266\u0338', - 'nlarr': '\u219A', - 'nleftarrow': '\u219A', - 'nldr': '\u2025', - 'nopf': '\uD835\uDD5F', - 'not': '\u00AC', - 'notinE': '\u22F9\u0338', - 'notindot': '\u22F5\u0338', - 'notinvb': '\u22F7', - 'notinvc': '\u22F6', - 'notnivb': '\u22FE', - 'notnivc': '\u22FD', - 'nparsl': '\u2AFD\u20E5', - 'npart': '\u2202\u0338', - 'npolint': '\u2A14', - 'nrarr': '\u219B', - 'nrightarrow': '\u219B', - 'nrarrc': '\u2933\u0338', - 'nrarrw': '\u219D\u0338', - 'nscr': '\uD835\uDCC3', - 'nsub': '\u2284', - 'nsubE': '\u2AC5\u0338', - 'nsubseteqq': '\u2AC5\u0338', - 'nsup': '\u2285', - 'nsupE': '\u2AC6\u0338', - 'nsupseteqq': '\u2AC6\u0338', - 'ntilde': '\u00F1', - 'nu': '\u03BD', - 'num': '\u0023', - 'numero': '\u2116', - 'numsp': '\u2007', - 'nvDash': '\u22AD', - 'nvHarr': '\u2904', - 'nvap': '\u224D\u20D2', - 'nvdash': '\u22AC', - 'nvge': '\u2265\u20D2', - 'nvgt': '\u003E\u20D2', - 'nvinfin': '\u29DE', - 'nvlArr': '\u2902', - 'nvle': '\u2264\u20D2', - 'nvlt': '\u003C\u20D2', - 'nvltrie': '\u22B4\u20D2', - 'nvrArr': '\u2903', - 'nvrtrie': '\u22B5\u20D2', - 'nvsim': '\u223C\u20D2', - 'nwArr': '\u21D6', - 'nwarhk': '\u2923', - 'nwnear': '\u2927', - 'oacute': '\u00F3', - 'ocirc': '\u00F4', - 'ocy': '\u043E', - 'odblac': '\u0151', - 'odiv': '\u2A38', - 'odsold': '\u29BC', - 'oelig': '\u0153', - 'ofcir': '\u29BF', - 'ofr': '\uD835\uDD2C', - 'ogon': '\u02DB', - 'ograve': '\u00F2', - 'ogt': '\u29C1', - 'ohbar': '\u29B5', - 'olcir': '\u29BE', - 'olcross': '\u29BB', - 'olt': '\u29C0', - 'omacr': '\u014D', - 'omega': '\u03C9', - 'omicron': '\u03BF', - 'omid': '\u29B6', - 'oopf': '\uD835\uDD60', - 'opar': '\u29B7', - 'operp': '\u29B9', - 'or': '\u2228', - 'vee': '\u2228', - 'ord': '\u2A5D', - 'order': '\u2134', - 'orderof': '\u2134', - 'oscr': '\u2134', - 'ordf': '\u00AA', - 'ordm': '\u00BA', - 'origof': '\u22B6', - 'oror': '\u2A56', - 'orslope': '\u2A57', - 'orv': '\u2A5B', - 'oslash': '\u00F8', - 'osol': '\u2298', - 'otilde': '\u00F5', - 'otimesas': '\u2A36', - 'ouml': '\u00F6', - 'ovbar': '\u233D', - 'para': '\u00B6', - 'parsim': '\u2AF3', - 'parsl': '\u2AFD', - 'pcy': '\u043F', - 'percnt': '\u0025', - 'period': '\u002E', - 'permil': '\u2030', - 'pertenk': '\u2031', - 'pfr': '\uD835\uDD2D', - 'phi': '\u03C6', - 'phiv': '\u03D5', - 'straightphi': '\u03D5', - 'varphi': '\u03D5', - 'phone': '\u260E', - 'pi': '\u03C0', - 'piv': '\u03D6', - 'varpi': '\u03D6', - 'planckh': '\u210E', - 'plus': '\u002B', - 'plusacir': '\u2A23', - 'pluscir': '\u2A22', - 'plusdu': '\u2A25', - 'pluse': '\u2A72', - 'plussim': '\u2A26', - 'plustwo': '\u2A27', - 'pointint': '\u2A15', - 'popf': '\uD835\uDD61', - 'pound': '\u00A3', - 'prE': '\u2AB3', - 'prap': '\u2AB7', - 'precapprox': '\u2AB7', - 'precnapprox': '\u2AB9', - 'prnap': '\u2AB9', - 'precneqq': '\u2AB5', - 'prnE': '\u2AB5', - 'precnsim': '\u22E8', - 'prnsim': '\u22E8', - 'prime': '\u2032', - 'profalar': '\u232E', - 'profline': '\u2312', - 'profsurf': '\u2313', - 'prurel': '\u22B0', - 'pscr': '\uD835\uDCC5', - 'psi': '\u03C8', - 'puncsp': '\u2008', - 'qfr': '\uD835\uDD2E', - 'qopf': '\uD835\uDD62', - 'qprime': '\u2057', - 'qscr': '\uD835\uDCC6', - 'quatint': '\u2A16', - 'quest': '\u003F', - 'rAtail': '\u291C', - 'rHar': '\u2964', - 'race': '\u223D\u0331', - 'racute': '\u0155', - 'raemptyv': '\u29B3', - 'rangd': '\u2992', - 'range': '\u29A5', - 'raquo': '\u00BB', - 'rarrap': '\u2975', - 'rarrbfs': '\u2920', - 'rarrc': '\u2933', - 'rarrfs': '\u291E', - 'rarrpl': '\u2945', - 'rarrsim': '\u2974', - 'rarrtl': '\u21A3', - 'rightarrowtail': '\u21A3', - 'rarrw': '\u219D', - 'rightsquigarrow': '\u219D', - 'ratail': '\u291A', - 'ratio': '\u2236', - 'rbbrk': '\u2773', - 'rbrace': '\u007D', - 'rcub': '\u007D', - 'rbrack': '\u005D', - 'rsqb': '\u005D', - 'rbrke': '\u298C', - 'rbrksld': '\u298E', - 'rbrkslu': '\u2990', - 'rcaron': '\u0159', - 'rcedil': '\u0157', - 'rcy': '\u0440', - 'rdca': '\u2937', - 'rdldhar': '\u2969', - 'rdsh': '\u21B3', - 'rect': '\u25AD', - 'rfisht': '\u297D', - 'rfr': '\uD835\uDD2F', - 'rharul': '\u296C', - 'rho': '\u03C1', - 'rhov': '\u03F1', - 'varrho': '\u03F1', - 'rightrightarrows': '\u21C9', - 'rrarr': '\u21C9', - 'rightthreetimes': '\u22CC', - 'rthree': '\u22CC', - 'ring': '\u02DA', - 'rlm': '\u200F', - 'rmoust': '\u23B1', - 'rmoustache': '\u23B1', - 'rnmid': '\u2AEE', - 'roang': '\u27ED', - 'roarr': '\u21FE', - 'ropar': '\u2986', - 'ropf': '\uD835\uDD63', - 'roplus': '\u2A2E', - 'rotimes': '\u2A35', - 'rpar': '\u0029', - 'rpargt': '\u2994', - 'rppolint': '\u2A12', - 'rsaquo': '\u203A', - 'rscr': '\uD835\uDCC7', - 'rtimes': '\u22CA', - 'rtri': '\u25B9', - 'triangleright': '\u25B9', - 'rtriltri': '\u29CE', - 'ruluhar': '\u2968', - 'rx': '\u211E', - 'sacute': '\u015B', - 'scE': '\u2AB4', - 'scap': '\u2AB8', - 'succapprox': '\u2AB8', - 'scaron': '\u0161', - 'scedil': '\u015F', - 'scirc': '\u015D', - 'scnE': '\u2AB6', - 'succneqq': '\u2AB6', - 'scnap': '\u2ABA', - 'succnapprox': '\u2ABA', - 'scnsim': '\u22E9', - 'succnsim': '\u22E9', - 'scpolint': '\u2A13', - 'scy': '\u0441', - 'sdot': '\u22C5', - 'sdote': '\u2A66', - 'seArr': '\u21D8', - 'sect': '\u00A7', - 'semi': '\u003B', - 'seswar': '\u2929', - 'tosa': '\u2929', - 'sext': '\u2736', - 'sfr': '\uD835\uDD30', - 'sharp': '\u266F', - 'shchcy': '\u0449', - 'shcy': '\u0448', - 'shy': '\u00AD', - 'sigma': '\u03C3', - 'sigmaf': '\u03C2', - 'sigmav': '\u03C2', - 'varsigma': '\u03C2', - 'simdot': '\u2A6A', - 'simg': '\u2A9E', - 'simgE': '\u2AA0', - 'siml': '\u2A9D', - 'simlE': '\u2A9F', - 'simne': '\u2246', - 'simplus': '\u2A24', - 'simrarr': '\u2972', - 'smashp': '\u2A33', - 'smeparsl': '\u29E4', - 'smile': '\u2323', - 'ssmile': '\u2323', - 'smt': '\u2AAA', - 'smte': '\u2AAC', - 'smtes': '\u2AAC\uFE00', - 'softcy': '\u044C', - 'sol': '\u002F', - 'solb': '\u29C4', - 'solbar': '\u233F', - 'sopf': '\uD835\uDD64', - 'spades': '\u2660', - 'spadesuit': '\u2660', - 'sqcaps': '\u2293\uFE00', - 'sqcups': '\u2294\uFE00', - 'sscr': '\uD835\uDCC8', - 'star': '\u2606', - 'sub': '\u2282', - 'subset': '\u2282', - 'subE': '\u2AC5', - 'subseteqq': '\u2AC5', - 'subdot': '\u2ABD', - 'subedot': '\u2AC3', - 'submult': '\u2AC1', - 'subnE': '\u2ACB', - 'subsetneqq': '\u2ACB', - 'subne': '\u228A', - 'subsetneq': '\u228A', - 'subplus': '\u2ABF', - 'subrarr': '\u2979', - 'subsim': '\u2AC7', - 'subsub': '\u2AD5', - 'subsup': '\u2AD3', - 'sung': '\u266A', - 'sup1': '\u00B9', - 'sup2': '\u00B2', - 'sup3': '\u00B3', - 'supE': '\u2AC6', - 'supseteqq': '\u2AC6', - 'supdot': '\u2ABE', - 'supdsub': '\u2AD8', - 'supedot': '\u2AC4', - 'suphsol': '\u27C9', - 'suphsub': '\u2AD7', - 'suplarr': '\u297B', - 'supmult': '\u2AC2', - 'supnE': '\u2ACC', - 'supsetneqq': '\u2ACC', - 'supne': '\u228B', - 'supsetneq': '\u228B', - 'supplus': '\u2AC0', - 'supsim': '\u2AC8', - 'supsub': '\u2AD4', - 'supsup': '\u2AD6', - 'swArr': '\u21D9', - 'swnwar': '\u292A', - 'szlig': '\u00DF', - 'target': '\u2316', - 'tau': '\u03C4', - 'tcaron': '\u0165', - 'tcedil': '\u0163', - 'tcy': '\u0442', - 'telrec': '\u2315', - 'tfr': '\uD835\uDD31', - 'theta': '\u03B8', - 'thetasym': '\u03D1', - 'thetav': '\u03D1', - 'vartheta': '\u03D1', - 'thorn': '\u00FE', - 'times': '\u00D7', - 'timesbar': '\u2A31', - 'timesd': '\u2A30', - 'topbot': '\u2336', - 'topcir': '\u2AF1', - 'topf': '\uD835\uDD65', - 'topfork': '\u2ADA', - 'tprime': '\u2034', - 'triangle': '\u25B5', - 'utri': '\u25B5', - 'triangleq': '\u225C', - 'trie': '\u225C', - 'tridot': '\u25EC', - 'triminus': '\u2A3A', - 'triplus': '\u2A39', - 'trisb': '\u29CD', - 'tritime': '\u2A3B', - 'trpezium': '\u23E2', - 'tscr': '\uD835\uDCC9', - 'tscy': '\u0446', - 'tshcy': '\u045B', - 'tstrok': '\u0167', - 'uHar': '\u2963', - 'uacute': '\u00FA', - 'ubrcy': '\u045E', - 'ubreve': '\u016D', - 'ucirc': '\u00FB', - 'ucy': '\u0443', - 'udblac': '\u0171', - 'ufisht': '\u297E', - 'ufr': '\uD835\uDD32', - 'ugrave': '\u00F9', - 'uhblk': '\u2580', - 'ulcorn': '\u231C', - 'ulcorner': '\u231C', - 'ulcrop': '\u230F', - 'ultri': '\u25F8', - 'umacr': '\u016B', - 'uogon': '\u0173', - 'uopf': '\uD835\uDD66', - 'upsi': '\u03C5', - 'upsilon': '\u03C5', - 'upuparrows': '\u21C8', - 'uuarr': '\u21C8', - 'urcorn': '\u231D', - 'urcorner': '\u231D', - 'urcrop': '\u230E', - 'uring': '\u016F', - 'urtri': '\u25F9', - 'uscr': '\uD835\uDCCA', - 'utdot': '\u22F0', - 'utilde': '\u0169', - 'uuml': '\u00FC', - 'uwangle': '\u29A7', - 'vBar': '\u2AE8', - 'vBarv': '\u2AE9', - 'vangrt': '\u299C', - 'varsubsetneq': '\u228A\uFE00', - 'vsubne': '\u228A\uFE00', - 'varsubsetneqq': '\u2ACB\uFE00', - 'vsubnE': '\u2ACB\uFE00', - 'varsupsetneq': '\u228B\uFE00', - 'vsupne': '\u228B\uFE00', - 'varsupsetneqq': '\u2ACC\uFE00', - 'vsupnE': '\u2ACC\uFE00', - 'vcy': '\u0432', - 'veebar': '\u22BB', - 'veeeq': '\u225A', - 'vellip': '\u22EE', - 'vfr': '\uD835\uDD33', - 'vopf': '\uD835\uDD67', - 'vscr': '\uD835\uDCCB', - 'vzigzag': '\u299A', - 'wcirc': '\u0175', - 'wedbar': '\u2A5F', - 'wedgeq': '\u2259', - 'weierp': '\u2118', - 'wp': '\u2118', - 'wfr': '\uD835\uDD34', - 'wopf': '\uD835\uDD68', - 'wscr': '\uD835\uDCCC', - 'xfr': '\uD835\uDD35', - 'xi': '\u03BE', - 'xnis': '\u22FB', - 'xopf': '\uD835\uDD69', - 'xscr': '\uD835\uDCCD', - 'yacute': '\u00FD', - 'yacy': '\u044F', - 'ycirc': '\u0177', - 'ycy': '\u044B', - 'yen': '\u00A5', - 'yfr': '\uD835\uDD36', - 'yicy': '\u0457', - 'yopf': '\uD835\uDD6A', - 'yscr': '\uD835\uDCCE', - 'yucy': '\u044E', - 'yuml': '\u00FF', - 'zacute': '\u017A', - 'zcaron': '\u017E', - 'zcy': '\u0437', - 'zdot': '\u017C', - 'zeta': '\u03B6', - 'zfr': '\uD835\uDD37', - 'zhcy': '\u0436', - 'zigrarr': '\u21DD', - 'zopf': '\uD835\uDD6B', - 'zscr': '\uD835\uDCCF', - 'zwj': '\u200D', - 'zwnj': '\u200C' -}; // The &ngsp; pseudo-entity is denoting a space. see: -// https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart - -const NGSP_UNICODE = '\uE500'; -NAMED_ENTITIES['ngsp'] = NGSP_UNICODE; -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -class TokenError extends ParseError { - constructor(errorMsg, tokenType, span) { - super(span, errorMsg); - this.tokenType = tokenType; - } - -} - -class TokenizeResult { - constructor(tokens, errors, nonNormalizedIcuExpressions) { - this.tokens = tokens; - this.errors = errors; - this.nonNormalizedIcuExpressions = nonNormalizedIcuExpressions; - } - -} - -function tokenize(source, url, getTagDefinition, options = {}) { - const tokenizer = new _Tokenizer(new ParseSourceFile(source, url), getTagDefinition, options); - tokenizer.tokenize(); - return new TokenizeResult(mergeTextTokens(tokenizer.tokens), tokenizer.errors, tokenizer.nonNormalizedIcuExpressions); -} - -const _CR_OR_CRLF_REGEXP = /\r\n?/g; - -function _unexpectedCharacterErrorMsg(charCode) { - const char = charCode === $EOF ? 'EOF' : String.fromCharCode(charCode); - return `Unexpected character "${char}"`; -} - -function _unknownEntityErrorMsg(entitySrc) { - return `Unknown entity "${entitySrc}" - use the "&#;" or "&#x;" syntax`; -} - -function _unparsableEntityErrorMsg(type, entityStr) { - return `Unable to parse entity "${entityStr}" - ${type} character reference entities must end with ";"`; -} - -var CharacterReferenceType; - -(function (CharacterReferenceType) { - CharacterReferenceType["HEX"] = "hexadecimal"; - CharacterReferenceType["DEC"] = "decimal"; -})(CharacterReferenceType || (CharacterReferenceType = {})); - -class _ControlFlowError { - constructor(error) { - this.error = error; - } - -} // See https://www.w3.org/TR/html51/syntax.html#writing-html-documents - - -class _Tokenizer { - /** - * @param _file The html source file being tokenized. - * @param _getTagDefinition A function that will retrieve a tag definition for a given tag name. - * @param options Configuration of the tokenization. - */ - constructor(_file, _getTagDefinition, options) { - this._getTagDefinition = _getTagDefinition; - this._currentTokenStart = null; - this._currentTokenType = null; - this._expansionCaseStack = []; - this._inInterpolation = false; - this.tokens = []; - this.errors = []; - this.nonNormalizedIcuExpressions = []; - this._tokenizeIcu = options.tokenizeExpansionForms || false; - this._interpolationConfig = options.interpolationConfig || DEFAULT_INTERPOLATION_CONFIG; - this._leadingTriviaCodePoints = options.leadingTriviaChars && options.leadingTriviaChars.map(c => c.codePointAt(0) || 0); - const range = options.range || { - endPos: _file.content.length, - startPos: 0, - startLine: 0, - startCol: 0 - }; - this._cursor = options.escapedString ? new EscapedCharacterCursor(_file, range) : new PlainCharacterCursor(_file, range); - this._preserveLineEndings = options.preserveLineEndings || false; - this._escapedString = options.escapedString || false; - this._i18nNormalizeLineEndingsInICUs = options.i18nNormalizeLineEndingsInICUs || false; - - try { - this._cursor.init(); - } catch (e) { - this.handleError(e); - } - } - - _processCarriageReturns(content) { - if (this._preserveLineEndings) { - return content; - } // https://www.w3.org/TR/html51/syntax.html#preprocessing-the-input-stream - // In order to keep the original position in the source, we can not - // pre-process it. - // Instead CRs are processed right before instantiating the tokens. - - - return content.replace(_CR_OR_CRLF_REGEXP, '\n'); - } - - tokenize() { - while (this._cursor.peek() !== $EOF) { - const start = this._cursor.clone(); - - try { - if (this._attemptCharCode($LT)) { - if (this._attemptCharCode($BANG)) { - if (this._attemptCharCode($LBRACKET)) { - this._consumeCdata(start); - } else if (this._attemptCharCode($MINUS)) { - this._consumeComment(start); - } else { - this._consumeDocType(start); - } - } else if (this._attemptCharCode($SLASH)) { - this._consumeTagClose(start); - } else { - this._consumeTagOpen(start); - } - } else if (!(this._tokenizeIcu && this._tokenizeExpansionForm())) { - // In (possibly interpolated) text the end of the text is given by `isTextEnd()`, while - // the premature end of an interpolation is given by the start of a new HTML element. - this._consumeWithInterpolation(5 - /* TokenType.TEXT */ - , 8 - /* TokenType.INTERPOLATION */ - , () => this._isTextEnd(), () => this._isTagStart()); - } - } catch (e) { - this.handleError(e); - } - } - - this._beginToken(24 - /* TokenType.EOF */ - ); - - this._endToken([]); - } - /** - * @returns whether an ICU token has been created - * @internal - */ - - - _tokenizeExpansionForm() { - if (this.isExpansionFormStart()) { - this._consumeExpansionFormStart(); - - return true; - } - - if (isExpansionCaseStart(this._cursor.peek()) && this._isInExpansionForm()) { - this._consumeExpansionCaseStart(); - - return true; - } - - if (this._cursor.peek() === $RBRACE) { - if (this._isInExpansionCase()) { - this._consumeExpansionCaseEnd(); - - return true; - } - - if (this._isInExpansionForm()) { - this._consumeExpansionFormEnd(); - - return true; - } - } - - return false; - } - - _beginToken(type, start = this._cursor.clone()) { - this._currentTokenStart = start; - this._currentTokenType = type; - } - - _endToken(parts, end) { - if (this._currentTokenStart === null) { - throw new TokenError('Programming error - attempted to end a token when there was no start to the token', this._currentTokenType, this._cursor.getSpan(end)); - } - - if (this._currentTokenType === null) { - throw new TokenError('Programming error - attempted to end a token which has no token type', null, this._cursor.getSpan(this._currentTokenStart)); - } - - const token = { - type: this._currentTokenType, - parts, - sourceSpan: (end ?? this._cursor).getSpan(this._currentTokenStart, this._leadingTriviaCodePoints) - }; - this.tokens.push(token); - this._currentTokenStart = null; - this._currentTokenType = null; - return token; - } - - _createError(msg, span) { - if (this._isInExpansionForm()) { - msg += ` (Do you have an unescaped "{" in your template? Use "{{ '{' }}") to escape it.)`; - } - - const error = new TokenError(msg, this._currentTokenType, span); - this._currentTokenStart = null; - this._currentTokenType = null; - return new _ControlFlowError(error); - } - - handleError(e) { - if (e instanceof CursorError) { - e = this._createError(e.msg, this._cursor.getSpan(e.cursor)); - } - - if (e instanceof _ControlFlowError) { - this.errors.push(e.error); - } else { - throw e; - } - } - - _attemptCharCode(charCode) { - if (this._cursor.peek() === charCode) { - this._cursor.advance(); - - return true; - } - - return false; - } - - _attemptCharCodeCaseInsensitive(charCode) { - if (compareCharCodeCaseInsensitive(this._cursor.peek(), charCode)) { - this._cursor.advance(); - - return true; - } - - return false; - } - - _requireCharCode(charCode) { - const location = this._cursor.clone(); - - if (!this._attemptCharCode(charCode)) { - throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(location)); - } - } - - _attemptStr(chars) { - const len = chars.length; - - if (this._cursor.charsLeft() < len) { - return false; - } - - const initialPosition = this._cursor.clone(); - - for (let i = 0; i < len; i++) { - if (!this._attemptCharCode(chars.charCodeAt(i))) { - // If attempting to parse the string fails, we want to reset the parser - // to where it was before the attempt - this._cursor = initialPosition; - return false; - } - } - - return true; - } - - _attemptStrCaseInsensitive(chars) { - for (let i = 0; i < chars.length; i++) { - if (!this._attemptCharCodeCaseInsensitive(chars.charCodeAt(i))) { - return false; - } - } - - return true; - } - - _requireStr(chars) { - const location = this._cursor.clone(); - - if (!this._attemptStr(chars)) { - throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(location)); - } - } - - _attemptCharCodeUntilFn(predicate) { - while (!predicate(this._cursor.peek())) { - this._cursor.advance(); - } - } - - _requireCharCodeUntilFn(predicate, len) { - const start = this._cursor.clone(); - - this._attemptCharCodeUntilFn(predicate); - - if (this._cursor.diff(start) < len) { - throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(start)); - } - } - - _attemptUntilChar(char) { - while (this._cursor.peek() !== char) { - this._cursor.advance(); - } - } - - _readChar() { - // Don't rely upon reading directly from `_input` as the actual char value - // may have been generated from an escape sequence. - const char = String.fromCodePoint(this._cursor.peek()); - - this._cursor.advance(); - - return char; - } - - _consumeEntity(textTokenType) { - this._beginToken(9 - /* TokenType.ENCODED_ENTITY */ - ); - - const start = this._cursor.clone(); - - this._cursor.advance(); - - if (this._attemptCharCode($HASH)) { - const isHex = this._attemptCharCode($x) || this._attemptCharCode($X); - - const codeStart = this._cursor.clone(); - - this._attemptCharCodeUntilFn(isDigitEntityEnd); - - if (this._cursor.peek() != $SEMICOLON) { - // Advance cursor to include the peeked character in the string provided to the error - // message. - this._cursor.advance(); - - const entityType = isHex ? CharacterReferenceType.HEX : CharacterReferenceType.DEC; - throw this._createError(_unparsableEntityErrorMsg(entityType, this._cursor.getChars(start)), this._cursor.getSpan()); - } - - const strNum = this._cursor.getChars(codeStart); - - this._cursor.advance(); - - try { - const charCode = parseInt(strNum, isHex ? 16 : 10); - - this._endToken([String.fromCharCode(charCode), this._cursor.getChars(start)]); - } catch { - throw this._createError(_unknownEntityErrorMsg(this._cursor.getChars(start)), this._cursor.getSpan()); - } - } else { - const nameStart = this._cursor.clone(); - - this._attemptCharCodeUntilFn(isNamedEntityEnd); - - if (this._cursor.peek() != $SEMICOLON) { - // No semicolon was found so abort the encoded entity token that was in progress, and treat - // this as a text token - this._beginToken(textTokenType, start); - - this._cursor = nameStart; - - this._endToken(['&']); - } else { - const name = this._cursor.getChars(nameStart); - - this._cursor.advance(); - - const char = NAMED_ENTITIES[name]; - - if (!char) { - throw this._createError(_unknownEntityErrorMsg(name), this._cursor.getSpan(start)); - } - - this._endToken([char, `&${name};`]); - } - } - } - - _consumeRawText(consumeEntities, endMarkerPredicate) { - this._beginToken(consumeEntities ? 6 - /* TokenType.ESCAPABLE_RAW_TEXT */ - : 7 - /* TokenType.RAW_TEXT */ - ); - - const parts = []; - - while (true) { - const tagCloseStart = this._cursor.clone(); - - const foundEndMarker = endMarkerPredicate(); - this._cursor = tagCloseStart; - - if (foundEndMarker) { - break; - } - - if (consumeEntities && this._cursor.peek() === $AMPERSAND) { - this._endToken([this._processCarriageReturns(parts.join(''))]); - - parts.length = 0; - - this._consumeEntity(6 - /* TokenType.ESCAPABLE_RAW_TEXT */ - ); - - this._beginToken(6 - /* TokenType.ESCAPABLE_RAW_TEXT */ - ); - } else { - parts.push(this._readChar()); - } - } - - this._endToken([this._processCarriageReturns(parts.join(''))]); - } - - _consumeComment(start) { - this._beginToken(10 - /* TokenType.COMMENT_START */ - , start); - - this._requireCharCode($MINUS); - - this._endToken([]); - - this._consumeRawText(false, () => this._attemptStr('-->')); - - this._beginToken(11 - /* TokenType.COMMENT_END */ - ); - - this._requireStr('-->'); - - this._endToken([]); - } - - _consumeCdata(start) { - this._beginToken(12 - /* TokenType.CDATA_START */ - , start); - - this._requireStr('CDATA['); - - this._endToken([]); - - this._consumeRawText(false, () => this._attemptStr(']]>')); - - this._beginToken(13 - /* TokenType.CDATA_END */ - ); - - this._requireStr(']]>'); - - this._endToken([]); - } - - _consumeDocType(start) { - this._beginToken(18 - /* TokenType.DOC_TYPE */ - , start); - - const contentStart = this._cursor.clone(); - - this._attemptUntilChar($GT); - - const content = this._cursor.getChars(contentStart); - - this._cursor.advance(); - - this._endToken([content]); - } - - _consumePrefixAndName() { - const nameOrPrefixStart = this._cursor.clone(); - - let prefix = ''; - - while (this._cursor.peek() !== $COLON && !isPrefixEnd(this._cursor.peek())) { - this._cursor.advance(); - } - - let nameStart; - - if (this._cursor.peek() === $COLON) { - prefix = this._cursor.getChars(nameOrPrefixStart); - - this._cursor.advance(); - - nameStart = this._cursor.clone(); - } else { - nameStart = nameOrPrefixStart; - } - - this._requireCharCodeUntilFn(isNameEnd, prefix === '' ? 0 : 1); - - const name = this._cursor.getChars(nameStart); - - return [prefix, name]; - } - - _consumeTagOpen(start) { - let tagName; - let prefix; - let openTagToken; - - try { - if (!isAsciiLetter(this._cursor.peek())) { - throw this._createError(_unexpectedCharacterErrorMsg(this._cursor.peek()), this._cursor.getSpan(start)); - } - - openTagToken = this._consumeTagOpenStart(start); - prefix = openTagToken.parts[0]; - tagName = openTagToken.parts[1]; - - this._attemptCharCodeUntilFn(isNotWhitespace); - - while (this._cursor.peek() !== $SLASH && this._cursor.peek() !== $GT && this._cursor.peek() !== $LT && this._cursor.peek() !== $EOF) { - this._consumeAttributeName(); - - this._attemptCharCodeUntilFn(isNotWhitespace); - - if (this._attemptCharCode($EQ)) { - this._attemptCharCodeUntilFn(isNotWhitespace); - - this._consumeAttributeValue(); - } - - this._attemptCharCodeUntilFn(isNotWhitespace); - } - - this._consumeTagOpenEnd(); - } catch (e) { - if (e instanceof _ControlFlowError) { - if (openTagToken) { - // We errored before we could close the opening tag, so it is incomplete. - openTagToken.type = 4 - /* TokenType.INCOMPLETE_TAG_OPEN */ - ; - } else { - // When the start tag is invalid, assume we want a "<" as text. - // Back to back text tokens are merged at the end. - this._beginToken(5 - /* TokenType.TEXT */ - , start); - - this._endToken(['<']); - } - - return; - } - - throw e; - } - - const contentTokenType = this._getTagDefinition(tagName).getContentType(prefix); - - if (contentTokenType === TagContentType.RAW_TEXT) { - this._consumeRawTextWithTagClose(prefix, tagName, false); - } else if (contentTokenType === TagContentType.ESCAPABLE_RAW_TEXT) { - this._consumeRawTextWithTagClose(prefix, tagName, true); - } - } - - _consumeRawTextWithTagClose(prefix, tagName, consumeEntities) { - this._consumeRawText(consumeEntities, () => { - if (!this._attemptCharCode($LT)) return false; - if (!this._attemptCharCode($SLASH)) return false; - - this._attemptCharCodeUntilFn(isNotWhitespace); - - if (!this._attemptStrCaseInsensitive(tagName)) return false; - - this._attemptCharCodeUntilFn(isNotWhitespace); - - return this._attemptCharCode($GT); - }); - - this._beginToken(3 - /* TokenType.TAG_CLOSE */ - ); - - this._requireCharCodeUntilFn(code => code === $GT, 3); - - this._cursor.advance(); // Consume the `>` - - - this._endToken([prefix, tagName]); - } - - _consumeTagOpenStart(start) { - this._beginToken(0 - /* TokenType.TAG_OPEN_START */ - , start); - - const parts = this._consumePrefixAndName(); - - return this._endToken(parts); - } - - _consumeAttributeName() { - const attrNameStart = this._cursor.peek(); - - if (attrNameStart === $SQ || attrNameStart === $DQ) { - throw this._createError(_unexpectedCharacterErrorMsg(attrNameStart), this._cursor.getSpan()); - } - - this._beginToken(14 - /* TokenType.ATTR_NAME */ - ); - - const prefixAndName = this._consumePrefixAndName(); - - this._endToken(prefixAndName); - } - - _consumeAttributeValue() { - let value; - - if (this._cursor.peek() === $SQ || this._cursor.peek() === $DQ) { - const quoteChar = this._cursor.peek(); - - this._consumeQuote(quoteChar); // In an attribute then end of the attribute value and the premature end to an interpolation - // are both triggered by the `quoteChar`. - - - const endPredicate = () => this._cursor.peek() === quoteChar; - - this._consumeWithInterpolation(16 - /* TokenType.ATTR_VALUE_TEXT */ - , 17 - /* TokenType.ATTR_VALUE_INTERPOLATION */ - , endPredicate, endPredicate); - - this._consumeQuote(quoteChar); - } else { - const endPredicate = () => isNameEnd(this._cursor.peek()); - - this._consumeWithInterpolation(16 - /* TokenType.ATTR_VALUE_TEXT */ - , 17 - /* TokenType.ATTR_VALUE_INTERPOLATION */ - , endPredicate, endPredicate); - } - } - - _consumeQuote(quoteChar) { - this._beginToken(15 - /* TokenType.ATTR_QUOTE */ - ); - - this._requireCharCode(quoteChar); - - this._endToken([String.fromCodePoint(quoteChar)]); - } - - _consumeTagOpenEnd() { - const tokenType = this._attemptCharCode($SLASH) ? 2 - /* TokenType.TAG_OPEN_END_VOID */ - : 1 - /* TokenType.TAG_OPEN_END */ - ; - - this._beginToken(tokenType); - - this._requireCharCode($GT); - - this._endToken([]); - } - - _consumeTagClose(start) { - this._beginToken(3 - /* TokenType.TAG_CLOSE */ - , start); - - this._attemptCharCodeUntilFn(isNotWhitespace); - - const prefixAndName = this._consumePrefixAndName(); - - this._attemptCharCodeUntilFn(isNotWhitespace); - - this._requireCharCode($GT); - - this._endToken(prefixAndName); - } - - _consumeExpansionFormStart() { - this._beginToken(19 - /* TokenType.EXPANSION_FORM_START */ - ); - - this._requireCharCode($LBRACE); - - this._endToken([]); - - this._expansionCaseStack.push(19 - /* TokenType.EXPANSION_FORM_START */ - ); - - this._beginToken(7 - /* TokenType.RAW_TEXT */ - ); - - const condition = this._readUntil($COMMA); - - const normalizedCondition = this._processCarriageReturns(condition); - - if (this._i18nNormalizeLineEndingsInICUs) { - // We explicitly want to normalize line endings for this text. - this._endToken([normalizedCondition]); - } else { - // We are not normalizing line endings. - const conditionToken = this._endToken([condition]); - - if (normalizedCondition !== condition) { - this.nonNormalizedIcuExpressions.push(conditionToken); - } - } - - this._requireCharCode($COMMA); - - this._attemptCharCodeUntilFn(isNotWhitespace); - - this._beginToken(7 - /* TokenType.RAW_TEXT */ - ); - - const type = this._readUntil($COMMA); - - this._endToken([type]); - - this._requireCharCode($COMMA); - - this._attemptCharCodeUntilFn(isNotWhitespace); - } - - _consumeExpansionCaseStart() { - this._beginToken(20 - /* TokenType.EXPANSION_CASE_VALUE */ - ); - - const value = this._readUntil($LBRACE).trim(); - - this._endToken([value]); - - this._attemptCharCodeUntilFn(isNotWhitespace); - - this._beginToken(21 - /* TokenType.EXPANSION_CASE_EXP_START */ - ); - - this._requireCharCode($LBRACE); - - this._endToken([]); - - this._attemptCharCodeUntilFn(isNotWhitespace); - - this._expansionCaseStack.push(21 - /* TokenType.EXPANSION_CASE_EXP_START */ - ); - } - - _consumeExpansionCaseEnd() { - this._beginToken(22 - /* TokenType.EXPANSION_CASE_EXP_END */ - ); - - this._requireCharCode($RBRACE); - - this._endToken([]); - - this._attemptCharCodeUntilFn(isNotWhitespace); - - this._expansionCaseStack.pop(); - } - - _consumeExpansionFormEnd() { - this._beginToken(23 - /* TokenType.EXPANSION_FORM_END */ - ); - - this._requireCharCode($RBRACE); - - this._endToken([]); - - this._expansionCaseStack.pop(); - } - /** - * Consume a string that may contain interpolation expressions. - * - * The first token consumed will be of `tokenType` and then there will be alternating - * `interpolationTokenType` and `tokenType` tokens until the `endPredicate()` returns true. - * - * If an interpolation token ends prematurely it will have no end marker in its `parts` array. - * - * @param textTokenType the kind of tokens to interleave around interpolation tokens. - * @param interpolationTokenType the kind of tokens that contain interpolation. - * @param endPredicate a function that should return true when we should stop consuming. - * @param endInterpolation a function that should return true if there is a premature end to an - * interpolation expression - i.e. before we get to the normal interpolation closing marker. - */ - - - _consumeWithInterpolation(textTokenType, interpolationTokenType, endPredicate, endInterpolation) { - this._beginToken(textTokenType); - - const parts = []; - - while (!endPredicate()) { - const current = this._cursor.clone(); - - if (this._interpolationConfig && this._attemptStr(this._interpolationConfig.start)) { - this._endToken([this._processCarriageReturns(parts.join(''))], current); - - parts.length = 0; - - this._consumeInterpolation(interpolationTokenType, current, endInterpolation); - - this._beginToken(textTokenType); - } else if (this._cursor.peek() === $AMPERSAND) { - this._endToken([this._processCarriageReturns(parts.join(''))]); - - parts.length = 0; - - this._consumeEntity(textTokenType); - - this._beginToken(textTokenType); - } else { - parts.push(this._readChar()); - } - } // It is possible that an interpolation was started but not ended inside this text token. - // Make sure that we reset the state of the lexer correctly. - - - this._inInterpolation = false; - - this._endToken([this._processCarriageReturns(parts.join(''))]); - } - /** - * Consume a block of text that has been interpreted as an Angular interpolation. - * - * @param interpolationTokenType the type of the interpolation token to generate. - * @param interpolationStart a cursor that points to the start of this interpolation. - * @param prematureEndPredicate a function that should return true if the next characters indicate - * an end to the interpolation before its normal closing marker. - */ - - - _consumeInterpolation(interpolationTokenType, interpolationStart, prematureEndPredicate) { - const parts = []; - - this._beginToken(interpolationTokenType, interpolationStart); - - parts.push(this._interpolationConfig.start); // Find the end of the interpolation, ignoring content inside quotes. - - const expressionStart = this._cursor.clone(); - - let inQuote = null; - let inComment = false; - - while (this._cursor.peek() !== $EOF && (prematureEndPredicate === null || !prematureEndPredicate())) { - const current = this._cursor.clone(); - - if (this._isTagStart()) { - // We are starting what looks like an HTML element in the middle of this interpolation. - // Reset the cursor to before the `<` character and end the interpolation token. - // (This is actually wrong but here for backward compatibility). - this._cursor = current; - parts.push(this._getProcessedChars(expressionStart, current)); - - this._endToken(parts); - - return; - } - - if (inQuote === null) { - if (this._attemptStr(this._interpolationConfig.end)) { - // We are not in a string, and we hit the end interpolation marker - parts.push(this._getProcessedChars(expressionStart, current)); - parts.push(this._interpolationConfig.end); - - this._endToken(parts); - - return; - } else if (this._attemptStr('//')) { - // Once we are in a comment we ignore any quotes - inComment = true; - } - } - - const char = this._cursor.peek(); - - this._cursor.advance(); - - if (char === $BACKSLASH) { - // Skip the next character because it was escaped. - this._cursor.advance(); - } else if (char === inQuote) { - // Exiting the current quoted string - inQuote = null; - } else if (!inComment && inQuote === null && isQuote(char)) { - // Entering a new quoted string - inQuote = char; - } - } // We hit EOF without finding a closing interpolation marker - - - parts.push(this._getProcessedChars(expressionStart, this._cursor)); - - this._endToken(parts); - } - - _getProcessedChars(start, end) { - return this._processCarriageReturns(end.getChars(start)); - } - - _isTextEnd() { - if (this._isTagStart() || this._cursor.peek() === $EOF) { - return true; - } - - if (this._tokenizeIcu && !this._inInterpolation) { - if (this.isExpansionFormStart()) { - // start of an expansion form - return true; - } - - if (this._cursor.peek() === $RBRACE && this._isInExpansionCase()) { - // end of and expansion case - return true; - } - } - - return false; - } - /** - * Returns true if the current cursor is pointing to the start of a tag - * (opening/closing/comments/cdata/etc). - */ - - - _isTagStart() { - if (this._cursor.peek() === $LT) { - // We assume that `<` followed by whitespace is not the start of an HTML element. - const tmp = this._cursor.clone(); - - tmp.advance(); // If the next character is alphabetic, ! nor / then it is a tag start - - const code = tmp.peek(); - - if ($a <= code && code <= $z || $A <= code && code <= $Z || code === $SLASH || code === $BANG) { - return true; - } - } - - return false; - } - - _readUntil(char) { - const start = this._cursor.clone(); - - this._attemptUntilChar(char); - - return this._cursor.getChars(start); - } - - _isInExpansionCase() { - return this._expansionCaseStack.length > 0 && this._expansionCaseStack[this._expansionCaseStack.length - 1] === 21 - /* TokenType.EXPANSION_CASE_EXP_START */ - ; - } - - _isInExpansionForm() { - return this._expansionCaseStack.length > 0 && this._expansionCaseStack[this._expansionCaseStack.length - 1] === 19 - /* TokenType.EXPANSION_FORM_START */ - ; - } - - isExpansionFormStart() { - if (this._cursor.peek() !== $LBRACE) { - return false; - } - - if (this._interpolationConfig) { - const start = this._cursor.clone(); - - const isInterpolation = this._attemptStr(this._interpolationConfig.start); - - this._cursor = start; - return !isInterpolation; - } - - return true; - } - -} - -function isNotWhitespace(code) { - return !isWhitespace(code) || code === $EOF; -} - -function isNameEnd(code) { - return isWhitespace(code) || code === $GT || code === $LT || code === $SLASH || code === $SQ || code === $DQ || code === $EQ || code === $EOF; -} - -function isPrefixEnd(code) { - return (code < $a || $z < code) && (code < $A || $Z < code) && (code < $0 || code > $9); -} - -function isDigitEntityEnd(code) { - return code === $SEMICOLON || code === $EOF || !isAsciiHexDigit(code); -} - -function isNamedEntityEnd(code) { - return code === $SEMICOLON || code === $EOF || !isAsciiLetter(code); -} - -function isExpansionCaseStart(peek) { - return peek !== $RBRACE; -} - -function compareCharCodeCaseInsensitive(code1, code2) { - return toUpperCaseCharCode(code1) === toUpperCaseCharCode(code2); -} - -function toUpperCaseCharCode(code) { - return code >= $a && code <= $z ? code - $a + $A : code; -} - -function mergeTextTokens(srcTokens) { - const dstTokens = []; - let lastDstToken = undefined; - - for (let i = 0; i < srcTokens.length; i++) { - const token = srcTokens[i]; - - if (lastDstToken && lastDstToken.type === 5 - /* TokenType.TEXT */ - && token.type === 5 - /* TokenType.TEXT */ - || lastDstToken && lastDstToken.type === 16 - /* TokenType.ATTR_VALUE_TEXT */ - && token.type === 16 - /* TokenType.ATTR_VALUE_TEXT */ - ) { - lastDstToken.parts[0] += token.parts[0]; - lastDstToken.sourceSpan.end = token.sourceSpan.end; - } else { - lastDstToken = token; - dstTokens.push(lastDstToken); - } - } - - return dstTokens; -} - -class PlainCharacterCursor { - constructor(fileOrCursor, range) { - if (fileOrCursor instanceof PlainCharacterCursor) { - this.file = fileOrCursor.file; - this.input = fileOrCursor.input; - this.end = fileOrCursor.end; - const state = fileOrCursor.state; // Note: avoid using `{...fileOrCursor.state}` here as that has a severe performance penalty. - // In ES5 bundles the object spread operator is translated into the `__assign` helper, which - // is not optimized by VMs as efficiently as a raw object literal. Since this constructor is - // called in tight loops, this difference matters. - - this.state = { - peek: state.peek, - offset: state.offset, - line: state.line, - column: state.column - }; - } else { - if (!range) { - throw new Error('Programming error: the range argument must be provided with a file argument.'); - } - - this.file = fileOrCursor; - this.input = fileOrCursor.content; - this.end = range.endPos; - this.state = { - peek: -1, - offset: range.startPos, - line: range.startLine, - column: range.startCol - }; - } - } - - clone() { - return new PlainCharacterCursor(this); - } - - peek() { - return this.state.peek; - } - - charsLeft() { - return this.end - this.state.offset; - } - - diff(other) { - return this.state.offset - other.state.offset; - } - - advance() { - this.advanceState(this.state); - } - - init() { - this.updatePeek(this.state); - } - - getSpan(start, leadingTriviaCodePoints) { - start = start || this; - let fullStart = start; - - if (leadingTriviaCodePoints) { - while (this.diff(start) > 0 && leadingTriviaCodePoints.indexOf(start.peek()) !== -1) { - if (fullStart === start) { - start = start.clone(); - } - - start.advance(); - } - } - - const startLocation = this.locationFromCursor(start); - const endLocation = this.locationFromCursor(this); - const fullStartLocation = fullStart !== start ? this.locationFromCursor(fullStart) : startLocation; - return new ParseSourceSpan(startLocation, endLocation, fullStartLocation); - } - - getChars(start) { - return this.input.substring(start.state.offset, this.state.offset); - } - - charAt(pos) { - return this.input.charCodeAt(pos); - } - - advanceState(state) { - if (state.offset >= this.end) { - this.state = state; - throw new CursorError('Unexpected character "EOF"', this); - } - - const currentChar = this.charAt(state.offset); - - if (currentChar === $LF) { - state.line++; - state.column = 0; - } else if (!isNewLine(currentChar)) { - state.column++; - } - - state.offset++; - this.updatePeek(state); - } - - updatePeek(state) { - state.peek = state.offset >= this.end ? $EOF : this.charAt(state.offset); - } - - locationFromCursor(cursor) { - return new ParseLocation(cursor.file, cursor.state.offset, cursor.state.line, cursor.state.column); - } - -} - -class EscapedCharacterCursor extends PlainCharacterCursor { - constructor(fileOrCursor, range) { - if (fileOrCursor instanceof EscapedCharacterCursor) { - super(fileOrCursor); - this.internalState = { ...fileOrCursor.internalState - }; - } else { - super(fileOrCursor, range); - this.internalState = this.state; - } - } - - advance() { - this.state = this.internalState; - super.advance(); - this.processEscapeSequence(); - } - - init() { - super.init(); - this.processEscapeSequence(); - } - - clone() { - return new EscapedCharacterCursor(this); - } - - getChars(start) { - const cursor = start.clone(); - let chars = ''; - - while (cursor.internalState.offset < this.internalState.offset) { - chars += String.fromCodePoint(cursor.peek()); - cursor.advance(); - } - - return chars; - } - /** - * Process the escape sequence that starts at the current position in the text. - * - * This method is called to ensure that `peek` has the unescaped value of escape sequences. - */ - - - processEscapeSequence() { - const peek = () => this.internalState.peek; - - if (peek() === $BACKSLASH) { - // We have hit an escape sequence so we need the internal state to become independent - // of the external state. - this.internalState = { ...this.state - }; // Move past the backslash - - this.advanceState(this.internalState); // First check for standard control char sequences - - if (peek() === $n) { - this.state.peek = $LF; - } else if (peek() === $r) { - this.state.peek = $CR; - } else if (peek() === $v) { - this.state.peek = $VTAB; - } else if (peek() === $t) { - this.state.peek = $TAB; - } else if (peek() === $b) { - this.state.peek = $BSPACE; - } else if (peek() === $f) { - this.state.peek = $FF; - } // Now consider more complex sequences - else if (peek() === $u) { - // Unicode code-point sequence - this.advanceState(this.internalState); // advance past the `u` char - - if (peek() === $LBRACE) { - // Variable length Unicode, e.g. `\x{123}` - this.advanceState(this.internalState); // advance past the `{` char - // Advance past the variable number of hex digits until we hit a `}` char - - const digitStart = this.clone(); - let length = 0; - - while (peek() !== $RBRACE) { - this.advanceState(this.internalState); - length++; - } - - this.state.peek = this.decodeHexDigits(digitStart, length); - } else { - // Fixed length Unicode, e.g. `\u1234` - const digitStart = this.clone(); - this.advanceState(this.internalState); - this.advanceState(this.internalState); - this.advanceState(this.internalState); - this.state.peek = this.decodeHexDigits(digitStart, 4); - } - } else if (peek() === $x) { - // Hex char code, e.g. `\x2F` - this.advanceState(this.internalState); // advance past the `x` char - - const digitStart = this.clone(); - this.advanceState(this.internalState); - this.state.peek = this.decodeHexDigits(digitStart, 2); - } else if (isOctalDigit(peek())) { - // Octal char code, e.g. `\012`, - let octal = ''; - let length = 0; - let previous = this.clone(); - - while (isOctalDigit(peek()) && length < 3) { - previous = this.clone(); - octal += String.fromCodePoint(peek()); - this.advanceState(this.internalState); - length++; - } - - this.state.peek = parseInt(octal, 8); // Backup one char - - this.internalState = previous.internalState; - } else if (isNewLine(this.internalState.peek)) { - // Line continuation `\` followed by a new line - this.advanceState(this.internalState); // advance over the newline - - this.state = this.internalState; - } else { - // If none of the `if` blocks were executed then we just have an escaped normal character. - // In that case we just, effectively, skip the backslash from the character. - this.state.peek = this.internalState.peek; - } - } - } - - decodeHexDigits(start, length) { - const hex = this.input.slice(start.internalState.offset, start.internalState.offset + length); - const charCode = parseInt(hex, 16); - - if (!isNaN(charCode)) { - return charCode; - } else { - start.state = start.internalState; - throw new CursorError('Invalid hexadecimal escape sequence', start); - } - } - -} - -class CursorError { - constructor(msg, cursor) { - this.msg = msg; - this.cursor = cursor; - } - -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -class TreeError extends ParseError { - constructor(elementName, span, msg) { - super(span, msg); - this.elementName = elementName; - } - - static create(elementName, span, msg) { - return new TreeError(elementName, span, msg); - } - -} - -class ParseTreeResult { - constructor(rootNodes, errors) { - this.rootNodes = rootNodes; - this.errors = errors; - } - -} - -class Parser { - constructor(getTagDefinition) { - this.getTagDefinition = getTagDefinition; - } - - parse(source, url, options) { - const tokenizeResult = tokenize(source, url, this.getTagDefinition, options); - const parser = new _TreeBuilder(tokenizeResult.tokens, this.getTagDefinition); - parser.build(); - return new ParseTreeResult(parser.rootNodes, tokenizeResult.errors.concat(parser.errors)); - } - -} - -class _TreeBuilder { - constructor(tokens, getTagDefinition) { - this.tokens = tokens; - this.getTagDefinition = getTagDefinition; - this._index = -1; - this._elementStack = []; - this.rootNodes = []; - this.errors = []; - - this._advance(); - } - - build() { - while (this._peek.type !== 24 - /* TokenType.EOF */ - ) { - if (this._peek.type === 0 - /* TokenType.TAG_OPEN_START */ - || this._peek.type === 4 - /* TokenType.INCOMPLETE_TAG_OPEN */ - ) { - this._consumeStartTag(this._advance()); - } else if (this._peek.type === 3 - /* TokenType.TAG_CLOSE */ - ) { - this._consumeEndTag(this._advance()); - } else if (this._peek.type === 12 - /* TokenType.CDATA_START */ - ) { - this._closeVoidElement(); - - this._consumeCdata(this._advance()); - } else if (this._peek.type === 10 - /* TokenType.COMMENT_START */ - ) { - this._closeVoidElement(); - - this._consumeComment(this._advance()); - } else if (this._peek.type === 5 - /* TokenType.TEXT */ - || this._peek.type === 7 - /* TokenType.RAW_TEXT */ - || this._peek.type === 6 - /* TokenType.ESCAPABLE_RAW_TEXT */ - ) { - this._closeVoidElement(); - - this._consumeText(this._advance()); - } else if (this._peek.type === 19 - /* TokenType.EXPANSION_FORM_START */ - ) { - this._consumeExpansion(this._advance()); - } else { - // Skip all other tokens... - this._advance(); - } - } - } - - _advance() { - const prev = this._peek; - - if (this._index < this.tokens.length - 1) { - // Note: there is always an EOF token at the end - this._index++; - } - - this._peek = this.tokens[this._index]; - return prev; - } - - _advanceIf(type) { - if (this._peek.type === type) { - return this._advance(); - } - - return null; - } - - _consumeCdata(_startToken) { - this._consumeText(this._advance()); - - this._advanceIf(13 - /* TokenType.CDATA_END */ - ); - } - - _consumeComment(token) { - const text = this._advanceIf(7 - /* TokenType.RAW_TEXT */ - ); - - this._advanceIf(11 - /* TokenType.COMMENT_END */ - ); - - const value = text != null ? text.parts[0].trim() : null; - - this._addToParent(new Comment(value, token.sourceSpan)); - } - - _consumeExpansion(token) { - const switchValue = this._advance(); - - const type = this._advance(); - - const cases = []; // read = - - while (this._peek.type === 20 - /* TokenType.EXPANSION_CASE_VALUE */ - ) { - const expCase = this._parseExpansionCase(); - - if (!expCase) return; // error - - cases.push(expCase); - } // read the final } - - - if (this._peek.type !== 23 - /* TokenType.EXPANSION_FORM_END */ - ) { - this.errors.push(TreeError.create(null, this._peek.sourceSpan, `Invalid ICU message. Missing '}'.`)); - return; - } - - const sourceSpan = new ParseSourceSpan(token.sourceSpan.start, this._peek.sourceSpan.end, token.sourceSpan.fullStart); - - this._addToParent(new Expansion(switchValue.parts[0], type.parts[0], cases, sourceSpan, switchValue.sourceSpan)); - - this._advance(); - } - - _parseExpansionCase() { - const value = this._advance(); // read { - - - if (this._peek.type !== 21 - /* TokenType.EXPANSION_CASE_EXP_START */ - ) { - this.errors.push(TreeError.create(null, this._peek.sourceSpan, `Invalid ICU message. Missing '{'.`)); - return null; - } // read until } - - - const start = this._advance(); - - const exp = this._collectExpansionExpTokens(start); - - if (!exp) return null; - - const end = this._advance(); - - exp.push({ - type: 24 - /* TokenType.EOF */ - , - parts: [], - sourceSpan: end.sourceSpan - }); // parse everything in between { and } - - const expansionCaseParser = new _TreeBuilder(exp, this.getTagDefinition); - expansionCaseParser.build(); - - if (expansionCaseParser.errors.length > 0) { - this.errors = this.errors.concat(expansionCaseParser.errors); - return null; - } - - const sourceSpan = new ParseSourceSpan(value.sourceSpan.start, end.sourceSpan.end, value.sourceSpan.fullStart); - const expSourceSpan = new ParseSourceSpan(start.sourceSpan.start, end.sourceSpan.end, start.sourceSpan.fullStart); - return new ExpansionCase(value.parts[0], expansionCaseParser.rootNodes, sourceSpan, value.sourceSpan, expSourceSpan); - } - - _collectExpansionExpTokens(start) { - const exp = []; - const expansionFormStack = [21 - /* TokenType.EXPANSION_CASE_EXP_START */ - ]; - - while (true) { - if (this._peek.type === 19 - /* TokenType.EXPANSION_FORM_START */ - || this._peek.type === 21 - /* TokenType.EXPANSION_CASE_EXP_START */ - ) { - expansionFormStack.push(this._peek.type); - } - - if (this._peek.type === 22 - /* TokenType.EXPANSION_CASE_EXP_END */ - ) { - if (lastOnStack(expansionFormStack, 21 - /* TokenType.EXPANSION_CASE_EXP_START */ - )) { - expansionFormStack.pop(); - if (expansionFormStack.length === 0) return exp; - } else { - this.errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`)); - return null; - } - } - - if (this._peek.type === 23 - /* TokenType.EXPANSION_FORM_END */ - ) { - if (lastOnStack(expansionFormStack, 19 - /* TokenType.EXPANSION_FORM_START */ - )) { - expansionFormStack.pop(); - } else { - this.errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`)); - return null; - } - } - - if (this._peek.type === 24 - /* TokenType.EOF */ - ) { - this.errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`)); - return null; - } - - exp.push(this._advance()); - } - } - - _consumeText(token) { - const tokens = [token]; - const startSpan = token.sourceSpan; - let text = token.parts[0]; - - if (text.length > 0 && text[0] === '\n') { - const parent = this._getParentElement(); - - if (parent != null && parent.children.length === 0 && this.getTagDefinition(parent.name).ignoreFirstLf) { - text = text.substring(1); - tokens[0] = { - type: token.type, - sourceSpan: token.sourceSpan, - parts: [text] - }; - } - } - - while (this._peek.type === 8 - /* TokenType.INTERPOLATION */ - || this._peek.type === 5 - /* TokenType.TEXT */ - || this._peek.type === 9 - /* TokenType.ENCODED_ENTITY */ - ) { - token = this._advance(); - tokens.push(token); - - if (token.type === 8 - /* TokenType.INTERPOLATION */ - ) { - // For backward compatibility we decode HTML entities that appear in interpolation - // expressions. This is arguably a bug, but it could be a considerable breaking change to - // fix it. It should be addressed in a larger project to refactor the entire parser/lexer - // chain after View Engine has been removed. - text += token.parts.join('').replace(/&([^;]+);/g, decodeEntity); - } else if (token.type === 9 - /* TokenType.ENCODED_ENTITY */ - ) { - text += token.parts[0]; - } else { - text += token.parts.join(''); - } - } - - if (text.length > 0) { - const endSpan = token.sourceSpan; - - this._addToParent(new Text(text, new ParseSourceSpan(startSpan.start, endSpan.end, startSpan.fullStart, startSpan.details), tokens)); - } - } - - _closeVoidElement() { - const el = this._getParentElement(); - - if (el && this.getTagDefinition(el.name).isVoid) { - this._elementStack.pop(); - } - } - - _consumeStartTag(startTagToken) { - const [prefix, name] = startTagToken.parts; - const attrs = []; - - while (this._peek.type === 14 - /* TokenType.ATTR_NAME */ - ) { - attrs.push(this._consumeAttr(this._advance())); - } - - const fullName = this._getElementFullName(prefix, name, this._getParentElement()); - - let selfClosing = false; // Note: There could have been a tokenizer error - // so that we don't get a token for the end tag... - - if (this._peek.type === 2 - /* TokenType.TAG_OPEN_END_VOID */ - ) { - this._advance(); - - selfClosing = true; - const tagDef = this.getTagDefinition(fullName); - - if (!(tagDef.canSelfClose || getNsPrefix(fullName) !== null || tagDef.isVoid)) { - this.errors.push(TreeError.create(fullName, startTagToken.sourceSpan, `Only void and foreign elements can be self closed "${startTagToken.parts[1]}"`)); - } - } else if (this._peek.type === 1 - /* TokenType.TAG_OPEN_END */ - ) { - this._advance(); - - selfClosing = false; - } - - const end = this._peek.sourceSpan.fullStart; - const span = new ParseSourceSpan(startTagToken.sourceSpan.start, end, startTagToken.sourceSpan.fullStart); // Create a separate `startSpan` because `span` will be modified when there is an `end` span. - - const startSpan = new ParseSourceSpan(startTagToken.sourceSpan.start, end, startTagToken.sourceSpan.fullStart); - const el = new Element(fullName, attrs, [], span, startSpan, undefined); - - this._pushElement(el); - - if (selfClosing) { - // Elements that are self-closed have their `endSourceSpan` set to the full span, as the - // element start tag also represents the end tag. - this._popElement(fullName, span); - } else if (startTagToken.type === 4 - /* TokenType.INCOMPLETE_TAG_OPEN */ - ) { - // We already know the opening tag is not complete, so it is unlikely it has a corresponding - // close tag. Let's optimistically parse it as a full element and emit an error. - this._popElement(fullName, null); - - this.errors.push(TreeError.create(fullName, span, `Opening tag "${fullName}" not terminated.`)); - } - } - - _pushElement(el) { - const parentEl = this._getParentElement(); - - if (parentEl && this.getTagDefinition(parentEl.name).isClosedByChild(el.name)) { - this._elementStack.pop(); - } - - this._addToParent(el); - - this._elementStack.push(el); - } - - _consumeEndTag(endTagToken) { - const fullName = this._getElementFullName(endTagToken.parts[0], endTagToken.parts[1], this._getParentElement()); - - if (this.getTagDefinition(fullName).isVoid) { - this.errors.push(TreeError.create(fullName, endTagToken.sourceSpan, `Void elements do not have end tags "${endTagToken.parts[1]}"`)); - } else if (!this._popElement(fullName, endTagToken.sourceSpan)) { - const errMsg = `Unexpected closing tag "${fullName}". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags`; - this.errors.push(TreeError.create(fullName, endTagToken.sourceSpan, errMsg)); - } - } - /** - * Closes the nearest element with the tag name `fullName` in the parse tree. - * `endSourceSpan` is the span of the closing tag, or null if the element does - * not have a closing tag (for example, this happens when an incomplete - * opening tag is recovered). - */ - - - _popElement(fullName, endSourceSpan) { - let unexpectedCloseTagDetected = false; - - for (let stackIndex = this._elementStack.length - 1; stackIndex >= 0; stackIndex--) { - const el = this._elementStack[stackIndex]; - - if (el.name === fullName) { - // Record the parse span with the element that is being closed. Any elements that are - // removed from the element stack at this point are closed implicitly, so they won't get - // an end source span (as there is no explicit closing element). - el.endSourceSpan = endSourceSpan; - el.sourceSpan.end = endSourceSpan !== null ? endSourceSpan.end : el.sourceSpan.end; - - this._elementStack.splice(stackIndex, this._elementStack.length - stackIndex); - - return !unexpectedCloseTagDetected; - } - - if (!this.getTagDefinition(el.name).closedByParent) { - // Note that we encountered an unexpected close tag but continue processing the element - // stack so we can assign an `endSourceSpan` if there is a corresponding start tag for this - // end tag in the stack. - unexpectedCloseTagDetected = true; - } - } - - return false; - } - - _consumeAttr(attrName) { - const fullName = mergeNsAndName(attrName.parts[0], attrName.parts[1]); - let attrEnd = attrName.sourceSpan.end; // Consume any quote - - if (this._peek.type === 15 - /* TokenType.ATTR_QUOTE */ - ) { - this._advance(); - } // Consume the attribute value - - - let value = ''; - const valueTokens = []; - let valueStartSpan = undefined; - let valueEnd = undefined; // NOTE: We need to use a new variable `nextTokenType` here to hide the actual type of - // `_peek.type` from TS. Otherwise TS will narrow the type of `_peek.type` preventing it from - // being able to consider `ATTR_VALUE_INTERPOLATION` as an option. This is because TS is not - // able to see that `_advance()` will actually mutate `_peek`. - - const nextTokenType = this._peek.type; - - if (nextTokenType === 16 - /* TokenType.ATTR_VALUE_TEXT */ - ) { - valueStartSpan = this._peek.sourceSpan; - valueEnd = this._peek.sourceSpan.end; - - while (this._peek.type === 16 - /* TokenType.ATTR_VALUE_TEXT */ - || this._peek.type === 17 - /* TokenType.ATTR_VALUE_INTERPOLATION */ - || this._peek.type === 9 - /* TokenType.ENCODED_ENTITY */ - ) { - const valueToken = this._advance(); - - valueTokens.push(valueToken); - - if (valueToken.type === 17 - /* TokenType.ATTR_VALUE_INTERPOLATION */ - ) { - // For backward compatibility we decode HTML entities that appear in interpolation - // expressions. This is arguably a bug, but it could be a considerable breaking change to - // fix it. It should be addressed in a larger project to refactor the entire parser/lexer - // chain after View Engine has been removed. - value += valueToken.parts.join('').replace(/&([^;]+);/g, decodeEntity); - } else if (valueToken.type === 9 - /* TokenType.ENCODED_ENTITY */ - ) { - value += valueToken.parts[0]; - } else { - value += valueToken.parts.join(''); - } - - valueEnd = attrEnd = valueToken.sourceSpan.end; - } - } // Consume any quote - - - if (this._peek.type === 15 - /* TokenType.ATTR_QUOTE */ - ) { - const quoteToken = this._advance(); - - attrEnd = quoteToken.sourceSpan.end; - } - - const valueSpan = valueStartSpan && valueEnd && new ParseSourceSpan(valueStartSpan.start, valueEnd, valueStartSpan.fullStart); - return new Attribute(fullName, value, new ParseSourceSpan(attrName.sourceSpan.start, attrEnd, attrName.sourceSpan.fullStart), attrName.sourceSpan, valueSpan, valueTokens.length > 0 ? valueTokens : undefined, undefined); - } - - _getParentElement() { - return this._elementStack.length > 0 ? this._elementStack[this._elementStack.length - 1] : null; - } - - _addToParent(node) { - const parent = this._getParentElement(); - - if (parent != null) { - parent.children.push(node); - } else { - this.rootNodes.push(node); - } - } - - _getElementFullName(prefix, localName, parentElement) { - if (prefix === '') { - prefix = this.getTagDefinition(localName).implicitNamespacePrefix || ''; - - if (prefix === '' && parentElement != null) { - const parentTagName = splitNsName(parentElement.name)[1]; - const parentTagDefinition = this.getTagDefinition(parentTagName); - - if (!parentTagDefinition.preventNamespaceInheritance) { - prefix = getNsPrefix(parentElement.name); - } - } - } - - return mergeNsAndName(prefix, localName); - } - -} - -function lastOnStack(stack, element) { - return stack.length > 0 && stack[stack.length - 1] === element; -} -/** - * Decode the `entity` string, which we believe is the contents of an HTML entity. - * - * If the string is not actually a valid/known entity then just return the original `match` string. - */ - - -function decodeEntity(match, entity) { - if (NAMED_ENTITIES[entity] !== undefined) { - return NAMED_ENTITIES[entity] || match; - } - - if (/^#x[a-f0-9]+$/i.test(entity)) { - return String.fromCodePoint(parseInt(entity.slice(2), 16)); - } - - if (/^#\d+$/.test(entity)) { - return String.fromCodePoint(parseInt(entity.slice(1), 10)); - } - - return match; -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -class HtmlParser extends Parser { - constructor() { - super(getHtmlTagDefinition); - } - - parse(source, url, options) { - return super.parse(source, url, options); - } - -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -const PRESERVE_WS_ATTR_NAME = 'ngPreserveWhitespaces'; -const SKIP_WS_TRIM_TAGS = new Set(['pre', 'template', 'textarea', 'script', 'style']); // Equivalent to \s with \u00a0 (non-breaking space) excluded. -// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp - -const WS_CHARS = ' \f\n\r\t\v\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff'; -const NO_WS_REGEXP = new RegExp(`[^${WS_CHARS}]`); -const WS_REPLACE_REGEXP = new RegExp(`[${WS_CHARS}]{2,}`, 'g'); - -function hasPreserveWhitespacesAttr(attrs) { - return attrs.some(attr => attr.name === PRESERVE_WS_ATTR_NAME); -} -/** - * Angular Dart introduced &ngsp; as a placeholder for non-removable space, see: - * https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart#L25-L32 - * In Angular Dart &ngsp; is converted to the 0xE500 PUA (Private Use Areas) unicode character - * and later on replaced by a space. We are re-implementing the same idea here. - */ - - -function replaceNgsp(value) { - // lexer is replacing the &ngsp; pseudo-entity with NGSP_UNICODE - return value.replace(new RegExp(NGSP_UNICODE, 'g'), ' '); -} -/** - * This visitor can walk HTML parse tree and remove / trim text nodes using the following rules: - * - consider spaces, tabs and new lines as whitespace characters; - * - drop text nodes consisting of whitespace characters only; - * - for all other text nodes replace consecutive whitespace characters with one space; - * - convert &ngsp; pseudo-entity to a single space; - * - * Removal and trimming of whitespaces have positive performance impact (less code to generate - * while compiling templates, faster view creation). At the same time it can be "destructive" - * in some cases (whitespaces can influence layout). Because of the potential of breaking layout - * this visitor is not activated by default in Angular 5 and people need to explicitly opt-in for - * whitespace removal. The default option for whitespace removal will be revisited in Angular 6 - * and might be changed to "on" by default. - */ - - -class WhitespaceVisitor { - visitElement(element, context) { - if (SKIP_WS_TRIM_TAGS.has(element.name) || hasPreserveWhitespacesAttr(element.attrs)) { - // don't descent into elements where we need to preserve whitespaces - // but still visit all attributes to eliminate one used as a market to preserve WS - return new Element(element.name, visitAll(this, element.attrs), element.children, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n); - } - - return new Element(element.name, element.attrs, visitAllWithSiblings(this, element.children), element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n); - } - - visitAttribute(attribute, context) { - return attribute.name !== PRESERVE_WS_ATTR_NAME ? attribute : null; - } - - visitText(text, context) { - const isNotBlank = text.value.match(NO_WS_REGEXP); - const hasExpansionSibling = context && (context.prev instanceof Expansion || context.next instanceof Expansion); - - if (isNotBlank || hasExpansionSibling) { - // Process the whitespace in the tokens of this Text node - const tokens = text.tokens.map(token => token.type === 5 - /* TokenType.TEXT */ - ? createWhitespaceProcessedTextToken(token) : token); // Process the whitespace of the value of this Text node - - const value = processWhitespace(text.value); - return new Text(value, text.sourceSpan, tokens, text.i18n); - } - - return null; - } - - visitComment(comment, context) { - return comment; - } - - visitExpansion(expansion, context) { - return expansion; - } - - visitExpansionCase(expansionCase, context) { - return expansionCase; - } - -} - -function createWhitespaceProcessedTextToken({ - type, - parts, - sourceSpan -}) { - return { - type, - parts: [processWhitespace(parts[0])], - sourceSpan - }; -} - -function processWhitespace(text) { - return replaceNgsp(text).replace(WS_REPLACE_REGEXP, ' '); -} - -function removeWhitespaces(htmlAstWithErrors) { - return new ParseTreeResult(visitAll(new WhitespaceVisitor(), htmlAstWithErrors.rootNodes), htmlAstWithErrors.errors); -} - -function visitAllWithSiblings(visitor, nodes) { - const result = []; - nodes.forEach((ast, i) => { - const context = { - prev: nodes[i - 1], - next: nodes[i + 1] - }; - const astResult = ast.visit(visitor, context); - - if (astResult) { - result.push(astResult); - } - }); - return result; -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -function mapEntry(key, value) { - return { - key, - value, - quoted: false - }; -} - -function mapLiteral(obj, quoted = false) { - return literalMap(Object.keys(obj).map(key => ({ - key, - quoted, - value: obj[key] - }))); -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -// ================================================================================================= -// ================================================================================================= -// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P =========== -// ================================================================================================= -// ================================================================================================= -// -// DO NOT EDIT THIS LIST OF SECURITY SENSITIVE PROPERTIES WITHOUT A SECURITY REVIEW! -// Reach out to mprobst for details. -// -// ================================================================================================= - -/** Map from tagName|propertyName to SecurityContext. Properties applying to all tags use '*'. */ - - -let _SECURITY_SCHEMA; - -function SECURITY_SCHEMA() { - if (!_SECURITY_SCHEMA) { - _SECURITY_SCHEMA = {}; // Case is insignificant below, all element and attribute names are lower-cased for lookup. - - registerContext(SecurityContext.HTML, ['iframe|srcdoc', '*|innerHTML', '*|outerHTML']); - registerContext(SecurityContext.STYLE, ['*|style']); // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them. - - registerContext(SecurityContext.URL, ['*|formAction', 'area|href', 'area|ping', 'audio|src', 'a|href', 'a|ping', 'blockquote|cite', 'body|background', 'del|cite', 'form|action', 'img|src', 'img|srcset', 'input|src', 'ins|cite', 'q|cite', 'source|src', 'source|srcset', 'track|src', 'video|poster', 'video|src']); - registerContext(SecurityContext.RESOURCE_URL, ['applet|code', 'applet|codebase', 'base|href', 'embed|src', 'frame|src', 'head|profile', 'html|manifest', 'iframe|src', 'link|href', 'media|src', 'object|codebase', 'object|data', 'script|src']); - } - - return _SECURITY_SCHEMA; -} - -function registerContext(ctx, specs) { - for (const spec of specs) _SECURITY_SCHEMA[spec.toLowerCase()] = ctx; -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -class ElementSchemaRegistry {} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -const EVENT = 'event'; -const BOOLEAN = 'boolean'; -const NUMBER = 'number'; -const STRING = 'string'; -const OBJECT = 'object'; -/** - * This array represents the DOM schema. It encodes inheritance, properties, and events. - * - * ## Overview - * - * Each line represents one kind of element. The `element_inheritance` and properties are joined - * using `element_inheritance|properties` syntax. - * - * ## Element Inheritance - * - * The `element_inheritance` can be further subdivided as `element1,element2,...^parentElement`. - * Here the individual elements are separated by `,` (commas). Every element in the list - * has identical properties. - * - * An `element` may inherit additional properties from `parentElement` If no `^parentElement` is - * specified then `""` (blank) element is assumed. - * - * NOTE: The blank element inherits from root `[Element]` element, the super element of all - * elements. - * - * NOTE an element prefix such as `:svg:` has no special meaning to the schema. - * - * ## Properties - * - * Each element has a set of properties separated by `,` (commas). Each property can be prefixed - * by a special character designating its type: - * - * - (no prefix): property is a string. - * - `*`: property represents an event. - * - `!`: property is a boolean. - * - `#`: property is a number. - * - `%`: property is an object. - * - * ## Query - * - * The class creates an internal squas representation which allows to easily answer the query of - * if a given property exist on a given element. - * - * NOTE: We don't yet support querying for types or events. - * NOTE: This schema is auto extracted from `schema_extractor.ts` located in the test folder, - * see dom_element_schema_registry_spec.ts - */ -// ================================================================================================= -// ================================================================================================= -// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P =========== -// ================================================================================================= -// ================================================================================================= -// -// DO NOT EDIT THIS DOM SCHEMA WITHOUT A SECURITY REVIEW! -// -// Newly added properties must be security reviewed and assigned an appropriate SecurityContext in -// dom_security_schema.ts. Reach out to mprobst & rjamet for details. -// -// ================================================================================================= - -const SCHEMA = ['[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop,slot' + -/* added manually to avoid breaking changes */ -',*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored', '[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate', 'abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate', 'media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,src,%srcObject,#volume', ':svg:^[HTMLElement]|*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex', ':svg:graphics^:svg:|', ':svg:animation^:svg:|*begin,*end,*repeat', ':svg:geometry^:svg:|', ':svg:componentTransferFunction^:svg:|', ':svg:gradient^:svg:|', ':svg:textContent^:svg:graphics|', ':svg:textPositioning^:svg:textContent|', 'a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username', 'area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,search,shape,target,username', 'audio^media|', 'br^[HTMLElement]|clear', 'base^[HTMLElement]|href,target', 'body^[HTMLElement]|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink', 'button^[HTMLElement]|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value', 'canvas^[HTMLElement]|#height,#width', 'content^[HTMLElement]|select', 'dl^[HTMLElement]|!compact', 'datalist^[HTMLElement]|', 'details^[HTMLElement]|!open', 'dialog^[HTMLElement]|!open,returnValue', 'dir^[HTMLElement]|!compact', 'div^[HTMLElement]|align', 'embed^[HTMLElement]|align,height,name,src,type,width', 'fieldset^[HTMLElement]|!disabled,name', 'font^[HTMLElement]|color,face,size', 'form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target', 'frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src', 'frameset^[HTMLElement]|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows', 'hr^[HTMLElement]|align,color,!noShade,size,width', 'head^[HTMLElement]|', 'h1,h2,h3,h4,h5,h6^[HTMLElement]|align', 'html^[HTMLElement]|version', 'iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width', 'img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width', 'input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width', 'li^[HTMLElement]|type,#value', 'label^[HTMLElement]|htmlFor', 'legend^[HTMLElement]|align', 'link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type', 'map^[HTMLElement]|name', 'marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width', 'menu^[HTMLElement]|!compact', 'meta^[HTMLElement]|content,httpEquiv,name,scheme', 'meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value', 'ins,del^[HTMLElement]|cite,dateTime', 'ol^[HTMLElement]|!compact,!reversed,#start,type', 'object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width', 'optgroup^[HTMLElement]|!disabled,label', 'option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value', 'output^[HTMLElement]|defaultValue,%htmlFor,name,value', 'p^[HTMLElement]|align', 'param^[HTMLElement]|name,type,value,valueType', 'picture^[HTMLElement]|', 'pre^[HTMLElement]|#width', 'progress^[HTMLElement]|#max,#value', 'q,blockquote,cite^[HTMLElement]|', 'script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type', 'select^[HTMLElement]|autocomplete,!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value', 'shadow^[HTMLElement]|', 'slot^[HTMLElement]|name', 'source^[HTMLElement]|media,sizes,src,srcset,type', 'span^[HTMLElement]|', 'style^[HTMLElement]|!disabled,media,type', 'caption^[HTMLElement]|align', 'th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width', 'col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width', 'table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width', 'tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign', 'tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign', 'template^[HTMLElement]|', 'textarea^[HTMLElement]|autocapitalize,autocomplete,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap', 'title^[HTMLElement]|text', 'track^[HTMLElement]|!default,kind,label,src,srclang', 'ul^[HTMLElement]|!compact,type', 'unknown^[HTMLElement]|', 'video^media|#height,poster,#width', ':svg:a^:svg:graphics|', ':svg:animate^:svg:animation|', ':svg:animateMotion^:svg:animation|', ':svg:animateTransform^:svg:animation|', ':svg:circle^:svg:geometry|', ':svg:clipPath^:svg:graphics|', ':svg:defs^:svg:graphics|', ':svg:desc^:svg:|', ':svg:discard^:svg:|', ':svg:ellipse^:svg:geometry|', ':svg:feBlend^:svg:|', ':svg:feColorMatrix^:svg:|', ':svg:feComponentTransfer^:svg:|', ':svg:feComposite^:svg:|', ':svg:feConvolveMatrix^:svg:|', ':svg:feDiffuseLighting^:svg:|', ':svg:feDisplacementMap^:svg:|', ':svg:feDistantLight^:svg:|', ':svg:feDropShadow^:svg:|', ':svg:feFlood^:svg:|', ':svg:feFuncA^:svg:componentTransferFunction|', ':svg:feFuncB^:svg:componentTransferFunction|', ':svg:feFuncG^:svg:componentTransferFunction|', ':svg:feFuncR^:svg:componentTransferFunction|', ':svg:feGaussianBlur^:svg:|', ':svg:feImage^:svg:|', ':svg:feMerge^:svg:|', ':svg:feMergeNode^:svg:|', ':svg:feMorphology^:svg:|', ':svg:feOffset^:svg:|', ':svg:fePointLight^:svg:|', ':svg:feSpecularLighting^:svg:|', ':svg:feSpotLight^:svg:|', ':svg:feTile^:svg:|', ':svg:feTurbulence^:svg:|', ':svg:filter^:svg:|', ':svg:foreignObject^:svg:graphics|', ':svg:g^:svg:graphics|', ':svg:image^:svg:graphics|', ':svg:line^:svg:geometry|', ':svg:linearGradient^:svg:gradient|', ':svg:mpath^:svg:|', ':svg:marker^:svg:|', ':svg:mask^:svg:|', ':svg:metadata^:svg:|', ':svg:path^:svg:geometry|', ':svg:pattern^:svg:|', ':svg:polygon^:svg:geometry|', ':svg:polyline^:svg:geometry|', ':svg:radialGradient^:svg:gradient|', ':svg:rect^:svg:geometry|', ':svg:svg^:svg:graphics|#currentScale,#zoomAndPan', ':svg:script^:svg:|type', ':svg:set^:svg:animation|', ':svg:stop^:svg:|', ':svg:style^:svg:|!disabled,media,title,type', ':svg:switch^:svg:graphics|', ':svg:symbol^:svg:|', ':svg:tspan^:svg:textPositioning|', ':svg:text^:svg:textPositioning|', ':svg:textPath^:svg:textContent|', ':svg:title^:svg:|', ':svg:use^:svg:graphics|', ':svg:view^:svg:|#zoomAndPan', 'data^[HTMLElement]|value', 'keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name', 'menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default', 'summary^[HTMLElement]|', 'time^[HTMLElement]|dateTime', ':svg:cursor^:svg:|']; -const _ATTR_TO_PROP = { - 'class': 'className', - 'for': 'htmlFor', - 'formaction': 'formAction', - 'innerHtml': 'innerHTML', - 'readonly': 'readOnly', - 'tabindex': 'tabIndex' -}; // Invert _ATTR_TO_PROP. - -const _PROP_TO_ATTR = Object.keys(_ATTR_TO_PROP).reduce((inverted, attr) => { - inverted[_ATTR_TO_PROP[attr]] = attr; - return inverted; -}, {}); - -class DomElementSchemaRegistry extends ElementSchemaRegistry { - constructor() { - super(); - this._schema = {}; // We don't allow binding to events for security reasons. Allowing event bindings would almost - // certainly introduce bad XSS vulnerabilities. Instead, we store events in a separate schema. - - this._eventSchema = {}; - SCHEMA.forEach(encodedType => { - const type = {}; - const events = new Set(); - const [strType, strProperties] = encodedType.split('|'); - const properties = strProperties.split(','); - const [typeNames, superName] = strType.split('^'); - typeNames.split(',').forEach(tag => { - this._schema[tag.toLowerCase()] = type; - this._eventSchema[tag.toLowerCase()] = events; - }); - - const superType = superName && this._schema[superName.toLowerCase()]; - - if (superType) { - Object.keys(superType).forEach(prop => { - type[prop] = superType[prop]; - }); - - for (const superEvent of this._eventSchema[superName.toLowerCase()]) { - events.add(superEvent); - } - } - - properties.forEach(property => { - if (property.length > 0) { - switch (property[0]) { - case '*': - events.add(property.substring(1)); - break; - - case '!': - type[property.substring(1)] = BOOLEAN; - break; - - case '#': - type[property.substring(1)] = NUMBER; - break; - - case '%': - type[property.substring(1)] = OBJECT; - break; - - default: - type[property] = STRING; - } - } - }); - }); - } - - hasProperty(tagName, propName, schemaMetas) { - if (schemaMetas.some(schema => schema.name === NO_ERRORS_SCHEMA.name)) { - return true; - } - - if (tagName.indexOf('-') > -1) { - if (isNgContainer(tagName) || isNgContent(tagName)) { - return false; - } - - if (schemaMetas.some(schema => schema.name === CUSTOM_ELEMENTS_SCHEMA.name)) { - // Can't tell now as we don't know which properties a custom element will get - // once it is instantiated - return true; - } - } - - const elementProperties = this._schema[tagName.toLowerCase()] || this._schema['unknown']; - - return !!elementProperties[propName]; - } - - hasElement(tagName, schemaMetas) { - if (schemaMetas.some(schema => schema.name === NO_ERRORS_SCHEMA.name)) { - return true; - } - - if (tagName.indexOf('-') > -1) { - if (isNgContainer(tagName) || isNgContent(tagName)) { - return true; - } - - if (schemaMetas.some(schema => schema.name === CUSTOM_ELEMENTS_SCHEMA.name)) { - // Allow any custom elements - return true; - } - } - - return !!this._schema[tagName.toLowerCase()]; - } - /** - * securityContext returns the security context for the given property on the given DOM tag. - * - * Tag and property name are statically known and cannot change at runtime, i.e. it is not - * possible to bind a value into a changing attribute or tag name. - * - * The filtering is based on a list of allowed tags|attributes. All attributes in the schema - * above are assumed to have the 'NONE' security context, i.e. that they are safe inert - * string values. Only specific well known attack vectors are assigned their appropriate context. - */ - - - securityContext(tagName, propName, isAttribute) { - if (isAttribute) { - // NB: For security purposes, use the mapped property name, not the attribute name. - propName = this.getMappedPropName(propName); - } // Make sure comparisons are case insensitive, so that case differences between attribute and - // property names do not have a security impact. - - - tagName = tagName.toLowerCase(); - propName = propName.toLowerCase(); - let ctx = SECURITY_SCHEMA()[tagName + '|' + propName]; - - if (ctx) { - return ctx; - } - - ctx = SECURITY_SCHEMA()['*|' + propName]; - return ctx ? ctx : SecurityContext.NONE; - } - - getMappedPropName(propName) { - return _ATTR_TO_PROP[propName] || propName; - } - - getDefaultComponentElementName() { - return 'ng-component'; - } - - validateProperty(name) { - if (name.toLowerCase().startsWith('on')) { - const msg = `Binding to event property '${name}' is disallowed for security reasons, ` + `please use (${name.slice(2)})=...` + `\nIf '${name}' is a directive input, make sure the directive is imported by the` + ` current module.`; - return { - error: true, - msg: msg - }; - } else { - return { - error: false - }; - } - } - - validateAttribute(name) { - if (name.toLowerCase().startsWith('on')) { - const msg = `Binding to event attribute '${name}' is disallowed for security reasons, ` + `please use (${name.slice(2)})=...`; - return { - error: true, - msg: msg - }; - } else { - return { - error: false - }; - } - } - - allKnownElementNames() { - return Object.keys(this._schema); - } - - allKnownAttributesOfElement(tagName) { - const elementProperties = this._schema[tagName.toLowerCase()] || this._schema['unknown']; // Convert properties to attributes. - - - return Object.keys(elementProperties).map(prop => _PROP_TO_ATTR[prop] ?? prop); - } - - allKnownEventsOfElement(tagName) { - return Array.from(this._eventSchema[tagName.toLowerCase()] ?? []); - } - - normalizeAnimationStyleProperty(propName) { - return dashCaseToCamelCase(propName); - } - - normalizeAnimationStyleValue(camelCaseProp, userProvidedProp, val) { - let unit = ''; - const strVal = val.toString().trim(); - let errorMsg = null; - - if (_isPixelDimensionStyle(camelCaseProp) && val !== 0 && val !== '0') { - if (typeof val === 'number') { - unit = 'px'; - } else { - const valAndSuffixMatch = val.match(/^[+-]?[\d\.]+([a-z]*)$/); - - if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) { - errorMsg = `Please provide a CSS unit value for ${userProvidedProp}:${val}`; - } - } - } - - return { - error: errorMsg, - value: strVal + unit - }; - } - -} - -function _isPixelDimensionStyle(prop) { - switch (prop) { - case 'width': - case 'height': - case 'minWidth': - case 'minHeight': - case 'maxWidth': - case 'maxHeight': - case 'left': - case 'top': - case 'bottom': - case 'right': - case 'fontSize': - case 'outlineWidth': - case 'outlineOffset': - case 'paddingTop': - case 'paddingLeft': - case 'paddingBottom': - case 'paddingRight': - case 'marginTop': - case 'marginLeft': - case 'marginBottom': - case 'marginRight': - case 'borderRadius': - case 'borderWidth': - case 'borderTopWidth': - case 'borderLeftWidth': - case 'borderRightWidth': - case 'borderBottomWidth': - case 'textIndent': - return true; - - default: - return false; - } -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -/** - * Set of tagName|propertyName corresponding to Trusted Types sinks. Properties applying to all - * tags use '*'. - * - * Extracted from, and should be kept in sync with - * https://w3c.github.io/webappsec-trusted-types/dist/spec/#integrations - */ - - -const TRUSTED_TYPES_SINKS = new Set([// NOTE: All strings in this set *must* be lowercase! -// TrustedHTML -'iframe|srcdoc', '*|innerhtml', '*|outerhtml', // NB: no TrustedScript here, as the corresponding tags are stripped by the compiler. -// TrustedScriptURL -'embed|src', 'object|codebase', 'object|data']); -/** - * isTrustedTypesSink returns true if the given property on the given DOM tag is a Trusted Types - * sink. In that case, use `ElementSchemaRegistry.securityContext` to determine which particular - * Trusted Type is required for values passed to the sink: - * - SecurityContext.HTML corresponds to TrustedHTML - * - SecurityContext.RESOURCE_URL corresponds to TrustedScriptURL - */ - -function isTrustedTypesSink(tagName, propName) { - // Make sure comparisons are case insensitive, so that case differences between attribute and - // property names do not have a security impact. - tagName = tagName.toLowerCase(); - propName = propName.toLowerCase(); - return TRUSTED_TYPES_SINKS.has(tagName + '|' + propName) || TRUSTED_TYPES_SINKS.has('*|' + propName); -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -const PROPERTY_PARTS_SEPARATOR = '.'; -const ATTRIBUTE_PREFIX = 'attr'; -const CLASS_PREFIX = 'class'; -const STYLE_PREFIX = 'style'; -const TEMPLATE_ATTR_PREFIX$1 = '*'; -const ANIMATE_PROP_PREFIX = 'animate-'; -/** - * Parses bindings in templates and in the directive host area. - */ - -class BindingParser { - constructor(_exprParser, _interpolationConfig, _schemaRegistry, errors) { - this._exprParser = _exprParser; - this._interpolationConfig = _interpolationConfig; - this._schemaRegistry = _schemaRegistry; - this.errors = errors; - } - - get interpolationConfig() { - return this._interpolationConfig; - } - - createBoundHostProperties(properties, sourceSpan) { - const boundProps = []; - - for (const propName of Object.keys(properties)) { - const expression = properties[propName]; - - if (typeof expression === 'string') { - this.parsePropertyBinding(propName, expression, true, sourceSpan, sourceSpan.start.offset, undefined, [], // Use the `sourceSpan` for `keySpan`. This isn't really accurate, but neither is the - // sourceSpan, as it represents the sourceSpan of the host itself rather than the - // source of the host binding (which doesn't exist in the template). Regardless, - // neither of these values are used in Ivy but are only here to satisfy the function - // signature. This should likely be refactored in the future so that `sourceSpan` - // isn't being used inaccurately. - boundProps, sourceSpan); - } else { - this._reportError(`Value of the host property binding "${propName}" needs to be a string representing an expression but got "${expression}" (${typeof expression})`, sourceSpan); - } - } - - return boundProps; - } - - createDirectiveHostEventAsts(hostListeners, sourceSpan) { - const targetEvents = []; - - for (const propName of Object.keys(hostListeners)) { - const expression = hostListeners[propName]; - - if (typeof expression === 'string') { - // Use the `sourceSpan` for `keySpan` and `handlerSpan`. This isn't really accurate, but - // neither is the `sourceSpan`, as it represents the `sourceSpan` of the host itself - // rather than the source of the host binding (which doesn't exist in the template). - // Regardless, neither of these values are used in Ivy but are only here to satisfy the - // function signature. This should likely be refactored in the future so that `sourceSpan` - // isn't being used inaccurately. - this.parseEvent(propName, expression, - /* isAssignmentEvent */ - false, sourceSpan, sourceSpan, [], targetEvents, sourceSpan); - } else { - this._reportError(`Value of the host listener "${propName}" needs to be a string representing an expression but got "${expression}" (${typeof expression})`, sourceSpan); - } - } - - return targetEvents; - } - - parseInterpolation(value, sourceSpan, interpolatedTokens) { - const sourceInfo = sourceSpan.start.toString(); - const absoluteOffset = sourceSpan.fullStart.offset; - - try { - const ast = this._exprParser.parseInterpolation(value, sourceInfo, absoluteOffset, interpolatedTokens, this._interpolationConfig); - - if (ast) this._reportExpressionParserErrors(ast.errors, sourceSpan); - return ast; - } catch (e) { - this._reportError(`${e}`, sourceSpan); - - return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset); - } - } - /** - * Similar to `parseInterpolation`, but treats the provided string as a single expression - * element that would normally appear within the interpolation prefix and suffix (`{{` and `}}`). - * This is used for parsing the switch expression in ICUs. - */ - - - parseInterpolationExpression(expression, sourceSpan) { - const sourceInfo = sourceSpan.start.toString(); - const absoluteOffset = sourceSpan.start.offset; - - try { - const ast = this._exprParser.parseInterpolationExpression(expression, sourceInfo, absoluteOffset); - - if (ast) this._reportExpressionParserErrors(ast.errors, sourceSpan); - return ast; - } catch (e) { - this._reportError(`${e}`, sourceSpan); - - return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset); - } - } - /** - * Parses the bindings in a microsyntax expression, and converts them to - * `ParsedProperty` or `ParsedVariable`. - * - * @param tplKey template binding name - * @param tplValue template binding value - * @param sourceSpan span of template binding relative to entire the template - * @param absoluteValueOffset start of the tplValue relative to the entire template - * @param targetMatchableAttrs potential attributes to match in the template - * @param targetProps target property bindings in the template - * @param targetVars target variables in the template - */ - - - parseInlineTemplateBinding(tplKey, tplValue, sourceSpan, absoluteValueOffset, targetMatchableAttrs, targetProps, targetVars, isIvyAst) { - const absoluteKeyOffset = sourceSpan.start.offset + TEMPLATE_ATTR_PREFIX$1.length; - - const bindings = this._parseTemplateBindings(tplKey, tplValue, sourceSpan, absoluteKeyOffset, absoluteValueOffset); - - for (const binding of bindings) { - // sourceSpan is for the entire HTML attribute. bindingSpan is for a particular - // binding within the microsyntax expression so it's more narrow than sourceSpan. - const bindingSpan = moveParseSourceSpan(sourceSpan, binding.sourceSpan); - const key = binding.key.source; - const keySpan = moveParseSourceSpan(sourceSpan, binding.key.span); - - if (binding instanceof VariableBinding) { - const value = binding.value ? binding.value.source : '$implicit'; - const valueSpan = binding.value ? moveParseSourceSpan(sourceSpan, binding.value.span) : undefined; - targetVars.push(new ParsedVariable(key, value, bindingSpan, keySpan, valueSpan)); - } else if (binding.value) { - const srcSpan = isIvyAst ? bindingSpan : sourceSpan; - const valueSpan = moveParseSourceSpan(sourceSpan, binding.value.ast.sourceSpan); - - this._parsePropertyAst(key, binding.value, srcSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps); - } else { - targetMatchableAttrs.push([key, '' - /* value */ - ]); // Since this is a literal attribute with no RHS, source span should be - // just the key span. - - this.parseLiteralAttr(key, null - /* value */ - , keySpan, absoluteValueOffset, undefined - /* valueSpan */ - , targetMatchableAttrs, targetProps, keySpan); - } - } - } - /** - * Parses the bindings in a microsyntax expression, e.g. - * ``` - * - * ``` - * - * @param tplKey template binding name - * @param tplValue template binding value - * @param sourceSpan span of template binding relative to entire the template - * @param absoluteKeyOffset start of the `tplKey` - * @param absoluteValueOffset start of the `tplValue` - */ - - - _parseTemplateBindings(tplKey, tplValue, sourceSpan, absoluteKeyOffset, absoluteValueOffset) { - const sourceInfo = sourceSpan.start.toString(); - - try { - const bindingsResult = this._exprParser.parseTemplateBindings(tplKey, tplValue, sourceInfo, absoluteKeyOffset, absoluteValueOffset); - - this._reportExpressionParserErrors(bindingsResult.errors, sourceSpan); - - bindingsResult.warnings.forEach(warning => { - this._reportError(warning, sourceSpan, ParseErrorLevel.WARNING); - }); - return bindingsResult.templateBindings; - } catch (e) { - this._reportError(`${e}`, sourceSpan); - - return []; - } - } - - parseLiteralAttr(name, value, sourceSpan, absoluteOffset, valueSpan, targetMatchableAttrs, targetProps, keySpan) { - if (isAnimationLabel(name)) { - name = name.substring(1); - - if (keySpan !== undefined) { - keySpan = moveParseSourceSpan(keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset)); - } - - if (value) { - this._reportError(`Assigning animation triggers via @prop="exp" attributes with an expression is invalid.` + ` Use property bindings (e.g. [@prop]="exp") or use an attribute without a value (e.g. @prop) instead.`, sourceSpan, ParseErrorLevel.ERROR); - } - - this._parseAnimation(name, value, sourceSpan, absoluteOffset, keySpan, valueSpan, targetMatchableAttrs, targetProps); - } else { - targetProps.push(new ParsedProperty(name, this._exprParser.wrapLiteralPrimitive(value, '', absoluteOffset), ParsedPropertyType.LITERAL_ATTR, sourceSpan, keySpan, valueSpan)); - } - } - - parsePropertyBinding(name, expression, isHost, sourceSpan, absoluteOffset, valueSpan, targetMatchableAttrs, targetProps, keySpan) { - if (name.length === 0) { - this._reportError(`Property name is missing in binding`, sourceSpan); - } - - let isAnimationProp = false; - - if (name.startsWith(ANIMATE_PROP_PREFIX)) { - isAnimationProp = true; - name = name.substring(ANIMATE_PROP_PREFIX.length); - - if (keySpan !== undefined) { - keySpan = moveParseSourceSpan(keySpan, new AbsoluteSourceSpan(keySpan.start.offset + ANIMATE_PROP_PREFIX.length, keySpan.end.offset)); - } - } else if (isAnimationLabel(name)) { - isAnimationProp = true; - name = name.substring(1); - - if (keySpan !== undefined) { - keySpan = moveParseSourceSpan(keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset)); - } - } - - if (isAnimationProp) { - this._parseAnimation(name, expression, sourceSpan, absoluteOffset, keySpan, valueSpan, targetMatchableAttrs, targetProps); - } else { - this._parsePropertyAst(name, this._parseBinding(expression, isHost, valueSpan || sourceSpan, absoluteOffset), sourceSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps); - } - } - - parsePropertyInterpolation(name, value, sourceSpan, valueSpan, targetMatchableAttrs, targetProps, keySpan, interpolatedTokens) { - const expr = this.parseInterpolation(value, valueSpan || sourceSpan, interpolatedTokens); - - if (expr) { - this._parsePropertyAst(name, expr, sourceSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps); - - return true; - } - - return false; - } - - _parsePropertyAst(name, ast, sourceSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps) { - targetMatchableAttrs.push([name, ast.source]); - targetProps.push(new ParsedProperty(name, ast, ParsedPropertyType.DEFAULT, sourceSpan, keySpan, valueSpan)); - } - - _parseAnimation(name, expression, sourceSpan, absoluteOffset, keySpan, valueSpan, targetMatchableAttrs, targetProps) { - if (name.length === 0) { - this._reportError('Animation trigger is missing', sourceSpan); - } // This will occur when a @trigger is not paired with an expression. - // For animations it is valid to not have an expression since */void - // states will be applied by angular when the element is attached/detached - - - const ast = this._parseBinding(expression || 'undefined', false, valueSpan || sourceSpan, absoluteOffset); - - targetMatchableAttrs.push([name, ast.source]); - targetProps.push(new ParsedProperty(name, ast, ParsedPropertyType.ANIMATION, sourceSpan, keySpan, valueSpan)); - } - - _parseBinding(value, isHostBinding, sourceSpan, absoluteOffset) { - const sourceInfo = (sourceSpan && sourceSpan.start || '(unknown)').toString(); - - try { - const ast = isHostBinding ? this._exprParser.parseSimpleBinding(value, sourceInfo, absoluteOffset, this._interpolationConfig) : this._exprParser.parseBinding(value, sourceInfo, absoluteOffset, this._interpolationConfig); - if (ast) this._reportExpressionParserErrors(ast.errors, sourceSpan); - return ast; - } catch (e) { - this._reportError(`${e}`, sourceSpan); - - return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset); - } - } - - createBoundElementProperty(elementSelector, boundProp, skipValidation = false, mapPropertyName = true) { - if (boundProp.isAnimation) { - return new BoundElementProperty(boundProp.name, 4 - /* BindingType.Animation */ - , SecurityContext.NONE, boundProp.expression, null, boundProp.sourceSpan, boundProp.keySpan, boundProp.valueSpan); - } - - let unit = null; - let bindingType = undefined; - let boundPropertyName = null; - const parts = boundProp.name.split(PROPERTY_PARTS_SEPARATOR); - let securityContexts = undefined; // Check for special cases (prefix style, attr, class) - - if (parts.length > 1) { - if (parts[0] == ATTRIBUTE_PREFIX) { - boundPropertyName = parts.slice(1).join(PROPERTY_PARTS_SEPARATOR); - - if (!skipValidation) { - this._validatePropertyOrAttributeName(boundPropertyName, boundProp.sourceSpan, true); - } - - securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, boundPropertyName, true); - const nsSeparatorIdx = boundPropertyName.indexOf(':'); - - if (nsSeparatorIdx > -1) { - const ns = boundPropertyName.substring(0, nsSeparatorIdx); - const name = boundPropertyName.substring(nsSeparatorIdx + 1); - boundPropertyName = mergeNsAndName(ns, name); - } - - bindingType = 1 - /* BindingType.Attribute */ - ; - } else if (parts[0] == CLASS_PREFIX) { - boundPropertyName = parts[1]; - bindingType = 2 - /* BindingType.Class */ - ; - securityContexts = [SecurityContext.NONE]; - } else if (parts[0] == STYLE_PREFIX) { - unit = parts.length > 2 ? parts[2] : null; - boundPropertyName = parts[1]; - bindingType = 3 - /* BindingType.Style */ - ; - securityContexts = [SecurityContext.STYLE]; - } - } // If not a special case, use the full property name - - - if (boundPropertyName === null) { - const mappedPropName = this._schemaRegistry.getMappedPropName(boundProp.name); - - boundPropertyName = mapPropertyName ? mappedPropName : boundProp.name; - securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, mappedPropName, false); - bindingType = 0 - /* BindingType.Property */ - ; - - if (!skipValidation) { - this._validatePropertyOrAttributeName(mappedPropName, boundProp.sourceSpan, false); - } - } - - return new BoundElementProperty(boundPropertyName, bindingType, securityContexts[0], boundProp.expression, unit, boundProp.sourceSpan, boundProp.keySpan, boundProp.valueSpan); - } // TODO: keySpan should be required but was made optional to avoid changing VE parser. - - - parseEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan) { - if (name.length === 0) { - this._reportError(`Event name is missing in binding`, sourceSpan); - } - - if (isAnimationLabel(name)) { - name = name.slice(1); - - if (keySpan !== undefined) { - keySpan = moveParseSourceSpan(keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset)); - } - - this._parseAnimationEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetEvents, keySpan); - } else { - this._parseRegularEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan); - } - } - - calcPossibleSecurityContexts(selector, propName, isAttribute) { - const prop = this._schemaRegistry.getMappedPropName(propName); - - return calcPossibleSecurityContexts(this._schemaRegistry, selector, prop, isAttribute); - } - - _parseAnimationEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetEvents, keySpan) { - const matches = splitAtPeriod(name, [name, '']); - const eventName = matches[0]; - const phase = matches[1].toLowerCase(); - - const ast = this._parseAction(expression, isAssignmentEvent, handlerSpan); - - targetEvents.push(new ParsedEvent(eventName, phase, 1 - /* ParsedEventType.Animation */ - , ast, sourceSpan, handlerSpan, keySpan)); - - if (eventName.length === 0) { - this._reportError(`Animation event name is missing in binding`, sourceSpan); - } - - if (phase) { - if (phase !== 'start' && phase !== 'done') { - this._reportError(`The provided animation output phase value "${phase}" for "@${eventName}" is not supported (use start or done)`, sourceSpan); - } - } else { - this._reportError(`The animation trigger output event (@${eventName}) is missing its phase value name (start or done are currently supported)`, sourceSpan); - } - } - - _parseRegularEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan) { - // long format: 'target: eventName' - const [target, eventName] = splitAtColon(name, [null, name]); - - const ast = this._parseAction(expression, isAssignmentEvent, handlerSpan); - - targetMatchableAttrs.push([name, ast.source]); - targetEvents.push(new ParsedEvent(eventName, target, 0 - /* ParsedEventType.Regular */ - , ast, sourceSpan, handlerSpan, keySpan)); // Don't detect directives for event names for now, - // so don't add the event name to the matchableAttrs - } - - _parseAction(value, isAssignmentEvent, sourceSpan) { - const sourceInfo = (sourceSpan && sourceSpan.start || '(unknown').toString(); - const absoluteOffset = sourceSpan && sourceSpan.start ? sourceSpan.start.offset : 0; - - try { - const ast = this._exprParser.parseAction(value, isAssignmentEvent, sourceInfo, absoluteOffset, this._interpolationConfig); - - if (ast) { - this._reportExpressionParserErrors(ast.errors, sourceSpan); - } - - if (!ast || ast.ast instanceof EmptyExpr) { - this._reportError(`Empty expressions are not allowed`, sourceSpan); - - return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset); - } - - return ast; - } catch (e) { - this._reportError(`${e}`, sourceSpan); - - return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo, absoluteOffset); - } - } - - _reportError(message, sourceSpan, level = ParseErrorLevel.ERROR) { - this.errors.push(new ParseError(sourceSpan, message, level)); - } - - _reportExpressionParserErrors(errors, sourceSpan) { - for (const error of errors) { - this._reportError(error.message, sourceSpan); - } - } - /** - * @param propName the name of the property / attribute - * @param sourceSpan - * @param isAttr true when binding to an attribute - */ - - - _validatePropertyOrAttributeName(propName, sourceSpan, isAttr) { - const report = isAttr ? this._schemaRegistry.validateAttribute(propName) : this._schemaRegistry.validateProperty(propName); - - if (report.error) { - this._reportError(report.msg, sourceSpan, ParseErrorLevel.ERROR); - } - } - -} - -class PipeCollector extends RecursiveAstVisitor { - constructor() { - super(...arguments); - this.pipes = new Map(); - } - - visitPipe(ast, context) { - this.pipes.set(ast.name, ast); - ast.exp.visit(this); - this.visitAll(ast.args, context); - return null; - } - -} - -function isAnimationLabel(name) { - return name[0] == '@'; -} - -function calcPossibleSecurityContexts(registry, selector, propName, isAttribute) { - const ctxs = []; - CssSelector.parse(selector).forEach(selector => { - const elementNames = selector.element ? [selector.element] : registry.allKnownElementNames(); - const notElementNames = new Set(selector.notSelectors.filter(selector => selector.isElementSelector()).map(selector => selector.element)); - const possibleElementNames = elementNames.filter(elementName => !notElementNames.has(elementName)); - ctxs.push(...possibleElementNames.map(elementName => registry.securityContext(elementName, propName, isAttribute))); - }); - return ctxs.length === 0 ? [SecurityContext.NONE] : Array.from(new Set(ctxs)).sort(); -} -/** - * Compute a new ParseSourceSpan based off an original `sourceSpan` by using - * absolute offsets from the specified `absoluteSpan`. - * - * @param sourceSpan original source span - * @param absoluteSpan absolute source span to move to - */ - - -function moveParseSourceSpan(sourceSpan, absoluteSpan) { - // The difference of two absolute offsets provide the relative offset - const startDiff = absoluteSpan.start - sourceSpan.start.offset; - const endDiff = absoluteSpan.end - sourceSpan.end.offset; - return new ParseSourceSpan(sourceSpan.start.moveBy(startDiff), sourceSpan.end.moveBy(endDiff), sourceSpan.fullStart.moveBy(startDiff), sourceSpan.details); -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ -// Some of the code comes from WebComponents.JS -// https://github.com/webcomponents/webcomponentsjs/blob/master/src/HTMLImports/path.js - - -function isStyleUrlResolvable(url) { - if (url == null || url.length === 0 || url[0] == '/') return false; - const schemeMatch = url.match(URL_WITH_SCHEMA_REGEXP); - return schemeMatch === null || schemeMatch[1] == 'package' || schemeMatch[1] == 'asset'; -} - -const URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/; -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - -const NG_CONTENT_SELECT_ATTR$1 = 'select'; -const LINK_ELEMENT = 'link'; -const LINK_STYLE_REL_ATTR = 'rel'; -const LINK_STYLE_HREF_ATTR = 'href'; -const LINK_STYLE_REL_VALUE = 'stylesheet'; -const STYLE_ELEMENT = 'style'; -const SCRIPT_ELEMENT = 'script'; -const NG_NON_BINDABLE_ATTR = 'ngNonBindable'; -const NG_PROJECT_AS = 'ngProjectAs'; - -function preparseElement(ast) { - let selectAttr = null; - let hrefAttr = null; - let relAttr = null; - let nonBindable = false; - let projectAs = ''; - ast.attrs.forEach(attr => { - const lcAttrName = attr.name.toLowerCase(); - - if (lcAttrName == NG_CONTENT_SELECT_ATTR$1) { - selectAttr = attr.value; - } else if (lcAttrName == LINK_STYLE_HREF_ATTR) { - hrefAttr = attr.value; - } else if (lcAttrName == LINK_STYLE_REL_ATTR) { - relAttr = attr.value; - } else if (attr.name == NG_NON_BINDABLE_ATTR) { - nonBindable = true; - } else if (attr.name == NG_PROJECT_AS) { - if (attr.value.length > 0) { - projectAs = attr.value; - } - } - }); - selectAttr = normalizeNgContentSelect(selectAttr); - const nodeName = ast.name.toLowerCase(); - let type = PreparsedElementType.OTHER; - - if (isNgContent(nodeName)) { - type = PreparsedElementType.NG_CONTENT; - } else if (nodeName == STYLE_ELEMENT) { - type = PreparsedElementType.STYLE; - } else if (nodeName == SCRIPT_ELEMENT) { - type = PreparsedElementType.SCRIPT; - } else if (nodeName == LINK_ELEMENT && relAttr == LINK_STYLE_REL_VALUE) { - type = PreparsedElementType.STYLESHEET; - } - - return new PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs); -} - -var PreparsedElementType; - -(function (PreparsedElementType) { - PreparsedElementType[PreparsedElementType["NG_CONTENT"] = 0] = "NG_CONTENT"; - PreparsedElementType[PreparsedElementType["STYLE"] = 1] = "STYLE"; - PreparsedElementType[PreparsedElementType["STYLESHEET"] = 2] = "STYLESHEET"; - PreparsedElementType[PreparsedElementType["SCRIPT"] = 3] = "SCRIPT"; - PreparsedElementType[PreparsedElementType["OTHER"] = 4] = "OTHER"; -})(PreparsedElementType || (PreparsedElementType = {})); - -class PreparsedElement { - constructor(type, selectAttr, hrefAttr, nonBindable, projectAs) { - this.type = type; - this.selectAttr = selectAttr; - this.hrefAttr = hrefAttr; - this.nonBindable = nonBindable; - this.projectAs = projectAs; - } - -} - -function normalizeNgContentSelect(selectAttr) { - if (selectAttr === null || selectAttr.length === 0) { - return '*'; - } - - return selectAttr; -} -/** - * @license - * Copyright Google LLC All Rights Reserved. - * - * Use of this source code is governed by an MIT-style license that can be - * found in the LICENSE file at https://angular.io/license - */ - - -const BIND_NAME_REGEXP = /^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/; // Group 1 = "bind-" - -const KW_BIND_IDX = 1; // Group 2 = "let-" - -const KW_LET_IDX = 2; // Group 3 = "ref-/#" - -const KW_REF_IDX = 3; // Group 4 = "on-" - -const KW_ON_IDX = 4; // Group 5 = "bindon-" - -const KW_BINDON_IDX = 5; // Group 6 = "@" - -const KW_AT_IDX = 6; // Group 7 = the identifier after "bind-", "let-", "ref-/#", "on-", "bindon-" or "@" - -const IDENT_KW_IDX = 7; -const BINDING_DELIMS = { - BANANA_BOX: { - start: '[(', - end: ')]' - }, - PROPERTY: { - start: '[', - end: ']' - }, - EVENT: { - start: '(', - end: ')' - } -}; -const TEMPLATE_ATTR_PREFIX = '*'; - -function htmlAstToRender3Ast(htmlNodes, bindingParser, options) { - const transformer = new HtmlAstToIvyAst(bindingParser, options); - const ivyNodes = visitAll(transformer, htmlNodes); // Errors might originate in either the binding parser or the html to ivy transformer - - const allErrors = bindingParser.errors.concat(transformer.errors); - const result = { - nodes: ivyNodes, - errors: allErrors, - styleUrls: transformer.styleUrls, - styles: transformer.styles, - ngContentSelectors: transformer.ngContentSelectors - }; - - if (options.collectCommentNodes) { - result.commentNodes = transformer.commentNodes; - } - - return result; -} - -class HtmlAstToIvyAst { - constructor(bindingParser, options) { - this.bindingParser = bindingParser; - this.options = options; - this.errors = []; - this.styles = []; - this.styleUrls = []; - this.ngContentSelectors = []; // This array will be populated if `Render3ParseOptions['collectCommentNodes']` is true - - this.commentNodes = []; - this.inI18nBlock = false; - } // HTML visitor - - - visitElement(element) { - const isI18nRootElement = isI18nRootNode(element.i18n); - - if (isI18nRootElement) { - if (this.inI18nBlock) { - this.reportError('Cannot mark an element as translatable inside of a translatable section. Please remove the nested i18n marker.', element.sourceSpan); - } - - this.inI18nBlock = true; - } - - const preparsedElement = preparseElement(element); - - if (preparsedElement.type === PreparsedElementType.SCRIPT) { - return null; - } else if (preparsedElement.type === PreparsedElementType.STYLE) { - const contents = textContents(element); - - if (contents !== null) { - this.styles.push(contents); - } - - return null; - } else if (preparsedElement.type === PreparsedElementType.STYLESHEET && isStyleUrlResolvable(preparsedElement.hrefAttr)) { - this.styleUrls.push(preparsedElement.hrefAttr); - return null; - } // Whether the element is a `` - - - const isTemplateElement = isNgTemplate(element.name); - const parsedProperties = []; - const boundEvents = []; - const variables = []; - const references = []; - const attributes = []; - const i18nAttrsMeta = {}; - const templateParsedProperties = []; - const templateVariables = []; // Whether the element has any *-attribute - - let elementHasInlineTemplate = false; - - for (const attribute of element.attrs) { - let hasBinding = false; - const normalizedName = normalizeAttributeName(attribute.name); // `*attr` defines template bindings - - let isTemplateBinding = false; - - if (attribute.i18n) { - i18nAttrsMeta[attribute.name] = attribute.i18n; - } - - if (normalizedName.startsWith(TEMPLATE_ATTR_PREFIX)) { - // *-attributes - if (elementHasInlineTemplate) { - this.reportError(`Can't have multiple template bindings on one element. Use only one attribute prefixed with *`, attribute.sourceSpan); - } - - isTemplateBinding = true; - elementHasInlineTemplate = true; - const templateValue = attribute.value; - const templateKey = normalizedName.substring(TEMPLATE_ATTR_PREFIX.length); - const parsedVariables = []; - const absoluteValueOffset = attribute.valueSpan ? attribute.valueSpan.start.offset : // If there is no value span the attribute does not have a value, like `attr` in - //`
    `. In this case, point to one character beyond the last character of - // the attribute name. - attribute.sourceSpan.start.offset + attribute.name.length; - this.bindingParser.parseInlineTemplateBinding(templateKey, templateValue, attribute.sourceSpan, absoluteValueOffset, [], templateParsedProperties, parsedVariables, true - /* isIvyAst */ - ); - templateVariables.push(...parsedVariables.map(v => new Variable(v.name, v.value, v.sourceSpan, v.keySpan, v.valueSpan))); - } else { - // Check for variables, events, property bindings, interpolation - hasBinding = this.parseAttribute(isTemplateElement, attribute, [], parsedProperties, boundEvents, variables, references); - } - - if (!hasBinding && !isTemplateBinding) { - // don't include the bindings as attributes as well in the AST - attributes.push(this.visitAttribute(attribute)); - } - } - - const children = visitAll(preparsedElement.nonBindable ? NON_BINDABLE_VISITOR : this, element.children); - let parsedElement; - - if (preparsedElement.type === PreparsedElementType.NG_CONTENT) { - // `` - if (element.children && !element.children.every(node => isEmptyTextNode(node) || isCommentNode(node))) { - this.reportError(` element cannot have content.`, element.sourceSpan); - } - - const selector = preparsedElement.selectAttr; - const attrs = element.attrs.map(attr => this.visitAttribute(attr)); - parsedElement = new Content(selector, attrs, element.sourceSpan, element.i18n); - this.ngContentSelectors.push(selector); - } else if (isTemplateElement) { - // `` - const attrs = this.extractAttributes(element.name, parsedProperties, i18nAttrsMeta); - parsedElement = new Template(element.name, attributes, attrs.bound, boundEvents, [ - /* no template attributes */ - ], children, references, variables, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n); - } else { - const attrs = this.extractAttributes(element.name, parsedProperties, i18nAttrsMeta); - parsedElement = new Element$1(element.name, attributes, attrs.bound, boundEvents, children, references, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, element.i18n); - } - - if (elementHasInlineTemplate) { - // If this node is an inline-template (e.g. has *ngFor) then we need to create a template - // node that contains this node. - // Moreover, if the node is an element, then we need to hoist its attributes to the template - // node for matching against content projection selectors. - const attrs = this.extractAttributes('ng-template', templateParsedProperties, i18nAttrsMeta); - const templateAttrs = []; - attrs.literal.forEach(attr => templateAttrs.push(attr)); - attrs.bound.forEach(attr => templateAttrs.push(attr)); - const hoistedAttrs = parsedElement instanceof Element$1 ? { - attributes: parsedElement.attributes, - inputs: parsedElement.inputs, - outputs: parsedElement.outputs - } : { - attributes: [], - inputs: [], - outputs: [] - }; // For s with structural directives on them, avoid passing i18n information to - // the wrapping template to prevent unnecessary i18n instructions from being generated. The - // necessary i18n meta information will be extracted from child elements. - - const i18n = isTemplateElement && isI18nRootElement ? undefined : element.i18n; - const name = parsedElement instanceof Template ? null : parsedElement.name; - parsedElement = new Template(name, hoistedAttrs.attributes, hoistedAttrs.inputs, hoistedAttrs.outputs, templateAttrs, [parsedElement], [ - /* no references */ - ], templateVariables, element.sourceSpan, element.startSourceSpan, element.endSourceSpan, i18n); - } - - if (isI18nRootElement) { - this.inI18nBlock = false; - } - - return parsedElement; - } - - visitAttribute(attribute) { - return new TextAttribute(attribute.name, attribute.value, attribute.sourceSpan, attribute.keySpan, attribute.valueSpan, attribute.i18n); - } - - visitText(text) { - return this._visitTextWithInterpolation(text.value, text.sourceSpan, text.tokens, text.i18n); - } - - visitExpansion(expansion) { - if (!expansion.i18n) { - // do not generate Icu in case it was created - // outside of i18n block in a template - return null; - } - - if (!isI18nRootNode(expansion.i18n)) { - throw new Error(`Invalid type "${expansion.i18n.constructor}" for "i18n" property of ${expansion.sourceSpan.toString()}. Expected a "Message"`); - } - - const message = expansion.i18n; - const vars = {}; - const placeholders = {}; // extract VARs from ICUs - we process them separately while - // assembling resulting message via goog.getMsg function, since - // we need to pass them to top-level goog.getMsg call - - Object.keys(message.placeholders).forEach(key => { - const value = message.placeholders[key]; - - if (key.startsWith(I18N_ICU_VAR_PREFIX)) { - // Currently when the `plural` or `select` keywords in an ICU contain trailing spaces (e.g. - // `{count, select , ...}`), these spaces are also included into the key names in ICU vars - // (e.g. "VAR_SELECT "). These trailing spaces are not desirable, since they will later be - // converted into `_` symbols while normalizing placeholder names, which might lead to - // mismatches at runtime (i.e. placeholder will not be replaced with the correct value). - const formattedKey = key.trim(); - const ast = this.bindingParser.parseInterpolationExpression(value.text, value.sourceSpan); - vars[formattedKey] = new BoundText(ast, value.sourceSpan); - } else { - placeholders[key] = this._visitTextWithInterpolation(value.text, value.sourceSpan, null); - } - }); - return new Icu$1(vars, placeholders, expansion.sourceSpan, message); - } - - visitExpansionCase(expansionCase) { - return null; - } - - visitComment(comment) { - if (this.options.collectCommentNodes) { - this.commentNodes.push(new Comment$1(comment.value || '', comment.sourceSpan)); - } - - return null; - } // convert view engine `ParsedProperty` to a format suitable for IVY - - - extractAttributes(elementName, properties, i18nPropsMeta) { - const bound = []; - const literal = []; - properties.forEach(prop => { - const i18n = i18nPropsMeta[prop.name]; - - if (prop.isLiteral) { - literal.push(new TextAttribute(prop.name, prop.expression.source || '', prop.sourceSpan, prop.keySpan, prop.valueSpan, i18n)); - } else { - // Note that validation is skipped and property mapping is disabled - // due to the fact that we need to make sure a given prop is not an - // input of a directive and directive matching happens at runtime. - const bep = this.bindingParser.createBoundElementProperty(elementName, prop, - /* skipValidation */ - true, - /* mapPropertyName */ - false); - bound.push(BoundAttribute.fromBoundElementProperty(bep, i18n)); - } - }); - return { - bound, - literal - }; - } - - parseAttribute(isTemplateElement, attribute, matchableAttributes, parsedProperties, boundEvents, variables, references) { - const name = normalizeAttributeName(attribute.name); - const value = attribute.value; - const srcSpan = attribute.sourceSpan; - const absoluteOffset = attribute.valueSpan ? attribute.valueSpan.start.offset : srcSpan.start.offset; - - function createKeySpan(srcSpan, prefix, identifier) { - // We need to adjust the start location for the keySpan to account for the removed 'data-' - // prefix from `normalizeAttributeName`. - const normalizationAdjustment = attribute.name.length - name.length; - const keySpanStart = srcSpan.start.moveBy(prefix.length + normalizationAdjustment); - const keySpanEnd = keySpanStart.moveBy(identifier.length); - return new ParseSourceSpan(keySpanStart, keySpanEnd, keySpanStart, identifier); - } - - const bindParts = name.match(BIND_NAME_REGEXP); - - if (bindParts) { - if (bindParts[KW_BIND_IDX] != null) { - const identifier = bindParts[IDENT_KW_IDX]; - const keySpan = createKeySpan(srcSpan, bindParts[KW_BIND_IDX], identifier); - this.bindingParser.parsePropertyBinding(identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan); - } else if (bindParts[KW_LET_IDX]) { - if (isTemplateElement) { - const identifier = bindParts[IDENT_KW_IDX]; - const keySpan = createKeySpan(srcSpan, bindParts[KW_LET_IDX], identifier); - this.parseVariable(identifier, value, srcSpan, keySpan, attribute.valueSpan, variables); - } else { - this.reportError(`"let-" is only supported on ng-template elements.`, srcSpan); - } - } else if (bindParts[KW_REF_IDX]) { - const identifier = bindParts[IDENT_KW_IDX]; - const keySpan = createKeySpan(srcSpan, bindParts[KW_REF_IDX], identifier); - this.parseReference(identifier, value, srcSpan, keySpan, attribute.valueSpan, references); - } else if (bindParts[KW_ON_IDX]) { - const events = []; - const identifier = bindParts[IDENT_KW_IDX]; - const keySpan = createKeySpan(srcSpan, bindParts[KW_ON_IDX], identifier); - this.bindingParser.parseEvent(identifier, value, - /* isAssignmentEvent */ - false, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events, keySpan); - addEvents(events, boundEvents); - } else if (bindParts[KW_BINDON_IDX]) { - const identifier = bindParts[IDENT_KW_IDX]; - const keySpan = createKeySpan(srcSpan, bindParts[KW_BINDON_IDX], identifier); - this.bindingParser.parsePropertyBinding(identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan); - this.parseAssignmentEvent(identifier, value, srcSpan, attribute.valueSpan, matchableAttributes, boundEvents, keySpan); - } else if (bindParts[KW_AT_IDX]) { - const keySpan = createKeySpan(srcSpan, '', name); - this.bindingParser.parseLiteralAttr(name, value, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan); - } - - return true; - } // We didn't see a kw-prefixed property binding, but we have not yet checked - // for the []/()/[()] syntax. - - - let delims = null; - - if (name.startsWith(BINDING_DELIMS.BANANA_BOX.start)) { - delims = BINDING_DELIMS.BANANA_BOX; - } else if (name.startsWith(BINDING_DELIMS.PROPERTY.start)) { - delims = BINDING_DELIMS.PROPERTY; - } else if (name.startsWith(BINDING_DELIMS.EVENT.start)) { - delims = BINDING_DELIMS.EVENT; - } - - if (delims !== null && // NOTE: older versions of the parser would match a start/end delimited - // binding iff the property name was terminated by the ending delimiter - // and the identifier in the binding was non-empty. - // TODO(ayazhafiz): update this to handle malformed bindings. - name.endsWith(delims.end) && name.length > delims.start.length + delims.end.length) { - const identifier = name.substring(delims.start.length, name.length - delims.end.length); - const keySpan = createKeySpan(srcSpan, delims.start, identifier); - - if (delims.start === BINDING_DELIMS.BANANA_BOX.start) { - this.bindingParser.parsePropertyBinding(identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan); - this.parseAssignmentEvent(identifier, value, srcSpan, attribute.valueSpan, matchableAttributes, boundEvents, keySpan); - } else if (delims.start === BINDING_DELIMS.PROPERTY.start) { - this.bindingParser.parsePropertyBinding(identifier, value, false, srcSpan, absoluteOffset, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan); - } else { - const events = []; - this.bindingParser.parseEvent(identifier, value, - /* isAssignmentEvent */ - false, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events, keySpan); - addEvents(events, boundEvents); - } - - return true; - } // No explicit binding found. - - - const keySpan = createKeySpan(srcSpan, '' - /* prefix */ - , name); - const hasBinding = this.bindingParser.parsePropertyInterpolation(name, value, srcSpan, attribute.valueSpan, matchableAttributes, parsedProperties, keySpan, attribute.valueTokens ?? null); - return hasBinding; - } - - _visitTextWithInterpolation(value, sourceSpan, interpolatedTokens, i18n) { - const valueNoNgsp = replaceNgsp(value); - const expr = this.bindingParser.parseInterpolation(valueNoNgsp, sourceSpan, interpolatedTokens); - return expr ? new BoundText(expr, sourceSpan, i18n) : new Text$3(valueNoNgsp, sourceSpan); - } - - parseVariable(identifier, value, sourceSpan, keySpan, valueSpan, variables) { - if (identifier.indexOf('-') > -1) { - this.reportError(`"-" is not allowed in variable names`, sourceSpan); - } else if (identifier.length === 0) { - this.reportError(`Variable does not have a name`, sourceSpan); - } - - variables.push(new Variable(identifier, value, sourceSpan, keySpan, valueSpan)); - } - - parseReference(identifier, value, sourceSpan, keySpan, valueSpan, references) { - if (identifier.indexOf('-') > -1) { - this.reportError(`"-" is not allowed in reference names`, sourceSpan); - } else if (identifier.length === 0) { - this.reportError(`Reference does not have a name`, sourceSpan); - } else if (references.some(reference => reference.name === identifier)) { - this.reportError(`Reference "#${identifier}" is defined more than once`, sourceSpan); - } - - references.push(new Reference(identifier, value, sourceSpan, keySpan, valueSpan)); - } - - parseAssignmentEvent(name, expression, sourceSpan, valueSpan, targetMatchableAttrs, boundEvents, keySpan) { - const events = []; - this.bindingParser.parseEvent(`${name}Change`, `${expression} =$event`, - /* isAssignmentEvent */ - true, sourceSpan, valueSpan || sourceSpan, targetMatchableAttrs, events, keySpan); - addEvents(events, boundEvents); - } - - reportError(message, sourceSpan, level = ParseErrorLevel.ERROR) { - this.errors.push(new ParseError(sourceSpan, message, level)); - } - -} - -class NonBindableVisitor { - visitElement(ast) { - const preparsedElement = preparseElement(ast); - - if (preparsedElement.type === PreparsedElementType.SCRIPT || preparsedElement.type === PreparsedElementType.STYLE || preparsedElement.type === PreparsedElementType.STYLESHEET) { - // Skipping