{"version":3,"file":"auxilium.min.js","mappings":"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","sources":["webpack://Auxilium/./src/highlight.min.js","webpack://Auxilium/webpack/bootstrap","webpack://Auxilium/webpack/runtime/define property getters","webpack://Auxilium/webpack/runtime/global","webpack://Auxilium/webpack/runtime/harmony module decorator","webpack://Auxilium/webpack/runtime/hasOwnProperty shorthand","webpack://Auxilium/webpack/runtime/make namespace object","webpack://Auxilium/./src/modules/core/browser.js","webpack://Auxilium/./src/modules/dialog/dialog.js","webpack://Auxilium/./src/modules/ajax/ajax.js","webpack://Auxilium/./src/modules/dialog/toast.js","webpack://Auxilium/./src/modules/components/list-view.js","webpack://Auxilium/./src/modules/components/table.js","webpack://Auxilium/./src/modules/razor/razor.js","webpack://Auxilium/./src/modules/components/blurred-menu.js","webpack://Auxilium/./src/modules/components/auxilium-component.js","webpack://Auxilium/./src/modules/components/textarea/textarea.js","webpack://Auxilium/./src/modules/components/button/button.js","webpack://Auxilium/./src/modules/components/contextmenu/context-menu.js","webpack://Auxilium/./src/modules/components/iconpicker/icons.js","webpack://Auxilium/./src/modules/reports/config-report.js","webpack://Auxilium/./src/auxilium.js","webpack://Auxilium/./src/modules/io/fileuploader.js","webpack://Auxilium/./src/modules/database/db-interfacer.js","webpack://Auxilium/./src/modules/components/card/card.js","webpack://Auxilium/./src/modules/components/checkbox/checkbox.js","webpack://Auxilium/./src/modules/components/input/input.js","webpack://Auxilium/./src/modules/components/infogroup/info-group.js","webpack://Auxilium/./src/modules/components/infogroup/infogroup-row.js","webpack://Auxilium/./src/modules/components/infogroup/infogroup-value.js","webpack://Auxilium/./src/modules/components/dropdown/dropdown.js","webpack://Auxilium/./src/modules/components/dropdown/dropdown-item.js","webpack://Auxilium/./src/modules/components/dropdown/dropdown-divider.js","webpack://Auxilium/./src/modules/components/dropdown/dropdown-group.js","webpack://Auxilium/./src/modules/components/dropdown/dropdown-header.js","webpack://Auxilium/./src/modules/components/callout/callout.js","webpack://Auxilium/./src/modules/components/sortablelist/sortable-list.js","webpack://Auxilium/./src/modules/components/sortablelist/sortable-listitem.js","webpack://Auxilium/./src/modules/components/tree/tree.js","webpack://Auxilium/./src/modules/components/tree/tree-item.js","webpack://Auxilium/./src/modules/components/contextmenu/menu-item.js","webpack://Auxilium/./src/modules/components/contextmenu/menu-divider.js","webpack://Auxilium/./src/modules/components/accordion/accordion.js","webpack://Auxilium/./src/modules/components/accordion/accordion-item.js","webpack://Auxilium/./src/modules/components/button/splitbutton.js","webpack://Auxilium/./src/modules/components/button/dropdown-button.js","webpack://Auxilium/./src/modules/components/tabs/tabgroup.js","webpack://Auxilium/./src/modules/components/tabs/tab.js","webpack://Auxilium/./src/modules/components/form/form.js","webpack://Auxilium/./src/modules/components/form/form-section.js","webpack://Auxilium/./src/modules/components/emptyprompt/prompt.js","webpack://Auxilium/./src/modules/components/iconpicker/iconpicker.js","webpack://Auxilium/./src/modules/components/button/button-group.js","webpack://Auxilium/./src/modules/components/colourpicker/colourpicker.js","webpack://Auxilium/./src/modules/components/badge/badge.js","webpack://Auxilium/./src/modules/components/label/label.js","webpack://Auxilium/./src/modules/components/header/header.js","webpack://Auxilium/./src/modules/components/range/range.js","webpack://Auxilium/./src/modules/components/breadcrumb/breadcrumb.js","webpack://Auxilium/./src/modules/components/breadcrumb/breadcrumb-item.js","webpack://Auxilium/./src/modules/components/progress/progress.js","webpack://Auxilium/./src/modules/components/progress/progress-item.js","webpack://Auxilium/./src/modules/components/radio/radio.js","webpack://Auxilium/./src/modules/components/code-block/code-block.js","webpack://Auxilium/./src/modules/components/wireframe/frame.js","webpack://Auxilium/./src/modules/components/wireframe/frame-header.js","webpack://Auxilium/./src/modules/components/wireframe/frame-sidebar.js","webpack://Auxilium/./src/modules/components/wireframe/frame-content.js","webpack://Auxilium/./src/modules/components/wireframe/sidebar-header.js","webpack://Auxilium/./src/modules/components/wireframe/sidebar-item.js","webpack://Auxilium/./src/modules/components/beacon/beacon.js","webpack://Auxilium/./src/modules/components/icon/icon.js","webpack://Auxilium/./src/modules/components/select/select.js","webpack://Auxilium/./src/modules/components/select/option.js","webpack://Auxilium/./src/modules/components/carousel/carousel.js","webpack://Auxilium/./src/modules/components/carousel/carousel-slide.js","webpack://Auxilium/./src/modules/components/link/link.js","webpack://Auxilium/./src/modules/components/dateformat/date-format.js","webpack://Auxilium/./src/modules/components/grid/grid.js","webpack://Auxilium/./src/modules/components/progress-bar/progressbar.js","webpack://Auxilium/./src/modules/components/loading/loading.js","webpack://Auxilium/./src/modules/components/list/list.js","webpack://Auxilium/./src/modules/components/list/list-item.js"],"sourcesContent":["export var hljs=function(){\"use strict\";function e(t){\nreturn t instanceof Map?t.clear=t.delete=t.set=()=>{\nthrow Error(\"map is read-only\")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{\nthrow Error(\"set is read-only\")\n}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{\nconst i=t[n],s=typeof i;\"object\"!==s&&\"function\"!==s||Object.isFrozen(i)||e(i)\n})),t}class t{constructor(e){\nvoid 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}\nignoreMatch(){this.isMatchIgnored=!0}}function n(e){\nreturn e.replace(/&/g,\"&\").replace(//g,\">\").replace(/\"/g,\""\").replace(/'/g,\"'\")\n}function i(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]\n;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const s=e=>!!e.scope\n;class o{constructor(e,t){\nthis.buffer=\"\",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){\nthis.buffer+=n(e)}openNode(e){if(!s(e))return;const t=((e,{prefix:t})=>{\nif(e.startsWith(\"language:\"))return e.replace(\"language:\",\"language-\")\n;if(e.includes(\".\")){const n=e.split(\".\")\n;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${\"_\".repeat(t+1)}`))].join(\" \")\n}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)}\ncloseNode(e){s(e)&&(this.buffer+=\"\")}value(){return this.buffer}span(e){\nthis.buffer+=``}}const r=(e={})=>{const t={children:[]}\n;return Object.assign(t,e),t};class a{constructor(){\nthis.rootNode=r(),this.stack=[this.rootNode]}get top(){\nreturn this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){\nthis.top.children.push(e)}openNode(e){const t=r({scope:e})\n;this.add(t),this.stack.push(t)}closeNode(){\nif(this.stack.length>1)return this.stack.pop()}closeAllNodes(){\nfor(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}\nwalk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){\nreturn\"string\"==typeof t?e.addText(t):t.children&&(e.openNode(t),\nt.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){\n\"string\"!=typeof e&&e.children&&(e.children.every((e=>\"string\"==typeof e))?e.children=[e.children.join(\"\")]:e.children.forEach((e=>{\na._collapse(e)})))}}class c extends a{constructor(e){super(),this.options=e}\naddText(e){\"\"!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){\nthis.closeNode()}__addSublanguage(e,t){const n=e.root\n;t&&(n.scope=\"language:\"+t),this.add(n)}toHTML(){\nreturn new o(this,this.options).value()}finalize(){\nreturn this.closeAllNodes(),!0}}function l(e){\nreturn e?\"string\"==typeof e?e:e.source:null}function g(e){return h(\"(?=\",e,\")\")}\nfunction u(e){return h(\"(?:\",e,\")*\")}function d(e){return h(\"(?:\",e,\")?\")}\nfunction h(...e){return e.map((e=>l(e))).join(\"\")}function f(...e){const t=(e=>{\nconst t=e[e.length-1]\n;return\"object\"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}\n})(e);return\"(\"+(t.capture?\"\":\"?:\")+e.map((e=>l(e))).join(\"|\")+\")\"}\nfunction p(e){return RegExp(e.toString()+\"|\").exec(\"\").length-1}\nconst b=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./\n;function m(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n\n;let i=l(e),s=\"\";for(;i.length>0;){const e=b.exec(i);if(!e){s+=i;break}\ns+=i.substring(0,e.index),\ni=i.substring(e.index+e[0].length),\"\\\\\"===e[0][0]&&e[1]?s+=\"\\\\\"+(Number(e[1])+t):(s+=e[0],\n\"(\"===e[0]&&n++)}return s})).map((e=>`(${e})`)).join(t)}\nconst E=\"[a-zA-Z]\\\\w*\",x=\"[a-zA-Z_]\\\\w*\",w=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",y=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",_=\"\\\\b(0b[01]+)\",O={\nbegin:\"\\\\\\\\[\\\\s\\\\S]\",relevance:0},v={scope:\"string\",begin:\"'\",end:\"'\",\nillegal:\"\\\\n\",contains:[O]},k={scope:\"string\",begin:'\"',end:'\"',illegal:\"\\\\n\",\ncontains:[O]},N=(e,t,n={})=>{const s=i({scope:\"comment\",begin:e,end:t,\ncontains:[]},n);s.contains.push({scope:\"doctag\",\nbegin:\"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)\",\nend:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0})\n;const o=f(\"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,}/)\n;return s.contains.push({begin:h(/[ ]+/,\"(\",o,/[.]?[:]?([.][ ]|[ ])/,\"){3}\")}),s\n},S=N(\"//\",\"$\"),M=N(\"/\\\\*\",\"\\\\*/\"),R=N(\"#\",\"$\");var j=Object.freeze({\n__proto__:null,APOS_STRING_MODE:v,BACKSLASH_ESCAPE:O,BINARY_NUMBER_MODE:{\nscope:\"number\",begin:_,relevance:0},BINARY_NUMBER_RE:_,COMMENT:N,\nC_BLOCK_COMMENT_MODE:M,C_LINE_COMMENT_MODE:S,C_NUMBER_MODE:{scope:\"number\",\nbegin:y,relevance:0},C_NUMBER_RE:y,END_SAME_AS_BEGIN:e=>Object.assign(e,{\n\"on:begin\":(e,t)=>{t.data._beginMatch=e[1]},\"on:end\":(e,t)=>{\nt.data._beginMatch!==e[1]&&t.ignoreMatch()}}),HASH_COMMENT_MODE:R,IDENT_RE:E,\nMATCH_NOTHING_RE:/\\b\\B/,METHOD_GUARD:{begin:\"\\\\.\\\\s*\"+x,relevance:0},\nNUMBER_MODE:{scope:\"number\",begin:w,relevance:0},NUMBER_RE:w,\nPHRASAL_WORDS_MODE:{\nbegin:/\\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},QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:\"regexp\",begin:/\\/(?=[^/\\n]*\\/)/,\nend:/\\/[gimuy]*/,contains:[O,{begin:/\\[/,end:/\\]/,relevance:0,contains:[O]}]},\nRE_STARTERS_RE:\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",\nSHEBANG:(e={})=>{const t=/^#![ ]*\\//\n;return e.binary&&(e.begin=h(t,/.*\\b/,e.binary,/\\b.*/)),i({scope:\"meta\",begin:t,\nend:/$/,relevance:0,\"on:begin\":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},\nTITLE_MODE:{scope:\"title\",begin:E,relevance:0},UNDERSCORE_IDENT_RE:x,\nUNDERSCORE_TITLE_MODE:{scope:\"title\",begin:x,relevance:0}});function A(e,t){\n\".\"===e.input[e.index-1]&&t.ignoreMatch()}function I(e,t){\nvoid 0!==e.className&&(e.scope=e.className,delete e.className)}function T(e,t){\nt&&e.beginKeywords&&(e.begin=\"\\\\b(\"+e.beginKeywords.split(\" \").join(\"|\")+\")(?!\\\\.)(?=\\\\b|\\\\s)\",\ne.__beforeBegin=A,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,\nvoid 0===e.relevance&&(e.relevance=0))}function L(e,t){\nArray.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function B(e,t){\nif(e.match){\nif(e.begin||e.end)throw Error(\"begin & end are not supported with match\")\n;e.begin=e.match,delete e.match}}function P(e,t){\nvoid 0===e.relevance&&(e.relevance=1)}const D=(e,t)=>{if(!e.beforeMatch)return\n;if(e.starts)throw Error(\"beforeMatch cannot be used with starts\")\n;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t]\n})),e.keywords=n.keywords,e.begin=h(n.beforeMatch,g(n.begin)),e.starts={\nrelevance:0,contains:[Object.assign(n,{endsParent:!0})]\n},e.relevance=0,delete n.beforeMatch\n},H=[\"of\",\"and\",\"for\",\"in\",\"not\",\"or\",\"if\",\"then\",\"parent\",\"list\",\"value\"],C=\"keyword\"\n;function $(e,t,n=C){const i=Object.create(null)\n;return\"string\"==typeof e?s(n,e.split(\" \")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{\nObject.assign(i,$(e[n],t,n))})),i;function s(e,n){\nt&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split(\"|\")\n;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){\nreturn t?Number(t):(e=>H.includes(e.toLowerCase()))(e)?0:1}const z={},W=e=>{\nconsole.error(e)},X=(e,...t)=>{console.log(\"WARN: \"+e,...t)},G=(e,t)=>{\nz[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0)\n},K=Error();function F(e,t,{key:n}){let i=0;const s=e[n],o={},r={}\n;for(let e=1;e<=t.length;e++)r[e+i]=s[e],o[e+i]=!0,i+=p(t[e-1])\n;e[n]=r,e[n]._emit=o,e[n]._multi=!0}function Z(e){(e=>{\ne.scope&&\"object\"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,\ndelete e.scope)})(e),\"string\"==typeof e.beginScope&&(e.beginScope={\n_wrap:e.beginScope}),\"string\"==typeof e.endScope&&(e.endScope={_wrap:e.endScope\n}),(e=>{if(Array.isArray(e.begin)){\nif(e.skip||e.excludeBegin||e.returnBegin)throw W(\"skip, excludeBegin, returnBegin not compatible with beginScope: {}\"),\nK\n;if(\"object\"!=typeof e.beginScope||null===e.beginScope)throw W(\"beginScope must be object\"),\nK;F(e,e.begin,{key:\"beginScope\"}),e.begin=m(e.begin,{joinWith:\"\"})}})(e),(e=>{\nif(Array.isArray(e.end)){\nif(e.skip||e.excludeEnd||e.returnEnd)throw W(\"skip, excludeEnd, returnEnd not compatible with endScope: {}\"),\nK\n;if(\"object\"!=typeof e.endScope||null===e.endScope)throw W(\"endScope must be object\"),\nK;F(e,e.end,{key:\"endScope\"}),e.end=m(e.end,{joinWith:\"\"})}})(e)}function V(e){\nfunction t(t,n){\nreturn RegExp(l(t),\"m\"+(e.case_insensitive?\"i\":\"\")+(e.unicodeRegex?\"u\":\"\")+(n?\"g\":\"\"))\n}class n{constructor(){\nthis.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}\naddRule(e,t){\nt.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),\nthis.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null)\n;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(m(e,{joinWith:\"|\"\n}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex\n;const t=this.matcherRe.exec(e);if(!t)return null\n;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]\n;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){\nthis.rules=[],this.multiRegexes=[],\nthis.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){\nif(this.multiRegexes[e])return this.multiRegexes[e];const t=new n\n;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),\nt.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){\nreturn 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){\nthis.rules.push([e,t]),\"begin\"===t.type&&this.count++}exec(e){\nconst t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex\n;let n=t.exec(e)\n;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{\nconst t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}\nreturn n&&(this.regexIndex+=n.position+1,\nthis.regexIndex===this.count&&this.considerAll()),n}}\nif(e.compilerExtensions||(e.compilerExtensions=[]),\ne.contains&&e.contains.includes(\"self\"))throw Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\")\n;return e.classNameAliases=i(e.classNameAliases||{}),function n(o,r){const a=o\n;if(o.isCompiled)return a\n;[I,B,Z,D].forEach((e=>e(o,r))),e.compilerExtensions.forEach((e=>e(o,r))),\no.__beforeBegin=null,[T,L,P].forEach((e=>e(o,r))),o.isCompiled=!0;let c=null\n;return\"object\"==typeof o.keywords&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),\nc=o.keywords.$pattern,\ndelete o.keywords.$pattern),c=c||/\\w+/,o.keywords&&(o.keywords=$(o.keywords,e.case_insensitive)),\na.keywordPatternRe=t(c,!0),\nr&&(o.begin||(o.begin=/\\B|\\b/),a.beginRe=t(a.begin),o.end||o.endsWithParent||(o.end=/\\B|\\b/),\no.end&&(a.endRe=t(a.end)),\na.terminatorEnd=l(a.end)||\"\",o.endsWithParent&&r.terminatorEnd&&(a.terminatorEnd+=(o.end?\"|\":\"\")+r.terminatorEnd)),\no.illegal&&(a.illegalRe=t(o.illegal)),\no.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>i(e,{\nvariants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?i(e,{\nstarts:e.starts?i(e.starts):null\n}):Object.isFrozen(e)?i(e):e))(\"self\"===e?o:e)))),o.contains.forEach((e=>{n(e,a)\n})),o.starts&&n(o.starts,r),a.matcher=(e=>{const t=new s\n;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:\"begin\"\n}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:\"end\"\n}),e.illegal&&t.addRule(e.illegal,{type:\"illegal\"}),t})(a),a}(e)}function q(e){\nreturn!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{\nconstructor(e,t){super(e),this.name=\"HTMLInjectionError\",this.html=t}}\nconst Y=n,Q=i,ee=Symbol(\"nomatch\"),te=n=>{\nconst i=Object.create(null),s=Object.create(null),o=[];let r=!0\n;const a=\"Could not find the language '{}', did you forget to load/include a language module?\",l={\ndisableAutodetect:!0,name:\"Plain text\",contains:[]};let p={\nignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,\nlanguageDetectRe:/\\blang(?:uage)?-([\\w-]+)\\b/i,classPrefix:\"hljs-\",\ncssSelector:\"pre code\",languages:null,__emitter:c};function b(e){\nreturn p.noHighlightRe.test(e)}function m(e,t,n){let i=\"\",s=\"\"\n;\"object\"==typeof t?(i=e,\nn=t.ignoreIllegals,s=t.language):(G(\"10.7.0\",\"highlight(lang, code, ...args) has been deprecated.\"),\nG(\"10.7.0\",\"Please use highlight(code, options) instead.\\nhttps://github.com/highlightjs/highlight.js/issues/2277\"),\ns=e,i=t),void 0===n&&(n=!0);const o={code:i,language:s};N(\"before:highlight\",o)\n;const r=o.result?o.result:E(o.language,o.code,n)\n;return r.code=o.code,N(\"after:highlight\",r),r}function E(e,n,s,o){\nconst c=Object.create(null);function l(){if(!N.keywords)return void M.addText(R)\n;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(R),n=\"\"\n;for(;t;){n+=R.substring(e,t.index)\n;const s=_.case_insensitive?t[0].toLowerCase():t[0],o=(i=s,N.keywords[i]);if(o){\nconst[e,i]=o\n;if(M.addText(n),n=\"\",c[s]=(c[s]||0)+1,c[s]<=7&&(j+=i),e.startsWith(\"_\"))n+=t[0];else{\nconst n=_.classNameAliases[e]||e;u(t[0],n)}}else n+=t[0]\n;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(R)}var i\n;n+=R.substring(e),M.addText(n)}function g(){null!=N.subLanguage?(()=>{\nif(\"\"===R)return;let e=null;if(\"string\"==typeof N.subLanguage){\nif(!i[N.subLanguage])return void M.addText(R)\n;e=E(N.subLanguage,R,!0,S[N.subLanguage]),S[N.subLanguage]=e._top\n}else e=x(R,N.subLanguage.length?N.subLanguage:null)\n;N.relevance>0&&(j+=e.relevance),M.__addSublanguage(e._emitter,e.language)\n})():l(),R=\"\"}function u(e,t){\n\"\"!==e&&(M.startScope(t),M.addText(e),M.endScope())}function d(e,t){let n=1\n;const i=t.length-1;for(;n<=i;){if(!e._emit[n]){n++;continue}\nconst i=_.classNameAliases[e[n]]||e[n],s=t[n];i?u(s,i):(R=s,l(),R=\"\"),n++}}\nfunction h(e,t){\nreturn e.scope&&\"string\"==typeof e.scope&&M.openNode(_.classNameAliases[e.scope]||e.scope),\ne.beginScope&&(e.beginScope._wrap?(u(R,_.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),\nR=\"\"):e.beginScope._multi&&(d(e.beginScope,t),R=\"\")),N=Object.create(e,{parent:{\nvalue:N}}),N}function f(e,n,i){let s=((e,t)=>{const n=e&&e.exec(t)\n;return n&&0===n.index})(e.endRe,i);if(s){if(e[\"on:end\"]){const i=new t(e)\n;e[\"on:end\"](n,i),i.isMatchIgnored&&(s=!1)}if(s){\nfor(;e.endsParent&&e.parent;)e=e.parent;return e}}\nif(e.endsWithParent)return f(e.parent,n,i)}function b(e){\nreturn 0===N.matcher.regexIndex?(R+=e[0],1):(T=!0,0)}function m(e){\nconst t=e[0],i=n.substring(e.index),s=f(N,e,i);if(!s)return ee;const o=N\n;N.endScope&&N.endScope._wrap?(g(),\nu(t,N.endScope._wrap)):N.endScope&&N.endScope._multi?(g(),\nd(N.endScope,e)):o.skip?R+=t:(o.returnEnd||o.excludeEnd||(R+=t),\ng(),o.excludeEnd&&(R=t));do{\nN.scope&&M.closeNode(),N.skip||N.subLanguage||(j+=N.relevance),N=N.parent\n}while(N!==s.parent);return s.starts&&h(s.starts,e),o.returnEnd?0:t.length}\nlet w={};function y(i,o){const a=o&&o[0];if(R+=i,null==a)return g(),0\n;if(\"begin\"===w.type&&\"end\"===o.type&&w.index===o.index&&\"\"===a){\nif(R+=n.slice(o.index,o.index+1),!r){const t=Error(`0 width match regex (${e})`)\n;throw t.languageName=e,t.badRule=w.rule,t}return 1}\nif(w=o,\"begin\"===o.type)return(e=>{\nconst n=e[0],i=e.rule,s=new t(i),o=[i.__beforeBegin,i[\"on:begin\"]]\n;for(const t of o)if(t&&(t(e,s),s.isMatchIgnored))return b(n)\n;return i.skip?R+=n:(i.excludeBegin&&(R+=n),\ng(),i.returnBegin||i.excludeBegin||(R=n)),h(i,e),i.returnBegin?0:n.length})(o)\n;if(\"illegal\"===o.type&&!s){\nconst e=Error('Illegal lexeme \"'+a+'\" for mode \"'+(N.scope||\"\")+'\"')\n;throw e.mode=N,e}if(\"end\"===o.type){const e=m(o);if(e!==ee)return e}\nif(\"illegal\"===o.type&&\"\"===a)return 1\n;if(I>1e5&&I>3*o.index)throw Error(\"potential infinite loop, way more iterations than matches\")\n;return R+=a,a.length}const _=O(e)\n;if(!_)throw W(a.replace(\"{}\",e)),Error('Unknown language: \"'+e+'\"')\n;const v=V(_);let k=\"\",N=o||v;const S={},M=new p.__emitter(p);(()=>{const e=[]\n;for(let t=N;t!==_;t=t.parent)t.scope&&e.unshift(t.scope)\n;e.forEach((e=>M.openNode(e)))})();let R=\"\",j=0,A=0,I=0,T=!1;try{\nif(_.__emitTokens)_.__emitTokens(n,M);else{for(N.matcher.considerAll();;){\nI++,T?T=!1:N.matcher.considerAll(),N.matcher.lastIndex=A\n;const e=N.matcher.exec(n);if(!e)break;const t=y(n.substring(A,e.index),e)\n;A=e.index+t}y(n.substring(A))}return M.finalize(),k=M.toHTML(),{language:e,\nvalue:k,relevance:j,illegal:!1,_emitter:M,_top:N}}catch(t){\nif(t.message&&t.message.includes(\"Illegal\"))return{language:e,value:Y(n),\nillegal:!0,relevance:0,_illegalBy:{message:t.message,index:A,\ncontext:n.slice(A-100,A+100),mode:t.mode,resultSoFar:k},_emitter:M};if(r)return{\nlanguage:e,value:Y(n),illegal:!1,relevance:0,errorRaised:t,_emitter:M,_top:N}\n;throw t}}function x(e,t){t=t||p.languages||Object.keys(i);const n=(e=>{\nconst t={value:Y(e),illegal:!1,relevance:0,_top:l,_emitter:new p.__emitter(p)}\n;return t._emitter.addText(e),t})(e),s=t.filter(O).filter(k).map((t=>E(t,e,!1)))\n;s.unshift(n);const o=s.sort(((e,t)=>{\nif(e.relevance!==t.relevance)return t.relevance-e.relevance\n;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1\n;if(O(t.language).supersetOf===e.language)return-1}return 0})),[r,a]=o,c=r\n;return c.secondBest=a,c}function w(e){let t=null;const n=(e=>{\nlet t=e.className+\" \";t+=e.parentNode?e.parentNode.className:\"\"\n;const n=p.languageDetectRe.exec(t);if(n){const t=O(n[1])\n;return t||(X(a.replace(\"{}\",n[1])),\nX(\"Falling back to no-highlight mode for this block.\",e)),t?n[1]:\"no-highlight\"}\nreturn t.split(/\\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return\n;if(N(\"before:highlightElement\",{el:e,language:n\n}),e.dataset.highlighted)return void console.log(\"Element previously highlighted. To highlight again, first unset `dataset.highlighted`.\",e)\n;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn(\"One of your code blocks includes unescaped HTML. This is a potentially serious security risk.\"),\nconsole.warn(\"https://github.com/highlightjs/highlight.js/wiki/security\"),\nconsole.warn(\"The element with unescaped HTML:\"),\nconsole.warn(e)),p.throwUnescapedHTML))throw new J(\"One of your code blocks includes unescaped HTML.\",e.innerHTML)\n;t=e;const i=t.textContent,o=n?m(i,{language:n,ignoreIllegals:!0}):x(i)\n;e.innerHTML=o.value,e.dataset.highlighted=\"yes\",((e,t,n)=>{const i=t&&s[t]||n\n;e.classList.add(\"hljs\"),e.classList.add(\"language-\"+i)\n})(e,n,o.language),e.result={language:o.language,re:o.relevance,\nrelevance:o.relevance},o.secondBest&&(e.secondBest={\nlanguage:o.secondBest.language,relevance:o.secondBest.relevance\n}),N(\"after:highlightElement\",{el:e,result:o,text:i})}let y=!1;function _(){\n\"loading\"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(w):y=!0\n}function O(e){return e=(e||\"\").toLowerCase(),i[e]||i[s[e]]}\nfunction v(e,{languageName:t}){\"string\"==typeof e&&(e=[e]),e.forEach((e=>{\ns[e.toLowerCase()]=t}))}function k(e){const t=O(e)\n;return t&&!t.disableAutodetect}function N(e,t){const n=e;o.forEach((e=>{\ne[n]&&e[n](t)}))}\n\"undefined\"!=typeof window&&window.addEventListener&&window.addEventListener(\"DOMContentLoaded\",(()=>{\ny&&_()}),!1),Object.assign(n,{highlight:m,highlightAuto:x,highlightAll:_,\nhighlightElement:w,\nhighlightBlock:e=>(G(\"10.7.0\",\"highlightBlock will be removed entirely in v12.0\"),\nG(\"10.7.0\",\"Please use highlightElement now.\"),w(e)),configure:e=>{p=Q(p,e)},\ninitHighlighting:()=>{\n_(),G(\"10.6.0\",\"initHighlighting() deprecated. Use highlightAll() now.\")},\ninitHighlightingOnLoad:()=>{\n_(),G(\"10.6.0\",\"initHighlightingOnLoad() deprecated. Use highlightAll() now.\")\n},registerLanguage:(e,t)=>{let s=null;try{s=t(n)}catch(t){\nif(W(\"Language definition for '{}' could not be registered.\".replace(\"{}\",e)),\n!r)throw t;W(t),s=l}\ns.name||(s.name=e),i[e]=s,s.rawDefinition=t.bind(null,n),s.aliases&&v(s.aliases,{\nlanguageName:e})},unregisterLanguage:e=>{delete i[e]\n;for(const t of Object.keys(s))s[t]===e&&delete s[t]},\nlistLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v,\nautoDetection:k,inherit:Q,addPlugin:e=>{(e=>{\ne[\"before:highlightBlock\"]&&!e[\"before:highlightElement\"]&&(e[\"before:highlightElement\"]=t=>{\ne[\"before:highlightBlock\"](Object.assign({block:t.el},t))\n}),e[\"after:highlightBlock\"]&&!e[\"after:highlightElement\"]&&(e[\"after:highlightElement\"]=t=>{\ne[\"after:highlightBlock\"](Object.assign({block:t.el},t))})})(e),o.push(e)},\nremovePlugin:e=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}),n.debugMode=()=>{\nr=!1},n.safeMode=()=>{r=!0},n.versionString=\"11.10.0\",n.regex={concat:h,\nlookahead:g,either:f,optional:d,anyNumberOfTimes:u}\n;for(const t in j)\"object\"==typeof j[t]&&e(j[t]);return Object.assign(n,j),n\n},ne=te({});return ne.newInstance=()=>te({}),ne}()\n;\"object\"==typeof exports&&\"undefined\"!=typeof module&&(module.exports=hljs);/*! `csharp` grammar compiled for Highlight.js 11.10.0 */\n(()=>{var e=(()=>{\"use strict\";return e=>{const n={\nkeyword:[\"abstract\",\"as\",\"base\",\"break\",\"case\",\"catch\",\"class\",\"const\",\"continue\",\"do\",\"else\",\"event\",\"explicit\",\"extern\",\"finally\",\"fixed\",\"for\",\"foreach\",\"goto\",\"if\",\"implicit\",\"in\",\"interface\",\"internal\",\"is\",\"lock\",\"namespace\",\"new\",\"operator\",\"out\",\"override\",\"params\",\"private\",\"protected\",\"public\",\"readonly\",\"record\",\"ref\",\"return\",\"scoped\",\"sealed\",\"sizeof\",\"stackalloc\",\"static\",\"struct\",\"switch\",\"this\",\"throw\",\"try\",\"typeof\",\"unchecked\",\"unsafe\",\"using\",\"virtual\",\"void\",\"volatile\",\"while\"].concat([\"add\",\"alias\",\"and\",\"ascending\",\"async\",\"await\",\"by\",\"descending\",\"equals\",\"from\",\"get\",\"global\",\"group\",\"init\",\"into\",\"join\",\"let\",\"nameof\",\"not\",\"notnull\",\"on\",\"or\",\"orderby\",\"partial\",\"remove\",\"select\",\"set\",\"unmanaged\",\"value|0\",\"var\",\"when\",\"where\",\"with\",\"yield\"]),\nbuilt_in:[\"bool\",\"byte\",\"char\",\"decimal\",\"delegate\",\"double\",\"dynamic\",\"enum\",\"float\",\"int\",\"long\",\"nint\",\"nuint\",\"object\",\"sbyte\",\"short\",\"string\",\"ulong\",\"uint\",\"ushort\"],\nliteral:[\"default\",\"false\",\"null\",\"true\"]},a=e.inherit(e.TITLE_MODE,{\nbegin:\"[a-zA-Z](\\\\.?\\\\w)*\"}),i={className:\"number\",variants:[{\nbegin:\"\\\\b(0b[01']+)\"},{\nbegin:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{\nbegin:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"\n}],relevance:0},s={className:\"string\",begin:'@\"',end:'\"',contains:[{begin:'\"\"'}]\n},t=e.inherit(s,{illegal:/\\n/}),r={className:\"subst\",begin:/\\{/,end:/\\}/,\nkeywords:n},l=e.inherit(r,{illegal:/\\n/}),c={className:\"string\",begin:/\\$\"/,\nend:'\"',illegal:/\\n/,contains:[{begin:/\\{\\{/},{begin:/\\}\\}/\n},e.BACKSLASH_ESCAPE,l]},o={className:\"string\",begin:/\\$@\"/,end:'\"',contains:[{\nbegin:/\\{\\{/},{begin:/\\}\\}/},{begin:'\"\"'},r]},d=e.inherit(o,{illegal:/\\n/,\ncontains:[{begin:/\\{\\{/},{begin:/\\}\\}/},{begin:'\"\"'},l]})\n;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],\nl.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{\nillegal:/\\n/})];const g={variants:[{className:\"string\",\nbegin:/\"\"\"(\"*)(?!\")(.|\\n)*?\"\"\"\\1/,relevance:1\n},o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},E={begin:\"<\",end:\">\",\ncontains:[{beginKeywords:\"in out\"},a]\n},_=e.IDENT_RE+\"(<\"+e.IDENT_RE+\"(\\\\s*,\\\\s*\"+e.IDENT_RE+\")*>)?(\\\\[\\\\])?\",b={\nbegin:\"@\"+e.IDENT_RE,relevance:0};return{name:\"C#\",aliases:[\"cs\",\"c#\"],\nkeywords:n,illegal:/::/,contains:[e.COMMENT(\"///\",\"$\",{returnBegin:!0,\ncontains:[{className:\"doctag\",variants:[{begin:\"///\",relevance:0},{\nbegin:\"\\x3c!--|--\\x3e\"},{begin:\"\"}]}]\n}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:\"meta\",begin:\"#\",\nend:\"$\",keywords:{\nkeyword:\"if else elif endif define undef warning error line region endregion pragma checksum\"\n}},g,i,{beginKeywords:\"class interface\",relevance:0,end:/[{;=]/,\nillegal:/[^\\s:,]/,contains:[{beginKeywords:\"where class\"\n},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:\"namespace\",\nrelevance:0,end:/[{;=]/,illegal:/[^\\s:]/,\ncontains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{\nbeginKeywords:\"record\",relevance:0,end:/[{;=]/,illegal:/[^\\s:]/,\ncontains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:\"meta\",\nbegin:\"^\\\\s*\\\\[(?=[\\\\w])\",excludeBegin:!0,end:\"\\\\]\",excludeEnd:!0,contains:[{\nclassName:\"string\",begin:/\"/,end:/\"/}]},{\nbeginKeywords:\"new return throw await else\",relevance:0},{className:\"function\",\nbegin:\"(\"+_+\"\\\\s+)+\"+e.IDENT_RE+\"\\\\s*(<[^=]+>\\\\s*)?\\\\(\",returnBegin:!0,\nend:/\\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{\nbeginKeywords:\"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial\",\nrelevance:0},{begin:e.IDENT_RE+\"\\\\s*(<[^=]+>\\\\s*)?\\\\(\",returnBegin:!0,\ncontains:[e.TITLE_MODE,E],relevance:0},{match:/\\(\\)/},{className:\"params\",\nbegin:/\\(/,end:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,\ncontains:[g,i,e.C_BLOCK_COMMENT_MODE]\n},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})()\n;hljs.registerLanguage(\"csharp\",e)})();/*! `css` grammar compiled for Highlight.js 11.10.0 */\n(()=>{var e=(()=>{\"use strict\"\n;const e=[\"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\",\"optgroup\",\"option\",\"p\",\"picture\",\"q\",\"quote\",\"samp\",\"section\",\"select\",\"source\",\"span\",\"strong\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"ul\",\"var\",\"video\",\"defs\",\"g\",\"marker\",\"mask\",\"pattern\",\"svg\",\"switch\",\"symbol\",\"feBlend\",\"feColorMatrix\",\"feComponentTransfer\",\"feComposite\",\"feConvolveMatrix\",\"feDiffuseLighting\",\"feDisplacementMap\",\"feFlood\",\"feGaussianBlur\",\"feImage\",\"feMerge\",\"feMorphology\",\"feOffset\",\"feSpecularLighting\",\"feTile\",\"feTurbulence\",\"linearGradient\",\"radialGradient\",\"stop\",\"circle\",\"ellipse\",\"image\",\"line\",\"path\",\"polygon\",\"polyline\",\"rect\",\"text\",\"use\",\"textPath\",\"tspan\",\"foreignObject\",\"clipPath\"],r=[\"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\"].sort().reverse(),t=[\"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\"].sort().reverse(),i=[\"after\",\"backdrop\",\"before\",\"cue\",\"cue-region\",\"first-letter\",\"first-line\",\"grammar-error\",\"marker\",\"part\",\"placeholder\",\"selection\",\"slotted\",\"spelling-error\"].sort().reverse(),o=[\"accent-color\",\"align-content\",\"align-items\",\"align-self\",\"alignment-baseline\",\"all\",\"animation\",\"animation-delay\",\"animation-direction\",\"animation-duration\",\"animation-fill-mode\",\"animation-iteration-count\",\"animation-name\",\"animation-play-state\",\"animation-timing-function\",\"appearance\",\"backface-visibility\",\"background\",\"background-attachment\",\"background-blend-mode\",\"background-clip\",\"background-color\",\"background-image\",\"background-origin\",\"background-position\",\"background-repeat\",\"background-size\",\"baseline-shift\",\"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-end-end-radius\",\"border-end-start-radius\",\"border-right-color\",\"border-right-style\",\"border-right-width\",\"border-spacing\",\"border-start-end-radius\",\"border-start-start-radius\",\"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\",\"cx\",\"cy\",\"caption-side\",\"caret-color\",\"clear\",\"clip\",\"clip-path\",\"clip-rule\",\"color\",\"color-interpolation\",\"color-interpolation-filters\",\"color-profile\",\"color-rendering\",\"color-scheme\",\"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\",\"dominant-baseline\",\"empty-cells\",\"enable-background\",\"fill\",\"fill-opacity\",\"fill-rule\",\"filter\",\"flex\",\"flex-basis\",\"flex-direction\",\"flex-flow\",\"flex-grow\",\"flex-shrink\",\"flex-wrap\",\"float\",\"flow\",\"flood-color\",\"flood-opacity\",\"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-horizontal\",\"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\",\"inset\",\"inset-block\",\"inset-block-end\",\"inset-block-start\",\"inset-inline\",\"inset-inline-end\",\"inset-inline-start\",\"isolation\",\"kerning\",\"justify-content\",\"justify-items\",\"justify-self\",\"left\",\"letter-spacing\",\"lighting-color\",\"line-break\",\"line-height\",\"list-style\",\"list-style-image\",\"list-style-position\",\"list-style-type\",\"marker\",\"marker-end\",\"marker-mid\",\"marker-start\",\"mask\",\"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\",\"r\",\"resize\",\"rest\",\"rest-after\",\"rest-before\",\"right\",\"rotate\",\"row-gap\",\"scale\",\"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\",\"shape-rendering\",\"stop-color\",\"stop-opacity\",\"stroke\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"speak\",\"speak-as\",\"src\",\"tab-size\",\"table-layout\",\"text-anchor\",\"text-align\",\"text-align-all\",\"text-align-last\",\"text-combine-upright\",\"text-decoration\",\"text-decoration-color\",\"text-decoration-line\",\"text-decoration-skip-ink\",\"text-decoration-style\",\"text-decoration-thickness\",\"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-offset\",\"text-underline-position\",\"top\",\"transform\",\"transform-box\",\"transform-origin\",\"transform-style\",\"transition\",\"transition-delay\",\"transition-duration\",\"transition-property\",\"transition-timing-function\",\"translate\",\"unicode-bidi\",\"vector-effect\",\"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\",\"x\",\"y\",\"z-index\"].sort().reverse()\n;return n=>{const a=n.regex,l=(e=>({IMPORTANT:{scope:\"meta\",begin:\"!important\"},\nBLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:\"number\",\nbegin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\\b/},FUNCTION_DISPATCH:{\nclassName:\"built_in\",begin:/[\\w-]+(?=\\()/},ATTRIBUTE_SELECTOR_MODE:{\nscope:\"selector-attr\",begin:/\\[/,end:/\\]/,illegal:\"$\",\ncontains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{\nscope:\"number\",\nbegin:e.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)?\",\nrelevance:0},CSS_VARIABLE:{className:\"attr\",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}\n}))(n),s=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:\"CSS\",\ncase_insensitive:!0,illegal:/[=|'\\$]/,keywords:{keyframePosition:\"from to\"},\nclassNameAliases:{keyframePosition:\"selector-tag\"},contains:[l.BLOCK_COMMENT,{\nbegin:/-(webkit|moz|ms|o)-(?=[a-z])/},l.CSS_NUMBER_MODE,{\nclassName:\"selector-id\",begin:/#[A-Za-z0-9_-]+/,relevance:0},{\nclassName:\"selector-class\",begin:\"\\\\.[a-zA-Z-][a-zA-Z0-9_-]*\",relevance:0\n},l.ATTRIBUTE_SELECTOR_MODE,{className:\"selector-pseudo\",variants:[{\nbegin:\":(\"+t.join(\"|\")+\")\"},{begin:\":(:)?(\"+i.join(\"|\")+\")\"}]},l.CSS_VARIABLE,{\nclassName:\"attribute\",begin:\"\\\\b(\"+o.join(\"|\")+\")\\\\b\"},{begin:/:/,end:/[;}{]/,\ncontains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...s,{\nbegin:/(url|data-uri)\\(/,end:/\\)/,relevance:0,keywords:{built_in:\"url data-uri\"\n},contains:[...s,{className:\"string\",begin:/[^)]/,endsWithParent:!0,\nexcludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:a.lookahead(/@/),end:\"[{;]\",\nrelevance:0,illegal:/:/,contains:[{className:\"keyword\",begin:/@-?\\w[\\w]*(-\\w+)*/\n},{begin:/\\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{\n$pattern:/[a-z-]+/,keyword:\"and or not only\",attribute:r.join(\" \")},contains:[{\nbegin:/[a-z-]+(?=:)/,className:\"attribute\"},...s,l.CSS_NUMBER_MODE]}]},{\nclassName:\"selector-tag\",begin:\"\\\\b(\"+e.join(\"|\")+\")\\\\b\"}]}}})()\n;hljs.registerLanguage(\"css\",e)})();/*! `javascript` grammar compiled for Highlight.js 11.10.0 */\n(()=>{var e=(()=>{\"use strict\"\n;const e=\"[A-Za-z$_][0-9A-Za-z$_]*\",n=[\"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\"],a=[\"true\",\"false\",\"null\",\"undefined\",\"NaN\",\"Infinity\"],t=[\"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\"],r=[\"setInterval\",\"setTimeout\",\"clearInterval\",\"clearTimeout\",\"require\",\"exports\",\"eval\",\"isFinite\",\"isNaN\",\"parseFloat\",\"parseInt\",\"decodeURI\",\"decodeURIComponent\",\"encodeURI\",\"encodeURIComponent\",\"escape\",\"unescape\"],c=[\"arguments\",\"this\",\"super\",\"console\",\"window\",\"document\",\"localStorage\",\"sessionStorage\",\"module\",\"global\"],i=[].concat(r,t,s)\n;return o=>{const l=o.regex,b=e,d={begin:/<[A-Za-z0-9\\\\._:-]+/,\nend:/\\/[A-Za-z0-9\\\\._:-]+>|\\/>/,isTrulyOpeningTag:(e,n)=>{\nconst a=e[0].length+e.index,t=e.input[a]\n;if(\"<\"===t||\",\"===t)return void n.ignoreMatch();let s\n;\">\"===t&&(((e,{after:n})=>{const a=\"e+\"\\\\s*\\\\(\")),\nl.concat(\"(?!\",T.join(\"|\"),\")\")),b,l.lookahead(/\\s*\\(/)),\nclassName:\"title.function\",relevance:0};var T;const C={\nbegin:l.concat(/\\./,l.lookahead(l.concat(b,/(?![0-9A-Za-z$_(])/))),end:b,\nexcludeBegin:!0,keywords:\"prototype\",className:\"property\",relevance:0},M={\nmatch:[/get|set/,/\\s+/,b,/(?=\\()/],className:{1:\"keyword\",3:\"title.function\"},\ncontains:[{begin:/\\(\\)/},R]\n},B=\"(\\\\([^()]*(\\\\([^()]*(\\\\([^()]*\\\\)[^()]*)*\\\\)[^()]*)*\\\\)|\"+o.UNDERSCORE_IDENT_RE+\")\\\\s*=>\",$={\nmatch:[/const|var|let/,/\\s+/,b,/\\s*/,/=\\s*/,/(async\\s*)?/,l.lookahead(B)],\nkeywords:\"async\",className:{1:\"keyword\",3:\"title.function\"},contains:[R]}\n;return{name:\"JavaScript\",aliases:[\"js\",\"jsx\",\"mjs\",\"cjs\"],keywords:g,exports:{\nPARAMS_CONTAINS:w,CLASS_REFERENCE:k},illegal:/#(?![$_A-z])/,\ncontains:[o.SHEBANG({label:\"shebang\",binary:\"node\",relevance:5}),{\nlabel:\"use_strict\",className:\"meta\",relevance:10,\nbegin:/^\\s*['\"]use (strict|asm)['\"]/\n},o.APOS_STRING_MODE,o.QUOTE_STRING_MODE,h,N,_,f,p,{match:/\\$\\d+/},A,k,{\nclassName:\"attr\",begin:b+l.lookahead(\":\"),relevance:0},$,{\nbegin:\"(\"+o.RE_STARTERS_RE+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",\nkeywords:\"return throw case\",relevance:0,contains:[p,o.REGEXP_MODE,{\nclassName:\"function\",begin:B,returnBegin:!0,end:\"\\\\s*=>\",contains:[{\nclassName:\"params\",variants:[{begin:o.UNDERSCORE_IDENT_RE,relevance:0},{\nclassName:null,begin:/\\(\\s*\\)/,skip:!0},{begin:/(\\s*)\\(/,end:/\\)/,\nexcludeBegin:!0,excludeEnd:!0,keywords:g,contains:w}]}]},{begin:/,/,relevance:0\n},{match:/\\s+/,relevance:0},{variants:[{begin:\"<>\",end:\"\"},{\nmatch:/<[A-Za-z0-9\\\\._:-]+\\s*\\/>/},{begin:d.begin,\n\"on:begin\":d.isTrulyOpeningTag,end:d.end}],subLanguage:\"xml\",contains:[{\nbegin:d.begin,end:d.end,skip:!0,contains:[\"self\"]}]}]},I,{\nbeginKeywords:\"while if switch catch for\"},{\nbegin:\"\\\\b(?!function)\"+o.UNDERSCORE_IDENT_RE+\"\\\\([^()]*(\\\\([^()]*(\\\\([^()]*\\\\)[^()]*)*\\\\)[^()]*)*\\\\)\\\\s*\\\\{\",\nreturnBegin:!0,label:\"func.def\",contains:[R,o.inherit(o.TITLE_MODE,{begin:b,\nclassName:\"title.function\"})]},{match:/\\.\\.\\./,relevance:0},C,{match:\"\\\\$\"+b,\nrelevance:0},{match:[/\\bconstructor(?=\\s*\\()/],className:{1:\"title.function\"},\ncontains:[R]},x,{relevance:0,match:/\\b[A-Z][A-Z_0-9]+\\b/,\nclassName:\"variable.constant\"},O,M,{match:/\\$[(.]/}]}}})()\n;hljs.registerLanguage(\"javascript\",e)})();/*! `python` grammar compiled for Highlight.js 11.10.0 */\n(()=>{var e=(()=>{\"use strict\";return e=>{\nconst n=e.regex,a=/[\\p{XID_Start}_]\\p{XID_Continue}*/u,s=[\"and\",\"as\",\"assert\",\"async\",\"await\",\"break\",\"case\",\"class\",\"continue\",\"def\",\"del\",\"elif\",\"else\",\"except\",\"finally\",\"for\",\"from\",\"global\",\"if\",\"import\",\"in\",\"is\",\"lambda\",\"match\",\"nonlocal|10\",\"not\",\"or\",\"pass\",\"raise\",\"return\",\"try\",\"while\",\"with\",\"yield\"],t={\n$pattern:/[A-Za-z]\\w+|__\\w+__/,keyword:s,\nbuilt_in:[\"__import__\",\"abs\",\"all\",\"any\",\"ascii\",\"bin\",\"bool\",\"breakpoint\",\"bytearray\",\"bytes\",\"callable\",\"chr\",\"classmethod\",\"compile\",\"complex\",\"delattr\",\"dict\",\"dir\",\"divmod\",\"enumerate\",\"eval\",\"exec\",\"filter\",\"float\",\"format\",\"frozenset\",\"getattr\",\"globals\",\"hasattr\",\"hash\",\"help\",\"hex\",\"id\",\"input\",\"int\",\"isinstance\",\"issubclass\",\"iter\",\"len\",\"list\",\"locals\",\"map\",\"max\",\"memoryview\",\"min\",\"next\",\"object\",\"oct\",\"open\",\"ord\",\"pow\",\"print\",\"property\",\"range\",\"repr\",\"reversed\",\"round\",\"set\",\"setattr\",\"slice\",\"sorted\",\"staticmethod\",\"str\",\"sum\",\"super\",\"tuple\",\"type\",\"vars\",\"zip\"],\nliteral:[\"__debug__\",\"Ellipsis\",\"False\",\"None\",\"NotImplemented\",\"True\"],\ntype:[\"Any\",\"Callable\",\"Coroutine\",\"Dict\",\"List\",\"Literal\",\"Generic\",\"Optional\",\"Sequence\",\"Set\",\"Tuple\",\"Type\",\"Union\"]\n},i={className:\"meta\",begin:/^(>>>|\\.\\.\\.) /},r={className:\"subst\",begin:/\\{/,\nend:/\\}/,keywords:t,illegal:/#/},l={begin:/\\{\\{/,relevance:0},o={\nclassName:\"string\",contains:[e.BACKSLASH_ESCAPE],variants:[{\nbegin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,\ncontains:[e.BACKSLASH_ESCAPE,i],relevance:10},{\nbegin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?\"\"\"/,end:/\"\"\"/,\ncontains:[e.BACKSLASH_ESCAPE,i],relevance:10},{\nbegin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,\ncontains:[e.BACKSLASH_ESCAPE,i,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])\"\"\"/,\nend:/\"\"\"/,contains:[e.BACKSLASH_ESCAPE,i,l,r]},{begin:/([uU]|[rR])'/,end:/'/,\nrelevance:10},{begin:/([uU]|[rR])\"/,end:/\"/,relevance:10},{\nbegin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])\"/,\nend:/\"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,\ncontains:[e.BACKSLASH_ESCAPE,l,r]},{begin:/([fF][rR]|[rR][fF]|[fF])\"/,end:/\"/,\ncontains:[e.BACKSLASH_ESCAPE,l,r]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]\n},b=\"[0-9](_?[0-9])*\",c=`(\\\\b(${b}))?\\\\.(${b})|\\\\b(${b})\\\\.`,d=\"\\\\b|\"+s.join(\"|\"),g={\nclassName:\"number\",relevance:0,variants:[{\nbegin:`(\\\\b(${b})|(${c}))[eE][+-]?(${b})[jJ]?(?=${d})`},{begin:`(${c})[jJ]?`},{\nbegin:`\\\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${d})`},{\nbegin:`\\\\b0[bB](_?[01])+[lL]?(?=${d})`},{begin:`\\\\b0[oO](_?[0-7])+[lL]?(?=${d})`\n},{begin:`\\\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${d})`},{begin:`\\\\b(${b})[jJ](?=${d})`\n}]},p={className:\"comment\",begin:n.lookahead(/# type:/),end:/$/,keywords:t,\ncontains:[{begin:/# type:/},{begin:/#/,end:/\\b\\B/,endsWithParent:!0}]},m={\nclassName:\"params\",variants:[{className:\"\",begin:/\\(\\s*\\)/,skip:!0},{begin:/\\(/,\nend:/\\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,\ncontains:[\"self\",i,g,o,e.HASH_COMMENT_MODE]}]};return r.contains=[o,g,i],{\nname:\"Python\",aliases:[\"py\",\"gyp\",\"ipython\"],unicodeRegex:!0,keywords:t,\nillegal:/(<\\/|\\?)|=>/,contains:[i,g,{scope:\"variable.language\",match:/\\bself\\b/\n},{beginKeywords:\"if\",relevance:0},{match:/\\bor\\b/,scope:\"keyword\"\n},o,p,e.HASH_COMMENT_MODE,{match:[/\\bdef/,/\\s+/,a],scope:{1:\"keyword\",\n3:\"title.function\"},contains:[m]},{variants:[{\nmatch:[/\\bclass/,/\\s+/,a,/\\s*/,/\\(\\s*/,a,/\\s*\\)/]},{match:[/\\bclass/,/\\s+/,a]}],\nscope:{1:\"keyword\",3:\"title.class\",6:\"title.class.inherited\"}},{\nclassName:\"meta\",begin:/^[\\t ]*@/,end:/(?=#)|$/,contains:[g,m,o]}]}}})()\n;hljs.registerLanguage(\"python\",e)})();/*! `shell` grammar compiled for Highlight.js 11.10.0 */\n(()=>{var s=(()=>{\"use strict\";return s=>({name:\"Shell Session\",\naliases:[\"console\",\"shellsession\"],contains:[{className:\"meta.prompt\",\nbegin:/^\\s{0,3}[/~\\w\\d[\\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\\\](?=\\s*$)/,\nsubLanguage:\"bash\"}}]})})();hljs.registerLanguage(\"shell\",s)})();/*! `sql` grammar compiled for Highlight.js 11.10.0 */\n(()=>{var e=(()=>{\"use strict\";return e=>{\nconst r=e.regex,t=e.COMMENT(\"--\",\"$\"),n=[\"true\",\"false\",\"unknown\"],a=[\"bigint\",\"binary\",\"blob\",\"boolean\",\"char\",\"character\",\"clob\",\"date\",\"dec\",\"decfloat\",\"decimal\",\"float\",\"int\",\"integer\",\"interval\",\"nchar\",\"nclob\",\"national\",\"numeric\",\"real\",\"row\",\"smallint\",\"time\",\"timestamp\",\"varchar\",\"varying\",\"varbinary\"],i=[\"abs\",\"acos\",\"array_agg\",\"asin\",\"atan\",\"avg\",\"cast\",\"ceil\",\"ceiling\",\"coalesce\",\"corr\",\"cos\",\"cosh\",\"count\",\"covar_pop\",\"covar_samp\",\"cume_dist\",\"dense_rank\",\"deref\",\"element\",\"exp\",\"extract\",\"first_value\",\"floor\",\"json_array\",\"json_arrayagg\",\"json_exists\",\"json_object\",\"json_objectagg\",\"json_query\",\"json_table\",\"json_table_primitive\",\"json_value\",\"lag\",\"last_value\",\"lead\",\"listagg\",\"ln\",\"log\",\"log10\",\"lower\",\"max\",\"min\",\"mod\",\"nth_value\",\"ntile\",\"nullif\",\"percent_rank\",\"percentile_cont\",\"percentile_disc\",\"position\",\"position_regex\",\"power\",\"rank\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"row_number\",\"sin\",\"sinh\",\"sqrt\",\"stddev_pop\",\"stddev_samp\",\"substring\",\"substring_regex\",\"sum\",\"tan\",\"tanh\",\"translate\",\"translate_regex\",\"treat\",\"trim\",\"trim_array\",\"unnest\",\"upper\",\"value_of\",\"var_pop\",\"var_samp\",\"width_bucket\"],s=[\"create table\",\"insert into\",\"primary key\",\"foreign key\",\"not null\",\"alter table\",\"add constraint\",\"grouping sets\",\"on overflow\",\"character set\",\"respect nulls\",\"ignore nulls\",\"nulls first\",\"nulls last\",\"depth first\",\"breadth first\"],o=i,c=[\"abs\",\"acos\",\"all\",\"allocate\",\"alter\",\"and\",\"any\",\"are\",\"array\",\"array_agg\",\"array_max_cardinality\",\"as\",\"asensitive\",\"asin\",\"asymmetric\",\"at\",\"atan\",\"atomic\",\"authorization\",\"avg\",\"begin\",\"begin_frame\",\"begin_partition\",\"between\",\"bigint\",\"binary\",\"blob\",\"boolean\",\"both\",\"by\",\"call\",\"called\",\"cardinality\",\"cascaded\",\"case\",\"cast\",\"ceil\",\"ceiling\",\"char\",\"char_length\",\"character\",\"character_length\",\"check\",\"classifier\",\"clob\",\"close\",\"coalesce\",\"collate\",\"collect\",\"column\",\"commit\",\"condition\",\"connect\",\"constraint\",\"contains\",\"convert\",\"copy\",\"corr\",\"corresponding\",\"cos\",\"cosh\",\"count\",\"covar_pop\",\"covar_samp\",\"create\",\"cross\",\"cube\",\"cume_dist\",\"current\",\"current_catalog\",\"current_date\",\"current_default_transform_group\",\"current_path\",\"current_role\",\"current_row\",\"current_schema\",\"current_time\",\"current_timestamp\",\"current_path\",\"current_role\",\"current_transform_group_for_type\",\"current_user\",\"cursor\",\"cycle\",\"date\",\"day\",\"deallocate\",\"dec\",\"decimal\",\"decfloat\",\"declare\",\"default\",\"define\",\"delete\",\"dense_rank\",\"deref\",\"describe\",\"deterministic\",\"disconnect\",\"distinct\",\"double\",\"drop\",\"dynamic\",\"each\",\"element\",\"else\",\"empty\",\"end\",\"end_frame\",\"end_partition\",\"end-exec\",\"equals\",\"escape\",\"every\",\"except\",\"exec\",\"execute\",\"exists\",\"exp\",\"external\",\"extract\",\"false\",\"fetch\",\"filter\",\"first_value\",\"float\",\"floor\",\"for\",\"foreign\",\"frame_row\",\"free\",\"from\",\"full\",\"function\",\"fusion\",\"get\",\"global\",\"grant\",\"group\",\"grouping\",\"groups\",\"having\",\"hold\",\"hour\",\"identity\",\"in\",\"indicator\",\"initial\",\"inner\",\"inout\",\"insensitive\",\"insert\",\"int\",\"integer\",\"intersect\",\"intersection\",\"interval\",\"into\",\"is\",\"join\",\"json_array\",\"json_arrayagg\",\"json_exists\",\"json_object\",\"json_objectagg\",\"json_query\",\"json_table\",\"json_table_primitive\",\"json_value\",\"lag\",\"language\",\"large\",\"last_value\",\"lateral\",\"lead\",\"leading\",\"left\",\"like\",\"like_regex\",\"listagg\",\"ln\",\"local\",\"localtime\",\"localtimestamp\",\"log\",\"log10\",\"lower\",\"match\",\"match_number\",\"match_recognize\",\"matches\",\"max\",\"member\",\"merge\",\"method\",\"min\",\"minute\",\"mod\",\"modifies\",\"module\",\"month\",\"multiset\",\"national\",\"natural\",\"nchar\",\"nclob\",\"new\",\"no\",\"none\",\"normalize\",\"not\",\"nth_value\",\"ntile\",\"null\",\"nullif\",\"numeric\",\"octet_length\",\"occurrences_regex\",\"of\",\"offset\",\"old\",\"omit\",\"on\",\"one\",\"only\",\"open\",\"or\",\"order\",\"out\",\"outer\",\"over\",\"overlaps\",\"overlay\",\"parameter\",\"partition\",\"pattern\",\"per\",\"percent\",\"percent_rank\",\"percentile_cont\",\"percentile_disc\",\"period\",\"portion\",\"position\",\"position_regex\",\"power\",\"precedes\",\"precision\",\"prepare\",\"primary\",\"procedure\",\"ptf\",\"range\",\"rank\",\"reads\",\"real\",\"recursive\",\"ref\",\"references\",\"referencing\",\"regr_avgx\",\"regr_avgy\",\"regr_count\",\"regr_intercept\",\"regr_r2\",\"regr_slope\",\"regr_sxx\",\"regr_sxy\",\"regr_syy\",\"release\",\"result\",\"return\",\"returns\",\"revoke\",\"right\",\"rollback\",\"rollup\",\"row\",\"row_number\",\"rows\",\"running\",\"savepoint\",\"scope\",\"scroll\",\"search\",\"second\",\"seek\",\"select\",\"sensitive\",\"session_user\",\"set\",\"show\",\"similar\",\"sin\",\"sinh\",\"skip\",\"smallint\",\"some\",\"specific\",\"specifictype\",\"sql\",\"sqlexception\",\"sqlstate\",\"sqlwarning\",\"sqrt\",\"start\",\"static\",\"stddev_pop\",\"stddev_samp\",\"submultiset\",\"subset\",\"substring\",\"substring_regex\",\"succeeds\",\"sum\",\"symmetric\",\"system\",\"system_time\",\"system_user\",\"table\",\"tablesample\",\"tan\",\"tanh\",\"then\",\"time\",\"timestamp\",\"timezone_hour\",\"timezone_minute\",\"to\",\"trailing\",\"translate\",\"translate_regex\",\"translation\",\"treat\",\"trigger\",\"trim\",\"trim_array\",\"true\",\"truncate\",\"uescape\",\"union\",\"unique\",\"unknown\",\"unnest\",\"update\",\"upper\",\"user\",\"using\",\"value\",\"values\",\"value_of\",\"var_pop\",\"var_samp\",\"varbinary\",\"varchar\",\"varying\",\"versioning\",\"when\",\"whenever\",\"where\",\"width_bucket\",\"window\",\"with\",\"within\",\"without\",\"year\",\"add\",\"asc\",\"collation\",\"desc\",\"final\",\"first\",\"last\",\"view\"].filter((e=>!i.includes(e))),l={\nbegin:r.concat(/\\b/,r.either(...o),/\\s*\\(/),relevance:0,keywords:{built_in:o}}\n;return{name:\"SQL\",case_insensitive:!0,illegal:/[{}]|<\\//,keywords:{\n$pattern:/\\b[\\w\\.]+/,keyword:((e,{exceptions:r,when:t}={})=>{const n=t\n;return r=r||[],e.map((e=>e.match(/\\|\\d+$/)||r.includes(e)?e:n(e)?e+\"|0\":e))\n})(c,{when:e=>e.length<3}),literal:n,type:a,\nbuilt_in:[\"current_catalog\",\"current_date\",\"current_default_transform_group\",\"current_path\",\"current_role\",\"current_schema\",\"current_transform_group_for_type\",\"current_user\",\"session_user\",\"system_time\",\"system_user\",\"current_time\",\"localtime\",\"current_timestamp\",\"localtimestamp\"]\n},contains:[{begin:r.either(...s),relevance:0,keywords:{$pattern:/[\\w\\.]+/,\nkeyword:c.concat(s),literal:n,type:a}},{className:\"type\",\nbegin:r.either(\"double precision\",\"large object\",\"with timezone\",\"without timezone\")\n},l,{className:\"variable\",begin:/@[a-z0-9][a-z0-9_]*/},{className:\"string\",\nvariants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/\"/,end:/\"/,\ncontains:[{begin:/\"\"/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,t,{\nclassName:\"operator\",begin:/[-+*/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,\nrelevance:0}]}}})();hljs.registerLanguage(\"sql\",e)})();/*! `vbnet` grammar compiled for Highlight.js 11.10.0 */\n(()=>{var e=(()=>{\"use strict\";return e=>{\nconst n=e.regex,t=/\\d{1,2}\\/\\d{1,2}\\/\\d{4}/,a=/\\d{4}-\\d{1,2}-\\d{1,2}/,i=/(\\d|1[012])(:\\d+){0,2} *(AM|PM)/,s=/\\d{1,2}(:\\d{1,2}){1,2}/,r={\nclassName:\"literal\",variants:[{begin:n.concat(/# */,n.either(a,t),/ *#/)},{\nbegin:n.concat(/# */,s,/ *#/)},{begin:n.concat(/# */,i,/ *#/)},{\nbegin:n.concat(/# */,n.either(a,t),/ +/,n.either(i,s),/ *#/)}]\n},l=e.COMMENT(/'''/,/$/,{contains:[{className:\"doctag\",begin:/<\\/?/,end:/>/}]\n}),o=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\\t ]|^)REM(?=\\s)/}]})\n;return{name:\"Visual Basic .NET\",aliases:[\"vb\"],case_insensitive:!0,\nclassNameAliases:{label:\"symbol\"},keywords:{\nkeyword:\"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield\",\nbuilt_in:\"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort\",\ntype:\"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort\",\nliteral:\"true false nothing\"},\nillegal:\"//|\\\\{|\\\\}|endif|gosub|variant|wend|^\\\\$ \",contains:[{\nclassName:\"string\",begin:/\"(\"\"|[^/n])\"C\\b/},{className:\"string\",begin:/\"/,\nend:/\"/,illegal:/\\n/,contains:[{begin:/\"\"/}]},r,{className:\"number\",relevance:0,\nvariants:[{begin:/\\b\\d[\\d_]*((\\.[\\d_]+(E[+-]?[\\d_]+)?)|(E[+-]?[\\d_]+))[RFD@!#]?/\n},{begin:/\\b\\d[\\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\\dA-F_]+((U?[SIL])|[%&])?/},{\nbegin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{\nclassName:\"label\",begin:/^\\w+:/},l,o,{className:\"meta\",\nbegin:/[\\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\\b/,\nend:/$/,keywords:{\nkeyword:\"const disable else elseif enable end externalsource if region then\"},\ncontains:[o]}]}}})();hljs.registerLanguage(\"vbnet\",e)})();/*! `xml` grammar compiled for Highlight.js 11.10.0 */\n(()=>{var e=(()=>{\"use strict\";return e=>{\nconst a=e.regex,n=a.concat(/[\\p{L}_]/u,a.optional(/[\\p{L}0-9_.-]*:/u),/[\\p{L}0-9_.-]*/u),s={\nclassName:\"symbol\",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\\s/,\ncontains:[{className:\"keyword\",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\\n/}]\n},i=e.inherit(t,{begin:/\\(/,end:/\\)/}),c=e.inherit(e.APOS_STRING_MODE,{\nclassName:\"string\"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:\"string\"}),r={\nendsWithParent:!0,illegal:/`]+/}]}]}]};return{\nname:\"HTML, XML\",\naliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xjb\",\"xsd\",\"xsl\",\"plist\",\"wsf\",\"svg\"],\ncase_insensitive:!0,unicodeRegex:!0,contains:[{className:\"meta\",begin://,relevance:10,contains:[t,l,c,i,{begin:/\\[/,end:/\\]/,contains:[{\nclassName:\"meta\",begin://,contains:[t,i,l,c]}]}]\n},e.COMMENT(//,{relevance:10}),{begin://,\nrelevance:10},s,{className:\"meta\",end:/\\?>/,variants:[{begin:/<\\?xml/,\nrelevance:10,contains:[l]},{begin:/<\\?[a-z][a-z0-9]+/}]},{className:\"tag\",\nbegin:/)/,end:/>/,keywords:{name:\"style\"},contains:[r],starts:{\nend:/<\\/style>/,returnEnd:!0,subLanguage:[\"css\",\"xml\"]}},{className:\"tag\",\nbegin:/)/,end:/>/,keywords:{name:\"script\"},contains:[r],starts:{\nend:/<\\/script>/,returnEnd:!0,subLanguage:[\"javascript\",\"handlebars\",\"xml\"]}},{\nclassName:\"tag\",begin:/<>|<\\/>/},{className:\"tag\",\nbegin:a.concat(//,/>/,/\\s/)))),\nend:/\\/?>/,contains:[{className:\"name\",begin:n,relevance:0,starts:r}]},{\nclassName:\"tag\",begin:a.concat(/<\\//,a.lookahead(a.concat(n,/>/))),contains:[{\nclassName:\"name\",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}\n})();hljs.registerLanguage(\"xml\",e)})();","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export class Browser {\n\tstatic ToFormData(data) {\n\t\tconst formData = new FormData();\n\n\t\tfor (const key in data) {\n\t\t\tif (data[key] != null) {\n\t\t\t\tif (Array.isArray(data[key])) {\n\t\t\t\t\tif (data[key].length) {\n\t\t\t\t\t\tfor (const value of data[key]) {\n\t\t\t\t\t\t\tformData.append(key, value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tformData.append(key, data[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn formData;\n\t}\n\n\tstatic Refresh() {\n\t\tlocation.href = location.href;\n\t}\n\n\tstatic ResolveRelativeURL(url, includeCulture) {\n\t\turl = url.replace(\"~//\", \"~/\");\n\n\t\tlet tildaReplacement = document.documentElement.dataset.serverPath || location.origin;\n\n\t\tif (tildaReplacement.endsWith(\"/\")) { tildaReplacement = tildaReplacement.substring(0, tildaReplacement.length - 1); }\n\t\tif (includeCulture && document.documentElement.dataset.culture) { tildaReplacement += `/${document.documentElement.dataset.culture}`; }\n\n\t\tif (url.startsWith(\"~\")) {\n\t\t\treturn url.replace(\"~\", tildaReplacement);\n\t\t} else if (url.startsWith(\".\")) {\n\t\t\treturn new URL(url, location).toString();\n\t\t} else {\n\t\t\treturn url;\n\t\t}\n\t}\n\n\tstatic GetRouteID = (url) => parseInt(this.GetPaths(url).find(x => !isNaN(parseInt(x))));\n\n\tstatic SetTestFunction(fn) {\n\t\tconst existing = document.querySelector(\".btn--test\");\n\n\t\tif (!existing) {\n\t\t\tdocument.body.appendChild(document.createElementWithContents(\"chip-button\", \"Test Button\", {\n\t\t\t\tonclick: fn,\n\t\t\t\tvariation: \"danger\",\n\t\t\t\tclassName: \"btn--test\"\n\t\t\t}));\n\t\t} else {\n\t\t\texisting.onclick = fn;\n\t\t}\n\t}\n\n\tstatic SubmitSSO(clientID, email) {\n\t\tconst form = document.createElementWithContents(\"form\",\n\t\t\t``, {\n\t\t\tid: \"frmSSOAgent\",\n\t\t\tname: \"frmSSOAgent\",\n\t\t\tmethod: \"post\",\n\t\t\ttarget: \"_self\",\n\t\t\taction: \"https://login.microsoftonline.com/chipside.onmicrosoft.com/oauth2/v2.0/authorize\"\n\t\t});\n\n\t\tdocument.body.appendChild(form);\n\t\tform.submit();\n\t}\n\n\tstatic SetFlavour(flavour, local) {\n\t\tif (!local) { localStorage.setItem(\"flavour\", flavour?.toLowerCase()); }\n\n\t\tconst target = document.querySelector(\"head\");\n\t\tdocument.getElementById(\"lnkFlavour\")?.remove();\n\n\t\tif (flavour !== \"default\" && target) {\n\t\t\tconst flavourURL = this.ResolveRelativeURL(`~/css/flavours/${flavour}.css`);\n\n\t\t\tif (!document.querySelector(`#lnkFlavour[href='${flavourURL}']`)) {\n\t\t\t\tdocument.getElementById(\"lnkFlavour\")?.remove();\n\n\t\t\t\ttarget.appendChild(Object.assign(document.createElement(\"link\"), {\n\t\t\t\t\trel: \"stylesheet\",\n\t\t\t\t\thref: flavourURL,\n\t\t\t\t\tid: \"lnkFlavour\"\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\n\t\t_setFlavourLocalization(flavour);\n\t}\n\n\tstatic PrintBlob(blob) {\n\t\tconst iframe = document.createElementWithContents(\"iframe\", null, {\n\t\t\tsrc: URL.createObjectURL(blob),\n\t\t\tclassName: \"d-none\",\n\t\t\tonload: () => iframe.contentWindow.print()\n\t\t});\n\n\t\tfunction cleanUp() {\n\t\t\tiframe.remove();\n\t\t\twindow.removeEventListener(\"focus\", cleanUp);\n\t\t}\n\n\t\twindow.addEventListener(\"focus\", cleanUp);\n\n\t\tdocument.body.appendChild(iframe);\n\t}\n\n\tstatic GetThemeColour = () => document.documentElement.dataset.colour?.toLowerCase() ?? \"blue\";\n\n\tstatic GetThemeColours = (includeCorporate) => [\"blue\", \"red\", \"orange\", \"purple\", \"pink\", \"amber\", \"cyan\", \"green\", \"brown\", \"teal\", \"crimson\", \"olive\", \"gold\", \"mauve\", \"steel\", \"taupe\"]\n\t\t.concat(includeCorporate ? [\"chipside\", \"oppidatim\"] : []);\n\n\tstatic GetFlavour() { return (localStorage.getItem(\"flavour\") ?? \"default\").toLowerCase(); }\n\n\tstatic SetColourMode(theme, local) {\n\t\tif (theme.toLowerCase() !== \"system\") {\n\t\t\tdocument.documentElement.dataset.theme = theme;\n\n\t\t\tif (!local) {\n\t\t\t\tlocalStorage.setItem(\"site-theme\", theme);\n\t\t\t}\n\t\t} else {\n\t\t\tdocument.documentElement.removeAttribute(\"data-theme\");\n\n\t\t\tif (!local) {\n\t\t\t\tlocalStorage.removeItem(\"site-theme\");\n\t\t\t}\n\t\t}\n\n\t\tRazor.InvokeThemeChange();\n\t}\n\n\tstatic ToggleColourMode(local) {\n\t\tthis.SetColourMode(document.documentElement.dataset.theme === \"dark\" ? \"light\" : \"dark\", local);\n\t}\n\n\tstatic TryParseJSON(value) {\n\t\tlet obj = value;\n\n\t\ttry {\n\t\t\tobj = JSON.parse(value);\n\t\t} catch {\n\t\t\t// *twiddle thumbs*\n\t\t}\n\n\t\treturn obj;\n\t}\n\n\tstatic GetPaths = (url = \"\") => new URL(url || document.URL).pathname.toLowerCase().split(\"/\").filter(x => x?.trim() !== \"\");\n\n\tstatic GetCookie = name => `; ${document.cookie}`.split(`; ${name}=`).pop().split(\";\").shift();\n\n\tstatic AddMonths(date, amount) {\n\t\tdate.setDate(1);\n\t\tdate.setMonth(date.getMonth() + amount);\n\t\tdate.setDate(Math.min(date.getDate(), this.#GetDaysInMonth(date.getFullYear(), date.getMonth())));\n\n\t\treturn date;\n\t}\n\n\tstatic AddYears(date, amount) {\n\t\tdate.setFullYear(date.getFullYear() + amount);\n\n\t\treturn date;\n\t}\n\n\tstatic #GetDaysInMonth = (year, month) => [31, (this.#IsLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n\tstatic #IsLeapYear = year => (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));\n\n\tstatic #tryShowNotifications(title, options) {\n\t\tnavigator.serviceWorker.ready.then(reg => {\n\t\t\treg.getNotifications().then(notifications => {\n\t\t\t\tif (!notifications.find(x => x.tag === options.tag)) {\n\t\t\t\t\treg.showNotification(title, options)\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tstatic ShowNotification(title, options = {}) {\n\t\toptions = {\n\t\t\ticon: \"/favicon.ico\",\n\t\t\t...options\n\t\t};\n\n\t\tif (Notification.permission === \"granted\") {\n\t\t\tthis.#tryShowNotifications(title, options);\n\t\t} else if (Notification.permission !== \"denied\") {\n\t\t\tNotification.requestPermission().then(permission => {\n\t\t\t\tif (permission === \"granted\") {\n\t\t\t\t\tthis.#tryShowNotifications(title, options);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t}\n\n\tstatic GetURLParameters = parameter => new URLSearchParams(location.search).getAll(parameter);\n\tstatic GetURLParameter = parameter => this.GetURLParameters(parameter).at(0);\n\n\tstatic SetURLParameters(parameters, ignoreIdentical) {\n\t\tconst params = new URLSearchParams(location.search);\n\n\t\tif (parameters) {\n\t\t\tObject.keys(parameters).forEach(key => {\n\t\t\t\tconst value = parameters[key];\n\n\t\t\t\tif (value == null || (Array.isArray(value) && !value.length)) {\n\t\t\t\t\tparams.delete(key);\n\t\t\t\t} else {\n\t\t\t\t\tconst all = params.getAll(key).map(String);\n\n\t\t\t\t\tif (Array.isArray(value)) {\n\t\t\t\t\t\tvalue.filter(x => !all.includes(x.toString())).forEach(x => params.append(key, x));\n\t\t\t\t\t} else if (!all.includes(value.toString())) {\n\t\t\t\t\t\tparams.set(key, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tconst newValue = params.toString(),\n\t\t\t\tnewUrl = `${location.pathname}${newValue !== '' ? '?' + newValue : ''}`;\n\n\t\t\tif (newUrl === location.pathname + location.search && ignoreIdentical) { return false; }\n\n\t\t\tlocation.href = newUrl;\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tstatic SetURLParameter = (name, value, ignoreIdentical) => this.SetURLParameters({ [name]: value }, ignoreIdentical);\n\n\tstatic ListenForShortcut(key, modifiers, callback, ignoreInputs) {\n\t\tif (typeof modifiers === \"string\") {\n\t\t\tmodifiers = [modifiers];\n\t\t}\n\n\t\tif (typeof callback !== \"function\") { return; }\n\n\t\twindow.addEventListener(\"keydown\", event => {\n\t\t\tif (ignoreInputs && (event.target ?? event.relatedTarget)?.closest(\"input, textarea\")) { return; }\n\n\t\t\tif (event.key.toUpperCase() === key.toUpperCase() && !document.querySelector(\".modal.show\")) {\n\t\t\t\tif (modifiers.length) {\n\t\t\t\t\tconst modifierChecker = {\n\t\t\t\t\t\tCTRL: event.ctrlKey,\n\t\t\t\t\t\tALT: event.altKey,\n\t\t\t\t\t\tSHIFT: event.shiftKey,\n\t\t\t\t\t\tMETA: event.metaKey\n\t\t\t\t\t}\n\n\t\t\t\t\tif (modifierChecker && !modifiers.find(x => !modifierChecker[x])) {\n\t\t\t\t\t\tconst keys = Object.keys(modifierChecker);\n\n\t\t\t\t\t\tif (keys && !keys.filter(x => !modifiers.includes(x)).find(x => !!modifierChecker[x])) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tcallback(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tcallback(event);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}","import { Browser } from \"../core/browser\";\r\n\r\nexport class Dialog {\r\n\tstatic OnOpened = null;\r\n\r\n\tstatic DefaultOptions = {\r\n\t\tNegativeText: \"No\",\r\n\t\tAffirmativeText: \"Yes\",\r\n\t\tButtonText: \"Close\",\r\n\t\tSize: \"md\",\r\n\t\tIcon: \"\",\r\n\t\tCentreHeader: false,\r\n\t\tBackdropDismiss: true\r\n\t}\r\n\r\n\tstatic async Show(title, message, options) {\r\n\t\treturn this.Open({\r\n\t\t\tTitle: title,\r\n\t\t\tMessage: message,\r\n\t\t\tTheme: \"APPLICATION\",\r\n\t\t\tNegativeText: \"\",\r\n\t\t\tAffirmativeText: \"Ok\",\r\n\t\t\tButtonSide: Browser.GetFlavour() !== \"gov\" ? \"RIGHT\" : \"LEFT\",\r\n\t\t\t...options\r\n\t\t});\r\n\t}\r\n\r\n\tstatic async ShowError(title, message, error, options) {\r\n\t\tif (error) {\r\n\t\t\tconsole.error(error);\r\n\t\t}\r\n\r\n\t\tdocument.querySelector(\".dialog-box-error\")?.closest(\"dialog\")?.close();\r\n\r\n\t\treturn this.Open({\r\n\t\t\tTitle: title,\r\n\t\t\tMessage: message,\r\n\t\t\tIcon: Browser.GetFlavour() !== \"gov\" ? \"fas fa-exclamation-circle\" : \"\",\r\n\t\t\tCentreHeader: Browser.GetFlavour() !== \"gov\",\r\n\t\t\tButtonSide: Browser.GetFlavour() !== \"gov\" ? \"RIGHT\" : \"LEFT\",\r\n\t\t\tTheme: \"ERROR\", ...options\r\n\t\t});\r\n\t}\r\n\r\n\tstatic async ShowImage(src, options) {\r\n\t\treturn this.Open({\r\n\t\t\tTheme: \"IMAGE\",\r\n\t\t\tCentre: true,\r\n\t\t\tCustomHTML: document.createElementWithContents(\"img\", null, { src }).outerHTML, ...options\r\n\t\t});\r\n\t}\r\n\r\n\tstatic async ShowWarning(title, message, options) {\r\n\t\treturn this.Open({\r\n\t\t\tTitle: title,\r\n\t\t\tMessage: message,\r\n\t\t\tIcon: Browser.GetFlavour() !== \"gov\" ? \"fas fa-exclamation-triangle\" : \"\",\r\n\t\t\tButtonSide: Browser.GetFlavour() !== \"gov\" ? \"RIGHT\" : \"LEFT\",\r\n\t\t\tCentreHeader: Browser.GetFlavour() !== \"gov\",\r\n\t\t\tTheme: \"WARNING\", ...options\r\n\t\t});\r\n\t}\r\n\r\n\tstatic async ShowSuccess(title, message, options) {\r\n\t\treturn this.Open({\r\n\t\t\tTitle: title,\r\n\t\t\tMessage: message,\r\n\t\t\tIcon: Browser.GetFlavour() !== \"gov\" ? \"fas fa-check-circle\" : \"\",\r\n\t\t\tButtonSide: Browser.GetFlavour() !== \"gov\" ? \"RIGHT\" : \"LEFT\",\r\n\t\t\tCentreHeader: Browser.GetFlavour() !== \"gov\",\r\n\t\t\tTheme: \"SUCCESS\", ...options\r\n\t\t});\r\n\t}\r\n\r\n\tstatic async ShowConfirmation(title, message, options) {\r\n\t\treturn this.Open({\r\n\t\t\tTitle: title,\r\n\t\t\tMessage: message,\r\n\t\t\tCentreHeader: Browser.GetFlavour() !== \"gov\",\r\n\t\t\tButtonSide: Browser.GetFlavour() !== \"gov\" ? \"RIGHT\" : \"LEFT\",\r\n\t\t\tIcon: Browser.GetFlavour() !== \"gov\" ? \"fas fa-question-circle\" : \"\",\r\n\t\t\tTheme: \"CONFIRM\", ...options\r\n\t\t});\r\n\t}\r\n\r\n\tstatic async ShowInput(title, message, type, options) {\r\n\t\treturn this.Open({\r\n\t\t\tTitle: title,\r\n\t\t\tButtonSide: Browser.GetFlavour() !== \"gov\" ? \"RIGHT\" : \"LEFT\",\r\n\t\t\tMessage: message,\r\n\t\t\tTheme: \"INPUT\",\r\n\t\t\tNegativeText: \"Cancel\",\r\n\t\t\tAffirmativeText: \"Ok\",\r\n\t\t\tInputType: type, ...options\r\n\t\t});\r\n\t}\r\n\r\n\tstatic async ShowTextBox(title, message, options) {\r\n\t\treturn await this.ShowInput(title, message, \"text\", options);\r\n\t}\r\n\r\n\tstatic async ShowDatePicker(title, message, options) {\r\n\t\treturn await this.ShowInput(title, message, \"date\", options);\r\n\t}\r\n\r\n\tstatic async ShowTimePicker(title, message, options) {\r\n\t\treturn await this.ShowInput(title, message, \"time\", options);\r\n\t}\r\n\r\n\tstatic async ShowPassword(title, message, options) {\r\n\t\treturn await this.ShowInput(title, message, \"password\", options);\r\n\t}\r\n\r\n\tstatic async ShowCustom(title, message, html, options) {\r\n\t\treturn this.Open({\r\n\t\t\tTitle: title,\r\n\t\t\tMessage: message,\r\n\t\t\tCustomHTML: html,\r\n\t\t\tTheme: \"SELECTION\",\r\n\t\t\tSize: \"xl\",\r\n\t\t\tButtonSide: Browser.GetFlavour() !== \"gov\" ? \"RIGHT\" : \"LEFT\",\r\n\t\t\tAffirmativeText: \"Select\",\r\n\t\t\tNegativeText: \"Cancel\", ...options\r\n\t\t});\r\n\t}\r\n\r\n\tstatic async ShowPartialView(title, message, viewName, viewOptions, options) {\r\n\t\tconst html = await Razor.GetPartialView(viewName, viewOptions);\r\n\r\n\t\treturn await this.ShowCustom(title, message, html, options);\r\n\t}\r\n\r\n\tstatic #GetValue(options, event) {\r\n\t\tswitch (options.Theme.toUpperCase()) {\r\n\t\t\tcase \"SELECTION\": {\r\n\t\t\t\tconst row = document.querySelector(\".dialog-custom table tr.active\") || event?.detail.row;\r\n\r\n\t\t\t\tif (row) {\r\n\t\t\t\t\treturn row.dataset.secondaryIdentifier ? `${row.dataset.identifier}|${row.dataset.secondaryIdentifier}` : row.dataset.identifier;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tcase \"INPUT\":\r\n\t\t\t\treturn document.querySelector(\".dialog-input\")?.value;\r\n\t\t\tdefault:\r\n\t\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\r\n\tstatic #RefreshEvents(dialog, resolve, options) {\r\n\t\tconst input = dialog.querySelector(\".dialog-input\");\r\n\r\n\t\tif (input) {\r\n\t\t\tObject.assign(input, options.InputAttributes,\r\n\t\t\t\t{\r\n\t\t\t\t\tvalue: options.DefaultValue || \"\"\r\n\t\t\t\t});\r\n\r\n\t\t\tif (options.DefaultValue && input.nodeName === \"CHIP-INPUT\") {\r\n\t\t\t\tinput.onparsed = () => input.select();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t[...new Set(dialog.querySelectorAll(\".dialog-input, chip-textarea\"))].forEach(x => x.onkeyup = ev => {\r\n\t\t\tif (ev.key === \"Enter\" && (ev.ctrlKey || (!options.Multiline && ![\"CHIP-TEXTAREA\", \"TEXTAREA\"].includes(x.nodeName))) && x.value.trim() !== \"\" && options.OnCheckValid?.(dialog) !== false) {\r\n\t\t\t\tresolve(x.value);\r\n\t\t\t\tdialog.closest(\"dialog\")?.close();\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\tconst objectSearchbar = dialog.querySelector(\".object-selection-search\"),\r\n\t\t\tentryCount = dialog.querySelector(\".entry-caption\") ?? {};\r\n\r\n\t\tlet table = null, listView = null;\r\n\r\n\t\tobjectSearchbar?.focus();\r\n\r\n\t\tfunction refreshResolveEvents() {\r\n\t\t\tdialog.querySelectorAll(\".dialog__selectable-option\").forEach(x => x.onclick = () => {\r\n\t\t\t\tresolve(x.dataset.secondaryIdentifier ? `${x.dataset.identifier}|${x.dataset.secondaryIdentifier}` : x.dataset.identifier);\r\n\t\t\t\tdialog.closest(\"dialog\")?.close();\r\n\t\t\t});\r\n\r\n\t\t\ttable = dialog.querySelector(\".dialog-custom table\");\r\n\t\t\tlistView = dialog.querySelector(\".list-view\");\r\n\r\n\t\t\t// Close the dialog and submit our value when a row has been picked\r\n\t\t\ttable?.addEventListener(\"rowpicked\", ev => {\r\n\t\t\t\tconst row = dialog.querySelector(\".dialog-custom table tr.active\") || ev?.detail.row;\r\n\r\n\t\t\t\tif (row) {\r\n\t\t\t\t\tresolve(row.dataset.secondaryIdentifier ? `${row.dataset.identifier}|${row.dataset.secondaryIdentifier}` : row.dataset.identifier);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresolve(null);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdialog.closest(\"dialog\")?.close();\r\n\t\t\t});\r\n\r\n\t\t\tlistView?.addEventListener(\"click\", ev => {\r\n\t\t\t\tconst element = ev.target.closest(\"[data-identifier]\");\r\n\r\n\t\t\t\tif (element) {\r\n\t\t\t\t\tresolve(element.dataset.secondaryIdentifier ? `${element.dataset.identifier}|${element.dataset.secondaryIdentifier}` : element.dataset.identifier);\r\n\t\t\t\t\tdialog.closest(\"dialog\")?.close();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\trefreshResolveEvents();\r\n\r\n\t\tif (objectSearchbar) {\r\n\t\t\tlet timeout;\r\n\r\n\t\t\tobjectSearchbar.oninput = ev => {\r\n\t\t\t\tif (timeout) {\r\n\t\t\t\t\tclearTimeout(timeout);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttimeout = setTimeout(() => {\r\n\t\t\t\t\tif (options.OnSearch) {\r\n\t\t\t\t\t\tPromise.resolve(options.OnSearch(dialog, ev.target.value)).then(() => refreshResolveEvents());\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlistView?.ListView.Search(ev.target.value);\r\n\r\n\t\t\t\t\t\tif (table) {\r\n\t\t\t\t\t\t\ttable.Table.Search(ev.target.value);\r\n\t\t\t\t\t\t\tentryCount.textContent = `Showing 1-${table.Table.GetVisibleRows().length} of ${table.Table.GetAllRows().length}`;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 500);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\toptions.OnRefreshEvents?.(dialog);\r\n\t}\r\n\r\n\tstatic Close() {\r\n\t\tdocument.querySelectorAll(\"dialog[open]\").forEach(x => x.close());\r\n\t}\r\n\r\n\tstatic Open(options) {\r\n\t\treturn new Promise(resolve => {\r\n\t\t\tconst dialog = this.#RenderDialog({ ...this.DefaultOptions, ...options });\r\n\r\n\t\t\tdialog.querySelectorAll(\".card-footer chip-button\").forEach(btn => btn.onclick = ev => {\r\n\t\t\t\tif (btn.dataset.affirmative === \"true\") {\r\n\t\t\t\t\tif (options.OnCheckValid?.(dialog) === false) {\r\n\t\t\t\t\t\tev.preventDefault();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresolve(this.#GetValue(options, ev));\r\n\t\t\t\t\t\tdialog.closest(\"dialog\")?.close();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (btn.classList.contains(\"btn--dismiss-dialog\")) {\r\n\t\t\t\t\tif (options.Theme === \"CONFIRM\") {\r\n\t\t\t\t\t\tresolve(btn.dataset.affirmative === \"true\");\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdialog.closest(\"dialog\")?.close();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.#RefreshEvents(dialog, resolve, options);\r\n\r\n\t\t\tif (![\"SELECTION\", \"INPUT\"].includes(options.Theme.toUpperCase())) {\r\n\t\t\t\tdialog.addEventListener(\"hide.bs.modal\", () => resolve());\r\n\t\t\t}\r\n\r\n\t\t\toptions.OnBeforeOpen?.(dialog, resolve);\r\n\t\t\tthis.OpenModal(dialog);\r\n\t\t});\r\n\t}\r\n\r\n\tstatic OpenModal(element) {\r\n\t\tlet focusElement = element.querySelector(\"chip-dropdown, chip-input, chip-textarea, chip-select\") ?? [...element.querySelectorAll(\".modal-footer button\")].at(-1);\r\n\r\n\t\tconst instance = document.createElementWithContents(\"dialog\", element);\r\n\t\tdocument.body.appendChild(instance);\r\n\r\n\t\tinstance.onclose = () => instance.remove();\r\n\t\tinstance.showModal();\r\n\r\n\t\tif (focusElement) {\r\n\t\t\tfocusElement.onparsed = () => focusElement.focus();\r\n\t\t}\r\n\r\n\t\tDialog.OnOpened?.();\r\n\t}\r\n\r\n\tstatic #RenderDialog(options) {\r\n\t\toptions.Appearance ??= options.Theme;\r\n\r\n\t\t// Custom HTML to insert into the dialog\r\n\t\tlet custom = document.createElementWithContents(\"div\", \"\", { className: \"dialog-input-container\" });\r\n\r\n\t\tif (options.Theme.toLowerCase() === \"input\") {\r\n\t\t\tcustom.innerHTML = options.Multiline ? `` : ``;\r\n\t\t}\r\n\r\n\t\tif (options.CustomHTML instanceof Node) { custom.appendChild(options.CustomHTML); }\r\n\t\telse { custom.innerHTML += options.CustomHTML ?? \"\"; }\r\n\r\n\t\tif (options.Scrollable == null) {\r\n\t\t\toptions.Scrollable = options.Size === \"xl\" || !custom.querySelector(\"chip-dropdown, chip-iconpicker, chip-colourpicker\");\r\n\t\t}\r\n\r\n\t\tconst details = {\r\n\t\t\tIcon: options.Icon?.trim() ? `` : \"\",\r\n\t\t\tTitle: options.Title?.toString().trim() ? `
${options.Title}
` : \"\",\r\n\t\t\tMessage: options.Message?.toString().trim() ? `
${options.Message}
` : \"\"\r\n\t\t}\r\n\r\n\t\tlet header = \"\";\r\n\r\n\t\tif (options.Title?.toString().trim() !== \"\" || options.Message?.toString().trim() !== \"\" || [\"SUCCESS\", \"ERROR\", \"WARNING\"].includes(options.Theme.toUpperCase().trim())) {\r\n\t\t\theader =\r\n\t\t\t\t`
\r\n\t\t\t\t\t\t${details.Icon}\r\n ${details.Title}\r\n ${details.Message}\r\n
`.trim();\r\n\t\t}\r\n\r\n\t\tconst dialog = document.createElementWithContents(\"div\",\r\n\t\t\t`\r\n
\r\n ${options.Theme.toLowerCase() !== \"image\" ?\r\n\t\t\t\t\t`\r\n
\r\n ${header}\r\n
${custom.outerHTML}`\r\n\t\t\t\t\t: `
${options.CustomHTML ?? \"\"}
`}
\r\n `.trim(), {\r\n\t\t\tclassName: \"dialog\"\r\n\t\t});\r\n\r\n\t\tdialog.classList.add(`dialog-box-${options.Appearance.toLowerCase().replaceAll(\"_\", \"-\")}`);\r\n\r\n\t\tif (options.Scrollable) { dialog.classList.add(\"dialog-scrollable\") };\r\n\t\tif (options.CentreHeader) { dialog.classList.add(\"dialog-centre-header\"); }\r\n\r\n\r\n\t\t// Footer buttons\r\n\t\tif (options.Theme.toLowerCase() !== \"image\") {\r\n\t\t\tlet footerButtons = `${options.ButtonText}`;\r\n\r\n\t\t\tif (![\"SUCCESS\", \"ERROR\", \"WARNING\"].includes(options.Theme.toUpperCase().trim())) {\r\n\t\t\t\tfooterButtons = `\r\n ${options.NegativeText?.trim() !== \"\" ? `
${options.NegativeText}
` : \"\"}\r\n ${options.AffirmativeText?.trim() !== \"\" ? `
${options.AffirmativeText}
` : \"\"}\r\n `.trim();\r\n\t\t\t}\r\n\r\n\t\t\tdialog.querySelector(\".modal-content\").appendChild(document.createElementWithContents(\"div\", footerButtons, { className: `card-footer ${options.ButtonSide?.toUpperCase() === \"RIGHT\" ? \"ms-auto\" : \"me-auto\"} gx-2 row` }));\r\n\t\t}\r\n\r\n\t\tconst closeCSSSelector = options.Theme.toLowerCase() !== \"image\" ? \".modal-content\" : \"img\";\r\n\r\n\t\tdialog.onmousedown = ev => {\r\n\t\t\tif (options.BackdropDismiss && ev.target && !ev.target.closest?.(closeCSSSelector)) {\r\n\t\t\t\tdialog.onmouseup = event => {\r\n\t\t\t\t\tif (event.target && !event.target.closest?.(closeCSSSelector)) {\r\n\t\t\t\t\t\tdialog.closest(\"dialog\")?.close();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdialog.onmouseup = null;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn dialog;\r\n\t}\r\n}","import { Browser } from \"../core/browser\";\nimport { Dialog } from \"../dialog/dialog\";\n\nlet UnloadInitialized = false;\n\nexport class Ajax {\n\tstatic DefaultOptions = {\n\t\tmethod: \"GET\",\n\t\theaders: {},\n\t\tpreventSlidingExpiration: false,\n\t\tprocessData: true,\n\t\tResponseOverrides: {},\n\t\tLoadTimeout: 2000,\n\t\terror: error => Dialog.ShowError(Localizer.ERROR_TITLE, Localizer.ERROR_MESSAGE, error)\n\t}\n\n\tstatic async #Send(url, options) {\n\t\turl = Browser.ResolveRelativeURL(url);\n\n\t\tlet preventTimeout = false,\n\t\t\tabortController = new AbortController();\n\n\t\ttry {\n\t\t\tconst config = {\n\t\t\t\t...this.DefaultOptions,\n\t\t\t\turl,\n\t\t\t\tqueryParameters: options.queryParameters ?? {},\n\t\t\t\tmethod: options.method,\n\t\t\t\theaders: {\n\t\t\t\t\t'RequestVerificationToken': document.querySelector(\"input[name='__RequestVerificationToken']\")?.value,\n\t\t\t\t\t...options.headers\n\t\t\t\t},\n\t\t\t\tbody: options.body,\n\t\t\t\tsignal: abortController.signal\n\t\t\t};\n\n\t\t\toptions = { ...this.DefaultOptions, ...options };\n\n\t\t\tif (options.preventSlidingExpiration) { config.headers[\"x-prevent-sliding-expiration\"] = true; }\n\n\t\t\tif (options.LoadTimeout) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tif (!preventTimeout) {\n\t\t\t\t\t\tAjax.#ShowThrobber();\n\t\t\t\t\t}\n\t\t\t\t}, options.LoadTimeout);\n\t\t\t}\n\n\t\t\tif (options.OnBeforeSend) {\n\t\t\t\tawait options.OnBeforeSend(config);\n\t\t\t}\n\n\t\t\tif (!(options.body instanceof HTMLFormElement)) {\n\t\t\t\tconst sendAsJSON = config.body?.constructor.name === \"Object\" || Array.isArray(config.body);\n\n\t\t\t\tif (sendAsJSON) {\n\t\t\t\t\tconfig.headers['Content-Type'] = 'application/json';\n\t\t\t\t\tconfig.body = JSON.stringify(config.body);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconfig.body = new FormData(options.body);\n\t\t\t\tconfig.body.delete(\"__RequestVerificationToken\");\n\t\t\t}\n\n\t\t\tconst parsedURL = new URL(config.url, location);\n\t\t\tparsedURL.hash = \"\";\n\n\t\t\tObject.entries(config.queryParameters ?? {}).forEach(([key, value]) => {\n\t\t\t\tif (!Array.isArray(config.queryParameters[key])) {\n\t\t\t\t\tparsedURL.searchParams.set(key, value);\n\t\t\t\t} else {\n\t\t\t\t\tconfig.queryParameters[key].forEach(item => parsedURL.searchParams.append(key, item));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (options.OnCheckValid?.(config) !== false) {\n\t\t\t\tconst fetchResponse = await fetch(parsedURL.toString(), config),\n\t\t\t\t\t{ headers, ok, redirected, status, statusText, type } = fetchResponse;\n\n\t\t\t\tconst content = options.processData ? await fetchResponse.text() : \"\";\n\n\t\t\t\tconst response = {\n\t\t\t\t\tcontent,\n\t\t\t\t\tblob: () => fetchResponse.blob(),\n\t\t\t\t\tjson: () => fetchResponse.json(),\n\t\t\t\t\tbody: options.processData ? Browser.TryParseJSON(content) : fetchResponse.body,\n\t\t\t\t\turl: fetchResponse.url,\n\t\t\t\t\theaders, ok, redirected, status, statusText, type\n\t\t\t\t};\n\n\t\t\t\toptions.OnComplete?.(response);\n\t\t\t\tpreventTimeout = true;\n\n\t\t\t\tAjax.HandleResponse(response, options.success);\n\n\t\t\t\treturn response;\n\t\t\t} else {\n\t\t\t\tAjax.#HideThrobber();\n\t\t\t\tpreventTimeout = true;\n\n\t\t\t\toptions.OnComplete?.();\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tAjax.#HideThrobber();\n\t\t\tpreventTimeout = true;\n\n\t\t\tif (!UnloadInitialized) {\n\t\t\t\toptions.error?.(error);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic Get = async (url, options) => await this.#Send(url, { ...this.DefaultOptions, ...options, method: \"GET\" });\n\tstatic Post = async (url, options) => await this.#Send(url, { ...this.DefaultOptions, ...options, method: \"POST\" });\n\tstatic Put = async (url, options) => await this.#Send(url, { ...this.DefaultOptions, ...options, method: \"PUT\" });\n\tstatic Delete = async (url, options) => await this.#Send(url, { ...this.DefaultOptions, ...options, method: \"DELETE\" });\n\tstatic Patch = async (url, options) => await this.#Send(url, { ...this.DefaultOptions, ...options, method: \"PATCH\" });\n\n\tstatic HandleResponse(response, overrides = {}) {\n\t\tAjax.#HideThrobber();\n\n\t\toverrides = { ...this.DefaultOptions.ResponseOverrides, ...overrides };\n\t\toverrides.any?.(response);\n\n\t\tconst func = response.ok ? overrides.ok : overrides[response.status];\n\n\t\tif (typeof func !== \"function\") {\n\t\t\tswitch (response.status) {\n\t\t\t\tcase 400:\n\t\t\t\t\tconsole.log(response);\n\t\t\t\t\treturn Dialog.ShowError(Localizer.ERROR_TITLE, Localizer.BAD_REQUEST);\n\n\t\t\t\tcase 404:\n\t\t\t\t\tconsole.log(response);\n\t\t\t\t\treturn Dialog.ShowError(Localizer.ERROR_TITLE, Localizer.NOT_FOUND);\n\t\t\t\tcase 403: return Dialog.ShowError(Localizer.ACCESS_DENIED_TITLE, Localizer.ACCESS_DENIED);\n\t\t\t\tcase 500: return Dialog.ShowError(Localizer.ERROR_TITLE, Localizer.ERROR_MESSAGE);\n\n\t\t\t\tdefault:\n\t\t\t\t\tif (response.ok && response.redirected) {\n\t\t\t\t\t\tlocation.href = response.url;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} else {\n\t\t\treturn func(response);\n\t\t}\n\t}\n\n\tstatic #ShowThrobber() {\n\t\tdocument.body.classList.add(\"blur\");\n\n\t\tdocument.body.appendChild(\n\t\t\tdocument.createElementWithContents(\"div\", \"
\", { className: \"ajax-throbber\" })\n\t\t);\n\t}\n\n\tstatic #HideThrobber() {\n\t\tdocument.body.removeClass(\"blur\");\n\t\tdocument.querySelector(\".ajax-throbber\")?.remove();\n\t}\n}\n\nwindow.addEventListener(\"beforeunload\", () => UnloadInitialized = true);","export class Toast {\n\tstatic async ShowSuccess(title, message, options) {\n\t\treturn this.#Open(\"SUCCESS\", {\n\t\t\tTitle: title,\n\t\t\tMessage: message,\n\t\t\tIcon: \"fas fa-check\", ...options\n\t\t});\n\t}\n\n\tstatic async ShowWarning(title, message, options) {\n\t\treturn this.#Open(\"WARNING\", {\n\t\t\tTitle: title,\n\t\t\tMessage: message,\n\t\t\tIcon: \"fas fa-exclamation-triangle\", ...options\n\t\t});\n\t}\n\n\tstatic async ShowInfo(title, message, options) {\n\t\treturn this.#Open(\"INFO\", {\n\t\t\tTitle: title,\n\t\t\tMessage: message,\n\t\t\tIcon: \"fas fa-info-circle\", ...options\n\t\t});\n\t}\n\n\tstatic async ShowError(title, message, options) {\n\t\treturn this.#Open(\"ERROR\", {\n\t\t\tTitle: title,\n\t\t\tMessage: message,\n\t\t\tIcon: \"fas fa-times-octagon\", ...options\n\t\t});\n\t}\n\n\tstatic #RenderToast(type, options) {\n\t\tlet message = options.Message ?? \"\";\n\n\t\tif (options.Message) {\n\t\t\tmessage = `${message}`;\n\t\t}\n\n\t\tconst toast = document.createElementWithContents(\"div\", `\n
\n
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
${options.Title}${message}
\n\t\t\t\t\t\t
\n
\n
`).firstElementChild;\n\n\t\ttoast.querySelector(\"chip-button\").onclick = () => this.CloseToast(toast);\n\n\t\treturn toast;\n\t}\n\n\tstatic CloseToast(toast) {\n\t\ttoast.remove();\n\t}\n\n\tstatic #Open(type, options) {\n\t\tconst toast = this.#RenderToast(type, options);\n\t\tthis.#GetOrCreateContainer()?.appendChild(toast);\n\n\t\tlet timeout = setTimeout(() => Toast.CloseToast(toast), 5000);\n\n\t\ttoast.onmouseenter = () => clearTimeout(timeout);\n\t\ttoast.onmouseleave = () => timeout = setTimeout(() => Toast.CloseToast(toast), 5000);\n\n\t\tsetTimeout(() => {\n\t\t\ttoast.classList.add(\"show\");\n\t\t}, 1);\n\t}\n\n\tstatic #GetOrCreateContainer() {\n\t\tconst toastContainer = document.querySelector(\".toast__wrapper\") ?? document.createElementWithContents(\"div\", \"\", { className: \"toast__wrapper\" });\n\n\t\tif (toastContainer) {\n\t\t\tdocument.body.prepend(toastContainer);\n\t\t}\n\n\t\treturn toastContainer;\n\t}\n}","export class ListView {\n\tconstructor(element) {\n\t\tthis.View = element;\n\n\t\tthis.OnOpenLink = null;\n\t}\n\n\tSearch(query) {\n\t\tconst items = [...this.View.querySelectorAll(\".list-view-item\")];\n\n\t\tif (items.length) {\n\t\t\tconst newSet = items.search(query, \"textContent\", -1);\n\n\t\t\titems.forEach(item => {\n\t\t\t\titem.toggleClass(\"d-none\", !newSet.includes(item) && query.trim() !== \"\");\n\n\t\t\t\tif (item.classList.contains(\"d-none\")) {\n\t\t\t\t\titem.removeClass(\"active\");\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.View.querySelectorAll(\".collapse\").forEach(collapser => {\n\t\t\t\tconst hide = !collapser.querySelector(\".list-view-item:not(.d-none)\");\n\n\t\t\t\tcollapser.toggleClass(\"d-none\", hide);\n\t\t\t\tdocument.querySelector(`[data-bs-target='#${collapser.id}']`)?.toggleClass(\"d-none\", hide);\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic RefreshListViews() {\n\t\tdocument.querySelectorAll(\".list-view\").forEach(x => x.ListView ??= new ListView(x));\n\t}\n}","import { Browser } from \"../core/browser\";\n\nexport class Table {\n\tconstructor(table) {\n\t\tthis.Table = table;\n\t\tthis.Caption = table.parentElement?.nextElementSibling;\n\t\tthis.SelectedCountLabel = this.Caption?.querySelector(\".selected-count\");\n\t\tthis.TableHead = table.querySelector(\"thead\");\n\t\tthis.ForbidMultiSelect = !table.dataset.multiselect;\n\n\t\tthis.DelegateEvents();\n\n\t\tthis.RowSelector = \"tbody tr:not(.d-none)\";\n\t\tthis.DataRowSelector = \"tbody tr:not(.d-none, .table-body-label)\";\n\t\tthis.ValidRowSelector = \"tbody tr:not(.table-body-label)\";\n\t\tthis.HeaderSelector = \"thead th\";\n\n\t\tthis.LastSelectedIndex = -1;\n\t}\n\n\t#OnTableBodyClick(tBody, ev) {\n\t\tconst row = this.GetRowFromEvent(ev, true);\n\n\t\tif (row) {\n\t\t\tif (!row.classList.contains(\"table-body-label\")) {\n\t\t\t\tthis.SelectRow(row, !ev.ctrlKey && !ev.shiftKey, ev.shiftKey);\n\n\t\t\t\tthis.Table.dispatchEvent(new CustomEvent(\"rowclick\", { detail: { row: row } }));\n\t\t\t} else if (tBody.classList.contains(\"collapsed\")) {\n\t\t\t\ttBody.classList.remove(\"collapsed\");\n\t\t\t} else {\n\t\t\t\ttBody.classList.add(\"collapsed\");\n\t\t\t}\n\t\t}\n\t}\n\n\t#OnTableBodyMouseDown(ev) {\n\t\tconst row = this.GetRowFromEvent(ev);\n\n\t\tif (row) {\n\t\t\tif (ev.button === 2 && !row.classList.contains(\"active\")) {\n\t\t\t\tthis.SelectRow(row, !ev.ctrlKey && !ev.shiftKey, ev.shiftKey);\n\t\t\t} else if (ev.button === 1 && !ev.target?.closest(\"a\")) {\n\t\t\t\tif (!row.classList.contains(\"active\")) {\n\t\t\t\t\tthis.SelectRow(row, !ev.ctrlKey && !ev.shiftKey, ev.shiftKey);\n\t\t\t\t}\n\t\t\t\tev.preventDefault(); // Prevent scrolling with middle mouse, can't be done in mouseup event\n\t\t\t}\n\n\t\t\tthis.Table.dispatchEvent(new CustomEvent(\"rowmousedown\", { detail: { row: row } }));\n\t\t}\n\t}\n\n\t#OnTableBodyMouseUp(ev) {\n\t\tconst row = this.GetRowFromEvent(ev);\n\n\t\tif (row) {\n\t\t\tthis.Table.dispatchEvent(new CustomEvent(\"rowmouseup\", { detail: { row: row } }));\n\n\t\t\tif (ev.button === 1 && !ev.target?.closest(\"a\")) {\n\t\t\t\tthis.PickRow(row, \"_blank\");\n\t\t\t\tthis.Table.dispatchEvent(new CustomEvent(\"rowauxclick\", { detail: { row: row } }));\n\t\t\t}\n\t\t}\n\t}\n\n\t#OnTableBodyDblClick(ev) {\n\t\tconst row = this.GetRowFromEvent(ev);\n\n\t\tif (row) {\n\t\t\tthis.OpenRowURL(row, \"_self\");\n\n\t\t\tthis.Table.dispatchEvent(new CustomEvent(\"rowdblclick\", { detail: { row: row } }));\n\t\t\tthis.PickRow(row);\n\t\t}\n\t}\n\n\t#OnTableBodyContextMenu(ev) {\n\t\tthis.Table.dispatchEvent(new CustomEvent(\"rowcontextmenu\", { detail: { row: ev.target.matches(this.DataRowSelector) ? ev.target : ev.target.closest(this.DataRowSelector) } }));\n\t}\n\n\t#OnTableBodyKeyUp(ev) {\n\t\tif (ev.keyCode === 13) {\n\t\t\tconst row = this.GetRowFromEvent(ev);\n\n\t\t\tif (row) {\n\t\t\t\tthis.PickRow(row);\n\t\t\t}\n\t\t}\n\t}\n\n\t#OnTableBodyKeyDown(ev) {\n\t\tswitch (ev.keyCode) {\n\t\t\tcase 40:\n\t\t\t\t// Down arrow\n\t\t\t\tev.preventDefault();\n\t\t\t\tthis.SelectNextRow(ev.shiftKey, !ev.shiftKey);\n\t\t\t\tbreak;\n\t\t\tcase 38:\n\t\t\t\t// Up arrow\n\t\t\t\tev.preventDefault();\n\t\t\t\tthis.SelectPreviousRow(ev.shiftKey, !ev.shiftKey);\n\t\t\t\tbreak;\n\t\t\tcase 65:\n\t\t\t\t// CTRL + A\n\t\t\t\tif (ev.ctrlKey && !this.ForbidMultiSelect) {\n\t\t\t\t\tev.preventDefault();\n\n\t\t\t\t\tthis.Table.querySelectorAll(this.DataRowSelector).forEach(row => row.classList.add(\"active\"));\n\t\t\t\t\tthis.UpdateSelectedCount();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 67:\n\t\t\t\t// CTRL + C\n\t\t\t\tif (ev.ctrlKey) {\n\t\t\t\t\tev.preventDefault();\n\t\t\t\t\tthis.Table.dispatchEvent(new CustomEvent(\"rowscopied\", { detail: { rows: this.GetSelectedRows() } }));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tDelegateEvents() {\n\t\tif (this.Table.classList.contains(\"table-sortable\")) {\n\t\t\tlet timeout,\n\t\t\t\tsortOrder = Browser.GetURLParameter(\"o\") ?? \"\";\n\n\t\t\tthis.TableHead?.addEventListener(\"click\", ev => {\n\t\t\t\tif (timeout) {\n\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t}\n\n\t\t\t\tlet requestedField = ev.target.matches(\"th\") ? ev.target : ev.target.closest(\"th\"),\n\t\t\t\t\trequestedSort = this.GetNextSort(requestedField);\n\n\t\t\t\tlet icon = requestedField.querySelector(\"i\");\n\n\t\t\t\tif (!icon) {\n\t\t\t\t\tconst appended = document.createElement(\"i\");\n\t\t\t\t\trequestedField.firstElementChild.appendChild(appended);\n\n\t\t\t\t\ticon = appended;\n\t\t\t\t}\n\n\t\t\t\tif (icon.classList.contains(\"fa-arrow-down\")) {\n\t\t\t\t\ticon.remove();\n\t\t\t\t} else if (icon.classList.contains(\"fa-arrow-up\")) {\n\t\t\t\t\ticon.className = \"far fa-sm fa-arrow-down ms-2\";\n\t\t\t\t} else {\n\t\t\t\t\ticon.className = \"far fa-sm fa-arrow-up ms-2\";\n\t\t\t\t}\n\n\t\t\t\ttimeout = setTimeout(() => {\n\t\t\t\t\tif (sortOrder !== requestedSort) {\n\t\t\t\t\t\tBrowser.SetURLParameter(\"o\", requestedSort.toLowerCase() || null);\n\t\t\t\t\t}\n\t\t\t\t}, 500);\n\t\t\t});\n\t\t}\n\n\t\tArray.from(this.Table.tBodies).forEach(tBody => {\n\t\t\tObject.assign(tBody, {\n\t\t\t\tonclick: ev => this.#OnTableBodyClick(tBody, ev),\n\t\t\t\tonmousedown: ev => this.#OnTableBodyMouseDown(ev),\n\t\t\t\tonmouseup: ev => this.#OnTableBodyMouseUp(ev),\n\t\t\t\tondblclick: ev => this.#OnTableBodyDblClick(ev),\n\t\t\t\toncontextmenu: ev => this.#OnTableBodyContextMenu(ev),\n\t\t\t\tonkeyup: ev => this.#OnTableBodyKeyUp(ev),\n\t\t\t\tonkeydown: ev => this.#OnTableBodyKeyDown(ev)\n\t\t\t});\n\t\t});\n\t}\n\n\tGetNextSort(header) {\n\t\tlet sort = \"\";\n\t\tconst icon = header.querySelector(\"i\");\n\n\t\tif (!icon) {\n\t\t\tsort = `ASC${header.dataset.field}`;\n\t\t} else if (icon.classList.contains(\"fa-arrow-up\")) {\n\t\t\tsort = `DESC${header.dataset.field}`;\n\t\t}\n\n\t\treturn sort.toLowerCase();\n\t}\n\n\tSortHeader(header) { Browser.SetURLParameter(\"o\", this.GetNextSort(header)) }\n\n\tSortByName(name) {\n\t\tconst existing = Browser.GetURLParameter(\"o\") ?? \"\";\n\n\t\tif (!existing.includes(name)) {\n\t\t\tBrowser.SetURLParameter(\"o\", (name.trim() !== \"\" ? `ASC${name}` : \"\").toLowerCase());\n\t\t} else if (existing.slice(0, 4).toLowerCase() === \"desc\") {\n\t\t\treturn Browser.SetURLParameter(\"o\", null);\n\t\t} else {\n\t\t\treturn Browser.SetURLParameter(\"o\", (name.trim() !== \"\" ? `DESC${name}` : \"\").toLowerCase());\n\t\t}\n\t}\n\n\tOpenRowURL(row, type) {\n\t\tif (row && this.Table.dataset.externalPointer) {\n\t\t\twindow.open(this.Table.dataset.externalPointer.replace(\"{id}\", row.dataset.identifier), type);\n\t\t}\n\t}\n\n\tPickRow(row, openType) {\n\t\tconst rowsSelected = this.GetSelectedRows();\n\n\t\tif (rowsSelected.length && this.Table.dataset.externalPointer) {\n\t\t\tif (rowsSelected.length > 1) {\n\t\t\t\trowsSelected.forEach(x => this.OpenRowURL(x, \"_blank\"));\n\t\t\t} else {\n\t\t\t\tthis.OpenRowURL(rowsSelected[0], openType ?? \"_self\");\n\t\t\t}\n\t\t}\n\n\t\tthis.Table.dispatchEvent(new CustomEvent(\"rowpicked\", { detail: { row: row } }));\n\t}\n\n\tSelectNextRow(isRange, solitary) { this.SelectRow(this.RowAt(this.LastSelectedIndex + 1), solitary, isRange); }\n\tSelectPreviousRow(isRange, solitary) { this.SelectRow(this.RowAt(Math.max(this.LastSelectedIndex - 1, 0)), solitary, isRange); }\n\n\tSelectRow(row, solitary, isRange) {\n\t\tif (row) {\n\t\t\tsolitary = this.ForbidMultiSelect || solitary;\n\t\t\tisRange = !(this.ForbidMultiSelect || !isRange);\n\n\t\t\tif (!isRange) {\n\t\t\t\tlet toggledCount = 0;\n\n\t\t\t\tif (solitary) {\n\t\t\t\t\t[...this.Table.querySelectorAll(`${this.DataRowSelector}.active`)].filter(x => x !== row).forEach(x => {\n\t\t\t\t\t\tx.removeClass(\"active\");\n\t\t\t\t\t\t++toggledCount;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Toggle row selected state\n\t\t\t\tif (row.classList.contains(\"active\") && toggledCount === 0) {\n\t\t\t\t\trow.removeClass(\"active\");\n\t\t\t\t} else {\n\t\t\t\t\trow.classList.add(\"active\");\n\t\t\t\t\tthis.Table.dispatchEvent(new CustomEvent(\"rowselected\", { detail: { row: row } }));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (solitary) {\n\t\t\t\t\tthis.GetVisibleRows().forEach(x => x.classList.remove(\"active\"));\n\t\t\t\t}\n\n\t\t\t\tconst currentIndex = this.GetRowIndex(row),\n\t\t\t\t\tstart = Math.min(currentIndex, this.LastSelectedIndex),\n\t\t\t\t\tend = Math.max(currentIndex, this.LastSelectedIndex);\n\n\t\t\t\tthis.GetRowsFromIndices(Array(end - start + 1).fill().map((_, ix) => start + ix)).forEach(row => row.classList.add(\"active\"));\n\t\t\t}\n\n\t\t\tconst newIndex = this.GetRowIndex(row);\n\n\t\t\tif (newIndex !== -1) {\n\t\t\t\tthis.LastSelectedIndex = newIndex;\n\t\t\t}\n\t\t}\n\n\t\tthis.UpdateSelectedCount();\n\t}\n\n\tUpdateSelectedCount() {\n\t\tif (this.SelectedCountLabel) {\n\t\t\tconst selectedCount = this.GetSelectedRows().length;\n\n\t\t\tthis.SelectedCountLabel.textContent = selectedCount > 0\n\t\t\t\t? `(${selectedCount} selected)`\n\t\t\t\t: \"\";\n\t\t}\n\t}\n\n\tSearch(query) {\n\t\tconst arrRows = [...this.Table.querySelectorAll(this.ValidRowSelector)];\n\n\t\tif (arrRows.length) {\n\t\t\tconst newSet = arrRows.search(query, \"textContent\", -1);\n\n\t\t\tarrRows.forEach(row => {\n\t\t\t\trow.toggleClass(\"d-none\", !newSet.includes(row) && query.trim() !== \"\");\n\n\t\t\t\tif (row.classList.contains(\"d-none\")) {\n\t\t\t\t\trow.removeClass(\"active\");\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.Table.querySelectorAll(\"tbody\").forEach(body => {\n\t\t\t\tif (!body.querySelector(\"tr:not(.d-none,.table-body-label)\")) {\n\t\t\t\t\tbody.classList.add(\"d-none\");\n\t\t\t\t} else {\n\t\t\t\t\tbody.removeClasses([\"collapsed\", \"d-none\"]);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.UpdateSelectedCount();\n\t}\n\n\tGetSelectedIndex() { return Array.from(this.Table.querySelectorAll(this.DataRowSelector)).indexOf(this.Table.querySelector(`${this.DataRowSelector}.active`)) };\n\n\tGetRowFromEvent(event, includeGroupRows) {\n\t\tif (event.target.matches(includeGroupRows ? this.RowSelector : this.DataRowSelector)) {\n\t\t\treturn event.target;\n\t\t} else {\n\t\t\treturn event.target.closest(includeGroupRows ? this.RowSelector : this.DataRowSelector);\n\t\t}\n\t}\n\n\tGetSelectedRows() { return Array.from(this.Table.querySelectorAll(`${this.DataRowSelector}.active`)); }\n\tRowAt(index) { return this.Table.querySelectorAll(this.DataRowSelector)[index]; }\n\tGetRowIndex(row) { return Array.from(this.Table.querySelectorAll(this.DataRowSelector)).indexOf(row); }\n\n\tGetRowsFromIndices(indices) { return Array.from(this.Table.querySelectorAll(this.DataRowSelector)).filter((_, ix) => indices.includes(ix)); }\n\tGetVisibleRows() { return Array.from(this.Table.querySelectorAll(this.DataRowSelector)); }\n\tGetAllRows() { return Array.from(this.Table.querySelectorAll(this.ValidRowSelector)); }\n\n\tGoToPage(pageNumber) {\n\t\tlet page = parseInt(pageNumber);\n\n\t\tif (!isNaN(page)) {\n\t\t\tBrowser.SetURLParameter(\"p\", !page || page === 1 ? null : page, true);\n\t\t}\n\t}\n\n\t// Get's an object representing a rows data using the actual column names\n\tGetRowDetails(row) {\n\t\tconst retVal = {};\n\n\t\tthis.Table.querySelectorAll(this.HeaderSelector)\n\t\t\t.forEach((header, index) => retVal[header.textContent.trim().replace(\" \", \"_\")] = row.querySelector(`td:nth-of-type(${index + 1})`).textContent.trim());\n\n\t\treturn retVal;\n\t}\n\n\tstatic RefreshTables() {\n\t\tdocument.querySelectorAll(\".chipside-table:not(.no-js)\").forEach(x => x.Table ??= new Table(x));\n\t}\n}","import { Ajax } from \"../ajax/ajax.js\";\r\nimport { ListView } from \"../components/list-view.js\";\r\nimport { Table } from \"../components/table.js\";\r\nimport { Browser } from \"../core/browser.js\";\r\nimport { Dialog } from \"../dialog/dialog.js\";\r\n\r\nconst ARIA_LABEL_SELECTOR = \"a[href], audio, video[controls], input, select, button, textarea, header, footer, nav, main, aside, section, form, [role='navigation'], iframe, img\";\r\n\r\nexport class Razor {\r\n\tstatic #_onStateUpdate = null;\r\n\tstatic #stateUpdated = false;\r\n\r\n\tstatic OnThemeChange = null;\r\n\r\n\tstatic get OnStateUpdate() {\r\n\t\treturn Razor.#_onStateUpdate;\r\n\t}\r\n\r\n\tstatic set OnStateUpdate(value) {\r\n\t\tif (Razor.#stateUpdated) {\r\n\t\t\tvalue?.();\r\n\t\t}\r\n\r\n\t\tRazor.#_onStateUpdate = value;\r\n\t}\r\n\r\n\tstatic GetHandlerURL = handler => {\r\n\t\tconst parsed = new URL(document.URL);\r\n\r\n\t\tparsed.hash = \"\";\r\n\t\tparsed.searchParams.set(\"handler\", handler);\r\n\r\n\t\treturn parsed.toString();\r\n\t}\r\n\r\n\tstatic async GetPartialView(name, modelProperties, ajaxOptions = {}) {\r\n\t\tmodelProperties ??= {};\r\n\r\n\t\tconst response = await Ajax.Post(this.GetHandlerURL(\"RenderPartialView\"), {\r\n\t\t\tqueryParameters: {\r\n\t\t\t\tview: name\r\n\t\t\t},\r\n\t\t\tbody: modelProperties,\r\n\t\t\theaders: {\r\n\t\t\t\tpragma: 'no-cache',\r\n\t\t\t\t'cache-control': 'no-cache'\r\n\t\t\t},\r\n\t\t\tsuccess: { 404: () => { } },\r\n\t\t\tLoadTimeout: 0,\r\n\t\t\t...ajaxOptions\r\n\t\t});\r\n\r\n\t\treturn response?.ok ? response.content : \"\";\r\n\t}\r\n\r\n\tstatic RenderPartialView(name, modelProperties, container, options = { LoadingIcon: true }) {\r\n\t\treturn new Promise(resolve => {\r\n\t\t\tif (!container) { resolve(); }\r\n\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (options.LoadingIcon) {\r\n\t\t\t\t\tcontainer.innerHTML = '
';\r\n\t\t\t\t}\r\n\t\t\t}, 300);\r\n\r\n\t\t\tthis.GetPartialView(name, modelProperties, options).then(response => {\r\n\t\t\t\toptions.LoadingIcon = false;\r\n\t\t\t\tcontainer.innerHTML = response;\r\n\r\n\t\t\t\tthis.UpdateState();\r\n\t\t\t\tresolve();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tstatic #DisableButton(button) {\r\n\t\tif (button) {\r\n\t\t\tbutton.disabled = true;\r\n\t\t\tbutton.classList.add(\"disabled\");\r\n\t\t}\r\n\t}\r\n\r\n\tstatic #EnableButton(button) {\r\n\t\tif (button) {\r\n\t\t\tbutton.removeAttribute(\"disabled\");\r\n\t\t\tbutton.removeClass(\"disabled\");\r\n\t\t}\r\n\t}\r\n\r\n\tstatic FireButtonAjax(button) {\r\n\t\tlet buttonForm = button.form;\r\n\r\n\t\tif (button?.nodeName !== \"BUTTON\") {\r\n\t\t\tbuttonForm = document.getElementById(button.form) ?? button.closest(\"form\");\r\n\t\t}\r\n\r\n\t\tfunction send() {\r\n\t\t\tif (!button?.ajax?.SkipFormValidation && (buttonForm && ([...buttonForm.querySelectorAll(\"chip-form\") ?? []].find(x => !x.reportValidity()) || !buttonForm.reportValidity()))) {\r\n\t\t\t\treturn;\r\n\t\t\t} else {\r\n\t\t\t\tRazor.#DisableButton(button);\r\n\t\t\t}\r\n\r\n\t\t\tconst body = new URLSearchParams();\r\n\r\n\t\t\tif (buttonForm) {\r\n\t\t\t\tfor (const pair of new FormData(buttonForm)) {\r\n\t\t\t\t\tif (pair[0] !== \"__RequestVerificationToken\") {\r\n\t\t\t\t\t\tbody.append(pair[0].slice(pair[0].indexOf(\".\") + 1), pair[1]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (button?.CheckValid?.(body) === false) {\r\n\t\t\t\treturn Razor.#EnableButton(button);\r\n\t\t\t}\r\n\r\n\t\t\tconst responseOverride = button?.ajax?.success ?? {};\r\n\r\n\t\t\tresponseOverride.ok ??= response => {\r\n\t\t\t\thistory.replaceState(\"\", document.title, button.ajax?.ReturnURL ?? response.url);\r\n\t\t\t\tBrowser.Refresh();\r\n\t\t\t}\r\n\r\n\t\t\tresponseOverride[\"400\"] ??= response => {\r\n\t\t\t\tif (typeof button.ajax?.OnBadRequest === \"function\") {\r\n\t\t\t\t\tbutton.ajax.OnBadRequest(response);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tDialog.ShowWarning(\"That doesn't look right\", Razor.GetBadRequestReason(response));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tlet url = \"\";\r\n\r\n\t\t\tif (button.ajax?.Handler) {\r\n\t\t\t\turl = Razor.GetHandlerURL(button.ajax.Handler);\r\n\t\t\t} else {\r\n\t\t\t\turl = button.getAttribute(\"formAction\") ? button.formAction : Razor.GetHandlerURL(\"Save\");\r\n\t\t\t}\r\n\r\n\t\t\tAjax.Post(url, {\r\n\t\t\t\tbody,\r\n\t\t\t\tOnComplete: response => {\r\n\t\t\t\t\tRazor.#EnableButton(button);\r\n\r\n\t\t\t\t\tif (response?.ok) {\r\n\t\t\t\t\t\twindow.onbeforeunload = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tsuccess: responseOverride,\r\n\t\t\t\terror: error => {\r\n\t\t\t\t\tRazor.#EnableButton(button);\r\n\r\n\t\t\t\t\tDialog.ShowError(\"Error\", Localizer.ERROR_MESSAGE, error);\r\n\t\t\t\t}, ...button.ajax\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (button.dataset.requiresConfirmation === \"true\") {\r\n\t\t\tDialog.ShowConfirmation(button?.ajax?.ConfirmationData?.Title ?? \"Are you sure?\", button?.ajax?.ConfirmationData?.Body ?? \"Are you sure you want to do this?\").then(result => {\r\n\t\t\t\tif (result) {\r\n\t\t\t\t\tsend();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tsend();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic GetBadRequestReason = response => Browser.TryParseJSON(response.content)?.at(0)?.value.errors.at(0).errorMessage ?? response.content;\r\n\r\n\tstatic UpdateThemeToggleText(theme) {\r\n\t\tif (window.btnThemeToggle && theme) {\r\n\t\t\tbtnThemeToggle.tooltip = Localizer[`THEME_BUTTON_${theme.toUpperCase()}`];\r\n\t\t\tbtnThemeToggle.description = Localizer[`THEME_BUTTON_${theme.toUpperCase()}`];\r\n\t\t}\r\n\t}\r\n\r\n\tstatic #showTooltip(tooltip, element) {\r\n\t\tif (tooltip?.trim() !== \"\") {\r\n\t\t\tlet { width, left, top, height, right } = element.getBoundingClientRect(),\r\n\t\t\t\tcontainer = document.createElementWithContents(\"div\",\r\n\t\t\t\t\t`\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t${tooltip}\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t`.trim(),\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tclassName: \"tooltip-container\",\r\n\t\t\t\t\t\tid: element.__tooltipID,\r\n\t\t\t\t\t\trole: \"tooltip\"\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n\t\t\tif (!height && !width) { return; }\r\n\r\n\t\t\ttop += window.scrollY;\r\n\t\t\tright += window.scrollX;\r\n\t\t\tleft += window.scrollX;\r\n\r\n\t\t\tconst PLACEMENT_FNS = {\r\n\t\t\t\tplaceTop: () => {\r\n\t\t\t\t\tObject.assign(container.style, {\r\n\t\t\t\t\t\tleft: `${left + (width / 2)}px`,\r\n\t\t\t\t\t\ttop: `${top}px`\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tcontainer.setAttribute(\"placement\", \"top\");\r\n\t\t\t\t},\r\n\t\t\t\tplaceRight: () => {\r\n\t\t\t\t\tObject.assign(container.style, {\r\n\t\t\t\t\t\tleft: `${left + width}px`,\r\n\t\t\t\t\t\ttop: `${top + (height / 2)}px`\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tcontainer.setAttribute(\"placement\", \"right\");\r\n\t\t\t\t},\r\n\t\t\t\tplaceBottom: () => {\r\n\t\t\t\t\tObject.assign(container.style, {\r\n\t\t\t\t\t\ttop: `${top + height}px`\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tcontainer.setAttribute(\"placement\", \"bottom\");\r\n\t\t\t\t},\r\n\t\t\t\tplaceLeft: () => {\r\n\t\t\t\t\tObject.assign(container.style, {\r\n\t\t\t\t\t\tleft: `${left}px`,\r\n\t\t\t\t\t\ttop: `${top + (height / 2)}px`\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tcontainer.setAttribute(\"placement\", \"left\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tPLACEMENT_FNS.placeTop();\r\n\r\n\t\t\tdocument.body.appendChild(container);\r\n\r\n\t\t\tconst tooltipDimensions = container.getBoundingClientRect(),\r\n\t\t\t\tcurrentDirection = element.getAttribute(\"tooltip-direction\")?.toLowerCase() ?? \"top\";\r\n\r\n\t\t\tif (currentDirection !== \"top\") {\r\n\t\t\t\tPLACEMENT_FNS[`place${currentDirection[0].toUpperCase() + currentDirection.slice(1).toLowerCase()}`]();\r\n\t\t\t}\r\n\r\n\t\t\tif (tooltipDimensions.top <= 0 || tooltipDimensions.left <= 0 || (right + ((tooltipDimensions.width - width) / 2) > window.innerWidth)) {\r\n\t\t\t\tif (right + ((tooltipDimensions.width - width) / 2) <= window.innerWidth) {\r\n\t\t\t\t\tPLACEMENT_FNS.placeRight();\r\n\t\t\t\t} else if (tooltipDimensions.right <= window.innerWidth) {\r\n\t\t\t\t\tPLACEMENT_FNS.placeBottom();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tPLACEMENT_FNS.placeLeft();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tcontainer.classList.add(\"tooltip--shown\");\r\n\t\t\telement.setAttribute(\"aria-describedby\", element.__tooltipID);\r\n\t\t}\r\n\t}\r\n\r\n\tstatic RefreshTooltips() {\r\n\t\tdocument.querySelectorAll(\"[tooltip]\").forEach(element => {\r\n\t\t\tif (element.__tooltipID) { return; }\r\n\r\n\t\t\telement.__tooltipID ??= `tt${crypto.randomUUID().slice(0, 8)}`;\r\n\r\n\t\t\tlet showTimeout,\r\n\t\t\t\thideTimeout;\r\n\r\n\t\t\tif (element.matches?.(ARIA_LABEL_SELECTOR) && !element.hasAttribute(\"aria-label\") && element.textContent.trim() === \"\") {\r\n\t\t\t\telement.ariaLabel = element.getAttribute(\"tooltip\");\r\n\t\t\t}\r\n\r\n\t\t\telement.onmouseover = ev => {\r\n\t\t\t\tconst dropdown = ev.target.closest(\".dropdown__list\"),\r\n\t\t\t\t\ttooltip = element.getAttribute(\"tooltip\");\r\n\r\n\t\t\t\tif (!document.getElementById(element.__tooltipID) && (!dropdown || dropdown.contains(element))) {\r\n\t\t\t\t\tclearTimeout(hideTimeout);\r\n\t\t\t\t\thideTimeout = null;\r\n\r\n\t\t\t\t\tshowTimeout ??= setTimeout(() => this.#showTooltip(tooltip, element), 300);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction hideTooltip() {\r\n\t\t\t\tclearTimeout(showTimeout);\r\n\t\t\t\tshowTimeout = null;\r\n\r\n\t\t\t\thideTimeout ??= setTimeout(() => {\r\n\t\t\t\t\telement.removeAttribute(\"aria-describedby\");\r\n\t\t\t\t\tdocument.getElementById(element.__tooltipID)?.remove();\r\n\t\t\t\t}, 300);\r\n\t\t\t}\r\n\r\n\t\t\telement.onmouseout = ev => {\r\n\t\t\t\tconst dropdown = ev.target.closest(\".dropdown__list\");\r\n\r\n\t\t\t\tif (dropdown?.contains(element) === false || !element.contains(ev.relatedTarget)) {\r\n\t\t\t\t\thideTooltip();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\telement.onmouseleave = () => hideTooltip();\r\n\t\t});\r\n\t}\r\n\r\n\tstatic InvokeThemeChange() {\r\n\t\tconst target = document.querySelector(\"link[href*='code-highlight']\")\r\n\r\n\t\tif (target) {\r\n\t\t\tif (document.documentElement.dataset.theme === \"dark\") {\r\n\t\t\t\ttarget.href = target.href.replace(\"code-highlight.css\", \"code-highlight-dark.css\");\r\n\t\t\t} else {\r\n\t\t\t\ttarget.href = target.href.replace(\"code-highlight-dark.css\", \"code-highlight.css\");\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tRazor.OnThemeChange?.();\r\n\t}\r\n\r\n\tstatic #RefreshElements() {\r\n\t\tdocument.querySelectorAll(\".standard-pagination-input\").forEach(x => x.onkeyup = ev => {\r\n\t\t\tif (ev.key === \"Enter\" && !isNaN(ev.target.value) && ev.target.value.trim() !== \"\") {\r\n\t\t\t\tBrowser.SetURLParameter(\"p\", Math.max(1, parseInt(ev.target.value)), true);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdocument.querySelectorAll(\".btn-collapse-sidebar\").forEach(x => x.onclick = () => {\r\n\t\t\tconst nav = x.closest(\"chip-framesidebar\");\r\n\r\n\t\t\tif (nav) {\r\n\t\t\t\tnav.collapsed = !nav.collapsed;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (window.btnThemeToggle) {\r\n\t\t\tbtnThemeToggle.onclick = () => {\r\n\t\t\t\tconst theme = document.documentElement.dataset.theme === \"dark\" ? \"light\" : \"dark\";\r\n\r\n\t\t\t\tdocument.documentElement.dataset.theme = theme;\r\n\t\t\t\tlocalStorage.setItem(\"site-theme\", theme);\r\n\r\n\t\t\t\tthis.UpdateThemeToggleText(theme);\r\n\t\t\t\tthis.InvokeThemeChange();\r\n\t\t\t}\r\n\r\n\t\t\tthis.UpdateThemeToggleText(document.documentElement.dataset.theme);\r\n\t\t}\r\n\r\n\t\tdocument.querySelectorAll(\"[data-enhance='true']\").forEach(x => x.enhance());\r\n\r\n\t\tdocument.querySelectorAll(\".cookie-warning__button--accept\").forEach(button => button.onclick = () => {\r\n\t\t\tdocument.cookie = `CookiePolicyCheck=null;path=/;expires=${Browser.AddYears(new Date(), 1)}`;\r\n\t\t\tdocument.querySelector(\".header__cookie-warning\")?.classList.add(\"d-none\");\r\n\t\t});\r\n\r\n\t\tdocument.querySelectorAll(\".btn-entity-post\").forEach(x => x.onclick = () => this.FireButtonAjax(x));\r\n\r\n\t\tdocument.querySelectorAll(\".search-bar\").forEach(bar => {\r\n\t\t\tconst input = bar.querySelector(\"input\");\r\n\r\n\t\t\tif (input) {\r\n\t\t\t\tfunction submit() {\r\n\t\t\t\t\tif (bar.Search?.href) {\r\n\t\t\t\t\t\tconst url = Object.assign(new URL(Browser.ResolveRelativeURL(bar.Search?.href)), {\r\n\t\t\t\t\t\t\thash: \"\"\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\turl.searchParams.set(\"q\", input.value.trim() === \"\" ? null : input.value.trim());\r\n\r\n\t\t\t\t\t\tlocation.href = url;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tBrowser.SetURLParameter(\"q\", input.value.trim() === '' ? null : input.value.trim());\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinput.onkeyup = ev => {\r\n\t\t\t\t\tif (ev.key === \"Enter\") {\r\n\t\t\t\t\t\tsubmit();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbar.querySelector(\".search-bar__button\").onclick = () => submit();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tstatic GetVerificationToken() {\r\n\t\treturn document.querySelector(\"input[type='hidden'][name='__RequestVerificationToken']\")?.value ?? \"\";\r\n\t}\r\n\r\n\tstatic #RefreshComponents() {\r\n\t\tTable.RefreshTables();\r\n\t\tListView.RefreshListViews();\r\n\t}\r\n\r\n\tstatic UpdateState() {\r\n\t\tthis.#RefreshComponents();\r\n\t\tthis.#RefreshElements();\r\n\t\tthis.RefreshTooltips();\r\n\r\n\t\tRazor.OnStateUpdate?.();\r\n\t\tRazor.#stateUpdated = true;\r\n\t}\r\n\r\n\tstatic SetButtonAjax(button, data) {\r\n\t\tif (button) {\r\n\t\t\tbutton.ajax ??= {};\r\n\t\t\tObject.assign(button.ajax, data);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nDialog.OnOpened = () => Razor.UpdateState();","export class BlurredMenu {\n\tconstructor(menu) {\n\t\tthis.Menu = menu;\n\t\tthis.AllowedClicks = [\"A\", \"BUTTON\", \".text-faded\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"];\n\n\t\tthis.Init();\n\t}\n\n\tInit() {\n\t\tthis.Menu.onclick = ev => {\n\t\t\tif (!this.AllowedClicks.find(x => ev.srcElement?.matches(x))) {\n\t\t\t\tBlurredMenu.Close();\n\t\t\t}\n\t\t}\n\t}\n\n\tOpen() {\n\t\tdocument.body.removeClass(\"remove-blur\");\n\t\tdocument.body.classList.add(\"blur\");\n\t}\n\n\tstatic Close() {\n\t\tconst blurred = document.querySelector(\".blur\");\n\n\t\tif (blurred) {\n\t\t\tblurred.classList.replace(\"blur\", \"remove-blur\");\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tblurred.removeClass(\"remove-blur\");\n\t\t\t}, 500);\n\t\t}\n\t}\n}\n\nwindow.onkeydown = ev => {\n\tif (ev.key === \"Escape\") {\n\t\tBlurredMenu.Close();\n\t}\n}","import { Razor } from \"../razor/razor\";\n\nexport class AuxiliumComponent extends HTMLElement {\n\t#ObservableBooleans = [\"disabled\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.init = new WeakMap;\n\t\tthis.queue = [];\n\t\tthis._onparsed = null;\n\t\tthis.parsed = false;\n\t\tthis.setQueue = [];\n\n\t\tthis.disabled = this.hasAttribute(\"disabled\");\n\t\tthis.badge = this.getAttribute(\"badge\");\n\t\tthis.tooltip = this.getAttribute(\"tooltip\");\n\n\t\tthis.normalizeContent = true;\n\t\tthis.enhanceContents = this.hasAttribute(\"enhance\");\n\n\t\tconst observable = this.constructor.observedAttributes ?? [];\n\t\tobservable.push(\"disabled\", \"tooltip\");\n\n\t\tfor (const attribute of observable) {\n\t\t\tlet value = this.getAttribute(attribute),\n\t\t\t\tpropertyName = attribute.replace(/-([a-z]|\\d)/ig, (_, letter) => letter.toUpperCase());\n\n\t\t\t// The regex converts something like 'button-style' to 'buttonStyle'\n\t\t\tObject.defineProperty(this, propertyName, {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#ObservableBooleans.includes(attribute) ? this.hasAttribute(attribute) : value;\n\t\t\t\t},\n\t\t\t\tset(val) {\n\t\t\t\t\tif ([true, false].includes(val) && !this.#ObservableBooleans.includes(attribute)) {\n\t\t\t\t\t\tthis.#ObservableBooleans.push(attribute);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst setValue = () => {\n\t\t\t\t\t\tif (val === false && this.hasAttribute(attribute)) {\n\t\t\t\t\t\t\tthis.removeAttribute(attribute);\n\t\t\t\t\t\t} else if (val === true && !this.hasAttribute(attribute)) {\n\t\t\t\t\t\t\tthis.setAttribute(attribute, \"\");\n\t\t\t\t\t\t} else if (!this.#attributeEquals(attribute, val) && ![true, false].includes(val)) {\n\t\t\t\t\t\t\tif (val?.toString().trim() === \"\") { this.removeAttribute(attribute); }\n\t\t\t\t\t\t\telse { this.setAttribute(attribute, val); }\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (attribute === \"tooltip\") {\n\t\t\t\t\t\t\tconst existing = document.querySelector(`#${this.__tooltipID} .tooltip-content`);\n\n\t\t\t\t\t\t\tif (existing) {\n\t\t\t\t\t\t\t\tif (val) {\n\t\t\t\t\t\t\t\t\texisting.textContent = val;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\texisting.remove();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tRazor.RefreshTooltips();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvalue = val;\n\n\t\t\t\t\tif (!this.parsed) {\n\t\t\t\t\t\tthis.setQueue.push(setValue);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetValue();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tGetValidationMessage(control) {\n\t\tif (!control || control.validity.valid) { return \"\"; }\n\n\t\tif (control.validity.valueMissing) { return this.VALIDATION_REQUIRED || control.validationMessage; }\n\t\telse if (control.validity.typeMismatch) { return this.VALIDATION_TYPE_MISMATCH || control.validationMessage; }\n\t\telse if (control.validity.patternMismatch) { return this.VALIDATION_PATTERN_MISMATCH || control.validationMessage; }\n\t\telse if (control.validity.tooShort) { return this.VALIDATION_TOO_SHORT || control.validationMessage; }\n\t\telse if (control.validity.tooLong) { return this.VALIDATION_TOO_LONG || control.validationMessage; }\n\t\telse if (control.validity.rangeUnderflow) { return this.VALIDATION_RANGE_UNDERFLOW || control.validationMessage; }\n\t\telse if (control.validity.rangeOverflow) { return this.VALIDATION_RANGE_OVERFLOW || control.validationMessage; }\n\t\telse if (control.validity.stepMismatch) { return this.VALIDATION_STEP_MISMATCH || control.validationMessage; }\n\t\telse if (control.validity.badInput) { return this.VALIDATION_BAD_INPUT || control.validationMessage; }\n\n\t\treturn control.validationMessage;\n\t}\n\n\tInitializeValidationMessages() {\n\t\tObject.assign(this, {\n\t\t\tVALIDATION_REQUIRED: this.getAttribute(\"validation-required\") ?? \"\",\n\t\t\tVALIDATION_TYPE_MISMATCH: this.getAttribute(\"validation-wrong-type\") ?? \"\",\n\t\t\tVALIDATION_PATTERN_MISMATCH: this.getAttribute(\"validation-wrong-pattern\") ?? \"\",\n\t\t\tVALIDATION_TOO_SHORT: this.getAttribute(\"validation-too-short\") ?? \"\",\n\t\t\tVALIDATION_TOO_LONG: this.getAttribute(\"validation-too-long\") ?? \"\",\n\t\t\tVALIDATION_RANGE_OVERFLOW: this.getAttribute(\"validation-too-high\") ?? \"\",\n\t\t\tVALIDATION_RANGE_UNDERFLOW: this.getAttribute(\"validation-too-low\") ?? \"\",\n\t\t\tVALIDATION_STEP_MISMATCH: this.getAttribute(\"validation-wrong-step\") ?? \"\",\n\t\t\tVALIDATION_BAD_INPUT: this.getAttribute(\"validation-bad-input\") ?? \"\"\n\t\t})\n\t}\n\n\tget onparsed() {\n\t\treturn this._onparsed;\n\t}\n\n\tset onparsed(value) {\n\t\tif (this.parsed) { value?.(); }\n\t\telse { this._onparsed = value; }\n\t}\n\n\tattributeChangedCallback(name, oldValue, newValue) {\n\t\tif (!this.parsed) { return; }\n\n\t\tthis.attributeChanged?.(name, oldValue, newValue);\n\t}\n\n\t/**\n\t * For a boolean attribute, this is a helper function to check whether the attribute should exist or not\n\t * @param {*} value The value to check\n\t * @return {boolean} True if the attribute is to exist\n\t */\n\tIsAttributeValueTrue(value) {\n\t\treturn [true, \"\"].includes(value);\n\t}\n\n\t#attributeEquals(attributeName, value) {\n\t\tconst attrValue = this.getAttribute(attributeName);\n\n\t\tif (attrValue?.toString() === value?.toString()) { return true; }\n\n\t\treturn attrValue == null && [\"null\", \"undefined\"].includes(value?.toString());\n\t}\n\n\traiseEvent(eventName) {\n\t\tconst handler = this[`on${eventName.toLowerCase()}`];\n\n\t\tif (handler) {\n\t\t\thandler();\n\t\t} else {\n\t\t\tthis.dispatchEvent(new Event(eventName, {\n\t\t\t\tview: window,\n\t\t\t\tbubbles: false,\n\t\t\t\tcancelable: false\n\t\t\t}));\n\t\t}\n\t}\n\n\traiseEvents(...events) {\n\t\tevents.forEach(event => this.raiseEvent(event));\n\t}\n\n\tclick() {\n\t\tthis.raiseEvent(\"click\");\n\t}\n\n\tdisconnectedCallback() {\n\t\tdocument.getElementById(this.__tooltipID)?.remove();\n\t}\n\n\t#processQueueItem(element, fnName) {\n\t\tif (this.init.get(element) !== true && !this.parsed) {\n\t\t\tthis.init.set(element, true);\n\n\t\t\tif (!this.innerHTML?.trim()) { this.innerHTML = \"\"; }\n\t\t\tif (this.normalizeContent && this.firstChild?.nodeType === Node.TEXT_NODE) { this.firstChild.trimBreaks(); }\n\t\t\tif (this.enhanceContents) { this.enhance(); }\n\n\t\t\telement[fnName]?.();\n\t\t\tthis.parsed = true;\n\n\t\t\tthis.setQueue.forEach(fn => fn());\n\n\t\t\tif (this.tooltip || this.querySelector(\"[tooltip]\")) {\n\t\t\t\tRazor.RefreshTooltips();\n\t\t\t}\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.raiseEvent(\"parsed\");\n\t\t\t}, 0);\n\t\t}\n\t}\n\n\tconnectedCallback() {\n\t\tconst parsedCallback = el => {\n\t\t\tthis.queue = this.queue.filter(([_, value]) => value !== \"parsedCallback\");\n\n\t\t\tif (!this.queue.length) {\n\t\t\t\trequestAnimationFrame(() => {\n\t\t\t\t\tthis.queue.splice(0).forEach(([element, fnName]) => this.#processQueueItem(element, fnName));\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.queue.push([el, \"parsedCallback\"]);\n\t\t}\n\n\t\tconst isParsed = el => {\n\t\t\tdo {\n\t\t\t\tif (el.nextSibling) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} while (el = el.parentNode);\n\n\t\t\treturn false;\n\t\t}\n\n\t\tconst cleanUp = (el, observer, ownerDocument, onDCL) => {\n\t\t\tobserver.disconnect();\n\t\t\townerDocument.removeEventListener(\"DOMContentLoaded\", onDCL);\n\n\t\t\tparsedCallback(el);\n\t\t}\n\n\t\tconst self = this;\n\t\tconst { ownerDocument } = self;\n\n\t\tthis.init.set(self, false);\n\n\t\tif (ownerDocument.readyState === 'complete' || isParsed(self)) {\n\t\t\tparsedCallback(self);\n\t\t}\n\t\telse {\n\t\t\tconst onDCL = () => cleanUp(self, observer, ownerDocument, onDCL);\n\t\t\townerDocument.addEventListener(\"DOMContentLoaded\", onDCL);\n\n\t\t\tconst observer = new MutationObserver(() => {\n\t\t\t\tif (isParsed(self)) {\n\t\t\t\t\tcleanUp(self, observer, ownerDocument, onDCL);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tobserver.observe(self.parentNode, { childList: true, subtree: true });\n\t\t}\n\t}\n\n\tInitializeCheckboxProperties() {\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? crypto.randomUUID().slice(0, 8);\n\t\tthis.label = this.getAttribute(\"label\");\n\t\tthis.checked = this.hasAttribute(\"checked\");\n\t\tthis.name = this.getAttribute(\"name\");\n\t\tthis.required = this.hasAttribute(\"required\");\n\t\tthis.helperText = this.getAttribute(\"helper-text\") ?? \"\";\n\t\tthis.value = this.getAttribute(\"value\") ?? \"true\";\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Textarea extends AuxiliumComponent {\n\tstatic observedAttributes = [\"readonly\", \"required\"];\n\n\t#Mappers = {};\n\n\tstatic Observer = new ResizeObserver(entries => entries.forEach(entry => Textarea.#ResizeTextArea(entry.target)));\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.normalizeContent = false;\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? crypto.randomUUID().slice(0, 8);\n\t\tthis.label = this.getAttribute(\"label\");\n\t\tthis.secondaryLabel = this.getAttribute(\"secondary-label\") ?? \"\";\n\t\tthis.helperText = this.getAttribute(\"helper-text\");\n\t\tthis.codePreview = this.hasAttribute(\"code-preview\");\n\t\tthis.responsive = this.hasAttribute(\"responsive\");\n\t\tthis.readonly = this.hasAttribute(\"readonly\");\n\t\tthis.description = this.getAttribute(\"description\") ?? \"\";\n\t\tthis.prefixButton = this.getAttribute(\"prefix-button\") ?? \"\";\n\t\tthis.suffixButton = this.getAttribute(\"suffix-button\") ?? \"\";\n\t\tthis.prefixTooltip = this.getAttribute(\"prefix-tooltip\") ?? \"\";\n\t\tthis.suffixTooltip = this.getAttribute(\"suffix-tooltip\") ?? \"\";\n\t\tthis.prefixDescription = this.getAttribute(\"prefix-description\");\n\t\tthis.suffixDescription = this.getAttribute(\"suffix-description\");\n\t\tthis.suffixIcon = this.getAttribute(\"suffix-icon\") ?? \"\";\n\t\tthis.prefixIcon = this.getAttribute(\"prefix-icon\") ?? \"\";\n\n\t\tthis.#Mappers = {\n\t\t\tmaxlength: this.getAttribute(\"maxlength\"),\n\t\t\tminlength: this.getAttribute(\"minlength\"),\n\t\t\tname: this.getAttribute(\"name\"),\n\t\t\tspellcheck: this.getAttribute(\"spellcheck\"),\n\t\t\tplaceholder: this.getAttribute(\"placeholder\"),\n\t\t\treadonly: this.readonly,\n\t\t\trequired: this.hasAttribute(\"required\"),\n\t\t\trows: this.getAttribute(\"rows\"),\n\t\t\tautofocus: this.hasAttribute(\"autofocus\")\n\t\t};\n\n\t\tif (!this.#Mappers.spellcheck && this.codePreview) { this.#Mappers.spellcheck = true; }\n\t\tif (this.closest(\"form\") && !this.#Mappers.name) { this.#Mappers.name = this.id ?? this.identifier; }\n\n\t\tthis.removeAttribute(\"autofocus\");\n\n\t\tObject.keys(this.#Mappers).forEach(key => this[key] = this.#Mappers[key]);\n\n\t\tthis.classList.add(\"textarea__wrapper\");\n\t}\n\n\tget selectionStart() {\n\t\treturn this.querySelector(\"textarea\")?.selectionStart;\n\t}\n\n\tget selectionEnd() {\n\t\treturn this.querySelector(\"textarea\")?.selectionEnd;\n\t}\n\n\tsetSelectionRange(start, end, direction) {\n\t\tthis.querySelector(\"textarea\")?.setSelectionRange(start, end, direction);\n\t}\n\n\tget value() {\n\t\treturn this.querySelector(\"textarea\")?.value ?? this.textContent;\n\t}\n\n\tset value(val) {\n\t\tconst textArea = this.querySelector(\"textarea\");\n\n\t\tif (textArea) {\n\t\t\ttextArea.value = val;\n\t\t}\n\t}\n\n\tparsedCallback() {\n\t\tconst element = Object.assign(document.createElement(\"div\"), {\n\t\t\tinnerHTML:\n\t\t\t\t`\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t
${this.helperText}
\n\t\t\t\t`.trim()\n\t\t}), textArea = element.querySelector(\"textarea\");\n\n\t\tthis.innerHTML = \"\";\n\n\t\ttextArea.id = this.identifier;\n\n\t\ttextArea.onkeyup = () => this.raiseEvent(\"keyup\", \"selectionchange\");\n\t\ttextArea.onselect = () => this.raiseEvent(\"select\", \"selectionchange\");\n\t\ttextArea.onclick = () => this.raiseEvent(\"selectionchange\");\n\t\ttextArea.oninput = () => this.raiseEvent(\"input\", \"selectionchange\");\n\n\t\ttextArea.onchange = ev => {\n\t\t\tev.preventDefault();\n\t\t\tev.stopPropagation();\n\n\t\t\tthis.reportValidity();\n\t\t\tthis.closest(\"chip-form\")?.checkValidity();\n\n\t\t\tthis.raiseEvent(\"change\");\n\t\t}\n\n\t\tif (!this.label && !this.secondaryLabel) { element.querySelector(\"label\").remove(); }\n\t\telse { element.querySelector(\"label\").htmlFor = this.identifier; }\n\n\t\tif (!this.secondaryLabel) { element.querySelector(\".input-field__label--secondary\")?.remove(); }\n\t\tif (!this.helperText) { element.querySelector(\".input-field__helper-text\").remove(); }\n\t\tif (this.codePreview) { textArea.classList.add(\"code-preview\"); }\n\n\t\tif (this.prefixButton) {\n\t\t\ttextArea.insertAdjacentElement(\"beforebegin\", document.createElementWithContents(\"chip-button\", null, {\n\t\t\t\tclassName: \"input__bound\",\n\t\t\t\tbuttonStyle: \"icon\",\n\t\t\t\ticon: this.prefixButton,\n\t\t\t\tvariation: \"body\",\n\t\t\t\tonclick: () => this.raiseEvent(\"prefixclick\")\n\t\t\t}));\n\t\t} else if (this.prefixIcon) {\n\t\t\ttextArea.insertAdjacentElement(\"beforebegin\", document.createElementWithContents(\"span\", document.createElementWithContents(\"chip-icon\", null, { icon: this.prefixIcon }), { className: \"input__bound\" }));\n\t\t}\n\n\t\tif (this.suffixButton) {\n\t\t\ttextArea.insertAdjacentElement(\"afterend\", document.createElementWithContents(\"chip-button\", null, {\n\t\t\t\tclassName: \"input__bound\",\n\t\t\t\tbuttonStyle: \"icon\",\n\t\t\t\ticon: this.suffixButton,\n\t\t\t\tvariation: \"body\",\n\t\t\t\tonclick: () => this.raiseEvent(\"suffixclick\")\n\t\t\t}));\n\t\t} else if (this.suffixIcon) {\n\t\t\ttextArea.insertAdjacentElement(\"afterend\", document.createElementWithContents(\"span\", document.createElementWithContents(\"chip-icon\", null, { icon: this.suffixIcon }), { className: \"input__bound\" }));\n\t\t}\n\n\t\tif (this.prefixTooltip && textArea.previousElementSibling) { textArea.previousElementSibling.tooltip = this.prefixTooltip; }\n\t\tif (this.suffixTooltip && textArea.nextElementSibling) { textArea.nextElementSibling.tooltip = this.suffixTooltip; }\n\n\t\tif (this.prefixDescription && textArea.previousElementSibling) { textArea.previousElementSibling.description = this.prefixDescription; }\n\t\tif (this.suffixDescription && textArea.nextElementSibling) { textArea.nextElementSibling.description = this.suffixDescription; }\n\n\t\tif (this.responsive) {\n\t\t\tTextarea.Observer.observe(textArea);\n\n\t\t\ttextArea.addEventListener(\"input\", () => Textarea.#ResizeTextArea(textArea));\n\t\t}\n\n\t\tObject.keys(this.#Mappers).filter(x => this.#Mappers[x])\n\t\t\t.forEach(key => textArea.setAttribute(key, this.#Mappers[key] === true ? \"\" : this.#Mappers[key]));\n\n\t\tif (this.description) { textArea.ariaLabel = this.description; }\n\t\telse if (!this.label && this.#Mappers.placeholder) { textArea.ariaLabel = this.#Mappers.placeholder; }\n\n\t\tthis.append(...element.childNodes);\n\t}\n\n\tfocus() {\n\t\tthis.querySelector(\"textarea\")?.focus();\n\t}\n\n\tcheckValidity() {\n\t\tconst input = this.querySelector(\"textarea\"),\n\t\t\tisValid = input?.checkValidity() ?? false;\n\n\t\tthis.validationMessage = this.GetValidationMessage(input);\n\n\t\treturn isValid;\n\t}\n\n\tsetInvalid(message) {\n\t\tthis.querySelector(\".input-field__validation-error\")?.remove();\n\n\t\tconst input = this.querySelector(\"textarea\"),\n\t\t\tmsgElement = document.createElementWithContents(\"div\", message, { className: \"input-field__validation-error\" });\n\n\t\tif (!this.disableMessages) {\n\t\t\tif (Browser.GetFlavour() === \"gov\") {\n\t\t\t\tthis.querySelector(\".input__wrapper\").insertAdjacentElement(\"beforebegin\", msgElement);\n\t\t\t} else {\n\t\t\t\tthis.appendChild(msgElement);\n\t\t\t}\n\t\t}\n\n\t\tinput.classList.add(\"input-field__invalid\");\n\n\t\tthis.querySelectorAll(\".input__bound\").forEach(x => x.classList.add(\"input-field__invalid\"));\n\t}\n\n\treportValidity() {\n\t\tconst validity = this.checkValidity();\n\n\t\tthis.querySelector(\".input-field__validation-error\")?.remove();\n\t\tthis.querySelectorAll(\".input-field__invalid\").forEach(x => x.removeClass(\"input-field__invalid\"));\n\n\t\tif (!validity) {\n\t\t\tthis.setInvalid(this.validationMessage);\n\t\t}\n\n\t\treturn validity;\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tswitch (name) {\n\t\t\tcase \"required\":\n\t\t\t\t{\n\t\t\t\t\tconst textarea = this.querySelector(\"textarea\");\n\n\t\t\t\t\tif (textarea) {\n\t\t\t\t\t\ttextarea.required = this.IsAttributeValueTrue(newValue);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"readonly\":\n\t\t\t\tthis.querySelector(\"textarea\").readOnly = this.IsAttributeValueTrue(newValue);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tstatic #ResizeTextArea(textArea) {\n\t\tconst computed = window.getComputedStyle(textArea),\n\t\t\tcomponent = textArea.closest(\"chip-textarea\");\n\n\t\tlet attempt = textArea;\n\t\tlet scrollPreset = 0;\n\n\t\twhile (scrollPreset === 0 && (attempt = attempt.parentElement)) {\n\t\t\tscrollPreset = attempt.scrollTop;\n\t\t}\n\n\t\ttextArea.style.height = \"0px\";\n\t\tcomponent.removeAttribute(\"style\");\n\n\t\tcomponent.style.setProperty(\"--input-height\", `${textArea.scrollHeight + parseFloat(computed.borderBottomWidth) + parseFloat(computed.borderTopWidth)}px`);\n\t\ttextArea.removeAttribute(\"style\");\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { Razor } from \"../../razor/razor\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Button extends AuxiliumComponent {\n\t#Mappers = {};\n\t#OriginalIcon = \"\";\n\n\tstatic observedAttributes = [\"icon\", \"button-style\", \"variation\", \"size\", \"value\", \"orientation\", \"link\", \"active\", \"suffix-icon\", \"button-class\", \"description\", \"icon-colour\", \"loading\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.loading = this.hasAttribute(\"loading\");\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\n\t\tthis.iconColour = this.getAttribute(\"icon-colour\") ?? \"\";\n\t\tthis.variation = this.getAttribute(\"variation\") ?? \"theme\";\n\t\tthis.description = this.getAttribute(\"description\") ?? \"\";\n\t\tthis.buttonStyle = this.getAttribute(\"button-style\") ?? \"\";\n\t\tthis.buttonClass = this.getAttribute(\"button-class\") ?? \"\";\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? crypto.randomUUID().slice(0, 8);\n\t\tthis.size = this.getAttribute(\"size\") ?? \"\";\n\t\tthis.active = this.hasAttribute(\"active\");\n\t\tthis.suffixIcon = this.getAttribute(\"suffix-icon\");\n\t\tthis.value = this.getAttribute(\"value\");\n\t\tthis.link = this.getAttribute(\"link\") ?? \"\";\n\t\tthis.submits = this.hasAttribute(\"submits\");\n\t\tthis.orientation = this.getAttribute(\"orientation\") ?? \"\";\n\t\tthis.stepDirection = this.getAttribute(\"step-direction\") ?? \"\";\n\n\t\tthis.#Mappers = {\n\t\t\tform: this.getAttribute(\"form\") ?? \"\",\n\t\t\tautofocus: this.hasAttribute(\"focus\"),\n\t\t\tdownload: this.getAttribute(\"download\") ?? \"\",\n\t\t\ttype: this.getAttribute(\"type\") ?? \"button\",\n\t\t\ttarget: this.getAttribute(\"target\") ?? \"\",\n\t\t\tformaction: this.getAttribute(\"formaction\") ?? \"\",\n\t\t\tformmethod: this.getAttribute(\"formmethod\") ?? \"\"\n\t\t};\n\n\t\tObject.keys(this.#Mappers).forEach(key => this[key] = this.#Mappers[key]);\n\n\t\tif (this.hasAttribute(\"onclick\")) {\n\t\t\tthis.role = \"button\";\n\t\t}\n\t}\n\n\tget textContent() {\n\t\treturn this.querySelector(\"span\")?.textContent ?? \"\";\n\t}\n\n\tset textContent(value) {\n\t\tconst span = this.querySelector(\"span\");\n\n\t\tif (span) {\n\t\t\tspan.textContent = value;\n\t\t}\n\t}\n\n\t#SetDescription(description, button) {\n\t\tif (!button) { return; }\n\n\t\tif (button.nodeName === \"BUTTON\") {\n\t\t\tif (!button.id) {\n\t\t\t\tbutton.id = this.identifier;\n\t\t\t}\n\n\t\t\tlet label = this.querySelector(\":scope > label.visually-hidden\");\n\n\t\t\tif (!label) {\n\t\t\t\tconst newLabel = document.createElementWithContents(\"label\", null, { className: \"visually-hidden\" });\n\t\t\t\tthis.prepend(newLabel);\n\n\t\t\t\tlabel = newLabel;\n\t\t\t}\n\n\t\t\tlabel.textContent = description;\n\t\t\tlabel.htmlFor = button.id;\n\t\t} else {\n\t\t\tbutton.ariaLabel = description;\n\t\t}\n\t}\n\n\tparsedCallback() {\n\t\tif (this.variation === \"theme\" && Browser.GetFlavour() === \"gov\" && !this.suffixIcon) {\n\t\t\tthis.suffixIcon = \"fas fa-chevron-right\";\n\t\t}\n\n\t\tconst button = document.createElementWithContents(this.link ? \"a\" : \"button\", this.childNodes.length ? document.createElementWithContents(\"span\", this.childNodes) : null, {\n\t\t\tclassName: \"btn--base\"\n\t\t});\n\n\t\tbutton.classList.add(Button.ClassFromVariation(this.variation))\n\n\t\tif (this.link && this.#Mappers.target === \"_blank\") {\n\t\t\tbutton.appendChild(document.createElementWithContents(\"span\", \"(opens in new window)\", {\n\t\t\t\tclassName: \"visually-hidden\"\n\t\t\t}));\n\t\t}\n\n\t\tif (this.identifier) { button.id = this.identifier; }\n\t\tif (this.stepDirection) { button.addEventListener(\"click\", () => this.#HandleStepButtonClick()); }\n\t\tif (this.active) { button.classList.add(\"active\"); }\n\t\tif (this.buttonClass) { button.classList.add(...this.buttonClass.split(\" \")); }\n\n\t\tif (this.tooltip && button.textContent.trim() === \"\") { this.#SetDescription(this.tooltip, button); }\n\t\tif (this.description && !button.textContent?.trim()) { this.#SetDescription(this.description, button); }\n\n\t\tif (this.submits) {\n\t\t\tbutton.classList.add(\"btn-entity-post\");\n\t\t\tbutton.onclick = () => Razor.FireButtonAjax(button);\n\t\t}\n\n\t\tif (this.link) { button.href = Browser.ResolveRelativeURL(this.link); }\n\t\tif (this.size) { button.classList.add(`btn--${this.size.toLowerCase()}`); }\n\t\tif (this.buttonStyle) { button.classList.add(`btn--${this.buttonStyle.toLowerCase()}`); }\n\t\tif (this.orientation) { button.classList.add(`btn--${this.orientation.toLowerCase()}`); }\n\n\t\tif (this.icon) {\n\t\t\tconst icon = document.createElementWithContents(\"chip-icon\", null, {\n\t\t\t\tclassName: this.icon\n\t\t\t});\n\n\t\t\tif (this.iconColour) {\n\t\t\t\ticon.dataset.colour = this.iconColour;\n\t\t\t\ticon.classList.add(\"text-theme\");\n\t\t\t}\n\n\t\t\tbutton.prepend(icon);\n\t\t}\n\n\t\tif (this.suffixIcon) {\n\t\t\tbutton.appendChild(document.createElementWithContents(\"chip-icon\", null, {\n\t\t\t\tclassName: this.suffixIcon\n\t\t\t}));\n\t\t}\n\n\t\tObject.keys(this.#Mappers).filter(x => this.#Mappers[x])\n\t\t\t.forEach(key => button.setAttribute(key, this.#Mappers[key] === true ? \"\" : this.#Mappers[key]));\n\n\t\tthis.#OriginalIcon = this.icon;\n\t\tthis.#updateLoadingState(this.loading);\n\n\t\tthis.appendChild(button);\n\t}\n\n\t#HandleStepButtonClick() {\n\t\tconst tabContent = this.closest(\".tab-group__tab\");\n\n\t\tlet index = [...this.closest(\".tab-group__content\")?.children ?? []].indexOf(tabContent);\n\n\t\tif (this.stepDirection.toLowerCase() === \"next\") { index = Math.min(index + 1, this.closest(\".tab-group__content\").children.length - 1); }\n\t\telse { index = Math.max(index - 1, 0); }\n\n\t\tconst tab = this.closest(\"chip-tabgroup\")?.querySelector(`:scope > .tab-group__tabs > .tab__wrapper > chip-tab:nth-child(${index + 1})`);\n\n\t\tif (tab && (this.closest(\"chip-tabgroup\")?.querySelector(`:scope > .tab-group__tabs > .tab__wrapper > chip-tab:nth-child(${index})`)?.checkValidity() === true || this.stepDirection.toLowerCase() !== \"next\")) {\n\t\t\ttab.selected = true;\n\t\t}\n\t}\n\n\tclick() {\n\t\tthis.querySelector(\":scope > button, :scope > a\")?.click();\n\t}\n\n\t#updateLoadingState(isLoading) {\n\t\tif (isLoading) {\n\t\t\tthis.#OriginalIcon = this.icon;\n\t\t\tthis.icon = \"fad fa-spinner-third spin\";\n\t\t} else {\n\t\t\tthis.icon = this.#OriginalIcon;\n\t\t}\n\n\t\tthis.disabled = isLoading;\n\t}\n\n\t#updateIcon(icon) {\n\t\tconst existingIcon = this.querySelector(\":scope>.btn--base>chip-icon:first-child\");\n\n\t\tif (!icon?.trim()) { return existingIcon?.remove(); }\n\n\t\tif (existingIcon) {\n\t\t\texistingIcon.icon = icon;\n\t\t} else {\n\t\t\tthis.querySelector(\":scope>.btn--base\")?.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: icon }));\n\t\t}\n\t}\n\n\tattributeChanged(name, oldValue, newValue) {\n\t\tswitch (name) {\n\t\t\tcase \"variation\":\n\t\t\t\tthis.querySelectorAll(\":scope>button, :scope>a, :scope>chip-dropdown>div>button\").forEach(x => {\n\t\t\t\t\tx.classList.remove(Button.ClassFromVariation(oldValue));\n\t\t\t\t\tx.classList.add(Button.ClassFromVariation(newValue));\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"size\":\n\t\t\t\tthis.querySelectorAll(\":scope>button, :scope>a, :scope>chip-dropdown>div>button\").forEach(x => {\n\t\t\t\t\tx.classList.remove(`btn--${this.size}`);\n\n\t\t\t\t\tif (newValue) {\n\t\t\t\t\t\tx.classList.add(`btn--${newValue.toLowerCase()}`);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"button-style\":\n\t\t\t\tthis.querySelectorAll(\":scope>button, :scope>a, :scope>chip-dropdown>div>button\").forEach(x => {\n\t\t\t\t\tx.classList.remove(`btn--${oldValue}`);\n\n\t\t\t\t\tif (newValue) {\n\t\t\t\t\t\tx.classList.add(`btn--${newValue.toLowerCase()}`);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"button-class\":\n\t\t\t\t{\n\t\t\t\t\tconst buttons = this.querySelectorAll(\":scope>button, :scope>a, :scope>chip-dropdown>div>button\");\n\n\t\t\t\t\tif (oldValue) { buttons.forEach(x => x.classList.remove(...oldValue.split(\" \"))); }\n\t\t\t\t\tif (newValue) { buttons.forEach(x => x.classList.add(...newValue.split(\" \"))); }\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"orientation\":\n\t\t\t\tthis.firstElementChild.classList.remove(`btn--${this.orientation}`);\n\t\t\t\tthis.firstElementChild.classList.add(`btn--${newValue.toLowerCase()}`);\n\t\t\t\tbreak;\n\t\t\tcase \"tooltip\":\n\t\t\t\t{\n\t\t\t\t\tconst target = this.querySelector(\"button, a\");\n\n\t\t\t\t\tif (target?.textContent.trim() === \"\") {\n\t\t\t\t\t\tthis.#SetDescription(newValue, target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"identifier\":\n\t\t\t\t{\n\t\t\t\t\tconst target = this.querySelector(\"button, a\");\n\n\t\t\t\t\tif (target) {\n\t\t\t\t\t\ttarget.id = newValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"description\":\n\t\t\t\t{\n\t\t\t\t\tconst target = this.querySelector(\"button, a\");\n\n\t\t\t\t\tif (target && !target.textContent?.trim()) {\n\t\t\t\t\t\tthis.#SetDescription(newValue, target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"icon\":\n\t\t\t\tthis.#updateIcon(newValue);\n\t\t\t\tbreak;\n\t\t\tcase \"icon-colour\":\n\t\t\t\t{\n\t\t\t\t\tconst existingIcon = this.querySelector(\"chip-icon\");\n\n\t\t\t\t\tif (existingIcon) {\n\t\t\t\t\t\texistingIcon.classList.add(\"text-theme\");\n\t\t\t\t\t\texistingIcon.dataset.colour = newValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: newValue }));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"suffix-icon\":\n\t\t\t\t{\n\t\t\t\t\tconst existingIcon = this.querySelector(\":scope > div > button > i:last-child:not(:first-child)\");\n\n\t\t\t\t\tif (existingIcon) {\n\t\t\t\t\t\texistingIcon.className = newValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.querySelector(\":scope > div > button\")?.appendChild(document.createElementWithContents(\"chip-icon\", null, { icon: newValue }));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"link\":\n\t\t\t\t{\n\t\t\t\t\tconst anchor = this.querySelector(\"a\");\n\n\t\t\t\t\tif (anchor) {\n\t\t\t\t\t\tif (newValue) {\n\t\t\t\t\t\t\tanchor.href = Browser.ResolveRelativeURL(newValue);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanchor.removeAttribute(\"href\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"disabled\":\n\t\t\t\tthis.querySelectorAll(\":scope>button, :scope>a, :scope>chip-dropdown>div>button\").forEach(x => {\n\t\t\t\t\tif (this.IsAttributeValueTrue(newValue)) {\n\t\t\t\t\t\tx.disabled = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tx.removeAttribute(\"disabled\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase \"active\":\n\t\t\t\tif (this.IsAttributeValueTrue(newValue)) {\n\t\t\t\t\tthis.querySelector(\"button, a\").classList.add(\"active\");\n\t\t\t\t} else {\n\t\t\t\t\tthis.querySelector(\"button, a\").classList.remove(\"active\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"loading\":\n\t\t\t\tthis.#updateLoadingState(this.IsAttributeValueTrue(newValue));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tfocus() {\n\t\tthis.querySelector(\"a, button\")?.focus();\n\t}\n\n\tstatic ClassFromVariation(variation) {\n\t\tswitch (variation?.toLowerCase()) {\n\t\t\tcase \"theme-outline\":\n\t\t\tcase \"info-outline\":\n\t\t\tcase \"success-outline\":\n\t\t\tcase \"warning-outline\":\n\t\t\tcase \"secondary-outline\":\n\t\t\tcase \"danger-outline\":\n\t\t\tcase \"theme-secondary\":\n\t\t\tcase \"theme-tertiary\":\n\t\t\tcase \"secondary-secondary\":\n\t\t\tcase \"danger-secondary\":\n\t\t\tcase \"danger-tertiary\":\n\t\t\tcase \"warning-secondary\":\n\t\t\tcase \"warning-tertiary\":\n\t\t\tcase \"secondary-tertiary\":\n\t\t\tcase \"success-secondary\":\n\t\t\tcase \"info\":\n\t\t\tcase \"info-secondary\":\n\t\t\tcase \"info-tertiary\":\n\t\t\tcase \"body\":\n\t\t\tcase \"success-tertiary\":\n\t\t\tcase \"pagination\":\n\t\t\tcase \"secondary\":\n\t\t\tcase \"none\":\n\t\t\tcase \"sidebar\":\n\t\t\tcase \"theme\": return `btn-${variation.toLowerCase()}`;\n\n\t\t\tcase \"success\":\n\t\t\tcase \"warning\":\n\t\t\tcase \"danger\": return `btn-${variation.toLowerCase()}-action`;\n\t\t\tdefault: return \"btn-theme\";\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class ContextMenu extends AuxiliumComponent {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.identifier = crypto.randomUUID();\n\t\tthis.target = this.getAttribute(\"target\");\n\t\tthis.onopen = this.getAttribute(\"onopen\");\n\t\tthis.onopened = this.getAttribute(\"onopened\");\n\t\tthis.boundarySpacing = parseInt(this.getAttribute(\"boundary-spacing\")) || 5;\n\n\t\tthis.refreshTargets();\n\t}\n\n\trefreshTargets() {\n\t\tif (this.target) {\n\t\t\tdocument.querySelectorAll(this.target).forEach(element => {\n\t\t\t\telement.oncontextmenu = event => this.#OnTargetClick(event);\n\t\t\t});\n\t\t}\n\t}\n\n\tstatic refreshTargets = () => document.querySelectorAll(\"chip-contextmenu\").forEach(menu => menu.refreshTargets());\n\n\tparsedCallback() {\n\t\tconst list = document.createElementWithContents(\"ul\", null, {\n\t\t\tclassName: \"context-menu-items\"\n\t\t});\n\n\t\tfor (const item of [...this.children]) {\n\t\t\tthis.addItem(item, false, list);\n\t\t}\n\n\t\tthis.appendChild(list);\n\t}\n\n\taddItem(item, atStart, list) {\n\t\tconst listItem = document.createElementWithContents(\"li\", item, {\n\t\t\tclassName: \"context-menu-item\"\n\t\t}),\n\t\t\tmainList = list ?? this.querySelector(\".context-menu-items\");\n\n\t\tif (listItem.querySelector(\"chip-menuitem chip-menuitem\")) {\n\t\t\tlistItem.classList.add(\"context-sub-menu-item\");\n\t\t}\n\n\t\tif (!atStart) {\n\t\t\tmainList.appendChild(listItem);\n\t\t} else {\n\t\t\tmainList.prepend(listItem);\n\t\t}\n\t}\n\n\t#OnTargetClick(event) {\n\t\tif (event.target?.closest(\"chip-contextmenu\")) { return; }\n\n\t\tconst attemptedCoords = {\n\t\t\tX: this.#GetXCoord(event),\n\t\t\tY: this.#GetYCoord(event)\n\t\t};\n\n\t\tif (attemptedCoords) {\n\t\t\tthis.relatedTarget = event.target;\n\n\t\t\tif (this.onopen?.(event) !== false) {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.OpenMenu(attemptedCoords.X, attemptedCoords.Y);\n\t\t\t}\n\t\t}\n\t}\n\n\t#GetXCoord(event) {\n\t\tif (event.pageX) {\n\t\t\treturn event.pageX - (document.documentElement?.scrollLeft ?? document.body.scrollLeft);\n\t\t} else if (event.clientX) {\n\t\t\treturn event.clientX + (document.documentElement?.scrollLeft ?? document.body.scrollLeft);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t#GetYCoord(event) {\n\t\tif (event.pageY) {\n\t\t\treturn event.pageY - (document.documentElement?.scrollTop ?? document.body.scrollTop);\n\t\t} else if (event.clientY) {\n\t\t\treturn event.clientY + (document.documentElement?.scrollTop ?? document.body.scrollTop);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tOpenMenu(x, y) {\n\t\tthis.onopened?.(this);\n\t\tthis.OpeningCallback?.(this);\n\n\t\tif (!this.disabled) {\n\t\t\tthis.#PositionMenu(x, y);\n\n\t\t\tthis.querySelector(\".context-menu-items\")?.classList.add(\"context-menu-shown\");\n\t\t}\n\t}\n\n\t#GetWidth() {\n\t\treturn Math.max(parseFloat(window.getComputedStyle(this.querySelector(\"ul\")).width) || 0,\n\t\t\t...Array.from(this.querySelectorAll(\"ul\")).map(x => parseFloat(window.getComputedStyle(x).width) || 0));\n\t}\n\n\t#PositionMenu(x, y) {\n\t\tconst computed = window.getComputedStyle(this.querySelector(\"ul\"));\n\n\t\tif (computed) {\n\t\t\tconst position = {\n\t\t\t\ty: Math.min(y, document.body.clientHeight - (parseFloat(computed.height) || 0) - this.boundarySpacing),\n\t\t\t\tx: Math.min(x, document.body.clientWidth - this.#GetWidth() - this.boundarySpacing)\n\t\t\t};\n\n\t\t\tObject.assign(this.querySelector(\".context-menu-items\").style, {\n\t\t\t\ttop: `${position.y}px`,\n\t\t\t\tleft: `${position.x}px`\n\t\t\t});\n\t\t}\n\t}\n\n\tClose() {\n\t\t[...window.document.querySelectorAll(\".context-menu-shown\")]\n\t\t\t.forEach(x => x.classList.remove(\"context-menu-shown\"));\n\n\t\tdocument.querySelectorAll(\".context-sub-menu-item\").forEach(x => x.classList.remove(\"show\"));\n\t}\n\n\tHandleMenuBlurEvent(event) {\n\t\tif (event.button !== 2 && !event.target?.closest(\".context-menu-item\")) {\n\t\t\tthis.Close();\n\t\t}\n\t}\n}","export const ICON_DATASET = [\"s yin-yang\", \"s yen-sign\", \"s x-ray\", \"s wrench\", \"s wreath\", \"s won-sign\", \"s wine-glass-alt\", \"s wine-glass\", \"s wine-bottle\", \"s windsock\", \"s window-restore\", \"s window-minimize\", \"s window-maximize\", \"s window-frame-open\", \"s window-frame\", \"s window-close\", \"s window-alt\", \"s window\", \"s wind-warning\", \"s wind-turbine\", \"s wind\", \"s wifi-slash\", \"s wifi-2\", \"s wifi-1\", \"s wifi\", \"s whistle\", \"s wheelchair\", \"s wheat\", \"s whale\", \"s weight-hanging\", \"s weight\", \"s webcam-slash\", \"s webcam\", \"s waveform-path\", \"s waveform\", \"s wave-triangle\", \"s wave-square\", \"s wave-sine\", \"s water-rise\", \"s water-lower\", \"s water\", \"s watch-fitness\", \"s watch-calculator\", \"s watch\", \"s washer\", \"s warehouse-alt\", \"s warehouse\", \"s wand-magic\", \"s wand\", \"s wallet\", \"s walking\", \"s walkie-talkie\", \"s walker\", \"s wagon-covered\", \"s vr-cardboard\", \"s vote-yea\", \"s vote-nay\", \"s volume-up\", \"s volume-slash\", \"s volume-off\", \"s volume-mute\", \"s volume-down\", \"s volume\", \"s volleyball-ball\", \"s volcano\", \"s voicemail\", \"s viruses\", \"s virus-slash\", \"s virus\", \"s violin\", \"s vihara\", \"s video-slash\", \"s video-plus\", \"s video\", \"s vials\", \"s vial\", \"s vhs\", \"s vest-patches\", \"s vest\", \"s venus-mars\", \"s venus-double\", \"s venus\", \"s vector-square\", \"s value-absolute\", \"s vacuum-robot\", \"s vacuum\", \"s utensils-alt\", \"s utensils\", \"s utensil-spoon\", \"s utensil-knife\", \"s utensil-fork\", \"s users-slash\", \"s users-medical\", \"s users-crown\", \"s users-cog\", \"s users-class\", \"s users\", \"s user-visor\", \"s user-unlock\", \"s user-times\", \"s user-tie\", \"s user-tag\", \"s user-slash\", \"s user-shield\", \"s user-secret\", \"s user-robot\", \"s user-plus\", \"s user-nurse\", \"s user-ninja\", \"s user-music\", \"s user-minus\", \"s user-md-chat\", \"s user-md\", \"s user-lock\", \"s user-injured\", \"s user-headset\", \"s user-hard-hat\", \"s user-graduate\", \"s user-friends\", \"s user-edit\", \"s user-crown\", \"s user-cowboy\", \"s user-cog\", \"s user-clock\", \"s user-circle\", \"s user-check\", \"s user-chart\", \"s user-astronaut\", \"s user-alt-slash\", \"s user-alt\", \"s user-alien\", \"s user\", \"s usd-square\", \"s usd-circle\", \"s usb-drive\", \"s upload\", \"s unlock-alt\", \"s unlock\", \"s unlink\", \"s university\", \"s universal-access\", \"s union\", \"s unicorn\", \"s undo-alt\", \"s undo\", \"s underline\", \"s umbrella-beach\", \"s umbrella\", \"s ufo-beam\", \"s ufo\", \"s typewriter\", \"s tv-retro\", \"s tv-music\", \"s tv-alt\", \"s tv\", \"s turtle\", \"s turntable\", \"s turkey\", \"s tty\", \"s tshirt\", \"s trumpet\", \"s truck-ramp\", \"s truck-plow\", \"s truck-pickup\", \"s truck-moving\", \"s truck-monster\", \"s truck-loading\", \"s truck-couch\", \"s truck-container\", \"s truck\", \"s trophy-alt\", \"s trophy\", \"s triangle-music\", \"s triangle\", \"s trees\", \"s tree-palm\", \"s tree-large\", \"s tree-decorated\", \"s tree-christmas\", \"s tree-alt\", \"s tree\", \"s treasure-chest\", \"s trash-undo-alt\", \"s trash-undo\", \"s trash-restore-alt\", \"s trash-restore\", \"s trash-alt\", \"s trash\", \"s transporter-empty\", \"s transporter-3\", \"s transporter-2\", \"s transporter-1\", \"s transporter\", \"s transgender-alt\", \"s transgender\", \"s tram\", \"s train\", \"s trailer\", \"s traffic-light-stop\", \"s traffic-light-slow\", \"s traffic-light-go\", \"s traffic-light\", \"s traffic-cone\", \"s trademark\", \"s tractor\", \"s tornado\", \"s torii-gate\", \"s torah\", \"s toothbrush\", \"s tooth\", \"s tools\", \"s toolbox\", \"s tombstone-alt\", \"s tombstone\", \"s toilet-paper-slash\", \"s toilet-paper-alt\", \"s toilet-paper\", \"s toilet\", \"s toggle-on\", \"s toggle-off\", \"s tired\", \"s tire-rugged\", \"s tire-pressure-warning\", \"s tire-flat\", \"s tire\", \"s tint-slash\", \"s tint\", \"s times-square\", \"s times-octagon\", \"s times-hexagon\", \"s times-circle\", \"s times\", \"s tilde\", \"s ticket-alt\", \"s ticket\", \"s thunderstorm-sun\", \"s thunderstorm-moon\", \"s thunderstorm\", \"s thumbtack\", \"s thumbs-up\", \"s thumbs-down\", \"s theta\", \"s thermometer-three-quarters\", \"s thermometer-quarter\", \"s thermometer-half\", \"s thermometer-full\", \"s thermometer-empty\", \"s thermometer\", \"s theater-masks\", \"s th-list\", \"s th-large\", \"s th\", \"s text-width\", \"s text-size\", \"s text-height\", \"s text\", \"s terminal\", \"s tennis-ball\", \"s tenge\", \"s temperature-up\", \"s temperature-low\", \"s temperature-hot\", \"s temperature-high\", \"s temperature-frigid\", \"s temperature-down\", \"s telescope\", \"s teeth-open\", \"s teeth\", \"s taxi\", \"s tasks-alt\", \"s tasks\", \"s tape\", \"s tanakh\", \"s tally\", \"s tags\", \"s tag\", \"s taco\", \"s tachometer-slowest\", \"s tachometer-slow\", \"s tachometer-fastest\", \"s tachometer-fast\", \"s tachometer-average\", \"s tachometer-alt-slowest\", \"s tachometer-alt-slow\", \"s tachometer-alt-fastest\", \"s tachometer-alt-fast\", \"s tachometer-alt-average\", \"s tachometer-alt\", \"s tachometer\", \"s tablets\", \"s tablet-rugged\", \"s tablet-android-alt\", \"s tablet-android\", \"s tablet-alt\", \"s tablet\", \"s table-tennis\", \"s table\", \"s syringe\", \"s sync-alt\", \"s sync\", \"s synagogue\", \"s swords-laser\", \"s swords\", \"s sword-laser-alt\", \"s sword-laser\", \"s sword\", \"s swimming-pool\", \"s swimmer\", \"s swatchbook\", \"s surprise\", \"s superscript\", \"s sunset\", \"s sunrise\", \"s sunglasses\", \"s sun-haze\", \"s sun-dust\", \"s sun-cloud\", \"s sun\", \"s suitcase-rolling\", \"s suitcase\", \"s subway\", \"s subscript\", \"s stroopwafel\", \"s strikethrough\", \"s stretcher\", \"s street-view\", \"s stream\", \"s store-slash\", \"s store-alt-slash\", \"s store-alt\", \"s store\", \"s stopwatch-20\", \"s stopwatch\", \"s stop-circle\", \"s stop\", \"s stomach\", \"s stocking\", \"s sticky-note\", \"s stethoscope\", \"s step-forward\", \"s step-backward\", \"s steering-wheel\", \"s steak\", \"s starship-freighter\", \"s starship\", \"s stars\", \"s starfighter-alt\", \"s starfighter\", \"s star-shooting\", \"s star-of-life\", \"s star-of-david\", \"s star-half-alt\", \"s star-half\", \"s star-exclamation\", \"s star-christmas\", \"s star-and-crescent\", \"s star\", \"s stamp\", \"s staff\", \"s squirrel\", \"s square-root-alt\", \"s square-root\", \"s square-full\", \"s square\", \"s sprinkler\", \"s spray-can\", \"s splotch\", \"s spinner-third\", \"s spinner\", \"s spider-web\", \"s spider-black-widow\", \"s spider\", \"s spell-check\", \"s speakers\", \"s speaker\", \"s sparkles\", \"s spade\", \"s space-station-moon-alt\", \"s space-station-moon\", \"s space-shuttle\", \"s spa\", \"s soup\", \"s sort-up\", \"s sort-size-up-alt\", \"s sort-size-up\", \"s sort-size-down-alt\", \"s sort-size-down\", \"s sort-shapes-up-alt\", \"s sort-shapes-up\", \"s sort-shapes-down-alt\", \"s sort-shapes-down\", \"s sort-numeric-up-alt\", \"s sort-numeric-up\", \"s sort-numeric-down-alt\", \"s sort-numeric-down\", \"s sort-down\", \"s sort-circle-up\", \"s sort-circle-down\", \"s sort-circle\", \"s sort-amount-up-alt\", \"s sort-amount-up\", \"s sort-amount-down-alt\", \"s sort-amount-down\", \"s sort-alt\", \"s sort-alpha-up-alt\", \"s sort-alpha-up\", \"s sort-alpha-down-alt\", \"s sort-alpha-down\", \"s sort\", \"s solar-system\", \"s solar-panel\", \"s socks\", \"s soap\", \"s snowplow\", \"s snowmobile\", \"s snowman\", \"s snowflakes\", \"s snowflake\", \"s snowboarding\", \"s snow-blowing\", \"s snooze\", \"s snake\", \"s sms\", \"s smoking-ban\", \"s smoking\", \"s smoke\", \"s smog\", \"s smile-wink\", \"s smile-plus\", \"s smile-beam\", \"s smile\", \"s sliders-v-square\", \"s sliders-v\", \"s sliders-h-square\", \"s sliders-h\", \"s sleigh\", \"s sledding\", \"s slash\", \"s skull-crossbones\", \"s skull-cow\", \"s skull\", \"s skiing-nordic\", \"s skiing\", \"s ski-lift\", \"s ski-jump\", \"s skeleton\", \"s skating\", \"s sitemap\", \"s siren-on\", \"s siren\", \"s sink\", \"s sim-card\", \"s signature\", \"s signal-stream\", \"s signal-slash\", \"s signal-alt-slash\", \"s signal-alt-3\", \"s signal-alt-2\", \"s signal-alt-1\", \"s signal-alt\", \"s signal-4\", \"s signal-3\", \"s signal-2\", \"s signal-1\", \"s signal\", \"s sign-out-alt\", \"s sign-out\", \"s sign-language\", \"s sign-in-alt\", \"s sign-in\", \"s sign\", \"s sigma\", \"s sickle\", \"s shuttlecock\", \"s shuttle-van\", \"s shredder\", \"s shower\", \"s shovel-snow\", \"s shovel\", \"s shopping-cart\", \"s shopping-basket\", \"s shopping-bag\", \"s shoe-prints\", \"s shish-kebab\", \"s shipping-timed\", \"s shipping-fast\", \"s ship\", \"s shield-virus\", \"s shield-cross\", \"s shield-check\", \"s shield-alt\", \"s shield\", \"s shekel-sign\", \"s sheep\", \"s share-square\", \"s share-alt-square\", \"s share-alt\", \"s share-all\", \"s share\", \"s shapes\", \"s server\", \"s sensor-smoke\", \"s sensor-on\", \"s sensor-fire\", \"s sensor-alert\", \"s sensor\", \"s send-backward\", \"s send-back\", \"s seedling\", \"s search-plus\", \"s search-minus\", \"s search-location\", \"s search-dollar\", \"s search\", \"s sd-card\", \"s scythe\", \"s scrubber\", \"s scroll-old\", \"s scroll\", \"s screwdriver\", \"s school\", \"s scarf\", \"s scarecrow\", \"s scanner-touchscreen\", \"s scanner-keyboard\", \"s scanner-image\", \"s scanner\", \"s scalpel-path\", \"s scalpel\", \"s saxophone\", \"s sax-hot\", \"s save\", \"s sausage\", \"s satellite-dish\", \"s satellite\", \"s sandwich\", \"s salad\", \"s sad-tear\", \"s sad-cry\", \"s sack-dollar\", \"s sack\", \"s rv\", \"s rupee-sign\", \"s running\", \"s ruler-vertical\", \"s ruler-triangle\", \"s ruler-horizontal\", \"s ruler-combined\", \"s ruler\", \"s ruble-sign\", \"s rss-square\", \"s rss\", \"s router\", \"s route-interstate\", \"s route-highway\", \"s route\", \"s rocket-launch\", \"s rocket\", \"s robot\", \"s road\", \"s rings-wedding\", \"s ring\", \"s ribbon\", \"s retweet-alt\", \"s retweet\", \"s restroom\", \"s republican\", \"s reply-all\", \"s reply\", \"s repeat-alt\", \"s repeat-1-alt\", \"s repeat-1\", \"s repeat\", \"s remove-format\", \"s registered\", \"s refrigerator\", \"s redo-alt\", \"s redo\", \"s recycle\", \"s rectangle-wide\", \"s rectangle-portrait\", \"s rectangle-landscape\", \"s record-vinyl\", \"s receipt\", \"s raygun\", \"s random\", \"s ramp-loading\", \"s ram\", \"s raindrops\", \"s rainbow\", \"s radio-alt\", \"s radio\", \"s radiation-alt\", \"s radiation\", \"s radar\", \"s racquet\", \"s rabbit-fast\", \"s rabbit\", \"s quran\", \"s quote-right\", \"s quote-left\", \"s quidditch\", \"s question-square\", \"s question-circle\", \"s question\", \"s qrcode\", \"s puzzle-piece\", \"s pumpkin\", \"s pump-soap\", \"s pump-medical\", \"s projector\", \"s project-diagram\", \"s procedures\", \"s print-slash\", \"s print-search\", \"s print\", \"s presentation\", \"s prescription-bottle-alt\", \"s prescription-bottle\", \"s prescription\", \"s praying-hands\", \"s pray\", \"s power-off\", \"s pound-sign\", \"s portrait\", \"s portal-exit\", \"s portal-enter\", \"s popcorn\", \"s poop\", \"s poo-storm\", \"s poo\", \"s poll-people\", \"s poll-h\", \"s poll\", \"s police-box\", \"s podium-star\", \"s podium\", \"s podcast\", \"s plus-square\", \"s plus-octagon\", \"s plus-hexagon\", \"s plus-circle\", \"s plus\", \"s plug\", \"s play-circle\", \"s play\", \"s planet-ringed\", \"s planet-moon\", \"s plane-slash\", \"s plane-departure\", \"s plane-arrival\", \"s plane-alt\", \"s plane\", \"s place-of-worship\", \"s pizza-slice\", \"s pizza\", \"s pills\", \"s piggy-bank\", \"s pig\", \"s pie\", \"s piano-keyboard\", \"s piano\", \"s pi\", \"s photo-video\", \"s phone-volume\", \"s phone-square-alt\", \"s phone-square\", \"s phone-slash\", \"s phone-rotary\", \"s phone-plus\", \"s phone-office\", \"s phone-laptop\", \"s phone-alt\", \"s phone\", \"s person-sign\", \"s person-dolly-empty\", \"s person-dolly\", \"s person-carry\", \"s person-booth\", \"s percentage\", \"s percent\", \"s pepper-hot\", \"s people-carry\", \"s people-arrows\", \"s pennant\", \"s pencil-ruler\", \"s pencil-paintbrush\", \"s pencil-alt\", \"s pencil\", \"s pen-square\", \"s pen-nib\", \"s pen-fancy\", \"s pen-alt\", \"s pen\", \"s pegasus\", \"s peace\", \"s paw-claws\", \"s paw-alt\", \"s paw\", \"s pause-circle\", \"s pause\", \"s paste\", \"s pastafarianism\", \"s passport\", \"s parking-slash\", \"s parking-circle-slash\", \"s parking-circle\", \"s parking\", \"s paragraph-rtl\", \"s paragraph\", \"s parachute-box\", \"s paperclip\", \"s paper-plane\", \"s pallet-alt\", \"s pallet\", \"s palette\", \"s paint-roller\", \"s paint-brush-alt\", \"s paint-brush\", \"s pager\", \"s page-break\", \"s overline\", \"s oven\", \"s outlet\", \"s outdent\", \"s otter\", \"s ornament\", \"s omega\", \"s om\", \"s oil-temp\", \"s oil-can\", \"s octagon\", \"s object-ungroup\", \"s object-group\", \"s notes-medical\", \"s not-equal\", \"s newspaper\", \"s neuter\", \"s network-wired\", \"s narwhal\", \"s music-slash\", \"s music-alt-slash\", \"s music-alt\", \"s music\", \"s mug-tea\", \"s mug-marshmallows\", \"s mug-hot\", \"s mug\", \"s mp3-player\", \"s mouse-pointer\", \"s mouse-alt\", \"s mouse\", \"s mountains\", \"s mountain\", \"s motorcycle\", \"s mosque\", \"s mortar-pestle\", \"s moon-stars\", \"s moon-cloud\", \"s moon\", \"s monument\", \"s monkey\", \"s monitor-heart-rate\", \"s money-check-edit-alt\", \"s money-check-edit\", \"s money-check-alt\", \"s money-check\", \"s money-bill-wave-alt\", \"s money-bill-wave\", \"s money-bill-alt\", \"s money-bill\", \"s mobile-android-alt\", \"s mobile-android\", \"s mobile-alt\", \"s mobile\", \"s mitten\", \"s mistletoe\", \"s minus-square\", \"s minus-octagon\", \"s minus-hexagon\", \"s minus-circle\", \"s minus\", \"s mind-share\", \"s microwave\", \"s microscope\", \"s microphone-stand\", \"s microphone-slash\", \"s microphone-alt-slash\", \"s microphone-alt\", \"s microphone\", \"s microchip\", \"s meteor\", \"s mercury\", \"s menorah\", \"s memory\", \"s meh-rolling-eyes\", \"s meh-blank\", \"s meh\", \"s megaphone\", \"s medkit\", \"s medal\", \"s meat\", \"s mask\", \"s mars-stroke-v\", \"s mars-stroke-h\", \"s mars-stroke\", \"s mars-double\", \"s mars\", \"s marker\", \"s map-signs\", \"s map-pin\", \"s map-marker-times\", \"s map-marker-smile\", \"s map-marker-slash\", \"s map-marker-question\", \"s map-marker-plus\", \"s map-marker-minus\", \"s map-marker-exclamation\", \"s map-marker-edit\", \"s map-marker-check\", \"s map-marker-alt-slash\", \"s map-marker-alt\", \"s map-marker\", \"s map-marked-alt\", \"s map-marked\", \"s map\", \"s mandolin\", \"s male\", \"s mailbox\", \"s mail-bulk\", \"s magnet\", \"s magic\", \"s mace\", \"s lungs-virus\", \"s lungs\", \"s luggage-cart\", \"s luchador\", \"s low-vision\", \"s loveseat\", \"s long-arrow-up\", \"s long-arrow-right\", \"s long-arrow-left\", \"s long-arrow-down\", \"s long-arrow-alt-up\", \"s long-arrow-alt-right\", \"s long-arrow-alt-left\", \"s long-arrow-alt-down\", \"s lock-open-alt\", \"s lock-open\", \"s lock-alt\", \"s lock\", \"s location-slash\", \"s location-circle\", \"s location-arrow\", \"s location\", \"s list-ul\", \"s list-ol\", \"s list-music\", \"s list-alt\", \"s list\", \"s lira-sign\", \"s lips\", \"s link\", \"s line-height\", \"s line-columns\", \"s lights-holiday\", \"s lightbulb-slash\", \"s lightbulb-on\", \"s lightbulb-exclamation\", \"s lightbulb-dollar\", \"s lightbulb\", \"s light-switch-on\", \"s light-switch-off\", \"s light-switch\", \"s light-ceiling\", \"s life-ring\", \"s level-up-alt\", \"s level-up\", \"s level-down-alt\", \"s level-down\", \"s less-than-equal\", \"s less-than\", \"s lemon\", \"s leaf-oak\", \"s leaf-maple\", \"s leaf-heart\", \"s leaf\", \"s layer-plus\", \"s layer-minus\", \"s layer-group\", \"s laugh-wink\", \"s laugh-squint\", \"s laugh-beam\", \"s laugh\", \"s lasso\", \"s laptop-medical\", \"s laptop-house\", \"s laptop-code\", \"s laptop\", \"s language\", \"s landmark-alt\", \"s landmark\", \"s lamp-floor\", \"s lamp-desk\", \"s lamp\", \"s lambda\", \"s knife-kitchen\", \"s kiwi-bird\", \"s kite\", \"s kiss-wink-heart\", \"s kiss-beam\", \"s kiss\", \"s kidneys\", \"s khanda\", \"s keynote\", \"s keyboard\", \"s key-skeleton\", \"s key\", \"s kerning\", \"s kazoo\", \"s kaaba\", \"s jug\", \"s joystick\", \"s journal-whills\", \"s joint\", \"s jedi\", \"s jack-o-lantern\", \"s italic\", \"s island-tropical\", \"s inventory\", \"s intersection\", \"s integral\", \"s inhaler\", \"s info-square\", \"s info-circle\", \"s info\", \"s infinity\", \"s industry-alt\", \"s industry\", \"s indent\", \"s inbox-out\", \"s inbox-in\", \"s inbox\", \"s images\", \"s image-polaroid\", \"s image\", \"s igloo\", \"s id-card-alt\", \"s id-card\", \"s id-badge\", \"s icons-alt\", \"s icons\", \"s icicles\", \"s ice-skate\", \"s ice-cream\", \"s i-cursor\", \"s hurricane\", \"s humidity\", \"s hryvnia\", \"s house-user\", \"s house-signal\", \"s house-return\", \"s house-night\", \"s house-leave\", \"s house-flood\", \"s house-day\", \"s house-damage\", \"s house\", \"s hourglass-start\", \"s hourglass-half\", \"s hourglass-end\", \"s hourglass\", \"s hotel\", \"s hotdog\", \"s hot-tub\", \"s hospitals\", \"s hospital-user\", \"s hospital-symbol\", \"s hospital-alt\", \"s hospital\", \"s horse-saddle\", \"s horse-head\", \"s horse\", \"s horizontal-rule\", \"s hood-cloak\", \"s home-lg-alt\", \"s home-lg\", \"s home-heart\", \"s home-alt\", \"s home\", \"s holly-berry\", \"s hockey-sticks\", \"s hockey-puck\", \"s hockey-mask\", \"s history\", \"s hippo\", \"s hiking\", \"s highlighter\", \"s hexagon\", \"s helmet-battle\", \"s helicopter\", \"s heat\", \"s heartbeat\", \"s heart-square\", \"s heart-rate\", \"s heart-circle\", \"s heart-broken\", \"s heart\", \"s headset\", \"s headphones-alt\", \"s headphones\", \"s heading\", \"s head-vr\", \"s head-side-virus\", \"s head-side-medical\", \"s head-side-mask\", \"s head-side-headphones\", \"s head-side-cough-slash\", \"s head-side-cough\", \"s head-side-brain\", \"s head-side\", \"s hdd\", \"s hat-wizard\", \"s hat-witch\", \"s hat-winter\", \"s hat-santa\", \"s hat-cowboy-side\", \"s hat-cowboy\", \"s hat-chef\", \"s hashtag\", \"s hard-hat\", \"s hanukiah\", \"s handshake-slash\", \"s handshake-alt-slash\", \"s handshake-alt\", \"s handshake\", \"s hands-wash\", \"s hands-usd\", \"s hands-helping\", \"s hands-heart\", \"s hands\", \"s hand-spock\", \"s hand-sparkles\", \"s hand-scissors\", \"s hand-rock\", \"s hand-receiving\", \"s hand-pointer\", \"s hand-point-up\", \"s hand-point-right\", \"s hand-point-left\", \"s hand-point-down\", \"s hand-peace\", \"s hand-paper\", \"s hand-middle-finger\", \"s hand-lizard\", \"s hand-holding-water\", \"s hand-holding-usd\", \"s hand-holding-seedling\", \"s hand-holding-medical\", \"s hand-holding-magic\", \"s hand-holding-heart\", \"s hand-holding-box\", \"s hand-holding\", \"s hand-heart\", \"s hamsa\", \"s hammer-war\", \"s hammer\", \"s hamburger\", \"s h4\", \"s h3\", \"s h2\", \"s h1\", \"s h-square\", \"s guitars\", \"s guitar-electric\", \"s guitar\", \"s grip-vertical\", \"s grip-lines-vertical\", \"s grip-lines\", \"s grip-horizontal\", \"s grin-wink\", \"s grin-tongue-wink\", \"s grin-tongue-squint\", \"s grin-tongue\", \"s grin-tears\", \"s grin-stars\", \"s grin-squint-tears\", \"s grin-squint\", \"s grin-hearts\", \"s grin-beam-sweat\", \"s grin-beam\", \"s grin-alt\", \"s grin\", \"s grimace\", \"s greater-than-equal\", \"s greater-than\", \"s gramophone\", \"s graduation-cap\", \"s gopuram\", \"s golf-club\", \"s golf-ball\", \"s globe-stand\", \"s globe-snow\", \"s globe-europe\", \"s globe-asia\", \"s globe-americas\", \"s globe-africa\", \"s globe\", \"s glasses-alt\", \"s glasses\", \"s glass-whiskey-rocks\", \"s glass-whiskey\", \"s glass-martini-alt\", \"s glass-martini\", \"s glass-citrus\", \"s glass-cheers\", \"s glass-champagne\", \"s glass\", \"s gingerbread-man\", \"s gifts\", \"s gift-card\", \"s gift\", \"s ghost\", \"s genderless\", \"s gem\", \"s gavel\", \"s gas-pump-slash\", \"s gas-pump\", \"s garage-open\", \"s garage-car\", \"s garage\", \"s gamepad-alt\", \"s gamepad\", \"s game-console-handheld\", \"s game-board-alt\", \"s game-board\", \"s galaxy\", \"s futbol\", \"s funnel-dollar\", \"s function\", \"s frown-open\", \"s frown\", \"s frosty-head\", \"s frog\", \"s french-fries\", \"s fragile\", \"s forward\", \"s forklift\", \"s football-helmet\", \"s football-ball\", \"s font-case\", \"s font\", \"s folders\", \"s folder-upload\", \"s folder-tree\", \"s folder-times\", \"s folder-plus\", \"s folder-open\", \"s folder-minus\", \"s folder-download\", \"s folder\", \"s fog\", \"s flux-capacitor\", \"s flute\", \"s flushed\", \"s flower-tulip\", \"s flower-daffodil\", \"s flower\", \"s flask-potion\", \"s flask-poison\", \"s flask\", \"s flashlight\", \"s flame\", \"s flag-usa\", \"s flag-checkered\", \"s flag-alt\", \"s flag\", \"s fist-raised\", \"s fish-cooked\", \"s fish\", \"s first-aid\", \"s fireplace\", \"s fire-smoke\", \"s fire-extinguisher\", \"s fire-alt\", \"s fire\", \"s fingerprint\", \"s filter\", \"s film-canister\", \"s film-alt\", \"s film\", \"s fill-drip\", \"s fill\", \"s files-medical\", \"s file-word\", \"s file-video\", \"s file-user\", \"s file-upload\", \"s file-times\", \"s file-spreadsheet\", \"s file-signature\", \"s file-search\", \"s file-prescription\", \"s file-powerpoint\", \"s file-plus\", \"s file-pdf\", \"s file-music\", \"s file-minus\", \"s file-medical-alt\", \"s file-medical\", \"s file-invoice-dollar\", \"s file-invoice\", \"s file-import\", \"s file-image\", \"s file-export\", \"s file-exclamation\", \"s file-excel\", \"s file-edit\", \"s file-download\", \"s file-csv\", \"s file-contract\", \"s file-code\", \"s file-check\", \"s file-chart-pie\", \"s file-chart-line\", \"s file-certificate\", \"s file-audio\", \"s file-archive\", \"s file-alt\", \"s file\", \"s fighter-jet\", \"s field-hockey\", \"s female\", \"s feather-alt\", \"s feather\", \"s fax\", \"s faucet-drip\", \"s faucet\", \"s fast-forward\", \"s fast-backward\", \"s farm\", \"s fan-table\", \"s fan\", \"s eye-slash\", \"s eye-evil\", \"s eye-dropper\", \"s eye\", \"s external-link-square-alt\", \"s external-link-square\", \"s external-link-alt\", \"s external-link\", \"s expand-wide\", \"s expand-arrows-alt\", \"s expand-arrows\", \"s expand-alt\", \"s expand\", \"s exclamation-triangle\", \"s exclamation-square\", \"s exclamation-circle\", \"s exclamation\", \"s exchange-alt\", \"s exchange\", \"s euro-sign\", \"s ethernet\", \"s eraser\", \"s equals\", \"s envelope-square\", \"s envelope-open-text\", \"s envelope-open-dollar\", \"s envelope-open\", \"s envelope\", \"s engine-warning\", \"s empty-set\", \"s ellipsis-v-alt\", \"s ellipsis-v\", \"s ellipsis-h-alt\", \"s ellipsis-h\", \"s elephant\", \"s eject\", \"s egg-fried\", \"s egg\", \"s edit\", \"s eclipse-alt\", \"s eclipse\", \"s ear-muffs\", \"s ear\", \"s dungeon\", \"s dumpster-fire\", \"s dumpster\", \"s dumbbell\", \"s duck\", \"s dryer-alt\", \"s dryer\", \"s drumstick-bite\", \"s drumstick\", \"s drum-steelpan\", \"s drum\", \"s drone-alt\", \"s drone\", \"s dreidel\", \"s draw-square\", \"s draw-polygon\", \"s draw-circle\", \"s dragon\", \"s drafting-compass\", \"s download\", \"s dove\", \"s dot-circle\", \"s door-open\", \"s door-closed\", \"s donate\", \"s dolly-flatbed-empty\", \"s dolly-flatbed-alt\", \"s dolly-flatbed\", \"s dolly-empty\", \"s dolly\", \"s dollar-sign\", \"s dog-leashed\", \"s dog\", \"s do-not-enter\", \"s dna\", \"s dizzy\", \"s divide\", \"s disease\", \"s disc-drive\", \"s directions\", \"s diploma\", \"s digital-tachograph\", \"s digging\", \"s dice-two\", \"s dice-three\", \"s dice-six\", \"s dice-one\", \"s dice-four\", \"s dice-five\", \"s dice-d8\", \"s dice-d6\", \"s dice-d4\", \"s dice-d20\", \"s dice-d12\", \"s dice-d10\", \"s dice\", \"s diamond\", \"s diagnoses\", \"s dharmachakra\", \"s dewpoint\", \"s desktop-alt\", \"s desktop\", \"s democrat\", \"s deer-rudolph\", \"s deer\", \"s debug\", \"s deaf\", \"s database\", \"s dagger\", \"s cut\", \"s curling\", \"s cubes\", \"s cube\", \"s crutches\", \"s crutch\", \"s crown\", \"s crow\", \"s crosshairs\", \"s cross\", \"s crop-alt\", \"s crop\", \"s croissant\", \"s cricket\", \"s credit-card-front\", \"s credit-card-blank\", \"s credit-card\", \"s cowbell-more\", \"s cowbell\", \"s cow\", \"s couch\", \"s corn\", \"s copyright\", \"s copy\", \"s cookie-bite\", \"s cookie\", \"s conveyor-belt-alt\", \"s conveyor-belt\", \"s container-storage\", \"s construction\", \"s concierge-bell\", \"s computer-speaker\", \"s computer-classic\", \"s compress-wide\", \"s compress-arrows-alt\", \"s compress-alt\", \"s compress\", \"s compass-slash\", \"s compass\", \"s compact-disc\", \"s comments-dollar\", \"s comments-alt-dollar\", \"s comments-alt\", \"s comments\", \"s comment-times\", \"s comment-smile\", \"s comment-slash\", \"s comment-plus\", \"s comment-music\", \"s comment-minus\", \"s comment-medical\", \"s comment-lines\", \"s comment-exclamation\", \"s comment-edit\", \"s comment-dots\", \"s comment-dollar\", \"s comment-check\", \"s comment-alt-times\", \"s comment-alt-smile\", \"s comment-alt-slash\", \"s comment-alt-plus\", \"s comment-alt-music\", \"s comment-alt-minus\", \"s comment-alt-medical\", \"s comment-alt-lines\", \"s comment-alt-exclamation\", \"s comment-alt-edit\", \"s comment-alt-dots\", \"s comment-alt-dollar\", \"s comment-alt-check\", \"s comment-alt\", \"s comment\", \"s comet\", \"s columns\", \"s coins\", \"s coin\", \"s cogs\", \"s cog\", \"s coffin-cross\", \"s coffin\", \"s coffee-togo\", \"s coffee-pot\", \"s coffee\", \"s code-merge\", \"s code-commit\", \"s code-branch\", \"s code\", \"s cocktail\", \"s club\", \"s clouds-sun\", \"s clouds-moon\", \"s clouds\", \"s cloud-upload-alt\", \"s cloud-upload\", \"s cloud-sun-rain\", \"s cloud-sun\", \"s cloud-snow\", \"s cloud-sleet\", \"s cloud-showers-heavy\", \"s cloud-showers\", \"s cloud-rainbow\", \"s cloud-rain\", \"s cloud-music\", \"s cloud-moon-rain\", \"s cloud-moon\", \"s cloud-meatball\", \"s cloud-hail-mixed\", \"s cloud-hail\", \"s cloud-drizzle\", \"s cloud-download-alt\", \"s cloud-download\", \"s cloud\", \"s closed-captioning\", \"s clone\", \"s clock\", \"s clipboard-user\", \"s clipboard-prescription\", \"s clipboard-list-check\", \"s clipboard-list\", \"s clipboard-check\", \"s clipboard\", \"s clinic-medical\", \"s claw-marks\", \"s clarinet\", \"s city\", \"s circle-notch\", \"s circle\", \"s church\", \"s chimney\", \"s child\", \"s chevron-up\", \"s chevron-square-up\", \"s chevron-square-right\", \"s chevron-square-left\", \"s chevron-square-down\", \"s chevron-right\", \"s chevron-left\", \"s chevron-down\", \"s chevron-double-up\", \"s chevron-double-right\", \"s chevron-double-left\", \"s chevron-double-down\", \"s chevron-circle-up\", \"s chevron-circle-right\", \"s chevron-circle-left\", \"s chevron-circle-down\", \"s chess-rook-alt\", \"s chess-rook\", \"s chess-queen-alt\", \"s chess-queen\", \"s chess-pawn-alt\", \"s chess-pawn\", \"s chess-knight-alt\", \"s chess-knight\", \"s chess-king-alt\", \"s chess-king\", \"s chess-clock-alt\", \"s chess-clock\", \"s chess-board\", \"s chess-bishop-alt\", \"s chess-bishop\", \"s chess\", \"s cheeseburger\", \"s cheese-swiss\", \"s cheese\", \"s check-square\", \"s check-double\", \"s check-circle\", \"s check\", \"s chart-scatter\", \"s chart-pie-alt\", \"s chart-pie\", \"s chart-network\", \"s chart-line-down\", \"s chart-line\", \"s chart-bar\", \"s chart-area\", \"s charging-station\", \"s chalkboard-teacher\", \"s chalkboard\", \"s chair-office\", \"s chair\", \"s certificate\", \"s cctv\", \"s cauldron\", \"s cat-space\", \"s cat\", \"s cassette-tape\", \"s cash-register\", \"s cart-plus\", \"s cart-arrow-down\", \"s cars\", \"s carrot\", \"s caret-up\", \"s caret-square-up\", \"s caret-square-right\", \"s caret-square-left\", \"s caret-square-down\", \"s caret-right\", \"s caret-left\", \"s caret-down\", \"s caret-circle-up\", \"s caret-circle-right\", \"s caret-circle-left\", \"s caret-circle-down\", \"s caravan-alt\", \"s caravan\", \"s car-wash\", \"s car-tilt\", \"s car-side\", \"s car-mechanic\", \"s car-garage\", \"s car-crash\", \"s car-bus\", \"s car-bump\", \"s car-building\", \"s car-battery\", \"s car-alt\", \"s car\", \"s capsules\", \"s cannabis\", \"s candy-corn\", \"s candy-cane\", \"s candle-holder\", \"s campground\", \"s campfire\", \"s camera-retro\", \"s camera-polaroid\", \"s camera-movie\", \"s camera-home\", \"s camera-alt\", \"s camera\", \"s camcorder\", \"s calendar-week\", \"s calendar-times\", \"s calendar-star\", \"s calendar-plus\", \"s calendar-minus\", \"s calendar-exclamation\", \"s calendar-edit\", \"s calendar-day\", \"s calendar-check\", \"s calendar-alt\", \"s calendar\", \"s calculator-alt\", \"s calculator\", \"s cactus\", \"s cabinet-filing\", \"s business-time\", \"s bus-school\", \"s bus-alt\", \"s bus\", \"s burrito\", \"s burn\", \"s burger-soda\", \"s bullseye-pointer\", \"s bullseye-arrow\", \"s bullseye\", \"s bullhorn\", \"s building\", \"s bug\", \"s brush\", \"s browser\", \"s broom\", \"s broadcast-tower\", \"s bring-front\", \"s bring-forward\", \"s briefcase-medical\", \"s briefcase\", \"s bread-slice\", \"s bread-loaf\", \"s brain\", \"s braille\", \"s brackets-curly\", \"s brackets\", \"s boxing-glove\", \"s boxes-alt\", \"s boxes\", \"s box-usd\", \"s box-up\", \"s box-tissue\", \"s box-open\", \"s box-heart\", \"s box-full\", \"s box-fragile\", \"s box-check\", \"s box-ballot\", \"s box-alt\", \"s box\", \"s bowling-pins\", \"s bowling-ball\", \"s bow-arrow\", \"s border-top\", \"s border-style-alt\", \"s border-style\", \"s border-right\", \"s border-outer\", \"s border-none\", \"s border-left\", \"s border-inner\", \"s border-center-v\", \"s border-center-h\", \"s border-bottom\", \"s border-all\", \"s booth-curtain\", \"s boot\", \"s boombox\", \"s books-medical\", \"s books\", \"s bookmark\", \"s book-user\", \"s book-spells\", \"s book-reader\", \"s book-open\", \"s book-medical\", \"s book-heart\", \"s book-dead\", \"s book-alt\", \"s book\", \"s bong\", \"s bone-break\", \"s bone\", \"s bomb\", \"s bolt\", \"s bold\", \"s blog\", \"s blinds-raised\", \"s blinds-open\", \"s blinds\", \"s blind\", \"s blender-phone\", \"s blender\", \"s blanket\", \"s birthday-cake\", \"s biohazard\", \"s binoculars\", \"s biking-mountain\", \"s biking\", \"s bicycle\", \"s bible\", \"s bezier-curve\", \"s betamax\", \"s bells\", \"s bell-slash\", \"s bell-school-slash\", \"s bell-school\", \"s bell-plus\", \"s bell-on\", \"s bell-exclamation\", \"s bell\", \"s beer\", \"s bed-empty\", \"s bed-bunk\", \"s bed-alt\", \"s bed\", \"s battery-three-quarters\", \"s battery-slash\", \"s battery-quarter\", \"s battery-half\", \"s battery-full\", \"s battery-empty\", \"s battery-bolt\", \"s bath\", \"s bat\", \"s basketball-hoop\", \"s basketball-ball\", \"s baseball-ball\", \"s baseball\", \"s bars\", \"s barcode-scan\", \"s barcode-read\", \"s barcode-alt\", \"s barcode\", \"s banjo\", \"s band-aid\", \"s ban\", \"s ballot-check\", \"s ballot\", \"s ball-pile\", \"s balance-scale-right\", \"s balance-scale-left\", \"s balance-scale\", \"s bahai\", \"s bags-shopping\", \"s badger-honey\", \"s badge-sheriff\", \"s badge-percent\", \"s badge-dollar\", \"s badge-check\", \"s badge\", \"s bacterium\", \"s bacteria\", \"s bacon\", \"s backward\", \"s backspace\", \"s backpack\", \"s baby-carriage\", \"s baby\", \"s axe-battle\", \"s axe\", \"s award\", \"s audio-description\", \"s atom-alt\", \"s atom\", \"s atlas\", \"s at\", \"s asterisk\", \"s assistive-listening-systems\", \"s arrows-v\", \"s arrows-h\", \"s arrows-alt-v\", \"s arrows-alt-h\", \"s arrows-alt\", \"s arrows\", \"s arrow-up\", \"s arrow-to-top\", \"s arrow-to-right\", \"s arrow-to-left\", \"s arrow-to-bottom\", \"s arrow-square-up\", \"s arrow-square-right\", \"s arrow-square-left\", \"s arrow-square-down\", \"s arrow-right\", \"s arrow-left\", \"s arrow-from-top\", \"s arrow-from-right\", \"s arrow-from-left\", \"s arrow-from-bottom\", \"s arrow-down\", \"s arrow-circle-up\", \"s arrow-circle-right\", \"s arrow-circle-left\", \"s arrow-circle-down\", \"s arrow-alt-up\", \"s arrow-alt-to-top\", \"s arrow-alt-to-right\", \"s arrow-alt-to-left\", \"s arrow-alt-to-bottom\", \"s arrow-alt-square-up\", \"s arrow-alt-square-right\", \"s arrow-alt-square-left\", \"s arrow-alt-square-down\", \"s arrow-alt-right\", \"s arrow-alt-left\", \"s arrow-alt-from-top\", \"s arrow-alt-from-right\", \"s arrow-alt-from-left\", \"s arrow-alt-from-bottom\", \"s arrow-alt-down\", \"s arrow-alt-circle-up\", \"s arrow-alt-circle-right\", \"s arrow-alt-circle-left\", \"s arrow-alt-circle-down\", \"s archway\", \"s archive\", \"s apple-crate\", \"s apple-alt\", \"s ankh\", \"s angry\", \"s angle-up\", \"s angle-right\", \"s angle-left\", \"s angle-down\", \"s angle-double-up\", \"s angle-double-right\", \"s angle-double-left\", \"s angle-double-down\", \"s angel\", \"s anchor\", \"s analytics\", \"s amp-guitar\", \"s american-sign-language-interpreting\", \"s ambulance\", \"s allergies\", \"s align-slash\", \"s align-right\", \"s align-left\", \"s align-justify\", \"s align-center\", \"s alien-monster\", \"s alien\", \"s alicorn\", \"s album-collection\", \"s album\", \"s alarm-snooze\", \"s alarm-plus\", \"s alarm-exclamation\", \"s alarm-clock\", \"s air-freshener\", \"s air-conditioner\", \"s adjust\", \"s address-card\", \"s address-book\", \"s ad\", \"s acorn\", \"s abacus\", \"r yin-yang\", \"r yen-sign\", \"r x-ray\", \"r wrench\", \"r wreath\", \"r won-sign\", \"r wine-glass-alt\", \"r wine-glass\", \"r wine-bottle\", \"r windsock\", \"r window-restore\", \"r window-minimize\", \"r window-maximize\", \"r window-frame-open\", \"r window-frame\", \"r window-close\", \"r window-alt\", \"r window\", \"r wind-warning\", \"r wind-turbine\", \"r wind\", \"r wifi-slash\", \"r wifi-2\", \"r wifi-1\", \"r wifi\", \"r whistle\", \"r wheelchair\", \"r wheat\", \"r whale\", \"r weight-hanging\", \"r weight\", \"r webcam-slash\", \"r webcam\", \"r waveform-path\", \"r waveform\", \"r wave-triangle\", \"r wave-square\", \"r wave-sine\", \"r water-rise\", \"r water-lower\", \"r water\", \"r watch-fitness\", \"r watch-calculator\", \"r watch\", \"r washer\", \"r warehouse-alt\", \"r warehouse\", \"r wand-magic\", \"r wand\", \"r wallet\", \"r walking\", \"r walkie-talkie\", \"r walker\", \"r wagon-covered\", \"r vr-cardboard\", \"r vote-yea\", \"r vote-nay\", \"r volume-up\", \"r volume-slash\", \"r volume-off\", \"r volume-mute\", \"r volume-down\", \"r volume\", \"r volleyball-ball\", \"r volcano\", \"r voicemail\", \"r viruses\", \"r virus-slash\", \"r virus\", \"r violin\", \"r vihara\", \"r video-slash\", \"r video-plus\", \"r video\", \"r vials\", \"r vial\", \"r vhs\", \"r vest-patches\", \"r vest\", \"r venus-mars\", \"r venus-double\", \"r venus\", \"r vector-square\", \"r value-absolute\", \"r vacuum-robot\", \"r vacuum\", \"r utensils-alt\", \"r utensils\", \"r utensil-spoon\", \"r utensil-knife\", \"r utensil-fork\", \"r users-slash\", \"r users-medical\", \"r users-crown\", \"r users-cog\", \"r users-class\", \"r users\", \"r user-visor\", \"r user-unlock\", \"r user-times\", \"r user-tie\", \"r user-tag\", \"r user-slash\", \"r user-shield\", \"r user-secret\", \"r user-robot\", \"r user-plus\", \"r user-nurse\", \"r user-ninja\", \"r user-music\", \"r user-minus\", \"r user-md-chat\", \"r user-md\", \"r user-lock\", \"r user-injured\", \"r user-headset\", \"r user-hard-hat\", \"r user-graduate\", \"r user-friends\", \"r user-edit\", \"r user-crown\", \"r user-cowboy\", \"r user-cog\", \"r user-clock\", \"r user-circle\", \"r user-check\", \"r user-chart\", \"r user-astronaut\", \"r user-alt-slash\", \"r user-alt\", \"r user-alien\", \"r user\", \"r usd-square\", \"r usd-circle\", \"r usb-drive\", \"r upload\", \"r unlock-alt\", \"r unlock\", \"r unlink\", \"r university\", \"r universal-access\", \"r union\", \"r unicorn\", \"r undo-alt\", \"r undo\", \"r underline\", \"r umbrella-beach\", \"r umbrella\", \"r ufo-beam\", \"r ufo\", \"r typewriter\", \"r tv-retro\", \"r tv-music\", \"r tv-alt\", \"r tv\", \"r turtle\", \"r turntable\", \"r turkey\", \"r tty\", \"r tshirt\", \"r trumpet\", \"r truck-ramp\", \"r truck-plow\", \"r truck-pickup\", \"r truck-moving\", \"r truck-monster\", \"r truck-loading\", \"r truck-couch\", \"r truck-container\", \"r truck\", \"r trophy-alt\", \"r trophy\", \"r triangle-music\", \"r triangle\", \"r trees\", \"r tree-palm\", \"r tree-large\", \"r tree-decorated\", \"r tree-christmas\", \"r tree-alt\", \"r tree\", \"r treasure-chest\", \"r trash-undo-alt\", \"r trash-undo\", \"r trash-restore-alt\", \"r trash-restore\", \"r trash-alt\", \"r trash\", \"r transporter-empty\", \"r transporter-3\", \"r transporter-2\", \"r transporter-1\", \"r transporter\", \"r transgender-alt\", \"r transgender\", \"r tram\", \"r train\", \"r trailer\", \"r traffic-light-stop\", \"r traffic-light-slow\", \"r traffic-light-go\", \"r traffic-light\", \"r traffic-cone\", \"r trademark\", \"r tractor\", \"r tornado\", \"r torii-gate\", \"r torah\", \"r toothbrush\", \"r tooth\", \"r tools\", \"r toolbox\", \"r tombstone-alt\", \"r tombstone\", \"r toilet-paper-slash\", \"r toilet-paper-alt\", \"r toilet-paper\", \"r toilet\", \"r toggle-on\", \"r toggle-off\", \"r tired\", \"r tire-rugged\", \"r tire-pressure-warning\", \"r tire-flat\", \"r tire\", \"r tint-slash\", \"r tint\", \"r times-square\", \"r times-octagon\", \"r times-hexagon\", \"r times-circle\", \"r times\", \"r tilde\", \"r ticket-alt\", \"r ticket\", \"r thunderstorm-sun\", \"r thunderstorm-moon\", \"r thunderstorm\", \"r thumbtack\", \"r thumbs-up\", \"r thumbs-down\", \"r theta\", \"r thermometer-three-quarters\", \"r thermometer-quarter\", \"r thermometer-half\", \"r thermometer-full\", \"r thermometer-empty\", \"r thermometer\", \"r theater-masks\", \"r th-list\", \"r th-large\", \"r th\", \"r text-width\", \"r text-size\", \"r text-height\", \"r text\", \"r terminal\", \"r tennis-ball\", \"r tenge\", \"r temperature-up\", \"r temperature-low\", \"r temperature-hot\", \"r temperature-high\", \"r temperature-frigid\", \"r temperature-down\", \"r telescope\", \"r teeth-open\", \"r teeth\", \"r taxi\", \"r tasks-alt\", \"r tasks\", \"r tape\", \"r tanakh\", \"r tally\", \"r tags\", \"r tag\", \"r taco\", \"r tachometer-slowest\", \"r tachometer-slow\", \"r tachometer-fastest\", \"r tachometer-fast\", \"r tachometer-average\", \"r tachometer-alt-slowest\", \"r tachometer-alt-slow\", \"r tachometer-alt-fastest\", \"r tachometer-alt-fast\", \"r tachometer-alt-average\", \"r tachometer-alt\", \"r tachometer\", \"r tablets\", \"r tablet-rugged\", \"r tablet-android-alt\", \"r tablet-android\", \"r tablet-alt\", \"r tablet\", \"r table-tennis\", \"r table\", \"r syringe\", \"r sync-alt\", \"r sync\", \"r synagogue\", \"r swords-laser\", \"r swords\", \"r sword-laser-alt\", \"r sword-laser\", \"r sword\", \"r swimming-pool\", \"r swimmer\", \"r swatchbook\", \"r surprise\", \"r superscript\", \"r sunset\", \"r sunrise\", \"r sunglasses\", \"r sun-haze\", \"r sun-dust\", \"r sun-cloud\", \"r sun\", \"r suitcase-rolling\", \"r suitcase\", \"r subway\", \"r subscript\", \"r stroopwafel\", \"r strikethrough\", \"r stretcher\", \"r street-view\", \"r stream\", \"r store-slash\", \"r store-alt-slash\", \"r store-alt\", \"r store\", \"r stopwatch-20\", \"r stopwatch\", \"r stop-circle\", \"r stop\", \"r stomach\", \"r stocking\", \"r sticky-note\", \"r stethoscope\", \"r step-forward\", \"r step-backward\", \"r steering-wheel\", \"r steak\", \"r starship-freighter\", \"r starship\", \"r stars\", \"r starfighter-alt\", \"r starfighter\", \"r star-shooting\", \"r star-of-life\", \"r star-of-david\", \"r star-half-alt\", \"r star-half\", \"r star-exclamation\", \"r star-christmas\", \"r star-and-crescent\", \"r star\", \"r stamp\", \"r staff\", \"r squirrel\", \"r square-root-alt\", \"r square-root\", \"r square-full\", \"r square\", \"r sprinkler\", \"r spray-can\", \"r splotch\", \"r spinner-third\", \"r spinner\", \"r spider-web\", \"r spider-black-widow\", \"r spider\", \"r spell-check\", \"r speakers\", \"r speaker\", \"r sparkles\", \"r spade\", \"r space-station-moon-alt\", \"r space-station-moon\", \"r space-shuttle\", \"r spa\", \"r soup\", \"r sort-up\", \"r sort-size-up-alt\", \"r sort-size-up\", \"r sort-size-down-alt\", \"r sort-size-down\", \"r sort-shapes-up-alt\", \"r sort-shapes-up\", \"r sort-shapes-down-alt\", \"r sort-shapes-down\", \"r sort-numeric-up-alt\", \"r sort-numeric-up\", \"r sort-numeric-down-alt\", \"r sort-numeric-down\", \"r sort-down\", \"r sort-circle-up\", \"r sort-circle-down\", \"r sort-circle\", \"r sort-amount-up-alt\", \"r sort-amount-up\", \"r sort-amount-down-alt\", \"r sort-amount-down\", \"r sort-alt\", \"r sort-alpha-up-alt\", \"r sort-alpha-up\", \"r sort-alpha-down-alt\", \"r sort-alpha-down\", \"r sort\", \"r solar-system\", \"r solar-panel\", \"r socks\", \"r soap\", \"r snowplow\", \"r snowmobile\", \"r snowman\", \"r snowflakes\", \"r snowflake\", \"r snowboarding\", \"r snow-blowing\", \"r snooze\", \"r snake\", \"r sms\", \"r smoking-ban\", \"r smoking\", \"r smoke\", \"r smog\", \"r smile-wink\", \"r smile-plus\", \"r smile-beam\", \"r smile\", \"r sliders-v-square\", \"r sliders-v\", \"r sliders-h-square\", \"r sliders-h\", \"r sleigh\", \"r sledding\", \"r slash\", \"r skull-crossbones\", \"r skull-cow\", \"r skull\", \"r skiing-nordic\", \"r skiing\", \"r ski-lift\", \"r ski-jump\", \"r skeleton\", \"r skating\", \"r sitemap\", \"r siren-on\", \"r siren\", \"r sink\", \"r sim-card\", \"r signature\", \"r signal-stream\", \"r signal-slash\", \"r signal-alt-slash\", \"r signal-alt-3\", \"r signal-alt-2\", \"r signal-alt-1\", \"r signal-alt\", \"r signal-4\", \"r signal-3\", \"r signal-2\", \"r signal-1\", \"r signal\", \"r sign-out-alt\", \"r sign-out\", \"r sign-language\", \"r sign-in-alt\", \"r sign-in\", \"r sign\", \"r sigma\", \"r sickle\", \"r shuttlecock\", \"r shuttle-van\", \"r shredder\", \"r shower\", \"r shovel-snow\", \"r shovel\", \"r shopping-cart\", \"r shopping-basket\", \"r shopping-bag\", \"r shoe-prints\", \"r shish-kebab\", \"r shipping-timed\", \"r shipping-fast\", \"r ship\", \"r shield-virus\", \"r shield-cross\", \"r shield-check\", \"r shield-alt\", \"r shield\", \"r shekel-sign\", \"r sheep\", \"r share-square\", \"r share-alt-square\", \"r share-alt\", \"r share-all\", \"r share\", \"r shapes\", \"r server\", \"r sensor-smoke\", \"r sensor-on\", \"r sensor-fire\", \"r sensor-alert\", \"r sensor\", \"r send-backward\", \"r send-back\", \"r seedling\", \"r search-plus\", \"r search-minus\", \"r search-location\", \"r search-dollar\", \"r search\", \"r sd-card\", \"r scythe\", \"r scrubber\", \"r scroll-old\", \"r scroll\", \"r screwdriver\", \"r school\", \"r scarf\", \"r scarecrow\", \"r scanner-touchscreen\", \"r scanner-keyboard\", \"r scanner-image\", \"r scanner\", \"r scalpel-path\", \"r scalpel\", \"r saxophone\", \"r sax-hot\", \"r save\", \"r sausage\", \"r satellite-dish\", \"r satellite\", \"r sandwich\", \"r salad\", \"r sad-tear\", \"r sad-cry\", \"r sack-dollar\", \"r sack\", \"r rv\", \"r rupee-sign\", \"r running\", \"r ruler-vertical\", \"r ruler-triangle\", \"r ruler-horizontal\", \"r ruler-combined\", \"r ruler\", \"r ruble-sign\", \"r rss-square\", \"r rss\", \"r router\", \"r route-interstate\", \"r route-highway\", \"r route\", \"r rocket-launch\", \"r rocket\", \"r robot\", \"r road\", \"r rings-wedding\", \"r ring\", \"r ribbon\", \"r retweet-alt\", \"r retweet\", \"r restroom\", \"r republican\", \"r reply-all\", \"r reply\", \"r repeat-alt\", \"r repeat-1-alt\", \"r repeat-1\", \"r repeat\", \"r remove-format\", \"r registered\", \"r refrigerator\", \"r redo-alt\", \"r redo\", \"r recycle\", \"r rectangle-wide\", \"r rectangle-portrait\", \"r rectangle-landscape\", \"r record-vinyl\", \"r receipt\", \"r raygun\", \"r random\", \"r ramp-loading\", \"r ram\", \"r raindrops\", \"r rainbow\", \"r radio-alt\", \"r radio\", \"r radiation-alt\", \"r radiation\", \"r radar\", \"r racquet\", \"r rabbit-fast\", \"r rabbit\", \"r quran\", \"r quote-right\", \"r quote-left\", \"r quidditch\", \"r question-square\", \"r question-circle\", \"r question\", \"r qrcode\", \"r puzzle-piece\", \"r pumpkin\", \"r pump-soap\", \"r pump-medical\", \"r projector\", \"r project-diagram\", \"r procedures\", \"r print-slash\", \"r print-search\", \"r print\", \"r presentation\", \"r prescription-bottle-alt\", \"r prescription-bottle\", \"r prescription\", \"r praying-hands\", \"r pray\", \"r power-off\", \"r pound-sign\", \"r portrait\", \"r portal-exit\", \"r portal-enter\", \"r popcorn\", \"r poop\", \"r poo-storm\", \"r poo\", \"r poll-people\", \"r poll-h\", \"r poll\", \"r police-box\", \"r podium-star\", \"r podium\", \"r podcast\", \"r plus-square\", \"r plus-octagon\", \"r plus-hexagon\", \"r plus-circle\", \"r plus\", \"r plug\", \"r play-circle\", \"r play\", \"r planet-ringed\", \"r planet-moon\", \"r plane-slash\", \"r plane-departure\", \"r plane-arrival\", \"r plane-alt\", \"r plane\", \"r place-of-worship\", \"r pizza-slice\", \"r pizza\", \"r pills\", \"r piggy-bank\", \"r pig\", \"r pie\", \"r piano-keyboard\", \"r piano\", \"r pi\", \"r photo-video\", \"r phone-volume\", \"r phone-square-alt\", \"r phone-square\", \"r phone-slash\", \"r phone-rotary\", \"r phone-plus\", \"r phone-office\", \"r phone-laptop\", \"r phone-alt\", \"r phone\", \"r person-sign\", \"r person-dolly-empty\", \"r person-dolly\", \"r person-carry\", \"r person-booth\", \"r percentage\", \"r percent\", \"r pepper-hot\", \"r people-carry\", \"r people-arrows\", \"r pennant\", \"r pencil-ruler\", \"r pencil-paintbrush\", \"r pencil-alt\", \"r pencil\", \"r pen-square\", \"r pen-nib\", \"r pen-fancy\", \"r pen-alt\", \"r pen\", \"r pegasus\", \"r peace\", \"r paw-claws\", \"r paw-alt\", \"r paw\", \"r pause-circle\", \"r pause\", \"r paste\", \"r pastafarianism\", \"r passport\", \"r parking-slash\", \"r parking-circle-slash\", \"r parking-circle\", \"r parking\", \"r paragraph-rtl\", \"r paragraph\", \"r parachute-box\", \"r paperclip\", \"r paper-plane\", \"r pallet-alt\", \"r pallet\", \"r palette\", \"r paint-roller\", \"r paint-brush-alt\", \"r paint-brush\", \"r pager\", \"r page-break\", \"r overline\", \"r oven\", \"r outlet\", \"r outdent\", \"r otter\", \"r ornament\", \"r omega\", \"r om\", \"r oil-temp\", \"r oil-can\", \"r octagon\", \"r object-ungroup\", \"r object-group\", \"r notes-medical\", \"r not-equal\", \"r newspaper\", \"r neuter\", \"r network-wired\", \"r narwhal\", \"r music-slash\", \"r music-alt-slash\", \"r music-alt\", \"r music\", \"r mug-tea\", \"r mug-marshmallows\", \"r mug-hot\", \"r mug\", \"r mp3-player\", \"r mouse-pointer\", \"r mouse-alt\", \"r mouse\", \"r mountains\", \"r mountain\", \"r motorcycle\", \"r mosque\", \"r mortar-pestle\", \"r moon-stars\", \"r moon-cloud\", \"r moon\", \"r monument\", \"r monkey\", \"r monitor-heart-rate\", \"r money-check-edit-alt\", \"r money-check-edit\", \"r money-check-alt\", \"r money-check\", \"r money-bill-wave-alt\", \"r money-bill-wave\", \"r money-bill-alt\", \"r money-bill\", \"r mobile-android-alt\", \"r mobile-android\", \"r mobile-alt\", \"r mobile\", \"r mitten\", \"r mistletoe\", \"r minus-square\", \"r minus-octagon\", \"r minus-hexagon\", \"r minus-circle\", \"r minus\", \"r mind-share\", \"r microwave\", \"r microscope\", \"r microphone-stand\", \"r microphone-slash\", \"r microphone-alt-slash\", \"r microphone-alt\", \"r microphone\", \"r microchip\", \"r meteor\", \"r mercury\", \"r menorah\", \"r memory\", \"r meh-rolling-eyes\", \"r meh-blank\", \"r meh\", \"r megaphone\", \"r medkit\", \"r medal\", \"r meat\", \"r mask\", \"r mars-stroke-v\", \"r mars-stroke-h\", \"r mars-stroke\", \"r mars-double\", \"r mars\", \"r marker\", \"r map-signs\", \"r map-pin\", \"r map-marker-times\", \"r map-marker-smile\", \"r map-marker-slash\", \"r map-marker-question\", \"r map-marker-plus\", \"r map-marker-minus\", \"r map-marker-exclamation\", \"r map-marker-edit\", \"r map-marker-check\", \"r map-marker-alt-slash\", \"r map-marker-alt\", \"r map-marker\", \"r map-marked-alt\", \"r map-marked\", \"r map\", \"r mandolin\", \"r male\", \"r mailbox\", \"r mail-bulk\", \"r magnet\", \"r magic\", \"r mace\", \"r lungs-virus\", \"r lungs\", \"r luggage-cart\", \"r luchador\", \"r low-vision\", \"r loveseat\", \"r long-arrow-up\", \"r long-arrow-right\", \"r long-arrow-left\", \"r long-arrow-down\", \"r long-arrow-alt-up\", \"r long-arrow-alt-right\", \"r long-arrow-alt-left\", \"r long-arrow-alt-down\", \"r lock-open-alt\", \"r lock-open\", \"r lock-alt\", \"r lock\", \"r location-slash\", \"r location-circle\", \"r location-arrow\", \"r location\", \"r list-ul\", \"r list-ol\", \"r list-music\", \"r list-alt\", \"r list\", \"r lira-sign\", \"r lips\", \"r link\", \"r line-height\", \"r line-columns\", \"r lights-holiday\", \"r lightbulb-slash\", \"r lightbulb-on\", \"r lightbulb-exclamation\", \"r lightbulb-dollar\", \"r lightbulb\", \"r light-switch-on\", \"r light-switch-off\", \"r light-switch\", \"r light-ceiling\", \"r life-ring\", \"r level-up-alt\", \"r level-up\", \"r level-down-alt\", \"r level-down\", \"r less-than-equal\", \"r less-than\", \"r lemon\", \"r leaf-oak\", \"r leaf-maple\", \"r leaf-heart\", \"r leaf\", \"r layer-plus\", \"r layer-minus\", \"r layer-group\", \"r laugh-wink\", \"r laugh-squint\", \"r laugh-beam\", \"r laugh\", \"r lasso\", \"r laptop-medical\", \"r laptop-house\", \"r laptop-code\", \"r laptop\", \"r language\", \"r landmark-alt\", \"r landmark\", \"r lamp-floor\", \"r lamp-desk\", \"r lamp\", \"r lambda\", \"r knife-kitchen\", \"r kiwi-bird\", \"r kite\", \"r kiss-wink-heart\", \"r kiss-beam\", \"r kiss\", \"r kidneys\", \"r khanda\", \"r keynote\", \"r keyboard\", \"r key-skeleton\", \"r key\", \"r kerning\", \"r kazoo\", \"r kaaba\", \"r jug\", \"r joystick\", \"r journal-whills\", \"r joint\", \"r jedi\", \"r jack-o-lantern\", \"r italic\", \"r island-tropical\", \"r inventory\", \"r intersection\", \"r integral\", \"r inhaler\", \"r info-square\", \"r info-circle\", \"r info\", \"r infinity\", \"r industry-alt\", \"r industry\", \"r indent\", \"r inbox-out\", \"r inbox-in\", \"r inbox\", \"r images\", \"r image-polaroid\", \"r image\", \"r igloo\", \"r id-card-alt\", \"r id-card\", \"r id-badge\", \"r icons-alt\", \"r icons\", \"r icicles\", \"r ice-skate\", \"r ice-cream\", \"r i-cursor\", \"r hurricane\", \"r humidity\", \"r hryvnia\", \"r house-user\", \"r house-signal\", \"r house-return\", \"r house-night\", \"r house-leave\", \"r house-flood\", \"r house-day\", \"r house-damage\", \"r house\", \"r hourglass-start\", \"r hourglass-half\", \"r hourglass-end\", \"r hourglass\", \"r hotel\", \"r hotdog\", \"r hot-tub\", \"r hospitals\", \"r hospital-user\", \"r hospital-symbol\", \"r hospital-alt\", \"r hospital\", \"r horse-saddle\", \"r horse-head\", \"r horse\", \"r horizontal-rule\", \"r hood-cloak\", \"r home-lg-alt\", \"r home-lg\", \"r home-heart\", \"r home-alt\", \"r home\", \"r holly-berry\", \"r hockey-sticks\", \"r hockey-puck\", \"r hockey-mask\", \"r history\", \"r hippo\", \"r hiking\", \"r highlighter\", \"r hexagon\", \"r helmet-battle\", \"r helicopter\", \"r heat\", \"r heartbeat\", \"r heart-square\", \"r heart-rate\", \"r heart-circle\", \"r heart-broken\", \"r heart\", \"r headset\", \"r headphones-alt\", \"r headphones\", \"r heading\", \"r head-vr\", \"r head-side-virus\", \"r head-side-medical\", \"r head-side-mask\", \"r head-side-headphones\", \"r head-side-cough-slash\", \"r head-side-cough\", \"r head-side-brain\", \"r head-side\", \"r hdd\", \"r hat-wizard\", \"r hat-witch\", \"r hat-winter\", \"r hat-santa\", \"r hat-cowboy-side\", \"r hat-cowboy\", \"r hat-chef\", \"r hashtag\", \"r hard-hat\", \"r hanukiah\", \"r handshake-slash\", \"r handshake-alt-slash\", \"r handshake-alt\", \"r handshake\", \"r hands-wash\", \"r hands-usd\", \"r hands-helping\", \"r hands-heart\", \"r hands\", \"r hand-spock\", \"r hand-sparkles\", \"r hand-scissors\", \"r hand-rock\", \"r hand-receiving\", \"r hand-pointer\", \"r hand-point-up\", \"r hand-point-right\", \"r hand-point-left\", \"r hand-point-down\", \"r hand-peace\", \"r hand-paper\", \"r hand-middle-finger\", \"r hand-lizard\", \"r hand-holding-water\", \"r hand-holding-usd\", \"r hand-holding-seedling\", \"r hand-holding-medical\", \"r hand-holding-magic\", \"r hand-holding-heart\", \"r hand-holding-box\", \"r hand-holding\", \"r hand-heart\", \"r hamsa\", \"r hammer-war\", \"r hammer\", \"r hamburger\", \"r h4\", \"r h3\", \"r h2\", \"r h1\", \"r h-square\", \"r guitars\", \"r guitar-electric\", \"r guitar\", \"r grip-vertical\", \"r grip-lines-vertical\", \"r grip-lines\", \"r grip-horizontal\", \"r grin-wink\", \"r grin-tongue-wink\", \"r grin-tongue-squint\", \"r grin-tongue\", \"r grin-tears\", \"r grin-stars\", \"r grin-squint-tears\", \"r grin-squint\", \"r grin-hearts\", \"r grin-beam-sweat\", \"r grin-beam\", \"r grin-alt\", \"r grin\", \"r grimace\", \"r greater-than-equal\", \"r greater-than\", \"r gramophone\", \"r graduation-cap\", \"r gopuram\", \"r golf-club\", \"r golf-ball\", \"r globe-stand\", \"r globe-snow\", \"r globe-europe\", \"r globe-asia\", \"r globe-americas\", \"r globe-africa\", \"r globe\", \"r glasses-alt\", \"r glasses\", \"r glass-whiskey-rocks\", \"r glass-whiskey\", \"r glass-martini-alt\", \"r glass-martini\", \"r glass-citrus\", \"r glass-cheers\", \"r glass-champagne\", \"r glass\", \"r gingerbread-man\", \"r gifts\", \"r gift-card\", \"r gift\", \"r ghost\", \"r genderless\", \"r gem\", \"r gavel\", \"r gas-pump-slash\", \"r gas-pump\", \"r garage-open\", \"r garage-car\", \"r garage\", \"r gamepad-alt\", \"r gamepad\", \"r game-console-handheld\", \"r game-board-alt\", \"r game-board\", \"r galaxy\", \"r futbol\", \"r funnel-dollar\", \"r function\", \"r frown-open\", \"r frown\", \"r frosty-head\", \"r frog\", \"r french-fries\", \"r fragile\", \"r forward\", \"r forklift\", \"r football-helmet\", \"r football-ball\", \"r font-case\", \"r font\", \"r folders\", \"r folder-upload\", \"r folder-tree\", \"r folder-times\", \"r folder-plus\", \"r folder-open\", \"r folder-minus\", \"r folder-download\", \"r folder\", \"r fog\", \"r flux-capacitor\", \"r flute\", \"r flushed\", \"r flower-tulip\", \"r flower-daffodil\", \"r flower\", \"r flask-potion\", \"r flask-poison\", \"r flask\", \"r flashlight\", \"r flame\", \"r flag-usa\", \"r flag-checkered\", \"r flag-alt\", \"r flag\", \"r fist-raised\", \"r fish-cooked\", \"r fish\", \"r first-aid\", \"r fireplace\", \"r fire-smoke\", \"r fire-extinguisher\", \"r fire-alt\", \"r fire\", \"r fingerprint\", \"r filter\", \"r film-canister\", \"r film-alt\", \"r film\", \"r fill-drip\", \"r fill\", \"r files-medical\", \"r file-word\", \"r file-video\", \"r file-user\", \"r file-upload\", \"r file-times\", \"r file-spreadsheet\", \"r file-signature\", \"r file-search\", \"r file-prescription\", \"r file-powerpoint\", \"r file-plus\", \"r file-pdf\", \"r file-music\", \"r file-minus\", \"r file-medical-alt\", \"r file-medical\", \"r file-invoice-dollar\", \"r file-invoice\", \"r file-import\", \"r file-image\", \"r file-export\", \"r file-exclamation\", \"r file-excel\", \"r file-edit\", \"r file-download\", \"r file-csv\", \"r file-contract\", \"r file-code\", \"r file-check\", \"r file-chart-pie\", \"r file-chart-line\", \"r file-certificate\", \"r file-audio\", \"r file-archive\", \"r file-alt\", \"r file\", \"r fighter-jet\", \"r field-hockey\", \"r female\", \"r feather-alt\", \"r feather\", \"r fax\", \"r faucet-drip\", \"r faucet\", \"r fast-forward\", \"r fast-backward\", \"r farm\", \"r fan-table\", \"r fan\", \"r eye-slash\", \"r eye-evil\", \"r eye-dropper\", \"r eye\", \"r external-link-square-alt\", \"r external-link-square\", \"r external-link-alt\", \"r external-link\", \"r expand-wide\", \"r expand-arrows-alt\", \"r expand-arrows\", \"r expand-alt\", \"r expand\", \"r exclamation-triangle\", \"r exclamation-square\", \"r exclamation-circle\", \"r exclamation\", \"r exchange-alt\", \"r exchange\", \"r euro-sign\", \"r ethernet\", \"r eraser\", \"r equals\", \"r envelope-square\", \"r envelope-open-text\", \"r envelope-open-dollar\", \"r envelope-open\", \"r envelope\", \"r engine-warning\", \"r empty-set\", \"r ellipsis-v-alt\", \"r ellipsis-v\", \"r ellipsis-h-alt\", \"r ellipsis-h\", \"r elephant\", \"r eject\", \"r egg-fried\", \"r egg\", \"r edit\", \"r eclipse-alt\", \"r eclipse\", \"r ear-muffs\", \"r ear\", \"r dungeon\", \"r dumpster-fire\", \"r dumpster\", \"r dumbbell\", \"r duck\", \"r dryer-alt\", \"r dryer\", \"r drumstick-bite\", \"r drumstick\", \"r drum-steelpan\", \"r drum\", \"r drone-alt\", \"r drone\", \"r dreidel\", \"r draw-square\", \"r draw-polygon\", \"r draw-circle\", \"r dragon\", \"r drafting-compass\", \"r download\", \"r dove\", \"r dot-circle\", \"r door-open\", \"r door-closed\", \"r donate\", \"r dolly-flatbed-empty\", \"r dolly-flatbed-alt\", \"r dolly-flatbed\", \"r dolly-empty\", \"r dolly\", \"r dollar-sign\", \"r dog-leashed\", \"r dog\", \"r do-not-enter\", \"r dna\", \"r dizzy\", \"r divide\", \"r disease\", \"r disc-drive\", \"r directions\", \"r diploma\", \"r digital-tachograph\", \"r digging\", \"r dice-two\", \"r dice-three\", \"r dice-six\", \"r dice-one\", \"r dice-four\", \"r dice-five\", \"r dice-d8\", \"r dice-d6\", \"r dice-d4\", \"r dice-d20\", \"r dice-d12\", \"r dice-d10\", \"r dice\", \"r diamond\", \"r diagnoses\", \"r dharmachakra\", \"r dewpoint\", \"r desktop-alt\", \"r desktop\", \"r democrat\", \"r deer-rudolph\", \"r deer\", \"r debug\", \"r deaf\", \"r database\", \"r dagger\", \"r cut\", \"r curling\", \"r cubes\", \"r cube\", \"r crutches\", \"r crutch\", \"r crown\", \"r crow\", \"r crosshairs\", \"r cross\", \"r crop-alt\", \"r crop\", \"r croissant\", \"r cricket\", \"r credit-card-front\", \"r credit-card-blank\", \"r credit-card\", \"r cowbell-more\", \"r cowbell\", \"r cow\", \"r couch\", \"r corn\", \"r copyright\", \"r copy\", \"r cookie-bite\", \"r cookie\", \"r conveyor-belt-alt\", \"r conveyor-belt\", \"r container-storage\", \"r construction\", \"r concierge-bell\", \"r computer-speaker\", \"r computer-classic\", \"r compress-wide\", \"r compress-arrows-alt\", \"r compress-alt\", \"r compress\", \"r compass-slash\", \"r compass\", \"r compact-disc\", \"r comments-dollar\", \"r comments-alt-dollar\", \"r comments-alt\", \"r comments\", \"r comment-times\", \"r comment-smile\", \"r comment-slash\", \"r comment-plus\", \"r comment-music\", \"r comment-minus\", \"r comment-medical\", \"r comment-lines\", \"r comment-exclamation\", \"r comment-edit\", \"r comment-dots\", \"r comment-dollar\", \"r comment-check\", \"r comment-alt-times\", \"r comment-alt-smile\", \"r comment-alt-slash\", \"r comment-alt-plus\", \"r comment-alt-music\", \"r comment-alt-minus\", \"r comment-alt-medical\", \"r comment-alt-lines\", \"r comment-alt-exclamation\", \"r comment-alt-edit\", \"r comment-alt-dots\", \"r comment-alt-dollar\", \"r comment-alt-check\", \"r comment-alt\", \"r comment\", \"r comet\", \"r columns\", \"r coins\", \"r coin\", \"r cogs\", \"r cog\", \"r coffin-cross\", \"r coffin\", \"r coffee-togo\", \"r coffee-pot\", \"r coffee\", \"r code-merge\", \"r code-commit\", \"r code-branch\", \"r code\", \"r cocktail\", \"r club\", \"r clouds-sun\", \"r clouds-moon\", \"r clouds\", \"r cloud-upload-alt\", \"r cloud-upload\", \"r cloud-sun-rain\", \"r cloud-sun\", \"r cloud-snow\", \"r cloud-sleet\", \"r cloud-showers-heavy\", \"r cloud-showers\", \"r cloud-rainbow\", \"r cloud-rain\", \"r cloud-music\", \"r cloud-moon-rain\", \"r cloud-moon\", \"r cloud-meatball\", \"r cloud-hail-mixed\", \"r cloud-hail\", \"r cloud-drizzle\", \"r cloud-download-alt\", \"r cloud-download\", \"r cloud\", \"r closed-captioning\", \"r clone\", \"r clock\", \"r clipboard-user\", \"r clipboard-prescription\", \"r clipboard-list-check\", \"r clipboard-list\", \"r clipboard-check\", \"r clipboard\", \"r clinic-medical\", \"r claw-marks\", \"r clarinet\", \"r city\", \"r circle-notch\", \"r circle\", \"r church\", \"r chimney\", \"r child\", \"r chevron-up\", \"r chevron-square-up\", \"r chevron-square-right\", \"r chevron-square-left\", \"r chevron-square-down\", \"r chevron-right\", \"r chevron-left\", \"r chevron-down\", \"r chevron-double-up\", \"r chevron-double-right\", \"r chevron-double-left\", \"r chevron-double-down\", \"r chevron-circle-up\", \"r chevron-circle-right\", \"r chevron-circle-left\", \"r chevron-circle-down\", \"r chess-rook-alt\", \"r chess-rook\", \"r chess-queen-alt\", \"r chess-queen\", \"r chess-pawn-alt\", \"r chess-pawn\", \"r chess-knight-alt\", \"r chess-knight\", \"r chess-king-alt\", \"r chess-king\", \"r chess-clock-alt\", \"r chess-clock\", \"r chess-board\", \"r chess-bishop-alt\", \"r chess-bishop\", \"r chess\", \"r cheeseburger\", \"r cheese-swiss\", \"r cheese\", \"r check-square\", \"r check-double\", \"r check-circle\", \"r check\", \"r chart-scatter\", \"r chart-pie-alt\", \"r chart-pie\", \"r chart-network\", \"r chart-line-down\", \"r chart-line\", \"r chart-bar\", \"r chart-area\", \"r charging-station\", \"r chalkboard-teacher\", \"r chalkboard\", \"r chair-office\", \"r chair\", \"r certificate\", \"r cctv\", \"r cauldron\", \"r cat-space\", \"r cat\", \"r cassette-tape\", \"r cash-register\", \"r cart-plus\", \"r cart-arrow-down\", \"r cars\", \"r carrot\", \"r caret-up\", \"r caret-square-up\", \"r caret-square-right\", \"r caret-square-left\", \"r caret-square-down\", \"r caret-right\", \"r caret-left\", \"r caret-down\", \"r caret-circle-up\", \"r caret-circle-right\", \"r caret-circle-left\", \"r caret-circle-down\", \"r caravan-alt\", \"r caravan\", \"r car-wash\", \"r car-tilt\", \"r car-side\", \"r car-mechanic\", \"r car-garage\", \"r car-crash\", \"r car-bus\", \"r car-bump\", \"r car-building\", \"r car-battery\", \"r car-alt\", \"r car\", \"r capsules\", \"r cannabis\", \"r candy-corn\", \"r candy-cane\", \"r candle-holder\", \"r campground\", \"r campfire\", \"r camera-retro\", \"r camera-polaroid\", \"r camera-movie\", \"r camera-home\", \"r camera-alt\", \"r camera\", \"r camcorder\", \"r calendar-week\", \"r calendar-times\", \"r calendar-star\", \"r calendar-plus\", \"r calendar-minus\", \"r calendar-exclamation\", \"r calendar-edit\", \"r calendar-day\", \"r calendar-check\", \"r calendar-alt\", \"r calendar\", \"r calculator-alt\", \"r calculator\", \"r cactus\", \"r cabinet-filing\", \"r business-time\", \"r bus-school\", \"r bus-alt\", \"r bus\", \"r burrito\", \"r burn\", \"r burger-soda\", \"r bullseye-pointer\", \"r bullseye-arrow\", \"r bullseye\", \"r bullhorn\", \"r building\", \"r bug\", \"r brush\", \"r browser\", \"r broom\", \"r broadcast-tower\", \"r bring-front\", \"r bring-forward\", \"r briefcase-medical\", \"r briefcase\", \"r bread-slice\", \"r bread-loaf\", \"r brain\", \"r braille\", \"r brackets-curly\", \"r brackets\", \"r boxing-glove\", \"r boxes-alt\", \"r boxes\", \"r box-usd\", \"r box-up\", \"r box-tissue\", \"r box-open\", \"r box-heart\", \"r box-full\", \"r box-fragile\", \"r box-check\", \"r box-ballot\", \"r box-alt\", \"r box\", \"r bowling-pins\", \"r bowling-ball\", \"r bow-arrow\", \"r border-top\", \"r border-style-alt\", \"r border-style\", \"r border-right\", \"r border-outer\", \"r border-none\", \"r border-left\", \"r border-inner\", \"r border-center-v\", \"r border-center-h\", \"r border-bottom\", \"r border-all\", \"r booth-curtain\", \"r boot\", \"r boombox\", \"r books-medical\", \"r books\", \"r bookmark\", \"r book-user\", \"r book-spells\", \"r book-reader\", \"r book-open\", \"r book-medical\", \"r book-heart\", \"r book-dead\", \"r book-alt\", \"r book\", \"r bong\", \"r bone-break\", \"r bone\", \"r bomb\", \"r bolt\", \"r bold\", \"r blog\", \"r blinds-raised\", \"r blinds-open\", \"r blinds\", \"r blind\", \"r blender-phone\", \"r blender\", \"r blanket\", \"r birthday-cake\", \"r biohazard\", \"r binoculars\", \"r biking-mountain\", \"r biking\", \"r bicycle\", \"r bible\", \"r bezier-curve\", \"r betamax\", \"r bells\", \"r bell-slash\", \"r bell-school-slash\", \"r bell-school\", \"r bell-plus\", \"r bell-on\", \"r bell-exclamation\", \"r bell\", \"r beer\", \"r bed-empty\", \"r bed-bunk\", \"r bed-alt\", \"r bed\", \"r battery-three-quarters\", \"r battery-slash\", \"r battery-quarter\", \"r battery-half\", \"r battery-full\", \"r battery-empty\", \"r battery-bolt\", \"r bath\", \"r bat\", \"r basketball-hoop\", \"r basketball-ball\", \"r baseball-ball\", \"r baseball\", \"r bars\", \"r barcode-scan\", \"r barcode-read\", \"r barcode-alt\", \"r barcode\", \"r banjo\", \"r band-aid\", \"r ban\", \"r ballot-check\", \"r ballot\", \"r ball-pile\", \"r balance-scale-right\", \"r balance-scale-left\", \"r balance-scale\", \"r bahai\", \"r bags-shopping\", \"r badger-honey\", \"r badge-sheriff\", \"r badge-percent\", \"r badge-dollar\", \"r badge-check\", \"r badge\", \"r bacterium\", \"r bacteria\", \"r bacon\", \"r backward\", \"r backspace\", \"r backpack\", \"r baby-carriage\", \"r baby\", \"r axe-battle\", \"r axe\", \"r award\", \"r audio-description\", \"r atom-alt\", \"r atom\", \"r atlas\", \"r at\", \"r asterisk\", \"r assistive-listening-systems\", \"r arrows-v\", \"r arrows-h\", \"r arrows-alt-v\", \"r arrows-alt-h\", \"r arrows-alt\", \"r arrows\", \"r arrow-up\", \"r arrow-to-top\", \"r arrow-to-right\", \"r arrow-to-left\", \"r arrow-to-bottom\", \"r arrow-square-up\", \"r arrow-square-right\", \"r arrow-square-left\", \"r arrow-square-down\", \"r arrow-right\", \"r arrow-left\", \"r arrow-from-top\", \"r arrow-from-right\", \"r arrow-from-left\", \"r arrow-from-bottom\", \"r arrow-down\", \"r arrow-circle-up\", \"r arrow-circle-right\", \"r arrow-circle-left\", \"r arrow-circle-down\", \"r arrow-alt-up\", \"r arrow-alt-to-top\", \"r arrow-alt-to-right\", \"r arrow-alt-to-left\", \"r arrow-alt-to-bottom\", \"r arrow-alt-square-up\", \"r arrow-alt-square-right\", \"r arrow-alt-square-left\", \"r arrow-alt-square-down\", \"r arrow-alt-right\", \"r arrow-alt-left\", \"r arrow-alt-from-top\", \"r arrow-alt-from-right\", \"r arrow-alt-from-left\", \"r arrow-alt-from-bottom\", \"r arrow-alt-down\", \"r arrow-alt-circle-up\", \"r arrow-alt-circle-right\", \"r arrow-alt-circle-left\", \"r arrow-alt-circle-down\", \"r archway\", \"r archive\", \"r apple-crate\", \"r apple-alt\", \"r ankh\", \"r angry\", \"r angle-up\", \"r angle-right\", \"r angle-left\", \"r angle-down\", \"r angle-double-up\", \"r angle-double-right\", \"r angle-double-left\", \"r angle-double-down\", \"r angel\", \"r anchor\", \"r analytics\", \"r amp-guitar\", \"r american-sign-language-interpreting\", \"r ambulance\", \"r allergies\", \"r align-slash\", \"r align-right\", \"r align-left\", \"r align-justify\", \"r align-center\", \"r alien-monster\", \"r alien\", \"r alicorn\", \"r album-collection\", \"r album\", \"r alarm-snooze\", \"r alarm-plus\", \"r alarm-exclamation\", \"r alarm-clock\", \"r air-freshener\", \"r air-conditioner\", \"r adjust\", \"r address-card\", \"r address-book\", \"r ad\", \"r acorn\", \"r abacus\", \"l yin-yang\", \"l yen-sign\", \"l x-ray\", \"l wrench\", \"l wreath\", \"l won-sign\", \"l wine-glass-alt\", \"l wine-glass\", \"l wine-bottle\", \"l windsock\", \"l window-restore\", \"l window-minimize\", \"l window-maximize\", \"l window-frame-open\", \"l window-frame\", \"l window-close\", \"l window-alt\", \"l window\", \"l wind-warning\", \"l wind-turbine\", \"l wind\", \"l wifi-slash\", \"l wifi-2\", \"l wifi-1\", \"l wifi\", \"l whistle\", \"l wheelchair\", \"l wheat\", \"l whale\", \"l weight-hanging\", \"l weight\", \"l webcam-slash\", \"l webcam\", \"l waveform-path\", \"l waveform\", \"l wave-triangle\", \"l wave-square\", \"l wave-sine\", \"l water-rise\", \"l water-lower\", \"l water\", \"l watch-fitness\", \"l watch-calculator\", \"l watch\", \"l washer\", \"l warehouse-alt\", \"l warehouse\", \"l wand-magic\", \"l wand\", \"l wallet\", \"l walking\", \"l walkie-talkie\", \"l walker\", \"l wagon-covered\", \"l vr-cardboard\", \"l vote-yea\", \"l vote-nay\", \"l volume-up\", \"l volume-slash\", \"l volume-off\", \"l volume-mute\", \"l volume-down\", \"l volume\", \"l volleyball-ball\", \"l volcano\", \"l voicemail\", \"l viruses\", \"l virus-slash\", \"l virus\", \"l violin\", \"l vihara\", \"l video-slash\", \"l video-plus\", \"l video\", \"l vials\", \"l vial\", \"l vhs\", \"l vest-patches\", \"l vest\", \"l venus-mars\", \"l venus-double\", \"l venus\", \"l vector-square\", \"l value-absolute\", \"l vacuum-robot\", \"l vacuum\", \"l utensils-alt\", \"l utensils\", \"l utensil-spoon\", \"l utensil-knife\", \"l utensil-fork\", \"l users-slash\", \"l users-medical\", \"l users-crown\", \"l users-cog\", \"l users-class\", \"l users\", \"l user-visor\", \"l user-unlock\", \"l user-times\", \"l user-tie\", \"l user-tag\", \"l user-slash\", \"l user-shield\", \"l user-secret\", \"l user-robot\", \"l user-plus\", \"l user-nurse\", \"l user-ninja\", \"l user-music\", \"l user-minus\", \"l user-md-chat\", \"l user-md\", \"l user-lock\", \"l user-injured\", \"l user-headset\", \"l user-hard-hat\", \"l user-graduate\", \"l user-friends\", \"l user-edit\", \"l user-crown\", \"l user-cowboy\", \"l user-cog\", \"l user-clock\", \"l user-circle\", \"l user-check\", \"l user-chart\", \"l user-astronaut\", \"l user-alt-slash\", \"l user-alt\", \"l user-alien\", \"l user\", \"l usd-square\", \"l usd-circle\", \"l usb-drive\", \"l upload\", \"l unlock-alt\", \"l unlock\", \"l unlink\", \"l university\", \"l universal-access\", \"l union\", \"l unicorn\", \"l undo-alt\", \"l undo\", \"l underline\", \"l umbrella-beach\", \"l umbrella\", \"l ufo-beam\", \"l ufo\", \"l typewriter\", \"l tv-retro\", \"l tv-music\", \"l tv-alt\", \"l tv\", \"l turtle\", \"l turntable\", \"l turkey\", \"l tty\", \"l tshirt\", \"l trumpet\", \"l truck-ramp\", \"l truck-plow\", \"l truck-pickup\", \"l truck-moving\", \"l truck-monster\", \"l truck-loading\", \"l truck-couch\", \"l truck-container\", \"l truck\", \"l trophy-alt\", \"l trophy\", \"l triangle-music\", \"l triangle\", \"l trees\", \"l tree-palm\", \"l tree-large\", \"l tree-decorated\", \"l tree-christmas\", \"l tree-alt\", \"l tree\", \"l treasure-chest\", \"l trash-undo-alt\", \"l trash-undo\", \"l trash-restore-alt\", \"l trash-restore\", \"l trash-alt\", \"l trash\", \"l transporter-empty\", \"l transporter-3\", \"l transporter-2\", \"l transporter-1\", \"l transporter\", \"l transgender-alt\", \"l transgender\", \"l tram\", \"l train\", \"l trailer\", \"l traffic-light-stop\", \"l traffic-light-slow\", \"l traffic-light-go\", \"l traffic-light\", \"l traffic-cone\", \"l trademark\", \"l tractor\", \"l tornado\", \"l torii-gate\", \"l torah\", \"l toothbrush\", \"l tooth\", \"l tools\", \"l toolbox\", \"l tombstone-alt\", \"l tombstone\", \"l toilet-paper-slash\", \"l toilet-paper-alt\", \"l toilet-paper\", \"l toilet\", \"l toggle-on\", \"l toggle-off\", \"l tired\", \"l tire-rugged\", \"l tire-pressure-warning\", \"l tire-flat\", \"l tire\", \"l tint-slash\", \"l tint\", \"l times-square\", \"l times-octagon\", \"l times-hexagon\", \"l times-circle\", \"l times\", \"l tilde\", \"l ticket-alt\", \"l ticket\", \"l thunderstorm-sun\", \"l thunderstorm-moon\", \"l thunderstorm\", \"l thumbtack\", \"l thumbs-up\", \"l thumbs-down\", \"l theta\", \"l thermometer-three-quarters\", \"l thermometer-quarter\", \"l thermometer-half\", \"l thermometer-full\", \"l thermometer-empty\", \"l thermometer\", \"l theater-masks\", \"l th-list\", \"l th-large\", \"l th\", \"l text-width\", \"l text-size\", \"l text-height\", \"l text\", \"l terminal\", \"l tennis-ball\", \"l tenge\", \"l temperature-up\", \"l temperature-low\", \"l temperature-hot\", \"l temperature-high\", \"l temperature-frigid\", \"l temperature-down\", \"l telescope\", \"l teeth-open\", \"l teeth\", \"l taxi\", \"l tasks-alt\", \"l tasks\", \"l tape\", \"l tanakh\", \"l tally\", \"l tags\", \"l tag\", \"l taco\", \"l tachometer-slowest\", \"l tachometer-slow\", \"l tachometer-fastest\", \"l tachometer-fast\", \"l tachometer-average\", \"l tachometer-alt-slowest\", \"l tachometer-alt-slow\", \"l tachometer-alt-fastest\", \"l tachometer-alt-fast\", \"l tachometer-alt-average\", \"l tachometer-alt\", \"l tachometer\", \"l tablets\", \"l tablet-rugged\", \"l tablet-android-alt\", \"l tablet-android\", \"l tablet-alt\", \"l tablet\", \"l table-tennis\", \"l table\", \"l syringe\", \"l sync-alt\", \"l sync\", \"l synagogue\", \"l swords-laser\", \"l swords\", \"l sword-laser-alt\", \"l sword-laser\", \"l sword\", \"l swimming-pool\", \"l swimmer\", \"l swatchbook\", \"l surprise\", \"l superscript\", \"l sunset\", \"l sunrise\", \"l sunglasses\", \"l sun-haze\", \"l sun-dust\", \"l sun-cloud\", \"l sun\", \"l suitcase-rolling\", \"l suitcase\", \"l subway\", \"l subscript\", \"l stroopwafel\", \"l strikethrough\", \"l stretcher\", \"l street-view\", \"l stream\", \"l store-slash\", \"l store-alt-slash\", \"l store-alt\", \"l store\", \"l stopwatch-20\", \"l stopwatch\", \"l stop-circle\", \"l stop\", \"l stomach\", \"l stocking\", \"l sticky-note\", \"l stethoscope\", \"l step-forward\", \"l step-backward\", \"l steering-wheel\", \"l steak\", \"l starship-freighter\", \"l starship\", \"l stars\", \"l starfighter-alt\", \"l starfighter\", \"l star-shooting\", \"l star-of-life\", \"l star-of-david\", \"l star-half-alt\", \"l star-half\", \"l star-exclamation\", \"l star-christmas\", \"l star-and-crescent\", \"l star\", \"l stamp\", \"l staff\", \"l squirrel\", \"l square-root-alt\", \"l square-root\", \"l square-full\", \"l square\", \"l sprinkler\", \"l spray-can\", \"l splotch\", \"l spinner-third\", \"l spinner\", \"l spider-web\", \"l spider-black-widow\", \"l spider\", \"l spell-check\", \"l speakers\", \"l speaker\", \"l sparkles\", \"l spade\", \"l space-station-moon-alt\", \"l space-station-moon\", \"l space-shuttle\", \"l spa\", \"l soup\", \"l sort-up\", \"l sort-size-up-alt\", \"l sort-size-up\", \"l sort-size-down-alt\", \"l sort-size-down\", \"l sort-shapes-up-alt\", \"l sort-shapes-up\", \"l sort-shapes-down-alt\", \"l sort-shapes-down\", \"l sort-numeric-up-alt\", \"l sort-numeric-up\", \"l sort-numeric-down-alt\", \"l sort-numeric-down\", \"l sort-down\", \"l sort-circle-up\", \"l sort-circle-down\", \"l sort-circle\", \"l sort-amount-up-alt\", \"l sort-amount-up\", \"l sort-amount-down-alt\", \"l sort-amount-down\", \"l sort-alt\", \"l sort-alpha-up-alt\", \"l sort-alpha-up\", \"l sort-alpha-down-alt\", \"l sort-alpha-down\", \"l sort\", \"l solar-system\", \"l solar-panel\", \"l socks\", \"l soap\", \"l snowplow\", \"l snowmobile\", \"l snowman\", \"l snowflakes\", \"l snowflake\", \"l snowboarding\", \"l snow-blowing\", \"l snooze\", \"l snake\", \"l sms\", \"l smoking-ban\", \"l smoking\", \"l smoke\", \"l smog\", \"l smile-wink\", \"l smile-plus\", \"l smile-beam\", \"l smile\", \"l sliders-v-square\", \"l sliders-v\", \"l sliders-h-square\", \"l sliders-h\", \"l sleigh\", \"l sledding\", \"l slash\", \"l skull-crossbones\", \"l skull-cow\", \"l skull\", \"l skiing-nordic\", \"l skiing\", \"l ski-lift\", \"l ski-jump\", \"l skeleton\", \"l skating\", \"l sitemap\", \"l siren-on\", \"l siren\", \"l sink\", \"l sim-card\", \"l signature\", \"l signal-stream\", \"l signal-slash\", \"l signal-alt-slash\", \"l signal-alt-3\", \"l signal-alt-2\", \"l signal-alt-1\", \"l signal-alt\", \"l signal-4\", \"l signal-3\", \"l signal-2\", \"l signal-1\", \"l signal\", \"l sign-out-alt\", \"l sign-out\", \"l sign-language\", \"l sign-in-alt\", \"l sign-in\", \"l sign\", \"l sigma\", \"l sickle\", \"l shuttlecock\", \"l shuttle-van\", \"l shredder\", \"l shower\", \"l shovel-snow\", \"l shovel\", \"l shopping-cart\", \"l shopping-basket\", \"l shopping-bag\", \"l shoe-prints\", \"l shish-kebab\", \"l shipping-timed\", \"l shipping-fast\", \"l ship\", \"l shield-virus\", \"l shield-cross\", \"l shield-check\", \"l shield-alt\", \"l shield\", \"l shekel-sign\", \"l sheep\", \"l share-square\", \"l share-alt-square\", \"l share-alt\", \"l share-all\", \"l share\", \"l shapes\", \"l server\", \"l sensor-smoke\", \"l sensor-on\", \"l sensor-fire\", \"l sensor-alert\", \"l sensor\", \"l send-backward\", \"l send-back\", \"l seedling\", \"l search-plus\", \"l search-minus\", \"l search-location\", \"l search-dollar\", \"l search\", \"l sd-card\", \"l scythe\", \"l scrubber\", \"l scroll-old\", \"l scroll\", \"l screwdriver\", \"l school\", \"l scarf\", \"l scarecrow\", \"l scanner-touchscreen\", \"l scanner-keyboard\", \"l scanner-image\", \"l scanner\", \"l scalpel-path\", \"l scalpel\", \"l saxophone\", \"l sax-hot\", \"l save\", \"l sausage\", \"l satellite-dish\", \"l satellite\", \"l sandwich\", \"l salad\", \"l sad-tear\", \"l sad-cry\", \"l sack-dollar\", \"l sack\", \"l rv\", \"l rupee-sign\", \"l running\", \"l ruler-vertical\", \"l ruler-triangle\", \"l ruler-horizontal\", \"l ruler-combined\", \"l ruler\", \"l ruble-sign\", \"l rss-square\", \"l rss\", \"l router\", \"l route-interstate\", \"l route-highway\", \"l route\", \"l rocket-launch\", \"l rocket\", \"l robot\", \"l road\", \"l rings-wedding\", \"l ring\", \"l ribbon\", \"l retweet-alt\", \"l retweet\", \"l restroom\", \"l republican\", \"l reply-all\", \"l reply\", \"l repeat-alt\", \"l repeat-1-alt\", \"l repeat-1\", \"l repeat\", \"l remove-format\", \"l registered\", \"l refrigerator\", \"l redo-alt\", \"l redo\", \"l recycle\", \"l rectangle-wide\", \"l rectangle-portrait\", \"l rectangle-landscape\", \"l record-vinyl\", \"l receipt\", \"l raygun\", \"l random\", \"l ramp-loading\", \"l ram\", \"l raindrops\", \"l rainbow\", \"l radio-alt\", \"l radio\", \"l radiation-alt\", \"l radiation\", \"l radar\", \"l racquet\", \"l rabbit-fast\", \"l rabbit\", \"l quran\", \"l quote-right\", \"l quote-left\", \"l quidditch\", \"l question-square\", \"l question-circle\", \"l question\", \"l qrcode\", \"l puzzle-piece\", \"l pumpkin\", \"l pump-soap\", \"l pump-medical\", \"l projector\", \"l project-diagram\", \"l procedures\", \"l print-slash\", \"l print-search\", \"l print\", \"l presentation\", \"l prescription-bottle-alt\", \"l prescription-bottle\", \"l prescription\", \"l praying-hands\", \"l pray\", \"l power-off\", \"l pound-sign\", \"l portrait\", \"l portal-exit\", \"l portal-enter\", \"l popcorn\", \"l poop\", \"l poo-storm\", \"l poo\", \"l poll-people\", \"l poll-h\", \"l poll\", \"l police-box\", \"l podium-star\", \"l podium\", \"l podcast\", \"l plus-square\", \"l plus-octagon\", \"l plus-hexagon\", \"l plus-circle\", \"l plus\", \"l plug\", \"l play-circle\", \"l play\", \"l planet-ringed\", \"l planet-moon\", \"l plane-slash\", \"l plane-departure\", \"l plane-arrival\", \"l plane-alt\", \"l plane\", \"l place-of-worship\", \"l pizza-slice\", \"l pizza\", \"l pills\", \"l piggy-bank\", \"l pig\", \"l pie\", \"l piano-keyboard\", \"l piano\", \"l pi\", \"l photo-video\", \"l phone-volume\", \"l phone-square-alt\", \"l phone-square\", \"l phone-slash\", \"l phone-rotary\", \"l phone-plus\", \"l phone-office\", \"l phone-laptop\", \"l phone-alt\", \"l phone\", \"l person-sign\", \"l person-dolly-empty\", \"l person-dolly\", \"l person-carry\", \"l person-booth\", \"l percentage\", \"l percent\", \"l pepper-hot\", \"l people-carry\", \"l people-arrows\", \"l pennant\", \"l pencil-ruler\", \"l pencil-paintbrush\", \"l pencil-alt\", \"l pencil\", \"l pen-square\", \"l pen-nib\", \"l pen-fancy\", \"l pen-alt\", \"l pen\", \"l pegasus\", \"l peace\", \"l paw-claws\", \"l paw-alt\", \"l paw\", \"l pause-circle\", \"l pause\", \"l paste\", \"l pastafarianism\", \"l passport\", \"l parking-slash\", \"l parking-circle-slash\", \"l parking-circle\", \"l parking\", \"l paragraph-rtl\", \"l paragraph\", \"l parachute-box\", \"l paperclip\", \"l paper-plane\", \"l pallet-alt\", \"l pallet\", \"l palette\", \"l paint-roller\", \"l paint-brush-alt\", \"l paint-brush\", \"l pager\", \"l page-break\", \"l overline\", \"l oven\", \"l outlet\", \"l outdent\", \"l otter\", \"l ornament\", \"l omega\", \"l om\", \"l oil-temp\", \"l oil-can\", \"l octagon\", \"l object-ungroup\", \"l object-group\", \"l notes-medical\", \"l not-equal\", \"l newspaper\", \"l neuter\", \"l network-wired\", \"l narwhal\", \"l music-slash\", \"l music-alt-slash\", \"l music-alt\", \"l music\", \"l mug-tea\", \"l mug-marshmallows\", \"l mug-hot\", \"l mug\", \"l mp3-player\", \"l mouse-pointer\", \"l mouse-alt\", \"l mouse\", \"l mountains\", \"l mountain\", \"l motorcycle\", \"l mosque\", \"l mortar-pestle\", \"l moon-stars\", \"l moon-cloud\", \"l moon\", \"l monument\", \"l monkey\", \"l monitor-heart-rate\", \"l money-check-edit-alt\", \"l money-check-edit\", \"l money-check-alt\", \"l money-check\", \"l money-bill-wave-alt\", \"l money-bill-wave\", \"l money-bill-alt\", \"l money-bill\", \"l mobile-android-alt\", \"l mobile-android\", \"l mobile-alt\", \"l mobile\", \"l mitten\", \"l mistletoe\", \"l minus-square\", \"l minus-octagon\", \"l minus-hexagon\", \"l minus-circle\", \"l minus\", \"l mind-share\", \"l microwave\", \"l microscope\", \"l microphone-stand\", \"l microphone-slash\", \"l microphone-alt-slash\", \"l microphone-alt\", \"l microphone\", \"l microchip\", \"l meteor\", \"l mercury\", \"l menorah\", \"l memory\", \"l meh-rolling-eyes\", \"l meh-blank\", \"l meh\", \"l megaphone\", \"l medkit\", \"l medal\", \"l meat\", \"l mask\", \"l mars-stroke-v\", \"l mars-stroke-h\", \"l mars-stroke\", \"l mars-double\", \"l mars\", \"l marker\", \"l map-signs\", \"l map-pin\", \"l map-marker-times\", \"l map-marker-smile\", \"l map-marker-slash\", \"l map-marker-question\", \"l map-marker-plus\", \"l map-marker-minus\", \"l map-marker-exclamation\", \"l map-marker-edit\", \"l map-marker-check\", \"l map-marker-alt-slash\", \"l map-marker-alt\", \"l map-marker\", \"l map-marked-alt\", \"l map-marked\", \"l map\", \"l mandolin\", \"l male\", \"l mailbox\", \"l mail-bulk\", \"l magnet\", \"l magic\", \"l mace\", \"l lungs-virus\", \"l lungs\", \"l luggage-cart\", \"l luchador\", \"l low-vision\", \"l loveseat\", \"l long-arrow-up\", \"l long-arrow-right\", \"l long-arrow-left\", \"l long-arrow-down\", \"l long-arrow-alt-up\", \"l long-arrow-alt-right\", \"l long-arrow-alt-left\", \"l long-arrow-alt-down\", \"l lock-open-alt\", \"l lock-open\", \"l lock-alt\", \"l lock\", \"l location-slash\", \"l location-circle\", \"l location-arrow\", \"l location\", \"l list-ul\", \"l list-ol\", \"l list-music\", \"l list-alt\", \"l list\", \"l lira-sign\", \"l lips\", \"l link\", \"l line-height\", \"l line-columns\", \"l lights-holiday\", \"l lightbulb-slash\", \"l lightbulb-on\", \"l lightbulb-exclamation\", \"l lightbulb-dollar\", \"l lightbulb\", \"l light-switch-on\", \"l light-switch-off\", \"l light-switch\", \"l light-ceiling\", \"l life-ring\", \"l level-up-alt\", \"l level-up\", \"l level-down-alt\", \"l level-down\", \"l less-than-equal\", \"l less-than\", \"l lemon\", \"l leaf-oak\", \"l leaf-maple\", \"l leaf-heart\", \"l leaf\", \"l layer-plus\", \"l layer-minus\", \"l layer-group\", \"l laugh-wink\", \"l laugh-squint\", \"l laugh-beam\", \"l laugh\", \"l lasso\", \"l laptop-medical\", \"l laptop-house\", \"l laptop-code\", \"l laptop\", \"l language\", \"l landmark-alt\", \"l landmark\", \"l lamp-floor\", \"l lamp-desk\", \"l lamp\", \"l lambda\", \"l knife-kitchen\", \"l kiwi-bird\", \"l kite\", \"l kiss-wink-heart\", \"l kiss-beam\", \"l kiss\", \"l kidneys\", \"l khanda\", \"l keynote\", \"l keyboard\", \"l key-skeleton\", \"l key\", \"l kerning\", \"l kazoo\", \"l kaaba\", \"l jug\", \"l joystick\", \"l journal-whills\", \"l joint\", \"l jedi\", \"l jack-o-lantern\", \"l italic\", \"l island-tropical\", \"l inventory\", \"l intersection\", \"l integral\", \"l inhaler\", \"l info-square\", \"l info-circle\", \"l info\", \"l infinity\", \"l industry-alt\", \"l industry\", \"l indent\", \"l inbox-out\", \"l inbox-in\", \"l inbox\", \"l images\", \"l image-polaroid\", \"l image\", \"l igloo\", \"l id-card-alt\", \"l id-card\", \"l id-badge\", \"l icons-alt\", \"l icons\", \"l icicles\", \"l ice-skate\", \"l ice-cream\", \"l i-cursor\", \"l hurricane\", \"l humidity\", \"l hryvnia\", \"l house-user\", \"l house-signal\", \"l house-return\", \"l house-night\", \"l house-leave\", \"l house-flood\", \"l house-day\", \"l house-damage\", \"l house\", \"l hourglass-start\", \"l hourglass-half\", \"l hourglass-end\", \"l hourglass\", \"l hotel\", \"l hotdog\", \"l hot-tub\", \"l hospitals\", \"l hospital-user\", \"l hospital-symbol\", \"l hospital-alt\", \"l hospital\", \"l horse-saddle\", \"l horse-head\", \"l horse\", \"l horizontal-rule\", \"l hood-cloak\", \"l home-lg-alt\", \"l home-lg\", \"l home-heart\", \"l home-alt\", \"l home\", \"l holly-berry\", \"l hockey-sticks\", \"l hockey-puck\", \"l hockey-mask\", \"l history\", \"l hippo\", \"l hiking\", \"l highlighter\", \"l hexagon\", \"l helmet-battle\", \"l helicopter\", \"l heat\", \"l heartbeat\", \"l heart-square\", \"l heart-rate\", \"l heart-circle\", \"l heart-broken\", \"l heart\", \"l headset\", \"l headphones-alt\", \"l headphones\", \"l heading\", \"l head-vr\", \"l head-side-virus\", \"l head-side-medical\", \"l head-side-mask\", \"l head-side-headphones\", \"l head-side-cough-slash\", \"l head-side-cough\", \"l head-side-brain\", \"l head-side\", \"l hdd\", \"l hat-wizard\", \"l hat-witch\", \"l hat-winter\", \"l hat-santa\", \"l hat-cowboy-side\", \"l hat-cowboy\", \"l hat-chef\", \"l hashtag\", \"l hard-hat\", \"l hanukiah\", \"l handshake-slash\", \"l handshake-alt-slash\", \"l handshake-alt\", \"l handshake\", \"l hands-wash\", \"l hands-usd\", \"l hands-helping\", \"l hands-heart\", \"l hands\", \"l hand-spock\", \"l hand-sparkles\", \"l hand-scissors\", \"l hand-rock\", \"l hand-receiving\", \"l hand-pointer\", \"l hand-point-up\", \"l hand-point-right\", \"l hand-point-left\", \"l hand-point-down\", \"l hand-peace\", \"l hand-paper\", \"l hand-middle-finger\", \"l hand-lizard\", \"l hand-holding-water\", \"l hand-holding-usd\", \"l hand-holding-seedling\", \"l hand-holding-medical\", \"l hand-holding-magic\", \"l hand-holding-heart\", \"l hand-holding-box\", \"l hand-holding\", \"l hand-heart\", \"l hamsa\", \"l hammer-war\", \"l hammer\", \"l hamburger\", \"l h4\", \"l h3\", \"l h2\", \"l h1\", \"l h-square\", \"l guitars\", \"l guitar-electric\", \"l guitar\", \"l grip-vertical\", \"l grip-lines-vertical\", \"l grip-lines\", \"l grip-horizontal\", \"l grin-wink\", \"l grin-tongue-wink\", \"l grin-tongue-squint\", \"l grin-tongue\", \"l grin-tears\", \"l grin-stars\", \"l grin-squint-tears\", \"l grin-squint\", \"l grin-hearts\", \"l grin-beam-sweat\", \"l grin-beam\", \"l grin-alt\", \"l grin\", \"l grimace\", \"l greater-than-equal\", \"l greater-than\", \"l gramophone\", \"l graduation-cap\", \"l gopuram\", \"l golf-club\", \"l golf-ball\", \"l globe-stand\", \"l globe-snow\", \"l globe-europe\", \"l globe-asia\", \"l globe-americas\", \"l globe-africa\", \"l globe\", \"l glasses-alt\", \"l glasses\", \"l glass-whiskey-rocks\", \"l glass-whiskey\", \"l glass-martini-alt\", \"l glass-martini\", \"l glass-citrus\", \"l glass-cheers\", \"l glass-champagne\", \"l glass\", \"l gingerbread-man\", \"l gifts\", \"l gift-card\", \"l gift\", \"l ghost\", \"l genderless\", \"l gem\", \"l gavel\", \"l gas-pump-slash\", \"l gas-pump\", \"l garage-open\", \"l garage-car\", \"l garage\", \"l gamepad-alt\", \"l gamepad\", \"l game-console-handheld\", \"l game-board-alt\", \"l game-board\", \"l galaxy\", \"l futbol\", \"l funnel-dollar\", \"l function\", \"l frown-open\", \"l frown\", \"l frosty-head\", \"l frog\", \"l french-fries\", \"l fragile\", \"l forward\", \"l forklift\", \"l football-helmet\", \"l football-ball\", \"l font-case\", \"l font\", \"l folders\", \"l folder-upload\", \"l folder-tree\", \"l folder-times\", \"l folder-plus\", \"l folder-open\", \"l folder-minus\", \"l folder-download\", \"l folder\", \"l fog\", \"l flux-capacitor\", \"l flute\", \"l flushed\", \"l flower-tulip\", \"l flower-daffodil\", \"l flower\", \"l flask-potion\", \"l flask-poison\", \"l flask\", \"l flashlight\", \"l flame\", \"l flag-usa\", \"l flag-checkered\", \"l flag-alt\", \"l flag\", \"l fist-raised\", \"l fish-cooked\", \"l fish\", \"l first-aid\", \"l fireplace\", \"l fire-smoke\", \"l fire-extinguisher\", \"l fire-alt\", \"l fire\", \"l fingerprint\", \"l filter\", \"l film-canister\", \"l film-alt\", \"l film\", \"l fill-drip\", \"l fill\", \"l files-medical\", \"l file-word\", \"l file-video\", \"l file-user\", \"l file-upload\", \"l file-times\", \"l file-spreadsheet\", \"l file-signature\", \"l file-search\", \"l file-prescription\", \"l file-powerpoint\", \"l file-plus\", \"l file-pdf\", \"l file-music\", \"l file-minus\", \"l file-medical-alt\", \"l file-medical\", \"l file-invoice-dollar\", \"l file-invoice\", \"l file-import\", \"l file-image\", \"l file-export\", \"l file-exclamation\", \"l file-excel\", \"l file-edit\", \"l file-download\", \"l file-csv\", \"l file-contract\", \"l file-code\", \"l file-check\", \"l file-chart-pie\", \"l file-chart-line\", \"l file-certificate\", \"l file-audio\", \"l file-archive\", \"l file-alt\", \"l file\", \"l fighter-jet\", \"l field-hockey\", \"l female\", \"l feather-alt\", \"l feather\", \"l fax\", \"l faucet-drip\", \"l faucet\", \"l fast-forward\", \"l fast-backward\", \"l farm\", \"l fan-table\", \"l fan\", \"l eye-slash\", \"l eye-evil\", \"l eye-dropper\", \"l eye\", \"l external-link-square-alt\", \"l external-link-square\", \"l external-link-alt\", \"l external-link\", \"l expand-wide\", \"l expand-arrows-alt\", \"l expand-arrows\", \"l expand-alt\", \"l expand\", \"l exclamation-triangle\", \"l exclamation-square\", \"l exclamation-circle\", \"l exclamation\", \"l exchange-alt\", \"l exchange\", \"l euro-sign\", \"l ethernet\", \"l eraser\", \"l equals\", \"l envelope-square\", \"l envelope-open-text\", \"l envelope-open-dollar\", \"l envelope-open\", \"l envelope\", \"l engine-warning\", \"l empty-set\", \"l ellipsis-v-alt\", \"l ellipsis-v\", \"l ellipsis-h-alt\", \"l ellipsis-h\", \"l elephant\", \"l eject\", \"l egg-fried\", \"l egg\", \"l edit\", \"l eclipse-alt\", \"l eclipse\", \"l ear-muffs\", \"l ear\", \"l dungeon\", \"l dumpster-fire\", \"l dumpster\", \"l dumbbell\", \"l duck\", \"l dryer-alt\", \"l dryer\", \"l drumstick-bite\", \"l drumstick\", \"l drum-steelpan\", \"l drum\", \"l drone-alt\", \"l drone\", \"l dreidel\", \"l draw-square\", \"l draw-polygon\", \"l draw-circle\", \"l dragon\", \"l drafting-compass\", \"l download\", \"l dove\", \"l dot-circle\", \"l door-open\", \"l door-closed\", \"l donate\", \"l dolly-flatbed-empty\", \"l dolly-flatbed-alt\", \"l dolly-flatbed\", \"l dolly-empty\", \"l dolly\", \"l dollar-sign\", \"l dog-leashed\", \"l dog\", \"l do-not-enter\", \"l dna\", \"l dizzy\", \"l divide\", \"l disease\", \"l disc-drive\", \"l directions\", \"l diploma\", \"l digital-tachograph\", \"l digging\", \"l dice-two\", \"l dice-three\", \"l dice-six\", \"l dice-one\", \"l dice-four\", \"l dice-five\", \"l dice-d8\", \"l dice-d6\", \"l dice-d4\", \"l dice-d20\", \"l dice-d12\", \"l dice-d10\", \"l dice\", \"l diamond\", \"l diagnoses\", \"l dharmachakra\", \"l dewpoint\", \"l desktop-alt\", \"l desktop\", \"l democrat\", \"l deer-rudolph\", \"l deer\", \"l debug\", \"l deaf\", \"l database\", \"l dagger\", \"l cut\", \"l curling\", \"l cubes\", \"l cube\", \"l crutches\", \"l crutch\", \"l crown\", \"l crow\", \"l crosshairs\", \"l cross\", \"l crop-alt\", \"l crop\", \"l croissant\", \"l cricket\", \"l credit-card-front\", \"l credit-card-blank\", \"l credit-card\", \"l cowbell-more\", \"l cowbell\", \"l cow\", \"l couch\", \"l corn\", \"l copyright\", \"l copy\", \"l cookie-bite\", \"l cookie\", \"l conveyor-belt-alt\", \"l conveyor-belt\", \"l container-storage\", \"l construction\", \"l concierge-bell\", \"l computer-speaker\", \"l computer-classic\", \"l compress-wide\", \"l compress-arrows-alt\", \"l compress-alt\", \"l compress\", \"l compass-slash\", \"l compass\", \"l compact-disc\", \"l comments-dollar\", \"l comments-alt-dollar\", \"l comments-alt\", \"l comments\", \"l comment-times\", \"l comment-smile\", \"l comment-slash\", \"l comment-plus\", \"l comment-music\", \"l comment-minus\", \"l comment-medical\", \"l comment-lines\", \"l comment-exclamation\", \"l comment-edit\", \"l comment-dots\", \"l comment-dollar\", \"l comment-check\", \"l comment-alt-times\", \"l comment-alt-smile\", \"l comment-alt-slash\", \"l comment-alt-plus\", \"l comment-alt-music\", \"l comment-alt-minus\", \"l comment-alt-medical\", \"l comment-alt-lines\", \"l comment-alt-exclamation\", \"l comment-alt-edit\", \"l comment-alt-dots\", \"l comment-alt-dollar\", \"l comment-alt-check\", \"l comment-alt\", \"l comment\", \"l comet\", \"l columns\", \"l coins\", \"l coin\", \"l cogs\", \"l cog\", \"l coffin-cross\", \"l coffin\", \"l coffee-togo\", \"l coffee-pot\", \"l coffee\", \"l code-merge\", \"l code-commit\", \"l code-branch\", \"l code\", \"l cocktail\", \"l club\", \"l clouds-sun\", \"l clouds-moon\", \"l clouds\", \"l cloud-upload-alt\", \"l cloud-upload\", \"l cloud-sun-rain\", \"l cloud-sun\", \"l cloud-snow\", \"l cloud-sleet\", \"l cloud-showers-heavy\", \"l cloud-showers\", \"l cloud-rainbow\", \"l cloud-rain\", \"l cloud-music\", \"l cloud-moon-rain\", \"l cloud-moon\", \"l cloud-meatball\", \"l cloud-hail-mixed\", \"l cloud-hail\", \"l cloud-drizzle\", \"l cloud-download-alt\", \"l cloud-download\", \"l cloud\", \"l closed-captioning\", \"l clone\", \"l clock\", \"l clipboard-user\", \"l clipboard-prescription\", \"l clipboard-list-check\", \"l clipboard-list\", \"l clipboard-check\", \"l clipboard\", \"l clinic-medical\", \"l claw-marks\", \"l clarinet\", \"l city\", \"l circle-notch\", \"l circle\", \"l church\", \"l chimney\", \"l child\", \"l chevron-up\", \"l chevron-square-up\", \"l chevron-square-right\", \"l chevron-square-left\", \"l chevron-square-down\", \"l chevron-right\", \"l chevron-left\", \"l chevron-down\", \"l chevron-double-up\", \"l chevron-double-right\", \"l chevron-double-left\", \"l chevron-double-down\", \"l chevron-circle-up\", \"l chevron-circle-right\", \"l chevron-circle-left\", \"l chevron-circle-down\", \"l chess-rook-alt\", \"l chess-rook\", \"l chess-queen-alt\", \"l chess-queen\", \"l chess-pawn-alt\", \"l chess-pawn\", \"l chess-knight-alt\", \"l chess-knight\", \"l chess-king-alt\", \"l chess-king\", \"l chess-clock-alt\", \"l chess-clock\", \"l chess-board\", \"l chess-bishop-alt\", \"l chess-bishop\", \"l chess\", \"l cheeseburger\", \"l cheese-swiss\", \"l cheese\", \"l check-square\", \"l check-double\", \"l check-circle\", \"l check\", \"l chart-scatter\", \"l chart-pie-alt\", \"l chart-pie\", \"l chart-network\", \"l chart-line-down\", \"l chart-line\", \"l chart-bar\", \"l chart-area\", \"l charging-station\", \"l chalkboard-teacher\", \"l chalkboard\", \"l chair-office\", \"l chair\", \"l certificate\", \"l cctv\", \"l cauldron\", \"l cat-space\", \"l cat\", \"l cassette-tape\", \"l cash-register\", \"l cart-plus\", \"l cart-arrow-down\", \"l cars\", \"l carrot\", \"l caret-up\", \"l caret-square-up\", \"l caret-square-right\", \"l caret-square-left\", \"l caret-square-down\", \"l caret-right\", \"l caret-left\", \"l caret-down\", \"l caret-circle-up\", \"l caret-circle-right\", \"l caret-circle-left\", \"l caret-circle-down\", \"l caravan-alt\", \"l caravan\", \"l car-wash\", \"l car-tilt\", \"l car-side\", \"l car-mechanic\", \"l car-garage\", \"l car-crash\", \"l car-bus\", \"l car-bump\", \"l car-building\", \"l car-battery\", \"l car-alt\", \"l car\", \"l capsules\", \"l cannabis\", \"l candy-corn\", \"l candy-cane\", \"l candle-holder\", \"l campground\", \"l campfire\", \"l camera-retro\", \"l camera-polaroid\", \"l camera-movie\", \"l camera-home\", \"l camera-alt\", \"l camera\", \"l camcorder\", \"l calendar-week\", \"l calendar-times\", \"l calendar-star\", \"l calendar-plus\", \"l calendar-minus\", \"l calendar-exclamation\", \"l calendar-edit\", \"l calendar-day\", \"l calendar-check\", \"l calendar-alt\", \"l calendar\", \"l calculator-alt\", \"l calculator\", \"l cactus\", \"l cabinet-filing\", \"l business-time\", \"l bus-school\", \"l bus-alt\", \"l bus\", \"l burrito\", \"l burn\", \"l burger-soda\", \"l bullseye-pointer\", \"l bullseye-arrow\", \"l bullseye\", \"l bullhorn\", \"l building\", \"l bug\", \"l brush\", \"l browser\", \"l broom\", \"l broadcast-tower\", \"l bring-front\", \"l bring-forward\", \"l briefcase-medical\", \"l briefcase\", \"l bread-slice\", \"l bread-loaf\", \"l brain\", \"l braille\", \"l brackets-curly\", \"l brackets\", \"l boxing-glove\", \"l boxes-alt\", \"l boxes\", \"l box-usd\", \"l box-up\", \"l box-tissue\", \"l box-open\", \"l box-heart\", \"l box-full\", \"l box-fragile\", \"l box-check\", \"l box-ballot\", \"l box-alt\", \"l box\", \"l bowling-pins\", \"l bowling-ball\", \"l bow-arrow\", \"l border-top\", \"l border-style-alt\", \"l border-style\", \"l border-right\", \"l border-outer\", \"l border-none\", \"l border-left\", \"l border-inner\", \"l border-center-v\", \"l border-center-h\", \"l border-bottom\", \"l border-all\", \"l booth-curtain\", \"l boot\", \"l boombox\", \"l books-medical\", \"l books\", \"l bookmark\", \"l book-user\", \"l book-spells\", \"l book-reader\", \"l book-open\", \"l book-medical\", \"l book-heart\", \"l book-dead\", \"l book-alt\", \"l book\", \"l bong\", \"l bone-break\", \"l bone\", \"l bomb\", \"l bolt\", \"l bold\", \"l blog\", \"l blinds-raised\", \"l blinds-open\", \"l blinds\", \"l blind\", \"l blender-phone\", \"l blender\", \"l blanket\", \"l birthday-cake\", \"l biohazard\", \"l binoculars\", \"l biking-mountain\", \"l biking\", \"l bicycle\", \"l bible\", \"l bezier-curve\", \"l betamax\", \"l bells\", \"l bell-slash\", \"l bell-school-slash\", \"l bell-school\", \"l bell-plus\", \"l bell-on\", \"l bell-exclamation\", \"l bell\", \"l beer\", \"l bed-empty\", \"l bed-bunk\", \"l bed-alt\", \"l bed\", \"l battery-three-quarters\", \"l battery-slash\", \"l battery-quarter\", \"l battery-half\", \"l battery-full\", \"l battery-empty\", \"l battery-bolt\", \"l bath\", \"l bat\", \"l basketball-hoop\", \"l basketball-ball\", \"l baseball-ball\", \"l baseball\", \"l bars\", \"l barcode-scan\", \"l barcode-read\", \"l barcode-alt\", \"l barcode\", \"l banjo\", \"l band-aid\", \"l ban\", \"l ballot-check\", \"l ballot\", \"l ball-pile\", \"l balance-scale-right\", \"l balance-scale-left\", \"l balance-scale\", \"l bahai\", \"l bags-shopping\", \"l badger-honey\", \"l badge-sheriff\", \"l badge-percent\", \"l badge-dollar\", \"l badge-check\", \"l badge\", \"l bacterium\", \"l bacteria\", \"l bacon\", \"l backward\", \"l backspace\", \"l backpack\", \"l baby-carriage\", \"l baby\", \"l axe-battle\", \"l axe\", \"l award\", \"l audio-description\", \"l atom-alt\", \"l atom\", \"l atlas\", \"l at\", \"l asterisk\", \"l assistive-listening-systems\", \"l arrows-v\", \"l arrows-h\", \"l arrows-alt-v\", \"l arrows-alt-h\", \"l arrows-alt\", \"l arrows\", \"l arrow-up\", \"l arrow-to-top\", \"l arrow-to-right\", \"l arrow-to-left\", \"l arrow-to-bottom\", \"l arrow-square-up\", \"l arrow-square-right\", \"l arrow-square-left\", \"l arrow-square-down\", \"l arrow-right\", \"l arrow-left\", \"l arrow-from-top\", \"l arrow-from-right\", \"l arrow-from-left\", \"l arrow-from-bottom\", \"l arrow-down\", \"l arrow-circle-up\", \"l arrow-circle-right\", \"l arrow-circle-left\", \"l arrow-circle-down\", \"l arrow-alt-up\", \"l arrow-alt-to-top\", \"l arrow-alt-to-right\", \"l arrow-alt-to-left\", \"l arrow-alt-to-bottom\", \"l arrow-alt-square-up\", \"l arrow-alt-square-right\", \"l arrow-alt-square-left\", \"l arrow-alt-square-down\", \"l arrow-alt-right\", \"l arrow-alt-left\", \"l arrow-alt-from-top\", \"l arrow-alt-from-right\", \"l arrow-alt-from-left\", \"l arrow-alt-from-bottom\", \"l arrow-alt-down\", \"l arrow-alt-circle-up\", \"l arrow-alt-circle-right\", \"l arrow-alt-circle-left\", \"l arrow-alt-circle-down\", \"l archway\", \"l archive\", \"l apple-crate\", \"l apple-alt\", \"l ankh\", \"l angry\", \"l angle-up\", \"l angle-right\", \"l angle-left\", \"l angle-down\", \"l angle-double-up\", \"l angle-double-right\", \"l angle-double-left\", \"l angle-double-down\", \"l angel\", \"l anchor\", \"l analytics\", \"l amp-guitar\", \"l american-sign-language-interpreting\", \"l ambulance\", \"l allergies\", \"l align-slash\", \"l align-right\", \"l align-left\", \"l align-justify\", \"l align-center\", \"l alien-monster\", \"l alien\", \"l alicorn\", \"l album-collection\", \"l album\", \"l alarm-snooze\", \"l alarm-plus\", \"l alarm-exclamation\", \"l alarm-clock\", \"l air-freshener\", \"l air-conditioner\", \"l adjust\", \"l address-card\", \"l address-book\", \"l ad\", \"l acorn\", \"l abacus\", \"d yin-yang\", \"d yen-sign\", \"d x-ray\", \"d wrench\", \"d wreath\", \"d won-sign\", \"d wine-glass-alt\", \"d wine-glass\", \"d wine-bottle\", \"d windsock\", \"d window-restore\", \"d window-minimize\", \"d window-maximize\", \"d window-frame-open\", \"d window-frame\", \"d window-close\", \"d window-alt\", \"d window\", \"d wind-warning\", \"d wind-turbine\", \"d wind\", \"d wifi-slash\", \"d wifi-2\", \"d wifi-1\", \"d wifi\", \"d whistle\", \"d wheelchair\", \"d wheat\", \"d whale\", \"d weight-hanging\", \"d weight\", \"d webcam-slash\", \"d webcam\", \"d waveform-path\", \"d waveform\", \"d wave-triangle\", \"d wave-square\", \"d wave-sine\", \"d water-rise\", \"d water-lower\", \"d water\", \"d watch-fitness\", \"d watch-calculator\", \"d watch\", \"d washer\", \"d warehouse-alt\", \"d warehouse\", \"d wand-magic\", \"d wand\", \"d wallet\", \"d walking\", \"d walkie-talkie\", \"d walker\", \"d wagon-covered\", \"d vr-cardboard\", \"d vote-yea\", \"d vote-nay\", \"d volume-up\", \"d volume-slash\", \"d volume-off\", \"d volume-mute\", \"d volume-down\", \"d volume\", \"d volleyball-ball\", \"d volcano\", \"d voicemail\", \"d viruses\", \"d virus-slash\", \"d virus\", \"d violin\", \"d vihara\", \"d video-slash\", \"d video-plus\", \"d video\", \"d vials\", \"d vial\", \"d vhs\", \"d vest-patches\", \"d vest\", \"d venus-mars\", \"d venus-double\", \"d venus\", \"d vector-square\", \"d value-absolute\", \"d vacuum-robot\", \"d vacuum\", \"d utensils-alt\", \"d utensils\", \"d utensil-spoon\", \"d utensil-knife\", \"d utensil-fork\", \"d users-slash\", \"d users-medical\", \"d users-crown\", \"d users-cog\", \"d users-class\", \"d users\", \"d user-visor\", \"d user-unlock\", \"d user-times\", \"d user-tie\", \"d user-tag\", \"d user-slash\", \"d user-shield\", \"d user-secret\", \"d user-robot\", \"d user-plus\", \"d user-nurse\", \"d user-ninja\", \"d user-music\", \"d user-minus\", \"d user-md-chat\", \"d user-md\", \"d user-lock\", \"d user-injured\", \"d user-headset\", \"d user-hard-hat\", \"d user-graduate\", \"d user-friends\", \"d user-edit\", \"d user-crown\", \"d user-cowboy\", \"d user-cog\", \"d user-clock\", \"d user-circle\", \"d user-check\", \"d user-chart\", \"d user-astronaut\", \"d user-alt-slash\", \"d user-alt\", \"d user-alien\", \"d user\", \"d usd-square\", \"d usd-circle\", \"d usb-drive\", \"d upload\", \"d unlock-alt\", \"d unlock\", \"d unlink\", \"d university\", \"d universal-access\", \"d union\", \"d unicorn\", \"d undo-alt\", \"d undo\", \"d underline\", \"d umbrella-beach\", \"d umbrella\", \"d ufo-beam\", \"d ufo\", \"d typewriter\", \"d tv-retro\", \"d tv-music\", \"d tv-alt\", \"d tv\", \"d turtle\", \"d turntable\", \"d turkey\", \"d tty\", \"d tshirt\", \"d trumpet\", \"d truck-ramp\", \"d truck-plow\", \"d truck-pickup\", \"d truck-moving\", \"d truck-monster\", \"d truck-loading\", \"d truck-couch\", \"d truck-container\", \"d truck\", \"d trophy-alt\", \"d trophy\", \"d triangle-music\", \"d triangle\", \"d trees\", \"d tree-palm\", \"d tree-large\", \"d tree-decorated\", \"d tree-christmas\", \"d tree-alt\", \"d tree\", \"d treasure-chest\", \"d trash-undo-alt\", \"d trash-undo\", \"d trash-restore-alt\", \"d trash-restore\", \"d trash-alt\", \"d trash\", \"d transporter-empty\", \"d transporter-3\", \"d transporter-2\", \"d transporter-1\", \"d transporter\", \"d transgender-alt\", \"d transgender\", \"d tram\", \"d train\", \"d trailer\", \"d traffic-light-stop\", \"d traffic-light-slow\", \"d traffic-light-go\", \"d traffic-light\", \"d traffic-cone\", \"d trademark\", \"d tractor\", \"d tornado\", \"d torii-gate\", \"d torah\", \"d toothbrush\", \"d tooth\", \"d tools\", \"d toolbox\", \"d tombstone-alt\", \"d tombstone\", \"d toilet-paper-slash\", \"d toilet-paper-alt\", \"d toilet-paper\", \"d toilet\", \"d toggle-on\", \"d toggle-off\", \"d tired\", \"d tire-rugged\", \"d tire-pressure-warning\", \"d tire-flat\", \"d tire\", \"d tint-slash\", \"d tint\", \"d times-square\", \"d times-octagon\", \"d times-hexagon\", \"d times-circle\", \"d times\", \"d tilde\", \"d ticket-alt\", \"d ticket\", \"d thunderstorm-sun\", \"d thunderstorm-moon\", \"d thunderstorm\", \"d thumbtack\", \"d thumbs-up\", \"d thumbs-down\", \"d theta\", \"d thermometer-three-quarters\", \"d thermometer-quarter\", \"d thermometer-half\", \"d thermometer-full\", \"d thermometer-empty\", \"d thermometer\", \"d theater-masks\", \"d th-list\", \"d th-large\", \"d th\", \"d text-width\", \"d text-size\", \"d text-height\", \"d text\", \"d terminal\", \"d tennis-ball\", \"d tenge\", \"d temperature-up\", \"d temperature-low\", \"d temperature-hot\", \"d temperature-high\", \"d temperature-frigid\", \"d temperature-down\", \"d telescope\", \"d teeth-open\", \"d teeth\", \"d taxi\", \"d tasks-alt\", \"d tasks\", \"d tape\", \"d tanakh\", \"d tally\", \"d tags\", \"d tag\", \"d taco\", \"d tachometer-slowest\", \"d tachometer-slow\", \"d tachometer-fastest\", \"d tachometer-fast\", \"d tachometer-average\", \"d tachometer-alt-slowest\", \"d tachometer-alt-slow\", \"d tachometer-alt-fastest\", \"d tachometer-alt-fast\", \"d tachometer-alt-average\", \"d tachometer-alt\", \"d tachometer\", \"d tablets\", \"d tablet-rugged\", \"d tablet-android-alt\", \"d tablet-android\", \"d tablet-alt\", \"d tablet\", \"d table-tennis\", \"d table\", \"d syringe\", \"d sync-alt\", \"d sync\", \"d synagogue\", \"d swords-laser\", \"d swords\", \"d sword-laser-alt\", \"d sword-laser\", \"d sword\", \"d swimming-pool\", \"d swimmer\", \"d swatchbook\", \"d surprise\", \"d superscript\", \"d sunset\", \"d sunrise\", \"d sunglasses\", \"d sun-haze\", \"d sun-dust\", \"d sun-cloud\", \"d sun\", \"d suitcase-rolling\", \"d suitcase\", \"d subway\", \"d subscript\", \"d stroopwafel\", \"d strikethrough\", \"d stretcher\", \"d street-view\", \"d stream\", \"d store-slash\", \"d store-alt-slash\", \"d store-alt\", \"d store\", \"d stopwatch-20\", \"d stopwatch\", \"d stop-circle\", \"d stop\", \"d stomach\", \"d stocking\", \"d sticky-note\", \"d stethoscope\", \"d step-forward\", \"d step-backward\", \"d steering-wheel\", \"d steak\", \"d starship-freighter\", \"d starship\", \"d stars\", \"d starfighter-alt\", \"d starfighter\", \"d star-shooting\", \"d star-of-life\", \"d star-of-david\", \"d star-half-alt\", \"d star-half\", \"d star-exclamation\", \"d star-christmas\", \"d star-and-crescent\", \"d star\", \"d stamp\", \"d staff\", \"d squirrel\", \"d square-root-alt\", \"d square-root\", \"d square-full\", \"d square\", \"d sprinkler\", \"d spray-can\", \"d splotch\", \"d spinner-third\", \"d spinner\", \"d spider-web\", \"d spider-black-widow\", \"d spider\", \"d spell-check\", \"d speakers\", \"d speaker\", \"d sparkles\", \"d spade\", \"d space-station-moon-alt\", \"d space-station-moon\", \"d space-shuttle\", \"d spa\", \"d soup\", \"d sort-up\", \"d sort-size-up-alt\", \"d sort-size-up\", \"d sort-size-down-alt\", \"d sort-size-down\", \"d sort-shapes-up-alt\", \"d sort-shapes-up\", \"d sort-shapes-down-alt\", \"d sort-shapes-down\", \"d sort-numeric-up-alt\", \"d sort-numeric-up\", \"d sort-numeric-down-alt\", \"d sort-numeric-down\", \"d sort-down\", \"d sort-circle-up\", \"d sort-circle-down\", \"d sort-circle\", \"d sort-amount-up-alt\", \"d sort-amount-up\", \"d sort-amount-down-alt\", \"d sort-amount-down\", \"d sort-alt\", \"d sort-alpha-up-alt\", \"d sort-alpha-up\", \"d sort-alpha-down-alt\", \"d sort-alpha-down\", \"d sort\", \"d solar-system\", \"d solar-panel\", \"d socks\", \"d soap\", \"d snowplow\", \"d snowmobile\", \"d snowman\", \"d snowflakes\", \"d snowflake\", \"d snowboarding\", \"d snow-blowing\", \"d snooze\", \"d snake\", \"d sms\", \"d smoking-ban\", \"d smoking\", \"d smoke\", \"d smog\", \"d smile-wink\", \"d smile-plus\", \"d smile-beam\", \"d smile\", \"d sliders-v-square\", \"d sliders-v\", \"d sliders-h-square\", \"d sliders-h\", \"d sleigh\", \"d sledding\", \"d slash\", \"d skull-crossbones\", \"d skull-cow\", \"d skull\", \"d skiing-nordic\", \"d skiing\", \"d ski-lift\", \"d ski-jump\", \"d skeleton\", \"d skating\", \"d sitemap\", \"d siren-on\", \"d siren\", \"d sink\", \"d sim-card\", \"d signature\", \"d signal-stream\", \"d signal-slash\", \"d signal-alt-slash\", \"d signal-alt-3\", \"d signal-alt-2\", \"d signal-alt-1\", \"d signal-alt\", \"d signal-4\", \"d signal-3\", \"d signal-2\", \"d signal-1\", \"d signal\", \"d sign-out-alt\", \"d sign-out\", \"d sign-language\", \"d sign-in-alt\", \"d sign-in\", \"d sign\", \"d sigma\", \"d sickle\", \"d shuttlecock\", \"d shuttle-van\", \"d shredder\", \"d shower\", \"d shovel-snow\", \"d shovel\", \"d shopping-cart\", \"d shopping-basket\", \"d shopping-bag\", \"d shoe-prints\", \"d shish-kebab\", \"d shipping-timed\", \"d shipping-fast\", \"d ship\", \"d shield-virus\", \"d shield-cross\", \"d shield-check\", \"d shield-alt\", \"d shield\", \"d shekel-sign\", \"d sheep\", \"d share-square\", \"d share-alt-square\", \"d share-alt\", \"d share-all\", \"d share\", \"d shapes\", \"d server\", \"d sensor-smoke\", \"d sensor-on\", \"d sensor-fire\", \"d sensor-alert\", \"d sensor\", \"d send-backward\", \"d send-back\", \"d seedling\", \"d search-plus\", \"d search-minus\", \"d search-location\", \"d search-dollar\", \"d search\", \"d sd-card\", \"d scythe\", \"d scrubber\", \"d scroll-old\", \"d scroll\", \"d screwdriver\", \"d school\", \"d scarf\", \"d scarecrow\", \"d scanner-touchscreen\", \"d scanner-keyboard\", \"d scanner-image\", \"d scanner\", \"d scalpel-path\", \"d scalpel\", \"d saxophone\", \"d sax-hot\", \"d save\", \"d sausage\", \"d satellite-dish\", \"d satellite\", \"d sandwich\", \"d salad\", \"d sad-tear\", \"d sad-cry\", \"d sack-dollar\", \"d sack\", \"d rv\", \"d rupee-sign\", \"d running\", \"d ruler-vertical\", \"d ruler-triangle\", \"d ruler-horizontal\", \"d ruler-combined\", \"d ruler\", \"d ruble-sign\", \"d rss-square\", \"d rss\", \"d router\", \"d route-interstate\", \"d route-highway\", \"d route\", \"d rocket-launch\", \"d rocket\", \"d robot\", \"d road\", \"d rings-wedding\", \"d ring\", \"d ribbon\", \"d retweet-alt\", \"d retweet\", \"d restroom\", \"d republican\", \"d reply-all\", \"d reply\", \"d repeat-alt\", \"d repeat-1-alt\", \"d repeat-1\", \"d repeat\", \"d remove-format\", \"d registered\", \"d refrigerator\", \"d redo-alt\", \"d redo\", \"d recycle\", \"d rectangle-wide\", \"d rectangle-portrait\", \"d rectangle-landscape\", \"d record-vinyl\", \"d receipt\", \"d raygun\", \"d random\", \"d ramp-loading\", \"d ram\", \"d raindrops\", \"d rainbow\", \"d radio-alt\", \"d radio\", \"d radiation-alt\", \"d radiation\", \"d radar\", \"d racquet\", \"d rabbit-fast\", \"d rabbit\", \"d quran\", \"d quote-right\", \"d quote-left\", \"d quidditch\", \"d question-square\", \"d question-circle\", \"d question\", \"d qrcode\", \"d puzzle-piece\", \"d pumpkin\", \"d pump-soap\", \"d pump-medical\", \"d projector\", \"d project-diagram\", \"d procedures\", \"d print-slash\", \"d print-search\", \"d print\", \"d presentation\", \"d prescription-bottle-alt\", \"d prescription-bottle\", \"d prescription\", \"d praying-hands\", \"d pray\", \"d power-off\", \"d pound-sign\", \"d portrait\", \"d portal-exit\", \"d portal-enter\", \"d popcorn\", \"d poop\", \"d poo-storm\", \"d poo\", \"d poll-people\", \"d poll-h\", \"d poll\", \"d police-box\", \"d podium-star\", \"d podium\", \"d podcast\", \"d plus-square\", \"d plus-octagon\", \"d plus-hexagon\", \"d plus-circle\", \"d plus\", \"d plug\", \"d play-circle\", \"d play\", \"d planet-ringed\", \"d planet-moon\", \"d plane-slash\", \"d plane-departure\", \"d plane-arrival\", \"d plane-alt\", \"d plane\", \"d place-of-worship\", \"d pizza-slice\", \"d pizza\", \"d pills\", \"d piggy-bank\", \"d pig\", \"d pie\", \"d piano-keyboard\", \"d piano\", \"d pi\", \"d photo-video\", \"d phone-volume\", \"d phone-square-alt\", \"d phone-square\", \"d phone-slash\", \"d phone-rotary\", \"d phone-plus\", \"d phone-office\", \"d phone-laptop\", \"d phone-alt\", \"d phone\", \"d person-sign\", \"d person-dolly-empty\", \"d person-dolly\", \"d person-carry\", \"d person-booth\", \"d percentage\", \"d percent\", \"d pepper-hot\", \"d people-carry\", \"d people-arrows\", \"d pennant\", \"d pencil-ruler\", \"d pencil-paintbrush\", \"d pencil-alt\", \"d pencil\", \"d pen-square\", \"d pen-nib\", \"d pen-fancy\", \"d pen-alt\", \"d pen\", \"d pegasus\", \"d peace\", \"d paw-claws\", \"d paw-alt\", \"d paw\", \"d pause-circle\", \"d pause\", \"d paste\", \"d pastafarianism\", \"d passport\", \"d parking-slash\", \"d parking-circle-slash\", \"d parking-circle\", \"d parking\", \"d paragraph-rtl\", \"d paragraph\", \"d parachute-box\", \"d paperclip\", \"d paper-plane\", \"d pallet-alt\", \"d pallet\", \"d palette\", \"d paint-roller\", \"d paint-brush-alt\", \"d paint-brush\", \"d pager\", \"d page-break\", \"d overline\", \"d oven\", \"d outlet\", \"d outdent\", \"d otter\", \"d ornament\", \"d omega\", \"d om\", \"d oil-temp\", \"d oil-can\", \"d octagon\", \"d object-ungroup\", \"d object-group\", \"d notes-medical\", \"d not-equal\", \"d newspaper\", \"d neuter\", \"d network-wired\", \"d narwhal\", \"d music-slash\", \"d music-alt-slash\", \"d music-alt\", \"d music\", \"d mug-tea\", \"d mug-marshmallows\", \"d mug-hot\", \"d mug\", \"d mp3-player\", \"d mouse-pointer\", \"d mouse-alt\", \"d mouse\", \"d mountains\", \"d mountain\", \"d motorcycle\", \"d mosque\", \"d mortar-pestle\", \"d moon-stars\", \"d moon-cloud\", \"d moon\", \"d monument\", \"d monkey\", \"d monitor-heart-rate\", \"d money-check-edit-alt\", \"d money-check-edit\", \"d money-check-alt\", \"d money-check\", \"d money-bill-wave-alt\", \"d money-bill-wave\", \"d money-bill-alt\", \"d money-bill\", \"d mobile-android-alt\", \"d mobile-android\", \"d mobile-alt\", \"d mobile\", \"d mitten\", \"d mistletoe\", \"d minus-square\", \"d minus-octagon\", \"d minus-hexagon\", \"d minus-circle\", \"d minus\", \"d mind-share\", \"d microwave\", \"d microscope\", \"d microphone-stand\", \"d microphone-slash\", \"d microphone-alt-slash\", \"d microphone-alt\", \"d microphone\", \"d microchip\", \"d meteor\", \"d mercury\", \"d menorah\", \"d memory\", \"d meh-rolling-eyes\", \"d meh-blank\", \"d meh\", \"d megaphone\", \"d medkit\", \"d medal\", \"d meat\", \"d mask\", \"d mars-stroke-v\", \"d mars-stroke-h\", \"d mars-stroke\", \"d mars-double\", \"d mars\", \"d marker\", \"d map-signs\", \"d map-pin\", \"d map-marker-times\", \"d map-marker-smile\", \"d map-marker-slash\", \"d map-marker-question\", \"d map-marker-plus\", \"d map-marker-minus\", \"d map-marker-exclamation\", \"d map-marker-edit\", \"d map-marker-check\", \"d map-marker-alt-slash\", \"d map-marker-alt\", \"d map-marker\", \"d map-marked-alt\", \"d map-marked\", \"d map\", \"d mandolin\", \"d male\", \"d mailbox\", \"d mail-bulk\", \"d magnet\", \"d magic\", \"d mace\", \"d lungs-virus\", \"d lungs\", \"d luggage-cart\", \"d luchador\", \"d low-vision\", \"d loveseat\", \"d long-arrow-up\", \"d long-arrow-right\", \"d long-arrow-left\", \"d long-arrow-down\", \"d long-arrow-alt-up\", \"d long-arrow-alt-right\", \"d long-arrow-alt-left\", \"d long-arrow-alt-down\", \"d lock-open-alt\", \"d lock-open\", \"d lock-alt\", \"d lock\", \"d location-slash\", \"d location-circle\", \"d location-arrow\", \"d location\", \"d list-ul\", \"d list-ol\", \"d list-music\", \"d list-alt\", \"d list\", \"d lira-sign\", \"d lips\", \"d link\", \"d line-height\", \"d line-columns\", \"d lights-holiday\", \"d lightbulb-slash\", \"d lightbulb-on\", \"d lightbulb-exclamation\", \"d lightbulb-dollar\", \"d lightbulb\", \"d light-switch-on\", \"d light-switch-off\", \"d light-switch\", \"d light-ceiling\", \"d life-ring\", \"d level-up-alt\", \"d level-up\", \"d level-down-alt\", \"d level-down\", \"d less-than-equal\", \"d less-than\", \"d lemon\", \"d leaf-oak\", \"d leaf-maple\", \"d leaf-heart\", \"d leaf\", \"d layer-plus\", \"d layer-minus\", \"d layer-group\", \"d laugh-wink\", \"d laugh-squint\", \"d laugh-beam\", \"d laugh\", \"d lasso\", \"d laptop-medical\", \"d laptop-house\", \"d laptop-code\", \"d laptop\", \"d language\", \"d landmark-alt\", \"d landmark\", \"d lamp-floor\", \"d lamp-desk\", \"d lamp\", \"d lambda\", \"d knife-kitchen\", \"d kiwi-bird\", \"d kite\", \"d kiss-wink-heart\", \"d kiss-beam\", \"d kiss\", \"d kidneys\", \"d khanda\", \"d keynote\", \"d keyboard\", \"d key-skeleton\", \"d key\", \"d kerning\", \"d kazoo\", \"d kaaba\", \"d jug\", \"d joystick\", \"d journal-whills\", \"d joint\", \"d jedi\", \"d jack-o-lantern\", \"d italic\", \"d island-tropical\", \"d inventory\", \"d intersection\", \"d integral\", \"d inhaler\", \"d info-square\", \"d info-circle\", \"d info\", \"d infinity\", \"d industry-alt\", \"d industry\", \"d indent\", \"d inbox-out\", \"d inbox-in\", \"d inbox\", \"d images\", \"d image-polaroid\", \"d image\", \"d igloo\", \"d id-card-alt\", \"d id-card\", \"d id-badge\", \"d icons-alt\", \"d icons\", \"d icicles\", \"d ice-skate\", \"d ice-cream\", \"d i-cursor\", \"d hurricane\", \"d humidity\", \"d hryvnia\", \"d house-user\", \"d house-signal\", \"d house-return\", \"d house-night\", \"d house-leave\", \"d house-flood\", \"d house-day\", \"d house-damage\", \"d house\", \"d hourglass-start\", \"d hourglass-half\", \"d hourglass-end\", \"d hourglass\", \"d hotel\", \"d hotdog\", \"d hot-tub\", \"d hospitals\", \"d hospital-user\", \"d hospital-symbol\", \"d hospital-alt\", \"d hospital\", \"d horse-saddle\", \"d horse-head\", \"d horse\", \"d horizontal-rule\", \"d hood-cloak\", \"d home-lg-alt\", \"d home-lg\", \"d home-heart\", \"d home-alt\", \"d home\", \"d holly-berry\", \"d hockey-sticks\", \"d hockey-puck\", \"d hockey-mask\", \"d history\", \"d hippo\", \"d hiking\", \"d highlighter\", \"d hexagon\", \"d helmet-battle\", \"d helicopter\", \"d heat\", \"d heartbeat\", \"d heart-square\", \"d heart-rate\", \"d heart-circle\", \"d heart-broken\", \"d heart\", \"d headset\", \"d headphones-alt\", \"d headphones\", \"d heading\", \"d head-vr\", \"d head-side-virus\", \"d head-side-medical\", \"d head-side-mask\", \"d head-side-headphones\", \"d head-side-cough-slash\", \"d head-side-cough\", \"d head-side-brain\", \"d head-side\", \"d hdd\", \"d hat-wizard\", \"d hat-witch\", \"d hat-winter\", \"d hat-santa\", \"d hat-cowboy-side\", \"d hat-cowboy\", \"d hat-chef\", \"d hashtag\", \"d hard-hat\", \"d hanukiah\", \"d handshake-slash\", \"d handshake-alt-slash\", \"d handshake-alt\", \"d handshake\", \"d hands-wash\", \"d hands-usd\", \"d hands-helping\", \"d hands-heart\", \"d hands\", \"d hand-spock\", \"d hand-sparkles\", \"d hand-scissors\", \"d hand-rock\", \"d hand-receiving\", \"d hand-pointer\", \"d hand-point-up\", \"d hand-point-right\", \"d hand-point-left\", \"d hand-point-down\", \"d hand-peace\", \"d hand-paper\", \"d hand-middle-finger\", \"d hand-lizard\", \"d hand-holding-water\", \"d hand-holding-usd\", \"d hand-holding-seedling\", \"d hand-holding-medical\", \"d hand-holding-magic\", \"d hand-holding-heart\", \"d hand-holding-box\", \"d hand-holding\", \"d hand-heart\", \"d hamsa\", \"d hammer-war\", \"d hammer\", \"d hamburger\", \"d h4\", \"d h3\", \"d h2\", \"d h1\", \"d h-square\", \"d guitars\", \"d guitar-electric\", \"d guitar\", \"d grip-vertical\", \"d grip-lines-vertical\", \"d grip-lines\", \"d grip-horizontal\", \"d grin-wink\", \"d grin-tongue-wink\", \"d grin-tongue-squint\", \"d grin-tongue\", \"d grin-tears\", \"d grin-stars\", \"d grin-squint-tears\", \"d grin-squint\", \"d grin-hearts\", \"d grin-beam-sweat\", \"d grin-beam\", \"d grin-alt\", \"d grin\", \"d grimace\", \"d greater-than-equal\", \"d greater-than\", \"d gramophone\", \"d graduation-cap\", \"d gopuram\", \"d golf-club\", \"d golf-ball\", \"d globe-stand\", \"d globe-snow\", \"d globe-europe\", \"d globe-asia\", \"d globe-americas\", \"d globe-africa\", \"d globe\", \"d glasses-alt\", \"d glasses\", \"d glass-whiskey-rocks\", \"d glass-whiskey\", \"d glass-martini-alt\", \"d glass-martini\", \"d glass-citrus\", \"d glass-cheers\", \"d glass-champagne\", \"d glass\", \"d gingerbread-man\", \"d gifts\", \"d gift-card\", \"d gift\", \"d ghost\", \"d genderless\", \"d gem\", \"d gavel\", \"d gas-pump-slash\", \"d gas-pump\", \"d garage-open\", \"d garage-car\", \"d garage\", \"d gamepad-alt\", \"d gamepad\", \"d game-console-handheld\", \"d game-board-alt\", \"d game-board\", \"d galaxy\", \"d futbol\", \"d funnel-dollar\", \"d function\", \"d frown-open\", \"d frown\", \"d frosty-head\", \"d frog\", \"d french-fries\", \"d fragile\", \"d forward\", \"d forklift\", \"d football-helmet\", \"d football-ball\", \"d font-case\", \"d font\", \"d folders\", \"d folder-upload\", \"d folder-tree\", \"d folder-times\", \"d folder-plus\", \"d folder-open\", \"d folder-minus\", \"d folder-download\", \"d folder\", \"d fog\", \"d flux-capacitor\", \"d flute\", \"d flushed\", \"d flower-tulip\", \"d flower-daffodil\", \"d flower\", \"d flask-potion\", \"d flask-poison\", \"d flask\", \"d flashlight\", \"d flame\", \"d flag-usa\", \"d flag-checkered\", \"d flag-alt\", \"d flag\", \"d fist-raised\", \"d fish-cooked\", \"d fish\", \"d first-aid\", \"d fireplace\", \"d fire-smoke\", \"d fire-extinguisher\", \"d fire-alt\", \"d fire\", \"d fingerprint\", \"d filter\", \"d film-canister\", \"d film-alt\", \"d film\", \"d fill-drip\", \"d fill\", \"d files-medical\", \"d file-word\", \"d file-video\", \"d file-user\", \"d file-upload\", \"d file-times\", \"d file-spreadsheet\", \"d file-signature\", \"d file-search\", \"d file-prescription\", \"d file-powerpoint\", \"d file-plus\", \"d file-pdf\", \"d file-music\", \"d file-minus\", \"d file-medical-alt\", \"d file-medical\", \"d file-invoice-dollar\", \"d file-invoice\", \"d file-import\", \"d file-image\", \"d file-export\", \"d file-exclamation\", \"d file-excel\", \"d file-edit\", \"d file-download\", \"d file-csv\", \"d file-contract\", \"d file-code\", \"d file-check\", \"d file-chart-pie\", \"d file-chart-line\", \"d file-certificate\", \"d file-audio\", \"d file-archive\", \"d file-alt\", \"d file\", \"d fighter-jet\", \"d field-hockey\", \"d female\", \"d feather-alt\", \"d feather\", \"d fax\", \"d faucet-drip\", \"d faucet\", \"d fast-forward\", \"d fast-backward\", \"d farm\", \"d fan-table\", \"d fan\", \"d eye-slash\", \"d eye-evil\", \"d eye-dropper\", \"d eye\", \"d external-link-square-alt\", \"d external-link-square\", \"d external-link-alt\", \"d external-link\", \"d expand-wide\", \"d expand-arrows-alt\", \"d expand-arrows\", \"d expand-alt\", \"d expand\", \"d exclamation-triangle\", \"d exclamation-square\", \"d exclamation-circle\", \"d exclamation\", \"d exchange-alt\", \"d exchange\", \"d euro-sign\", \"d ethernet\", \"d eraser\", \"d equals\", \"d envelope-square\", \"d envelope-open-text\", \"d envelope-open-dollar\", \"d envelope-open\", \"d envelope\", \"d engine-warning\", \"d empty-set\", \"d ellipsis-v-alt\", \"d ellipsis-v\", \"d ellipsis-h-alt\", \"d ellipsis-h\", \"d elephant\", \"d eject\", \"d egg-fried\", \"d egg\", \"d edit\", \"d eclipse-alt\", \"d eclipse\", \"d ear-muffs\", \"d ear\", \"d dungeon\", \"d dumpster-fire\", \"d dumpster\", \"d dumbbell\", \"d duck\", \"d dryer-alt\", \"d dryer\", \"d drumstick-bite\", \"d drumstick\", \"d drum-steelpan\", \"d drum\", \"d drone-alt\", \"d drone\", \"d dreidel\", \"d draw-square\", \"d draw-polygon\", \"d draw-circle\", \"d dragon\", \"d drafting-compass\", \"d download\", \"d dove\", \"d dot-circle\", \"d door-open\", \"d door-closed\", \"d donate\", \"d dolly-flatbed-empty\", \"d dolly-flatbed-alt\", \"d dolly-flatbed\", \"d dolly-empty\", \"d dolly\", \"d dollar-sign\", \"d dog-leashed\", \"d dog\", \"d do-not-enter\", \"d dna\", \"d dizzy\", \"d divide\", \"d disease\", \"d disc-drive\", \"d directions\", \"d diploma\", \"d digital-tachograph\", \"d digging\", \"d dice-two\", \"d dice-three\", \"d dice-six\", \"d dice-one\", \"d dice-four\", \"d dice-five\", \"d dice-d8\", \"d dice-d6\", \"d dice-d4\", \"d dice-d20\", \"d dice-d12\", \"d dice-d10\", \"d dice\", \"d diamond\", \"d diagnoses\", \"d dharmachakra\", \"d dewpoint\", \"d desktop-alt\", \"d desktop\", \"d democrat\", \"d deer-rudolph\", \"d deer\", \"d debug\", \"d deaf\", \"d database\", \"d dagger\", \"d cut\", \"d curling\", \"d cubes\", \"d cube\", \"d crutches\", \"d crutch\", \"d crown\", \"d crow\", \"d crosshairs\", \"d cross\", \"d crop-alt\", \"d crop\", \"d croissant\", \"d cricket\", \"d credit-card-front\", \"d credit-card-blank\", \"d credit-card\", \"d cowbell-more\", \"d cowbell\", \"d cow\", \"d couch\", \"d corn\", \"d copyright\", \"d copy\", \"d cookie-bite\", \"d cookie\", \"d conveyor-belt-alt\", \"d conveyor-belt\", \"d container-storage\", \"d construction\", \"d concierge-bell\", \"d computer-speaker\", \"d computer-classic\", \"d compress-wide\", \"d compress-arrows-alt\", \"d compress-alt\", \"d compress\", \"d compass-slash\", \"d compass\", \"d compact-disc\", \"d comments-dollar\", \"d comments-alt-dollar\", \"d comments-alt\", \"d comments\", \"d comment-times\", \"d comment-smile\", \"d comment-slash\", \"d comment-plus\", \"d comment-music\", \"d comment-minus\", \"d comment-medical\", \"d comment-lines\", \"d comment-exclamation\", \"d comment-edit\", \"d comment-dots\", \"d comment-dollar\", \"d comment-check\", \"d comment-alt-times\", \"d comment-alt-smile\", \"d comment-alt-slash\", \"d comment-alt-plus\", \"d comment-alt-music\", \"d comment-alt-minus\", \"d comment-alt-medical\", \"d comment-alt-lines\", \"d comment-alt-exclamation\", \"d comment-alt-edit\", \"d comment-alt-dots\", \"d comment-alt-dollar\", \"d comment-alt-check\", \"d comment-alt\", \"d comment\", \"d comet\", \"d columns\", \"d coins\", \"d coin\", \"d cogs\", \"d cog\", \"d coffin-cross\", \"d coffin\", \"d coffee-togo\", \"d coffee-pot\", \"d coffee\", \"d code-merge\", \"d code-commit\", \"d code-branch\", \"d code\", \"d cocktail\", \"d club\", \"d clouds-sun\", \"d clouds-moon\", \"d clouds\", \"d cloud-upload-alt\", \"d cloud-upload\", \"d cloud-sun-rain\", \"d cloud-sun\", \"d cloud-snow\", \"d cloud-sleet\", \"d cloud-showers-heavy\", \"d cloud-showers\", \"d cloud-rainbow\", \"d cloud-rain\", \"d cloud-music\", \"d cloud-moon-rain\", \"d cloud-moon\", \"d cloud-meatball\", \"d cloud-hail-mixed\", \"d cloud-hail\", \"d cloud-drizzle\", \"d cloud-download-alt\", \"d cloud-download\", \"d cloud\", \"d closed-captioning\", \"d clone\", \"d clock\", \"d clipboard-user\", \"d clipboard-prescription\", \"d clipboard-list-check\", \"d clipboard-list\", \"d clipboard-check\", \"d clipboard\", \"d clinic-medical\", \"d claw-marks\", \"d clarinet\", \"d city\", \"d circle-notch\", \"d circle\", \"d church\", \"d chimney\", \"d child\", \"d chevron-up\", \"d chevron-square-up\", \"d chevron-square-right\", \"d chevron-square-left\", \"d chevron-square-down\", \"d chevron-right\", \"d chevron-left\", \"d chevron-down\", \"d chevron-double-up\", \"d chevron-double-right\", \"d chevron-double-left\", \"d chevron-double-down\", \"d chevron-circle-up\", \"d chevron-circle-right\", \"d chevron-circle-left\", \"d chevron-circle-down\", \"d chess-rook-alt\", \"d chess-rook\", \"d chess-queen-alt\", \"d chess-queen\", \"d chess-pawn-alt\", \"d chess-pawn\", \"d chess-knight-alt\", \"d chess-knight\", \"d chess-king-alt\", \"d chess-king\", \"d chess-clock-alt\", \"d chess-clock\", \"d chess-board\", \"d chess-bishop-alt\", \"d chess-bishop\", \"d chess\", \"d cheeseburger\", \"d cheese-swiss\", \"d cheese\", \"d check-square\", \"d check-double\", \"d check-circle\", \"d check\", \"d chart-scatter\", \"d chart-pie-alt\", \"d chart-pie\", \"d chart-network\", \"d chart-line-down\", \"d chart-line\", \"d chart-bar\", \"d chart-area\", \"d charging-station\", \"d chalkboard-teacher\", \"d chalkboard\", \"d chair-office\", \"d chair\", \"d certificate\", \"d cctv\", \"d cauldron\", \"d cat-space\", \"d cat\", \"d cassette-tape\", \"d cash-register\", \"d cart-plus\", \"d cart-arrow-down\", \"d cars\", \"d carrot\", \"d caret-up\", \"d caret-square-up\", \"d caret-square-right\", \"d caret-square-left\", \"d caret-square-down\", \"d caret-right\", \"d caret-left\", \"d caret-down\", \"d caret-circle-up\", \"d caret-circle-right\", \"d caret-circle-left\", \"d caret-circle-down\", \"d caravan-alt\", \"d caravan\", \"d car-wash\", \"d car-tilt\", \"d car-side\", \"d car-mechanic\", \"d car-garage\", \"d car-crash\", \"d car-bus\", \"d car-bump\", \"d car-building\", \"d car-battery\", \"d car-alt\", \"d car\", \"d capsules\", \"d cannabis\", \"d candy-corn\", \"d candy-cane\", \"d candle-holder\", \"d campground\", \"d campfire\", \"d camera-retro\", \"d camera-polaroid\", \"d camera-movie\", \"d camera-home\", \"d camera-alt\", \"d camera\", \"d camcorder\", \"d calendar-week\", \"d calendar-times\", \"d calendar-star\", \"d calendar-plus\", \"d calendar-minus\", \"d calendar-exclamation\", \"d calendar-edit\", \"d calendar-day\", \"d calendar-check\", \"d calendar-alt\", \"d calendar\", \"d calculator-alt\", \"d calculator\", \"d cactus\", \"d cabinet-filing\", \"d business-time\", \"d bus-school\", \"d bus-alt\", \"d bus\", \"d burrito\", \"d burn\", \"d burger-soda\", \"d bullseye-pointer\", \"d bullseye-arrow\", \"d bullseye\", \"d bullhorn\", \"d building\", \"d bug\", \"d brush\", \"d browser\", \"d broom\", \"d broadcast-tower\", \"d bring-front\", \"d bring-forward\", \"d briefcase-medical\", \"d briefcase\", \"d bread-slice\", \"d bread-loaf\", \"d brain\", \"d braille\", \"d brackets-curly\", \"d brackets\", \"d boxing-glove\", \"d boxes-alt\", \"d boxes\", \"d box-usd\", \"d box-up\", \"d box-tissue\", \"d box-open\", \"d box-heart\", \"d box-full\", \"d box-fragile\", \"d box-check\", \"d box-ballot\", \"d box-alt\", \"d box\", \"d bowling-pins\", \"d bowling-ball\", \"d bow-arrow\", \"d border-top\", \"d border-style-alt\", \"d border-style\", \"d border-right\", \"d border-outer\", \"d border-none\", \"d border-left\", \"d border-inner\", \"d border-center-v\", \"d border-center-h\", \"d border-bottom\", \"d border-all\", \"d booth-curtain\", \"d boot\", \"d boombox\", \"d books-medical\", \"d books\", \"d bookmark\", \"d book-user\", \"d book-spells\", \"d book-reader\", \"d book-open\", \"d book-medical\", \"d book-heart\", \"d book-dead\", \"d book-alt\", \"d book\", \"d bong\", \"d bone-break\", \"d bone\", \"d bomb\", \"d bolt\", \"d bold\", \"d blog\", \"d blinds-raised\", \"d blinds-open\", \"d blinds\", \"d blind\", \"d blender-phone\", \"d blender\", \"d blanket\", \"d birthday-cake\", \"d biohazard\", \"d binoculars\", \"d biking-mountain\", \"d biking\", \"d bicycle\", \"d bible\", \"d bezier-curve\", \"d betamax\", \"d bells\", \"d bell-slash\", \"d bell-school-slash\", \"d bell-school\", \"d bell-plus\", \"d bell-on\", \"d bell-exclamation\", \"d bell\", \"d beer\", \"d bed-empty\", \"d bed-bunk\", \"d bed-alt\", \"d bed\", \"d battery-three-quarters\", \"d battery-slash\", \"d battery-quarter\", \"d battery-half\", \"d battery-full\", \"d battery-empty\", \"d battery-bolt\", \"d bath\", \"d bat\", \"d basketball-hoop\", \"d basketball-ball\", \"d baseball-ball\", \"d baseball\", \"d bars\", \"d barcode-scan\", \"d barcode-read\", \"d barcode-alt\", \"d barcode\", \"d banjo\", \"d band-aid\", \"d ban\", \"d ballot-check\", \"d ballot\", \"d ball-pile\", \"d balance-scale-right\", \"d balance-scale-left\", \"d balance-scale\", \"d bahai\", \"d bags-shopping\", \"d badger-honey\", \"d badge-sheriff\", \"d badge-percent\", \"d badge-dollar\", \"d badge-check\", \"d badge\", \"d bacterium\", \"d bacteria\", \"d bacon\", \"d backward\", \"d backspace\", \"d backpack\", \"d baby-carriage\", \"d baby\", \"d axe-battle\", \"d axe\", \"d award\", \"d audio-description\", \"d atom-alt\", \"d atom\", \"d atlas\", \"d at\", \"d asterisk\", \"d assistive-listening-systems\", \"d arrows-v\", \"d arrows-h\", \"d arrows-alt-v\", \"d arrows-alt-h\", \"d arrows-alt\", \"d arrows\", \"d arrow-up\", \"d arrow-to-top\", \"d arrow-to-right\", \"d arrow-to-left\", \"d arrow-to-bottom\", \"d arrow-square-up\", \"d arrow-square-right\", \"d arrow-square-left\", \"d arrow-square-down\", \"d arrow-right\", \"d arrow-left\", \"d arrow-from-top\", \"d arrow-from-right\", \"d arrow-from-left\", \"d arrow-from-bottom\", \"d arrow-down\", \"d arrow-circle-up\", \"d arrow-circle-right\", \"d arrow-circle-left\", \"d arrow-circle-down\", \"d arrow-alt-up\", \"d arrow-alt-to-top\", \"d arrow-alt-to-right\", \"d arrow-alt-to-left\", \"d arrow-alt-to-bottom\", \"d arrow-alt-square-up\", \"d arrow-alt-square-right\", \"d arrow-alt-square-left\", \"d arrow-alt-square-down\", \"d arrow-alt-right\", \"d arrow-alt-left\", \"d arrow-alt-from-top\", \"d arrow-alt-from-right\", \"d arrow-alt-from-left\", \"d arrow-alt-from-bottom\", \"d arrow-alt-down\", \"d arrow-alt-circle-up\", \"d arrow-alt-circle-right\", \"d arrow-alt-circle-left\", \"d arrow-alt-circle-down\", \"d archway\", \"d archive\", \"d apple-crate\", \"d apple-alt\", \"d ankh\", \"d angry\", \"d angle-up\", \"d angle-right\", \"d angle-left\", \"d angle-down\", \"d angle-double-up\", \"d angle-double-right\", \"d angle-double-left\", \"d angle-double-down\", \"d angel\", \"d anchor\", \"d analytics\", \"d amp-guitar\", \"d american-sign-language-interpreting\", \"d ambulance\", \"d allergies\", \"d align-slash\", \"d align-right\", \"d align-left\", \"d align-justify\", \"d align-center\", \"d alien-monster\", \"d alien\", \"d alicorn\", \"d album-collection\", \"d album\", \"d alarm-snooze\", \"d alarm-plus\", \"d alarm-exclamation\", \"d alarm-clock\", \"d air-freshener\", \"d air-conditioner\", \"d adjust\", \"d address-card\", \"d address-book\", \"d ad\", \"d acorn\", \"d abacus\", \"b wpressr\", \"b wodu\", \"b whmcs\", \"b watchman-monitoring\", \"b vnv\", \"b vaadin\", \"b ussunnah\", \"b uniregistry\", \"b uncharted\", \"b typo3\", \"b think-peaks\", \"b themeco\", \"b the-red-yeti\", \"b supple\", \"b studiovinari\", \"b sticker-mule\", \"b speakap\", \"b sistrix\", \"b shopware\", \"b servicestack\", \"b searchengin\", \"b schlix\", \"b rockrms\", \"b rocketchat\", \"b rev\", \"b resolving\", \"b replyd\", \"b red-river\", \"b readme\", \"b reacteurope\", \"b quinscape\", \"b pushed\", \"b phabricator\", \"b perbyte\", \"b palfed\", \"b page4\", \"b octopus-deploy\", \"b nutritionix\", \"b ns8\", \"b nimblr\", \"b napster\", \"b mizuni\", \"b mix\", \"b megaport\", \"b medrt\", \"b medapps\", \"b korvue\", \"b keycdn\", \"b joget\", \"b instalod\", \"b innosoft\", \"b hubspot\", \"b hotjar\", \"b hornbill\", \"b hive\", \"b hips\", \"b guilded\", \"b gripfire\", \"b gofore\", \"b gitkraken\", \"b firstdraft\", \"b dyalog\", \"b draft2digital\", \"b dochub\", \"b discourse\", \"b deskpro\", \"b deploydog\", \"b cuttlefish\", \"b cpanel\", \"b cloudversify\", \"b cloudsmith\", \"b cloudscale\", \"b cloudflare\", \"b centercode\", \"b buromobelexperte\", \"b bity\", \"b bimobject\", \"b aws\", \"b avianex\", \"b asymmetrik\", \"b apper\", \"b angrycreative\", \"b amilia\", \"b algolia\", \"b affiliatetheme\", \"b adversal\", \"b accusoft\"].map(x => `fa${x.replace(\" \", \" fa-\")}`);","export class ConfigReport {\r\n\tstatic #hookCharacter = \"┗━\";\r\n\r\n\tstatic Run() {\r\n\t\tlet failures = this.#GetFailures(),\r\n\t\t\tlogs = [],\r\n\t\t\tcount = 0;\r\n\r\n\t\tObject.entries(failures).forEach(([failure, section], ix) => {\r\n\t\t\tif (ix !== 0) { logs.push(\"\\n\".repeat(2)); }\r\n\r\n\t\t\tlogs.push(failure);\r\n\r\n\t\t\tObject.entries(section).forEach(([problem, sectionData], ix) => {\r\n\t\t\t\tlogs.push(`${\"\\n\".repeat(ix === 0 ? 1 : 2)}${\" \".repeat(2)}${this.#hookCharacter} ${problem}`);\r\n\t\t\t\tlogs.push(`\\n${\" \".repeat(7)}${this.#hookCharacter} ${sectionData[0].description.trim().replace(/\\t/g, \"\").replace(/\\n/g, \"\\n\" + \" \".repeat(10))}\\n\\n`);\r\n\t\t\t\tlogs.push(`${\" \".repeat(9)}Element${sectionData.length === 1 ? \"\" : \"s\"}:\\n`);\r\n\r\n\t\t\t\tsectionData.forEach((data, ix) => {\r\n\t\t\t\t\tlogs.push(`${\" \".repeat(6)}`);\r\n\t\t\t\t\tlogs.push(data.element);\r\n\r\n\t\t\t\t\tif (ix !== sectionData.length - 1) {\r\n\t\t\t\t\t\tlogs.push(\"\\n\");\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tcount += sectionData.length;\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tif (logs.length) {\r\n\t\t\tToast.ShowWarning(`Auxilium has identified ${count} resolvable issue${count === 1 ? \"\" : \"s\"} on this page. Please check the developer console to view more details.`);\r\n\r\n\t\t\tlogs.unshift(`Total Issues: ${count}\\n\\n`);\r\n\t\t\tlogs.unshift(`Sections: ${Object.keys(failures).length}\\n`);\r\n\t\t\tlogs.unshift(\"font-size:1.75rem;font-weight:700;line-height:2.8571rem;\");\r\n\t\t\tlogs.unshift(\"%c🠶 Auxilium Report\\n\");\r\n\r\n\t\t\tconsole.log(...logs);\r\n\t\t}\r\n\t}\r\n\r\n\tstatic #GetFailures() {\r\n\t\tlet failures = [];\r\n\r\n\t\tif (!document.documentElement.dataset.serverPath) {\r\n\t\t\tfailures.push({\r\n\t\t\t\tsection: \"Auxilium\",\r\n\t\t\t\ttype: \"config\",\r\n\t\t\t\tproblem: \"Missing HTML server-path\",\r\n\t\t\t\tdescription: `The root HTML element in DOM needs the server-path attribute so that Auxilium can provide more accurate\r\n\t\t\t\t\t\t\t\t\t\t\tresults when parsing relative URLs.\r\n\t\t\t\t\t\t\t\t\t\t\t`,\r\n\t\t\t\telement: document.documentElement\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (!document.documentElement.lang) {\r\n\t\t\tfailures.push({\r\n\t\t\t\tsection: \"Auxilium\",\r\n\t\t\t\ttype: \"accessibility\",\r\n\t\t\t\tproblem: \"Missing HTML lang\",\r\n\t\t\t\tdescription: `The root HTML element in DOM should be given a lang value, for example lang=\"en\". This ensures screen\r\n\t\t\t\treaders read/pronounce page content as intended.\r\n\t\t\t\t\t\t\t\t\t\t\t`,\r\n\t\t\t\telement: document.documentElement\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfor (const breadcrumb of document.querySelectorAll(\"chip-breadcrumb\")) {\r\n\t\t\tif (!breadcrumb.description && !breadcrumb.getAttribute(\"description\")) {\r\n\t\t\t\tfailures.push({\r\n\t\t\t\t\tsection: \"Breadcrumbs\",\r\n\t\t\t\t\ttype: \"accessibility\",\r\n\t\t\t\t\tproblem: \"Breadcrumb has no accessible name\",\r\n\t\t\t\t\tdescription: `Provide a meaningful, accessible description via the description attribute to help screen readers.`,\r\n\t\t\t\t\telement: breadcrumb\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const tree of document.querySelectorAll(\"chip-tree\")) {\r\n\t\t\tif (!tree.description && !tree.getAttribute(\"description\")) {\r\n\t\t\t\tfailures.push({\r\n\t\t\t\t\tsection: \"Tree Views\",\r\n\t\t\t\t\ttype: \"accessibility\",\r\n\t\t\t\t\tproblem: \"Tree view has no accessible name\",\r\n\t\t\t\t\tdescription: `Provide a meaningful, accessible description via the description attribute to help screen readers.`,\r\n\t\t\t\t\telement: tree\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const button of document.querySelectorAll(\"chip-button\")) {\r\n\t\t\tif (button.buttonStyle === \"icon\"\r\n\t\t\t\t&& (!button.description && !button.label && !button.tooltip)\r\n\t\t\t\t&& (!button.id || !document.querySelector(`[for='${button.id}']`))) {\r\n\r\n\t\t\t\tfailures.push({\r\n\t\t\t\t\tsection: \"Buttons\",\r\n\t\t\t\t\ttype: \"accessibility\",\r\n\t\t\t\t\tproblem: \"Icon button has has no accessible name\",\r\n\t\t\t\t\tdescription: `\r\n\t\t\t\t\t\tProvide either a label or tooltip to give extra information, especially to buttons that hold no discernible\r\n\t\t\t\t\t\ttext. If you'd like to avoid displaying visible text on the page, you can supply a description instead.\r\n\t\t\t\t\t`,\r\n\t\t\t\t\telement: button\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const iconPicker of document.querySelectorAll(\"chip-iconpicker\")) {\r\n\t\t\tif (!iconPicker.label && !iconPicker.getAttribute(\"label\")) {\r\n\t\t\t\tfailures.push({\r\n\t\t\t\t\tsection: \"Icon Pickers\",\r\n\t\t\t\t\ttype: \"accessibility\",\r\n\t\t\t\t\tproblem: \"Icon picker has no accessible name\",\r\n\t\t\t\t\tdescription: `Provide a meaningful, accessible label via the label attribute to help screen readers.`,\r\n\t\t\t\t\telement: iconPicker\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfailures.push(...this.#GetInputFailures());\r\n\t\tfailures.push(...this.#GetTextareaFailures());\r\n\r\n\t\tfor (const img of document.querySelectorAll(\"img\")) {\r\n\t\t\tif (!img.hasAttribute(\"alt\") && !img.getAttribute(\"aria-label\") && !img.getAttribute(\"aria-labelledby\") && img.role !== \"presentation\") {\r\n\t\t\t\tfailures.push({\r\n\t\t\t\t\tsection: \"Images\",\r\n\t\t\t\t\ttype: \"accessibility\",\r\n\t\t\t\t\tproblem: \"Image has neither an accessible name nor is marked as decorative\",\r\n\t\t\t\t\tdescription: `If the image conveys meaning, provide either an alt, aria-label or aria-labelledby attribute. If not, you\r\n\t\t\t\t\tcan pass role=\"presentation\" to mark the image as decorative.`,\r\n\t\t\t\t\telement: img\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const strandedHeader of document.querySelectorAll(\"h1:not(chip-header h1),h2:not(chip-header h2),h3:not(chip-header h3),h4:not(chip-header h4),h5:not(chip-header h5),h6:not(chip-header h6)\")) {\r\n\t\t\tfailures.push({\r\n\t\t\t\tsection: \"Stranded Elements\",\r\n\t\t\t\ttype: \"stranded\",\r\n\t\t\t\tproblem: \"Header does not reside within a chip-header\",\r\n\t\t\t\tdescription: `When using Auxilium, it is required to use a chip-header component when working with headers to fully\r\n\t\t\t\tabuse Auxilium's styling and capabilities.`,\r\n\t\t\t\telement: strandedHeader\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tfailures = GroupBy(failures, x => x.section);\r\n\r\n\t\tfor (const failure in failures) {\r\n\t\t\tfailures[failure] = GroupBy(failures[failure], x => x.problem);\r\n\t\t}\r\n\r\n\t\treturn failures;\r\n\t}\r\n\r\n\tstatic #GetTextareaFailures() {\r\n\t\tconst failures = [];\r\n\r\n\t\tfor (const textArea of document.querySelectorAll(\"chip-textarea\")) {\r\n\t\t\tif (!textArea.description && !textArea.label && !textArea.placeholder && !textArea.getAttribute(\"label\") && !textArea.getAttribute(\"description\") && !textArea.getAttribute(\"placeholder\") && !document.querySelector(`label[for='${textArea.identifier}']`)) {\r\n\t\t\t\tfailures.push({\r\n\t\t\t\t\tsection: \"Textareas\",\r\n\t\t\t\t\ttype: \"accessibility\",\r\n\t\t\t\t\tproblem: \"Textarea has no accessible name\",\r\n\t\t\t\t\tdescription: `Each chip-textarea needs to have a label (or alternatively, a placeholder) in order to provide meaningful descriptions, especially to\r\n\t\t\t\t\tscreen readers. If you'd like to avoid displaying visible text on page, you can supply a description instead.`,\r\n\t\t\t\t\telement: textArea\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn failures;\r\n\t}\r\n\r\n\tstatic #GetInputFailures() {\r\n\t\tconst failures = [];\r\n\r\n\t\tfor (const input of document.querySelectorAll(\"chip-input\")) {\r\n\t\t\tif (!input.description && !input.label && !input.placeholder && !input.getAttribute(\"label\") && !input.getAttribute(\"description\") && !input.getAttribute(\"placeholder\") && !document.querySelector(`label[for='${input.identifier}']`)) {\r\n\t\t\t\tfailures.push({\r\n\t\t\t\t\tsection: \"Inputs\",\r\n\t\t\t\t\ttype: \"accessibility\",\r\n\t\t\t\t\tproblem: \"Input has no accessible name\",\r\n\t\t\t\t\tdescription: `Each chip-input needs to have a label (or alternatively, a placeholder) in order to provide meaningful descriptions, especially to\r\n\t\t\t\t\tscreen readers. If you'd like to avoid displaying visible text on page, you can supply a description instead.`,\r\n\t\t\t\t\telement: input\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn failures;\r\n\t}\r\n}","import { Ajax } from \"./modules/ajax/ajax.js\";\nimport { Dialog } from \"./modules/dialog/dialog.js\";\nimport { Toast } from \"./modules/dialog/toast.js\";\nimport { Razor } from \"./modules/razor/razor.js\";\nimport { ListView } from \"./modules/components/list-view.js\";\nimport { FileUploader } from \"./modules/io/fileuploader.js\";\nimport { BlurredMenu } from \"./modules/components/blurred-menu.js\";\nimport { Browser } from \"./modules/core/browser.js\";\nimport { DbInterfacer } from \"./modules/database/db-interfacer.js\";\nimport { Card } from \"./modules/components/card/card.js\";\nimport { Checkbox } from \"./modules/components/checkbox/checkbox.js\";\nimport { Textarea } from \"./modules/components/textarea/textarea.js\";\nimport { InfoGroup } from \"./modules/components/infogroup/info-group.js\";\nimport { InfoGroupRow } from \"./modules/components/infogroup/infogroup-row.js\";\nimport { InfoGroupValue } from \"./modules/components/infogroup/infogroup-value.js\";\nimport { Input } from \"./modules/components/input/input.js\";\nimport { Dropdown } from \"./modules/components/dropdown/dropdown.js\";\nimport { DropdownItem } from \"./modules/components/dropdown/dropdown-item.js\";\nimport { Callout } from \"./modules/components/callout/callout.js\";\nimport { SortableList } from \"./modules/components/sortablelist/sortable-list.js\";\nimport { SortableListItem } from \"./modules/components/sortablelist/sortable-listitem.js\";\nimport { Tree } from \"./modules/components/tree/tree.js\";\nimport { TreeItem } from \"./modules/components/tree/tree-item.js\";\nimport { DropdownDivider } from \"./modules/components/dropdown/dropdown-divider.js\";\nimport { DropdownGroup } from \"./modules/components/dropdown/dropdown-group.js\";\nimport { DropdownHeader } from \"./modules/components/dropdown/dropdown-header.js\";\nimport { MenuItem } from \"./modules/components/contextmenu/menu-item.js\";\nimport { ContextMenu } from \"./modules/components/contextmenu/context-menu.js\";\nimport { MenuDivider } from \"./modules/components/contextmenu/menu-divider.js\";\nimport { Accordion } from \"./modules/components/accordion/accordion.js\";\nimport { AccordionItem } from \"./modules/components/accordion/accordion-item.js\";\nimport { TabGroup } from \"./modules/components/tabs/tabgroup.js\";\nimport { Tab } from \"./modules/components/tabs/tab.js\";\nimport { Form } from \"./modules/components/form/form.js\";\nimport { FormSection } from \"./modules/components/form/form-section.js\";\nimport { Prompt } from \"./modules/components/emptyprompt/prompt.js\";\nimport { Button } from \"./modules/components/button/button.js\";\nimport { SplitButton } from \"./modules/components/button/splitbutton.js\";\nimport { DropdownButton } from \"./modules/components/button/dropdown-button.js\";\nimport { IconPicker } from \"./modules/components/iconpicker/iconpicker.js\";\nimport { ButtonGroup } from \"./modules/components/button/button-group.js\";\nimport { ColourPicker } from \"./modules/components/colourpicker/colourpicker.js\";\nimport { Badge } from \"./modules/components/badge/badge.js\";\nimport { Label } from \"./modules/components/label/label.js\";\nimport { Header } from \"./modules/components/header/header.js\";\nimport { Range } from \"./modules/components/range/range.js\";\nimport { Breadcrumb } from \"./modules/components/breadcrumb/breadcrumb.js\";\nimport { BreadcrumbItem } from \"./modules/components/breadcrumb/breadcrumb-item.js\";\nimport { Progress } from \"./modules/components/progress/progress.js\";\nimport { ProgressItem } from \"./modules/components/progress/progress-item.js\";\nimport { Radio } from \"./modules/components/radio/radio.js\";\nimport { CodeBlock } from \"./modules/components/code-block/code-block.js\";\nimport { hljs as CodeHighlight } from \"./highlight.min.js\";\nimport { Frame } from \"./modules/components/wireframe/frame.js\";\nimport { FrameHeader } from \"./modules/components/wireframe/frame-header.js\";\nimport { FrameSidebar } from \"./modules/components/wireframe/frame-sidebar.js\";\nimport { FrameContent } from \"./modules/components/wireframe/frame-content.js\";\nimport { SidebarHeader } from \"./modules/components/wireframe/sidebar-header.js\";\nimport { SidebarItem } from \"./modules/components/wireframe/sidebar-item.js\";\nimport { Beacon } from \"./modules/components/beacon/beacon.js\";\nimport { Icon } from \"./modules/components/icon/icon.js\";\nimport { Select } from \"./modules/components/select/select.js\";\nimport { ChipOption } from \"./modules/components/select/option.js\";\nimport { Carousel } from \"./modules/components/carousel/carousel.js\";\nimport { CarouselSlide } from \"./modules/components/carousel/carousel-slide.js\";\nimport { Link } from \"./modules/components/link/link.js\";\nimport { ConfigReport } from \"./modules/reports/config-report.js\";\nimport { DateFormat } from \"./modules/components/dateformat/date-format.js\";\nimport { Grid } from \"./modules/components/grid/grid.js\";\nimport { ProgressBar } from \"./modules/components/progress-bar/progressbar.js\";\nimport { Loading } from \"./modules/components/loading/loading.js\";\nimport { List } from \"./modules/components/list/list.js\";\nimport { ListItem } from \"./modules/components/list/list-item.js\";\n\nconst localizationHandler = {\n\tget(target, key) {\n\t\treturn key in target ? target[key] : key;\n\t},\n\tset(target, key, value) {\n\t\treturn Reflect.set(target, key, value);\n\t}\n};\n\nObject.assign(global, {\n\tLocalizer: new Proxy({}, localizationHandler),\n\tAjax, Dialog, Toast, ContextMenu, ListView,\n\tFileUploader, BlurredMenu, Razor, Browser, DbInterfacer, CodeHighlight\n});\n\nEvent.prototype.halt = function () {\n\tthis.stopPropagation();\n\tthis.stopImmediatePropagation();\n}\n\nHTMLElement.prototype.wrapWithElement = function (nodeName, attributes) {\n\tconst wrapper = Object.assign(document.createElement(nodeName), attributes);\n\tthis.insertAdjacentElement(\"beforebegin\", wrapper);\n\n\twrapper.appendChild(this);\n\treturn wrapper;\n}\n\nDocument.prototype.createElementWithContents = function (nodeName, content, attributes) {\n\tconst element = Object.assign(this.createElement(nodeName), attributes);\n\n\tif (content instanceof NodeList || content instanceof HTMLCollection || Array.isArray(content)) { element.append(...[...content].filter(x => x != null)); }\n\telse if (content instanceof Node) { element.appendChild(content); }\n\telse if (content != null) { element.innerHTML = content.toString(); }\n\n\treturn element;\n}\n\nHTMLElement.prototype.toggleClass = function (className, add) {\n\tif (add == null) {\n\t\tadd = !this.classList.contains(className);\n\t}\n\n\tif (add) {\n\t\tthis.classList.add(className);\n\t} else {\n\t\tthis.removeClass(className);\n\t}\n}\n\nfunction replaceURLs(element) {\n\tconst urlRegex = /(ht{2}ps?:\\/\\/(?:w{3}\\.|(?!w{3}))[a-zA-Z\\d][a-zA-Z\\d-]+[a-zA-Z\\d]\\.\\S{2,}|w{3}\\.[a-zA-Z\\d][a-zA-Z\\d-]+[a-zA-Z\\d]\\.\\S{2,}|ht{2}ps?:\\/\\/(?:w{3}\\.|(?!w{3}))[a-zA-Z\\d]+\\.\\S{2,}|w{3}\\.[a-zA-Z\\d]+\\.\\S{2,})/ig;\n\n\tfunction processTextNode(textNode) {\n\t\tconst text = textNode.nodeValue;\n\t\tconst fragment = document.createDocumentFragment();\n\t\tlet lastIndex = 0;\n\n\t\ttext.replace(urlRegex, (url, offset) => {\n\t\t\tconst displayURL = url;\n\n\t\t\tif (url.toLowerCase().startsWith(\"www.\")) {\n\t\t\t\turl = \"//\" + url;\n\t\t\t}\n\n\t\t\tif (lastIndex < offset) {\n\t\t\t\tfragment.appendChild(document.createTextNode(text.slice(lastIndex, offset)));\n\t\t\t}\n\n\t\t\tfragment.appendChild(document.createElementWithContents(\"chip-link\", displayURL, {\n\t\t\t\trel: \"noopener\",\n\t\t\t\ttarget: \"_blank\",\n\t\t\t\thref: url\n\t\t\t}));\n\n\t\t\tlastIndex = offset + url.length;\n\t\t});\n\n\t\tif (lastIndex < text.length) {\n\t\t\tfragment.appendChild(document.createTextNode(text.slice(lastIndex)));\n\t\t}\n\n\t\ttextNode.replaceWith(fragment);\n\t}\n\n\tfunction traverseNodes(node) {\n\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\tprocessTextNode(node);\n\t\t} else if (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\tArray.from(node.childNodes).forEach(traverseNodes);\n\t\t}\n\t}\n\n\ttraverseNodes(element);\n}\n\nfunction replaceEmails(element) {\n\tconst emailRegex = /[a-z\\d!#$%&'*/=?^_`{|}~-]+(?:\\.[a-z\\d!#$%&'*/=?^_`{|}~-]+)*@(?:[a-z\\d](?:[a-z\\d-]*[a-z\\d])?\\.)+[a-z\\d](?:[a-z\\d-]*[a-z\\d])?/ig;\n\n\tfunction processTextNode(textNode) {\n\t\tconst text = textNode.nodeValue;\n\t\tconst fragment = document.createDocumentFragment();\n\t\tlet lastIndex = 0;\n\n\t\ttext.replace(emailRegex, (email, offset) => {\n\t\t\tif (lastIndex < offset) {\n\t\t\t\tfragment.appendChild(document.createTextNode(text.slice(lastIndex, offset)));\n\t\t\t}\n\n\t\t\tfragment.appendChild(document.createElementWithContents(\"chip-link\", email, {\n\t\t\t\thref: `mailto:${email}`\n\t\t\t}));\n\n\t\t\tlastIndex = offset + email.length;\n\t\t});\n\n\t\tif (lastIndex < text.length) {\n\t\t\tfragment.appendChild(document.createTextNode(text.slice(lastIndex)));\n\t\t}\n\n\t\ttextNode.replaceWith(fragment);\n\t}\n\n\tfunction traverseNodes(node) {\n\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\tprocessTextNode(node);\n\t\t} else if (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\tArray.from(node.childNodes).forEach(traverseNodes);\n\t\t}\n\t}\n\n\ttraverseNodes(element);\n}\n\nHTMLElement.prototype.enhance = function () {\n\treplaceURLs(this);\n\treplaceEmails(this);\n}\n\nfunction trimBreaksFromElement(element) {\n\tlet lines = element.textContent.split('\\n');\n\n\tif (lines.at(0) === \"\") { lines.shift(); }\n\n\tlet matches,\n\t\tindentation = (matches = /^\\s+/.exec(lines[0])) !== null ? matches[0] : null;\n\n\tif (indentation) {\n\t\tlines = lines.map(line => line.replace(indentation, '').replace(/\\t/g, ' '));\n\t\telement.textContent = lines.join('\\n').trimStart();\n\n\t\tif (!element.nextSibling) { element.textContent = element.textContent.trimEnd(); }\n\t}\n}\n\nHTMLElement.prototype.trimBreaks = function () {\n\ttrimBreaksFromElement(this);\n}\n\nNode.prototype.trimBreaks = function () {\n\ttrimBreaksFromElement(this);\n}\n\nHTMLElement.prototype.removeClasses = function (...classNames) {\n\tthis.classList.remove(classNames);\n\n\tif (this.className === \"\") {\n\t\tthis.removeAttribute(\"class\");\n\t}\n}\n\nHTMLElement.prototype.removeClass = function (className) {\n\tthis.removeClasses(className);\n}\n\nfunction similarity(s1, s2) {\n\tlet longer = s1;\n\tlet shorter = s2;\n\n\tif (s1.length < s2.length) {\n\t\tlonger = s2;\n\t\tshorter = s1;\n\t}\n\n\tconst longerLength = longer.length;\n\n\tif (longerLength == 0) {\n\t\treturn 1.0;\n\t}\n\treturn (longerLength - editDistance(longer, shorter)) / parseFloat(longerLength);\n}\n\nfunction editDistance(s1, s2) {\n\ts1 = s1.toLowerCase();\n\ts2 = s2.toLowerCase();\n\n\tconst costs = [];\n\n\tfor (let i = 0; i <= s1.length; i++) {\n\t\tlet lastValue = i;\n\n\t\tfor (let j = 0; j <= s2.length; j++) {\n\t\t\tif (i == 0) {\n\t\t\t\tcosts[j] = j;\n\t\t\t}\n\t\t\telse if (j > 0) {\n\t\t\t\tlet newValue = costs[j - 1];\n\n\t\t\t\tif (s1.charAt(i - 1) != s2.charAt(j - 1)) {\n\t\t\t\t\tnewValue = Math.min(Math.min(newValue, lastValue), costs[j]) + 1;\n\t\t\t\t}\n\n\t\t\t\tcosts[j - 1] = lastValue;\n\t\t\t\tlastValue = newValue;\n\t\t\t}\n\t\t}\n\n\t\tif (i > 0) {\n\t\t\tcosts[s2.length] = lastValue;\n\t\t}\n\t}\n\n\treturn costs[s2.length];\n}\n\n// Functions\n\nconst isScrollable = node => {\n\tif (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n\t\treturn false\n\t}\n\tconst style = getComputedStyle(node)\n\treturn ['overflow', 'overflow-x', 'overflow-y'].some((propertyName) => {\n\t\tconst value = style.getPropertyValue(propertyName)\n\t\treturn value === 'auto' || value === 'scroll'\n\t})\n}\n\nglobal._setFlavourLocalization = function (flavour = \"default\") {\n\tflavour ||= \"default\";\n\n\tif (flavour === \"default\") {\n\t\tObject.assign(Localizer, {\n\t\t\tERROR_TITLE: \"Error\",\n\t\t\tERROR_MESSAGE: \"Something went wrong, and we're not sure what it was. You can either try again or report this error to an administrator if it persists.\"\n\t\t});\n\t} else {\n\t\tObject.assign(Localizer, {\n\t\t\tERROR_TITLE: \"There was a problem\",\n\t\t\tERROR_MESSAGE: \"An unknown error has caused the application to stop working. If you continue to see this error, contact us.\"\n\t\t});\n\t}\n\n\tLocalizer.DIALOG_BUTTON_CLOSE = \"Close\";\n\tLocalizer.DIALOG_BUTTON_AFFIRMATIVE = \"Yes\";\n\tLocalizer.DIALOG_BUTTON_NEGATIVE = \"No\";\n\n\tLocalizer.THEME_BUTTON_DARK = \"Change to light mode\";\n\tLocalizer.THEME_BUTTON_LIGHT = \"Change to dark mode\";\n\tLocalizer.TOGGLE_DROPDOWN = \"Toggle dropdown\";\n\n\tLocalizer.CONFIRMATION_TITLE = \"Are you sure?\";\n\tLocalizer.WARNING_TITLE = \"Warning\";\n\tLocalizer.SUCCESS_TITLE = \"Success\";\n\n\tLocalizer.DROPDOWN_REQUIRED = \"Please select an option\";\n\tLocalizer.COPIED_VALUE = \"Copied to clipboard successfully\";\n\tLocalizer.TOGGLE_SIDEBAR = \"Toggle sidebar\";\n\n\tLocalizer.BAD_REQUEST = \"Something about your request wasn't recognized. Please try again later, and report this issue to an administrator if it persists.\";\n\tLocalizer.NOT_FOUND = \"We couldn't seem to find the resource you requested. It could be that it doesn't exist, or it has been deleted.\";\n\tLocalizer.ACCESS_DENIED = \"It doesn't look like you've got permission to do that. If you believe this is a mistake, please contact your system administrator.\";\n\tLocalizer.ACCESS_DENIED_TITLE = \"Access Denied\";\n\n\tObject.assign(Dialog.DefaultOptions, {\n\t\tButtonText: Localizer.DIALOG_BUTTON_CLOSE,\n\t\tAffirmativeText: Localizer.DIALOG_BUTTON_AFFIRMATIVE,\n\t\tNegativeText: Localizer.DIALOG_BUTTON_NEGATIVE\n\t});\n}\n\nglobal.getScrollParent = node => {\n\tlet currentParent = node.parentElement\n\twhile (currentParent) {\n\t\tif (isScrollable(currentParent)) {\n\t\t\treturn currentParent\n\t\t}\n\t\tcurrentParent = currentParent.parentElement\n\t}\n\treturn document.scrollingElement || document.documentElement\n}\n\nglobal.getClipboardText = async function () {\n\ttry {\n\t\tconst state = (await navigator.permissions.query({ name: 'clipboard-read' })).state;\n\n\t\treturn state !== \"denied\"\n\t\t\t? await navigator.clipboard.readText()\n\t\t\t: \"\";\n\t} catch {\n\t\t// Firefox doesn't support reading from the clipboard\n\t\treturn \"\";\n\t}\n}\n\nglobal.getClipboardData = async function () {\n\ttry {\n\t\tconst state = (await navigator.permissions.query({ name: 'clipboard-read' })).state;\n\n\t\treturn state !== \"denied\"\n\t\t\t? await navigator.clipboard.read()\n\t\t\t: [];\n\t} catch {\n\t\t// Firefox being Firefox\n\t\treturn [];\n\t}\n}\n\nglobal.writeClipboardText = async function (text) {\n\ttry {\n\t\tconst state = (await navigator.permissions.query({ name: 'clipboard-write' })).state;\n\n\t\tif (state !== \"denied\") {\n\t\t\tawait navigator.clipboard.writeText(text);\n\t\t}\n\t} catch {\n\t\tawait navigator.clipboard.writeText(text);\n\t}\n}\n\nglobal.writeClipboard = async function (items) {\n\ttry {\n\t\tconst state = (await navigator.permissions.query({ name: 'clipboard-write' })).state;\n\n\t\tif (state !== \"denied\") {\n\t\t\tawait navigator.clipboard.write(items);\n\t\t}\n\t} catch {\n\t\tawait navigator.clipboard.write(items);\n\t}\n}\n\nglobal.capitalise = function (str) {\n\treturn String(str).charAt(0).toUpperCase() + String(str).slice(1);\n}\n\nglobal.toTitleCase = function (str) {\n\tif (!str) { return str; }\n\n\tlet upper = true;\n\tlet newStr = \"\";\n\n\tfor (let i = 0, l = str.length; i < l; i++) {\n\t\tif (str[i] == \" \") {\n\t\t\tupper = true;\n\t\t\tnewStr += str[i];\n\n\t\t\tcontinue;\n\t\t}\n\n\t\tnewStr += upper ? str[i].toUpperCase() : str[i].toLowerCase();\n\t\tupper = false;\n\t}\n\n\treturn newStr;\n}\n\nglobal.SortCaseInsensitive = function (a, b) {\n\treturn a.toLowerCase().localeCompare(b.toLowerCase());\n}\n\nglobal.GroupBy = (array, fn) => array.reduce((a, b, i) => {\n\tconst key = fn(b, i, array);\n\n\ta[key] ||= [];\n\ta[key].push(b);\n\n\treturn a;\n}, {});\n\nglobal.SearchArray = function (array, query, propertyName, minLength) {\n\tconst splitQuery = query.toUpperCase().split(\" \"),\n\t\tmatchWholeProp = query.length < minLength;\n\n\tlet arrSearched = array.\n\t\tmap(x => {\n\t\t\tconst comparator = propertyName ? x[propertyName] : x;\n\n\t\t\tconst obj = {\n\t\t\t\tIsMatch: false,\n\t\t\t\tOriginalElement: x,\n\t\t\t\tMatchLevel: similarity(comparator.toUpperCase(), query)\n\t\t\t}\n\n\t\t\tif (matchWholeProp) {\n\t\t\t\tobj.IsMatch = comparator.toUpperCase() === query.toUpperCase();\n\t\t\t} else {\n\t\t\t\tobj.IsMatch = splitQuery.find(y => comparator.toUpperCase().includes(y));\n\t\t\t}\n\n\t\t\treturn obj;\n\t\t}).filter(x => x.IsMatch).sort((a, b) => b.MatchLevel - a.MatchLevel);\n\n\t// If we're doing a fuzzy search, and there are results that contain ALL queries, reduce the fuzzy search to these results\n\tif (!matchWholeProp && splitQuery.length > 1) {\n\t\tconst verboseMatches = arrSearched.filter(x => {\n\t\t\tconst originalComparator = propertyName ? x.OriginalElement[propertyName] : x.OriginalElement;\n\n\t\t\treturn !splitQuery.find(y => !originalComparator.toUpperCase().includes(y))\n\t\t});\n\n\t\tif (verboseMatches.length) {\n\t\t\tarrSearched = verboseMatches;\n\t\t}\n\t}\n\n\treturn arrSearched.map(x => x.OriginalElement);\n}\n\n_setFlavourLocalization(document.documentElement.dataset.flavour);\n\nwindow.customElements.define(\"chip-card\", Card);\nwindow.customElements.define(\"chip-checkbox\", Checkbox);\nwindow.customElements.define(\"chip-input\", Input);\nwindow.customElements.define(\"chip-textarea\", Textarea);\nwindow.customElements.define(\"chip-infogroup\", InfoGroup);\nwindow.customElements.define(\"chip-inforow\", InfoGroupRow);\nwindow.customElements.define(\"chip-infovalue\", InfoGroupValue);\nwindow.customElements.define(\"chip-dropdown\", Dropdown);\nwindow.customElements.define(\"chip-dropdownitem\", DropdownItem);\nwindow.customElements.define(\"chip-dropdowndivider\", DropdownDivider);\nwindow.customElements.define(\"chip-dropdowngroup\", DropdownGroup);\nwindow.customElements.define(\"chip-dropdownheader\", DropdownHeader);\nwindow.customElements.define(\"chip-callout\", Callout);\nwindow.customElements.define(\"chip-sortablelist\", SortableList);\nwindow.customElements.define(\"chip-sortablelistitem\", SortableListItem);\nwindow.customElements.define(\"chip-tree\", Tree);\nwindow.customElements.define(\"chip-treeitem\", TreeItem);\nwindow.customElements.define(\"chip-contextmenu\", ContextMenu);\nwindow.customElements.define(\"chip-menuitem\", MenuItem);\nwindow.customElements.define(\"chip-menudivider\", MenuDivider);\nwindow.customElements.define(\"chip-accordion\", Accordion);\nwindow.customElements.define(\"chip-accordionitem\", AccordionItem);\nwindow.customElements.define(\"chip-button\", Button);\nwindow.customElements.define(\"chip-splitbutton\", SplitButton);\nwindow.customElements.define(\"chip-dropdownbutton\", DropdownButton);\nwindow.customElements.define(\"chip-tabgroup\", TabGroup);\nwindow.customElements.define(\"chip-tab\", Tab);\nwindow.customElements.define(\"chip-form\", Form);\nwindow.customElements.define(\"chip-formsection\", FormSection);\nwindow.customElements.define(\"chip-emptyprompt\", Prompt);\nwindow.customElements.define(\"chip-iconpicker\", IconPicker);\nwindow.customElements.define(\"chip-buttongroup\", ButtonGroup);\nwindow.customElements.define(\"chip-colourpicker\", ColourPicker);\nwindow.customElements.define(\"chip-badge\", Badge);\nwindow.customElements.define(\"chip-label\", Label);\nwindow.customElements.define(\"chip-header\", Header);\nwindow.customElements.define(\"chip-range\", Range);\nwindow.customElements.define(\"chip-breadcrumb\", Breadcrumb);\nwindow.customElements.define(\"chip-breadcrumbitem\", BreadcrumbItem);\nwindow.customElements.define(\"chip-progress\", Progress);\nwindow.customElements.define(\"chip-progressitem\", ProgressItem);\nwindow.customElements.define(\"chip-radio\", Radio);\nwindow.customElements.define(\"chip-codeblock\", CodeBlock);\nwindow.customElements.define(\"chip-frame\", Frame);\nwindow.customElements.define(\"chip-frameheader\", FrameHeader);\nwindow.customElements.define(\"chip-framesidebar\", FrameSidebar);\nwindow.customElements.define(\"chip-framecontent\", FrameContent);\nwindow.customElements.define(\"chip-sidebarheader\", SidebarHeader);\nwindow.customElements.define(\"chip-sidebaritem\", SidebarItem);\nwindow.customElements.define(\"chip-beacon\", Beacon);\nwindow.customElements.define(\"chip-icon\", Icon);\nwindow.customElements.define(\"chip-select\", Select);\nwindow.customElements.define(\"chip-option\", ChipOption);\nwindow.customElements.define(\"chip-carousel\", Carousel);\nwindow.customElements.define(\"chip-carouselslide\", CarouselSlide);\nwindow.customElements.define(\"chip-link\", Link);\nwindow.customElements.define(\"chip-dateformat\", DateFormat);\nwindow.customElements.define(\"chip-grid\", Grid);\nwindow.customElements.define(\"chip-progressbar\", ProgressBar);\nwindow.customElements.define(\"chip-loading\", Loading);\nwindow.customElements.define(\"chip-list\", List);\nwindow.customElements.define(\"chip-listitem\", ListItem);\n\nif (location.hash) {\n\tconst closestTab = document.getElementById(location.hash.substring(1))?.closest(\".tab-group__tab, chip-tab\");\n\n\tif (closestTab) {\n\t\tclosestTab.closest(\"chip-tabgroup\").selectIndex([...closestTab.parentElement.children ?? []].indexOf(closestTab));\n\t}\n}\n\nRazor.UpdateState();\n\nfunction closeDropdownsFromEvent(ev) {\n\tlet closestInput = ev.target?.closest?.(\"chip-dropdown\")?.parentElement;\n\n\tif (closestInput?.nodeName !== \"CHIP-INPUT\") { closestInput = null; }\n\n\t[...document.querySelectorAll(\"chip-dropdown\")].filter(x => (ev.target instanceof Node && !x.contains(ev.target)) && x !== ev.target?.closest?.(\"chip-dropdown\") && !closestInput?.contains(x))\n\t\t.forEach(x => x.Close());\n}\n\nwindow.addEventListener('focus', ev => closeDropdownsFromEvent(ev), false);\n\ndocument.body.addEventListener(\"mousedown\", ev => {\n\tdocument.querySelectorAll(\"chip-contextmenu\").forEach(x => x.HandleMenuBlurEvent(ev));\n\n\tcloseDropdownsFromEvent(ev);\n});\n\nif (document.documentElement.dataset.testMode?.toLowerCase() === \"true\") {\n\twindow.addEventListener(\"load\", () => ConfigReport.Run());\n} else if (!document.documentElement.hasAttribute(\"data-test-mode\")) {\n\tconsole.warn(\"Missing test-mode dataset tag on html element\");\n}","export class FileUploader {\n\tstatic Options = {};\n\tstatic Lurker = {};\n\n\tstatic Initialize(options) {\n\t\tconst existingLurker = document.getElementById(\"ipLurker\");\n\n\t\tthis.Lurker = existingLurker ?? document.createElementWithContents(\"input\", \"\", {\n\t\t\ttype: \"file\",\n\t\t\tid: \"ipLurker\",\n\t\t\tclassName: \"d-none position-absolute\"\n\t\t});\n\n\t\tif (!existingLurker) { document.body.appendChild(this.Lurker); }\n\n\t\tthis.Options = {\n\t\t\tMaximumSize: 10485760,\n\t\t\tAllowedExtensions: [], ...options\n\t\t};\n\n\t\tif (this.Options.Buttons?.length) {\n\t\t\t[...(typeof this.Options.Buttons === \"string\" ? document.querySelectorAll(this.Options.Buttons) : this.Options.Buttons)]\n\t\t\t\t.filter(x => x != null)\n\t\t\t\t.forEach(button => button.onclick = () => this.#GetFiles());\n\t\t}\n\n\t\tif (this.Options.DropAreas?.length) {\n\t\t\t((typeof this.Options.DropAreas === \"string\" ? document.querySelectorAll(this.Options.DropAreas) : this.Options.DropAreas))\n\t\t\t\t.forEach(area => {\n\t\t\t\t\tObject.assign(area ?? {}, {\n\t\t\t\t\t\tondragenter: ev => ev.preventDefault(),\n\t\t\t\t\t\tondragover: ev => ev.preventDefault(),\n\t\t\t\t\t\tondrop: this.#OnDrop\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t}\n\t}\n\n\tstatic #OnDrop = ev => {\n\t\tev.preventDefault();\n\n\t\tconst items = ev.dataTransfer.items,\n\t\t\tfiles = ev.dataTransfer.files;\n\n\t\tif (this.Options.DragDropMessage) {\n\t\t\tDialog.ShowConfirmation(\"Are you sure?\", this.Options.DragDropMessage).then(proceed => {\n\t\t\t\tif (!proceed) { return; }\n\n\t\t\t\tif (ev.dataTransfer.items?.length) {\n\t\t\t\t\tthis.#ProcessFiles(Array.from(items).filter(x => x.kind === \"file\").map(y => y.getAsFile()));\n\t\t\t\t} else {\n\t\t\t\t\tthis.#ProcessFiles(files);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (items) {\n\t\t\tthis.#ProcessFiles(Array.from(items).filter(x => x.kind === \"file\").map(y => y.getAsFile()));\n\t\t} else {\n\t\t\tthis.#ProcessFiles(files);\n\t\t}\n\t}\n\n\tstatic #getFileData(reader) {\n\t\treturn btoa(new Uint8Array(reader.result).reduce((data, byte) => data + String.fromCharCode(byte), ''))\n\t}\n\n\tstatic #getImageSrc(reader, file) {\n\t\treturn `data:${file.type};base64,${this.#getFileData(reader)}`;\n\t}\n\n\tstatic getAuxiliumFile(file, reader) {\n\t\tconst auxFile = Object.assign(file, {\n\t\t\tgetData: () => this.#getFileData(reader),\n\t\t\tgetImageSrc: () => this.#getImageSrc(reader, auxFile)\n\t\t});\n\n\t\treturn auxFile;\n\t}\n\n\tstatic async #ProcessFiles(receivedFiles) {\n\t\tconst files = [];\n\n\t\treturn new Promise(res => {\n\t\t\tif (receivedFiles.length) {\n\t\t\t\tconst reader = new FileReader();\n\t\t\t\tlet index = 0;\n\n\t\t\t\tconst mapper = new Promise(resolve => {\n\t\t\t\t\treader.onload = async () => {\n\t\t\t\t\t\tconst file = this.getAuxiliumFile(receivedFiles[index], reader);\n\n\t\t\t\t\t\tif (!this.Options.AllowedExtensions.length || this.Options.AllowedExtensions.includes(file.name.split(\".\").pop())) {\n\t\t\t\t\t\t\tif (file.size <= this.Options.MaximumSize || this.Options.MaximumSize < 1) {\n\t\t\t\t\t\t\t\tfiles.push(file);\n\t\t\t\t\t\t\t} else if (typeof this.Options.OnFileTooLarge === \"function\") {\n\t\t\t\t\t\t\t\tawait this.Options.OnFileTooLarge(file);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (index < receivedFiles.length - 1) {\n\t\t\t\t\t\t\treader.readAsArrayBuffer(receivedFiles[++index]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresolve();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treader.readAsArrayBuffer(receivedFiles[0]);\n\n\t\t\t\tmapper.then(() => {\n\t\t\t\t\tthis.Options.OnComplete?.(files);\n\n\t\t\t\t\tres(files);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic #GetFiles() {\n\t\treturn new Promise(resolve => {\n\t\t\tObject.assign(this.Lurker, {\n\t\t\t\taccept: this.Options.AllowedExtensions.map(x => `.${x}`).join(\",\"),\n\t\t\t\tonchange: () => this.#ProcessFiles(this.Lurker.files).then(files => resolve(files))\n\t\t\t});\n\n\t\t\tif (this.Options.Multiple) {\n\t\t\t\tthis.Lurker.setAttribute(\"multiple\", \"\");\n\t\t\t}\n\n\t\t\tif (this.Options.IsDirectory) {\n\t\t\t\tObject.assign(this.Lurker, {\n\t\t\t\t\tdirectory: \"\",\n\t\t\t\t\twebkitdirectory: \"\",\n\t\t\t\t\tmultiple: \"\"\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.Lurker.click();\n\t\t});\n\t}\n}","import { Dialog } from \"../dialog/dialog\";\nimport { Toast } from \"../dialog/toast\";\nimport { Razor } from \"../razor/razor\";\n\nexport class DbInterfacer {\n\tconstructor(id) {\n\t\tthis.ID = parseInt(id);\n\n\t\tthis.GetPayload = this.GetPayload.bind(this);\n\n\t\tthis.ResourceURL = \"\";\n\n\t\tthis.SaveHandler = \"Save\";\n\t\tthis.DeleteHandler = \"Delete\";\n\t\tthis.RestoreHandler = \"Restore\";\n\n\t\tthis.DeleteMessage = \"\";\n\n\t\tthis.Title = \"name\";\n\n\t\tthis.EditConfig = {\n\t\t\tPartialView: \"\",\n\t\t\tPayload: this.GetPayload,\n\t\t\tInvalidData: this.GetInvalidData,\n\t\t\tPartialViewOptions: { ID: this.ID },\n\t\t\tTitle: \"\",\n\t\t\tBody: \"\",\n\t\t\tNewInstanceTitle: \"\",\n\t\t\tSize: \"md\",\n\t\t\tTheme: \"FORM\",\n\t\t\tAffirmativeText: this.ID === 0 ? \"Create\" : \"Save\",\n\t\t\tHandler: this.SaveHandler\n\t\t}\n\t}\n\n\tstatic OnSave = response => location.href = response.url;\n\tstatic OnDelete = null;\n\tstatic OnRestore = null;\n\n\tasync Edit(options) {\n\t\toptions = { ...this.EditConfig, ...options };\n\t\tconst { Theme, Size, AffirmativeText } = options;\n\n\t\tif (!options.Title && this.ID !== 0) {\n\t\t\toptions.Title = typeof this.Title === \"string\"\n\t\t\t\t? (await Ajax.Get(`~/${this.ResourceURL}/${this.ID}?handler=JSON`)).body[this.Title]\n\t\t\t\t: this.Title?.();\n\t\t}\n\t\tconst dialogOptions = {\n\t\t\tTheme, Size, AffirmativeText, ...(options.DialogOptions ?? {})\n\t\t};\n\n\t\tif (!dialogOptions.OnCheckValid) {\n\t\t\tdialogOptions.OnCheckValid = dialog => this.#CanSave(dialog, options);\n\t\t}\n\n\t\tDialog.ShowPartialView(this.ID === 0 ? options.NewInstanceTitle : options.Title, options.Body, options.PartialView,\n\t\t\toptions.PartialViewOptions, dialogOptions).then(proceed => {\n\t\t\t\tif (proceed) {\n\t\t\t\t\tthis.Save(options);\n\t\t\t\t}\n\t\t\t});\n\t}\n\n\tGetInvalidData(dialog) {\n\t\treturn [...dialog.querySelectorAll(\".input-field:not(chip-input .input-field)\")].filter(x => x.checkValidity?.() === false);\n\t}\n\tGetPayload() { return {}; }\n\n\t#CanSave(dialog, options) {\n\t\tlet failedInputs = options.GetInvalidData ?? this.GetInvalidData;\n\t\tfailedInputs = [...new Set(failedInputs(dialog).concat([...dialog.querySelectorAll(\"chip-input, chip-dropdown\")].filter(x => x.reportValidity() === false)))];\n\n\t\tdialog.querySelectorAll(\".input-field__invalid\").forEach(x => x.classList.remove(\"input-field__invalid\"));\n\n\t\tif (!failedInputs.length) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\tfailedInputs.forEach(x => {\n\t\t\t\tlet target = x.nodeName === \"INPUT\" ? x : x.querySelector(\"input\");\n\t\t\t\ttarget ??= x;\n\n\t\t\t\ttarget.classList.add(\"input-field__invalid\");\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tSave(options = {}) {\n\t\tAjax.Post(`~/${this.ResourceURL}/${this.ID}?handler=${options.Handler ?? this.SaveHandler}`, {\n\t\t\tbody: options.Payload ? options.Payload() : this.GetPayload(),\n\t\t\tsuccess: {\n\t\t\t\tok: response => {\n\t\t\t\t\tToast.ShowSuccess(\"Your changes have been saved successfully\");\n\n\t\t\t\t\tif (options.OnSave) {\n\t\t\t\t\t\toptions.OnSave(response);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.constructor.OnSave?.(response);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t400: response => {\n\t\t\t\t\tconst reason = Razor.GetBadRequestReason(response);\n\t\t\t\t\tif (!reason) { console.log(response); }\n\n\t\t\t\t\tDialog.ShowWarning(\"That doesn't look right\", reason);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tasync Delete(handler) {\n\t\tconst title = typeof this.Title === \"string\"\n\t\t\t? (await Ajax.Get(`~/${this.ResourceURL}/${this.ID}?handler=JSON`)).body[this.Title]\n\t\t\t: this.Title?.();\n\n\t\tlet message = title ? `Are you sure you'd like to delete '${title}'?` : \"Are you sure you'd like to delete this?\";\n\n\t\tif (this.DeleteMessage) {\n\t\t\tmessage = this.DeleteMessage;\n\t\t}\n\n\t\tDialog.ShowConfirmation(\"Are you sure?\", message).then(proceed => {\n\t\t\tif (proceed) {\n\t\t\t\tAjax.Post(`~/${this.ResourceURL}/${this.ID}?handler=${handler ?? this.DeleteHandler}`, {\n\t\t\t\t\tsuccess: {\n\t\t\t\t\t\tok: response => {\n\t\t\t\t\t\t\tToast.ShowSuccess(title ? `'${title}' was deleted successfully` : \"Deleted successfully\");\n\n\t\t\t\t\t\t\tthis.constructor.OnSave?.(response);\n\t\t\t\t\t\t\tthis.constructor.OnDelete?.(response);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t}\n\n\tasync Restore(handler) {\n\t\tconst title = typeof this.Title === \"string\"\n\t\t\t? (await Ajax.Get(`~/${this.ResourceURL}/${this.ID}?handler=JSON`)).body[this.Title]\n\t\t\t: this.Title?.();\n\n\t\tDialog.ShowConfirmation(\"Are you sure?\", title ? `Are you sure you'd like to restore '${title}'` : \"Are you sure you'd like to restore this?\").then(proceed => {\n\t\t\tif (proceed) {\n\t\t\t\tAjax.Post(`~/${this.ResourceURL}/${this.ID}?handler=${handler ?? this.RestoreHandler}`, {\n\t\t\t\t\tsuccess: {\n\t\t\t\t\t\tok: response => {\n\t\t\t\t\t\t\tToast.ShowSuccess(title ? `'${title}' was restored successfully` : \"Restored successfully\");\n\n\t\t\t\t\t\t\tthis.constructor.OnSave?.(response);\n\t\t\t\t\t\t\tthis.constructor.OnRestore?.(response);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t})\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { Dialog } from \"../../dialog/dialog\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Card extends AuxiliumComponent {\n\tstatic observedAttributes = [\"scroll\", \"flush\", \"hoverable\", \"hide-blur\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.heading = {\n\t\t\ttext: this.getAttribute(\"heading\"),\n\t\t\tsize: this.getAttribute(\"heading-size\"),\n\t\t\tsubtitle: this.getAttribute(\"subtitle\")\n\t\t};\n\n\t\tthis.scroll = this.hasAttribute(\"scroll\");\n\t\tthis.image = this.getAttribute(\"image\");\n\t\tthis.video = this.getAttribute(\"video\");\n\t\tthis.link = this.getAttribute(\"link\");\n\t\tthis.audio = this.getAttribute(\"audio\");\n\t\tthis.allowPreview = this.hasAttribute(\"allow-preview\");\n\t\tthis.hideBlur = this.hasAttribute(\"hide-blur\");\n\t\tthis.flush = this.hasAttribute(\"flush\");\n\t\tthis.variation = this.getAttribute(\"variation\");\n\t\tthis.hoverable = this.hasAttribute(\"hoverable\");\n\t\tthis.size = this.getAttribute(\"size\")?.toLowerCase();\n\n\t\tif (!this.heading.size) {\n\t\t\tthis.heading.size = (() => {\n\t\t\t\tswitch (this.size) {\n\t\t\t\t\tcase \"xs\": return \"5\";\n\t\t\t\t\tcase \"sm\": return \"4\";\n\t\t\t\t\tcase \"md\": return \"2\";\n\t\t\t\t\tcase \"lg\": return \"1\";\n\t\t\t\t\tcase \"body\": return \"body\";\n\t\t\t\t\tdefault: return \"3\";\n\t\t\t\t}\n\t\t\t})();\n\t\t}\n\t}\n\n\tsetBody(content) {\n\t\tconst bodyElement = this.querySelector(\".card-body\") ?? this.appendChild(document.createElementWithContents(\"div\", null, { className: \"card-body\" }));\n\n\t\tbodyElement.innerHTML = content;\n\t}\n\n\tparsedCallback() {\n\t\tthis.classList.add(\"card-frame\");\n\n\t\tif (this.flush) { this.classList.add(\"card--flush\"); }\n\t\tif (this.variation) { this.classList.add(`card-${this.variation}`); }\n\t\tif (this.size) { this.classList.add(`card--${this.size}`); }\n\n\t\tif (this.image || this.video || this.audio) {\n\t\t\tthis.querySelector(\".card-header, chip-cardheader\")?.remove();\n\t\t}\n\n\t\tif (this.image) {\n\t\t\tconst img = document.createElementWithContents(\"img\", null, {\n\t\t\t\tloading: \"lazy\",\n\t\t\t\tsrc: this.image,\n\t\t\t\talt: \"Card Image Preview\"\n\t\t\t}), visibleImg = !this.hideBlur ? img.cloneNode() : null;\n\n\t\t\tthis.prepend(document.createElementWithContents(\"chip-cardheader\", [img, visibleImg], {\n\t\t\t\tonclick: () => this.allowPreview ? Dialog.ShowImage(this.image) : null\n\t\t\t}));\n\t\t}\n\n\t\tif (this.video) {\n\t\t\tconst vid = document.createElementWithContents(\"video\", ``, {\n\t\t\t\tcontrols: true\n\t\t\t});\n\n\t\t\tthis.prepend(document.createElementWithContents(\"chip-cardheader\", vid));\n\t\t}\n\n\t\tif (this.audio) {\n\t\t\tconst ado = document.createElementWithContents(\"audio\", null, {\n\t\t\t\tcontrols: true,\n\t\t\t\tsrc: this.audio\n\t\t\t});\n\n\t\t\tthis.prepend(document.createElementWithContents(\"chip-cardheader\", ado));\n\t\t}\n\n\t\tconst card = document.createElementWithContents(this.link ? \"a\" : \"div\",\n\t\t\tthis.heading.text ?\n\t\t\t\t`\n\t\t\t\t
\n\t\t\t\t\t
${this.heading.text}
\n\t\t\t\t\t
${this.heading.subtitle}
\n\t\t\t\t
\n\t\t\t`.trim() : document.createElementWithContents(\"div\", this.querySelector(\"chip-cardheader\"), { className: \"card-header\" })\n\t\t), header = card.querySelector(\"chip-cardheader\");\n\n\t\tif (this.link) { card.href = Browser.ResolveRelativeURL(this.link); }\n\n\t\tif (!header) {\n\t\t\tif (!this.heading.text) { card.querySelector(\".card-title\")?.remove(); }\n\t\t\telse { card.querySelector(\".card-title\")?.classList.add(`heading--size${this.heading.size}`); }\n\n\t\t\tif (!this.heading.subtitle) { card.querySelector(\".card-subtitle\")?.remove(); }\n\n\t\t\tif (!this.heading.text && !this.heading.subtitle) { card.querySelector(\".card-header\").remove(); }\n\t\t} else {\n\t\t\theader.addEventListener(\"click\", () => this.raiseEvent(\"headerclick\"));\n\t\t}\n\n\t\tif (this.innerHTML.trim() !== \"\") {\n\t\t\tcard.appendChild(document.createElementWithContents(\"div\", this.childNodes, { className: \"card-body\" }));\n\t\t}\n\n\t\tthis.append(card);\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Checkbox extends AuxiliumComponent {\n\tstatic observedAttributes = [\"checked\", \"value\", \"helper-text\"];\n\t#Mappers = {};\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.InitializeCheckboxProperties();\n\n\t\tthis.type = this.getAttribute(\"type\") ?? \"\";\n\n\t\tthis.#Mappers = {\n\t\t\tname: this.name,\n\t\t\trequired: this.required\n\t\t};\n\n\t\tif (this.closest(\"form\") && !this.#Mappers.name) { this.#Mappers.name = this.id ?? this.identifier; }\n\t}\n\n\tparsedCallback() {\n\t\tthis.classList.add(\"checkbox__wrapper\");\n\n\t\tconst checkbox = document.createElementWithContents(\"input\", null, {\n\t\t\tid: this.identifier,\n\t\t\tclassName: `input-field${this.type === \"switch\" ? \" switch\" : \"\"}`.trim(),\n\t\t\ttype: \"checkbox\",\n\t\t\tchecked: this.checked,\n\t\t\tvalue: this.value\n\t\t});\n\n\t\tcheckbox.addEventListener(\"change\", () => this.checked = checkbox.checked);\n\n\t\tObject.keys(this.#Mappers).filter(x => this.#Mappers[x])\n\t\t\t.forEach(key => checkbox.setAttribute(key, this.#Mappers[key] === true ? \"\" : this.#Mappers[key]));\n\n\t\tif (this.helperText) {\n\t\t\tthis.prepend(document.createElementWithContents(\"div\", this.helperText, {\n\t\t\t\tclassName: \"input-field__helper-text\"\n\t\t\t}));\n\t\t}\n\n\t\tif (this.label) { this.prepend(document.createElementWithContents(\"label\", this.label, { htmlFor: this.identifier })); }\n\n\t\tthis.prepend(checkbox);\n\t}\n\n\tcheckValidity() {\n\t\tconst input = this.querySelector(\"input\"),\n\t\t\tisValid = input?.checkValidity() ?? false;\n\n\t\tthis.validationMessage = this.GetValidationMessage(input);\n\n\t\treturn isValid;\n\t}\n\n\tsetInvalid(message) {\n\t\tthis.querySelector(\".input-field__validation-error\")?.remove();\n\n\t\tconst input = this.querySelector(\"input\"),\n\t\t\tmsgElement = document.createElementWithContents(\"div\", message, { className: \"input-field__validation-error\" });\n\n\t\tif (!this.disableMessages) {\n\t\t\tif (Browser.GetFlavour() === \"gov\") {\n\t\t\t\tthis.querySelector(\"input\").insertAdjacentElement(\"beforebegin\", msgElement);\n\t\t\t} else {\n\t\t\t\tthis.appendChild(msgElement);\n\t\t\t}\n\t\t}\n\n\t\tinput.classList.add(\"input-field__invalid\");\n\n\t\tthis.querySelectorAll(\".input__bound\").forEach(x => x.classList.add(\"input-field__invalid\"));\n\t}\n\n\treportValidity() {\n\t\tconst validity = this.checkValidity();\n\n\t\tthis.querySelector(\".input-field__validation-error\")?.remove();\n\t\tthis.querySelectorAll(\".input-field__invalid\").forEach(x => x.removeClass(\"input-field__invalid\"));\n\n\t\tif (!validity) {\n\t\t\tthis.setInvalid(this.validationMessage);\n\t\t}\n\n\t\treturn validity;\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tswitch (name) {\n\t\t\tcase \"checked\":\n\t\t\t\tthis.querySelector(\"input\").checked = this.IsAttributeValueTrue(newValue);\n\t\t\t\tbreak;\n\t\t\tcase \"helper-text\": {\n\t\t\t\tconst existing = this.querySelector(\".input-field__helper-text\");\n\n\t\t\t\tif (existing) {\n\t\t\t\t\texisting.textContent = newValue;\n\t\t\t\t} else {\n\t\t\t\t\tthis.appendChild(document.createElementWithContents(\"div\", newValue, {\n\t\t\t\t\t\tclassName: \"input-field__helper-text\"\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Input extends AuxiliumComponent {\n\tstatic observedAttributes = [\"value\", \"placeholder\", \"icon-style\", \"type\", \"suffix-button\", \"suffix-tooltip\", \"readonly\", \"variation\", \"helper-text\", \"required\"];\n\n\t#Mappers = {};\n\n\t#GetSearchedItems = null;\n\t#InputTimeout;\n\t#Dropdown = null;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.InitializeValidationMessages();\n\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? crypto.randomUUID().slice(0, 8);\n\t\tthis.label = this.getAttribute(\"label\");\n\t\tthis.description = this.getAttribute(\"description\");\n\t\tthis.disableMessages = this.hasAttribute(\"disable-messages\");\n\t\tthis.secondaryLabel = this.getAttribute(\"secondary-label\") ?? \"\";\n\t\tthis.showPasswordButton = this.hasAttribute(\"show-password-button\");\n\t\tthis.suffixIcon = this.getAttribute(\"suffix-icon\") ?? \"\";\n\t\tthis.prefixIcon = this.getAttribute(\"prefix-icon\") ?? \"\";\n\t\tthis.orientation = this.getAttribute(\"orientation\");\n\t\tthis.variation = this.getAttribute(\"variation\") ?? \"\";\n\t\tthis.readonly = this.hasAttribute(\"readonly\");\n\t\tthis.labelTooltip = this.getAttribute(\"label-tooltip\");\n\t\tthis.helperText = this.getAttribute(\"helper-text\") ?? \"\";\n\t\tthis.casing = this.getAttribute(\"casing\") ?? \"\";\n\t\tthis.type = this.getAttribute(\"type\") ?? \"text\";\n\t\tthis.size = this.getAttribute(\"size\");\n\t\tthis.prefixButton = this.getAttribute(\"prefix-button\") ?? \"\";\n\t\tthis.suffixButton = this.getAttribute(\"suffix-button\") ?? \"\";\n\t\tthis.prefixTooltip = this.getAttribute(\"prefix-tooltip\") ?? \"\";\n\t\tthis.suffixTooltip = this.getAttribute(\"suffix-tooltip\") ?? \"\";\n\t\tthis.prefixDescription = this.getAttribute(\"prefix-description\");\n\t\tthis.suffixDescription = this.getAttribute(\"suffix-description\");\n\t\tthis.route = this.getAttribute(\"route\") ?? \"\";\n\t\tthis.searchParameter = this.getAttribute(\"search-parameter\") ?? \"q\";\n\n\t\tif (this.type === \"password\" && this.showPasswordButton) {\n\t\t\tthis.suffixButton = \"fas fa-eye\";\n\t\t\tthis.suffixTooltip = \"Show password\";\n\n\t\t\tthis.addEventListener(\"suffixclick\", () => {\n\t\t\t\tif (this.type === \"password\") {\n\t\t\t\t\tthis.suffixButton = \"fas fa-eye-slash\";\n\t\t\t\t\tthis.type = \"text\";\n\t\t\t\t\tthis.suffixTooltip = \"Hide password\";\n\t\t\t\t} else {\n\t\t\t\t\tthis.suffixButton = \"fas fa-eye\";\n\t\t\t\t\tthis.type = \"password\";\n\t\t\t\t\tthis.suffixTooltip = \"Show password\";\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (this.type === \"search\" && !this.prefixIcon && !this.prefixButton) {\n\t\t\tthis.prefixIcon = \"fal fa-search\";\n\t\t}\n\n\t\tthis.value = (() => {\n\t\t\tswitch (this.casing.toLowerCase()) {\n\t\t\t\tcase \"uppercase\": return this.getAttribute(\"value\")?.toUpperCase();\n\t\t\t\tcase \"lowercase\": return this.getAttribute(\"value\")?.toLowerCase();\n\t\t\t\tdefault: return this.getAttribute(\"value\")\n\t\t\t}\n\t\t})() ?? \"\";\n\n\t\tthis.initialValue = this.value;\n\n\t\tthis.#Mappers = {\n\t\t\tlist: this.getAttribute(\"list\"),\n\t\t\tmax: this.getAttribute(\"max\"),\n\t\t\tmaxlength: this.getAttribute(\"maxlength\"),\n\t\t\tmin: this.getAttribute(\"min\"),\n\t\t\tminlength: this.getAttribute(\"minlength\"),\n\t\t\tname: this.getAttribute(\"name\"),\n\t\t\tautofocus: this.hasAttribute(\"focus\"),\n\t\t\tautocomplete: this.getAttribute(\"autocomplete\"),\n\t\t\tpattern: this.getAttribute(\"pattern\"),\n\t\t\tplaceholder: this.getAttribute(\"placeholder\"),\n\t\t\treadonly: this.readonly,\n\t\t\trequired: this.hasAttribute(\"required\"),\n\t\t\tstep: this.getAttribute(\"step\"),\n\t\t\ttabIndex: this.getAttribute(\"tabindex\") ?? \"\"\n\t\t};\n\n\t\tif (this.closest(\"form\") && !this.#Mappers.name) {\n\t\t\tthis.#Mappers.name = this.id ?? this.identifier;\n\t\t}\n\n\t\tif (this.type.toLowerCase() === \"date\" && !this.#Mappers.max) {\n\t\t\tthis.#Mappers.max = \"9999-12-31\";\n\t\t}\n\n\t\tObject.keys(this.#Mappers).forEach(key => this[key] = this.#Mappers[key]);\n\t}\n\n\tget GetSearchedItems() {\n\t\treturn this.#GetSearchedItems;\n\t}\n\n\tset GetSearchedItems(value) {\n\t\tthis.#GetSearchedItems = value;\n\n\t\tconst dropdown = this.querySelector(\"chip-dropdown\");\n\n\t\tif (dropdown) {\n\t\t\tdropdown.GetSearchedItems = value;\n\n\t\t\tif (this.value) {\n\t\t\t\tthis.#ForceAutocomplete(this.querySelector(\"input\"));\n\t\t\t}\n\t\t}\n\t}\n\n\t#OnInput(input, wasDynamic) {\n\t\t// Other types will error when setting these values\n\t\tif ([\"text\", \"search\", \"url\", \"tel\", \"password\"].includes(this.type.toLowerCase())) {\n\t\t\tconst trueValue = (() => {\n\t\t\t\tswitch (this.casing.toLowerCase()) {\n\t\t\t\t\tcase \"uppercase\": return input.value.toUpperCase();\n\t\t\t\t\tcase \"lowercase\": return input.value.toLowerCase();\n\t\t\t\t\tdefault: return input.value\n\t\t\t\t}\n\t\t\t})() ?? \"\";\n\n\t\t\tObject.assign(input, {\n\t\t\t\tvalue: trueValue,\n\t\t\t\tselectionEnd: input.selectionStart\n\t\t\t});\n\n\t\t\tthis.value = trueValue;\n\t\t} else {\n\t\t\tthis.value = input.value;\n\t\t}\n\n\t\tif (this.#Dropdown && !wasDynamic) {\n\t\t\tif (this.#InputTimeout) {\n\t\t\t\tclearTimeout(this.#InputTimeout);\n\t\t\t}\n\n\t\t\tthis.#InputTimeout = setTimeout(() => {\n\t\t\t\tthis.#ForceAutocomplete(input);\n\t\t\t}, 500);\n\t\t}\n\t}\n\n\t#ForceAutocomplete(input) {\n\t\tconst value = input?.value ?? this.value;\n\n\t\tthis.#Dropdown?.Search(value).then(() => {\n\t\t\tif (!this.#Dropdown.querySelector(\"chip-dropdownitem\") || value.trim() === \"\") {\n\t\t\t\tthis.#Dropdown.Close();\n\t\t\t} else {\n\t\t\t\tthis.#Dropdown.Open();\n\t\t\t}\n\t\t});\n\t}\n\n\tparsedCallback() {\n\t\tthis.removeAttribute(\"tabindex\");\n\n\t\tconst element = document.createElementWithContents(\"div\",\n\t\t\t`\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t`.trim()\n\t\t),\n\t\t\tinput = element.querySelector(\"input\");\n\n\t\tObject.assign(input, {\n\t\t\ttype: this.type,\n\t\t\tvalue: this.value,\n\t\t\tid: this.identifier\n\t\t});\n\n\t\tif (this.helperText) {\n\t\t\tconst helperTextMethod = Browser.GetFlavour() === \"gov\" ? \"prepend\" : \"appendChild\";\n\n\t\t\telement[helperTextMethod](document.createElementWithContents(\"div\", this.helperText, { className: \"input-field__helper-text\" }));\n\t\t}\n\n\t\tthis.#Dropdown = this.querySelector(\":scope>chip-dropdown\");\n\n\t\tif (this.#Dropdown) {\n\t\t\tthis.#ForceAutocomplete(input);\n\t\t}\n\n\t\tconst label = document.createElementWithContents(\"label\", this.label, {\n\t\t\tclassName: \"input-field__label\",\n\t\t\thtmlFor: this.identifier\n\t\t});\n\n\t\tif (this.labelTooltip) {\n\t\t\tconst labelIcon = document.createElementWithContents(\"chip-icon\", null, { icon: \"fas fa-info-circle\" });\n\t\t\tlabelIcon.setAttribute(\"tooltip\", this.labelTooltip);\n\n\t\t\tlabel.appendChild(labelIcon);\n\t\t}\n\n\t\tif (this.secondaryLabel) { label.appendChild(document.createElementWithContents(\"span\", this.secondaryLabel, { className: \"input-field__label--secondary\" })); }\n\n\t\tif (!this.orientation) {\n\t\t\telement.prepend(label);\n\t\t} else {\n\t\t\telement.querySelector(\".input__wrapper\").prepend(label);\n\t\t}\n\n\t\tinput.onchange = ev => {\n\t\t\tev.preventDefault();\n\t\t\tev.stopPropagation();\n\n\t\t\tthis.reportValidity();\n\t\t\tthis.closest(\"chip-form\")?.checkValidity();\n\n\t\t\tthis.raiseEvent(\"change\");\n\t\t}\n\n\t\tinput.addEventListener(\"input\", () => this.#OnInput(input));\n\n\t\tif (this.type === \"search\") {\n\t\t\tinput.addEventListener(\"keyup\", ev => {\n\t\t\t\tif (ev.key === \"Enter\") {\n\t\t\t\t\tif (this.route) {\n\t\t\t\t\t\tconst url = Object.assign(new URL(Browser.ResolveRelativeURL(this.route)), {\n\t\t\t\t\t\t\thash: \"\"\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (input.value.trim() === \"\") {\n\t\t\t\t\t\t\turl.searchParams.delete(this.searchParameter);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\turl.searchParams.set(this.searchParameter, input.value.trim());\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlocation.href = url;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tBrowser.SetURLParameter(this.searchParameter, input.value.trim() === \"\" ? null : input.value.trim());\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (this.#Dropdown) {\n\t\t\tinput.addEventListener(\"keydown\", ev => {\n\t\t\t\tif (ev.key === \"ArrowUp\") {\n\t\t\t\t\tthis.#Dropdown.ArrowUp(ev);\n\t\t\t\t} else if (ev.key === \"ArrowDown\") {\n\t\t\t\t\tthis.#Dropdown.ArrowDown(ev);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (this.GetSearchedItems) {\n\t\t\t\tthis.#Dropdown.GetSearchedItems = this.GetSearchedItems;\n\t\t\t}\n\n\t\t\tthis.#Dropdown.onselectionchange = () => {\n\t\t\t\tthis.value = this.#Dropdown.value || this.#Dropdown.selectedText;\n\t\t\t}\n\n\t\t\tinput.addEventListener(\"focus\", () => {\n\t\t\t\tif (input.value.trim() !== \"\") {\n\t\t\t\t\tthis.#Dropdown.Open();\n\t\t\t\t}\n\n\t\t\t\tthis.raiseEvent(\"focus\");\n\t\t\t});\n\t\t}\n\n\t\tif (this.closest(\"chip-dropdown\")) {\n\t\t\tinput.onchange = ev => {\n\t\t\t\tev.preventDefault();\n\t\t\t\tev.halt();\n\t\t\t}\n\t\t}\n\n\t\tif (this.suffixIcon) { input.classList.add(\"border-right-none\", \"br-right-none\"); }\n\t\tif (this.type === \"date\") { input.addEventListener(\"keydown\", this.#HandleDateKeydown); }\n\n\t\tthis.#renderFixes(input);\n\n\t\tif (!this.label && !this.secondaryLabel) { element.querySelector(\"label\").remove(); }\n\t\tif (!this.label && this.#Mappers.placeholder) { input.ariaLabel = this.#Mappers.placeholder; }\n\n\t\tObject.keys(this.#Mappers).filter(x => this.#Mappers[x])\n\t\t\t.forEach(key => input.setAttribute(key, this.#Mappers[key] === true ? \"\" : this.#Mappers[key]));\n\n\t\tif (this.description) { input.ariaLabel = this.description; }\n\n\t\tthis.prepend(...element.childNodes);\n\t}\n\n\t#renderFixes(input) {\n\t\tif (this.prefixButton) {\n\t\t\tconst prefixDropdown = this.querySelector(\"chip-prefixdropdown\"),\n\t\t\t\tpfxButton = document.createElementWithContents(!prefixDropdown ? \"chip-button\" : \"chip-dropdownbutton\", null, {\n\t\t\t\t\tclassName: \"input__bound\",\n\t\t\t\t\tbuttonStyle: \"icon\",\n\t\t\t\t\ticon: this.prefixButton,\n\t\t\t\t\tvariation: \"body\",\n\t\t\t\t\tonclick: () => this.raiseEvent(\"prefixclick\")\n\t\t\t\t});\n\n\t\t\tif (prefixDropdown) {\n\t\t\t\tpfxButton.appendChild(prefixDropdown.firstElementChild);\n\t\t\t\tprefixDropdown.remove();\n\t\t\t}\n\n\t\t\tinput.insertAdjacentElement(\"beforebegin\", pfxButton);\n\t\t} else if (this.prefixIcon) {\n\t\t\tinput.insertAdjacentElement(\"beforebegin\", document.createElementWithContents(\"span\", document.createElementWithContents(\"chip-icon\", null, { icon: this.prefixIcon }), { className: \"input__bound\" }));\n\t\t}\n\n\t\tif (this.suffixButton) {\n\t\t\tconst suffixDropdown = this.querySelector(\"chip-suffixdropdown\"),\n\t\t\t\tsfxButton = document.createElementWithContents(!suffixDropdown ? \"chip-button\" : \"chip-dropdownbutton\", null, {\n\t\t\t\t\tclassName: \"input__bound\",\n\t\t\t\t\tbuttonStyle: \"icon\",\n\t\t\t\t\ticon: this.suffixButton,\n\t\t\t\t\tvariation: \"body\",\n\t\t\t\t\tonclick: () => this.raiseEvent(\"suffixclick\")\n\t\t\t\t});\n\n\t\t\tif (suffixDropdown) {\n\t\t\t\tsfxButton.appendChild(suffixDropdown.firstElementChild);\n\t\t\t\tsuffixDropdown.remove();\n\t\t\t}\n\n\t\t\tinput.insertAdjacentElement(\"afterend\", sfxButton);\n\t\t} else if (this.suffixIcon) {\n\t\t\tinput.insertAdjacentElement(\"afterend\", document.createElementWithContents(\"span\", document.createElementWithContents(\"chip-icon\", null, { icon: this.suffixIcon }), { className: \"input__bound\" }));\n\t\t}\n\n\t\tif (this.prefixTooltip && input.previousElementSibling) { input.previousElementSibling.tooltip = this.prefixTooltip; }\n\t\tif (this.suffixTooltip && input.nextElementSibling) { input.nextElementSibling.tooltip = this.suffixTooltip; }\n\n\t\tif (this.prefixDescription && input.previousElementSibling) { input.previousElementSibling.description = this.prefixDescription; }\n\t\tif (this.suffixDescription && input.nextElementSibling) { input.nextElementSibling.description = this.suffixDescription; }\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tswitch (name) {\n\t\t\tcase \"placeholder\":\n\t\t\tcase \"type\":\n\t\t\t\tthis.querySelector(\"input\")[name] = newValue ?? \"\";\n\t\t\t\tbreak;\n\t\t\tcase \"required\":\n\t\t\t\t{\n\t\t\t\t\tconst input = this.querySelector(\"input\");\n\n\t\t\t\t\tif (input) {\n\t\t\t\t\t\tinput.required = this.IsAttributeValueTrue(newValue);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"value\":\n\t\t\t\t{\n\t\t\t\t\tconst input = this.querySelector(\"input\");\n\n\t\t\t\t\tinput.value = newValue;\n\t\t\t\t\tthis.#OnInput(input, true);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"suffix-button\":\n\t\t\t\tthis.querySelector(\"input+chip-button.input__bound\").icon = newValue;\n\t\t\t\tbreak;\n\t\t\tcase \"suffix-tooltip\":\n\t\t\t\tthis.querySelector(\"input+.input__bound\")?.setAttribute(\"tooltip\", newValue);\n\t\t\t\tbreak;\n\t\t\tcase \"readonly\":\n\t\t\t\tthis.querySelector(\"input\").readOnly = this.IsAttributeValueTrue(newValue);\n\t\t\t\tbreak;\n\t\t\tcase \"helper-text\":\n\t\t\t\t{\n\t\t\t\t\tconst existing = this.querySelector(\".input-field__helper-text\");\n\n\t\t\t\t\tif (existing) {\n\t\t\t\t\t\tif (newValue) {\n\t\t\t\t\t\t\texisting.textContent = newValue;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\texisting.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.appendChild(document.createElementWithContents(\"div\", newValue, { className: \"input-field__helper-text\" }));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tcheckValidity() {\n\t\tconst input = this.querySelector(\"input\"),\n\t\t\tisValid = input?.checkValidity() ?? false;\n\n\t\tthis.validationMessage = this.GetValidationMessage(input);\n\n\t\treturn isValid;\n\t}\n\n\tsetInvalid(message) {\n\t\tthis.querySelector(\".input-field__validation-error\")?.remove();\n\n\t\tconst input = this.querySelector(\"input\"),\n\t\t\tmsgElement = document.createElementWithContents(\"div\", message, { className: \"input-field__validation-error\" });\n\n\t\tif (!this.disableMessages) {\n\t\t\tif (Browser.GetFlavour() === \"gov\") {\n\t\t\t\tthis.querySelector(\".input__wrapper\").insertAdjacentElement(\"beforebegin\", msgElement);\n\t\t\t} else {\n\t\t\t\tthis.appendChild(msgElement);\n\t\t\t}\n\t\t}\n\n\t\tinput.classList.add(\"input-field__invalid\");\n\n\t\tthis.querySelectorAll(\".input__bound\").forEach(x => x.classList.add(\"input-field__invalid\"));\n\t}\n\n\treportValidity() {\n\t\tconst validity = this.checkValidity();\n\n\t\tthis.querySelector(\".input-field__validation-error\")?.remove();\n\t\tthis.querySelectorAll(\".input-field__invalid\").forEach(x => x.removeClass(\"input-field__invalid\"));\n\n\t\tif (!validity) {\n\t\t\tthis.setInvalid(this.validationMessage);\n\t\t}\n\n\t\treturn validity;\n\t}\n\n\tfocus() {\n\t\tthis.querySelector(\"input\")?.focus();\n\t}\n\n\tselect() {\n\t\tthis.querySelector(\"input\")?.select();\n\t}\n\n\t#HandleDateKeydown(ev) {\n\t\tlet date;\n\t\tconst { target } = ev;\n\n\t\tif (ev.key?.toUpperCase() === \"T\") { date = new Date(); }\n\t\telse if (ev.key?.toUpperCase() === \"Y\") { date = new Date(new Date().setDate(new Date().getDate() - 1)); }\n\n\t\tif (date) {\n\t\t\ttry {\n\t\t\t\ttarget.valueAsDate = date;\n\t\t\t} catch {\n\t\t\t\ttarget.value = date.toISOString().slice(0, 19);\n\t\t\t}\n\n\t\t\ttarget.dispatchEvent(new Event(\"input\", {\n\t\t\t\tview: window,\n\t\t\t\tbubbles: true,\n\t\t\t\tcancelable: false\n\t\t\t}));\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class InfoGroup extends AuxiliumComponent {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.heading = this.getAttribute(\"heading\") ?? \"\";\n\t\tthis.editID = this.getAttribute(\"edit-id\") ?? \"\";\n\t\tthis.editable = this.hasAttribute(\"editable\");\n\n\t\tthis.classList.add(\"information-group\");\n\t}\n\n\tparsedCallback() {\n\t\tconst actionBar = this.querySelector(\":scope > chip-actionbar\");\n\n\t\tif (this.heading || this.editID || actionBar || this.editable) {\n\t\t\tconst headerDiv = document.createElementWithContents(\"div\", this.heading, { className: \"information-header\" });\n\n\t\t\tif (this.editID || this.editable) {\n\t\t\t\tconst editButton = document.createElementWithContents(\"chip-button\", null, {\n\t\t\t\t\tbuttonStyle: \"icon\",\n\t\t\t\t\ticon: \"fas fa-pencil\",\n\t\t\t\t\tclassName: \"information__edit\",\n\t\t\t\t\tvariation: \"body\",\n\t\t\t\t\tsize: \"sm\",\n\t\t\t\t\ttooltip: \"Edit details\",\n\t\t\t\t\tonclick: () => this.raiseEvent(\"editclicked\")\n\t\t\t\t});\n\n\t\t\t\tif (this.editID) { editButton.id = this.editID; }\n\n\t\t\t\theaderDiv.appendChild(editButton);\n\t\t\t}\n\n\t\t\tif (actionBar) {\n\t\t\t\theaderDiv.appendChild(actionBar);\n\t\t\t}\n\n\t\t\tthis.prepend(headerDiv);\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class InfoGroupRow extends AuxiliumComponent {\n\tstatic observedAttributes = [\"columns\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.columns = parseInt(this.getAttribute(\"columns\")) || -1;\n\n\t\tthis.classList.add(\"information-row\");\n\t}\n\n\tparsedCallback() {\n\t\tif (this.columns === -1) {\n\t\t\tconst columnCount = this.querySelectorAll(\"chip-infovalue\").length;\n\n\t\t\tif (columnCount < 4) {\n\t\t\t\tthis.columns = columnCount;\n\t\t\t}\n\t\t}\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tif (name === \"columns\") {\n\t\t\tthis.columns = parseInt(newValue) || 4;\n\t\t}\n\t}\n}","import { Toast } from \"../../dialog/toast\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class InfoGroupValue extends AuxiliumComponent {\n\tstatic observedAttributes = [\"variation\", \"multiline\", \"prevent-scroll\", \"value\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.label = this.getAttribute(\"label\") ?? \"\";\n\t\tthis.variation = this.getAttribute(\"variation\");\n\t\tthis.multiline = this.hasAttribute(\"multiline\");\n\t\tthis.editable = this.hasAttribute(\"editable\");\n\t\tthis.copyable = this.hasAttribute(\"copyable\");\n\t\tthis.maxHeight = this.getAttribute(\"max-height\") ?? \"\";\n\t\tthis.default = this.getAttribute(\"default\") ?? \" \";\n\n\t\tif (this.querySelector(\"chip-dropdown\")) {\n\t\t\tthis.preventScroll = true;\n\t\t}\n\t}\n\n\tparsedCallback() {\n\t\tthis.classList.add(\"information-column\");\n\n\t\tconst valueElement = document.createElementWithContents(\"div\", this.innerHTML.trim() !== \"\" ? this.childNodes : this.default,\n\t\t\t{\n\t\t\t\tclassName: `information__value${this.multiline ? \" smart-wrap\" : \"\"} ${this.innerHTML.trim() === \"\" ? \"information__value--empty\" : \"\"}`.trim()\n\t\t\t});\n\n\t\tif (this.maxHeight) {\n\t\t\tvalueElement.tabIndex = 0;\n\t\t}\n\n\t\tthis.appendChild(valueElement);\n\n\t\tif (this.label || this.editable || this.copyable) {\n\t\t\tconst labelDiv = document.createElementWithContents(\"div\", this.label, { className: \"information__description\" });\n\n\t\t\tif (this.editable) {\n\t\t\t\tconst editButton = document.createElementWithContents(\"chip-button\", null, {\n\t\t\t\t\tbuttonStyle: \"icon\",\n\t\t\t\t\ticon: \"fas fa-pencil\",\n\t\t\t\t\tclassName: \"information__edit\",\n\t\t\t\t\tvariation: \"body\",\n\t\t\t\t\tsize: \"sm\",\n\t\t\t\t\ttooltip: \"Edit\",\n\t\t\t\t\tonclick: () => this.raiseEvent(\"editclicked\")\n\t\t\t\t});\n\n\t\t\t\tlabelDiv.appendChild(editButton);\n\t\t\t}\n\n\t\t\tif (this.copyable) {\n\t\t\t\tconst copyButton = document.createElementWithContents(\"chip-button\", null, {\n\t\t\t\t\tbuttonStyle: \"icon\",\n\t\t\t\t\ticon: \"fas fa-copy\",\n\t\t\t\t\tclassName: \"information__copy\",\n\t\t\t\t\tvariation: \"body\",\n\t\t\t\t\tsize: \"xs\",\n\t\t\t\t\ttooltip: \"Copy\",\n\t\t\t\t\tonclick: () => {\n\t\t\t\t\t\tif (this.oncopyclicked) {\n\t\t\t\t\t\t\tthis.oncopyclicked();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twriteClipboardText(valueElement.classList.contains(\"information__value--empty\") ? \"\" : valueElement.textContent.trim()).then(() => Toast.ShowSuccess(Localizer.SUCCESS_TITLE, Localizer.COPIED_VALUE));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tlabelDiv.appendChild(copyButton);\n\t\t\t}\n\n\t\t\tthis.prepend(labelDiv);\n\t\t}\n\t}\n\n\tSetText(text) {\n\t\tconst container = this.querySelector(\".information__value\");\n\n\t\tif (container) {\n\t\t\tcontainer.textContent = text;\n\n\t\t\tif (container.innerHTML.trim() === \"\") {\n\t\t\t\tcontainer.classList.add(\"information__value--empty\");\n\t\t\t\tcontainer.innerHTML = this.default;\n\t\t\t} else {\n\t\t\t\tcontainer.classList.remove(\"information__value--empty\");\n\t\t\t}\n\t\t}\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tif (name === \"value\") {\n\t\t\tconst element = this.querySelector(\".information__value\");\n\t\t\telement.innerHTML = newValue?.trim() ?? this.default;\n\n\t\t\telement.toggleClass(\"information__value--empty\", !newValue?.trim());\n\t\t}\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { Button } from \"../button/button\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Dropdown extends AuxiliumComponent {\n\tstatic observedAttributes = [\"value\", \"static\", \"icon-colour\", \"text\", \"icon\", \"size\", \"suffix-icon\", \"description\", \"label\", \"required\"];\n\n\t#GetInitialItems = null;\n\t#GetSearchedItems = null;\n\n\t#stopReset = false;\n\t#stopSearch = false;\n\n\t#searchTimeout = 500;\n\n\t#preventClose = false;\n\t#invalid = false;\n\n\t#previousValue = \"\";\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.label = this.getAttribute(\"label\") ?? \"\";\n\t\tthis.secondaryLabel = this.getAttribute(\"secondary-label\") ?? \"\";\n\t\tthis.value = this.getAttribute(\"value\") ?? \"\";\n\t\tthis.searchable = this.hasAttribute(\"searchable\");\n\t\tthis.required = this.hasAttribute(\"required\");\n\t\tthis.initialValue = this.value;\n\t\tthis.buttonID = this.getAttribute(\"button-id\") ?? crypto.randomUUID().slice(0, 8);\n\t\tthis.static = this.hasAttribute(\"static\");\n\t\tthis.default = this.getAttribute(\"default\") ?? \"\";\n\t\tthis.selectOnArrow = this.hasAttribute(\"select-on-arrow\");\n\t\tthis.helperText = this.getAttribute(\"helper-text\") ?? \"\";\n\t\tthis.orientation = this.getAttribute(\"orientation\");\n\t\tthis.readonly = this.getAttribute(\"readonly\") ?? false;\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\n\t\tthis.localSearch = this.hasAttribute(\"local-search\");\n\t\tthis.size = this.getAttribute(\"size\");\n\t\tthis.description = this.getAttribute(\"description\");\n\t\tthis.text = this.getAttribute(\"text\") ?? \"\";\n\t\tthis.searchableLabel = this.getAttribute(\"searchable-label\") ?? \"\";\n\t\tthis.hiddenId = this.getAttribute(\"hidden-id\");\n\t\tthis.hiddenName = this.getAttribute(\"hidden-name\");\n\t\tthis.open = this.hasAttribute(\"open\");\n\t\tthis.dropdownStyle = this.getAttribute(\"dropdown-style\") ?? \"\";\n\t\tthis.variation = this.getAttribute(\"variation\") ?? \"\";\n\n\t\tthis.selectedItem = null;\n\n\t\tif (this.closest(\"form\") && !this.hiddenName) {\n\t\t\tthis.hiddenName = this.id;\n\t\t}\n\n\t\tthis.selectedText = \"\";\n\n\t\tthis.classList.add(\"dropdown__wrapper\");\n\t}\n\n\tget GetInitialItems() {\n\t\treturn this.#GetInitialItems;\n\t}\n\n\tset GetInitialItems(val) {\n\t\tthis.#GetInitialItems = val;\n\n\t\tif (this.localSearch) {\n\t\t\tPromise.resolve(val?.() ?? []).then(items => {\n\t\t\t\tthis.#GetInitialItems = () => items;\n\n\t\t\t\tthis.GetSearchedItems = value => SearchArray(items, value, \"textContent\", 0);\n\t\t\t\tthis.#searchTimeout = 0;\n\n\t\t\t\tthis.#ResetInitialSearch(true);\n\t\t\t});\n\t\t} else {\n\t\t\tthis.#ResetInitialSearch(true);\n\t\t}\n\t}\n\n\tget GetSearchedItems() {\n\t\treturn this.#GetSearchedItems;\n\t}\n\n\tset GetSearchedItems(val) {\n\t\tthis.#GetSearchedItems = val;\n\t\tthis.#searchTimeout = 500;\n\t}\n\n\tasync parsedCallback() {\n\t\tif (!this.static) {\n\t\t\tthis.static = this.closest(\"chip-dropdownbutton, chip-splitbutton\")?.querySelector(\"chip-dropdown\") === this || this.parentElement?.nodeName === \"CHIP-DROPDOWNITEM\";\n\t\t}\n\n\t\tconst wrapper = document.createElementWithContents(\"div\", null, { className: this.static ? \"\" : \"input-field\" });\n\n\t\tif (this.static) {\n\t\t\twrapper.classList.add(\"dropdown__static\");\n\t\t}\n\n\t\tconst button = document.createElementWithContents(\"button\", null, {\n\t\t\ttype: \"button\",\n\t\t\tclassName: \"btn--dropdown-trigger\",\n\t\t\tid: this.buttonID,\n\t\t\tariaExpanded: false,\n\t\t\tonclick: this.#OnButtonClick\n\t\t});\n\n\t\tif (!this.static && !this.closest(\"chip-splitbutton\")) {\n\t\t\tif (!this.text && !this.value && !this.default && this.parentElement?.nodeName !== \"CHIP-INPUT\") {\n\t\t\t\tthis.value = this.querySelector(\"chip-dropdownitem\")?.value;\n\t\t\t}\n\n\t\t\tlet buttonContent = this.text;\n\t\t\tif (!buttonContent || this.value) { buttonContent = this.querySelector(`chip-dropdownitem[value='${this.value}']`)?.innerHTML.trim() ?? (this.default || this.text); }\n\n\t\t\tbutton.appendChild(document.createElementWithContents(\"span\", buttonContent || \" \"));\n\t\t}\n\n\t\tif (this.description && !button.textContent?.trim() && !document.querySelector(`[for='${this.buttonID}']`)) { button.ariaLabel = this.description; }\n\n\t\tif (this.icon) { button.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: this.icon })); }\n\t\tif (this.size) { button.classList.add(`btn--${this.size.toLowerCase()}`); }\n\n\t\tlet items = [...this.children].map(x => x.cloneNode(true));\n\n\t\tif (this.children.length) {\n\t\t\tthis.#GetInitialItems = () => items;\n\n\t\t\tif (!this.GetSearchedItems) {\n\t\t\t\tthis.GetSearchedItems = value => SearchArray(items, value, \"textContent\", 0);\n\t\t\t\tthis.#searchTimeout = 0;\n\t\t\t}\n\t\t}\n\n\t\tif (this.label || this.secondaryLabel) {\n\t\t\tconst label = document.createElementWithContents(\"label\", this.label, {\n\t\t\t\thtmlFor: this.buttonID,\n\t\t\t\tclassName: \"input-field__label\"\n\t\t\t});\n\n\t\t\tif (this.secondaryLabel) { label.appendChild(document.createElementWithContents(\"span\", this.secondaryLabel, { className: \"input-field__label--secondary\" })); }\n\n\t\t\tthis.appendChild(label);\n\t\t}\n\n\t\tif (this.hiddenId || this.hiddenName) {\n\t\t\tconst hiddenInput = document.createElementWithContents(\"input\", null, {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tvalue: this.value\n\t\t\t});\n\n\t\t\tif (this.hiddenId) { hiddenInput.id = this.hiddenId; }\n\t\t\tif (this.hiddenName) { hiddenInput.name = this.hiddenName; }\n\n\t\t\twrapper.appendChild(hiddenInput);\n\t\t}\n\n\t\tif (![\"CHIP-INPUT\", \"CHIP-DROPDOWNITEM\"].includes(this.parentElement?.nodeName)) {\n\t\t\twrapper.appendChild(button);\n\t\t}\n\n\t\tconst list = document.createElementWithContents(\"ul\", null, {\n\t\t\tclassName: \"dropdown__list\"\n\t\t});\n\n\t\tlist.setAttribute(\"aria-labelledby\", this.buttonID);\n\t\tlist.onclick = ev => ev.halt();\n\n\t\tthis.#InitializeItemSet([...this.querySelectorAll(\":scope > chip-dropdownitem, :scope > chip-dropdowndivider, :scope > chip-dropdowngroup, :scope > chip-dropdownheader\")], list);\n\n\t\tlet keys = \"\",\n\t\t\ttimeout;\n\n\t\tif (this.searchable) {\n\t\t\tthis.#BuildSearchableDropdown(list);\n\t\t}\n\n\t\twrapper.appendChild(list);\n\t\tthis.appendChild(wrapper);\n\n\t\tif (this.helperText) {\n\t\t\tconst helperTextMethod = Browser.GetFlavour() === \"gov\" ? \"beforebegin\" : \"afterend\";\n\n\t\t\twrapper.insertAdjacentElement(helperTextMethod, document.createElementWithContents(\"div\", this.helperText, {\n\t\t\t\tclassName: \"input-field__helper-text\"\n\t\t\t}));\n\t\t}\n\n\t\tif (this.closest(\"chip-dropdownbutton\")?.querySelector(\"chip-dropdown\") === this) {\n\t\t\tthis.#InitDropdownButton();\n\t\t}\n\n\t\tthis.onkeydown = ev => {\n\t\t\tif (this.readonly) { return; }\n\t\t\tif (![\"Enter\", \"Tab\", \"Shift\"].includes(ev.key) && !this.classList.contains(\"dropdown--open\")) { this.Open(); }\n\n\t\t\tswitch (ev.key) {\n\t\t\t\tcase \"Escape\":\n\t\t\t\t\tthis.Close();\n\t\t\t\t\tthis.closest(\"chip-input\")?.focus();\n\n\t\t\t\t\tkeys = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\tthis.ArrowDown(ev);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\tthis.ArrowUp(ev);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tif (timeout) {\n\t\t\t\t\t\tclearTimeout(timeout);\n\t\t\t\t\t}\n\n\t\t\t\t\ttimeout = setTimeout(() => keys = \"\", 1000);\n\n\t\t\t\t\tkeys += ev.key.toLowerCase();\n\n\t\t\t\t\t[...list.querySelectorAll(\"chip-dropdownitem\")].find(x => x.textContent.trim().toLowerCase().indexOf(keys) === 0)?.parentElement.focus();\n\n\t\t\t\t\tif (ev.code === \"Space\") {\n\t\t\t\t\t\tev.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tArrowDown(ev) {\n\t\tev.preventDefault();\n\t\tev.stopPropagation();\n\n\t\tconst items = [...this.querySelectorAll(\".dropdown__list > li\")].filter(x => !!x.querySelector(\"chip-dropdownitem\")),\n\t\t\tcurrentIndex = items.indexOf(document.activeElement?.closest(\"li\")),\n\t\t\titem = (items.at(currentIndex + 1) ?? items.at(0)).querySelector(\":scope > button, :scope > a\");\n\n\t\tif (item && this.selectOnArrow) {\n\t\t\tthis.#SelectItem(item, true);\n\t\t}\n\n\t\titem?.focus();\n\t}\n\n\tArrowUp(ev) {\n\t\tev.preventDefault();\n\t\tev.stopPropagation();\n\n\t\tconst items = [...this.querySelectorAll(\".dropdown__list > li\")].filter(x => !!x.querySelector(\"chip-dropdownitem\")),\n\t\t\tcurrentIndex = items.indexOf(document.activeElement?.closest(\"li\")),\n\t\t\titem = items.at(currentIndex - 1)?.querySelector(\":scope > button, :scope > a\");\n\n\t\tif (item && this.selectOnArrow) {\n\t\t\tthis.#SelectItem(item, true);\n\t\t}\n\n\t\titem?.focus();\n\t}\n\n\t#InitializeItemSet(set, list) {\n\t\tlist ??= this.querySelector(\".dropdown__list\");\n\n\t\tif (list) {\n\t\t\tlist.querySelectorAll(\":scope > li:not(.dropdown--static-search)\").forEach(x => x.remove());\n\n\t\t\tconst groups = GroupBy(set, x => x.group != null ? x.group : \"None\"),\n\t\t\t\tkeys = Object.keys(groups).sort(SortCaseInsensitive);\n\n\t\t\tif (keys.find(x => x !== \"None\") != null) {\n\t\t\t\t// Move the ungrouped section to the end\n\t\t\t\tif (keys.includes(\"None\")) { keys.splice(keys.length - 1, 0, ...keys.splice(keys.indexOf(\"None\"), 1)); }\n\n\t\t\t\tfor (const key of keys) {\n\t\t\t\t\tif (key) {\n\t\t\t\t\t\tthis.AddItem(document.createElementWithContents(\"chip-dropdowngroup\", null, { label: key }), list);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (const item of groups[key]) {\n\t\t\t\t\t\tthis.AddItem(item, list);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const item of set) {\n\t\t\t\t\tthis.AddItem(item, list);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.#Reposition(list);\n\t\t}\n\t}\n\n\t#BuildDropdownButton(item) {\n\t\tlet element = document.createElement(\"div\"),\n\t\t\thasDropdown = !!item.querySelector(\"chip-dropdown\");\n\n\t\tif (!item.detached) {\n\t\t\tif (item.link) {\n\t\t\t\telement = document.createElementWithContents(\"a\", null, { href: Browser.ResolveRelativeURL(item.link) });\n\t\t\t} else {\n\t\t\t\telement = !hasDropdown\n\t\t\t\t\t? document.createElementWithContents(\"button\", null, { type: \"button\" })\n\t\t\t\t\t: document.createElementWithContents(\"span\");\n\t\t\t}\n\n\t\t\tif (item.link && item.download) { element.download = item.download; }\n\t\t}\n\n\t\tif (item.disabled) { element.setAttribute(\"disabled\", \"\"); }\n\t\tif (item.target) { element.target = item.target; }\n\t\tif (item.identifier) { element.id = item.identifier; }\n\n\t\telement.appendChild(item);\n\n\t\treturn element;\n\t}\n\n\tAddItem(item, list) {\n\t\tlist ??= this.querySelector(\".dropdown__list\");\n\n\t\tif (list) {\n\t\t\tlet listItem = document.createElement(\"li\");\n\n\t\t\tswitch (item.nodeName) {\n\t\t\t\tcase \"CHIP-DROPDOWNITEM\":\n\t\t\t\t\t{\n\t\t\t\t\t\tlet element = this.#BuildDropdownButton(item);\n\t\t\t\t\t\tlistItem.appendChild(element);\n\n\t\t\t\t\t\tif (!item.detached) {\n\t\t\t\t\t\t\tconst nestedDropdown = element.querySelector(\"chip-dropdown\");\n\n\t\t\t\t\t\t\tif (!this.static && item.getAttribute(\"value\") === this.value) {\n\t\t\t\t\t\t\t\telement.classList.add(\"active\");\n\n\t\t\t\t\t\t\t\tthis.selectedItem = item;\n\t\t\t\t\t\t\t\tthis.selectedText = item.textContent.trim();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\telement.onmouseover = ev => {\n\t\t\t\t\t\t\t\tev.stopPropagation();\n\n\t\t\t\t\t\t\t\t[...element.closest(\"chip-dropdown\").querySelectorAll(\"chip-dropdown.dropdown--open\")].filter(x => !x.contains(element)).forEach(x => x.Close());\n\n\t\t\t\t\t\t\t\tnestedDropdown?.Open();\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!nestedDropdown) {\n\t\t\t\t\t\t\t\telement.onclick = ev => {\n\t\t\t\t\t\t\t\t\tev.stopPropagation();\n\n\t\t\t\t\t\t\t\t\tif (this.static && !ev.target?.closest(\"chip-dropdownitem\")) {\n\t\t\t\t\t\t\t\t\t\telement.querySelector(\"chip-dropdownitem\")?.raiseEvent(\"click\");\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tif (!this.readonly) {\n\t\t\t\t\t\t\t\t\t\tif (this.value === item.getAttribute(\"value\") || !item.hasAttribute(\"value\")) {\n\t\t\t\t\t\t\t\t\t\t\tthis.raiseEvent(\"selectionchange\");\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tthis.value = item.getAttribute(\"value\") ?? \"\";\n\n\t\t\t\t\t\t\t\t\t\telement.closest(\"chip-dropdown:not(chip-dropdownitem>chip-dropdown)\")?.Close();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\tcase \"CHIP-DROPDOWNHEADER\":\n\t\t\t\tcase \"CHIP-DROPDOWNDIVIDER\":\n\t\t\t\t\tlistItem.appendChild(item);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"CHIP-DROPDOWNGROUP\":\n\t\t\t\t\tlistItem.classList.add(\"dropdown__group-header\");\n\t\t\t\t\tlistItem.appendChild(item);\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tlist.appendChild(listItem);\n\t\t}\n\t}\n\n\tasync #ResetInitialSearch(showPrompt, list) {\n\t\tlist ??= this.querySelector(\".dropdown__list\");\n\n\t\tif (list) {\n\t\t\tlist.querySelectorAll(\":scope > li:not(.dropdown--static-search)\").forEach(x => x.remove());\n\t\t\tlist.querySelector(\".dropdown--searchable__prompt--initial\")?.remove();\n\n\t\t\tlist.querySelector(\".pv-loading-container\")?.classList.remove(\"d-none\");\n\t\t\tlist.querySelectorAll(\"chip-emptyprompt\").forEach(x => x.classList.add(\"d-none\"));\n\n\t\t\tconst initialResults = this.GetInitialItems ? await this.GetInitialItems() : [];\n\n\t\t\tlist.querySelector(\".pv-loading-container\")?.classList.add(\"d-none\");\n\n\t\t\tif (this.#stopReset) {\n\t\t\t\tthis.#stopReset = false;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (initialResults.length) {\n\t\t\t\tthis.#InitializeItemSet(initialResults, list);\n\n\t\t\t\tif (this.value) {\n\t\t\t\t\tthis.#SelectValue(this.value, true);\n\t\t\t\t}\n\t\t\t} else if (showPrompt) {\n\t\t\t\tlist.querySelector(\".dropdown--searchable__prompt--empty\")?.remove();\n\t\t\t\tthis.#AddNoSearchPrompt(list);\n\t\t\t}\n\t\t}\n\t}\n\n\t#CancelReset() {\n\t\tthis.#stopReset = true;\n\t\tthis.#stopSearch = false;\n\t}\n\n\t#CancelSearch() {\n\t\tthis.#stopSearch = true;\n\t\tthis.#stopReset = false;\n\t}\n\n\tRefreshItems(list) {\n\t\tlist ??= this.querySelector(\".dropdown__list\");\n\n\t\tif (list) {\n\t\t\tthis.#CancelSearch();\n\t\t\tthis.#ResetInitialSearch(true, list);\n\t\t}\n\t}\n\n\t#AddEmptySearchPrompt(list) {\n\t\tlist ??= this.querySelector(\".dropdown__list\");\n\n\t\tlist?.querySelector(\".dropdown--searchable__wrapper\")?.appendChild(document.createElementWithContents(\"chip-emptyprompt\", \"Try adjusting your search and we'll have another look\", {\n\t\t\tsize: \"sm\",\n\t\t\theading: \"No results found\",\n\t\t\ticon: \"fas fa-file-alt\",\n\t\t\tclassName: \"dropdown--searchable__prompt--empty\"\n\t\t}));\n\t}\n\n\t#AddNoSearchPrompt(list) {\n\t\tlist ??= this.querySelector(\".dropdown__list\");\n\n\t\tlist?.querySelector(\".dropdown--searchable__wrapper\")?.appendChild(document.createElementWithContents(\"chip-emptyprompt\", \"Before we can show you anything, try making a search\", {\n\t\t\tsize: \"sm\",\n\t\t\theading: \"Make a search\",\n\t\t\ticon: \"far fa-search\",\n\t\t\tclassName: \"dropdown--searchable__prompt--initial\"\n\t\t}));\n\t}\n\n\tasync Search(value, list) {\n\t\tlist ??= this.querySelector(\".dropdown__list\");\n\n\t\tif (list) {\n\t\t\tlist.querySelectorAll(\":scope > li:not(.dropdown--static-search)\").forEach(x => x.remove());\n\n\t\t\tif (value.trim() !== \"\") {\n\t\t\t\tlist.querySelector(\".dropdown--searchable__prompt--initial\")?.remove();\n\t\t\t\tthis.#CancelReset();\n\n\t\t\t\tlist.querySelector(\".pv-loading-container\")?.classList.remove(\"d-none\");\n\t\t\t\tlist.querySelectorAll(\"chip-emptyprompt\").forEach(x => x.classList.add(\"d-none\"));\n\n\t\t\t\tconst results = this.GetSearchedItems ? await this.GetSearchedItems(value) : [];\n\n\t\t\t\tlist.querySelector(\".pv-loading-container\")?.classList.add(\"d-none\");\n\n\t\t\t\tif (this.#stopSearch) {\n\t\t\t\t\tthis.#stopSearch = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.#InitializeItemSet(results, list);\n\n\t\t\t\tif (this.value && this.#GetItemFromValue(this.value)) {\n\t\t\t\t\tthis.#SelectValue(this.value, true);\n\t\t\t\t}\n\n\t\t\t\tlist.querySelector(\".dropdown--searchable__prompt--empty\")?.remove();\n\n\t\t\t\tif (!results.length) {\n\t\t\t\t\tthis.#ResetInitialSearch(false, list);\n\n\t\t\t\t\tif (list.children.length === 1) {\n\t\t\t\t\t\tthis.#AddEmptySearchPrompt(list);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.#AddNoSearchPrompt(list);\n\t\t\t\tthis.RefreshItems(list);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.addEventListener(\"parsed\", () => {\n\t\t\t\tthis.Search(value, list);\n\t\t\t});\n\t\t}\n\t}\n\n\t#BuildSearchableDropdown(list) {\n\t\tlet timeout;\n\n\t\tlist.prepend(document.createElementWithContents(\"li\",\n\t\t\t`\n\t\t\t\t
\n\t\t\t\t\t\n\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t`.trim(), { className: \"dropdown--static-search\" }));\n\n\t\tthis.#ResetInitialSearch(true, list);\n\n\t\tconst input = list.querySelector(\"chip-input\");\n\n\t\tinput.onkeydown = ev => {\n\t\t\tev.stopImmediatePropagation();\n\t\t\tev.stopPropagation();\n\n\t\t\tswitch (ev.key) {\n\t\t\t\tcase \"Enter\":\n\t\t\t\t\tclearTimeout(timeout);\n\n\t\t\t\t\tthis.Search(input.value, list);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"Escape\":\n\t\t\t\t\tthis.Close();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ArrowDown\":\n\t\t\t\t\tthis.ArrowDown(ev);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ArrowUp\":\n\t\t\t\t\tthis.ArrowUp(ev);\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tinput.oninput = () => {\n\t\t\tif (timeout) {\n\t\t\t\tclearTimeout(timeout);\n\t\t\t}\n\n\t\t\ttimeout = setTimeout(() => {\n\t\t\t\tthis.Search(input.value, list);\n\t\t\t}, this.#searchTimeout);\n\t\t}\n\t}\n\n\t#InitDropdownButton() {\n\t\tconst button = this.querySelector(\":scope > div > button\"),\n\t\t\tdropdownButton = this.closest(\"chip-dropdownbutton\");\n\n\t\tbutton.append(...[...dropdownButton.childNodes ?? []].filter(x => !x.matches?.(\"chip-dropdown\")));\n\t\tbutton.classList.add(\"btn--base\", Button.ClassFromVariation(dropdownButton.variation));\n\n\t\tif (dropdownButton.buttonStyle) {\n\t\t\tbutton.classList.add(`btn--${dropdownButton.buttonStyle.toLowerCase()}`);\n\t\t}\n\t}\n\n\t#OnButtonClick(event) {\n\t\tevent.preventDefault();\n\n\t\tconst dropdown = event.target?.closest(\"chip-dropdown\");\n\n\t\tif (dropdown.open || !dropdown.querySelector(\".dropdown__list > *\")) {\n\t\t\tdropdown?.Close();\n\t\t} else {\n\t\t\tdropdown?.Open();\n\t\t}\n\t}\n\n\t#Reposition(list) {\n\t\tlist ??= this.querySelector(\".dropdown__list\");\n\n\t\tif (list?.parentElement) {\n\t\t\tthis.classList.add(\"dropdown--open\");\n\n\t\t\tconst containerDimensions = list.parentElement.getBoundingClientRect(),\n\t\t\t\tparent = getScrollParent(list);\n\n\t\t\tconst comparatorDimensions = document.body !== parent ? parent.getBoundingClientRect() : {\n\t\t\t\tbottom: window.innerHeight,\n\t\t\t\tright: window.innerWidth,\n\t\t\t\ttop: 0,\n\t\t\t\tleft: 0\n\t\t\t},\n\t\t\t\t{ height, top, width, left } = list.getBoundingClientRect();\n\n\t\t\tif (height + top > comparatorDimensions.bottom && comparatorDimensions.top <= containerDimensions.top - height - containerDimensions.height) {\n\t\t\t\tlist.style.top = `calc(-${height}px - ((var(--dropdown-spacing) * 2) + var(--input-border-width)))`;\n\t\t\t}\n\n\t\t\tif (width + left > comparatorDimensions.right) {\n\t\t\t\tlist.style.left = `-${width - containerDimensions.width}px`;\n\t\t\t}\n\n\t\t\tconst newLeft = list.getBoundingClientRect().left;\n\n\t\t\tif (!this.open) {\n\t\t\t\tthis.classList.remove(\"dropdown--open\");\n\t\t\t}\n\n\t\t\tif (newLeft < comparatorDimensions.left) {\n\t\t\t\tlist.style.left = `${parseInt(window.getComputedStyle(list).left) + (Math.abs(newLeft - comparatorDimensions.left))}px`;\n\t\t\t}\n\t\t}\n\t}\n\n\tOpen() {\n\t\tthis.#Reposition();\n\t\tthis.classList.add(\"dropdown--open\");\n\n\t\tthis.querySelector(\".dropdown__list chip-input\")?.select();\n\t\tthis.raiseEvent(\"opened\");\n\n\t\tthis.open = true;\n\t}\n\n\tClose() {\n\t\tconst list = this.querySelector(\".dropdown__list\");\n\n\t\tif (list) {\n\t\t\tthis.removeClass(\"dropdown--open\");\n\t\t\tlist.removeAttribute(\"style\");\n\t\t}\n\n\t\tthis.open = false;\n\t}\n\n\t#SelectItem(item, preventClose) {\n\t\tconst isIconPicker = !!this.closest(\"chip-iconpicker\"),\n\t\t\tbutton = this.querySelector(\":scope > div > button > span\");\n\n\t\tif (item) {\n\t\t\tthis.#preventClose = preventClose;\n\n\t\t\tconst valueChanged = this.#previousValue?.toString() !== item.firstElementChild?.value?.toString() && this.selectedItem !== item.firstElementChild;\n\n\t\t\tthis.selectedItem = item.firstElementChild;\n\t\t\tthis.selectedText = item.textContent.trim();\n\n\t\t\tthis.value = item.firstElementChild?.value?.toString();\n\n\t\t\tif (this.hiddenId || this.hiddenName) {\n\t\t\t\tthis.querySelector(\"input[type='hidden']\").value = this.value;\n\t\t\t}\n\n\t\t\tif (!isIconPicker && !this.static && button) {\n\t\t\t\tconst dropdownItem = item.querySelector(\":scope > chip-dropdownitem\");\n\n\t\t\t\tif (dropdownItem?.childNodes.length) {\n\t\t\t\t\tbutton.innerHTML = \"\";\n\n\t\t\t\t\tbutton.append(...[...dropdownItem.childNodes].filter(x => !x.matches?.(\".dropdown-item__helper-text, .dropdown-item__suffix-icon\")).map(x => x.cloneNode()));\n\t\t\t\t} else {\n\t\t\t\t\tbutton.innerHTML = this.default;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!this.static || isIconPicker) {\n\t\t\t\tthis.querySelector(\".active\")?.removeClass(\"active\");\n\t\t\t\titem.classList.add(\"active\");\n\t\t\t}\n\n\t\t\tthis.raiseEvent(\"selectionchange\");\n\t\t\tif (!preventClose) { this.Close(); }\n\t\t\tif (valueChanged) { this.raiseEvent(\"change\"); }\n\t\t} else if (!isIconPicker && !this.static && button) {\n\t\t\tbutton.textContent = this.default;\n\t\t}\n\n\t\tif (this.#invalid) {\n\t\t\tthis.reportValidity();\n\t\t\tthis.closest(\"chip-form\")?.checkValidity();\n\t\t}\n\t}\n\n\tattributeChanged(name, oldValue, newValue) {\n\t\tswitch (name) {\n\t\t\tcase \"value\":\n\t\t\t\tthis.#previousValue = oldValue;\n\n\t\t\t\tthis.#SelectValue(newValue, this.#preventClose);\n\t\t\t\tthis.#preventClose = false;\n\t\t\t\tbreak;\n\t\t\tcase \"label\":\n\t\t\t\t{\n\t\t\t\t\tconst label = this.querySelector(\".input-field__label\");\n\n\t\t\t\t\tif (label) {\n\t\t\t\t\t\tlabel.textContent = newValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"static\":\n\t\t\t\t{\n\t\t\t\t\tconst container = this.querySelector(\"div\");\n\n\t\t\t\t\tif (!this.IsAttributeValueTrue(newValue)) {\n\t\t\t\t\t\tcontainer.classList.remove(\"dropdown__static\");\n\t\t\t\t\t\tcontainer.classList.add(\"input-field\");\n\n\t\t\t\t\t\tif (!this.querySelector(\":scope > div > button > span\")) {\n\t\t\t\t\t\t\tthis.querySelector(\":scope > div > button\")?.appendChild(document.createElementWithContents(\"span\", \" \"));\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontainer.classList.add(\"dropdown__static\");\n\t\t\t\t\t\tcontainer.classList.remove(\"input-field\");\n\n\t\t\t\t\t\tthis.querySelector(\":scope > div > button > span\")?.remove();\n\n\t\t\t\t\t\tthis.querySelectorAll(\".active\").forEach(x => x.removeClass(\"active\"));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"description\":\n\t\t\t\t{\n\t\t\t\t\tconst button = this.querySelector(\":scope > div > button\");\n\n\t\t\t\t\tif (button && !button.textContent?.trim() && !document.querySelector(`[for='${button.id}']`)) {\n\t\t\t\t\t\tbutton.ariaLabel = newValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"icon-colour\":\n\t\t\t\tif (!newValue) {\n\t\t\t\t\tthis.querySelector(\".input-field > button > chip-icon\").removeAttribute(\"style\");\n\t\t\t\t} else {\n\t\t\t\t\tthis.querySelector(\".input-field > button > chip-icon\").style.color = newValue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"text\":\n\t\t\t\tthis.querySelector(\":scope > div > button > span\").textContent = newValue;\n\t\t\t\tbreak;\n\t\t\tcase \"size\":\n\t\t\t\t{\n\t\t\t\t\tconst button = this.querySelector(\":scope > div > button\");\n\n\t\t\t\t\tbutton?.classList.remove(`btn--${this.size?.toLowerCase()}`);\n\t\t\t\t\tbutton?.classList.add(`btn--${newValue.toLowerCase()}`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"icon\": {\n\t\t\t\tconst icon = this.querySelector(\":scope > div > button > chip-icon\");\n\n\t\t\t\tif (icon) {\n\t\t\t\t\ticon.icon = newValue;\n\t\t\t\t} else {\n\t\t\t\t\tthis.querySelector(\":scope > div > button\")?.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: newValue }));\n\t\t\t\t}\n\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"suffix-icon\": {\n\t\t\t\tconst icon = this.querySelector(\":scope > div > button > chip-icon:last-child:not(:first-child)\");\n\n\t\t\t\tif (icon) {\n\t\t\t\t\ticon.icon = newValue;\n\t\t\t\t} else {\n\t\t\t\t\tthis.querySelector(\":scope > div > button\")?.appendChild(document.createElementWithContents(\"chip-icon\", null, { icon: newValue }));\n\t\t\t\t}\n\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tcheckValidity() {\n\t\tif (this.required && [\"\", undefined, null].includes(this.value)) {\n\t\t\tthis.validationMessage = Localizer.DROPDOWN_REQUIRED;\n\t\t\treturn false;\n\t\t} else {\n\t\t\treturn true;\n\t\t}\n\t}\n\n\tsetInvalid(message) {\n\t\tconst msgElement = document.createElementWithContents(\"div\", message, { className: \"input-field__validation-error\" });\n\t\tthis.querySelector(\".input-field\")?.classList.add(\"input-field__invalid\");\n\n\t\tif (Browser.GetFlavour() === \"gov\") {\n\t\t\tthis.querySelector(\":scope > div\").insertAdjacentElement(\"beforebegin\", msgElement);\n\t\t} else {\n\t\t\tthis.appendChild(msgElement);\n\t\t}\n\t}\n\n\treportValidity() {\n\t\tconst valid = this.checkValidity();\n\n\t\tthis.querySelector(\".input-field__validation-error\")?.remove();\n\t\tthis.querySelector(\".input-field\")?.classList.remove(\"input-field__invalid\");\n\n\t\tif (!valid) {\n\t\t\tthis.setInvalid(this.validationMessage);\n\t\t}\n\n\t\tthis.#invalid = !valid;\n\n\t\treturn valid;\n\t}\n\n\t#GetItemFromValue(value) {\n\t\tvalue ??= \"\";\n\n\t\treturn this.querySelector(`chip-dropdownitem[value='${value}']`)\n\t\t\t?? [...this.querySelectorAll(\"chip-dropdownitem\")].find(x => x.value?.toString() === value.toString() || x.getAttribute(\"value\")?.toString() === value?.toString());\n\t}\n\n\tSelectText(text) {\n\t\tconst target = [...this.querySelectorAll(\"chip-dropdownitem\")].find(x => x.textContent?.trim() === text.trim());\n\n\t\tif (target) {\n\t\t\tthis.#SelectValue(target.value ?? target.getAttribute(\"value\"));\n\t\t}\n\t}\n\n\t#SelectValue(value, preventClose) {\n\t\tconst target = this.#GetItemFromValue(value);\n\n\t\tif (target) {\n\t\t\tthis.#SelectItem(target.closest(\"button, a\"), preventClose);\n\t\t} else if (!this.static && this.default) {\n\t\t\tthis.querySelector(\":scope > div > button > span\").textContent = this.default;\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class DropdownItem extends AuxiliumComponent {\n\tstatic observedAttributes = [\"value\", \"disabled\", \"link\", \"group\", \"suffix-icon\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.value = this.getAttribute(\"value\");\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? \"\";\n\t\tthis.link = this.getAttribute(\"link\") ?? \"\";\n\t\tthis.target = this.getAttribute(\"target\");\n\t\tthis.group = this.getAttribute(\"group\");\n\t\tthis.detached = this.hasAttribute(\"detached\");\n\t\tthis.download = this.getAttribute(\"download\");\n\t\tthis.helperText = this.getAttribute(\"helper-text\") ?? \"\";\n\t\tthis.suffixIcon = this.getAttribute(\"suffix-icon\") ?? \"\";\n\t}\n\n\tparsedCallback() {\n\t\tif (this.icon) { this.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: this.icon })); }\n\t\tif (this.helperText) { this.appendChild(document.createElementWithContents(\"span\", this.helperText, { className: \"dropdown-item__helper-text\" })); }\n\t\tif (this.suffixIcon) { this.appendChild(document.createElementWithContents(\"chip-icon\", null, { icon: this.suffixIcon, className: \"dropdown-item__suffix-icon\" })); }\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tswitch (name) {\n\t\t\tcase \"disabled\":\n\t\t\t\tif (!this.IsAttributeValueTrue(newValue)) {\n\t\t\t\t\tthis.parentElement.removeAttribute(\"disabled\");\n\t\t\t\t} else {\n\t\t\t\t\tthis.parentElement.setAttribute(\"disabled\", \"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"link\":\n\t\t\t\tif (this.parentElement.nodeName === \"A\") {\n\t\t\t\t\tthis.parentElement.href = newValue;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"suffix-icon\":\n\t\t\t\tthis.querySelector(\":scope > .dropdown-item__suffix-icon\")?.remove();\n\n\t\t\t\tif (newValue) {\n\t\t\t\t\tthis.appendChild(document.createElementWithContents(\"chip-icon\", null, { icon: newValue, className: \"dropdown-item__suffix-icon\" }));\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class DropdownDivider extends AuxiliumComponent {\n\tparsedCallback() {\n\t\tthis.appendChild(document.createElementWithContents(\"hr\", null, { className: \"dropdown__divider\" }));\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class DropdownGroup extends AuxiliumComponent {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.label = this.getAttribute(\"label\") ?? \"\";\n\t\tthis.size = this.getAttribute(\"size\") ?? \"5\";\n\t}\n\n\tparsedCallback() {\n\t\tthis.appendChild(document.createElementWithContents(\"chip-header\", this.label, { size: this.size }));\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class DropdownHeader extends AuxiliumComponent {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.size = this.getAttribute(\"size\") ?? \"5\";\n\t}\n\n\tparsedCallback() {\n\t\tthis.appendChild(document.createElementWithContents(\"chip-header\", this.childNodes, { size: this.size }));\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Callout extends AuxiliumComponent {\n\tstatic observedAttributes = [\"heading\", \"variation\", \"hide-icon\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.variation ??= this.getAttribute(\"variation\") ?? \"info\";\n\t\tthis.heading ??= this.getAttribute(\"heading\") ?? \"\";\n\t\tthis.hideIcon = this.hasAttribute(\"hide-icon\");\n\t}\n\n\tparsedCallback() {\n\t\tif (this.innerHTML?.trim() === \"\") { this.classList.add(\"callout--header-only\"); }\n\t\telse {\n\t\t\tthis.appendChild(document.createElementWithContents(\"div\", this.childNodes, { className: \"callout-body\" }));\n\t\t}\n\n\t\tif (this.heading) {\n\t\t\tthis.prepend(document.createElementWithContents(\"div\", this.heading, { className: \"callout__header\" }));\n\t\t}\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tif (name === \"heading\") {\n\t\t\tconst existing = this.querySelector(\".callout__header\");\n\n\t\t\tif (existing) {\n\t\t\t\texisting.innerHTML = newValue;\n\t\t\t} else {\n\t\t\t\tthis.prepend(document.createElementWithContents(\"div\", newValue, { className: \"callout__header\" }));\n\t\t\t}\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class SortableList extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.ordered = this.hasAttribute(\"ordered\");\r\n\t\tthis.listClass = this.getAttribute(\"list-class\") ?? \"\";\r\n\t\tthis.listItemClass = this.getAttribute(\"listitem-class\") ?? \"\";\r\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? \"\";\r\n\t\tthis.listStyle = this.getAttribute(\"list-style\");\r\n\r\n\t\tthis.Options = {\r\n\t\t\tAnimation: {\r\n\t\t\t\tSpeed: 200,\r\n\t\t\t\tEasing: \"ease-out\"\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tthis.classList.add(\"sortable-list__wrapper\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst list = document.createElementWithContents(this.ordered ? \"ol\" : \"ul\", \"\", {\r\n\t\t\tclassName: this.listClass,\r\n\t\t\tontouchstart: ev => this.#DragStart(ev),\r\n\t\t\tonmousedown: ev => this.#DragStart(ev)\r\n\t\t});\r\n\r\n\t\tif (this.identifier) { list.id = this.identifier; }\r\n\t\tif (this.listStyle) { list.classList.add(`list-${this.listStyle}`); }\r\n\r\n\t\tlist.classList.add(\"sortable-list\");\r\n\r\n\t\tfor (const item of this.querySelectorAll(\":scope > chip-sortablelistitem\")) {\r\n\t\t\tthis.AddItem(item, list);\r\n\t\t}\r\n\r\n\t\tthis.appendChild(list);\r\n\t}\r\n\r\n\tAddItem(item, list) {\r\n\t\tconst listItem = document.createElementWithContents(\"li\", item),\r\n\t\t\titemID = item.getAttribute(\"identifier\");\r\n\r\n\t\tif (itemID) { listItem.id = itemID; }\r\n\t\tif (this.listItemClass) { listItem.classList.add(this.listItemClass); }\r\n\r\n\t\t(list ?? this.querySelector(\"ul,ol\")).appendChild(listItem);\r\n\t}\r\n\r\n\t#DragStart(event) {\r\n\t\tif (this.Animation) { return; }\r\n\t\tif (event.type == \"mousedown\" && event.which !== 1) { return; }\r\n\t\tif (event.type === \"touchstart\" && e.touches.length > 1) { return; }\r\n\r\n\t\tconst Hierarchy = {\r\n\t\t\tHandle: event.target.closest(\".sortable-handle\"),\r\n\t\t\tListItem: event.target.closest(\".sortable-list > li\"),\r\n\t\t\tList: this.querySelector(\"ul,ol\"),\r\n\t\t\tItems: [...this.querySelectorAll(\":scope > * > li\")]\r\n\t\t};\r\n\r\n\t\tif (!Hierarchy.Handle || !Hierarchy.ListItem) { return; }\r\n\r\n\t\tthis.CurrentDraggable = Hierarchy.ListItem;\r\n\r\n\t\tHierarchy.List.style.height = `${Hierarchy.List.offsetHeight}px`;\r\n\t\tHierarchy.ListItem.classList.add(\"is-dragging\");\r\n\r\n\t\tdocument.body.style.cursor = \"grabbing\";\r\n\r\n\t\tObject.assign(this, {\r\n\t\t\tItemHeight: parseFloat(window.getComputedStyle(this.CurrentDraggable).height),\r\n\t\t\tListHeight: Hierarchy.List.offsetHeight,\r\n\t\t\tStartTouchY: this.#GetDragY(event),\r\n\t\t\tStartTop: Hierarchy.ListItem.offsetTop\r\n\t\t});\r\n\r\n\t\tHierarchy.Items.forEach((item, index) => {\r\n\t\t\tObject.assign(item.style, {\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\ttop: \"-1px\",\r\n\t\t\t\tleft: `${parseFloat(window.getComputedStyle(Hierarchy.List).paddingInlineStart)}px`,\r\n\t\t\t\twidth: \"100%\",\r\n\t\t\t\ttransform: `translateY(${index === 0 ? 0 : Array(Math.max(0, index - 1) - 0 + 1).fill().map((_, idx) => 0 + idx).map(x => parseFloat(window.getComputedStyle(Hierarchy.Items[x]).height)).reduce((x, y) => x + y, 0)}px)`,\r\n\t\t\t\tzIndex: item === Hierarchy.ListItem ? 2 : 1\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tHierarchy.Items.forEach((x) => {\r\n\t\t\t\tx.style.transition = `transform ${this.Options.Animation.Speed}ms ${this.Options.Animation.Easing}`;\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tObject.assign(this, {\r\n\t\t\tPositions: Hierarchy.Items.map((_, i) => i),\r\n\t\t\tPosition: Math.round(this.StartTop / this.ListHeight * Hierarchy.Items.length),\r\n\t\t\tTouch: event.type === \"touchstart\"\r\n\t\t});\r\n\r\n\t\tif (this.Touch) {\r\n\t\t\tObject.assign(window, {\r\n\t\t\t\tontouchmove: ev => this.#DragMove(ev),\r\n\t\t\t\tontouchend: ev => this.#DragEnd(ev)\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tObject.assign(window, {\r\n\t\t\t\tonmousemove: ev => this.#DragMove(ev),\r\n\t\t\t\tonmouseup: ev => this.#DragEnd(ev)\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t#SwapElements(array, a, b) {\r\n\t\tconst temp = array[a];\r\n\r\n\t\tarray[a] = array[b];\r\n\t\tarray[b] = temp;\r\n\t}\r\n\r\n\t#GetDragY(event) { return event.touches ? (event.touches[0] || event.changedTouches[0]).pageY : event.pageY; }\r\n\r\n\t#DragMove(event) {\r\n\t\tif (this.Animation) { return; }\r\n\r\n\t\tconst items = this.querySelectorAll(\":scope > * > li\");\r\n\r\n\t\tconst top = this.StartTop + this.#GetDragY(event) - this.StartTouchY,\r\n\t\t\tnewPosition = Math.round((top / this.ListHeight) * items.length);\r\n\r\n\t\tthis.CurrentDraggable.style.transform = `translateY(${top}px)`;\r\n\r\n\t\tthis.Positions.forEach(index => {\r\n\t\t\tif (index === this.Position || index !== newPosition) { return; } // Can't replace with .filter because of the index\r\n\r\n\t\t\tthis.#SwapElements(this.Positions, this.Position, index);\r\n\t\t\tthis.Position = index;\r\n\t\t});\r\n\r\n\t\titems.forEach((item, index) => {\r\n\t\t\tif (item === this.Item) { return; } // Can't replace with .filter because of the index\r\n\r\n\t\t\titem.style.transform = `translateY(${this.Positions.indexOf(index) * this.ItemHeight}px)`;\r\n\t\t});\r\n\r\n\t\tevent.preventDefault();\r\n\r\n\t\tevent.target.closest(\"chip-sortablelistitem\")?.raiseEvent(\"drag\");\r\n\t}\r\n\r\n\t#DragEnd(event) {\r\n\t\tthis.Animation = true;\r\n\t\tdocument.body.style.removeProperty(\"cursor\");\r\n\r\n\t\tconst list = this.querySelector(\"ul,ol\"),\r\n\t\t\titems = list.querySelectorAll(\":scope > li\");\r\n\r\n\t\tObject.assign(this.CurrentDraggable.style, {\r\n\t\t\ttransition: `all ${this.Options.Animation.Speed}ms ${this.Options.Animation.Easing}`,\r\n\t\t\ttransform: `translateY(${this.Position * this.ItemHeight}px)`\r\n\t\t});\r\n\r\n\t\tthis.CurrentDraggable.removeClass(\"is-dragging\");\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tObject.assign(list.style, {\r\n\t\t\t\tposition: \"\",\r\n\t\t\t\theight: \"\"\r\n\t\t\t});\r\n\r\n\t\t\tif (list.style.cssText.trim() === \"\") {\r\n\t\t\t\tlist.removeAttribute(\"style\");\r\n\t\t\t}\r\n\r\n\t\t\titems.forEach(item => {\r\n\t\t\t\tObject.assign(item.style, {\r\n\t\t\t\t\ttop: \"\",\r\n\t\t\t\t\tleft: \"\",\r\n\t\t\t\t\tright: \"\",\r\n\t\t\t\t\tposition: \"\",\r\n\t\t\t\t\ttransform: \"\",\r\n\t\t\t\t\ttransition: \"\",\r\n\t\t\t\t\twidth: \"\",\r\n\t\t\t\t\tzIndex: \"\"\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (item.style.cssText.trim() === \"\") {\r\n\t\t\t\t\titem.removeAttribute(\"style\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tthis.Positions.forEach(i => list.appendChild(items[i]));\r\n\r\n\t\t\tthis.Animation = false;\r\n\r\n\t\t\tevent.target.closest(\"chip-sortablelistitem\")?.raiseEvent(\"dragend\");\r\n\t\t}, this.Options.Animation.Speed);\r\n\r\n\t\tObject.assign(window, {\r\n\t\t\tontouchmove: null,\r\n\t\t\tontouchend: null,\r\n\t\t\tonmousemove: null,\r\n\t\t\tonmouseup: null\r\n\t\t});\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class SortableListItem extends AuxiliumComponent {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? \"\";\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Tree extends AuxiliumComponent {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? \"\";\n\t\tthis.description = this.getAttribute(\"description\") ?? \"Tree view\";\n\t}\n\n\tparsedCallback() {\n\t\tthis.classList.add(\"tree__wrapper\");\n\n\t\tconst list = document.createElementWithContents(\"ul\", null, {\n\t\t\tclassName: \"tree\",\n\t\t\trole: this.closest(\"chip-treeitem\") ? \"group\" : \"tree\",\n\t\t\tariaLabel: this.description\n\t\t});\n\n\t\tif (this.identifier) {\n\t\t\tlist.id = this.identifier;\n\t\t}\n\n\t\tfor (const item of [...this.children ?? []].filter(x => x.nodeName === \"CHIP-TREEITEM\")) {\n\t\t\tthis.AddItem(item, list);\n\t\t}\n\n\t\tthis.appendChild(list);\n\t}\n\n\tAddItem(item, list) {\n\t\tlist ??= this.querySelector(\":scope > ul\");\n\n\t\tif (list) {\n\t\t\tconst listItem = document.createElementWithContents(\"li\", item, {\n\t\t\t\tclassName: \"tree-item\",\n\t\t\t\trole: \"treeitem\",\n\t\t\t\ttabIndex: 0\n\t\t\t}), itemID = item.getAttribute(\"identifier\") ?? \"\";\n\n\t\t\tif (itemID) {\n\t\t\t\tlistItem.id = itemID;\n\t\t\t}\n\n\t\t\tlist.appendChild(listItem);\n\t\t} else {\n\t\t\tthis.appendChild(item);\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class TreeItem extends AuxiliumComponent {\n\tstatic observedAttributes = [\"icon-colour\", \"allow-open\"];\n\n\t#referenceItem = null;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.identifier = this.getAttribute(\"identifier\");\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\n\t\tthis.iconColour = this.getAttribute(\"icon-colour\") ?? \"\";\n\t\tthis.open = this.hasAttribute(\"open\");\n\t\tthis.link = this.getAttribute(\"link\") ?? \"\";\n\t\tthis.allowOpen = this.hasAttribute(\"allow-open\");\n\t\tthis.default = this.getAttribute(\"default\") ?? \"\";\n\t}\n\n\t#PlaceButton() {\n\t\tif (this.querySelector(\".tree__toggle\")) { return; }\n\n\t\tconst actualContent = [...this.childNodes ?? []].filter(x => !x.matches?.(\"chip-tree, chip-treeitem, chip-actionbar\")),\n\t\t\tbuttonContent = this.arrowCollapse ? [] : actualContent;\n\n\t\tconst button = document.createElementWithContents(\"chip-button\", buttonContent.find(x => x.textContent.trim()) || this.arrowCollapse ? buttonContent : document.createElementWithContents(\"span\", this.default, { className: \"text-faded\" }), {\n\t\t\tvariation: \"none\",\n\t\t\tclassName: \"tree__toggle\",\n\t\t\tdescription: \"Toggle tree item\",\n\t\t\tlink: this.link\n\t\t});\n\n\t\tif (this.arrowCollapse) {\n\t\t\tObject.assign(button, {\n\t\t\t\tbuttonStyle: \"icon\",\n\t\t\t\ticon: \"fas fa-chevron-right\"\n\t\t\t});\n\n\t\t\tif (!actualContent.find(x => x.innerText?.trim() || x.textContent.trim()) && this.default) {\n\t\t\t\tthis.prepend(document.createElementWithContents(\"span\", this.default, { className: \"text-faded\" }));\n\t\t\t}\n\t\t}\n\n\t\tif (this.icon) {\n\t\t\tif (this.arrowCollapse) {\n\t\t\t\tconst newIcon = document.createElementWithContents(\"chip-icon\", null, { icon: this.icon });\n\t\t\t\tnewIcon.classList.add(\"tree-item__icon\");\n\n\t\t\t\tif (this.iconColour) {\n\t\t\t\t\tnewIcon.dataset.colour = this.iconColour;\n\t\t\t\t\tnewIcon.classList.add(\"text-theme\");\n\t\t\t\t}\n\n\t\t\t\tthis.prepend(newIcon);\n\t\t\t} else {\n\t\t\t\tbutton.icon = this.icon;\n\n\t\t\t\tif (this.iconColour) { button.iconColour = this.iconColour; }\n\t\t\t}\n\t\t}\n\n\t\tthis.#referenceItem.ariaExpanded = this.open.toString();\n\n\t\tbutton.onclick = () => this.#UpdateOpenState();\n\n\t\tif (!this.arrowCollapse || this.querySelector(\"chip-tree, chip-treeitem\")) {\n\t\t\tthis.prepend(button);\n\t\t}\n\t}\n\n\tparsedCallback() {\n\t\tthis.arrowCollapse = !!this.closest(\"chip-tree[arrow-collapse]\");\n\n\t\tif (!this.allowOpen) {\n\t\t\tthis.allowOpen = !!this.querySelector(\"chip-tree\");\n\t\t}\n\n\t\tthis.#referenceItem = this.closest(\"[role='treeitem']\");\n\n\t\tif (this.allowOpen || this.link || !!this.querySelector(\"chip-tree\")) {\n\t\t\tthis.#PlaceButton();\n\t\t} else {\n\t\t\tif (!this.textContent?.trim()) { this.prepend(document.createElementWithContents(\"span\", this.default, { className: \"text-faded\" })); }\n\n\t\t\tif (this.icon) {\n\t\t\t\tconst icon = document.createElementWithContents(\"chip-icon\", null, { icon: this.icon });\n\n\t\t\t\tif (this.iconColour) {\n\t\t\t\t\ticon.dataset.colour = this.iconColour;\n\t\t\t\t}\n\n\t\t\t\tthis.prepend(icon);\n\t\t\t}\n\t\t}\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tif (name === \"allow-open\" && this.IsAttributeValueTrue(newValue) && !this.querySelector(\".tree__toggle\")) {\n\t\t\tthis.querySelector(\":scope > i\")?.remove();\n\n\t\t\tthis.#PlaceButton();\n\t\t}\n\t}\n\n\tAddItem(item) {\n\t\tconst tree = this.querySelector(\":scope > chip-tree\");\n\n\t\tif (tree) {\n\t\t\ttree.AddItem(item);\n\t\t} else {\n\t\t\tthis.appendChild(document.createElementWithContents(\"chip-tree\", item));\n\t\t}\n\t}\n\n\t#UpdateOpenState() {\n\t\tif (this.#referenceItem.ariaExpanded !== \"true\") {\n\t\t\tthis.raiseEvent(\"open\");\n\t\t}\n\n\t\tthis.#referenceItem.ariaExpanded = this.#referenceItem.ariaExpanded === \"false\";\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class MenuItem extends AuxiliumComponent {\n\tstatic observedAttributes = [\"suffix-icon\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\n\t\tthis.link = this.getAttribute(\"link\") ?? \"\";\n\t\tthis.detached = this.hasAttribute(\"detached\");\n\t\tthis.target = this.getAttribute(\"target\");\n\t\tthis.keepOpen = this.hasAttribute(\"keep-open\");\n\t\tthis.suffixIcon = this.getAttribute(\"suffix-icon\") ?? \"\";\n\t}\n\n\tparsedCallback() {\n\t\tif (this.querySelector(\"chip-menuitem, chip-menudivider\")) {\n\t\t\tthis.appendChild(document.createElementWithContents(\"chip-contextmenu\", [...this.children].filter(x => x.matches?.(\"chip-menuitem, chip-menudivider\"))));\n\t\t}\n\n\t\tthis.onmouseover = ev => {\n\t\t\tev.stopPropagation();\n\t\t\tthis.#HandleMouseOver(ev);\n\t\t}\n\n\t\tlet elementName = this.link ? \"a\" : \"button\";\n\t\tif (this.detached) { elementName = \"span\"; }\n\n\t\tconst button = document.createElementWithContents(elementName, [...this.childNodes].filter(x => !x.matches?.(\"chip-contextmenu\")), {\n\t\t\tclassName: \"context-menu-item-btn\"\n\t\t});\n\n\t\tif (this.link) {\n\t\t\tbutton.href = Browser.ResolveRelativeURL(this.link);\n\n\t\t\tif (this.target) {\n\t\t\t\tbutton.target = this.target;\n\t\t\t}\n\t\t} else if (!this.detached) {\n\t\t\tbutton.type = \"button\";\n\t\t}\n\n\t\tif (this.icon) {\n\t\t\tbutton.prepend(document.createElementWithContents(\"chip-icon\", null, {\n\t\t\t\tclassName: this.icon\n\t\t\t}));\n\t\t}\n\n\t\tif (this.suffixIcon) { button.appendChild(document.createElementWithContents(\"chip-icon\", null, { icon: this.suffixIcon, className: \"menu-item__suffix-icon\" })); }\n\n\t\tthis.removeEventListener(\"click\", this.#HandleClick);\n\t\tthis.addEventListener(\"click\", this.#HandleClick);\n\n\t\tthis.prepend(button);\n\t}\n\n\t#HandleClick() {\n\t\tif (!this.keepOpen && !this.closest(\"li\")?.classList.contains(\"context-sub-menu-item\")) {\n\t\t\tthis.closest(\"chip-contextmenu\")?.Close();\n\t\t}\n\t}\n\n\t#HandleMouseOver(ev) {\n\t\tif (ev.target?.nodeName === \"UL\" || ev.target?.closest(\"chip-menudivider\")) { return; }\n\n\t\tconst menu = this.querySelector(\"ul\"),\n\t\t\tsubItem = this.closest(\".context-sub-menu-item\") ?? this;\n\n\t\t[...this.closest(\"ul\").querySelectorAll(\".context-sub-menu-item.show\")].filter(x => !x.contains(subItem)).forEach(x => x.classList.remove(\"show\"));\n\n\t\tif (menu && subItem && window.getComputedStyle(menu).opacity === \"0\") {\n\t\t\tObject.assign(menu.style, {\n\t\t\t\ttop: \"calc(var(--block-size-sm) * -1)\",\n\t\t\t\tleft: \"99%\"\n\t\t\t});\n\n\t\t\tconst { width, right, bottom } = menu.getBoundingClientRect();\n\n\t\t\t//The +15 here is because we animate a translation of 15px when showing a menu\n\t\t\tconst heightDiff = bottom - (document.body.clientHeight - 5 + 15);\n\t\t\tmenu.style.top = heightDiff > 0 ? `-${heightDiff}px` : \"calc(var(--block-size-sm) * -1)\";\n\n\t\t\tif (right - (document.body.clientWidth - 5 + 15) > 0) {\n\t\t\t\tmenu.style.left = `-${width}px`;\n\t\t\t}\n\n\t\t\tsubItem.classList.add(\"show\");\n\t\t}\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tif (name === \"suffix-icon\") {\n\t\t\tthis.querySelector(\":scope > *> .menu-item__suffix-icon\")?.remove();\n\n\t\t\tif (newValue) {\n\t\t\t\tthis.firstElementChild.appendChild(document.createElementWithContents(\"chip-icon\", null, { icon: newValue, className: \"menu-item__suffix-icon\" }));\n\t\t\t}\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class MenuDivider extends AuxiliumComponent {\n\tparsedCallback() {\n\t\tthis.appendChild(document.createElement(\"hr\"));\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Accordion extends AuxiliumComponent {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.multiple = this.hasAttribute(\"multiple\");\n\n\t\tthis.classList.add(\"accordion__container\");\n\t}\n\n\tparsedCallback() {\n\t\tif (this.multiple && Browser.GetFlavour() === \"gov\") {\n\t\t\tthis.prepend(document.createElementWithContents(\"chip-button\", \"Show all sections\", {\n\t\t\t\tvariation: \"none\",\n\t\t\t\tclassName: \"accordion--gov-toggle-all\",\n\t\t\t\ticon: \"fas fa-chevron-circle-down\",\n\t\t\t\tonclick: () => {\n\t\t\t\t\tconst open = !!this.querySelector(\":scope > chip-accordionitem:not([open])\");\n\n\t\t\t\t\tthis.querySelectorAll(\":scope > chip-accordionitem\").forEach(x => open ? x.Open() : x.Close());\n\t\t\t\t}\n\t\t\t}));\n\t\t}\n\t}\n\n\tUpdateState() {\n\t\tconst btn = this.querySelector(\".accordion--gov-toggle-all span\");\n\n\t\tif (btn) {\n\t\t\tbtn.textContent = this.querySelector(\":scope > chip-accordionitem:not([open])\") ? \"Show all sections\" : \"Hide all sections\";\n\t\t}\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class AccordionItem extends AuxiliumComponent {\n\tstatic observedAttributes = [\"open\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.heading = this.getAttribute(\"heading\") ?? \"\";\n\t\tthis.open = this.hasAttribute(\"open\");\n\t}\n\n\tparsedCallback() {\n\t\tthis.appendChild(document.createElementWithContents(\"div\", this.childNodes, {\n\t\t\tclassName: \"accordion__content\"\n\t\t}));\n\n\t\tconst button = document.createElementWithContents(\"button\", document.createElementWithContents(\"span\", this.heading), {\n\t\t\tclassName: \"btn--base btn-accordion-toggle\",\n\t\t\ttype: \"button\",\n\t\t\tariaExpanded: this.open,\n\t\t\tonclick: () => this.open = !this.open\n\t\t}), toggleIcon = document.createElementWithContents(\"chip-icon\", null, {\n\t\t\tclassName: \"accordion__icon\",\n\t\t\ticon: \"fas fa-chevron-down\"\n\t\t});\n\n\t\tif (Browser.GetFlavour() === \"gov\") {\n\t\t\tbutton.appendChild(document.createElementWithContents(\"div\", \" Show\", {\n\t\t\t\tclassName: \"accordion--gov-toggle\"\n\t\t\t}));\n\t\t}\n\n\t\tbutton.prepend(toggleIcon);\n\n\t\tif (this.heading) {\n\t\t\tthis.prepend(button);\n\t\t}\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tif (name === \"open\") {\n\t\t\tif (this.IsAttributeValueTrue(newValue)) {\n\t\t\t\tthis.Open();\n\t\t\t} else {\n\t\t\t\tthis.Close();\n\t\t\t}\n\t\t}\n\t}\n\n\t#GetItems() {\n\t\tconst container = this.closest(\"chip-accordion\");\n\n\t\tif (container && !container.multiple) {\n\t\t\treturn [...container.querySelectorAll(\"chip-accordionitem\") ?? []];\n\t\t} else {\n\t\t\treturn [this];\n\t\t}\n\t}\n\n\tOpen() {\n\t\tthis.#GetItems().filter(x => x !== this && x.open).forEach(x => x.Close());\n\n\t\tthis.querySelector(\".btn-accordion-toggle\")?.setAttribute(\"aria-expanded\", true);\n\t\tthis.open = true;\n\n\t\tconst toggleText = this.querySelector(\".accordion--gov-toggle span\");\n\n\t\tif (toggleText) {\n\t\t\ttoggleText.textContent = \"Hide\";\n\t\t}\n\n\t\tthis.closest(\"chip-accordion\")?.UpdateState();\n\t}\n\n\tClose() {\n\t\tthis.querySelector(\".btn-accordion-toggle\")?.setAttribute(\"aria-expanded\", false);\n\t\tthis.open = false;\n\n\t\tconst toggleText = this.querySelector(\".accordion--gov-toggle span\");\n\n\t\tif (toggleText) {\n\t\t\ttoggleText.textContent = \"Show\";\n\t\t}\n\n\t\tthis.closest(\"chip-accordion\")?.UpdateState();\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { Button } from \"./button\";\n\nexport class SplitButton extends Button {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.buttonID = this.getAttribute(\"button-id\") ?? \"\";\n\t}\n\n\tparsedCallback() {\n\t\tconst variationClass = Button.ClassFromVariation(this.variation),\n\t\t\tdropdown = this.querySelector(\"chip-dropdown\");\n\n\t\tconst clickable = document.createElementWithContents(this.link ? \"a\" : \"button\", [...this.childNodes ?? []].filter(x => !x.matches?.(\"chip-dropdown\")), {\n\t\t\tclassName: \"btn--base split-button-primary\",\n\t\t\ttype: \"button\"\n\t\t});\n\n\t\tclickable.classList.add(variationClass);\n\t\tif (this.buttonClass) { clickable.classList.add(this.buttonClass); }\n\n\t\tif (this.size) { clickable.classList.add(`btn--${this.size.toLowerCase()}`); }\n\t\tif (this.buttonStyle) { clickable.classList.add(`btn--${this.buttonStyle.toLowerCase()}`); }\n\t\tif (this.icon) { clickable.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: this.icon })); }\n\n\t\tthis.prepend(clickable);\n\n\t\tdropdown.static = true;\n\n\t\tif (this.link) { this.querySelector(\"a\").href = Browser.ResolveRelativeURL(this.link); }\n\t\tif (this.buttonID) { this.querySelector(\".split-button-primary\").id = this.buttonID; }\n\n\t\tconst button = this.querySelector(\"chip-dropdown>div>button\");\n\n\t\tif (button) {\n\t\t\tthis.#InitDropdown(variationClass, button);\n\t\t} else {\n\t\t\tdropdown.onparsed = () => this.#InitDropdown(variationClass);\n\t\t}\n\t}\n\n\t#InitDropdown(variationClass, button) {\n\t\tbutton ??= this.querySelector(\"chip-dropdown>div>button\");\n\n\t\tif (this.size) { button.classList.add(`btn--${this.size.toLowerCase()}`); }\n\n\t\tbutton.classList.add(\"btn--base\", variationClass, \"btn--icon\");\n\t\tbutton.ariaLabel = Localizer.TOGGLE_DROPDOWN;\n\t\tbutton.appendChild(document.createElementWithContents(\"chip-icon\", null, { icon: \"fas fa-chevron-down\" }));\n\n\t\tbutton.addEventListener(\"click\", ev => ev.stopPropagation());\n\t}\n}","import { Button } from \"./button\";\n\nexport class DropdownButton extends Button {\n\tparsedCallback() {\n\t\tconst dropdown = this.querySelector(\"chip-dropdown\");\n\n\t\tif (dropdown) {\n\t\t\tif ((this.buttonStyle === \"icon\" || !this.textContent?.trim()) && !this.description) {\n\t\t\t\tthis.description = Localizer.TOGGLE_DROPDOWN;\n\t\t\t}\n\n\t\t\tif (!dropdown?.hasAttribute(\"icon\")) { dropdown.icon = this.icon; }\n\t\t\tif (!dropdown?.hasAttribute(\"suffix-icon\")) { dropdown.suffixIcon = this.suffixIcon; }\n\t\t\tif (!dropdown?.hasAttribute(\"size\")) { dropdown.size = this.size; }\n\t\t\tif (!dropdown?.hasAttribute(\"description\")) { dropdown.description = this.description; }\n\t\t}\n\t}\n\n\tclick() {\n\t\tthis.querySelector(\":scope>chip-dropdown>div>.btn--base\")?.click();\n\t}\n\n\tset textContent(value) {\n\t\tconst button = this.querySelector(\"chip-dropdown>div>button\");\n\n\t\tif (button) {\n\t\t\tbutton.textContent = value;\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class TabGroup extends AuxiliumComponent {\n\tstatic observedAttributes = [\"is-dynamic\", \"orientation\", \"direction\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.variation = this.getAttribute(\"variation\");\n\t\tthis.orientation = this.getAttribute(\"orientation\") ?? \"\";\n\t\tthis.isDynamic = this.hasAttribute(\"is-dynamic\");\n\t\tthis.preventButtons = this.hasAttribute(\"prevent-buttons\") ?? false;\n\t\tthis.direction = this.getAttribute(\"direction\") ?? \"\";\n\t\tthis.selectedIndex = 0;\n\t}\n\n\tparsedCallback() {\n\t\tif (!this.querySelector(\":scope > .tab-group__tabs > .tab__wrapper > chip-tab[selected]\")) {\n\t\t\tthis.querySelector(\"chip-tab\").selected = true;\n\t\t}\n\n\t\tconst content = document.createElementWithContents(\"div\", null, { className: \"tab-group__content\" }),\n\t\t\tselectedIndex = [...this.children].indexOf(this.querySelector(\"chip-tab[selected]\")),\n\t\t\tactionContent = this.querySelectorAll(\":scope > *:not(chip-tab)\");\n\n\t\tthis.querySelectorAll(\":scope > chip-tab\").forEach((tab, index, self) => {\n\t\t\tconst newTab = document.createElementWithContents(\"div\", tab.childNodes, { className: \"tab-group__tab\" });\n\n\t\t\tif (this.variation === \"steps\") {\n\t\t\t\tnewTab.prepend(document.createElementWithContents(\"div\",\n\t\t\t\t\t`\n\t\t\t\t\t
Step ${index + 1} of ${self.length}
\n\t\t\t\t\t
${tab.getAttribute(\"label\")}
\n\t\t\t\t`.trim(), {\n\t\t\t\t\tclassName: \"tab__mobile-header\"\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\tcontent.appendChild(newTab);\n\t\t});\n\n\t\tthis.appendChild(content);\n\n\t\tthis.prepend(document.createElementWithContents(\"div\", document.createElementWithContents(\"div\", this.querySelectorAll(\":scope > chip-tab\"), { className: \"tab__wrapper\" }), {\n\t\t\tclassName: \"tab-group__tabs\"\n\t\t}));\n\n\t\tif (actionContent.length) {\n\t\t\tthis.querySelector(\".tab-group__tabs\").appendChild(document.createElementWithContents(\"div\", actionContent, { className: \"nav__actions\" }));\n\t\t}\n\n\t\tthis.querySelector(`.tab-group__tab:nth-child(${selectedIndex + 1})`)?.classList.add(\"selected\");\n\t}\n\n\tGetSelectedContent = () => this.querySelector(`.tab-group__tab:nth-child(${this.selectedIndex + 1})`);\n\tselectIndex = index => this.querySelector(`chip-tab:nth-child(${index + 1})`).selected = true;\n\n\tGetSelectedTab = () => this.querySelector(\"chip-tab[selected]\") ?? this.querySelector(`chip-tab:nth-child(${this.selectedIndex + 1})`) ?? this.querySelector(\"chip-tab\");\n\n\tAddTab(label, content, options) {\n\t\tconst tab = document.createElementWithContents(\"chip-tab\", null, { label, selected: true, ...options }),\n\t\t\tcontentDiv = document.createElementWithContents(\"div\", content, { className: \"tab-group__tab\" });\n\n\t\tthis.querySelector(\"chip-tab:last-of-type\")?.insertAdjacentElement(\"afterend\", tab);\n\t\tthis.querySelector(\".tab-group__content\")?.appendChild(contentDiv);\n\n\t\tif (this.querySelector(\":scope > .tab-group__tabs > .tab__wrapper > chip-tab:not(:last-child)\")) {\n\t\t\tthis.querySelectorAll(\":scope > .tab-group__tabs > .tab__wrapper > chip-tab\").forEach(tab => {\n\t\t\t\tif (tab._allowClose) {\n\t\t\t\t\ttab.allowClose = true;\n\t\t\t\t}\n\t\t\t})\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tconst tabWrapper = this.querySelector(\".tab-group__tabs\");\n\n\t\t\tif (tabWrapper) {\n\t\t\t\ttabWrapper.scrollTo({\n\t\t\t\t\tleft: tabWrapper.scrollWidth,\n\t\t\t\t\tbehavior: 'smooth'\n\t\t\t\t});\n\t\t\t}\n\t\t}, 0);\n\n\t\treturn tab;\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Tab extends AuxiliumComponent {\n\tstatic observedAttributes = [\"selected\", \"allow-close\", \"label\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.label = this.getAttribute(\"label\") ?? \"\";\n\t\tthis.allowClose = this.hasAttribute(\"allow-close\");\n\t\tthis._allowClose = this.allowClose;\n\t\tthis.selected = this.hasAttribute(\"selected\");\n\t\tthis.icon = this.getAttribute(\"icon\");\n\t\tthis.preventButtons = this.closest(\"chip-tabgroup\")?.preventButtons;\n\n\t\tif (this.selected) { this.Select(); }\n\t}\n\n\tparsedCallback() {\n\t\tconst button = document.createElementWithContents(this.preventButtons ? \"span\" : \"button\", document.createElementWithContents(\"span\", this.label), {\n\t\t\tclassName: `btn--base btn--tab${this.selected ? \" active\" : \"\"}`\n\t\t});\n\n\t\tif (!this.preventButtons) {\n\t\t\tObject.assign(button, {\n\t\t\t\tonclick: () => this.selected = true,\n\t\t\t\ttype: \"button\"\n\t\t\t});\n\t\t}\n\n\t\tif (this.closest(\"chip-tabgroup[variation='steps']\")) {\n\t\t\tconst contents = !this.icon\n\t\t\t\t? [...this.parentElement.children].indexOf(this) + 1\n\t\t\t\t: document.createElementWithContents(\"chip-icon\", null, { icon: this.icon });\n\n\t\t\tbutton.prepend(document.createElementWithContents(\"div\", contents, {\n\t\t\t\tclassName: \"steps__icon\"\n\t\t\t}));\n\n\t\t\tbutton.appendChild(document.createElementWithContents(\"div\", button.childNodes, { className: \"step-button__wrapper\" }));\n\t\t} else if (this.icon) {\n\t\t\tbutton.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: this.icon }));\n\t\t}\n\n\t\tthis.appendChild(button);\n\n\t\tif (this.allowClose) {\n\t\t\tthis.#AddCloseButton();\n\t\t\tthis.closest(\"chip-tabgroup\").isDynamic = true;\n\t\t}\n\t}\n\n\t#AddCloseButton() {\n\t\tif (this.matches(\":first-child:last-child\")) {\n\t\t\tthis.allowClose = false;\n\t\t} else if (!this.querySelector(\".tab__close-button\"))\n\t\t\tthis.appendChild(document.createElementWithContents(\"chip-button\", null, {\n\t\t\t\tbuttonStyle: \"icon\",\n\t\t\t\ticon: \"fal fa-times\",\n\t\t\t\tsize: \"sm\",\n\t\t\t\tvariation: \"danger-tertiary\",\n\t\t\t\ttooltip: \"Close tab\",\n\t\t\t\tclassName: \"tab__close-button\",\n\t\t\t\tonclick: () => this.Destroy()\n\t\t\t}));\n\t}\n\n\tget index() {\n\t\treturn [...this.parentElement.children].indexOf(this);\n\t}\n\n\tDestroy() {\n\t\tconst group = this.closest(\"chip-tabgroup\"),\n\t\t\tindex = this.index;\n\n\t\tgroup.querySelector(`:scope > .tab-group__content > .tab-group__tab:nth-child(${index + 1})`)?.remove();\n\t\tthis.remove();\n\n\t\tif (this.selected) {\n\t\t\tconst newSelection = group.querySelector(`:scope > .tab-group__tabs > .tab__wrapper > chip-tab:nth-child(${index + 1})`)\n\t\t\t\t?? group.querySelector(\":scope > .tab-group__tabs > .tab__wrapper > chip-tab:last-child\");\n\n\t\t\tnewSelection.selected = true;\n\t\t}\n\n\t\tconst selected = group.querySelector(\"chip-tab[selected]\");\n\n\t\tif (selected?.matches(\":first-child:last-child\")) {\n\t\t\tselected.allowClose = false;\n\t\t}\n\n\t\tgroup.raiseEvent(\"tabclosed\");\n\t}\n\n\tcheckValidity() {\n\t\treturn ![...this.closest(\"chip-tabgroup\").querySelectorAll(`:scope > .tab-group__content > .tab-group__tab:nth-child(${this.index + 1}) chip-form`)].filter(form => !form.reportValidity()).length;\n\t}\n\n\tSelect() {\n\t\tdebugger;\n\t\tif (!this.hasAttribute(\"selected\")) { this.setAttribute(\"selected\", \"\"); }\n\n\t\tconst group = this.closest(\"chip-tabgroup\"),\n\t\t\thadSelection = !!group.querySelector(\"chip-tab[selected]\");\n\n\t\tgroup?.querySelectorAll(\":scope > .tab-group__tabs > .tab__wrapper > chip-tab\")\n\t\t\t.forEach(tab => {\n\t\t\t\tif (tab !== this) {\n\t\t\t\t\ttab.removeAttribute(\"selected\");\n\t\t\t\t}\n\n\t\t\t\tconst button = tab.querySelector(\".btn--base\");\n\n\t\t\t\tif (button) {\n\t\t\t\t\tbutton.toggleClass(\"active\", tab === this);\n\t\t\t\t}\n\t\t\t});\n\n\t\tgroup?.querySelectorAll(\":scope > .tab-group__content > .tab-group__tab\")\n\t\t\t.forEach(tab => {\n\t\t\t\tdebugger;\n\t\t\t\tconst currentIndex = [...tab.parentElement.children].indexOf(tab);\n\n\t\t\t\ttab.toggleClass(\"selected\", currentIndex === this.index);\n\n\t\t\t\tif (currentIndex === this.index) {\n\t\t\t\t\tconst target = tab.querySelector(\"input:not([readonly]), chip-dropdown, textarea:not([readonly]), select, .chipside-table:not(.no-js) tbody tr:not(.table-body-label)\");\n\n\t\t\t\t\tif (target?.nodeName === \"TR\" && !target.classList.contains(\"active\")) {\n\t\t\t\t\t\ttarget.closest(\"table\")?.Table.SelectRow(target, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttarget?.focus();\n\t\t\t\t\t}\n\t\t\t\t} else if (currentIndex < this.index) {\n\t\t\t\t\tconst forms = [...tab.querySelectorAll(\"chip-form\")];\n\n\t\t\t\t\tif (forms.length) {\n\t\t\t\t\t\tgroup.querySelector(`:scope > .tab-group__tabs > .tab__wrapper > chip-tab:nth-child(${currentIndex + 1}) > .btn--base`)?.toggleClass(\"step__invalid\", forms.filter(form => !form.reportValidity()).length > 0);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\tgroup.selectedIndex = this.index;\n\n\t\tif (hadSelection) {\n\t\t\tgroup.raiseEvent(\"change\");\n\t\t}\n\t}\n\n\tSetIsValid(isValid) {\n\t\tif (this.closest(\"[variation='steps']\")) {\n\t\t\tthis.firstElementChild?.toggleClass(\"step__invalid\", !isValid);\n\t\t}\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tswitch (name) {\n\t\t\tcase \"selected\":\n\t\t\t\tif (this.IsAttributeValueTrue(newValue)) {\n\t\t\t\t\tthis.Select();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"allow-close\":\n\t\t\t\tif (this.IsAttributeValueTrue(newValue)) {\n\t\t\t\t\tthis._allowClose = true;\n\t\t\t\t}\n\n\t\t\t\tif (this.IsAttributeValueTrue(newValue)) {\n\t\t\t\t\tthis.#AddCloseButton();\n\t\t\t\t} else {\n\t\t\t\t\tthis.querySelector(\".tab__close-button\")?.remove();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"label\":\n\t\t\t\tthis.querySelector(\":scope > .btn--base > span\").textContent = newValue;\n\t\t\t\tbreak;\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Form extends AuxiliumComponent {\n\t#DefaultOptions = {\n\t\tProcessCheckboxes: true\n\t}\n\n\treportValidity() {\n\t\tconst validity = [...this.querySelectorAll(\"chip-input, chip-textarea, chip-dropdown, chip-select, chip-checkbox\") ?? []].filter(x => !x.reportValidity()).length === 0,\n\t\t\ttab = this.closest(\".tab-group__tab\");\n\n\t\tif (tab) {\n\t\t\tconst index = [...tab.parentElement.children].indexOf(tab),\n\t\t\t\tgroup = tab.closest(\"chip-tabgroup\");\n\n\t\t\tif (!validity) {\n\t\t\t\tgroup.querySelector(`:scope > .tab-group__tabs > .tab__wrapper > chip-tab:nth-child(${index + 1})>button`)?.classList.add(\"step__invalid\");\n\t\t\t} else if (!tab.querySelector(\".input-field__invalid\")) {\n\t\t\t\tgroup.querySelector(`:scope > .tab-group__tabs > .tab__wrapper > chip-tab:nth-child(${index + 1})>button`)?.classList.remove(\"step__invalid\");\n\t\t\t}\n\t\t}\n\n\t\treturn validity;\n\t}\n\n\tcheckValidity() {\n\t\tconst validity = [...this.querySelectorAll(\"chip-input, chip-textarea, chip-dropdown, chip-select, chip-checkbox\") ?? []].filter(x => !x.checkValidity()).length === 0,\n\t\t\ttab = this.closest(\".tab-group__tab\");\n\n\t\tif (tab) {\n\t\t\tconst index = [...tab.parentElement.children].indexOf(tab),\n\t\t\t\tgroup = tab.closest(\"chip-tabgroup\");\n\n\t\t\tif (validity) {\n\t\t\t\tgroup.querySelector(`:scope > .tab-group__tabs > .tab__wrapper > chip-tab:nth-child(${index + 1})>button`)?.classList.remove(\"step__invalid\");\n\t\t\t}\n\t\t}\n\n\t\treturn validity;\n\t}\n\n\tgetData(options = this.#DefaultOptions) {\n\t\tconst elements = this.querySelectorAll(\"chip-input[name], chip-textarea[name], chip-dropdown[name], chip-select[name], chip-radio[name][checked], chip-checkbox[name][checked]\") ?? [];\n\n\t\tif (!elements.length) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn Object.assign(...[...elements].\n\t\t\tmap(x => {\n\t\t\t\tlet value = x.value;\n\t\t\t\tif (x.nodeName === \"CHIP-CHECKBOX\" && options.ProcessCheckboxes && value === \"true\") { value = true; }\n\n\t\t\t\treturn { [x.name]: value };\n\t\t\t}));\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class FormSection extends AuxiliumComponent {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.heading = this.getAttribute(\"heading\");\n\t\tthis.description = this.getAttribute(\"description\") ?? \"\";\n\t}\n\n\tparsedCallback() {\n\t\tthis.appendChild(document.createElementWithContents(\"div\", this.childNodes, { className: \"form-group__column-fields\" }));\n\n\t\tconst descriptionColumn = document.createElementWithContents(\"div\",\n\t\t\tdocument.createElementWithContents(\"div\", this.description, { className: \"form-group__section-description\" }), { className: \"form-group__column-description\" });\n\n\t\tif (this.heading) {\n\t\t\tdescriptionColumn.prepend(document.createElementWithContents(\"chip-header\", this.heading, { size: \"4\" }));\n\t\t}\n\n\t\tthis.prepend(descriptionColumn);\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Prompt extends AuxiliumComponent {\n\tstatic observedAttributes = [\"size\", \"icon\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\n\t\tthis.heading = this.getAttribute(\"heading\") ?? \"\";\n\t\tthis.size = this.getAttribute(\"size\") ?? \"\";\n\t}\n\n\tparsedCallback() {\n\t\tthis.appendChild(document.createElementWithContents(\"div\", this.childNodes, { className: \"prompt__description\" }));\n\n\t\tif (this.heading) { this.prepend(document.createElementWithContents(\"div\", this.heading, { className: \"prompt__title\" })); }\n\t\tif (this.icon) { this.prepend(document.createElementWithContents(\"div\", document.createElementWithContents(\"chip-icon\", null, { icon: this.icon }), { className: \"prompt__icon\" })); }\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tif (name === \"icon\") {\n\t\t\tlet element = this.querySelector(\".prompt__icon\");\n\n\t\t\tif (!element) {\n\t\t\t\telement = document.createElementWithContents(\"div\", document.createElementWithContents(\"div\", document.createElementWithContents(\"chip-icon\", null, { icon: this.icon }), { className: \"prompt__icon\" }));\n\t\t\t}\n\n\t\t\telement.querySelector(\"chip-icon\").icon = newValue;\n\t\t}\n\t}\n}","import { Button } from \"../button/button\";\r\nimport { ICON_DATASET } from \"./icons\";\r\n\r\nexport class IconPicker extends Button {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.label = this.getAttribute(\"label\") ?? \"\";\r\n\t\tthis.hiddenName = this.getAttribute(\"hidden-id\");\r\n\t\tthis.helperText = this.getAttribute(\"helper-text\") ?? \"\";\r\n\t\tthis.icon = this.getAttribute(\"icon\")?.toLowerCase() ?? \"fas fa-icons\";\r\n\r\n\t\tif (!this.icon.includes(\" \")) { this.icon = `fas ${this.icon.trim()}`; }\r\n\t\tif (!this.icon.includes(\"fa-\")) { this.icon = `${this.icon.split(\" \").at(0)} fa-${this.icon.split(\" \").at(-1)}`; }\r\n\t\tif (!this.#IconExists(this.icon)) { this.icon = \"fas fa-icons\"; }\r\n\t\tif (this.closest(\"form\") && !this.hiddenName) { this.hiddenName = this.id; }\r\n\t}\r\n\r\n\t#IconExists(icon) {\r\n\t\treturn ICON_DATASET.find(x => x.toLowerCase() === icon);\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst { size, variation, buttonStyle } = this,\r\n\t\t\tbuttonID = crypto.randomUUID().slice(0, 8);\r\n\r\n\t\tconst container = document.createElementWithContents(\"chip-dropdownbutton\",\r\n\t\t\t`\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\r\n\t\t\t`.trim(), {\r\n\t\t\tvariation, size, buttonStyle\r\n\t\t}), dropdown = container.querySelector(\"chip-dropdown\");\r\n\r\n\t\tcontainer.querySelector(\"chip-icon\").icon = this.icon;\r\n\r\n\t\tObject.assign(dropdown, {\r\n\t\t\tGetSearchedItems: query => this.#GetIcons(query),\r\n\t\t\tonchange: () => this.icon = dropdown.value,\r\n\t\t\thiddenName: this.hiddenName,\r\n\t\t\tbuttonID: buttonID,\r\n\t\t\tvalue: this.icon\r\n\t\t});\r\n\r\n\t\tif (this.label) {\r\n\t\t\tthis.appendChild(document.createElementWithContents(\"label\", this.label, {\r\n\t\t\t\tclassName: \"input-field__label\",\r\n\t\t\t\thtmlFor: buttonID\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\tthis.appendChild(container);\r\n\r\n\t\tif (this.helperText) {\r\n\t\t\tthis.appendChild(document.createElementWithContents(\"div\", this.helperText, { className: \"input-field__helper-text\" }));\r\n\t\t}\r\n\t}\r\n\r\n\t#GetIcons(query) {\r\n\t\treturn SearchArray(ICON_DATASET, query).map(icon => document.createElementWithContents(\"chip-dropdownitem\",\r\n\t\t\t`\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t${toTitleCase(icon.replaceAll('-', ' ').split(\" \").slice(2).join(\" \"))}\r\n\t\t\t\t\t
\r\n\t\t\t\t`.trim(), { value: icon })).sort(x => x.textContent);\r\n\t}\r\n\r\n\tattributeChanged(name, _, newValue) {\r\n\t\tif (name === \"icon\") {\r\n\t\t\tthis.querySelector(\".icon-picker__display>chip-icon:not(:last-child)\").icon = newValue;\r\n\t\t}\r\n\t}\r\n}","import { Button } from \"./button\";\n\nexport class ButtonGroup extends Button {\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.type = this.getAttribute(\"type\") ?? \"single\";\n\t\tthis.hiddenName = this.getAttribute(\"hidden-name\");\n\t\tthis.size = this.getAttribute(\"size\");\n\t\tthis.spacing = this.getAttribute(\"spacing\") ?? \"\";\n\t\tthis.variation = this.getAttribute(\"variation\");\n\t\tthis.label = this.getAttribute(\"label\") ?? \"\";\n\t\tthis.helperText = this.getAttribute(\"helper-text\") ?? \"\";\n\n\t\tif (this.closest(\"form\") && !this.hiddenName) {\n\t\t\tthis.hiddenName = this.id;\n\t\t}\n\t}\n\n\tparsedCallback() {\n\t\tconst wrapper = document.createElementWithContents(\"div\", document.createElementWithContents(\"ul\", [...this.children ?? []].map(x => document.createElementWithContents(\"li\", x))), { className: \"button-group__container\" });\n\n\t\tconst buttons = wrapper.querySelectorAll(\"chip-button, chip-dropdownbutton, chip-splitbutton\");\n\n\t\tif (buttons.length < 6) {\n\t\t\twrapper.querySelector(\"ul\").setAttribute(\"columns\", buttons.length);\n\t\t}\n\n\t\tbuttons.forEach(button => {\n\t\t\tthis.addButton(button);\n\t\t});\n\n\t\tif (this.hiddenName) {\n\t\t\twrapper.appendChild(document.createElementWithContents(\"input\", null, {\n\t\t\t\ttype: \"hidden\",\n\t\t\t\tvalue: this.value,\n\t\t\t\tname: this.hiddenName\n\t\t\t}));\n\t\t}\n\n\t\tif (this.label) {\n\t\t\twrapper.prepend(document.createElementWithContents(\"div\", this.label, { className: \"input-field__label\" }));\n\t\t}\n\n\t\tthis.appendChild(wrapper);\n\n\t\tif (this.helperText) {\n\t\t\twrapper.appendChild(document.createElementWithContents(\"div\", this.helperText, { className: \"input-field__helper-text\" }));\n\t\t}\n\n\t\tthis.#SelectValue(this.value);\n\t}\n\n\taddButton(button) {\n\t\tconst list = this.querySelector(\".button-group__container>ul\");\n\n\t\tif (list?.contains(button) === false) {\n\t\t\tlist.appendChild(document.createElementWithContents(\"li\", button));\n\t\t}\n\n\t\tif (!button.getAttribute(\"size\") && this.size) { button.size = this.size; }\n\t\tif (!button.getAttribute(\"buttonStyle\") && this.buttonStyle) { button.buttonStyle = this.buttonStyle; }\n\t\tif (!button.getAttribute(\"orientation\") && this.orientation) { button.orientation = this.orientation; }\n\n\t\tif (this.variation) { button.variation = this.variation; }\n\t\tif (this.disabled) { button.disabled = this.disabled; }\n\n\t\tbutton.buttonClass = button.buttonClass + ` ${this.buttonClass}`.trim();\n\n\t\tswitch (button.nodeName) {\n\t\t\tcase \"CHIP-BUTTON\":\n\t\t\t\tbutton.addEventListener(\"click\", ev => this.#HandleButtonClick(ev.target));\n\t\t\t\tbreak;\n\t\t\tcase \"CHIP-DROPDOWNBUTTON\":\n\t\t\t\tbutton.querySelector(\"chip-dropdown\").onselectionchange = () => this.#HandleButtonClick(button);\n\t\t\t\tbreak;\n\t\t\tcase \"CHIP-SPLITBUTTON\":\n\t\t\t\tbutton.addEventListener(\"click\", ev => this.#HandleButtonClick(ev.target));\n\t\t\t\tbutton.querySelectorAll(\"chip-dropdownitem\").forEach(item => item.addEventListener(\"click\", ev => this.#HandleButtonClick(ev.target)));\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t#SelectButton(button) {\n\t\tif (!button) { return; }\n\n\t\tif (this.type === \"single\") {\n\t\t\tthis.querySelectorAll(\"chip-button, chip-dropdownbutton, chip-splitbutton\").forEach(btn => {\n\t\t\t\tbtn.active = btn === button;\n\t\t\t});\n\t\t} else {\n\t\t\tbutton.active = true;\n\t\t}\n\n\t\tthis.selectedItem = button;\n\t\tthis.#UpdateHiddenInput();\n\t}\n\n\t#SelectValue(value) {\n\t\tfor (const target of [...this.querySelectorAll(\"chip-button, chip-splitbutton, chip-dropdownbutton\")].filter(x => value?.split(\"|\").includes(x.value?.toString()))) {\n\t\t\tthis.#SelectButton(target);\n\t\t}\n\t}\n\n\t#UpdateHiddenInput() {\n\t\tconst hiddenInput = this.querySelector(\"input[type='hidden']\");\n\n\t\tif (hiddenInput) {\n\t\t\thiddenInput.value = [...this.querySelectorAll(\"chip-button[active], chip-dropdownbutton[active], chip-splitbutton[active]\")].\n\t\t\t\tmap(x => x.value).join(\"|\");\n\t\t}\n\t}\n\n\t#HandleButtonClick(target) {\n\t\tconst closestButton = target.closest(\"chip-button, chip-splitbutton, chip-dropdownbutton\");\n\n\t\tlet elements = (this.type === \"single\" ? [] : [...this.querySelectorAll(\"chip-button[active], chip-dropdownbutton[active], chip-splitbutton[active]\")])\n\t\t\t.concat(closestButton);\n\n\t\tif (closestButton.active && this.type !== \"single\") {\n\t\t\telements = elements.filter(x => x !== closestButton);\n\n\t\t\tclosestButton.active = false;\n\t\t\tthis.#UpdateHiddenInput();\n\t\t}\n\n\t\tconst oldValue = this.value;\n\t\tthis.value = elements.map(x => x.value).join(\"|\");\n\n\t\tif (oldValue !== this.value) {\n\t\t\tthis.raiseEvent(\"change\");\n\t\t}\n\t}\n\n\tremoveValue(value) {\n\t\tfor (const target of [...this.querySelectorAll(\"chip-button, chip-splitbutton, chip-dropdownbutton\")].filter(x => value?.toString().split(\"|\").includes(x.value?.toString()))) {\n\t\t\ttarget.remove();\n\t\t}\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tif (name === \"value\") {\n\t\t\tthis.#SelectValue(newValue);\n\t\t}\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class ColourPicker extends AuxiliumComponent {\n\tstatic observedAttributes = [\"value\"];\n\n\t#hue = 0;\n\t#saturation = 1;\n\t#lightness = .5;\n\n\t#availablePresets = Browser.GetThemeColours();\n\n\t#terminateValueSetter = false;\n\t#suppressInputMode = \"\";\n\n\t#ControlIndex = {\n\t\tSpectrumCursor: null,\n\t\tSpectrumCanvas: null,\n\t\tSpectrumDimensions: null,\n\t\tHueCursor: null,\n\t\tHueCanvas: null,\n\t\tHueDimensions: null,\n\n\t\tInputs: {\n\t\t\tR: null,\n\t\t\tG: null,\n\t\t\tB: null,\n\n\t\t\tH: null,\n\t\t\tS: null,\n\t\t\tV: null,\n\n\t\t\tC: null,\n\t\t\tM: null,\n\t\t\tY: null,\n\t\t\tK: null,\n\n\t\t\tHex: null\n\t\t}\n\t};\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tlet defaultColour = this.closest(\"[data-theme]\")?.dataset.theme === \"dark\" ? \"rgb(255,255,255)\" : \"rgb(0,0,0)\";\n\t\tif (this.hasAttribute(\"presets\")) { defaultColour = \"\"; }\n\n\t\tthis.onchange = null;\n\t\tthis.value = this.getAttribute(\"value\") ?? defaultColour;\n\t\tthis.size = this.getAttribute(\"size\") ?? \"\";\n\t\tthis.label = this.getAttribute(\"label\") ?? \"\";\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? crypto.randomUUID().slice(0, 8);\n\t\tthis.hiddenName = this.getAttribute(\"hidden-name\") ?? \"\";\n\t\tthis.helperText = this.getAttribute(\"helper-text\") ?? \"\";\n\t\tthis.presets = this.hasAttribute(\"presets\") ? (this.getAttribute(\"presets\") ?? \"\").toLowerCase().split(\",\").map(x => x.trim()).filter(x => this.#availablePresets.includes(x) || x === \"all\") : \"\";\n\n\t\tif (this.hasAttribute(\"include-corporate\")) { this.#availablePresets.push(\"chipside\", \"oppidatim\"); }\n\t\tif (this.hasAttribute(\"include-none\")) { this.#availablePresets.unshift(\"\"); }\n\n\t\tif (this.presets.includes(\"all\")) {\n\t\t\tthis.presets = this.#availablePresets;\n\t\t}\n\n\t\tif (this.closest(\"form\") && !this.hiddenName) {\n\t\t\tthis.hiddenName = this.id ?? \"\";\n\t\t}\n\t}\n\n\tparsedCallback() {\n\t\tif (!this.presets.length) {\n\t\t\tthis.#BuildManualPicker();\n\t\t} else {\n\t\t\tthis.#BuildPresetPicker();\n\t\t}\n\t}\n\n\t#BuildPresetPicker() {\n\t\tif (!this.#availablePresets.includes(this.value?.toLowerCase())) {\n\t\t\tthis.value = \"\";\n\t\t}\n\n\t\tthis.innerHTML = ``;\n\n\t\tconst dropdown = this.querySelector(\"chip-dropdown\"),\n\t\t\t{ label, helperText, hiddenName } = this;\n\n\t\tObject.assign(dropdown, {\n\t\t\tlabel, helperText, hiddenName,\n\t\t\tvalue: this.value,\n\t\t\ticon: this.value ? \"fas fa-square\" : \"fal fa-minus-square\",\n\t\t\ttext: this.value ? toTitleCase(this.value) : \"None\"\n\t\t});\n\n\t\tdropdown.dataset.colour = this.value.toLowerCase();\n\n\t\tif (this.size) { dropdown.size = this.size; }\n\n\t\tdropdown.onchange = () => {\n\t\t\tdropdown.text = toTitleCase(dropdown.value) || \"None\";\n\t\t\tdropdown.dataset.colour = dropdown.value.toLowerCase();\n\n\t\t\tdropdown.querySelector(\".input-field>button>chip-icon\").icon = dropdown.value !== \"\" ? \"fas fa-square\" : \"fal fa-minus-square\";\n\n\t\t\tthis.value = dropdown.value;\n\n\t\t\tthis.raiseEvent(\"change\");\n\t\t}\n\n\t\tthis.presets.forEach(colour => {\n\t\t\tconst preset = document.createElementWithContents(\"chip-dropdownitem\",\n\t\t\t\t`\n\t\t\t\t\t
\n\t\t\t\t`.trim(), { value: colour.toLowerCase(), tooltip: toTitleCase(colour) || \"None\" }\n\t\t\t);\n\n\t\t\tpreset.firstElementChild.dataset.colour = colour.toLowerCase();\n\n\t\t\tif (colour.trim() === \"\") {\n\t\t\t\tpreset.firstElementChild.appendChild(document.createElementWithContents(\"chip-icon\", null, { icon: \"fas fa-ban\" }));\n\t\t\t}\n\n\t\t\tdropdown.appendChild(preset);\n\t\t});\n\t}\n\n\t#BuildManualPicker() {\n\t\tthis.innerHTML =\n\t\t\t`\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t`.trim();\n\n\t\tconst dropdown = this.querySelector(\"chip-dropdown\"),\n\t\t\t{ label, helperText, hiddenName } = this;\n\n\t\tObject.assign(dropdown, {\n\t\t\ttext: this.#parseValue(),\n\t\t\tlabel, helperText, hiddenName\n\t\t});\n\n\t\tif (this.size) { dropdown.size = this.size; }\n\n\t\tObject.assign(this.#ControlIndex, {\n\t\t\tSpectrumCursor: dropdown.querySelector(\".spectrum-cursor\"),\n\t\t\tSpectrumCanvas: dropdown.querySelector(\".spectrum-canvas\"),\n\t\t\tHueCursor: dropdown.querySelector(\".hue-cursor\"),\n\t\t\tHueCanvas: dropdown.querySelector(\".hue-canvas\"),\n\n\t\t\tInputs: {\n\t\t\t\tR: dropdown.querySelector(\".colour-picker__rgb-r\"),\n\t\t\t\tG: dropdown.querySelector(\".colour-picker__rgb-g\"),\n\t\t\t\tB: dropdown.querySelector(\".colour-picker__rgb-b\"),\n\n\t\t\t\tH: dropdown.querySelector(\".colour-picker__hsv-h\"),\n\t\t\t\tS: dropdown.querySelector(\".colour-picker__hsv-s\"),\n\t\t\t\tV: dropdown.querySelector(\".colour-picker__hsv-v\"),\n\n\t\t\t\tC: dropdown.querySelector(\".colour-picker__cmyk-c\"),\n\t\t\t\tM: dropdown.querySelector(\".colour-picker__cmyk-m\"),\n\t\t\t\tY: dropdown.querySelector(\".colour-picker__cmyk-y\"),\n\t\t\t\tK: dropdown.querySelector(\".colour-picker__cmyk-k\"),\n\n\t\t\t\tHex: dropdown.querySelector(\".colour-picker__hex-wrapper chip-input\")\n\t\t\t}\n\t\t});\n\n\t\tthis.#createHueSpectrum();\n\t\tdropdown.querySelector(\".spectrum-canvas\").onmousedown = (event) => this.#OnSpectrumMousedown(event);\n\n\t\t[this.#ControlIndex.Inputs.R, this.#ControlIndex.Inputs.G, this.#ControlIndex.Inputs.B].forEach(x => x.oninput = () => {\n\t\t\tthis.#suppressInputMode = \"rgb\";\n\n\t\t\tthis.#colourToPos(`rgb(${this.#ControlIndex.Inputs.R.value},${this.#ControlIndex.Inputs.G.value},${this.#ControlIndex.Inputs.B.value})`);\n\t\t});\n\n\t\t[this.#ControlIndex.Inputs.H, this.#ControlIndex.Inputs.S, this.#ControlIndex.Inputs.V].forEach(x => x.oninput = () => {\n\t\t\tthis.#suppressInputMode = \"hsv\";\n\n\t\t\tthis.#colourToPos(`hsv ${this.#ControlIndex.Inputs.H.value} ${(parseFloat(this.#ControlIndex.Inputs.S.value) || 0) / 100} ${(parseFloat(this.#ControlIndex.Inputs.V.value) || 0) / 100}`);\n\t\t});\n\n\t\t[this.#ControlIndex.Inputs.C, this.#ControlIndex.Inputs.M, this.#ControlIndex.Inputs.Y, this.#ControlIndex.Inputs.K].forEach(x => x.oninput = () => {\n\t\t\tthis.#suppressInputMode = \"cmyk\";\n\n\t\t\tthis.#colourToPos(`cmyk ${this.#ControlIndex.Inputs.C.value} ${this.#ControlIndex.Inputs.M.value} ${this.#ControlIndex.Inputs.Y.value} ${this.#ControlIndex.Inputs.K.value}`);\n\t\t});\n\n\t\tthis.#ControlIndex.Inputs.Hex.oninput = () => {\n\t\t\tthis.#suppressInputMode = \"hex\";\n\n\t\t\tthis.#colourToPos(`#${this.#ControlIndex.Inputs.Hex.value}`);\n\t\t}\n\n\t\tif (this.value) {\n\t\t\tconst rgb = this.#valueToRGB(this.value);\n\n\t\t\tthis.#hue = this.#rgbToHSL(rgb.r, rgb.g, rgb.b).h;\n\t\t}\n\n\t\tthis.#UpdateValue(this.value);\n\t\tthis.#colourToPos(this.value);\n\t\tthis.#updateSpectrumCanvas(this.value);\n\t}\n\n\t#refreshDimensions() {\n\t\tthis.#ControlIndex.SpectrumDimensions = this.#ControlIndex.SpectrumCanvas?.getBoundingClientRect();\n\t\tthis.#ControlIndex.HueDimensions = this.#ControlIndex.HueCanvas?.getBoundingClientRect();\n\t}\n\n\t#createHueSpectrum() {\n\t\tconst canvas = this.querySelector(\".hue-canvas\"),\n\t\t\tcontext = canvas.getContext(\"2d\"),\n\t\t\tgradient = context.createLinearGradient(0, 0, 0, canvas.height);\n\n\t\tgradient.addColorStop(0.00, \"hsl(0,100%,50%)\");\n\t\tgradient.addColorStop(0.17, \"hsl(298.8, 100%, 50%)\");\n\t\tgradient.addColorStop(0.33, \"hsl(241.2, 100%, 50%)\");\n\t\tgradient.addColorStop(0.5, \"hsl(180, 100%, 50%)\");\n\t\tgradient.addColorStop(0.67, \"hsl(118.8, 100%, 50%)\");\n\t\tgradient.addColorStop(0.83, \"hsl(61.2,100%,50%)\");\n\t\tgradient.addColorStop(1, \"hsl(360,100%,50%)\");\n\n\t\tcontext.fillStyle = gradient;\n\t\tcontext.fillRect(0, 0, canvas.width, canvas.height);\n\n\t\tcanvas.onmousedown = (event) => this.#OnHueMousedown(event);\n\t}\n\n\t#OnHueMousedown(event) {\n\t\tconst self = this;\n\t\tthis.#suppressInputMode = \"\";\n\n\t\tthis.#refreshDimensions();\n\n\t\tfunction onmousemove(ev) {\n\t\t\tev.preventDefault();\n\n\t\t\tself.#MoveHueCursor(ev.pageY - self.#ControlIndex.HueDimensions.top - (document.documentElement.scrollTop || document.body.scrollTop));\n\t\t\tself.#UpdateValue(`hsl ${self.#hue} ${self.#saturation} ${self.#lightness}`);\n\t\t}\n\n\t\tfunction onmouseup() {\n\t\t\twindow.removeEventListener(\"mousemove\", onmousemove);\n\t\t\twindow.removeEventListener(\"mouseup\", onmouseup);\n\t\t}\n\n\t\twindow.addEventListener(\"mousemove\", onmousemove);\n\t\twindow.addEventListener(\"mouseup\", onmouseup);\n\n\t\tself.#MoveHueCursor(event.pageY - self.#ControlIndex.HueDimensions.top - (document.documentElement.scrollTop || document.body.scrollTop));\n\t\tself.#UpdateValue(`hsl ${self.#hue} ${self.#saturation} ${self.#lightness}`);\n\t}\n\n\t#OnSpectrumMousedown(event) {\n\t\tconst self = this;\n\t\tthis.#suppressInputMode = \"\";\n\n\t\tthis.#refreshDimensions();\n\n\t\tfunction onmousemove(ev) {\n\t\t\tev.preventDefault();\n\n\t\t\tself.#MoveSpectrumCursor(ev.pageX - self.#ControlIndex.SpectrumDimensions.left, ev.pageY - self.#ControlIndex.SpectrumDimensions.top - (document.documentElement.scrollTop || document.body.scrollTop));\n\t\t}\n\n\t\tfunction onmouseup() {\n\t\t\twindow.removeEventListener(\"mousemove\", onmousemove);\n\t\t\twindow.removeEventListener(\"mouseup\", onmouseup);\n\t\t}\n\n\t\twindow.addEventListener(\"mousemove\", onmousemove);\n\t\twindow.addEventListener(\"mouseup\", onmouseup);\n\n\t\tself.#MoveSpectrumCursor(event.pageX - self.#ControlIndex.SpectrumDimensions.left, event.pageY - self.#ControlIndex.SpectrumDimensions.top - (document.documentElement.scrollTop || document.body.scrollTop));\n\t}\n\n\t#MoveHueCursor(yPos) {\n\t\tconst y = Math.max(0, Math.min(this.#ControlIndex.HueDimensions.height, yPos)),\n\t\t\tpercent = y / this.#ControlIndex.HueDimensions.height;\n\n\t\tthis.#hue = 360 - (360 * percent);\n\n\t\tthis.#updateSpectrumCanvas(`hsl ${this.#hue} 1 0.5`);\n\n\t\tObject.assign(this.#ControlIndex.HueCursor.style, {\n\t\t\ttop: `${y}px`,\n\t\t\tbackgroundColor: `hsl(${this.#hue}, 100%, 50%)`\n\t\t});\n\n\t\tthis.#ControlIndex.SpectrumCursor.style.backgroundColor = `hsl(${this.#hue}, ${this.#saturation * 100}%, ${this.#lightness * 100}%)`;\n\t\tthis.#UpdateValue(`hsl ${this.#hue} ${this.#saturation} ${this.#lightness}`);\n\n\t\tthis.#terminateValueSetter = true;\n\n\t\tconst rgb = this.#valueToRGB(`hsl ${this.#hue} ${this.#saturation} ${this.#lightness}`);\n\t\tthis.value = `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;\n\t}\n\n\t#MoveSpectrumCursor(xPos, yPos) {\n\t\tlet x = Math.min(Math.max(0, xPos - (document.documentElement.scrollLeft || document.body.scrollLeft)), this.#ControlIndex.SpectrumDimensions.width),\n\t\t\ty = Math.min(yPos, this.#ControlIndex.SpectrumDimensions.height);\n\n\t\tif (y < 0) { y = 0.1; }\n\n\t\tconst xRatio = x / this.#ControlIndex.SpectrumDimensions.width * 100,\n\t\t\tyRatio = y / this.#ControlIndex.SpectrumDimensions.height * 100;\n\n\t\tconst hsvValue = 1 - (yRatio / 100),\n\t\t\thsvSaturation = xRatio / 100;\n\n\t\tthis.#lightness = (hsvValue / 2) * (2 - hsvSaturation) || 0;\n\t\tthis.#saturation = (hsvValue * hsvSaturation) / (1 - Math.abs(2 * this.#lightness - 1)) || 0;\n\n\t\tthis.#UpdateValue(`hsl ${this.#hue} ${this.#saturation} ${this.#lightness}`);\n\n\t\tObject.assign(this.#ControlIndex.SpectrumCursor.style, {\n\t\t\tleft: `${x}px`,\n\t\t\ttop: `${y}px`,\n\t\t\tbackgroundColor: `hsl(${this.#hue}, ${this.#saturation * 100}%, ${this.#lightness * 100}%)`\n\t\t});\n\n\t\tthis.#terminateValueSetter = true;\n\n\t\tconst rgb = this.#valueToRGB(`hsl ${this.#hue} ${this.#saturation} ${this.#lightness}`);\n\t\tthis.value = `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;\n\t}\n\n\t#UpdateValue(value) {\n\t\tconst rgb = this.#valueToRGB(value),\n\t\t\ticon = this.querySelector(\"chip-dropdown .input-field>button>chip-icon\");\n\n\t\tif (this.value) {\n\t\t\tObject.assign(this.querySelector(\"chip-dropdown\"), {\n\t\t\t\ticonColour: `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`,\n\t\t\t\ttext: `${rgb.r}, ${rgb.g}, ${rgb.b}`,\n\t\t\t\tvalue: `${rgb.r}, ${rgb.g}, ${rgb.b}`\n\t\t\t});\n\n\t\t\tif (icon) {\n\t\t\t\ticon.icon = \"fas fa-square\";\n\t\t\t}\n\n\t\t\tif (this.#suppressInputMode !== \"rgb\") {\n\t\t\t\tthis.#ControlIndex.Inputs.R.value = rgb.r;\n\t\t\t\tthis.#ControlIndex.Inputs.G.value = rgb.g;\n\t\t\t\tthis.#ControlIndex.Inputs.B.value = rgb.b;\n\t\t\t}\n\n\t\t\tif (this.#suppressInputMode !== \"hsv\") {\n\t\t\t\tconst hsv = this.#rgbToHSV(rgb.r, rgb.g, rgb.b);\n\n\t\t\t\tthis.#ControlIndex.Inputs.H.value = Math.round(hsv.h);\n\t\t\t\tthis.#ControlIndex.Inputs.S.value = Math.round(hsv.s * 100);\n\t\t\t\tthis.#ControlIndex.Inputs.V.value = Math.round(hsv.v * 100);\n\t\t\t}\n\n\t\t\tif (this.#suppressInputMode !== \"hex\") { this.#ControlIndex.Inputs.Hex.value = this.#rgbToHex(rgb.r, rgb.g, rgb.b); }\n\n\t\t\tif (this.#suppressInputMode !== \"cmyk\") {\n\t\t\t\tconst cmyk = this.#rgbToCMYK(rgb.r, rgb.g, rgb.b);\n\n\t\t\t\tthis.#ControlIndex.Inputs.C.value = Math.round(cmyk.c);\n\t\t\t\tthis.#ControlIndex.Inputs.M.value = Math.round(cmyk.m);\n\t\t\t\tthis.#ControlIndex.Inputs.Y.value = Math.round(cmyk.y);\n\t\t\t\tthis.#ControlIndex.Inputs.K.value = Math.round(cmyk.k);\n\t\t\t}\n\t\t}\n\t}\n\n\t#hsvToHSL(h, s, v, l = v - v * s / 2, m = Math.min(l, 1 - l)) {\n\t\treturn {\n\t\t\th,\n\t\t\ts: m ? (v - l) / m : 0,\n\t\t\tl\n\t\t};\n\t}\n\n\t#cmykToHSV(c, m, y, k) {\n\t\tconst rgb = this.#cmykToRGB(c, m, y, k);\n\n\t\treturn this.#rgbToHSV(rgb.r, rgb.g, rgb.b);\n\t}\n\n\t#cmykToHSL(c, m, y, k) {\n\t\treturn this.#rgbToHSL(this.#cmykToRGB(c, m, y, k));\n\t}\n\n\t#cmykToRGB(c, m, y, k) {\n\t\tc = (c / 100);\n\t\tm = (m / 100);\n\t\ty = (y / 100);\n\t\tk = (k / 100);\n\n\t\tc = c * (1 - k) + k;\n\t\tm = m * (1 - k) + k;\n\t\ty = y * (1 - k) + k;\n\n\t\tconst r = Math.round((1 - c) * 255);\n\t\tconst g = Math.round((1 - m) * 255);\n\t\tconst b = Math.round((1 - y) * 255);\n\n\t\treturn { r, g, b };\n\t}\n\n\t#hexToHSV(hex) {\n\t\tconst rgb = this.#hexToRGB(hex);\n\n\t\treturn this.#rgbToHSV(rgb.r, rgb.g, rgb.b);\n\t}\n\n\t#valueToHSV(value) {\n\t\tif (value.startsWith(\"hsv\")) { return { h: parseFloat(value.split(\" \").at(1)), s: parseFloat(value.split(\" \").at(2)), v: parseFloat(value.split(\" \").at(3)) } }\n\t\tif (value.startsWith(\"hsl\")) { return this.#hslToHSV(parseFloat(value.split(\" \").at(1)), parseFloat(value.split(\" \").at(2)), parseFloat(value.split(\" \").at(3))); }\n\t\tif (value.startsWith(\"#\")) { return this.#hexToHSV(value); }\n\t\tif (value.startsWith(\"cmyk\")) { return this.#cmykToHSV(parseFloat(value.split(\" \").at(1)), parseFloat(value.split(\" \").at(2)), parseFloat(value.split(\" \").at(3)), parseFloat(value.split(\" \").at(4))); }\n\n\t\tconst fixed = value.replace(\"rgb(\", \"\").replace(\")\", \"\").replace(/ /g, \"\").split(\",\").map(Number);\n\n\t\treturn this.#rgbToHSV(fixed.at(0), fixed.at(1), fixed.at(2));\n\t}\n\n\t#valueToHSL(value) {\n\t\tif (value.startsWith(\"hsl\")) { return { h: parseFloat(value.split(\" \").at(1)), s: parseFloat(value.split(\" \").at(2)), l: parseFloat(value.split(\" \").at(3)) } }\n\t\tif (value.startsWith(\"hsv\")) { return this.#hsvToHSL(parseFloat(value.split(\" \").at(1)), parseFloat(value.split(\" \").at(2)), parseFloat(value.split(\" \").at(3))); }\n\t\tif (value.startsWith(\"#\")) { return this.#rgbToHSL(this.#hexToRGB(value)); }\n\t\tif (value.startsWith(\"cmyk\")) { return this.#cmykToHSL({ c: parseFloat(value.split(\" \").at(1)), m: parseFloat(value.split(\" \").at(2)), y: parseFloat(value.split(\" \").at(3)), k: parseFloat(value.split(\" \").at(3)) }); }\n\n\t\tconst fixed = value.replace(\"rgb(\", \"\").replace(\")\", \"\").replace(/ /g, \"\").split(\",\").map(Number);\n\n\t\treturn this.#rgbToHSL(fixed.at(0), fixed.at(1), fixed.at(2));\n\t}\n\n\t#updateSpectrumCanvas(value) {\n\t\tconst hsl = this.#valueToHSL(value);\n\n\t\tif (value) {\n\t\t\tconst canvas = this.querySelector(\".spectrum-canvas\"),\n\t\t\t\tcontext = canvas.getContext(\"2d\");\n\n\t\t\tcontext.clearRect(0, 0, canvas.width, canvas.height);\n\t\t\tcontext.fillStyle = `hsl(${hsl.h}, ${hsl.s * 100}%, ${hsl.l * 100}%)`;\n\t\t\tcontext.fillRect(0, 0, canvas.width, canvas.height);\n\n\t\t\tconst whiteGradient = context.createLinearGradient(0, 0, canvas.width, 0);\n\n\t\t\twhiteGradient.addColorStop(0, \"#ffffff\");\n\t\t\twhiteGradient.addColorStop(1, \"rgba(0, 0, 0, 0)\");\n\n\t\t\tcontext.fillStyle = whiteGradient;\n\t\t\tcontext.fillRect(0, 0, canvas.width, canvas.height);\n\n\t\t\tconst blackGradient = context.createLinearGradient(0, 0, 0, canvas.height);\n\n\t\t\tblackGradient.addColorStop(0, \"rgba(0, 0, 0, 0)\");\n\t\t\tblackGradient.addColorStop(1, \"#000000\");\n\n\t\t\tcontext.fillStyle = blackGradient;\n\t\t\tcontext.fillRect(0, 0, canvas.width, canvas.height);\n\t\t}\n\t}\n\n\t#colourToPos(colour) {\n\t\tthis.#refreshDimensions();\n\n\t\tconst hsv = this.#valueToHSV(colour);\n\t\tthis.#hue = hsv.h;\n\n\t\tconst x = this.#ControlIndex.SpectrumDimensions.width * hsv.s,\n\t\t\ty = this.#ControlIndex.SpectrumDimensions.height * (1 - hsv.v);\n\n\t\tthis.#MoveHueCursor(this.#ControlIndex.HueDimensions.height - ((this.#hue / 360) * this.#ControlIndex.HueDimensions.height));\n\t\tthis.#MoveSpectrumCursor(x, y);\n\t}\n\n\t#parseValue() {\n\t\tif (!this.value) { return \"None\"; }\n\n\t\treturn this.value.toUpperCase().split(\",\").join(\", \");\n\t}\n\n\t#hexToRGB(hex) {\n\t\thex = hex.replace(/^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i, (_, r, g, b) => r + r + g + g + b + b);\n\n\t\tconst result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n\n\t\treturn result ? {\n\t\t\tr: parseInt(result[1], 16),\n\t\t\tg: parseInt(result[2], 16),\n\t\t\tb: parseInt(result[3], 16)\n\t\t} : { r: 0, g: 0, b: 0 };\n\t}\n\n\t#hslToHSV(h, s, l, v = s * Math.min(l, 1 - l) + l) {\n\t\treturn {\n\t\t\th,\n\t\t\ts: v ? 2 - 2 * l / v : 0,\n\t\t\tv\n\t\t};\n\t}\n\n\t#rgbToHSL(r, g, b) {\n\t\tr = Math.min(255, Math.max(0, r)) / 255;\n\t\tg = Math.min(255, Math.max(0, g)) / 255;\n\t\tb = Math.min(255, Math.max(0, b)) / 255;\n\n\t\tconst vmax = Math.max(r, g, b), vmin = Math.min(r, g, b);\n\t\tlet h, s, l = (vmax + vmin) / 2;\n\n\t\tif (vmax === vmin) {\n\t\t\treturn { h: 0, s: 0, l };\n\t\t}\n\n\t\tconst d = vmax - vmin;\n\t\ts = l > 0.5 ? d / (2 - vmax - vmin) : d / (vmax + vmin);\n\n\t\tif (vmax === r) h = (g - b) / d + (g < b ? 6 : 0);\n\t\tif (vmax === g) h = (b - r) / d + 2;\n\t\tif (vmax === b) h = (r - g) / d + 4;\n\n\t\th /= 6;\n\t\th *= 360;\n\n\t\treturn { h, s, l };\n\t}\n\n\t#rgbToHSV(r, g, b) {\n\t\tr = Math.min(255, Math.max(0, r)) / 255;\n\t\tg = Math.min(255, Math.max(0, g)) / 255;\n\t\tb = Math.min(255, Math.max(0, b)) / 255;\n\n\t\tconst max = Math.max(r, g, b),\n\t\t\tmin = Math.min(r, g, b);\n\n\t\tlet h, s, v = max;\n\t\tconst d = max - min;\n\n\t\ts = max == 0 ? 0 : d / max;\n\n\t\tif (max == min) {\n\t\t\th = 0;\n\t\t} else {\n\t\t\tswitch (max) {\n\t\t\t\tcase r:\n\t\t\t\t\th = (g - b) / d + (g < b ? 6 : 0);\n\t\t\t\t\tbreak;\n\t\t\t\tcase g:\n\t\t\t\t\th = (b - r) / d + 2;\n\t\t\t\t\tbreak;\n\t\t\t\tcase b:\n\t\t\t\t\th = (r - g) / d + 4;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\th /= 6;\n\t\t}\n\n\t\th *= 360;\n\n\t\treturn {\n\t\t\th, s, v\n\t\t};\n\t}\n\n\t#rgbToHex(r, g, b) {\n\t\tr = Math.min(255, Math.max(0, r));\n\t\tg = Math.min(255, Math.max(0, g));\n\t\tb = Math.min(255, Math.max(0, b));\n\n\t\treturn [r, g, b].map(x => {\n\t\t\tconst hex = x.toString(16)\n\t\t\treturn hex.length === 1 ? '0' + hex : hex\n\t\t}).join('').toUpperCase();\n\t}\n\n\t#rgbToCMYK(r, g, b) {\n\t\tlet computedC = 0;\n\t\tlet computedM = 0;\n\t\tlet computedY = 0;\n\t\tlet computedK = 0;\n\n\t\tr = Math.min(255, Math.max(0, r));\n\t\tg = Math.min(255, Math.max(0, g));\n\t\tb = Math.min(255, Math.max(0, b));\n\n\t\t// Black\n\t\tif (r == 0 && g == 0 && b == 0) {\n\t\t\treturn {\n\t\t\t\tc: 0,\n\t\t\t\tm: 0,\n\t\t\t\ty: 0,\n\t\t\t\tk: 100\n\t\t\t};\n\t\t}\n\n\t\tcomputedC = 1 - (r / 255);\n\t\tcomputedM = 1 - (g / 255);\n\t\tcomputedY = 1 - (b / 255);\n\n\t\tconst minCMY = Math.min(computedC,\n\t\t\tMath.min(computedM, computedY));\n\n\t\tcomputedC = (computedC - minCMY) / (1 - minCMY);\n\t\tcomputedM = (computedM - minCMY) / (1 - minCMY);\n\t\tcomputedY = (computedY - minCMY) / (1 - minCMY);\n\t\tcomputedK = minCMY;\n\n\t\treturn {\n\t\t\tc: computedC * 100,\n\t\t\tm: computedM * 100,\n\t\t\ty: computedY * 100,\n\t\t\tk: computedK * 100\n\t\t};\n\t}\n\n\t#hsvToRGB(value) {\n\t\tlet hsv = value.split(\" \").slice(1).map(x => parseFloat(x)),\n\t\t\th = Math.min(360, Math.min(0, hsv.at(0))), s = hsv.at(1), v = hsv.at(2);\n\n\t\tlet f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n\n\t\treturn {\n\t\t\tr: Math.round(f(5) * 255),\n\t\t\tg: Math.round(f(3) * 255),\n\t\t\tb: Math.round(f(1) * 255)\n\t\t};\n\t}\n\n\t#hslToRGB(value) {\n\t\tlet hsl = value.split(\" \").slice(1).map(x => parseFloat(x)),\n\t\t\th = hsl.at(0), s = hsl.at(1), l = hsl.at(2);\n\n\t\tlet r, g, b;\n\n\t\th /= 360;\n\n\t\tfunction hue2rgb(p, q, t) {\n\t\t\tif (t < 0) t += 1;\n\t\t\tif (t > 1) t -= 1;\n\t\t\tif (t < 1 / 6) return p + (q - p) * 6 * t;\n\t\t\tif (t < 1 / 2) return q;\n\t\t\tif (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n\t\t\treturn p;\n\t\t}\n\t\tif (s === 0) {\n\t\t\tr = g = b = l; // Achromatic\n\t\t} else {\n\t\t\tconst q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\t\t\tconst p = 2 * l - q;\n\n\t\t\tr = hue2rgb(p, q, h + 1 / 3);\n\t\t\tg = hue2rgb(p, q, h);\n\t\t\tb = hue2rgb(p, q, h - 1 / 3);\n\t\t}\n\t\treturn {\n\t\t\tr: Math.round(r * 255),\n\t\t\tg: Math.round(g * 255),\n\t\t\tb: Math.round(b * 255)\n\t\t};\n\t}\n\n\t#valueToRGB(value) {\n\t\tif (!value) { return { r: 0, g: 0, b: 0 } };\n\t\tif (value.startsWith(\"#\")) { return this.#hexToRGB(value); }\n\t\tif (value.startsWith(\"hsl\")) { return this.#hslToRGB(value); }\n\t\tif (value.startsWith(\"hsv\")) { return this.#hsvToRGB(value); }\n\t\tif (value.startsWith(\"cmyk\")) { return this.#cmykToRGB({ c: parseFloat(value.split(\" \").at(1)), m: parseFloat(value.split(\" \").at(2)), y: parseFloat(value.split(\" \").at(3)), k: parseFloat(value.split(\" \").at(3)) }); }\n\n\t\tconst fixedValue = value.replace(\"rgb(\", \"\").replace(\")\", \"\").replace(/ /g, \"\").split(\",\");\n\n\t\treturn {\n\t\t\tr: parseInt(fixedValue.at(0)) || 0,\n\t\t\tg: parseInt(fixedValue.at(1)) || 0,\n\t\t\tb: parseInt(fixedValue.at(2)) || 0\n\t\t};\n\t}\n\n\tattributeChanged(name, _, newValue) {\n\t\tif (name === \"value\" && !this.#terminateValueSetter && !this.presets.length) {\n\t\t\tthis.#colourToPos(newValue);\n\t\t\tthis.#UpdateValue(newValue);\n\t\t}\n\n\t\tthis.#terminateValueSetter = false;\n\t}\n}","import { Browser } from \"../../core/browser\";\nimport { AuxiliumComponent } from \"../auxilium-component\";\n\nexport class Badge extends AuxiliumComponent {\n\tstatic observedAttributes = [\"variation\"];\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.variation = this.getAttribute(\"variation\") ?? \"theme\";\n\t\tthis.size = this.getAttribute(\"size\");\n\t\tthis.icon = this.getAttribute(\"icon\");\n\t\tthis.link = this.getAttribute(\"link\") ?? \"\";\n\t\tthis.badgeStyle = this.getAttribute(\"badge-style\");\n\t}\n\n\tparsedCallback() {\n\t\tif (this.link) { this.appendChild(document.createElementWithContents(\"chip-link\", this.childNodes, { href: Browser.ResolveRelativeURL(this.link) })); }\n\n\t\tthis.classList.add(\"badge\", `badge--${this.variation}`);\n\n\t\tif (this.size) { this.classList.add(`badge--${this.size.toLowerCase()}`); }\n\t\tif (this.icon) { this.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: this.icon })); }\n\t}\n\n\tSetText(text) {\n\t\tthis.textContent = text;\n\t\tif (this.icon) { this.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: this.icon })); }\n\t}\n\n\tattributeChanged(name, oldValue, newValue) {\n\t\tif (name === \"variation\") {\n\t\t\tthis.classList.remove(`badge--${oldValue}`);\n\t\t\tthis.classList.add(`badge--${newValue}`);\n\t\t}\n\t}\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Label extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.type = this.getAttribute(\"type\") ?? \"\";\r\n\t\tthis.for = this.getAttribute(\"for\") ?? \"\";\r\n\r\n\t\tif (this.type === \"secondary\") {\r\n\t\t\tthis.classList.add(\"input-field__helper-text\");\r\n\t\t} else {\r\n\t\t\tthis.classList.add(\"input-field__label\");\r\n\t\t}\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst element = document.createElementWithContents(this.for ? \"label\" : \"span\", this.childNodes);\r\n\r\n\t\tif (this.for) {\r\n\t\t\tconst forTarget = document.getElementById(this.for);\r\n\r\n\t\t\tif (forTarget?.matches(\"chip-input, chip-checkbox, chip-textarea, chip-radio, chip-colourpicker, chip-button\")) {\r\n\t\t\t\telement.htmlFor = forTarget.identifier;\r\n\t\t\t} else {\r\n\t\t\t\telement.htmlFor = this.for;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.appendChild(element);\r\n\t}\r\n}","import { Browser } from \"../../core/browser\";\r\nimport { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Header extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"size\"];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.size = this.getAttribute(\"size\") ?? \"1\";\r\n\t\tthis.link = this.getAttribute(\"link\") ?? \"\";\r\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\r\n\t\tthis.element = this.getAttribute(\"element\") ?? \"div\";\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst element = document.createElementWithContents(this.link ? \"chip-link\" : this.element, this.childNodes, {\r\n\t\t\tclassName: `heading--size${this.size} heading--core`\r\n\t\t}), actionBar = element.querySelector(\"chip-actionbar\");\r\n\r\n\t\tif (this.link) { element.href = Browser.ResolveRelativeURL(this.link); }\r\n\t\tif (this.icon) { element.prepend(document.createElementWithContents(\"chip-icon\", null, { icon: this.icon })); }\r\n\r\n\t\tthis.appendChild(element);\r\n\r\n\t\tif (actionBar) {\r\n\t\t\tthis.appendChild(actionBar);\r\n\t\t}\r\n\t}\r\n\r\n\tget textContent() { return this.querySelector(\".heading--core\")?.textContent ?? super.textContent; }\r\n\r\n\tset textContent(value) {\r\n\t\tconst target = this.querySelector(\".heading--core\");\r\n\r\n\t\tif (target) {\r\n\t\t\ttarget.textContent = value;\r\n\t\t}\r\n\t}\r\n\r\n\tattributeChanged(name, oldValue, newValue) {\r\n\t\tif (name === \"size\") {\r\n\t\t\tthis.firstElementChild.classList.remove(`heading--size${oldValue}`);\r\n\t\t\tthis.firstElementChild.classList.add(`heading--size${newValue}`);\r\n\t\t}\r\n\t}\r\n\r\n\tSetText(text) {\r\n\t\tif (this.firstElementChild) {\r\n\t\t\tthis.firstElementChild.textContent = text;\r\n\t\t} else {\r\n\t\t\tthis.textContent = text;\r\n\t\t}\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Range extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"value\"];\r\n\r\n\t#Input = null;\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? crypto.randomUUID().slice(0, 8);\r\n\t\tthis.label = this.getAttribute(\"label\") ?? \"\";\r\n\t\tthis.helperText = this.getAttribute(\"helper-text\") ?? \"\";\r\n\t\tthis.min = this.getAttribute(\"min\") ?? \"0\";\r\n\t\tthis.max = this.getAttribute(\"max\") ?? \"100\";\r\n\t\tthis.value = this.getAttribute(\"value\") ?? \"0\";\r\n\t\tthis.step = this.getAttribute(\"step\") ?? \"1\";\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.#Input = document.createElementWithContents(\"input\", null, {\r\n\t\t\ttype: \"range\",\r\n\t\t\tmin: this.min,\r\n\t\t\tmax: this.max,\r\n\t\t\tid: this.identifier,\r\n\t\t\tvalue: this.value,\r\n\t\t\tstep: this.step,\r\n\t\t\toninput: () => this.value = this.#Input.value\r\n\t\t});\r\n\r\n\t\tthis.value = this.#Input.value\r\n\t\tthis.#UpdateTrack();\r\n\r\n\t\tif (this.label) {\r\n\t\t\tthis.appendChild(document.createElementWithContents(\"label\", this.label, {\r\n\t\t\t\tclassName: \"input-field__label\",\r\n\t\t\t\thtmlFor: this.identifier\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\tthis.appendChild(document.createElementWithContents(\"div\", this.#Input, { className: \"range--track\" }));\r\n\r\n\t\tif (this.helperText) {\r\n\t\t\tthis.appendChild(document.createElementWithContents(\"div\", this.helperText, { className: \"input-field__helper-text\" }));\r\n\t\t}\r\n\t}\r\n\r\n\t#UpdateTrack() {\r\n\t\tconst percentage = 100 * (parseFloat(this.#Input.value) - parseFloat(this.min)) / (parseFloat(this.max) - parseFloat(this.min));\r\n\t\tthis.#Input.style.background = `linear-gradient(to right, var(--range-bar-active-colour) ${percentage}%, var(--range-bar-colour) ${percentage}%)`;\r\n\t}\r\n\r\n\tattributeChanged(name, _, newValue) {\r\n\t\tif (name === \"value\") {\r\n\t\t\tthis.#Input.value = newValue;\r\n\t\t\tthis.#UpdateTrack();\r\n\t\t}\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Breadcrumb extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.description = this.getAttribute(\"description\") ?? \"Breadcrumb\";\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.appendChild(document.createElementWithContents(\"nav\", document.createElementWithContents(\"ol\", [...this.children ?? []].map(x => document.createElementWithContents(\"li\", x)), {\r\n\t\t\tclassName: \"breadcrumb-list\"\r\n\t\t}), { ariaLabel: this.description }));\r\n\t}\r\n}","import { Browser } from \"../../core/browser\";\r\nimport { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class BreadcrumbItem extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.link = this.getAttribute(\"link\") ?? \"\";\r\n\t\tthis.target = this.getAttribute(\"target\");\r\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\r\n\r\n\t\tif (Browser.ResolveRelativeURL(this.link) === location.toString()) { this.link = \"\"; }\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.appendChild(document.createElementWithContents(\"span\", this.childNodes));\r\n\r\n\t\tif (this.link) {\r\n\t\t\tconst anchor = document.createElementWithContents(\"a\", this.childNodes, { href: Browser.ResolveRelativeURL(this.link) });\r\n\r\n\t\t\tif (this.target) { anchor.target = this.target; }\r\n\t\t\tif (this.target === \"_blank\") { anchor.appendChild(document.createElementWithContents(\"span\", \"(opens in new window)\", { className: \"visually-hidden\" })) }\r\n\r\n\t\t\tthis.appendChild(anchor);\r\n\t\t}\r\n\r\n\t\tif (this.icon) { (this.link ? this.querySelector(\"a\") : this).prepend(document.createElementWithContents(\"chip-icon\", null, { icon: this.icon })); }\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Progress extends AuxiliumComponent {\r\n\tparsedCallback() {\r\n\t\tconst list = document.createElementWithContents(\"ol\");\r\n\t\tlist.append(...[...this.querySelectorAll(\":scope > chip-progressitem\")].map(x => document.createElementWithContents(\"li\", x, { className: x.active ? \"progress-item--active\" : \"\" })));\r\n\r\n\t\tthis.appendChild(list);\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class ProgressItem extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.active = this.hasAttribute(\"active\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.prepend(document.createElementWithContents(\"div\", null, { className: \"progress-item__icon\" }));\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Radio extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"checked\", \"value\"];\r\n\t#Mappers = {};\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.InitializeCheckboxProperties();\r\n\r\n\t\tthis.#Mappers = {\r\n\t\t\tname: this.name\r\n\t\t};\r\n\r\n\t\tif (this.closest(\"form\") && !this.#Mappers.name) { this.#Mappers.name = this.id ?? this.identifier; }\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.classList.add(\"checkbox__wrapper\");\r\n\r\n\t\tconst radio = document.createElementWithContents(\"input\", null, {\r\n\t\t\tid: this.identifier,\r\n\t\t\tclassName: \"input-field\",\r\n\t\t\ttype: \"radio\",\r\n\t\t\tchecked: this.checked,\r\n\t\t\tvalue: this.value\r\n\t\t});\r\n\r\n\t\tradio.onchange = () => document.querySelectorAll(`chip-radio[name='${this.#Mappers.name}']`).forEach(x => x.checked = x === this);\r\n\r\n\t\tObject.keys(this.#Mappers).filter(x => this.#Mappers[x])\r\n\t\t\t.forEach(key => radio.setAttribute(key, this.#Mappers[key] === true ? \"\" : this.#Mappers[key]));\r\n\r\n\t\tif (this.helperText) {\r\n\t\t\tthis.prepend(document.createElementWithContents(\"div\", this.helperText, {\r\n\t\t\t\tclassName: \"input-field__helper-text\"\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\tif (this.label) { this.prepend(document.createElementWithContents(\"label\", this.label, { htmlFor: this.identifier })); }\r\n\r\n\t\tthis.prepend(radio);\r\n\t}\r\n\r\n\tfocus() {\r\n\t\tthis.querySelector(\"input\")?.focus();\r\n\t}\r\n\r\n\tattributeChanged(name, _, newValue) {\r\n\t\tif (name === \"checked\") {\r\n\t\t\tthis.querySelector(\"input\").checked = this.IsAttributeValueTrue(newValue);\r\n\t\t}\r\n\t}\r\n}","import { Toast } from \"../../dialog/toast\";\r\nimport { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class CodeBlock extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"autowrap\", \"language\"];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.language = this.getAttribute(\"language\");\r\n\t\tthis.autowrap = this.hasAttribute(\"autowrap\");\r\n\t\tthis.hideButton = this.hasAttribute(\"hide-button\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst codeElement = this.querySelector(\"code\"),\r\n\t\t\trow = document.createElementWithContents(\"div\", document.createElementWithContents(\"div\", null, { className: \"col\" }), { className: \"row\" });\r\n\r\n\t\tif (codeElement) {\r\n\t\t\tif (!this.autowrap) {\r\n\t\t\t\tcodeElement.trimBreaks();\r\n\t\t\t}\r\n\r\n\t\t\tcodeElement.innerHTML = codeElement.innerHTML.trimEnd();\r\n\r\n\t\t\tif (this.language) {\r\n\t\t\t\tcodeElement.classList.add(`language-${this.language}`);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.querySelector(\"code\")?.trimBreaks();\r\n\r\n\t\trow.firstElementChild.appendChild(document.createElementWithContents(\"pre\", this.childNodes));\r\n\r\n\t\tif (!this.hideButton) {\r\n\t\t\tconst copyButton = document.createElementWithContents(\"chip-button\", null, {\r\n\t\t\t\tbuttonStyle: \"icon\",\r\n\t\t\t\ticon: \"fal fa-copy\",\r\n\t\t\t\tvariation: \"body\",\r\n\t\t\t\tclassName: \"btn--copy-code\",\r\n\t\t\t\ttooltip: \"Copy code\"\r\n\t\t\t});\r\n\r\n\t\t\tcopyButton.onclick = () => writeClipboardText(codeElement.textContent).then(() => Toast.ShowSuccess(Localizer.COPIED_VALUE));\r\n\r\n\t\t\trow.appendChild(document.createElementWithContents(\"div\", copyButton, { className: \"col-auto\" }));\r\n\t\t}\r\n\r\n\t\tthis.appendChild(row);\r\n\t\tthis.repaint();\r\n\t}\r\n\r\n\trepaint() {\r\n\t\tconst codeElement = this.querySelector(\"code\");\r\n\t\tcodeElement.removeAttribute(\"data-highlighted\");\r\n\r\n\t\tCodeHighlight.highlightElement(codeElement);\r\n\t}\r\n\r\n\tattributeChanged(name, _, newValue) {\r\n\t\tif (name === \"language\") {\r\n\t\t\tconst codeElement = this.querySelector(\"code\");\r\n\r\n\t\t\tcodeElement.className = \"hljs\";\r\n\t\t\tif (newValue) { codeElement.classList.add(`language-${newValue}`); }\r\n\r\n\t\t\tthis.repaint();\r\n\t\t}\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Frame extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"layout\", \"spacing\"];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.spacing = this.getAttribute(\"spacing\") ?? \"\";\r\n\t\tthis.layout = this.getAttribute(\"layout\") ?? \"full\";\r\n\t\tthis.restrictHeight = this.hasAttribute(\"restrict-height\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.classList.add(\"layout-frame\");\r\n\r\n\t\tif (this.restrictHeight) { this.classList.add(\"restrict-height\"); }\r\n\r\n\t\tthis.Header = this.querySelector(\"chip-frameheader\");\r\n\t\tthis.Content = this.querySelector(\"chip-framecontent\");\r\n\t\tthis.Sidebars = [...this.querySelectorAll(\"chip-framesidebar\")];\r\n\r\n\t\tthis.RightSidebar = this.querySelector(\"chip-framesidebar[side='right']\") ?? this.Sidebars.at(1);\r\n\t\tthis.LeftSidebar = this.querySelector(\"chip-framesidebar[side='left']\") ?? this.Sidebars.find(x => x !== this.RightSidebar);\r\n\r\n\t\tswitch (this.layout.toLowerCase()) {\r\n\t\t\tcase \"container\":\r\n\t\t\t\tthis.#BuildContainerLayout();\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"full\":\r\n\t\t\t\tthis.#BuildFullLayout();\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"full-centred\":\r\n\t\t\t\tthis.#BuildFullCentredLayout();\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\t#BuildFullLayout() {\r\n\t\tif (this.RightSidebar) { this.prepend(this.RightSidebar); }\r\n\t\tif (this.Content) { this.prepend(this.Content); }\r\n\t\tif (this.LeftSidebar) { this.prepend(this.LeftSidebar); }\r\n\t\tif (this.Header) { this.prepend(this.Header); }\r\n\t}\r\n\r\n\t#BuildFullCentredLayout() {\r\n\t\tif (this.RightSidebar) { this.prepend(this.RightSidebar); }\r\n\r\n\t\tif (this.Content) {\r\n\t\t\tthis.Content.centred = true;\r\n\r\n\t\t\tthis.prepend(this.Content);\r\n\t\t}\r\n\r\n\t\tif (this.LeftSidebar) { this.prepend(this.LeftSidebar); }\r\n\t\tif (this.Header) { this.prepend(this.Header); }\r\n\t}\r\n\r\n\t#BuildContainerLayout() {\r\n\t\tthis.prepend(document.createElementWithContents(\"div\", [this.LeftSidebar, this.Content, this.RightSidebar], {\r\n\t\t\tclassName: \"layout-frame__content container\"\r\n\t\t}));\r\n\r\n\t\tif (this.Header) {\r\n\t\t\tthis.prepend(this.Header);\r\n\t\t}\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class FrameHeader extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.restrictWidth = this.hasAttribute(\"restrict-width\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.classList.add(\"layout-frame__header\");\r\n\t\tconst header = document.createElementWithContents(\"header\", this.childNodes);\r\n\r\n\t\tif (this.restrictWidth) {\r\n\t\t\theader.classList.add(\"container\");\r\n\t\t}\r\n\r\n\t\tthis.appendChild(header);\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class FrameSidebar extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"padding\", \"collapsed\"];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tconst preloadCollapse = window.localStorage.getItem(\"collapseSidebar\");\r\n\r\n\t\tthis.side = this.getAttribute(\"side\") ?? \"left\";\r\n\t\tthis.heading = this.getAttribute(\"heading\");\r\n\t\tthis.headingSize = this.getAttribute(\"heading-size\") ?? \"4\";\r\n\t\tthis.description = this.getAttribute(\"description\") ?? this.heading ?? \"Application sidebar\";\r\n\t\tthis.padding = this.getAttribute(\"padding\") ?? (this.closest(\"chip-frame\").layout !== \"container\" ? \"xl\" : \"0\");\r\n\t\tthis.collapsible = this.hasAttribute(\"collapsible\");\r\n\t\tthis.collapsed = preloadCollapse != null && this.collapsible ? preloadCollapse === \"true\" : this.hasAttribute(\"collapse\");\r\n\t\tthis.brand = this.getAttribute(\"brand\") ?? \"\";\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst nav = document.createElementWithContents(\"nav\", this.querySelector(\":scope>ul\") ?? this.appendChild(document.createElementWithContents(\"ul\", null, { className: \"sidebar__list\" })), { ariaLabel: this.description });\r\n\r\n\t\tif (this.heading) {\r\n\t\t\tnav.prepend(document.createElementWithContents(\"chip-header\", this.heading, {\r\n\t\t\t\tsize: this.headingSize,\r\n\t\t\t\telement: \"h2\"\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\tif (this.brand || this.collapsible) {\r\n\t\t\tconst topbar = document.createElementWithContents(\"div\", null, { className: \"sidebar__top\" });\r\n\r\n\t\t\tif (this.brand) {\r\n\t\t\t\ttopbar.appendChild(document.createElementWithContents(\"chip-header\", this.brand, {\r\n\t\t\t\t\tsize: \"3\",\r\n\t\t\t\t\tlink: \"~/\"\r\n\t\t\t\t}));\r\n\t\t\t}\r\n\r\n\t\t\tif (this.collapsible) {\r\n\t\t\t\ttopbar.appendChild(document.createElementWithContents(\"chip-button\", null, {\r\n\t\t\t\t\tvariation: \"body\",\r\n\t\t\t\t\tbuttonStyle: \"icon\",\r\n\t\t\t\t\tsize: \"lg\",\r\n\t\t\t\t\ticon: \"fas fa-bars\",\r\n\t\t\t\t\tonclick: () => this.collapsed = !this.collapsed\r\n\t\t\t\t}));\r\n\t\t\t}\r\n\r\n\t\t\tnav.prepend(topbar);\r\n\t\t}\r\n\r\n\t\tnav.append(...[...this.childNodes].filter(x => !x.matches?.(\"chip-sidebaritem, chip-sidebarheader\")));\r\n\t\tthis.appendChild(nav);\r\n\r\n\t\tthis.querySelectorAll(\":scope > chip-sidebaritem, :scope > chip-sidebarheader\").forEach(x => this.AddItem(x));\r\n\t\tthis.#RefreshTooltips();\r\n\t}\r\n\r\n\tAddItem(item) {\r\n\t\tthis.querySelector(\":scope>ul, :scope>nav>ul\").appendChild(document.createElementWithContents(\"li\", item, { className: item.nodeName === \"CHIP-SIDEBARITEM\" ? \"sidebar-list-item\" : \"sidebar-list__section-title\" }))\r\n\t}\r\n\r\n\tClearItems() {\r\n\t\tthis.querySelector(\":scope>ul, :scope>nav>ul\").innerHTML = \"\";\r\n\t}\r\n\r\n\tattributeChanged(name, _, newValue) {\r\n\t\tif (name === \"collapsed\") {\r\n\t\t\twindow.localStorage.setItem(\"collapseSidebar\", this.IsAttributeValueTrue(newValue));\r\n\t\t}\r\n\r\n\t\tthis.#RefreshTooltips();\r\n\t}\r\n\r\n\t#RefreshTooltips() {\r\n\t\tthis.querySelectorAll(\"chip-button[variation='sidebar']\").forEach(button => {\r\n\t\t\tbutton.setAttribute(\"tooltip-placement\", \"right\");\r\n\t\t\tbutton.setAttribute(\"tooltip\", this.collapsed ? button.textContent.trim() : \"\");\r\n\t\t});\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class FrameContent extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"spacing\"];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.centred = this.hasAttribute(\"centred\");\r\n\t\tthis.spacing = this.getAttribute(\"spacing\") ?? \"\";\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.appendChild(document.createElementWithContents(\"main\", this.childNodes, { className: this.centred ? \"container\" : \"frame__main\", id: \"mainContent\" }));\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class SidebarHeader extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\r\n\t\tthis.iconColour = this.getAttribute(\"icon-colour\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tif (this.icon) {\r\n\t\t\tconst headerIcon = document.createElementWithContents(\"chip-icon\", null, { icon: this.icon });\r\n\t\t\tif (this.iconColour) { headerIcon.colour = this.iconColour; }\r\n\r\n\t\t\tthis.prepend(headerIcon);\r\n\t\t}\r\n\t}\r\n}","import { Browser } from \"../../core/browser\";\r\nimport { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class SidebarItem extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.link = this.getAttribute(\"link\") ?? \"\";\r\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"\";\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tif (this.link) {\r\n\t\t\tthis.appendChild(document.createElementWithContents(\"chip-button\", this.childNodes, {\r\n\t\t\t\tlink: this.link,\r\n\t\t\t\tvariation: \"sidebar\",\r\n\t\t\t\ticon: this.icon\r\n\t\t\t}));\r\n\r\n\t\t\tthis.#UpdateActiveState();\r\n\t\t}\r\n\t}\r\n\r\n\t#UpdateActiveState() {\r\n\t\tconst fullURL = Browser.ResolveRelativeURL(this.link);\r\n\r\n\t\tlet isCurrent = location.toString().toLowerCase().startsWith(fullURL.toLowerCase()),\r\n\t\t\tmarkActive = isCurrent;\r\n\r\n\t\tif (isCurrent) {\r\n\t\t\tconst pathCount = Browser.GetPaths(fullURL).length,\r\n\t\t\t\tlist = this.closest(\"ul\");\r\n\r\n\t\t\t[...list.querySelectorAll(\"chip-button\")].filter(x => x !== this)\r\n\t\t\t\t.forEach(x => {\r\n\t\t\t\t\tconst alsoMatches = location.toString().toLowerCase().startsWith(Browser.ResolveRelativeURL(x.link).toLowerCase());\r\n\r\n\t\t\t\t\tif (alsoMatches) {\r\n\t\t\t\t\t\tx.active = Browser.GetPaths(Browser.ResolveRelativeURL(x.link)).length > pathCount;\r\n\r\n\t\t\t\t\t\tif (x.active) {\r\n\t\t\t\t\t\t\tmarkActive = false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tx.active = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\tthis.addEventListener(\"parsed\", () => {\r\n\t\t\t\tif (list.offsetTop + list.offsetHeight <= this.offsetTop) {\r\n\t\t\t\t\tlist.scrollTo({ top: this.offsetTop });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.querySelector(\"chip-button\").active = markActive;\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Beacon extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.variation = this.getAttribute(\"variation\") ?? \"theme\";\r\n\t\tthis.size = this.getAttribute(\"size\");\r\n\t\tthis.paused = this.hasAttribute(\"paused\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.classList.add(\"beacon\", `beacon--${this.variation.toLowerCase()}`);\r\n\r\n\t\tif (this.size) { this.classList.add(`beacon--${this.size.toLowerCase()}`) };\r\n\t\tif (this.paused) { this.classList.add(\"beacon--off\"); }\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Icon extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"icon\", \"colour\"];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.icon = this.getAttribute(\"icon\") ?? \"fas fa-icons\";\r\n\t\tthis.colour = this.getAttribute(\"colour\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tif (this.colour) { this.dataset.colour = this.colour; }\r\n\t\tthis.classList.add(...this.icon.split(\" \"));\r\n\t}\r\n\r\n\tattributeChanged(name, oldValue, newValue) {\r\n\t\tswitch (name) {\r\n\t\t\tcase \"icon\":\r\n\t\t\t\tif (oldValue) { this.classList.remove(...oldValue.split(\" \")); }\r\n\t\t\t\tif (newValue) { this.classList.add(...newValue.split(\" \")); }\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"colour\":\r\n\t\t\t\tif (newValue) { this.dataset.colour = this.colour; }\r\n\t\t\t\telse { this.removeAttribute(\"data-colour\"); }\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Select extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"value\", \"description\", \"label\", \"required\"];\r\n\r\n\t#Mappers = {};\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.label = this.getAttribute(\"label\") ?? \"\";\r\n\t\tthis.secondaryLabel = this.getAttribute(\"secondary-label\") ?? \"\";\r\n\t\tthis.value = this.getAttribute(\"value\") ?? \"\";\r\n\t\tthis.orientation = this.getAttribute(\"orientation\");\r\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? crypto.randomUUID().slice(0, 8);\r\n\t\tthis.required = this.hasAttribute(\"required\");\r\n\t\tthis.helperText = this.getAttribute(\"helper-text\") ?? \"\";\r\n\t\tthis.readonly = this.getAttribute(\"readonly\") ?? false;\r\n\t\tthis.description = this.getAttribute(\"description\");\r\n\r\n\t\tthis.#Mappers = {\r\n\t\t\tname: this.getAttribute(\"name\"),\r\n\t\t\tautofocus: this.hasAttribute(\"focus\"),\r\n\t\t\tautocomplete: this.getAttribute(\"autocomplete\"),\r\n\t\t\treadonly: this.readonly,\r\n\t\t\trequired: this.hasAttribute(\"required\"),\r\n\t\t\ttabIndex: this.getAttribute(\"tabindex\") ?? \"\"\r\n\t\t};\r\n\r\n\t\tObject.keys(this.#Mappers).forEach(key => this[key] = this.#Mappers[key]);\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst select = document.createElementWithContents(\"select\", [...this.querySelectorAll(\":scope > chip-option\")].map(x => document.createElementWithContents(\"option\", x, { value: x.value })), {\r\n\t\t\tid: this.identifier,\r\n\t\t\tonchange: () => {\r\n\t\t\t\tthis.value = select.value\r\n\t\t\t\tthis.reportValidity();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (this.label || this.secondaryLabel) {\r\n\t\t\tconst label = document.createElementWithContents(\"label\", this.label, {\r\n\t\t\t\thtmlFor: this.identifier,\r\n\t\t\t\tclassName: \"input-field__label\"\r\n\t\t\t});\r\n\r\n\t\t\tif (this.secondaryLabel) { label.appendChild(document.createElementWithContents(\"span\", this.secondaryLabel, { className: \"input-field__label--secondary\" })); }\r\n\r\n\t\t\tthis.appendChild(label);\r\n\t\t} else if (this.description) {\r\n\t\t\tselect.ariaLabel = this.description;\r\n\t\t}\r\n\r\n\t\tObject.keys(this.#Mappers).filter(x => this.#Mappers[x])\r\n\t\t\t.forEach(key => select.setAttribute(key, this.#Mappers[key] === true ? \"\" : this.#Mappers[key]));\r\n\r\n\t\tif (this.value) { select.value = this.value; }\r\n\t\telse { this.value = select.value; }\r\n\r\n\t\tthis.appendChild(document.createElementWithContents(\"div\", select, { className: \"select__wrapper\" }));\r\n\r\n\t\tif (this.helperText) {\r\n\t\t\tconst helperTextMethod = Browser.GetFlavour() === \"gov\" ? \"beforebegin\" : \"afterend\";\r\n\r\n\t\t\tselect.insertAdjacentElement(helperTextMethod, document.createElementWithContents(\"div\", this.helperText, {\r\n\t\t\t\tclassName: \"input-field__helper-text\"\r\n\t\t\t}));\r\n\t\t}\r\n\t}\r\n\r\n\tcheckValidity() {\r\n\t\treturn this.querySelector(\"select\")?.checkValidity() ?? false;\r\n\t}\r\n\r\n\tsetInvalid(message) {\r\n\t\tconst select = this.querySelector(\"select\"),\r\n\t\t\tmsgElement = document.createElementWithContents(\"div\", message, { className: \"input-field__validation-error\" });\r\n\r\n\t\tif (!this.disableMessages) {\r\n\t\t\tif (Browser.GetFlavour() === \"gov\") {\r\n\t\t\t\tthis.querySelector(\".select__wrapper\").insertAdjacentElement(\"beforebegin\", msgElement);\r\n\t\t\t} else {\r\n\t\t\t\tthis.appendChild(msgElement);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tselect.classList.add(\"input-field__invalid\");\r\n\r\n\t\tthis.querySelectorAll(\".input__bound\").forEach(x => x.classList.add(\"input-field__invalid\"));\r\n\t}\r\n\r\n\treportValidity() {\r\n\t\tconst select = this.querySelector(\"select\"),\r\n\t\t\tvalidity = this.checkValidity();\r\n\r\n\t\tthis.querySelector(\".input-field__validation-error\")?.remove();\r\n\t\tthis.querySelectorAll(\".input-field__invalid\").forEach(x => x.removeClass(\"input-field__invalid\"));\r\n\r\n\t\tif (!validity) {\r\n\t\t\tthis.setInvalid(select.validationMessage || this.validationMessage);\r\n\t\t}\r\n\r\n\t\treturn validity;\r\n\t}\r\n\r\n\tattributeChanged(name, _, newValue) {\r\n\t\tswitch (name) {\r\n\t\t\tcase \"value\":\r\n\t\t\t\tthis.querySelector(\"select\").value = newValue;\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"required\":\r\n\t\t\t\t{\r\n\t\t\t\t\tconst select = this.querySelector(\"select\");\r\n\r\n\t\t\t\t\tif (select) {\r\n\t\t\t\t\t\tselect.required = this.IsAttributeValueTrue(newValue);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"label\":\r\n\t\t\t\t{\r\n\t\t\t\t\tconst label = this.querySelector(\".input-field__label\");\r\n\r\n\t\t\t\t\tif (label) {\r\n\t\t\t\t\t\tlabel.textContent = newValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"description\":\r\n\t\t\t\t{\r\n\t\t\t\t\tconst select = this.querySelector(\"select\");\r\n\r\n\t\t\t\t\tif (select && !document.querySelector(`[for='${select.id}']`)) {\r\n\t\t\t\t\t\tselect.ariaLabel = newValue;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class ChipOption extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.value = this.getAttribute(\"value\") ?? \"\";\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Carousel extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.autoScrollInterval = parseInt(this.getAttribute(\"auto-scroll-interval\")) || 0;\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst slides = [...this.querySelectorAll(\":scope > chip-carouselslide\")];\r\n\r\n\t\tif (slides.length && !slides.some(x => x.active)) {\r\n\t\t\tslides.at(0).active = true;\r\n\t\t}\r\n\r\n\t\tconst activeSlide = slides.find(x => x.active);\r\n\r\n\t\tthis.appendChild(document.createElementWithContents(\"div\", document.createElementWithContents(\"ul\",\r\n\t\t\tslides.map(x => document.createElementWithContents(\"li\", x)), {\r\n\t\t\tclassName: \"carousel__slide-list\"\r\n\t\t}), {\r\n\t\t\tclassName: \"carousel__slide-container\"\r\n\t\t}));\r\n\r\n\t\tthis.append(document.createElementWithContents(\"chip-button\", null, {\r\n\t\t\tbuttonStyle: \"icon\",\r\n\t\t\tdescription: \"Previous slide\",\r\n\t\t\tvariation: \"none\",\r\n\t\t\tonclick: () => this.#GoPrevious(),\r\n\t\t\ticon: \"far fa-chevron-left\",\r\n\t\t\tclassName: \"carousel__action--previous\"\r\n\t\t}),\r\n\t\t\tdocument.createElementWithContents(\"chip-button\", null, {\r\n\t\t\t\tbuttonStyle: \"icon\",\r\n\t\t\t\tdescription: \"Next slide\",\r\n\t\t\t\tvariation: \"none\",\r\n\t\t\t\tonclick: () => this.#GoNext(),\r\n\t\t\t\ticon: \"far fa-chevron-right\",\r\n\t\t\t\tclassName: \"carousel__action--next\"\r\n\t\t\t}));\r\n\r\n\t\tif (activeSlide) {\r\n\t\t\tthis.querySelector(\".carousel__slide-list\").scrollTo({ left: activeSlide.parentElement.offsetLeft });\r\n\t\t}\r\n\r\n\t\tif (this.autoScrollInterval) {\r\n\t\t\tsetInterval(() => {\r\n\t\t\t\tthis.#GoNext();\r\n\t\t\t}, this.autoScrollInterval);\r\n\t\t}\r\n\t}\r\n\r\n\t#GoNext() {\r\n\t\tlet target = (this.querySelector(\"chip-carouselslide[active]\") ?? this.querySelector(\"chip-carouselslide\"))?.parentElement;\r\n\r\n\t\tif (target?.nextElementSibling) {\r\n\t\t\ttarget = target?.nextElementSibling.querySelector(\"chip-carouselslide\");\r\n\t\t} else {\r\n\t\t\ttarget = this.querySelector(\"chip-carouselslide\");\r\n\t\t}\r\n\r\n\t\tif (target) {\r\n\t\t\ttarget.active = true;\r\n\t\t}\r\n\t}\r\n\r\n\t#GoPrevious() {\r\n\t\tlet target = (this.querySelector(\"chip-carouselslide[active]\") ?? this.querySelector(\"chip-carouselslide\"))?.parentElement;\r\n\r\n\t\tif (target?.previousElementSibling) {\r\n\t\t\ttarget = target?.previousElementSibling.querySelector(\"chip-carouselslide\");\r\n\t\t} else {\r\n\t\t\ttarget = this.querySelector(\":scope > div > ul > li:last-child chip-carouselslide\");\r\n\t\t}\r\n\r\n\t\tif (target) {\r\n\t\t\ttarget.active = true;\r\n\t\t}\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class CarouselSlide extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"active\"];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.active = this.hasAttribute(\"active\");\r\n\t}\r\n\r\n\tattributeChanged(name, _, newValue) {\r\n\t\tif (name === \"active\") {\r\n\t\t\tif (this.IsAttributeValueTrue(newValue)) {\r\n\t\t\t\t[...this.closest(\"chip-carousel\")?.querySelectorAll(\":scope > div > ul > li > chip-carouselslide\") ?? []]\r\n\t\t\t\t\t.forEach(x => x.active = x === this);\r\n\t\t\t}\r\n\r\n\t\t\tthis.closest(\"chip-carousel\")?.querySelector(\".carousel__slide-list\")?.scrollTo({ left: this.parentElement.offsetLeft, behavior: \"smooth\" });\r\n\t\t}\r\n\t}\r\n}","import { Browser } from \"../../core/browser\";\r\nimport { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Link extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.href = this.getAttribute(\"href\") ?? \"\";\r\n\t\tthis.target = this.getAttribute(\"target\") ?? \"\";\r\n\t\tthis.rel = this.getAttribute(\"rel\") ?? \"\";\r\n\t\tthis.download = this.hasAttribute(\"download\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst anchor = document.createElementWithContents(\"a\", this.childNodes, {\r\n\t\t\thref: Browser.ResolveRelativeURL(this.href)\r\n\t\t});\r\n\r\n\t\tif (this.target) { anchor.target = this.target; }\r\n\t\tif (this.rel) { anchor.rel = this.rel; }\r\n\t\tif (this.download) { anchor.download = true; }\r\n\r\n\t\tthis.appendChild(anchor);\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class DateFormat extends AuxiliumComponent {\r\n\t#defaultCulture = \"en-GB\";\r\n\r\n\t#presets = {\r\n\t\tlongdate: {\r\n\t\t\tyear: \"numeric\",\r\n\t\t\tmonth: \"long\",\r\n\t\t\tday: \"numeric\"\r\n\t\t},\r\n\t\tlongtime: {\r\n\t\t\thour: \"numeric\",\r\n\t\t\tminute: \"numeric\",\r\n\t\t\tsecond: \"numeric\"\r\n\t\t},\r\n\t\tshortdate: {\r\n\t\t\tyear: \"numeric\",\r\n\t\t\tmonth: \"numeric\",\r\n\t\t\tday: \"numeric\"\r\n\t\t},\r\n\t\tshorttime: {\r\n\t\t\thour: \"numeric\",\r\n\t\t\tminute: \"numeric\"\r\n\t\t},\r\n\t\tshortdatetime: {\r\n\t\t\tyear: \"numeric\",\r\n\t\t\tmonth: \"numeric\",\r\n\t\t\tday: \"numeric\",\r\n\t\t\thour: \"numeric\",\r\n\t\t\tminute: \"numeric\"\r\n\t\t},\r\n\t\tlongdatetime: {\r\n\t\t\tyear: \"numeric\",\r\n\t\t\tmonth: \"long\",\r\n\t\t\tday: \"numeric\",\r\n\t\t\thour: \"numeric\",\r\n\t\t\tminute: \"numeric\"\r\n\t\t},\r\n\t\tfulldate: {\r\n\t\t\tweekday: \"long\",\r\n\t\t\tyear: \"numeric\",\r\n\t\t\tmonth: \"long\",\r\n\t\t\tday: \"numeric\"\r\n\t\t}\r\n\t}\r\n\r\n\t#now = new Date();\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.date = new Date(this.getAttribute(\"date\") ?? this.#now);\r\n\t\tthis.preset = this.getAttribute(\"preset\") ?? \"\";\r\n\t\tthis.formal = this.hasAttribute(\"formal\");\r\n\t\tthis.culture = this.getAttribute(\"lang\") || document.documentElement.dataset.culture || navigator.language;\r\n\t\tthis.relative = this.hasAttribute(\"relative\");\r\n\t\tthis.capitalise = this.hasAttribute(\"capitalise\");\r\n\t\tthis.hint = this.getAttribute(\"hint\") ?? \"\";\r\n\t}\r\n\r\n\t#GetOptions() {\r\n\t\tif (this.preset) { return this.#presets[this.preset.toLowerCase()]; }\r\n\r\n\t\treturn {};\r\n\t}\r\n\r\n\t#Round(num, threshold = 0.001) {\r\n\t\tif (num > 0) {\r\n\t\t\treturn (num - Math.floor(num)) < 1 - threshold ? Math.floor(num) : Math.ceil(num);\r\n\t\t} else {\r\n\t\t\treturn (Math.ceil(num) - num) < threshold ? Math.floor(num) : Math.ceil(num);\r\n\t\t}\r\n\t}\r\n\r\n\t#GetRelative() {\r\n\t\tconst formatter = new Intl.RelativeTimeFormat([this.culture, this.#defaultCulture], { numeric: \"auto\" }),\r\n\t\t\ttimeDifference = this.date - this.#now;\r\n\r\n\t\tconst baseUnit = 1000;\r\n\r\n\t\tconst seconds = this.#Round(timeDifference / baseUnit),\r\n\t\t\tminutes = this.#Round(timeDifference / (baseUnit * 60)),\r\n\t\t\thours = this.#Round(timeDifference / (baseUnit * 3600)),\r\n\t\t\tdays = this.#Round(timeDifference / (baseUnit * 86400), 0.0001),\r\n\t\t\tweeks = this.#Round(timeDifference / (baseUnit * 604800), 0.00001),\r\n\t\t\tyears = this.#Round(timeDifference / (baseUnit * 31536000), 0.0000001);\r\n\r\n\t\tconst yearsDiff = this.date.getFullYear() - this.#now.getFullYear();\r\n\t\tconst monthsDiff = this.date.getMonth() - this.#now.getMonth();\r\n\r\n\t\tconst months = yearsDiff * 12 + monthsDiff;\r\n\r\n\t\tif (Math.abs(seconds) < 60) {\r\n\t\t\treturn Math.abs(seconds) < 1 ? formatter.format(0, 'second') : formatter.format(seconds, \"seconds\");\r\n\t\t} else if (Math.abs(minutes) < 60) {\r\n\t\t\treturn formatter.format(minutes, 'minutes');\r\n\t\t} else if (Math.abs(hours) < 24) {\r\n\t\t\treturn formatter.format(hours, 'hours');\r\n\t\t} else if (Math.abs(days) < 7) {\r\n\t\t\treturn formatter.format(days, 'days');\r\n\t\t} else if (Math.abs(weeks) < 5) {\r\n\t\t\treturn formatter.format(weeks, 'weeks');\r\n\t\t} else if (Math.abs(months) < 12) {\r\n\t\t\treturn formatter.format(months, 'months');\r\n\t\t} else {\r\n\t\t\treturn formatter.format(years, 'years');\r\n\t\t}\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tif (!this.relative) { this.innerHTML = new Intl.DateTimeFormat([this.culture, this.#defaultCulture], this.#GetOptions()).format(this.date); }\r\n\t\telse { this.innerHTML = this.#GetRelative(); }\r\n\r\n\t\tif (this.capitalise) { this.innerHTML = capitalise(this.innerHTML.trim()); }\r\n\t\tif (this.hint) {\r\n\t\t\tconst hint = new Intl.DateTimeFormat([this.culture, this.#defaultCulture], this.#presets[this.hint.toLowerCase()]).format(this.date);\r\n\r\n\t\t\tif (hint !== this.innerHTML.trim()) {\r\n\t\t\t\tthis.tooltip = hint;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Grid extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.gap = this.getAttribute(\"gap\") ?? \"\";\r\n\r\n\t\tthis.columns = parseInt(this.getAttribute(\"columns\")) || 0;\r\n\t\tthis.columnsSmall = parseInt(this.getAttribute(\"columns-sm\")) || 0;\r\n\t\tthis.columnsMedium = parseInt(this.getAttribute(\"columns-md\")) || 0;\r\n\t\tthis.columnsLarge = parseInt(this.getAttribute(\"columns-lg\")) || 0;\r\n\t\tthis.columnsExtraLarge = parseInt(this.getAttribute(\"columns-xl\")) || 0;\r\n\t\tthis.columnsExtraExtraLarge = parseInt(this.getAttribute(\"columns-xxl\")) || 0;\r\n\r\n\t\tif (!this.id) { this.id = `cg${crypto.randomUUID().slice(0, 8)}`; }\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tif ([this.columns, this.columnsSmall, this.columnsMedium].some(x => x)) {\r\n\t\t\tlet sheet = (document.getElementById(\"stAuxilium\") ?? document.head.appendChild(document.createElementWithContents(\"style\", null, { id: \"stAuxilium\" }))).sheet,\r\n\t\t\t\trule = `#${this.id} {`;\r\n\r\n\t\t\tif (this.columns) { rule += `--grid-columns: ${this.columns};`; };\r\n\t\t\tif (this.columnsSmall) { rule += `--grid-columns-sm: ${this.columnsSmall};`; };\r\n\t\t\tif (this.columnsMedium) { rule += `--grid-columns-md: ${this.columnsMedium};`; };\r\n\t\t\tif (this.columnsLarge) { rule += `--grid-columns-lg: ${this.columnsLarge};`; };\r\n\t\t\tif (this.columnsExtraLarge) { rule += `--grid-columns-xl: ${this.columnsExtraLarge};`; };\r\n\t\t\tif (this.columnsExtraExtraLarge) { rule += `--grid-columns-xxl: ${this.columnsExtraExtraLarge};`; };\r\n\r\n\t\t\tsheet.insertRule(rule + \"}\", sheet.cssRules.length);\r\n\t\t}\r\n\r\n\t\tconst list = document.createElementWithContents(\"ul\", [...this.childNodes ?? []].filter(x => x.nodeType !== Node.TEXT_NODE || x.textContent.trim())\r\n\t\t\t.map(child => document.createElementWithContents(\"li\", child)));\r\n\r\n\t\tthis.appendChild(list);\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class ProgressBar extends AuxiliumComponent {\r\n\tstatic observedAttributes = [\"value\", \"max\"];\r\n\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.identifier = this.getAttribute(\"identifier\") ?? crypto.randomUUID().slice(0, 8);\r\n\r\n\t\tthis.min = this.getAttribute(\"min\") ?? \"0\";\r\n\t\tthis.max = this.getAttribute(\"max\") ?? \"100\";\r\n\t\tthis.low = this.getAttribute(\"low\") ?? this.min;\r\n\t\tthis.lowWarning = this.getAttribute(\"low-warning\") ?? this.min;\r\n\t\tthis.high = this.getAttribute(\"high\") ?? this.max;\r\n\t\tthis.highWarning = this.getAttribute(\"high-warning\") ?? this.max;\r\n\t\tthis.indeterminate = this.hasAttribute(\"indeterminate\");\r\n\t\tthis.value = this.getAttribute(\"value\") ?? (this.indeterminate ? this.max : \"0\");\r\n\r\n\t\tthis.label = this.getAttribute(\"label\");\r\n\t\tthis.secondaryLabel = this.getAttribute(\"secondary-label\") ?? \"\";\r\n\t\tthis.helperText = this.getAttribute(\"helper-text\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tif (this.label) {\r\n\t\t\tthis.appendChild(document.createElementWithContents(\"label\", this.label, {\r\n\t\t\t\tclassName: \"input-field__label\"\r\n\t\t\t}));\r\n\t\t}\r\n\r\n\t\tconst progress = document.createElementWithContents(\"progress\", null, {\r\n\t\t\tid: this.identifier,\r\n\t\t\tmax: this.max,\r\n\t\t\tvalue: this.value\r\n\t\t});\r\n\r\n\t\tthis.appendChild(progress);\r\n\r\n\t\tif (this.indeterminate) {\r\n\t\t\tthis.appendChild(document.createElementWithContents(\"div\",\r\n\t\t\t\t`\r\n\t\t\t\t
\r\n\t\t\t`\r\n\t\t\t\t, { className: \"progress-bar\" }));\r\n\t\t}\r\n\r\n\t\tthis.#updateState();\r\n\t}\r\n\r\n\t#updateState() {\r\n\t\tthis.toggleClass(\"progress--low\", (parseInt(this.value) || 0) < (parseInt(this.low) || 0));\r\n\t\tthis.toggleClass(\"progress--high\", (parseInt(this.value) || 0) > (parseInt(this.high) || 0));\r\n\t\tthis.toggleClass(\"progress--low-warning\", (parseInt(this.value) || 0) < (parseInt(this.lowWarning) || 0) && !this.classList.contains(\"progress--low\"));\r\n\t\tthis.toggleClass(\"progress--high-warning\", (parseInt(this.value) || 0) > (parseInt(this.highWarning) || 0) && !this.classList.contains(\"progress--high\"));\r\n\t}\r\n\r\n\tattributeChanged(name, _, newValue) {\r\n\t\tswitch (name) {\r\n\t\t\tcase \"max\":\r\n\t\t\t\t{\r\n\t\t\t\t\tconst bar = this.querySelector(\"progress\");\r\n\r\n\t\t\t\t\tif (bar) { bar.max = newValue; }\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"value\":\r\n\t\t\t\t{\r\n\t\t\t\t\tconst bar = this.querySelector(\"progress\");\r\n\r\n\t\t\t\t\tif (bar && !this.indeterminate) { bar.value = newValue; }\r\n\t\t\t\t\tthis.#updateState();\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t};\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class Loading extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.type = this.getAttribute(\"type\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tthis.innerHTML = (() => {\r\n\t\t\tswitch (this.type) {\r\n\t\t\t\tdefault: return '
';\r\n\t\t\t}\r\n\t\t})();\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class List extends AuxiliumComponent {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.ordered = this.hasAttribute(\"ordered\");\r\n\t\tthis.flush = this.hasAttribute(\"flush\");\r\n\t\tthis.gap = this.getAttribute(\"gap\");\r\n\t\tthis.clickable = this.hasAttribute(\"clickable\");\r\n\t\tthis.buttonPadding = this.getAttribute(\"button-padding\");\r\n\t}\r\n\r\n\tparsedCallback() {\r\n\t\tconst list = document.createElementWithContents(this.ordered ? \"ol\" : \"ul\", [...this.querySelectorAll(\":scope > chip-listitem\")]\r\n\t\t\t.map(x => document.createElementWithContents(\"li\", x)));\r\n\r\n\t\tif (this.flush) { list.classList.add(\"list-flush\"); }\r\n\t\tif (this.gap) { list.classList.add(`spaced-list--${this.gap}`); }\r\n\r\n\t\tthis.appendChild(list);\r\n\t}\r\n}","import { AuxiliumComponent } from \"../auxilium-component\";\r\n\r\nexport class ListItem extends AuxiliumComponent {\r\n\tparsedCallback() {\r\n\t\tif (this.closest(\"chip-list\")?.hasAttribute(\"clickable\")) {\r\n\t\t\tthis.appendChild(document.createElementWithContents(\"chip-button\", this.childNodes, {\r\n\t\t\t\tvariation: \"body\",\r\n\t\t\t\tclassName: \"list--button\"\r\n\t\t\t}));\r\n\t\t}\r\n\t}\r\n}"],"names":["s","hljs","e","t","Map","clear","delete","set","Error","Set","add","Object","freeze","getOwnPropertyNames","forEach","n","i","isFrozen","constructor","data","this","isMatchIgnored","ignoreMatch","replace","create","scope","o","buffer","classPrefix","walk","addText","openNode","prefix","startsWith","includes","split","shift","map","repeat","join","span","closeNode","value","r","children","assign","a","rootNode","stack","top","length","root","push","pop","closeAllNodes","toJSON","JSON","stringify","_walk","_collapse","every","c","super","options","startScope","endScope","__addSublanguage","toHTML","finalize","l","source","g","h","u","d","f","splice","capture","p","RegExp","toString","exec","b","m","joinWith","substring","index","Number","E","x","w","y","_","O","begin","relevance","v","end","illegal","contains","k","N","excludeBegin","S","M","R","j","__proto__","APOS_STRING_MODE","BACKSLASH_ESCAPE","BINARY_NUMBER_MODE","BINARY_NUMBER_RE","COMMENT","C_BLOCK_COMMENT_MODE","C_LINE_COMMENT_MODE","C_NUMBER_MODE","C_NUMBER_RE","END_SAME_AS_BEGIN","_beginMatch","HASH_COMMENT_MODE","IDENT_RE","MATCH_NOTHING_RE","METHOD_GUARD","NUMBER_MODE","NUMBER_RE","PHRASAL_WORDS_MODE","QUOTE_STRING_MODE","REGEXP_MODE","RE_STARTERS_RE","SHEBANG","binary","TITLE_MODE","UNDERSCORE_IDENT_RE","UNDERSCORE_TITLE_MODE","A","input","I","className","T","beginKeywords","__beforeBegin","keywords","L","Array","isArray","B","match","P","D","beforeMatch","starts","keys","endsParent","H","C","$","toLowerCase","U","z","W","console","error","X","log","G","K","F","key","_emit","_multi","Z","beginScope","_wrap","skip","returnBegin","excludeEnd","returnEnd","V","case_insensitive","unicodeRegex","matchIndexes","regexes","matchAt","position","addRule","compile","matcherRe","lastIndex","findIndex","rules","multiRegexes","count","regexIndex","getMatcher","slice","resumingScanAtSamePosition","considerAll","type","compilerExtensions","classNameAliases","isCompiled","$pattern","keywordPatternRe","beginRe","endsWithParent","endRe","terminatorEnd","illegalRe","concat","variants","cachedVariants","q","matcher","rule","J","name","html","Y","Q","ee","Symbol","te","disableAutodetect","ignoreUnescapedHTML","throwUnescapedHTML","noHighlightRe","languageDetectRe","cssSelector","languages","__emitter","test","ignoreIllegals","language","code","result","subLanguage","_top","_emitter","parent","languageName","badRule","mode","unshift","__emitTokens","message","_illegalBy","context","resultSoFar","errorRaised","filter","sort","supersetOf","secondBest","parentNode","find","el","dataset","highlighted","warn","innerHTML","textContent","classList","re","text","document","readyState","querySelectorAll","window","addEventListener","highlight","highlightAuto","highlightAll","highlightElement","highlightBlock","configure","initHighlighting","initHighlightingOnLoad","registerLanguage","rawDefinition","bind","aliases","unregisterLanguage","listLanguages","getLanguage","registerAliases","autoDetection","inherit","addPlugin","block","removePlugin","indexOf","debugMode","safeMode","versionString","regex","lookahead","either","optional","anyNumberOfTimes","ne","newInstance","exports","module","keyword","built_in","literal","reverse","IMPORTANT","BLOCK_COMMENT","HEXCOLOR","FUNCTION_DISPATCH","ATTRIBUTE_SELECTOR_MODE","CSS_NUMBER_MODE","CSS_VARIABLE","keyframePosition","attribute","isTrulyOpeningTag","after","label","PARAMS_CONTAINS","CLASS_REFERENCE","exceptions","when","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","id","loaded","__webpack_modules__","definition","defineProperty","enumerable","get","globalThis","Function","hmd","obj","prop","prototype","hasOwnProperty","call","toStringTag","ToFormData","formData","FormData","append","Refresh","location","href","ResolveRelativeURL","url","includeCulture","tildaReplacement","documentElement","serverPath","origin","endsWith","culture","URL","static","parseInt","GetPaths","isNaN","SetTestFunction","fn","existing","querySelector","onclick","body","appendChild","createElementWithContents","variation","SubmitSSO","clientID","email","form","GetURLParameter","method","target","action","submit","SetFlavour","flavour","local","localStorage","setItem","getElementById","remove","flavourURL","createElement","rel","_setFlavourLocalization","PrintBlob","blob","iframe","src","createObjectURL","onload","contentWindow","print","cleanUp","removeEventListener","colour","includeCorporate","GetFlavour","getItem","SetColourMode","theme","removeAttribute","removeItem","Razor","InvokeThemeChange","ToggleColourMode","TryParseJSON","parse","pathname","trim","cookie","AddMonths","date","amount","setDate","setMonth","getMonth","Math","min","getDate","getFullYear","AddYears","setFullYear","year","month","title","navigator","serviceWorker","ready","then","reg","getNotifications","notifications","tag","showNotification","ShowNotification","icon","Notification","permission","requestPermission","parameter","URLSearchParams","search","getAll","GetURLParameters","at","SetURLParameters","parameters","ignoreIdentical","params","all","String","newValue","newUrl","ListenForShortcut","modifiers","callback","ignoreInputs","event","relatedTarget","closest","toUpperCase","modifierChecker","CTRL","ctrlKey","ALT","altKey","SHIFT","shiftKey","META","metaKey","preventDefault","NegativeText","AffirmativeText","ButtonText","Size","Icon","CentreHeader","BackdropDismiss","Show","Open","Title","Message","Theme","ButtonSide","ShowError","close","ShowImage","Centre","CustomHTML","outerHTML","ShowWarning","ShowSuccess","ShowConfirmation","ShowInput","InputType","ShowTextBox","ShowDatePicker","ShowTimePicker","ShowPassword","ShowCustom","ShowPartialView","viewName","viewOptions","GetPartialView","row","detail","secondaryIdentifier","identifier","dialog","resolve","InputAttributes","DefaultValue","nodeName","onparsed","select","onkeyup","ev","Multiline","OnCheckValid","objectSearchbar","entryCount","table","listView","refreshResolveEvents","element","focus","timeout","oninput","clearTimeout","setTimeout","OnSearch","Promise","ListView","Search","Table","GetVisibleRows","GetAllRows","OnRefreshEvents","Close","DefaultOptions","btn","affirmative","OnBeforeOpen","OpenModal","focusElement","instance","onclose","showModal","OnOpened","Appearance","custom","Node","Scrollable","details","header","FullHeight","replaceAll","footerButtons","closeCSSSelector","onmousedown","onmouseup","UnloadInitialized","headers","preventSlidingExpiration","processData","ResponseOverrides","LoadTimeout","Localizer","ERROR_TITLE","ERROR_MESSAGE","preventTimeout","abortController","AbortController","config","queryParameters","signal","OnBeforeSend","HTMLFormElement","parsedURL","hash","entries","item","searchParams","fetchResponse","fetch","ok","redirected","status","statusText","content","response","json","OnComplete","HandleResponse","success","async","overrides","any","func","BAD_REQUEST","NOT_FOUND","ACCESS_DENIED_TITLE","ACCESS_DENIED","removeClass","ShowInfo","toast","firstElementChild","CloseToast","onmouseenter","onmouseleave","toastContainer","prepend","View","OnOpenLink","query","items","newSet","toggleClass","collapser","hide","RefreshListViews","Caption","parentElement","nextElementSibling","SelectedCountLabel","TableHead","ForbidMultiSelect","multiselect","DelegateEvents","RowSelector","DataRowSelector","ValidRowSelector","HeaderSelector","LastSelectedIndex","tBody","GetRowFromEvent","SelectRow","dispatchEvent","CustomEvent","button","PickRow","OpenRowURL","matches","keyCode","SelectNextRow","SelectPreviousRow","UpdateSelectedCount","rows","GetSelectedRows","sortOrder","requestedField","requestedSort","GetNextSort","appended","SetURLParameter","from","tBodies","ondblclick","oncontextmenu","onkeydown","field","SortHeader","SortByName","externalPointer","open","openType","rowsSelected","isRange","solitary","RowAt","max","currentIndex","GetRowIndex","start","GetRowsFromIndices","fill","ix","toggledCount","newIndex","selectedCount","arrRows","removeClasses","GetSelectedIndex","includeGroupRows","indices","GoToPage","pageNumber","page","GetRowDetails","retVal","RefreshTables","OnStateUpdate","handler","parsed","modelProperties","ajaxOptions","Post","GetHandlerURL","view","pragma","RenderPartialView","container","LoadingIcon","UpdateState","disabled","FireButtonAjax","buttonForm","send","ajax","SkipFormValidation","reportValidity","pair","CheckValid","responseOverride","history","replaceState","ReturnURL","OnBadRequest","GetBadRequestReason","Handler","getAttribute","formAction","onbeforeunload","requiresConfirmation","ConfirmationData","Body","errors","errorMessage","UpdateThemeToggleText","btnThemeToggle","tooltip","description","width","left","height","right","getBoundingClientRect","__tooltipID","role","scrollY","scrollX","PLACEMENT_FNS","placeTop","style","setAttribute","placeRight","placeBottom","placeLeft","tooltipDimensions","currentDirection","innerWidth","RefreshTooltips","showTimeout","hideTimeout","hideTooltip","crypto","randomUUID","hasAttribute","ariaLabel","onmouseover","dropdown","onmouseout","OnThemeChange","nav","collapsed","enhance","Date","bar","GetVerificationToken","SetButtonAjax","BlurredMenu","menu","Menu","AllowedClicks","Init","srcElement","blurred","AuxiliumComponent","HTMLElement","init","WeakMap","queue","_onparsed","setQueue","badge","normalizeContent","enhanceContents","observable","observedAttributes","propertyName","letter","val","setValue","GetValidationMessage","control","validity","valid","valueMissing","VALIDATION_REQUIRED","validationMessage","typeMismatch","VALIDATION_TYPE_MISMATCH","patternMismatch","VALIDATION_PATTERN_MISMATCH","tooShort","VALIDATION_TOO_SHORT","tooLong","VALIDATION_TOO_LONG","rangeUnderflow","VALIDATION_RANGE_UNDERFLOW","rangeOverflow","VALIDATION_RANGE_OVERFLOW","stepMismatch","VALIDATION_STEP_MISMATCH","badInput","VALIDATION_BAD_INPUT","InitializeValidationMessages","attributeChangedCallback","oldValue","attributeChanged","IsAttributeValueTrue","attributeName","attrValue","raiseEvent","eventName","Event","bubbles","cancelable","raiseEvents","events","click","disconnectedCallback","fnName","firstChild","nodeType","TEXT_NODE","trimBreaks","connectedCallback","parsedCallback","requestAnimationFrame","isParsed","nextSibling","observer","ownerDocument","onDCL","disconnect","self","MutationObserver","observe","childList","subtree","InitializeCheckboxProperties","checked","required","helperText","Textarea","ResizeObserver","entry","secondaryLabel","codePreview","responsive","readonly","prefixButton","suffixButton","prefixTooltip","suffixTooltip","prefixDescription","suffixDescription","suffixIcon","prefixIcon","maxlength","minlength","spellcheck","placeholder","autofocus","selectionStart","selectionEnd","setSelectionRange","direction","textArea","onselect","onchange","stopPropagation","checkValidity","htmlFor","insertAdjacentElement","buttonStyle","previousElementSibling","Observer","childNodes","isValid","setInvalid","msgElement","disableMessages","Browser","textarea","readOnly","computed","getComputedStyle","component","attempt","scrollPreset","scrollTop","setProperty","scrollHeight","parseFloat","borderBottomWidth","borderTopWidth","Button","loading","iconColour","buttonClass","size","active","link","submits","orientation","stepDirection","download","formaction","formmethod","newLabel","ClassFromVariation","tabContent","tab","selected","isLoading","existingIcon","buttons","anchor","ContextMenu","onopen","onopened","boundarySpacing","refreshTargets","list","addItem","atStart","listItem","mainList","attemptedCoords","OpenMenu","pageX","scrollLeft","clientX","pageY","clientY","OpeningCallback","clientHeight","clientWidth","HandleMenuBlurEvent","ICON_DATASET","ConfigReport","Run","failures","logs","failure","section","problem","sectionData","Toast","lang","breadcrumb","tree","iconPicker","img","strandedHeader","GroupBy","localizationHandler","Reflect","trimBreaksFromElement","lines","indentation","line","trimStart","trimEnd","similarity","s1","s2","longer","shorter","longerLength","costs","lastValue","charAt","editDistance","Proxy","Ajax","FileUploader","Initialize","existingLurker","Lurker","Options","MaximumSize","AllowedExtensions","Buttons","DropAreas","area","ondragenter","ondragover","ondrop","dataTransfer","files","DragDropMessage","Dialog","proceed","kind","getAsFile","reader","btoa","Uint8Array","reduce","byte","fromCharCode","file","getAuxiliumFile","auxFile","getData","getImageSrc","receivedFiles","res","FileReader","mapper","OnFileTooLarge","readAsArrayBuffer","accept","Multiple","IsDirectory","directory","webkitdirectory","multiple","ID","GetPayload","ResourceURL","SaveHandler","DeleteHandler","RestoreHandler","DeleteMessage","EditConfig","PartialView","Payload","InvalidData","GetInvalidData","PartialViewOptions","NewInstanceTitle","Edit","Get","dialogOptions","DialogOptions","Save","failedInputs","OnSave","reason","Delete","OnDelete","Restore","OnRestore","halt","stopImmediatePropagation","wrapWithElement","attributes","wrapper","Document","NodeList","HTMLCollection","urlRegex","traverseNodes","node","textNode","nodeValue","fragment","createDocumentFragment","offset","displayURL","createTextNode","replaceWith","processTextNode","ELEMENT_NODE","replaceURLs","emailRegex","replaceEmails","classNames","isScrollable","SVGElement","some","getPropertyValue","DIALOG_BUTTON_CLOSE","DIALOG_BUTTON_AFFIRMATIVE","DIALOG_BUTTON_NEGATIVE","THEME_BUTTON_DARK","THEME_BUTTON_LIGHT","TOGGLE_DROPDOWN","CONFIRMATION_TITLE","WARNING_TITLE","SUCCESS_TITLE","DROPDOWN_REQUIRED","COPIED_VALUE","TOGGLE_SIDEBAR","getScrollParent","currentParent","scrollingElement","getClipboardText","permissions","state","clipboard","readText","getClipboardData","read","writeClipboardText","writeText","writeClipboard","write","capitalise","str","toTitleCase","upper","newStr","SortCaseInsensitive","localeCompare","array","SearchArray","minLength","splitQuery","matchWholeProp","arrSearched","comparator","IsMatch","OriginalElement","MatchLevel","verboseMatches","originalComparator","customElements","define","heading","subtitle","scroll","image","video","audio","allowPreview","hideBlur","flush","hoverable","setBody","alt","visibleImg","cloneNode","vid","controls","ado","card","checkbox","showPasswordButton","labelTooltip","casing","route","searchParameter","initialValue","autocomplete","pattern","step","tabIndex","GetSearchedItems","wasDynamic","trueValue","labelIcon","ArrowUp","ArrowDown","onselectionchange","selectedText","prefixDropdown","pfxButton","suffixDropdown","sfxButton","valueAsDate","toISOString","editID","editable","actionBar","headerDiv","editButton","columns","columnCount","multiline","copyable","maxHeight","default","preventScroll","valueElement","labelDiv","copyButton","oncopyclicked","SetText","searchable","buttonID","selectOnArrow","localSearch","searchableLabel","hiddenId","hiddenName","dropdownStyle","selectedItem","GetInitialItems","ariaExpanded","buttonContent","hiddenInput","helperTextMethod","activeElement","groups","group","AddItem","hasDropdown","detached","nestedDropdown","showPrompt","initialResults","RefreshItems","results","dropdownButton","containerDimensions","comparatorDimensions","bottom","innerHeight","newLeft","abs","preventClose","isIconPicker","valueChanged","dropdownItem","color","SelectText","hideIcon","ordered","listClass","listItemClass","listStyle","Animation","Speed","Easing","ontouchstart","itemID","which","touches","Hierarchy","Handle","ListItem","List","Items","CurrentDraggable","offsetHeight","cursor","ItemHeight","ListHeight","StartTouchY","StartTop","offsetTop","paddingInlineStart","transform","idx","zIndex","transition","Positions","Position","round","Touch","ontouchmove","ontouchend","onmousemove","temp","changedTouches","newPosition","Item","removeProperty","cssText","allowOpen","actualContent","arrowCollapse","innerText","newIcon","keepOpen","elementName","subItem","opacity","heightDiff","toggleIcon","toggleText","variationClass","clickable","isDynamic","preventButtons","selectedIndex","actionContent","newTab","GetSelectedContent","selectIndex","GetSelectedTab","AddTab","contentDiv","_allowClose","allowClose","tabWrapper","scrollTo","scrollWidth","behavior","Select","contents","Destroy","hadSelection","forms","SetIsValid","ProcessCheckboxes","elements","descriptionColumn","spacing","addButton","closestButton","removeValue","GetThemeColours","SpectrumCursor","SpectrumCanvas","SpectrumDimensions","HueCursor","HueCanvas","HueDimensions","Inputs","Hex","defaultColour","presets","preset","rgb","canvas","getContext","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","yPos","percent","backgroundColor","xPos","xRatio","hsvValue","hsvSaturation","hsv","cmyk","hex","fixed","hsl","clearRect","whiteGradient","blackGradient","vmax","vmin","computedC","computedM","computedY","computedK","minCMY","hue2rgb","fixedValue","badgeStyle","for","forTarget","percentage","background","radio","autowrap","hideButton","codeElement","repaint","CodeHighlight","layout","restrictHeight","Header","Content","Sidebars","RightSidebar","LeftSidebar","centred","restrictWidth","preloadCollapse","side","headingSize","padding","collapsible","brand","topbar","ClearItems","headerIcon","fullURL","isCurrent","markActive","pathCount","paused","autoScrollInterval","slides","activeSlide","offsetLeft","setInterval","longdate","day","longtime","hour","minute","second","shortdate","shorttime","shortdatetime","longdatetime","fulldate","weekday","formal","relative","hint","num","threshold","floor","ceil","formatter","Intl","RelativeTimeFormat","numeric","timeDifference","seconds","minutes","hours","days","weeks","years","months","format","DateTimeFormat","gap","columnsSmall","columnsMedium","columnsLarge","columnsExtraLarge","columnsExtraExtraLarge","sheet","head","insertRule","cssRules","child","low","lowWarning","high","highWarning","indeterminate","progress","buttonPadding","closestTab","closeDropdownsFromEvent","closestInput","testMode"],"sourceRoot":""}