{"version":3,"sources":["webpack:///./src/assets/img/3dots.svg","webpack:///./src/assets/img/camera.svg","webpack:///./node_modules/linkifyjs/html.js","webpack:///./src/assets/img/close.svg","webpack:///./node_modules/linkifyjs/lib/linkify.js","webpack:///./src/assets/img/chevronLeft.svg","webpack:///./src/components/chat/chatMessage.vue?292d","webpack:///./src/components/uoseWriter.vue?e955","webpack:///./src/components/uoseWriter.vue?9c13","webpack:///./src/components/uoseWriter.vue","webpack:///./src/components/customConfirm.vue?1de7","webpack:///./src/views/chat/components/chatHeader.vue?5afd","webpack:///./src/views/chat/components/chatHeader.vue?c5c0","webpack:///./src/views/chat/components/chatHeader.vue","webpack:///./src/assets/img/search.svg","webpack:///./src/assets/img/chat/chatRequest_on.svg","webpack:///./node_modules/linkifyjs/index.js","webpack:///./node_modules/linkifyjs/lib/linkify-html.js","webpack:///./src/assets/img/exclamation_point.png","webpack:///./src/components/customConfirm.vue?3213","webpack:///./src/components/customConfirm.vue?ae52","webpack:///./src/components/customConfirm.vue","webpack:///./src/components/uoseWriter.vue?5168","webpack:///./src/views/chat/modals/chatSettingsModal.vue?2522","webpack:///./src/views/chat/modals/chatSettingsModal.vue?2b2f","webpack:///./src/views/chat/modals/chatSettingsModal.vue","webpack:///./src/components/reportCustomConfirm.vue?0e56","webpack:///./src/components/chat/chatComponent.vue?029b","webpack:///./src/components/photoUploader.vue?cf90","webpack:///./src/components/reportCustomConfirm.vue?d812","webpack:///./src/components/reportCustomConfirm.vue?56d2","webpack:///./src/components/reportCustomConfirm.vue","webpack:///./src/components/chat/imgPreviewModal.vue?b627","webpack:///./src/components/chat/chatComponent.vue?fdf0","webpack:///./src/services/WsServices.ts","webpack:///./src/components/photoUploader.vue?6fd5","webpack:///./src/components/photoUploader.vue?7a79","webpack:///./src/components/photoUploader.vue","webpack:///./src/components/chat/chatMessage.vue?9f83","webpack:///./src/components/chat/chatMessage.vue?71d1","webpack:///./src/components/chat/chatMessage.vue","webpack:///./src/components/chat/imgPreviewModal.vue?134d","webpack:///./src/components/chat/imgPreviewModal.vue?f715","webpack:///./src/components/chat/imgPreviewModal.vue","webpack:///./src/components/chat/chatComponent.vue?4c93","webpack:///./src/components/chat/chatComponent.vue","webpack:///./src/assets/img/folder.svg"],"names":["module","exports","console","warn","State","token","this","j","jr","jd","t","Object","defineProperty","value","prototype","accepts","tt","input","tokenOrState","nextState","makeState","templateState","takeT","assign","append","makeAcceptingState","makeT","startState","makeRegexT","regex","push","state","i","length","_nextState","test","makeMultiT","chars","makeBatchT","transitions","makeChainT","str","endState","defaultStateFactory","len","DOMAIN","LOCALHOST","TLD","NUM","PROTOCOL","MAILTO","WS","NL","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","ASTERISK","AT","BACKSLASH","BACKTICK","CARET","COLON","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","SEMI","SLASH","TILDE","UNDERSCORE","SYM","text","freeze","__proto__","tlds","split","LETTER","EMOJI","EMOJI_VARIATION","DIGIT","SPACE","init$2","customProtocols","arguments","undefined","S_START","S_NUM","S_DOMAIN","S_DOMAIN_HYPHEN","S_WS","DOMAIN_REGEX_TRANSITIONS","makeDomainState","concat","makeNearDomainState","S_PROTOCOL_FILE","S_PROTOCOL_FTP","S_PROTOCOL_HTTP","S_MAILTO","S_PROTOCOL_SECURE","S_FULL_PROTOCOL","S_FULL_MAILTO","S_CUSTOM_PROTOCOL","_i","run$1","start","iterable","stringToArray","replace","c","toLowerCase","charCount","tokens","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","v","substr","s","e","result","index","first","charCodeAt","second","char","slice","_typeof","obj","Symbol","iterator","constructor","defaults","defaultProtocol","events","format","noop","formatHref","nl2br","tagName","target","rel","validate","truncate","className","attributes","ignoreTags","Options","opts","ignoredTags","toUpperCase","val","resolve","href","toHref","formatted","get","toString","formattedHref","getObject","check","key","operator","optionValue","option","options","inherits","parent","child","props","extended","create","p","MultiToken","createTokenClass","type","Token","tk","isLink","startIndex","endIndex","toObject","protocol","end","MailtoEmail","Email","Text","Nl","Url","hasProtocol","hasSlashSlash","join","multi","Base","init$1","S_PROTOCOL","S_PROTOCOL_SLASH","S_PROTOCOL_SLASH_SLASH","S_DOMAIN_DOT","S_TLD","S_TLD_COLON","S_TLD_PORT","S_URL","S_URL_NON_ACCEPTING","S_URL_OPENBRACE","S_URL_OPENBRACKET","S_URL_OPENANGLEBRACKET","S_URL_OPENPAREN","S_URL_OPENBRACE_Q","S_URL_OPENBRACKET_Q","S_URL_OPENANGLEBRACKET_Q","S_URL_OPENPAREN_Q","S_URL_OPENBRACE_SYMS","S_URL_OPENBRACKET_SYMS","S_URL_OPENANGLEBRACKET_SYMS","S_URL_OPENPAREN_SYMS","S_EMAIL_DOMAIN","S_EMAIL_DOMAIN_DOT","S_EMAIL","S_EMAIL_COLON","S_EMAIL_PORT","S_MAILTO_EMAIL","S_MAILTO_EMAIL_NON_ACCEPTING","S_LOCALPART","S_LOCALPART_AT","S_LOCALPART_DOT","S_NL","qsAccepting","qsNonAccepting","localpartAccepting","run","multis","textTokens","secondState","multiLength","parserCreateMultiToken","Multi","subtokens","startIdx","endIdx","INIT","scanner","parser","pluginQueue","initialized","reset","registerPlugin","name","plugin","registerCustomProtocol","Error","init","utils","tokenize","find","filtered","_withId","_hoisted_1","class","ref","_hoisted_2","_hoisted_3","_hoisted_4","src","_hoisted_5","_hoisted_6","_hoisted_7","render","_ctx","_cache","_directive_localizedPlaceholder","_directive_userimage","tabindex","placeholder","contenteditable","onInput","args","setLocalText","maxHeight","minHeight","onKeydown","checkLetter","showSearch","$event","search","onClick","hideSearch","chatSearchCommunities","item","identifier","setCommunity","image","localText","doRec","recbuffer","textarea","$refs","modelValue","innerHTML","searchCommunities","next","prev","LocalizationServices","getLocalizedValue","placeholderKey","placeholderText","ev","$emit","data","eCommercialeTriggered","which","enterTriggered","document","getElementById","classList","remove","setTimeout","clearTimeout","debouncia","setShowSearch","insertPosition","searchInput","focus","execCommand","preventDefault","query","chatSearch","then","x","community","getById","slug","title","customUrl","log","error","add","__exports__","$props","$setup","$data","$options","_component_localized_text","$router","back","hasUserInfo","$store","getUserImage","userIdentifier","userName","localizedKey","hasOptions","default","linkify","_interopNamespace","__esModule","n","keys","forEach","k","d","getOwnPropertyDescriptor","enumerable","linkify__namespace","HTML5NamedCharRefs","amp","gt","lt","nbsp","quot","HEXCHARCODE","CHARCODE","NAMED","EntityParser","named","parse","entity","matches","match","String","fromCharCode","parseInt","WSP","ALPHA","CRLF","isSpace","isAlpha","preprocessInput","EventedTokenizer","delegate","entityParser","mode","line","column","tagNameBuffer","states","beforeData","peek","isIgnoredEndTag","tag","consume","transitionTo","beginData","markTagStart","appendToData","consumeCharRef","finishData","tagOpen","beginStartTag","appendToTagName","markupDeclarationOpen","beginComment","maybeDoctype","substring","beginDoctype","doctype","beforeDoctypeName","appendToDoctypeName","doctypeName","endDoctype","afterDoctypeName","nextSixChars","isPublic","isSystem","afterDoctypePublicKeyword","doctypePublicIdentifierDoubleQuoted","appendToDoctypePublicIdentifier","doctypePublicIdentifierSingleQuoted","afterDoctypePublicIdentifier","betweenDoctypePublicAndSystemIdentifiers","doctypeSystemIdentifierDoubleQuoted","appendToDoctypeSystemIdentifier","doctypeSystemIdentifierSingleQuoted","afterDoctypeSystemIdentifier","commentStart","finishComment","appendToCommentData","commentStartDash","comment","commentEndDash","commentEnd","finishTag","endTagName","beforeAttributeName","reportSyntaxError","beginAttribute","appendToAttributeName","attributeName","beginAttributeValue","finishAttributeValue","afterAttributeName","beforeAttributeValue","appendToAttributeValue","attributeValueDoubleQuoted","attributeValueSingleQuoted","attributeValueUnquoted","afterAttributeValueQuoted","selfClosingStartTag","markTagAsSelfClosing","endTagOpen","beginEndTag","tokenizePart","tokenizeEOF","handler","call","flushData","charAt","indexOf","count","Tokenizer","startLine","startColumn","tokenizer","_currentAttribute","current","currentAttribute","addLocInfo","loc","publicIdentifier","systemIdentifier","selfClosing","isQuoted","message","syntaxError","StartTag","EndTag","Chars","Comment","Doctype","linkifyHtml","linkifiedTokens","linkified","linkifedChars","linkifyChars","apply","isIgnored","preskipLen","skipTagTokens","_token","link","attrs","attrsToStrings","escapeText","_opts$resolve","attributeArray","attr","skippedTokens","stackCount","escapeAttr","attrStrs","_hoisted_8","returnValue","confirmButton","returned","callback","chatName","report","exitFromGroup","isGroupChat","blockUser","$opModal","modals","closeLast","show","buttonUrl","createReport","reportType","User","note","itemIdentifier","okCb","removeFromChat","store","user","$route","params","closeAll","koCb","disabled","confirm","trim","_component_chat_message","_component_uose_writer","_component_file_selector","_component_photo_uploader","style","messageContainerStyle","onScroll","scrollListener","messages","onLongtouch","showSenderImage","showSenderName","namesDictionary","onDeleteMessage","deleteMessage","canDeleteOther","showNuoviMessaggi","goToBottom","_","quotedMessage","cancelQuote","messageText","calcWriterHeight","isDisabled","file","accept","sendMessage","showUploadActionBar","onHide","onChangedFile","changedFile","switchoff","chatRoomIdentifier","chatRoomType","_ws","WebSocket","onopen","present","msg","content","send","JSON","stringify","onmessage","wsMsg","_messageCallback","_namesDictionaryCallback","_disableCallback","_removeCallback","_friendRequestUpgradeCallback","onerror","onclose","Connect","SendDisconnectMessage","close","disconnect","disable","disableMessage","onNamesDictionaryCallback","onMessageCallback","onDisableCallback","onRemoveCallback","onFriendRequestUpgradeCallback","WsServices","mobile","getPic","onChange","hidden","getPicWindow","from","window","cordova","getPicApp","onSuccess","imgData","resolveLocalFileSystemURL","err","onError","navigator","camera","getPicture","destinationType","sourceType","correctOrientation","allowEdit","input_file","click","event","files","getMessageClass","onMousedown","checkLongPress","onMousemove","voidLongPress","onMouseup","onTouchstart","onTouchmove","onTouchend","pointer","senderIdentifier","openProfile","canDelete","$filters","chatDate","date","userId","timer","container","messageContainer","imgs","querySelectorAll","ris","touchduration","admin","admins","filter","moderator","moderators","loaded","isAppImage","videoUrl","alt","preload","poster","preview","controls","ok","appPreview","webPreview","cordovafilesrc","localURL","URL","createObjectURL","isTicket","fetchingData","take","writerBaseHeight","showActionMenu","imgPreview","$nextTick","uploadChatAttachment","commit","sendImg","catch","readVideoOnAndroid","fileEntry","writerHeight","getComputedStyle","chatWriter","height","parseFloat","setProperty","scrollTop","containerAdjustmentOko","containerAdjustment","addEventListener","resumeCallback","pauseCallback","keyboardWillShowCallback","keyboardWillHideCallback","newChatMessages","chatRoom","foundIndex","findIndex","splice","chatInput","$el","querySelector","chatMessageContainer","getPropertyValue","Promise","all","getChatMessages","getParticipants","xs","el","scrollToBottom","OnMessage","onMessage","OnNamesDictionary","onNamesDictionary","OnDisable","onDisable","OnRemove","onRemove","OnFriendRequestUpgrade","onFriendRequestUpgrade","Disconnect","scrollHeight","removeEventListener","isAtBottom","a","Math","abs","floor","clientHeight","b","checkTopScroll","checkBottomScroll","isAtTop","doneFetching","msgs","scrollBottom","unshift","messageIdentifier","SendDisableMessage","newMessage","parsedText","metaData","lastReadDates","wsMessage","SendMessage","imgUrl","chatMessage","chat","vm","StorageServices","getUserIdentifier","RemoveMessage","components","ChatMessage","UoseWriter","PhotoUploader"],"mappings":"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","file":"js/chunk-2899d5b4a877d2fb00cc.js","sourcesContent":["module.exports = __webpack_public_path__ + \"img/3dots.c1985321.svg\";","module.exports = __webpack_public_path__ + \"img/camera.c73f434b.svg\";","typeof console !== 'undefined' && console && console.warn && console.warn('\"linkifyjs/html\" is deprecated in v3. Please install \"linkify-html\" instead');\nmodule.exports = require('./lib/linkify-html');\n","module.exports = __webpack_public_path__ + \"img/close.32f94dc6.svg\";","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * Finite State Machine generation utilities\n */\n\n/**\n * Define a basic state machine state. j is the list of character transitions,\n * jr is the list of regex-match transitions, jd is the default state to\n * transition to t is the accepting token type, if any. If this is the terminal\n * state, then it does not emit a token.\n * @param {string|class} token to emit\n */\nfunction State(token) {\n this.j = {}; // IMPLEMENTATION 1\n // this.j = []; // IMPLEMENTATION 2\n\n this.jr = [];\n this.jd = null;\n this.t = token;\n}\n/**\n * Take the transition from this state to the next one on the given input.\n * If this state does not exist deterministically, will create it.\n *\n * @param {string} input character or token to transition on\n * @param {string|class} [token] token or multi-token to emit when reaching\n * this state\n */\n\nState.prototype = {\n /**\n * @param {State} state\n */\n accepts: function accepts() {\n return !!this.t;\n },\n\n /**\n * Short for \"take transition\", this is a method for building/working with\n * state machines.\n *\n * If a state already exists for the given input, returns it.\n *\n * If a token is specified, that state will emit that token when reached by\n * the linkify engine.\n *\n * If no state exists, it will be initialized with some default transitions\n * that resemble existing default transitions.\n *\n * If a state is given for the second argument, that state will be\n * transitioned to on the given input regardless of what that input\n * previously did.\n *\n * @param {string} input character or token to transition on\n * @param {Token|State} tokenOrState transition to a matching state\n * @returns State taken after the given input\n */\n tt: function tt(input, tokenOrState) {\n if (tokenOrState && tokenOrState.j) {\n // State, default a basic transition\n this.j[input] = tokenOrState;\n return tokenOrState;\n } // See if there's a direct state transition (not regex or default)\n\n\n var token = tokenOrState;\n var nextState = this.j[input];\n\n if (nextState) {\n if (token) {\n nextState.t = token;\n } // overrwites previous token\n\n\n return nextState;\n } // Create a new state for this input\n\n\n nextState = makeState(); // Take the transition using the usual default mechanisms\n\n var templateState = takeT(this, input);\n\n if (templateState) {\n // Some default state transition, make a prime state based on this one\n Object.assign(nextState.j, templateState.j);\n nextState.jr.append(templateState.jr);\n nextState.jr = templateState.jd;\n nextState.t = token || templateState.t;\n } else {\n nextState.t = token;\n }\n\n this.j[input] = nextState;\n return nextState;\n }\n};\n/**\n * Utility function to create state without using new keyword (reduced file size\n * when minified)\n */\n\nvar makeState = function makeState() {\n return new State();\n};\n/**\n * Similar to previous except it is an accepting state that emits a token\n * @param {Token} token\n */\n\nvar makeAcceptingState = function makeAcceptingState(token) {\n return new State(token);\n};\n/**\n * Create a transition from startState to nextState via the given character\n * @param {State} startState transition from thie starting state\n * @param {Token} input via this input character or other concrete token type\n * @param {State} nextState to this next state\n */\n\nvar makeT = function makeT(startState, input, nextState) {\n // IMPLEMENTATION 1: Add to object (fast)\n if (!startState.j[input]) {\n startState.j[input] = nextState;\n } // IMPLEMENTATION 2: Add to array (slower)\n // startState.j.push([input, nextState]);\n\n};\n/**\n *\n * @param {State} startState stransition from this starting state\n * @param {RegExp} regex Regular expression to match on input\n * @param {State} nextState transition to this next state if there's are regex match\n */\n\nvar makeRegexT = function makeRegexT(startState, regex, nextState) {\n startState.jr.push([regex, nextState]);\n};\n/**\n * Follow the transition from the given character to the next state\n * @param {State} state\n * @param {Token} input character or other concrete token type to transition\n * @returns {?State} the next state, if any\n */\n\nvar takeT = function takeT(state, input) {\n // IMPLEMENTATION 1: Object key lookup (faster)\n var nextState = state.j[input];\n\n if (nextState) {\n return nextState;\n } // IMPLEMENTATION 2: List lookup (slower)\n // Loop through all the state transitions and see if there's a match\n // for (let i = 0; i < state.j.length; i++) {\n //\tconst val = state.j[i][0];\n //\tconst nextState = state.j[i][1];\n // \tif (input === val) { return nextState; }\n // }\n\n\n for (var i = 0; i < state.jr.length; i++) {\n var regex = state.jr[i][0];\n var _nextState = state.jr[i][1];\n\n if (regex.test(input)) {\n return _nextState;\n }\n } // Nowhere left to jump! Return default, if any\n\n\n return state.jd;\n};\n/**\n * Similar to makeT, but takes a list of characters that all transition to the\n * same nextState startState\n * @param {State} startState\n * @param {Array} chars\n * @param {State} nextState\n */\n\nvar makeMultiT = function makeMultiT(startState, chars, nextState) {\n for (var i = 0; i < chars.length; i++) {\n makeT(startState, chars[i], nextState);\n }\n};\n/**\n * Set up a list of multiple transitions at once. transitions is a list of\n * tuples, where the first element is the transitions character and the second\n * is the state to transition to\n * @param {State} startState\n * @param {Array} transitions\n */\n\nvar makeBatchT = function makeBatchT(startState, transitions) {\n for (var i = 0; i < transitions.length; i++) {\n var input = transitions[i][0];\n var nextState = transitions[i][1];\n makeT(startState, input, nextState);\n }\n};\n/**\n * For state machines that transition on characters only; given a non-empty\n * target string, generates states (if required) for each consecutive substring\n * of characters starting from the beginning of the string. The final state will\n * have a special value, as specified in options. All other \"in between\"\n * substrings will have a default end state.\n *\n * This turns the state machine into a Trie-like data structure (rather than a\n * intelligently-designed DFA).\n * @param {State} state\n * @param {string} str\n * @param {Token} endStateFactory\n * @param {Token} defaultStateFactory\n */\n\nvar makeChainT = function makeChainT(state, str, endState, defaultStateFactory) {\n var i = 0,\n len = str.length,\n nextState; // Find the next state without a jump to the next character\n\n while (i < len && (nextState = state.j[str[i]])) {\n state = nextState;\n i++;\n }\n\n if (i >= len) {\n return [];\n } // no new tokens were added\n\n\n while (i < len - 1) {\n nextState = defaultStateFactory();\n makeT(state, str[i], nextState);\n state = nextState;\n i++;\n }\n\n makeT(state, str[len - 1], endState);\n};\n\n/******************************************************************************\n\tText Tokens\n\tTokens composed of strings\n******************************************************************************/\n// A valid web domain token\nvar DOMAIN = 'DOMAIN';\nvar LOCALHOST = 'LOCALHOST'; // special case of domain\n// Valid top-level domain (see tlds.js)\n\nvar TLD = 'TLD'; // Any sequence of digits 0-9\n\nvar NUM = 'NUM'; // A web URL protocol. Supported types include\n// - `http:`\n// - `https:`\n// - `ftp:`\n// - `ftps:`\n// - user-defined custom protocols\n\nvar PROTOCOL = 'PROTOCOL'; // Start of the email URI protocol\n\nvar MAILTO = 'MAILTO'; // mailto:\n// Any number of consecutive whitespace characters that are not newline\n\nvar WS = 'WS'; // New line (unix style)\n\nvar NL = 'NL'; // \\n\n// Opening/closing bracket classes\n\nvar OPENBRACE = 'OPENBRACE'; // {\n\nvar OPENBRACKET = 'OPENBRACKET'; // [\n\nvar OPENANGLEBRACKET = 'OPENANGLEBRACKET'; // <\n\nvar OPENPAREN = 'OPENPAREN'; // (\n\nvar CLOSEBRACE = 'CLOSEBRACE'; // }\n\nvar CLOSEBRACKET = 'CLOSEBRACKET'; // ]\n\nvar CLOSEANGLEBRACKET = 'CLOSEANGLEBRACKET'; // >\n\nvar CLOSEPAREN = 'CLOSEPAREN'; // )\n// Various symbols\n\nvar AMPERSAND = 'AMPERSAND'; // &\n\nvar APOSTROPHE = 'APOSTROPHE'; // '\n\nvar ASTERISK = 'ASTERISK'; // *\n\nvar AT = 'AT'; // @\n\nvar BACKSLASH = 'BACKSLASH'; // \\\n\nvar BACKTICK = 'BACKTICK'; // `\n\nvar CARET = 'CARET'; // ^\n\nvar COLON = 'COLON'; // :\n\nvar COMMA = 'COMMA'; // ,\n\nvar DOLLAR = 'DOLLAR'; // $\n\nvar DOT = 'DOT'; // .\n\nvar EQUALS = 'EQUALS'; // =\n\nvar EXCLAMATION = 'EXCLAMATION'; // !\n\nvar HYPHEN = 'HYPHEN'; // -\n\nvar PERCENT = 'PERCENT'; // %\n\nvar PIPE = 'PIPE'; // |\n\nvar PLUS = 'PLUS'; // +\n\nvar POUND = 'POUND'; // #\n\nvar QUERY = 'QUERY'; // ?\n\nvar QUOTE = 'QUOTE'; // \"\n\nvar SEMI = 'SEMI'; // ;\n\nvar SLASH = 'SLASH'; // /\n\nvar TILDE = 'TILDE'; // ~\n\nvar UNDERSCORE = 'UNDERSCORE'; // _\n// Default token - anything that is not one of the above\n\nvar SYM = 'SYM';\n\nvar text = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tDOMAIN: DOMAIN,\n\tLOCALHOST: LOCALHOST,\n\tTLD: TLD,\n\tNUM: NUM,\n\tPROTOCOL: PROTOCOL,\n\tMAILTO: MAILTO,\n\tWS: WS,\n\tNL: NL,\n\tOPENBRACE: OPENBRACE,\n\tOPENBRACKET: OPENBRACKET,\n\tOPENANGLEBRACKET: OPENANGLEBRACKET,\n\tOPENPAREN: OPENPAREN,\n\tCLOSEBRACE: CLOSEBRACE,\n\tCLOSEBRACKET: CLOSEBRACKET,\n\tCLOSEANGLEBRACKET: CLOSEANGLEBRACKET,\n\tCLOSEPAREN: CLOSEPAREN,\n\tAMPERSAND: AMPERSAND,\n\tAPOSTROPHE: APOSTROPHE,\n\tASTERISK: ASTERISK,\n\tAT: AT,\n\tBACKSLASH: BACKSLASH,\n\tBACKTICK: BACKTICK,\n\tCARET: CARET,\n\tCOLON: COLON,\n\tCOMMA: COMMA,\n\tDOLLAR: DOLLAR,\n\tDOT: DOT,\n\tEQUALS: EQUALS,\n\tEXCLAMATION: EXCLAMATION,\n\tHYPHEN: HYPHEN,\n\tPERCENT: PERCENT,\n\tPIPE: PIPE,\n\tPLUS: PLUS,\n\tPOUND: POUND,\n\tQUERY: QUERY,\n\tQUOTE: QUOTE,\n\tSEMI: SEMI,\n\tSLASH: SLASH,\n\tTILDE: TILDE,\n\tUNDERSCORE: UNDERSCORE,\n\tSYM: SYM\n});\n\n// NOTE: punycode versions of IDNs are not included here because these will not\n// be as commonly used without the http prefix anyway and linkify will already\n// force-encode those.\n// To be updated with the values in this list\n// http://data.iana.org/TLD/tlds-alpha-by-domain.txt\n// Version 2021022800, Last Updated Sun Feb 28 07:07:01 2021 UTC\nvar tlds = 'aaa \\\naarp \\\nabarth \\\nabb \\\nabbott \\\nabbvie \\\nabc \\\nable \\\nabogado \\\nabudhabi \\\nac \\\nacademy \\\naccenture \\\naccountant \\\naccountants \\\naco \\\nactor \\\nad \\\nadac \\\nads \\\nadult \\\nae \\\naeg \\\naero \\\naetna \\\naf \\\nafamilycompany \\\nafl \\\nafrica \\\nag \\\nagakhan \\\nagency \\\nai \\\naig \\\nairbus \\\nairforce \\\nairtel \\\nakdn \\\nal \\\nalfaromeo \\\nalibaba \\\nalipay \\\nallfinanz \\\nallstate \\\nally \\\nalsace \\\nalstom \\\nam \\\namazon \\\namericanexpress \\\namericanfamily \\\namex \\\namfam \\\namica \\\namsterdam \\\nanalytics \\\nandroid \\\nanquan \\\nanz \\\nao \\\naol \\\napartments \\\napp \\\napple \\\naq \\\naquarelle \\\nar \\\narab \\\naramco \\\narchi \\\narmy \\\narpa \\\nart \\\narte \\\nas \\\nasda \\\nasia \\\nassociates \\\nat \\\nathleta \\\nattorney \\\nau \\\nauction \\\naudi \\\naudible \\\naudio \\\nauspost \\\nauthor \\\nauto \\\nautos \\\navianca \\\naw \\\naws \\\nax \\\naxa \\\naz \\\nazure \\\nba \\\nbaby \\\nbaidu \\\nbanamex \\\nbananarepublic \\\nband \\\nbank \\\nbar \\\nbarcelona \\\nbarclaycard \\\nbarclays \\\nbarefoot \\\nbargains \\\nbaseball \\\nbasketball \\\nbauhaus \\\nbayern \\\nbb \\\nbbc \\\nbbt \\\nbbva \\\nbcg \\\nbcn \\\nbd \\\nbe \\\nbeats \\\nbeauty \\\nbeer \\\nbentley \\\nberlin \\\nbest \\\nbestbuy \\\nbet \\\nbf \\\nbg \\\nbh \\\nbharti \\\nbi \\\nbible \\\nbid \\\nbike \\\nbing \\\nbingo \\\nbio \\\nbiz \\\nbj \\\nblack \\\nblackfriday \\\nblockbuster \\\nblog \\\nbloomberg \\\nblue \\\nbm \\\nbms \\\nbmw \\\nbn \\\nbnpparibas \\\nbo \\\nboats \\\nboehringer \\\nbofa \\\nbom \\\nbond \\\nboo \\\nbook \\\nbooking \\\nbosch \\\nbostik \\\nboston \\\nbot \\\nboutique \\\nbox \\\nbr \\\nbradesco \\\nbridgestone \\\nbroadway \\\nbroker \\\nbrother \\\nbrussels \\\nbs \\\nbt \\\nbudapest \\\nbugatti \\\nbuild \\\nbuilders \\\nbusiness \\\nbuy \\\nbuzz \\\nbv \\\nbw \\\nby \\\nbz \\\nbzh \\\nca \\\ncab \\\ncafe \\\ncal \\\ncall \\\ncalvinklein \\\ncam \\\ncamera \\\ncamp \\\ncancerresearch \\\ncanon \\\ncapetown \\\ncapital \\\ncapitalone \\\ncar \\\ncaravan \\\ncards \\\ncare \\\ncareer \\\ncareers \\\ncars \\\ncasa \\\ncase \\\ncash \\\ncasino \\\ncat \\\ncatering \\\ncatholic \\\ncba \\\ncbn \\\ncbre \\\ncbs \\\ncc \\\ncd \\\ncenter \\\nceo \\\ncern \\\ncf \\\ncfa \\\ncfd \\\ncg \\\nch \\\nchanel \\\nchannel \\\ncharity \\\nchase \\\nchat \\\ncheap \\\nchintai \\\nchristmas \\\nchrome \\\nchurch \\\nci \\\ncipriani \\\ncircle \\\ncisco \\\ncitadel \\\nciti \\\ncitic \\\ncity \\\ncityeats \\\nck \\\ncl \\\nclaims \\\ncleaning \\\nclick \\\nclinic \\\nclinique \\\nclothing \\\ncloud \\\nclub \\\nclubmed \\\ncm \\\ncn \\\nco \\\ncoach \\\ncodes \\\ncoffee \\\ncollege \\\ncologne \\\ncom \\\ncomcast \\\ncommbank \\\ncommunity \\\ncompany \\\ncompare \\\ncomputer \\\ncomsec \\\ncondos \\\nconstruction \\\nconsulting \\\ncontact \\\ncontractors \\\ncooking \\\ncookingchannel \\\ncool \\\ncoop \\\ncorsica \\\ncountry \\\ncoupon \\\ncoupons \\\ncourses \\\ncpa \\\ncr \\\ncredit \\\ncreditcard \\\ncreditunion \\\ncricket \\\ncrown \\\ncrs \\\ncruise \\\ncruises \\\ncsc \\\ncu \\\ncuisinella \\\ncv \\\ncw \\\ncx \\\ncy \\\ncymru \\\ncyou \\\ncz \\\ndabur \\\ndad \\\ndance \\\ndata \\\ndate \\\ndating \\\ndatsun \\\nday \\\ndclk \\\ndds \\\nde \\\ndeal \\\ndealer \\\ndeals \\\ndegree \\\ndelivery \\\ndell \\\ndeloitte \\\ndelta \\\ndemocrat \\\ndental \\\ndentist \\\ndesi \\\ndesign \\\ndev \\\ndhl \\\ndiamonds \\\ndiet \\\ndigital \\\ndirect \\\ndirectory \\\ndiscount \\\ndiscover \\\ndish \\\ndiy \\\ndj \\\ndk \\\ndm \\\ndnp \\\ndo \\\ndocs \\\ndoctor \\\ndog \\\ndomains \\\ndot \\\ndownload \\\ndrive \\\ndtv \\\ndubai \\\nduck \\\ndunlop \\\ndupont \\\ndurban \\\ndvag \\\ndvr \\\ndz \\\nearth \\\neat \\\nec \\\neco \\\nedeka \\\nedu \\\neducation \\\nee \\\neg \\\nemail \\\nemerck \\\nenergy \\\nengineer \\\nengineering \\\nenterprises \\\nepson \\\nequipment \\\ner \\\nericsson \\\nerni \\\nes \\\nesq \\\nestate \\\net \\\netisalat \\\neu \\\neurovision \\\neus \\\nevents \\\nexchange \\\nexpert \\\nexposed \\\nexpress \\\nextraspace \\\nfage \\\nfail \\\nfairwinds \\\nfaith \\\nfamily \\\nfan \\\nfans \\\nfarm \\\nfarmers \\\nfashion \\\nfast \\\nfedex \\\nfeedback \\\nferrari \\\nferrero \\\nfi \\\nfiat \\\nfidelity \\\nfido \\\nfilm \\\nfinal \\\nfinance \\\nfinancial \\\nfire \\\nfirestone \\\nfirmdale \\\nfish \\\nfishing \\\nfit \\\nfitness \\\nfj \\\nfk \\\nflickr \\\nflights \\\nflir \\\nflorist \\\nflowers \\\nfly \\\nfm \\\nfo \\\nfoo \\\nfood \\\nfoodnetwork \\\nfootball \\\nford \\\nforex \\\nforsale \\\nforum \\\nfoundation \\\nfox \\\nfr \\\nfree \\\nfresenius \\\nfrl \\\nfrogans \\\nfrontdoor \\\nfrontier \\\nftr \\\nfujitsu \\\nfujixerox \\\nfun \\\nfund \\\nfurniture \\\nfutbol \\\nfyi \\\nga \\\ngal \\\ngallery \\\ngallo \\\ngallup \\\ngame \\\ngames \\\ngap \\\ngarden \\\ngay \\\ngb \\\ngbiz \\\ngd \\\ngdn \\\nge \\\ngea \\\ngent \\\ngenting \\\ngeorge \\\ngf \\\ngg \\\nggee \\\ngh \\\ngi \\\ngift \\\ngifts \\\ngives \\\ngiving \\\ngl \\\nglade \\\nglass \\\ngle \\\nglobal \\\nglobo \\\ngm \\\ngmail \\\ngmbh \\\ngmo \\\ngmx \\\ngn \\\ngodaddy \\\ngold \\\ngoldpoint \\\ngolf \\\ngoo \\\ngoodyear \\\ngoog \\\ngoogle \\\ngop \\\ngot \\\ngov \\\ngp \\\ngq \\\ngr \\\ngrainger \\\ngraphics \\\ngratis \\\ngreen \\\ngripe \\\ngrocery \\\ngroup \\\ngs \\\ngt \\\ngu \\\nguardian \\\ngucci \\\nguge \\\nguide \\\nguitars \\\nguru \\\ngw \\\ngy \\\nhair \\\nhamburg \\\nhangout \\\nhaus \\\nhbo \\\nhdfc \\\nhdfcbank \\\nhealth \\\nhealthcare \\\nhelp \\\nhelsinki \\\nhere \\\nhermes \\\nhgtv \\\nhiphop \\\nhisamitsu \\\nhitachi \\\nhiv \\\nhk \\\nhkt \\\nhm \\\nhn \\\nhockey \\\nholdings \\\nholiday \\\nhomedepot \\\nhomegoods \\\nhomes \\\nhomesense \\\nhonda \\\nhorse \\\nhospital \\\nhost \\\nhosting \\\nhot \\\nhoteles \\\nhotels \\\nhotmail \\\nhouse \\\nhow \\\nhr \\\nhsbc \\\nht \\\nhu \\\nhughes \\\nhyatt \\\nhyundai \\\nibm \\\nicbc \\\nice \\\nicu \\\nid \\\nie \\\nieee \\\nifm \\\nikano \\\nil \\\nim \\\nimamat \\\nimdb \\\nimmo \\\nimmobilien \\\nin \\\ninc \\\nindustries \\\ninfiniti \\\ninfo \\\ning \\\nink \\\ninstitute \\\ninsurance \\\ninsure \\\nint \\\ninternational \\\nintuit \\\ninvestments \\\nio \\\nipiranga \\\niq \\\nir \\\nirish \\\nis \\\nismaili \\\nist \\\nistanbul \\\nit \\\nitau \\\nitv \\\niveco \\\njaguar \\\njava \\\njcb \\\nje \\\njeep \\\njetzt \\\njewelry \\\njio \\\njll \\\njm \\\njmp \\\njnj \\\njo \\\njobs \\\njoburg \\\njot \\\njoy \\\njp \\\njpmorgan \\\njprs \\\njuegos \\\njuniper \\\nkaufen \\\nkddi \\\nke \\\nkerryhotels \\\nkerrylogistics \\\nkerryproperties \\\nkfh \\\nkg \\\nkh \\\nki \\\nkia \\\nkim \\\nkinder \\\nkindle \\\nkitchen \\\nkiwi \\\nkm \\\nkn \\\nkoeln \\\nkomatsu \\\nkosher \\\nkp \\\nkpmg \\\nkpn \\\nkr \\\nkrd \\\nkred \\\nkuokgroup \\\nkw \\\nky \\\nkyoto \\\nkz \\\nla \\\nlacaixa \\\nlamborghini \\\nlamer \\\nlancaster \\\nlancia \\\nland \\\nlandrover \\\nlanxess \\\nlasalle \\\nlat \\\nlatino \\\nlatrobe \\\nlaw \\\nlawyer \\\nlb \\\nlc \\\nlds \\\nlease \\\nleclerc \\\nlefrak \\\nlegal \\\nlego \\\nlexus \\\nlgbt \\\nli \\\nlidl \\\nlife \\\nlifeinsurance \\\nlifestyle \\\nlighting \\\nlike \\\nlilly \\\nlimited \\\nlimo \\\nlincoln \\\nlinde \\\nlink \\\nlipsy \\\nlive \\\nliving \\\nlixil \\\nlk \\\nllc \\\nllp \\\nloan \\\nloans \\\nlocker \\\nlocus \\\nloft \\\nlol \\\nlondon \\\nlotte \\\nlotto \\\nlove \\\nlpl \\\nlplfinancial \\\nlr \\\nls \\\nlt \\\nltd \\\nltda \\\nlu \\\nlundbeck \\\nluxe \\\nluxury \\\nlv \\\nly \\\nma \\\nmacys \\\nmadrid \\\nmaif \\\nmaison \\\nmakeup \\\nman \\\nmanagement \\\nmango \\\nmap \\\nmarket \\\nmarketing \\\nmarkets \\\nmarriott \\\nmarshalls \\\nmaserati \\\nmattel \\\nmba \\\nmc \\\nmckinsey \\\nmd \\\nme \\\nmed \\\nmedia \\\nmeet \\\nmelbourne \\\nmeme \\\nmemorial \\\nmen \\\nmenu \\\nmerckmsd \\\nmg \\\nmh \\\nmiami \\\nmicrosoft \\\nmil \\\nmini \\\nmint \\\nmit \\\nmitsubishi \\\nmk \\\nml \\\nmlb \\\nmls \\\nmm \\\nmma \\\nmn \\\nmo \\\nmobi \\\nmobile \\\nmoda \\\nmoe \\\nmoi \\\nmom \\\nmonash \\\nmoney \\\nmonster \\\nmormon \\\nmortgage \\\nmoscow \\\nmoto \\\nmotorcycles \\\nmov \\\nmovie \\\nmp \\\nmq \\\nmr \\\nms \\\nmsd \\\nmt \\\nmtn \\\nmtr \\\nmu \\\nmuseum \\\nmutual \\\nmv \\\nmw \\\nmx \\\nmy \\\nmz \\\nna \\\nnab \\\nnagoya \\\nname \\\nnationwide \\\nnatura \\\nnavy \\\nnba \\\nnc \\\nne \\\nnec \\\nnet \\\nnetbank \\\nnetflix \\\nnetwork \\\nneustar \\\nnew \\\nnews \\\nnext \\\nnextdirect \\\nnexus \\\nnf \\\nnfl \\\nng \\\nngo \\\nnhk \\\nni \\\nnico \\\nnike \\\nnikon \\\nninja \\\nnissan \\\nnissay \\\nnl \\\nno \\\nnokia \\\nnorthwesternmutual \\\nnorton \\\nnow \\\nnowruz \\\nnowtv \\\nnp \\\nnr \\\nnra \\\nnrw \\\nntt \\\nnu \\\nnyc \\\nnz \\\nobi \\\nobserver \\\noff \\\noffice \\\nokinawa \\\nolayan \\\nolayangroup \\\noldnavy \\\nollo \\\nom \\\nomega \\\none \\\nong \\\nonl \\\nonline \\\nonyourside \\\nooo \\\nopen \\\noracle \\\norange \\\norg \\\norganic \\\norigins \\\nosaka \\\notsuka \\\nott \\\novh \\\npa \\\npage \\\npanasonic \\\nparis \\\npars \\\npartners \\\nparts \\\nparty \\\npassagens \\\npay \\\npccw \\\npe \\\npet \\\npf \\\npfizer \\\npg \\\nph \\\npharmacy \\\nphd \\\nphilips \\\nphone \\\nphoto \\\nphotography \\\nphotos \\\nphysio \\\npics \\\npictet \\\npictures \\\npid \\\npin \\\nping \\\npink \\\npioneer \\\npizza \\\npk \\\npl \\\nplace \\\nplay \\\nplaystation \\\nplumbing \\\nplus \\\npm \\\npn \\\npnc \\\npohl \\\npoker \\\npolitie \\\nporn \\\npost \\\npr \\\npramerica \\\npraxi \\\npress \\\nprime \\\npro \\\nprod \\\nproductions \\\nprof \\\nprogressive \\\npromo \\\nproperties \\\nproperty \\\nprotection \\\npru \\\nprudential \\\nps \\\npt \\\npub \\\npw \\\npwc \\\npy \\\nqa \\\nqpon \\\nquebec \\\nquest \\\nqvc \\\nracing \\\nradio \\\nraid \\\nre \\\nread \\\nrealestate \\\nrealtor \\\nrealty \\\nrecipes \\\nred \\\nredstone \\\nredumbrella \\\nrehab \\\nreise \\\nreisen \\\nreit \\\nreliance \\\nren \\\nrent \\\nrentals \\\nrepair \\\nreport \\\nrepublican \\\nrest \\\nrestaurant \\\nreview \\\nreviews \\\nrexroth \\\nrich \\\nrichardli \\\nricoh \\\nril \\\nrio \\\nrip \\\nrmit \\\nro \\\nrocher \\\nrocks \\\nrodeo \\\nrogers \\\nroom \\\nrs \\\nrsvp \\\nru \\\nrugby \\\nruhr \\\nrun \\\nrw \\\nrwe \\\nryukyu \\\nsa \\\nsaarland \\\nsafe \\\nsafety \\\nsakura \\\nsale \\\nsalon \\\nsamsclub \\\nsamsung \\\nsandvik \\\nsandvikcoromant \\\nsanofi \\\nsap \\\nsarl \\\nsas \\\nsave \\\nsaxo \\\nsb \\\nsbi \\\nsbs \\\nsc \\\nsca \\\nscb \\\nschaeffler \\\nschmidt \\\nscholarships \\\nschool \\\nschule \\\nschwarz \\\nscience \\\nscjohnson \\\nscot \\\nsd \\\nse \\\nsearch \\\nseat \\\nsecure \\\nsecurity \\\nseek \\\nselect \\\nsener \\\nservices \\\nses \\\nseven \\\nsew \\\nsex \\\nsexy \\\nsfr \\\nsg \\\nsh \\\nshangrila \\\nsharp \\\nshaw \\\nshell \\\nshia \\\nshiksha \\\nshoes \\\nshop \\\nshopping \\\nshouji \\\nshow \\\nshowtime \\\nsi \\\nsilk \\\nsina \\\nsingles \\\nsite \\\nsj \\\nsk \\\nski \\\nskin \\\nsky \\\nskype \\\nsl \\\nsling \\\nsm \\\nsmart \\\nsmile \\\nsn \\\nsncf \\\nso \\\nsoccer \\\nsocial \\\nsoftbank \\\nsoftware \\\nsohu \\\nsolar \\\nsolutions \\\nsong \\\nsony \\\nsoy \\\nspa \\\nspace \\\nsport \\\nspot \\\nspreadbetting \\\nsr \\\nsrl \\\nss \\\nst \\\nstada \\\nstaples \\\nstar \\\nstatebank \\\nstatefarm \\\nstc \\\nstcgroup \\\nstockholm \\\nstorage \\\nstore \\\nstream \\\nstudio \\\nstudy \\\nstyle \\\nsu \\\nsucks \\\nsupplies \\\nsupply \\\nsupport \\\nsurf \\\nsurgery \\\nsuzuki \\\nsv \\\nswatch \\\nswiftcover \\\nswiss \\\nsx \\\nsy \\\nsydney \\\nsystems \\\nsz \\\ntab \\\ntaipei \\\ntalk \\\ntaobao \\\ntarget \\\ntatamotors \\\ntatar \\\ntattoo \\\ntax \\\ntaxi \\\ntc \\\ntci \\\ntd \\\ntdk \\\nteam \\\ntech \\\ntechnology \\\ntel \\\ntemasek \\\ntennis \\\nteva \\\ntf \\\ntg \\\nth \\\nthd \\\ntheater \\\ntheatre \\\ntiaa \\\ntickets \\\ntienda \\\ntiffany \\\ntips \\\ntires \\\ntirol \\\ntj \\\ntjmaxx \\\ntjx \\\ntk \\\ntkmaxx \\\ntl \\\ntm \\\ntmall \\\ntn \\\nto \\\ntoday \\\ntokyo \\\ntools \\\ntop \\\ntoray \\\ntoshiba \\\ntotal \\\ntours \\\ntown \\\ntoyota \\\ntoys \\\ntr \\\ntrade \\\ntrading \\\ntraining \\\ntravel \\\ntravelchannel \\\ntravelers \\\ntravelersinsurance \\\ntrust \\\ntrv \\\ntt \\\ntube \\\ntui \\\ntunes \\\ntushu \\\ntv \\\ntvs \\\ntw \\\ntz \\\nua \\\nubank \\\nubs \\\nug \\\nuk \\\nunicom \\\nuniversity \\\nuno \\\nuol \\\nups \\\nus \\\nuy \\\nuz \\\nva \\\nvacations \\\nvana \\\nvanguard \\\nvc \\\nve \\\nvegas \\\nventures \\\nverisign \\\nversicherung \\\nvet \\\nvg \\\nvi \\\nviajes \\\nvideo \\\nvig \\\nviking \\\nvillas \\\nvin \\\nvip \\\nvirgin \\\nvisa \\\nvision \\\nviva \\\nvivo \\\nvlaanderen \\\nvn \\\nvodka \\\nvolkswagen \\\nvolvo \\\nvote \\\nvoting \\\nvoto \\\nvoyage \\\nvu \\\nvuelos \\\nwales \\\nwalmart \\\nwalter \\\nwang \\\nwanggou \\\nwatch \\\nwatches \\\nweather \\\nweatherchannel \\\nwebcam \\\nweber \\\nwebsite \\\nwed \\\nwedding \\\nweibo \\\nweir \\\nwf \\\nwhoswho \\\nwien \\\nwiki \\\nwilliamhill \\\nwin \\\nwindows \\\nwine \\\nwinners \\\nwme \\\nwolterskluwer \\\nwoodside \\\nwork \\\nworks \\\nworld \\\nwow \\\nws \\\nwtc \\\nwtf \\\nxbox \\\nxerox \\\nxfinity \\\nxihuan \\\nxin \\\nxxx \\\nxyz \\\nyachts \\\nyahoo \\\nyamaxun \\\nyandex \\\nye \\\nyodobashi \\\nyoga \\\nyokohama \\\nyou \\\nyoutube \\\nyt \\\nyun \\\nza \\\nzappos \\\nzara \\\nzero \\\nzip \\\nzm \\\nzone \\\nzuerich \\\nzw \\\nvermögensberater-ctb \\\nvermögensberatung-pwb \\\nελ \\\nευ \\\nбг \\\nбел \\\nдети \\\nею \\\nкатолик \\\nком \\\nқаз \\\nмкд \\\nмон \\\nмосква \\\nонлайн \\\nорг \\\nрус \\\nрф \\\nсайт \\\nсрб \\\nукр \\\nგე \\\nհայ \\\nישראל \\\nקום \\\nابوظبي \\\nاتصالات \\\nارامكو \\\nالاردن \\\nالبحرين \\\nالجزائر \\\nالسعودية \\\nالعليان \\\nالمغرب \\\nامارات \\\nایران \\\nبارت \\\nبازار \\\nبھارت \\\nبيتك \\\nپاکستان \\\nڀارت \\\nتونس \\\nسودان \\\nسورية \\\nشبكة \\\nعراق \\\nعرب \\\nعمان \\\nفلسطين \\\nقطر \\\nكاثوليك \\\nكوم \\\nمصر \\\nمليسيا \\\nموريتانيا \\\nموقع \\\nهمراه \\\nकॉम \\\nनेट \\\nभारत \\\nभारतम् \\\nभारोत \\\nसंगठन \\\nবাংলা \\\nভারত \\\nভাৰত \\\nਭਾਰਤ \\\nભારત \\\nଭାରତ \\\nஇந்தியா \\\nஇலங்கை \\\nசிங்கப்பூர் \\\nభారత్ \\\nಭಾರತ \\\nഭാരതം \\\nලංකා \\\nคอม \\\nไทย \\\nລາວ \\\n닷넷 \\\n닷컴 \\\n삼성 \\\n한국 \\\nアマゾン \\\nグーグル \\\nクラウド \\\nコム \\\nストア \\\nセール \\\nファッション \\\nポイント \\\nみんな \\\n世界 \\\n中信 \\\n中国 \\\n中國 \\\n中文网 \\\n亚马逊 \\\n企业 \\\n佛山 \\\n信息 \\\n健康 \\\n八卦 \\\n公司 \\\n公益 \\\n台湾 \\\n台灣 \\\n商城 \\\n商店 \\\n商标 \\\n嘉里 \\\n嘉里大酒店 \\\n在线 \\\n大众汽车 \\\n大拿 \\\n天主教 \\\n娱乐 \\\n家電 \\\n广东 \\\n微博 \\\n慈善 \\\n我爱你 \\\n手机 \\\n招聘 \\\n政务 \\\n政府 \\\n新加坡 \\\n新闻 \\\n时尚 \\\n書籍 \\\n机构 \\\n淡马锡 \\\n游戏 \\\n澳門 \\\n点看 \\\n移动 \\\n组织机构 \\\n网址 \\\n网店 \\\n网站 \\\n网络 \\\n联通 \\\n诺基亚 \\\n谷歌 \\\n购物 \\\n通販 \\\n集团 \\\n電訊盈科 \\\n飞利浦 \\\n食品 \\\n餐厅 \\\n香格里拉 \\\n香港'.split(' ');\n\n/**\n\tThe scanner provides an interface that takes a string of text as input, and\n\toutputs an array of tokens instances that can be used for easy URL parsing.\n\n\t@module linkify\n\t@submodule scanner\n\t@main scanner\n*/\n\nvar LETTER = /(?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08C7\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\u9FFC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7BF\\uA7C2-\\uA7CA\\uA7F5-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82C[\\uDC00-\\uDD1E\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDEC0-\\uDEEB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDD\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])/; // Any Unicode character with letter data type\n\nvar EMOJI = /(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26A7\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5-\\uDED7\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFC\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDDFF\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6])/; // Any Unicode emoji character\n\nvar EMOJI_VARIATION = /\\uFE0F/; // Variation selector, follows heart and others\n\nvar DIGIT = /\\d/;\nvar SPACE = /\\s/;\n/**\n * Initialize the scanner character-based state machine for the given start state\n * @return {State} scanner starting state\n */\n\nfunction init$2() {\n var customProtocols = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // Frequently used states\n var S_START = makeState();\n var S_NUM = makeAcceptingState(NUM);\n var S_DOMAIN = makeAcceptingState(DOMAIN);\n var S_DOMAIN_HYPHEN = makeState(); // domain followed by 1 or more hyphen characters\n\n var S_WS = makeAcceptingState(WS);\n var DOMAIN_REGEX_TRANSITIONS = [[DIGIT, S_DOMAIN], [LETTER, S_DOMAIN], [EMOJI, S_DOMAIN], [EMOJI_VARIATION, S_DOMAIN]]; // Create a state which emits a domain token\n\n var makeDomainState = function makeDomainState() {\n var state = makeAcceptingState(DOMAIN);\n state.j = {\n '-': S_DOMAIN_HYPHEN\n };\n state.jr = [].concat(DOMAIN_REGEX_TRANSITIONS);\n return state;\n }; // Create a state which does not emit a domain state but the usual alphanumeric\n // transitions are domains\n\n\n var makeNearDomainState = function makeNearDomainState(token) {\n var state = makeDomainState();\n state.t = token;\n return state;\n }; // States for special URL symbols that accept immediately after start\n\n\n makeBatchT(S_START, [[\"'\", makeAcceptingState(APOSTROPHE)], ['{', makeAcceptingState(OPENBRACE)], ['[', makeAcceptingState(OPENBRACKET)], ['<', makeAcceptingState(OPENANGLEBRACKET)], ['(', makeAcceptingState(OPENPAREN)], ['}', makeAcceptingState(CLOSEBRACE)], [']', makeAcceptingState(CLOSEBRACKET)], ['>', makeAcceptingState(CLOSEANGLEBRACKET)], [')', makeAcceptingState(CLOSEPAREN)], ['&', makeAcceptingState(AMPERSAND)], ['*', makeAcceptingState(ASTERISK)], ['@', makeAcceptingState(AT)], ['`', makeAcceptingState(BACKTICK)], ['^', makeAcceptingState(CARET)], [':', makeAcceptingState(COLON)], [',', makeAcceptingState(COMMA)], ['$', makeAcceptingState(DOLLAR)], ['.', makeAcceptingState(DOT)], ['=', makeAcceptingState(EQUALS)], ['!', makeAcceptingState(EXCLAMATION)], ['-', makeAcceptingState(HYPHEN)], ['%', makeAcceptingState(PERCENT)], ['|', makeAcceptingState(PIPE)], ['+', makeAcceptingState(PLUS)], ['#', makeAcceptingState(POUND)], ['?', makeAcceptingState(QUERY)], ['\"', makeAcceptingState(QUOTE)], ['/', makeAcceptingState(SLASH)], [';', makeAcceptingState(SEMI)], ['~', makeAcceptingState(TILDE)], ['_', makeAcceptingState(UNDERSCORE)], ['\\\\', makeAcceptingState(BACKSLASH)]]); // Whitespace jumps\n // Tokens of only non-newline whitespace are arbitrarily long\n\n makeT(S_START, '\\n', makeAcceptingState(NL));\n makeRegexT(S_START, SPACE, S_WS); // If any whitespace except newline, more whitespace!\n\n makeT(S_WS, '\\n', makeState()); // non-accepting state\n\n makeRegexT(S_WS, SPACE, S_WS); // Generates states for top-level domains\n // Note that this is most accurate when tlds are in alphabetical order\n\n for (var i = 0; i < tlds.length; i++) {\n makeChainT(S_START, tlds[i], makeNearDomainState(TLD), makeDomainState);\n } // Collect the states generated by different protocls\n\n\n var S_PROTOCOL_FILE = makeDomainState();\n var S_PROTOCOL_FTP = makeDomainState();\n var S_PROTOCOL_HTTP = makeDomainState();\n var S_MAILTO = makeDomainState();\n makeChainT(S_START, 'file', S_PROTOCOL_FILE, makeDomainState);\n makeChainT(S_START, 'ftp', S_PROTOCOL_FTP, makeDomainState);\n makeChainT(S_START, 'http', S_PROTOCOL_HTTP, makeDomainState);\n makeChainT(S_START, 'mailto', S_MAILTO, makeDomainState); // Protocol states\n\n var S_PROTOCOL_SECURE = makeDomainState();\n var S_FULL_PROTOCOL = makeAcceptingState(PROTOCOL); // Full protocol ends with COLON\n\n var S_FULL_MAILTO = makeAcceptingState(MAILTO); // Mailto ends with COLON\n // Secure protocols (end with 's')\n\n makeT(S_PROTOCOL_FTP, 's', S_PROTOCOL_SECURE);\n makeT(S_PROTOCOL_FTP, ':', S_FULL_PROTOCOL);\n makeT(S_PROTOCOL_HTTP, 's', S_PROTOCOL_SECURE);\n makeT(S_PROTOCOL_HTTP, ':', S_FULL_PROTOCOL); // Become protocol tokens after a COLON\n\n makeT(S_PROTOCOL_FILE, ':', S_FULL_PROTOCOL);\n makeT(S_PROTOCOL_SECURE, ':', S_FULL_PROTOCOL);\n makeT(S_MAILTO, ':', S_FULL_MAILTO); // Register custom protocols\n\n var S_CUSTOM_PROTOCOL = makeDomainState();\n\n for (var _i = 0; _i < customProtocols.length; _i++) {\n makeChainT(S_START, customProtocols[_i], S_CUSTOM_PROTOCOL, makeDomainState);\n }\n\n makeT(S_CUSTOM_PROTOCOL, ':', S_FULL_PROTOCOL); // Localhost\n\n makeChainT(S_START, 'localhost', makeNearDomainState(LOCALHOST), makeDomainState); // Everything else\n // DOMAINs make more DOMAINs\n // Number and character transitions\n\n makeRegexT(S_START, DIGIT, S_NUM);\n makeRegexT(S_START, LETTER, S_DOMAIN);\n makeRegexT(S_START, EMOJI, S_DOMAIN);\n makeRegexT(S_START, EMOJI_VARIATION, S_DOMAIN);\n makeRegexT(S_NUM, DIGIT, S_NUM);\n makeRegexT(S_NUM, LETTER, S_DOMAIN); // number becomes DOMAIN\n\n makeRegexT(S_NUM, EMOJI, S_DOMAIN); // number becomes DOMAIN\n\n makeRegexT(S_NUM, EMOJI_VARIATION, S_DOMAIN); // number becomes DOMAIN\n\n makeT(S_NUM, '-', S_DOMAIN_HYPHEN); // Default domain transitions\n\n makeT(S_DOMAIN, '-', S_DOMAIN_HYPHEN);\n makeT(S_DOMAIN_HYPHEN, '-', S_DOMAIN_HYPHEN);\n makeRegexT(S_DOMAIN, DIGIT, S_DOMAIN);\n makeRegexT(S_DOMAIN, LETTER, S_DOMAIN);\n makeRegexT(S_DOMAIN, EMOJI, S_DOMAIN);\n makeRegexT(S_DOMAIN, EMOJI_VARIATION, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, DIGIT, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, LETTER, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, EMOJI, S_DOMAIN);\n makeRegexT(S_DOMAIN_HYPHEN, EMOJI_VARIATION, S_DOMAIN); // Set default transition for start state (some symbol)\n\n S_START.jd = makeAcceptingState(SYM);\n return S_START;\n}\n/**\n\tGiven a string, returns an array of TOKEN instances representing the\n\tcomposition of that string.\n\n\t@method run\n\t@param {State} start scanner starting state\n\t@param {string} str input string to scan\n\t@return {{t: string, v: string, s: number, l: number}[]} list of tokens, each with a type and value\n*/\n\nfunction run$1(start, str) {\n // State machine is not case sensitive, so input is tokenized in lowercased\n // form (still returns the regular case though) Uses selective `toLowerCase`\n // is used because lowercasing the entire string causes the length and\n // character position to vary in some non-English strings with V8-based\n // runtimes.\n var iterable = stringToArray(str.replace(/[A-Z]/g, function (c) {\n return c.toLowerCase();\n }));\n var charCount = iterable.length; // <= len if there are emojis, etc\n\n var tokens = []; // return value\n // cursor through the string itself, accounting for characters that have\n // width with length 2 such as emojis\n\n var cursor = 0; // Cursor through the array-representation of the string\n\n var charCursor = 0; // Tokenize the string\n\n while (charCursor < charCount) {\n var state = start;\n var nextState = null;\n var tokenLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n var charsSinceAccepts = -1;\n\n while (charCursor < charCount && (nextState = takeT(state, iterable[charCursor]))) {\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n charsSinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts += iterable[charCursor].length;\n charsSinceAccepts++;\n }\n\n tokenLength += iterable[charCursor].length;\n cursor += iterable[charCursor].length;\n charCursor++;\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n charCursor -= charsSinceAccepts;\n tokenLength -= sinceAccepts; // No more jumps, just make a new token from the last accepting one\n // TODO: If possible, don't output v, instead output range where values ocur\n\n tokens.push({\n t: latestAccepting.t,\n // token type/name\n v: str.substr(cursor - tokenLength, tokenLength),\n // string value\n s: cursor - tokenLength,\n // start index\n e: cursor // end index (excluding)\n\n });\n }\n\n return tokens;\n}\n/**\n * Convert a String to an Array of characters, taking into account that some\n * characters like emojis take up two string indexes.\n *\n * Adapted from core-js (MIT license)\n * https://github.com/zloirock/core-js/blob/2d69cf5f99ab3ea3463c395df81e5a15b68f49d9/packages/core-js/internals/string-multibyte.js\n *\n * @function stringToArray\n * @param {string} str\n * @returns {string[]}\n */\n\nfunction stringToArray(str) {\n var result = [];\n var len = str.length;\n var index = 0;\n\n while (index < len) {\n var first = str.charCodeAt(index);\n var second = void 0;\n var char = first < 0xd800 || first > 0xdbff || index + 1 === len || (second = str.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? str[index] // single character\n : str.slice(index, index + 2); // two-index characters\n\n result.push(char);\n index += char.length;\n }\n\n return result;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\n/**\n * @property {string} defaultProtocol\n * @property {{[string]: (event) => void}]} [events]\n */\nvar defaults = {\n defaultProtocol: 'http',\n events: null,\n format: noop,\n formatHref: noop,\n nl2br: false,\n tagName: 'a',\n target: null,\n rel: null,\n validate: true,\n truncate: 0,\n className: null,\n attributes: null,\n ignoreTags: []\n};\n/**\n * @class Options\n * @param {Object} [opts] Set option properties besides the defaults\n */\n\nfunction Options(opts) {\n opts = opts || {};\n this.defaultProtocol = 'defaultProtocol' in opts ? opts.defaultProtocol : defaults.defaultProtocol;\n this.events = 'events' in opts ? opts.events : defaults.events;\n this.format = 'format' in opts ? opts.format : defaults.format;\n this.formatHref = 'formatHref' in opts ? opts.formatHref : defaults.formatHref;\n this.nl2br = 'nl2br' in opts ? opts.nl2br : defaults.nl2br;\n this.tagName = 'tagName' in opts ? opts.tagName : defaults.tagName;\n this.target = 'target' in opts ? opts.target : defaults.target;\n this.rel = 'rel' in opts ? opts.rel : defaults.rel;\n this.validate = 'validate' in opts ? opts.validate : defaults.validate;\n this.truncate = 'truncate' in opts ? opts.truncate : defaults.truncate;\n this.className = 'className' in opts ? opts.className : defaults.className;\n this.attributes = opts.attributes || defaults.attributes;\n this.ignoreTags = []; // Make all tags names upper case\n\n var ignoredTags = 'ignoreTags' in opts ? opts.ignoreTags : defaults.ignoreTags;\n\n for (var i = 0; i < ignoredTags.length; i++) {\n this.ignoreTags.push(ignoredTags[i].toUpperCase());\n }\n}\nOptions.prototype = {\n /**\n * Given the token, return all options for how it should be displayed\n */\n resolve: function resolve(token) {\n var href = token.toHref(this.defaultProtocol);\n return {\n formatted: this.get('format', token.toString(), token),\n formattedHref: this.get('formatHref', href, token),\n tagName: this.get('tagName', href, token),\n className: this.get('className', href, token),\n target: this.get('target', href, token),\n rel: this.get('rel', href, token),\n events: this.getObject('events', href, token),\n attributes: this.getObject('attributes', href, token),\n truncate: this.get('truncate', href, token)\n };\n },\n\n /**\n * Returns true or false based on whether a token should be displayed as a\n * link based on the user options. By default,\n */\n check: function check(token) {\n return this.get('validate', token.toString(), token);\n },\n // Private methods\n\n /**\n * Resolve an option's value based on the value of the option and the given\n * params.\n * @param {string} key Name of option to use\n * @param operator will be passed to the target option if it's method\n * @param {MultiToken} token The token from linkify.tokenize\n */\n get: function get(key, operator, token) {\n var option = this[key];\n\n if (!option) {\n return option;\n }\n\n var optionValue;\n\n switch (_typeof(option)) {\n case 'function':\n return option(operator, token.t);\n\n case 'object':\n optionValue = token.t in option ? option[token.t] : defaults[key];\n return typeof optionValue === 'function' ? optionValue(operator, token.t) : optionValue;\n }\n\n return option;\n },\n getObject: function getObject(key, operator, token) {\n var option = this[key];\n return typeof option === 'function' ? option(operator, token.t) : option;\n }\n};\n\nfunction noop(val) {\n return val;\n}\n\nvar options = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tdefaults: defaults,\n\tOptions: Options\n});\n\n/******************************************************************************\n\tMulti-Tokens\n\tTokens composed of arrays of TextTokens\n******************************************************************************/\n\nfunction inherits(parent, child) {\n var props = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var extended = Object.create(parent.prototype);\n\n for (var p in props) {\n extended[p] = props[p];\n }\n\n extended.constructor = child;\n child.prototype = extended;\n return child;\n}\n/**\n\tAbstract class used for manufacturing tokens of text tokens. That is rather\n\tthan the value for a token being a small string of text, it's value an array\n\tof text tokens.\n\n\tUsed for grouping together URLs, emails, hashtags, and other potential\n\tcreations.\n\n\t@class MultiToken\n\t@param {string} value\n\t@param {{t: string, v: string, s: number, e: number}[]} tokens\n\t@abstract\n*/\n\n\nfunction MultiToken() {}\nMultiToken.prototype = {\n /**\n \tString representing the type for this token\n \t@property t\n \t@default 'token'\n */\n t: 'token',\n\n /**\n \tIs this multitoken a link?\n \t@property isLink\n \t@default false\n */\n isLink: false,\n\n /**\n \tReturn the string this token represents.\n \t@method toString\n \t@return {string}\n */\n toString: function toString() {\n return this.v;\n },\n\n /**\n \tWhat should the value for this token be in the `href` HTML attribute?\n \tReturns the `.toString` value by default.\n \t\t@method toHref\n \t@return {string}\n */\n toHref: function toHref() {\n return this.toString();\n },\n\n /**\n * The start index of this token in the original input string\n * @returns {number}\n */\n startIndex: function startIndex() {\n return this.tk[0].s;\n },\n\n /**\n * The end index of this token in the original input string (up to this\n * index but not including it)\n * @returns {number}\n */\n endIndex: function endIndex() {\n return this.tk[this.tk.length - 1].e;\n },\n\n /**\n \tReturns a hash of relevant values for this token, which includes keys\n \t* type - Kind of token ('url', 'email', etc.)\n \t* value - Original text\n \t* href - The value that should be added to the anchor tag's href\n \t\tattribute\n \t\t@method toObject\n \t@param {string} [protocol] `'http'` by default\n */\n toObject: function toObject() {\n var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults.defaultProtocol;\n return {\n type: this.t,\n value: this.v,\n isLink: this.isLink,\n href: this.toHref(protocol),\n start: this.startIndex(),\n end: this.endIndex()\n };\n }\n}; // Base token\n/**\n * Create a new token that can be emitted by the parser state machine\n * @param {string} type readable type of the token\n * @param {object} props properties to assign or override, including isLink = true or false\n * @returns {(value: string, tokens: {t: string, v: string, s: number, e: number}) => MultiToken} new token class\n */\n\nfunction createTokenClass(type, props) {\n function Token(value, tokens) {\n this.t = type;\n this.v = value;\n this.tk = tokens;\n }\n\n inherits(MultiToken, Token, props);\n return Token;\n}\n/**\n\tRepresents an arbitrarily mailto email address with the prefix included\n\t@class MailtoEmail\n\t@extends MultiToken\n*/\n\nvar MailtoEmail = createTokenClass('email', {\n isLink: true\n});\n/**\n\tRepresents a list of tokens making up a valid email address\n\t@class Email\n\t@extends MultiToken\n*/\n\nvar Email = createTokenClass('email', {\n isLink: true,\n toHref: function toHref() {\n return 'mailto:' + this.toString();\n }\n});\n/**\n\tRepresents some plain text\n\t@class Text\n\t@extends MultiToken\n*/\n\nvar Text = createTokenClass('text');\n/**\n\tMulti-linebreak token - represents a line break\n\t@class Nl\n\t@extends MultiToken\n*/\n\nvar Nl = createTokenClass('nl');\n/**\n\tRepresents a list of text tokens making up a valid URL\n\t@class Url\n\t@extends MultiToken\n*/\n\nvar Url = createTokenClass('url', {\n isLink: true,\n\n /**\n \tLowercases relevant parts of the domain and adds the protocol if\n \trequired. Note that this will not escape unsafe HTML characters in the\n \tURL.\n \t\t@method href\n \t@param {string} protocol\n \t@return {string}\n */\n toHref: function toHref() {\n var protocol = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults.defaultProtocol;\n var tokens = this.tk;\n var hasProtocol = false;\n var hasSlashSlash = false;\n var result = [];\n var i = 0; // Make the first part of the domain lowercase\n // Lowercase protocol\n\n while (tokens[i].t === PROTOCOL) {\n hasProtocol = true;\n result.push(tokens[i].v);\n i++;\n } // Skip slash-slash\n\n\n while (tokens[i].t === SLASH) {\n hasSlashSlash = true;\n result.push(tokens[i].v);\n i++;\n } // Continue pushing characters\n\n\n for (; i < tokens.length; i++) {\n result.push(tokens[i].v);\n }\n\n result = result.join('');\n\n if (!(hasProtocol || hasSlashSlash)) {\n result = \"\".concat(protocol, \"://\").concat(result);\n }\n\n return result;\n },\n hasProtocol: function hasProtocol() {\n return this.tk[0].t === PROTOCOL;\n }\n});\n\nvar multi = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tMultiToken: MultiToken,\n\tBase: MultiToken,\n\tcreateTokenClass: createTokenClass,\n\tMailtoEmail: MailtoEmail,\n\tEmail: Email,\n\tText: Text,\n\tNl: Nl,\n\tUrl: Url\n});\n\n/**\n\tNot exactly parser, more like the second-stage scanner (although we can\n\ttheoretically hotswap the code here with a real parser in the future... but\n\tfor a little URL-finding utility abstract syntax trees may be a little\n\toverkill).\n\n\tURL format: http://en.wikipedia.org/wiki/URI_scheme\n\tEmail format: http://en.wikipedia.org/wiki/Email_address (links to RFC in\n\treference)\n\n\t@module linkify\n\t@submodule parser\n\t@main run\n*/\n/**\n * Generate the parser multi token-based state machine\n * @returns {State} the starting state\n */\n\nfunction init$1() {\n // The universal starting state.\n var S_START = makeState(); // Intermediate states for URLs. Note that domains that begin with a protocol\n // are treated slighly differently from those that don't.\n\n var S_PROTOCOL = makeState(); // e.g., 'http:'\n\n var S_MAILTO = makeState(); // 'mailto:'\n\n var S_PROTOCOL_SLASH = makeState(); // e.g., 'http:/''\n\n var S_PROTOCOL_SLASH_SLASH = makeState(); // e.g.,'http://'\n\n var S_DOMAIN = makeState(); // parsed string ends with a potential domain name (A)\n\n var S_DOMAIN_DOT = makeState(); // (A) domain followed by DOT\n\n var S_TLD = makeAcceptingState(Url); // (A) Simplest possible URL with no query string\n\n var S_TLD_COLON = makeState(); // (A) URL followed by colon (potential port number here)\n\n var S_TLD_PORT = makeAcceptingState(Url); // TLD followed by a port number\n\n var S_URL = makeAcceptingState(Url); // Long URL with optional port and maybe query string\n\n var S_URL_NON_ACCEPTING = makeState(); // URL followed by some symbols (will not be part of the final URL)\n\n var S_URL_OPENBRACE = makeState(); // URL followed by {\n\n var S_URL_OPENBRACKET = makeState(); // URL followed by [\n\n var S_URL_OPENANGLEBRACKET = makeState(); // URL followed by <\n\n var S_URL_OPENPAREN = makeState(); // URL followed by (\n\n var S_URL_OPENBRACE_Q = makeAcceptingState(Url); // URL followed by { and some symbols that the URL can end it\n\n var S_URL_OPENBRACKET_Q = makeAcceptingState(Url); // URL followed by [ and some symbols that the URL can end it\n\n var S_URL_OPENANGLEBRACKET_Q = makeAcceptingState(Url); // URL followed by < and some symbols that the URL can end it\n\n var S_URL_OPENPAREN_Q = makeAcceptingState(Url); // URL followed by ( and some symbols that the URL can end it\n\n var S_URL_OPENBRACE_SYMS = makeState(); // S_URL_OPENBRACE_Q followed by some symbols it cannot end it\n\n var S_URL_OPENBRACKET_SYMS = makeState(); // S_URL_OPENBRACKET_Q followed by some symbols it cannot end it\n\n var S_URL_OPENANGLEBRACKET_SYMS = makeState(); // S_URL_OPENANGLEBRACKET_Q followed by some symbols it cannot end it\n\n var S_URL_OPENPAREN_SYMS = makeState(); // S_URL_OPENPAREN_Q followed by some symbols it cannot end it\n\n var S_EMAIL_DOMAIN = makeState(); // parsed string starts with local email info + @ with a potential domain name (C)\n\n var S_EMAIL_DOMAIN_DOT = makeState(); // (C) domain followed by DOT\n\n var S_EMAIL = makeAcceptingState(Email); // (C) Possible email address (could have more tlds)\n\n var S_EMAIL_COLON = makeState(); // (C) URL followed by colon (potential port number here)\n\n var S_EMAIL_PORT = makeAcceptingState(Email); // (C) Email address with a port\n\n var S_MAILTO_EMAIL = makeAcceptingState(MailtoEmail); // Email that begins with the mailto prefix (D)\n\n var S_MAILTO_EMAIL_NON_ACCEPTING = makeState(); // (D) Followed by some non-query string chars\n\n var S_LOCALPART = makeState(); // Local part of the email address\n\n var S_LOCALPART_AT = makeState(); // Local part of the email address plus @\n\n var S_LOCALPART_DOT = makeState(); // Local part of the email address plus '.' (localpart cannot end in .)\n\n var S_NL = makeAcceptingState(Nl); // single new line\n // Make path from start to protocol (with '//')\n\n makeT(S_START, NL, S_NL);\n makeT(S_START, PROTOCOL, S_PROTOCOL);\n makeT(S_START, MAILTO, S_MAILTO);\n makeT(S_PROTOCOL, SLASH, S_PROTOCOL_SLASH);\n makeT(S_PROTOCOL_SLASH, SLASH, S_PROTOCOL_SLASH_SLASH); // The very first potential domain name\n\n makeT(S_START, TLD, S_DOMAIN);\n makeT(S_START, DOMAIN, S_DOMAIN);\n makeT(S_START, LOCALHOST, S_TLD);\n makeT(S_START, NUM, S_DOMAIN); // Force URL for protocol followed by anything sane\n\n makeT(S_PROTOCOL_SLASH_SLASH, TLD, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, DOMAIN, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, NUM, S_URL);\n makeT(S_PROTOCOL_SLASH_SLASH, LOCALHOST, S_URL); // Account for dots and hyphens\n // hyphens are usually parts of domain names\n\n makeT(S_DOMAIN, DOT, S_DOMAIN_DOT);\n makeT(S_EMAIL_DOMAIN, DOT, S_EMAIL_DOMAIN_DOT); // Hyphen can jump back to a domain name\n // After the first domain and a dot, we can find either a URL or another domain\n\n makeT(S_DOMAIN_DOT, TLD, S_TLD);\n makeT(S_DOMAIN_DOT, DOMAIN, S_DOMAIN);\n makeT(S_DOMAIN_DOT, NUM, S_DOMAIN);\n makeT(S_DOMAIN_DOT, LOCALHOST, S_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, TLD, S_EMAIL);\n makeT(S_EMAIL_DOMAIN_DOT, DOMAIN, S_EMAIL_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, NUM, S_EMAIL_DOMAIN);\n makeT(S_EMAIL_DOMAIN_DOT, LOCALHOST, S_EMAIL_DOMAIN); // S_TLD accepts! But the URL could be longer, try to find a match greedily\n // The `run` function should be able to \"rollback\" to the accepting state\n\n makeT(S_TLD, DOT, S_DOMAIN_DOT);\n makeT(S_EMAIL, DOT, S_EMAIL_DOMAIN_DOT); // Become real URLs after `SLASH` or `COLON NUM SLASH`\n // Here PSS and non-PSS converge\n\n makeT(S_TLD, COLON, S_TLD_COLON);\n makeT(S_TLD, SLASH, S_URL);\n makeT(S_TLD_COLON, NUM, S_TLD_PORT);\n makeT(S_TLD_PORT, SLASH, S_URL);\n makeT(S_EMAIL, COLON, S_EMAIL_COLON);\n makeT(S_EMAIL_COLON, NUM, S_EMAIL_PORT); // Types of characters the URL can definitely end in\n\n var qsAccepting = [AMPERSAND, ASTERISK, AT, BACKSLASH, BACKTICK, CARET, DOLLAR, DOMAIN, EQUALS, HYPHEN, LOCALHOST, NUM, PERCENT, PIPE, PLUS, POUND, PROTOCOL, SLASH, SYM, TILDE, TLD, UNDERSCORE]; // Types of tokens that can follow a URL and be part of the query string\n // but cannot be the very last characters\n // Characters that cannot appear in the URL at all should be excluded\n\n var qsNonAccepting = [APOSTROPHE, CLOSEANGLEBRACKET, CLOSEBRACE, CLOSEBRACKET, CLOSEPAREN, COLON, COMMA, DOT, EXCLAMATION, OPENANGLEBRACKET, OPENBRACE, OPENBRACKET, OPENPAREN, QUERY, QUOTE, SEMI]; // These states are responsible primarily for determining whether or not to\n // include the final round bracket.\n // URL, followed by an opening bracket\n\n makeT(S_URL, OPENBRACE, S_URL_OPENBRACE);\n makeT(S_URL, OPENBRACKET, S_URL_OPENBRACKET);\n makeT(S_URL, OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET);\n makeT(S_URL, OPENPAREN, S_URL_OPENPAREN); // URL with extra symbols at the end, followed by an opening bracket\n\n makeT(S_URL_NON_ACCEPTING, OPENBRACE, S_URL_OPENBRACE);\n makeT(S_URL_NON_ACCEPTING, OPENBRACKET, S_URL_OPENBRACKET);\n makeT(S_URL_NON_ACCEPTING, OPENANGLEBRACKET, S_URL_OPENANGLEBRACKET);\n makeT(S_URL_NON_ACCEPTING, OPENPAREN, S_URL_OPENPAREN); // Closing bracket component. This character WILL be included in the URL\n\n makeT(S_URL_OPENBRACE, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN, CLOSEPAREN, S_URL);\n makeT(S_URL_OPENBRACE_Q, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET_Q, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET_Q, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN_Q, CLOSEPAREN, S_URL);\n makeT(S_URL_OPENBRACE_SYMS, CLOSEBRACE, S_URL);\n makeT(S_URL_OPENBRACKET_SYMS, CLOSEBRACKET, S_URL);\n makeT(S_URL_OPENANGLEBRACKET_SYMS, CLOSEANGLEBRACKET, S_URL);\n makeT(S_URL_OPENPAREN_SYMS, CLOSEPAREN, S_URL); // URL that beings with an opening bracket, followed by a symbols.\n // Note that the final state can still be `S_URL_OPENBRACE_Q` (if the URL only\n // has a single opening bracket for some reason).\n\n makeMultiT(S_URL_OPENBRACE, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE, qsNonAccepting, S_URL_OPENBRACE_SYMS);\n makeMultiT(S_URL_OPENBRACKET, qsNonAccepting, S_URL_OPENBRACKET_SYMS);\n makeMultiT(S_URL_OPENANGLEBRACKET, qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\n makeMultiT(S_URL_OPENPAREN, qsNonAccepting, S_URL_OPENPAREN_SYMS); // URL that begins with an opening bracket, followed by some symbols\n\n makeMultiT(S_URL_OPENBRACE_Q, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_Q, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_Q, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_Q, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_Q, qsNonAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_Q, qsNonAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_Q, qsNonAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_Q, qsNonAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_SYMS, qsAccepting, S_URL_OPENBRACE_Q);\n makeMultiT(S_URL_OPENBRACKET_SYMS, qsAccepting, S_URL_OPENBRACKET_Q);\n makeMultiT(S_URL_OPENANGLEBRACKET_SYMS, qsAccepting, S_URL_OPENANGLEBRACKET_Q);\n makeMultiT(S_URL_OPENPAREN_SYMS, qsAccepting, S_URL_OPENPAREN_Q);\n makeMultiT(S_URL_OPENBRACE_SYMS, qsNonAccepting, S_URL_OPENBRACE_SYMS);\n makeMultiT(S_URL_OPENBRACKET_SYMS, qsNonAccepting, S_URL_OPENBRACKET_SYMS);\n makeMultiT(S_URL_OPENANGLEBRACKET_SYMS, qsNonAccepting, S_URL_OPENANGLEBRACKET_SYMS);\n makeMultiT(S_URL_OPENPAREN_SYMS, qsNonAccepting, S_URL_OPENPAREN_SYMS); // Account for the query string\n\n makeMultiT(S_URL, qsAccepting, S_URL);\n makeMultiT(S_URL_NON_ACCEPTING, qsAccepting, S_URL);\n makeMultiT(S_URL, qsNonAccepting, S_URL_NON_ACCEPTING);\n makeMultiT(S_URL_NON_ACCEPTING, qsNonAccepting, S_URL_NON_ACCEPTING); // Email address-specific state definitions\n // Note: We are not allowing '/' in email addresses since this would interfere\n // with real URLs\n // For addresses with the mailto prefix\n // 'mailto:' followed by anything sane is a valid email\n\n makeT(S_MAILTO, TLD, S_MAILTO_EMAIL);\n makeT(S_MAILTO, DOMAIN, S_MAILTO_EMAIL);\n makeT(S_MAILTO, NUM, S_MAILTO_EMAIL);\n makeT(S_MAILTO, LOCALHOST, S_MAILTO_EMAIL); // Greedily get more potential valid email values\n\n makeMultiT(S_MAILTO_EMAIL, qsAccepting, S_MAILTO_EMAIL);\n makeMultiT(S_MAILTO_EMAIL, qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING);\n makeMultiT(S_MAILTO_EMAIL_NON_ACCEPTING, qsAccepting, S_MAILTO_EMAIL);\n makeMultiT(S_MAILTO_EMAIL_NON_ACCEPTING, qsNonAccepting, S_MAILTO_EMAIL_NON_ACCEPTING); // For addresses without the mailto prefix\n // Tokens allowed in the localpart of the email\n\n var localpartAccepting = [AMPERSAND, APOSTROPHE, ASTERISK, BACKSLASH, BACKTICK, CARET, CLOSEBRACE, DOLLAR, DOMAIN, EQUALS, HYPHEN, NUM, OPENBRACE, PERCENT, PIPE, PLUS, POUND, QUERY, SLASH, SYM, TILDE, TLD, UNDERSCORE]; // Some of the tokens in `localpartAccepting` are already accounted for here and\n // will not be overwritten (don't worry)\n\n makeMultiT(S_DOMAIN, localpartAccepting, S_LOCALPART);\n makeT(S_DOMAIN, AT, S_LOCALPART_AT);\n makeMultiT(S_TLD, localpartAccepting, S_LOCALPART);\n makeT(S_TLD, AT, S_LOCALPART_AT);\n makeMultiT(S_DOMAIN_DOT, localpartAccepting, S_LOCALPART); // Now in localpart of address\n // TODO: IP addresses and what if the email starts with numbers?\n\n makeMultiT(S_LOCALPART, localpartAccepting, S_LOCALPART);\n makeT(S_LOCALPART, AT, S_LOCALPART_AT); // close to an email address now\n\n makeT(S_LOCALPART, DOT, S_LOCALPART_DOT);\n makeMultiT(S_LOCALPART_DOT, localpartAccepting, S_LOCALPART);\n makeT(S_LOCALPART_AT, TLD, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, DOMAIN, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, NUM, S_EMAIL_DOMAIN);\n makeT(S_LOCALPART_AT, LOCALHOST, S_EMAIL); // States following `@` defined above\n\n return S_START;\n}\n/**\n * Run the parser state machine on a list of scanned string-based tokens to\n * create a list of multi tokens, each of which represents a URL, email address,\n * plain text, etc.\n *\n * @param {State} start parser start state\n * @param {string} input the original input used to generate the given tokens\n * @param {{t: string, v: string, s: number, e: number}[]} tokens list of scanned tokens\n * @returns {MultiToken[]}\n */\n\nfunction run(start, input, tokens) {\n var len = tokens.length;\n var cursor = 0;\n var multis = [];\n var textTokens = [];\n\n while (cursor < len) {\n var state = start;\n var secondState = null;\n var nextState = null;\n var multiLength = 0;\n var latestAccepting = null;\n var sinceAccepts = -1;\n\n while (cursor < len && !(secondState = takeT(state, tokens[cursor].t))) {\n // Starting tokens with nowhere to jump to.\n // Consider these to be just plain text\n textTokens.push(tokens[cursor++]);\n }\n\n while (cursor < len && (nextState = secondState || takeT(state, tokens[cursor].t))) {\n // Get the next state\n secondState = null;\n state = nextState; // Keep track of the latest accepting state\n\n if (state.accepts()) {\n sinceAccepts = 0;\n latestAccepting = state;\n } else if (sinceAccepts >= 0) {\n sinceAccepts++;\n }\n\n cursor++;\n multiLength++;\n }\n\n if (sinceAccepts < 0) {\n // No accepting state was found, part of a regular text token\n // Add all the tokens we looked at to the text tokens array\n for (var i = cursor - multiLength; i < cursor; i++) {\n textTokens.push(tokens[i]);\n }\n } else {\n // Accepting state!\n // First close off the textTokens (if available)\n if (textTokens.length > 0) {\n multis.push(parserCreateMultiToken(Text, input, textTokens));\n textTokens = [];\n } // Roll back to the latest accepting state\n\n\n cursor -= sinceAccepts;\n multiLength -= sinceAccepts; // Create a new multitoken\n\n var Multi = latestAccepting.t;\n var subtokens = tokens.slice(cursor - multiLength, cursor);\n multis.push(parserCreateMultiToken(Multi, input, subtokens));\n }\n } // Finally close off the textTokens (if available)\n\n\n if (textTokens.length > 0) {\n multis.push(parserCreateMultiToken(Text, input, textTokens));\n }\n\n return multis;\n}\n/**\n * Utility function for instantiating a new multitoken with all the relevant\n * fields during parsing.\n * @param {Class} Multi class to instantiate\n * @param {string} input original input string\n * @param {{t: string, v: string, s: number, e: number}[]} tokens consecutive tokens scanned from input string\n * @returns {MultiToken}\n */\n\nfunction parserCreateMultiToken(Multi, input, tokens) {\n var startIdx = tokens[0].s;\n var endIdx = tokens[tokens.length - 1].e;\n var value = input.substr(startIdx, endIdx - startIdx);\n return new Multi(value, tokens);\n}\n\nvar warn = typeof console !== 'undefined' && console && console.warn || function () {}; // Side-effect initialization state\n\n\nvar INIT = {\n scanner: null,\n parser: null,\n pluginQueue: [],\n customProtocols: [],\n initialized: false\n};\n/**\n * De-register all plugins and reset the internal state-machine. Used for\n * testing; not required in practice.\n * @private\n */\n\nfunction reset() {\n INIT.scanner = null;\n INIT.parser = null;\n INIT.pluginQueue = [];\n INIT.customProtocols = [];\n INIT.initialized = false;\n}\n/**\n * Register a linkify extension plugin\n * @param {string} name of plugin to register\n * @param {Function} plugin function that accepts mutable linkify state\n */\n\nfunction registerPlugin(name, plugin) {\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n if (name === INIT.pluginQueue[i][0]) {\n warn(\"linkifyjs: plugin \\\"\".concat(name, \"\\\" already registered - will be overwritten\"));\n INIT.pluginQueue[i] = [name, plugin];\n return;\n }\n }\n\n INIT.pluginQueue.push([name, plugin]);\n\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register plugin \\\"\".concat(name, \"\\\" until you manually call linkify.init(). To avoid this warning, please register all plugins before invoking linkify the first time.\"));\n }\n}\n/**\n * Detect URLs with the following additional protocol. Anything following\n * \"protocol:\" will be considered a link.\n * @param {string} protocol\n */\n\nfunction registerCustomProtocol(protocol) {\n if (INIT.initialized) {\n warn(\"linkifyjs: already initialized - will not register custom protocol \\\"\".concat(protocol, \"\\\" until you manually call linkify.init(). To avoid this warning, please register all custom protocols before invoking linkify the first time.\"));\n }\n\n if (!/^[a-z-]+$/.test(protocol)) {\n throw Error('linkifyjs: protocols containing characters other than a-z or - (hyphen) are not supported');\n }\n\n INIT.customProtocols.push(protocol);\n}\n/**\n * Initialize the linkify state machine. Called automatically the first time\n * linkify is called on a string, but may be called manually as well.\n */\n\nfunction init() {\n // Initialize state machines\n INIT.scanner = {\n start: init$2(INIT.customProtocols),\n tokens: text\n };\n INIT.parser = {\n start: init$1(),\n tokens: multi\n };\n var utils = {\n createTokenClass: createTokenClass\n }; // Initialize plugins\n\n for (var i = 0; i < INIT.pluginQueue.length; i++) {\n INIT.pluginQueue[i][1]({\n scanner: INIT.scanner,\n parser: INIT.parser,\n utils: utils\n });\n }\n\n INIT.initialized = true;\n}\n/**\n\tParse a string into tokens that represent linkable and non-linkable sub-components\n\t@param {string} str\n\t@return {MultiToken[]} tokens\n*/\n\nfunction tokenize(str) {\n if (!INIT.initialized) {\n init();\n }\n\n return run(INIT.parser.start, str, run$1(INIT.scanner.start, str));\n}\n/**\n\tFind a list of linkable items in the given string.\n\t@param {string} str string to find links in\n\t@param {string} [type] (optional) only find links of a specific type, e.g.,\n\t'url' or 'email'\n*/\n\nfunction find(str) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var tokens = tokenize(str);\n var filtered = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.isLink && (!type || token.t === type)) {\n filtered.push(token.toObject());\n }\n }\n\n return filtered;\n}\n/**\n * Is the given string valid linkable text of some sort. Note that this does not\n * trim the text for you.\n *\n * Optionally pass in a second `type` param, which is the type of link to test\n * for.\n *\n * For example,\n *\n * linkify.test(str, 'email');\n *\n * Returns `true` if str is a valid email.\n * @param {string} str string to test for links\n * @param {string} [type] optional specific link type to look for\n * @returns boolean true/false\n */\n\nfunction test(str) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var tokens = tokenize(str);\n return tokens.length === 1 && tokens[0].isLink && (!type || tokens[0].t === type);\n}\n\nexports.Options = Options;\nexports.find = find;\nexports.init = init;\nexports.options = options;\nexports.registerCustomProtocol = registerCustomProtocol;\nexports.registerPlugin = registerPlugin;\nexports.reset = reset;\nexports.test = test;\nexports.tokenize = tokenize;\n","module.exports = __webpack_public_path__ + \"img/chevronLeft.86209808.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./chatMessage.vue?vue&type=style&index=0&id=12be9186&lang=css\"","import { createVNode as _createVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createCommentVNode as _createCommentVNode, withScopeId as _withScopeId, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/img/search.svg'\nimport _imports_1 from '@/assets/img/close.svg'\n\nconst _withId = /*#__PURE__*/_withScopeId(\"data-v-032ecc52\")\n\n_pushScopeId(\"data-v-032ecc52\")\nconst _hoisted_1 = {\n key: 0,\n class: \"chatSearchCommunities widePagePadding hasHeader\",\n ref: \"chatSearchContainer\"\n}\nconst _hoisted_2 = { class: \"header d-flex aling-items-center justify-content-between\" }\nconst _hoisted_3 = { class: \"searchContainer\" }\nconst _hoisted_4 = /*#__PURE__*/_createVNode(\"img\", { src: _imports_0 }, null, -1)\nconst _hoisted_5 = { class: \"ms-3 me-2 d-flex align-items-center\" }\nconst _hoisted_6 = { class: \"itemImage\" }\nconst _hoisted_7 = { class: \"itemText\" }\n_popScopeId()\n\nexport const render = /*#__PURE__*/_withId((_ctx: any,_cache: any) => {\n const _directive_localizedPlaceholder = _resolveDirective(\"localizedPlaceholder\")!\n const _directive_userimage = _resolveDirective(\"userimage\")!\n\n return (_openBlock(), _createBlock(\"div\", null, [\n _createVNode(\"div\", {\n class: \"editor\",\n tabindex: \"0\",\n ref: \"textarea\",\n \"data-placeholder\": _ctx.placeholder,\n contenteditable: \"true\",\n onInput: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.setLocalText && _ctx.setLocalText(...args))),\n \"max-height\": _ctx.maxHeight,\n \"min-height\": _ctx.minHeight,\n onKeydown: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.checkLetter && _ctx.checkLetter(...args)))\n }, null, 40, [\"data-placeholder\", \"max-height\", \"min-height\"]),\n (_ctx.showSearch)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _createVNode(\"div\", _hoisted_2, [\n _createVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _withDirectives(_createVNode(\"input\", {\n type: \"text\",\n onInput: _cache[3] || (_cache[3] = ($event: any) => (_ctx.search = $event.target.value)),\n class: \"searchInput ms-2\",\n ref: \"searchInput\"\n }, null, 544), [\n [_directive_localizedPlaceholder, { key: 'app_cercacommunityDaCollegare', value: 'Cerca community da collegare...' }]\n ])\n ]),\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"img\", {\n src: _imports_1,\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.hideSearch()))\n })\n ])\n ]),\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.chatSearchCommunities, (item) => {\n return (_openBlock(), _createBlock(\"div\", {\n class: \"searchItem\",\n key: item.identifier,\n onClick: _withModifiers(($event: any) => (_ctx.setCommunity(item)), [\"stop\",\"prevent\"])\n }, [\n _withDirectives(_createVNode(\"div\", _hoisted_6, null, 512), [\n [_directive_userimage, item.image]\n ]),\n _createVNode(\"div\", _hoisted_7, _toDisplayString(item.name), 1)\n ], 8, [\"onClick\"]))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n})","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { Prop, Watch } from 'vue-property-decorator';\r\nimport { setCaretLast, decodeHtml, getCaretPosition } from '@/utils';\r\nimport { CommunityClient } from '@/services/Services';\r\nimport * as OM from '@/model';\r\nimport { LocalizationServices } from '@/services/LocalizationServices';\r\n\r\n\r\n@Options({})\r\nexport default class UoseWriter extends Vue {\r\n\r\n @Prop() modelValue: string;\r\n @Prop() reset: number;\r\n @Prop() placeholderText: string;\r\n @Prop() placeholderKey: string;\r\n @Prop() minHeight: number;\r\n @Prop() maxHeight: number;\r\n\r\n localText: string = \"\";\r\n\r\n textarea: any;\r\n mounted() {\r\n this.textarea = this.$refs.textarea;\r\n if(this.modelValue)\r\n this.textarea.innerHTML = this.modelValue;\r\n\r\n this.searchCommunities(\"\");\r\n }\r\n\r\n @Watch('reset')\r\n onValueChange(next, prev){\r\n if(next){\r\n this.localText = \"\";\r\n this.textarea.innerHTML = \"\";\r\n }\r\n }\r\n\r\n get placeholder(){\r\n return LocalizationServices.getLocalizedValue(this.placeholderKey, this.placeholderText);\r\n }\r\n\r\n setLocalText(ev){\r\n this.localText = decodeHtml(ev.target.innerHTML);\r\n this.$emit('update:modelValue', this.localText);\r\n\r\n if(ev.data == '&')\r\n this.eCommercialeTriggered();\r\n else if(ev.which == 13)\r\n this.enterTriggered(ev);\r\n }\r\n hideSearch() {\r\n document.getElementById(\"app\").classList.remove(\"chatSearchCommunitiesOpened\");\r\n setTimeout(() => {\r\n this.search = \"\";\r\n this.showSearch = false;\r\n setCaretLast(this.textarea);\r\n }, 100)\r\n }\r\n\r\n showSearch: boolean = false;\r\n search: string = \"\";\r\n debouncia: any;\r\n @Watch('search')\r\n onSearchChange(next, prev){\r\n clearTimeout(this.debouncia);\r\n this.debouncia = setTimeout(() => {\r\n this.searchCommunities(next);\r\n }, 300);\r\n }\r\n doRec: boolean = false;\r\n recbuffer: string = \"\";\r\n insertPosition: number;\r\n checkLetter(ev){\r\n // ev.key == '&' - ev.keyCode == 13\r\n if(ev.key == '&')\r\n this.eCommercialeTriggered();\r\n else if(ev.which == 13)\r\n this.enterTriggered(ev);\r\n }\r\n\r\n eCommercialeTriggered() {\r\n this.setShowSearch();\r\n this.insertPosition = getCaretPosition(this.textarea);\r\n setTimeout(() => {\r\n (this.$refs.searchInput).focus();\r\n }, 100);\r\n }\r\n enterTriggered(ev) {\r\n // insert 2 br tags (if only one br tag is inserted the cursor won't go to the second line)\r\n document.execCommand('insertHTML', false, '

');\r\n // prevent the default behaviour of return key pressed\r\n ev.preventDefault();\r\n return false;\r\n }\r\n\r\n chatSearchCommunities: OM.SearchResultVm[] = [];\r\n searchCommunities(query){\r\n CommunityClient.chatSearch(query)\r\n .then(x => {\r\n this.chatSearchCommunities = x;\r\n })\r\n }\r\n\r\n async setCommunity(item: OM.SearchResultVm) {\r\n this.search = \"\";\r\n\r\n try {\r\n const community = await CommunityClient.getById(item.identifier);\r\n\r\n // controllo se ce dlug e titol\r\n if (community && community.slug && community.title) {\r\n // url per evitare il push\r\n const customUrl = `/communities/${community.slug}/`;\r\n // Aggiorna la stringa this.localText con l'URL personalizzato\r\n this.localText = this.localText.slice(0, this.insertPosition - 1) +\r\n `${community.title} ` +\r\n this.localText.slice(this.insertPosition + 1);\r\n\r\n \r\n this.textarea.innerHTML = this.localText;\r\n\r\n console.log(this.localText);\r\n\r\n \r\n this.$emit('update:modelValue', this.localText);\r\n } else {\r\n console.error('Informazioni sulla comunità non valide:', community);\r\n }\r\n } catch (error) {\r\n console.error('Errore durante la chiamata API per ottenere la comunità:', error);\r\n }\r\n\r\n // nascondi la ricerca\r\n this.hideSearch();\r\n }\r\n\r\n setShowSearch(){\r\n this.showSearch = true;\r\n document.getElementById(\"app\").classList.add(\"chatSearchCommunitiesOpened\");\r\n // this.$nextTick(() => {\r\n // let root = this.textarea;\r\n // let container = this.$refs.chatSearchContainer;\r\n // let rect = container.getBoundingClientRect();\r\n // if(rect.x > window.innerWidth / 2){\r\n // container.style.right = \"0\";\r\n // } else {\r\n // container.style.left = \"0\";\r\n // }\r\n // let height = root.getBoundingClientRect().height;\r\n // let toAdd = 40;\r\n // if(height > 80){\r\n // height = 80;\r\n // toAdd = 20;\r\n // }\r\n // if(rect.y > window.innerHeight / 2){\r\n // container.style.bottom = height + toAdd + \"px\";\r\n // } else {\r\n // container.style.top = height + toAdd + \"px\";\r\n // }\r\n // })\r\n }\r\n}\r\n\r\n","import { render } from \"./uoseWriter.vue?vue&type=template&id=032ecc52&scoped=true&ts=true\"\nimport script from \"./uoseWriter.vue?vue&type=script&lang=ts\"\nexport * from \"./uoseWriter.vue?vue&type=script&lang=ts\"\n\nimport \"./uoseWriter.vue?vue&type=style&index=0&id=032ecc52&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\rekt\\\\source\\\\repos\\\\uose\\\\uoseapp_new\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-032ecc52\"]])\n\nexport default __exports__","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./customConfirm.vue?vue&type=style&index=0&id=22c8479e&scoped=true&lang=css\"","import { createVNode as _createVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\nimport _imports_0 from '@/assets/img/chevronLeft.svg'\nimport _imports_1 from '@/assets/img/3dots.svg'\n\n\nconst _hoisted_1 = { class: \"header withShadow d-flex aling-items-center justify-content-between py-2\" }\nconst _hoisted_2 = { class: \"d-flex align-items-center\" }\nconst _hoisted_3 = /*#__PURE__*/_createVNode(\"img\", { src: _imports_0 }, null, -1)\nconst _hoisted_4 = { class: \"smallChatHeaderUserImage me-2\" }\nconst _hoisted_5 = { class: \"fs_12 greyBlue d-block ln_12\" }\nconst _hoisted_6 = {\n key: 0,\n src: _imports_1\n}\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_localized_text = _resolveComponent(\"localized-text\")!\n const _directive_userimage = _resolveDirective(\"userimage\")!\n\n return (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _createVNode(\"div\", _hoisted_2, [\n _createVNode(\"div\", {\n class: \"sideContainer\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.back()))\n }, [\n _hoisted_3\n ]),\n (_ctx.hasUserInfo)\n ? (_openBlock(), _createBlock(\"div\", {\n key: 0,\n class: \"d-flex align-items-center ms-2\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$emit('openDetail')))\n }, [\n _withDirectives(_createVNode(\"div\", _hoisted_4, null, 512), [\n [_directive_userimage, _ctx.$store.state.getUserImage(_ctx.userIdentifier)]\n ]),\n _createVNode(\"div\", null, [\n _createVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.userName), 1),\n _createVNode(_component_localized_text, {\n class: \"text-decoration-underline pointer fs_10 greyBlue d-block ln_12\",\n localizedKey: \"app_toccaPerInfo\",\n text: \"Tocca per info\"\n })\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(\"div\", {\n class: \"sideContainer\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('settingsModal')))\n }, [\n (_ctx.hasOptions)\n ? (_openBlock(), _createBlock(\"img\", _hoisted_6))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\n\r\n@Options({})\r\nexport default class ChatHeader extends Vue {\r\n\r\n @Prop({\r\n default: \"\"\r\n }) userIdentifier: string;\r\n\r\n @Prop({\r\n default: \"\"\r\n }) userName: string;\r\n\r\n @Prop({\r\n default: false\r\n }) hasOptions: boolean;\r\n\r\n @Prop({\r\n default: false\r\n }) hasUserInfo: boolean;\r\n\r\n}\r\n","import { render } from \"./chatHeader.vue?vue&type=template&id=5606836e&ts=true\"\nimport script from \"./chatHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./chatHeader.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\rekt\\\\source\\\\repos\\\\uose\\\\uoseapp_new\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/search.dd70734b.svg\";","module.exports = __webpack_public_path__ + \"img/chatRequest_on.6b40695e.svg\";","module.exports = require('./lib/linkify');\n","'use strict';\n\nvar linkify = require('linkifyjs');\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () {\n return e[k];\n }\n });\n }\n });\n }\n n['default'] = e;\n return Object.freeze(n);\n}\n\nvar linkify__namespace = /*#__PURE__*/_interopNamespace(linkify);\n\n/**\n * generated from https://raw.githubusercontent.com/w3c/html/26b5126f96f736f796b9e29718138919dd513744/entities.json\n * do not edit\n */\nvar HTML5NamedCharRefs = {\n // We don't need the complete named character reference because linkifyHtml\n // does not modify the escape sequences. We do need   so that\n // whitespace is parsed properly. Other types of whitespace should already\n // be accounted for. > < and " are also frequently relevant ones\n amp: \"&\",\n gt: \">\",\n lt: \"<\",\n nbsp: \" \",\n quot: \"\\\"\"\n};\nvar HEXCHARCODE = /^#[xX]([A-Fa-f0-9]+)$/;\nvar CHARCODE = /^#([0-9]+)$/;\nvar NAMED = /^([A-Za-z0-9]+)$/;\n\nvar EntityParser =\n/** @class */\nfunction () {\n function EntityParser(named) {\n this.named = named;\n }\n\n EntityParser.prototype.parse = function (entity) {\n if (!entity) {\n return;\n }\n\n var matches = entity.match(HEXCHARCODE);\n\n if (matches) {\n return String.fromCharCode(parseInt(matches[1], 16));\n }\n\n matches = entity.match(CHARCODE);\n\n if (matches) {\n return String.fromCharCode(parseInt(matches[1], 10));\n }\n\n matches = entity.match(NAMED);\n\n if (matches) {\n return this.named[matches[1]] || \"&\" + matches[1] + \";\";\n }\n };\n\n return EntityParser;\n}();\n\nvar WSP = /[\\t\\n\\f ]/;\nvar ALPHA = /[A-Za-z]/;\nvar CRLF = /\\r\\n?/g;\n\nfunction isSpace(char) {\n return WSP.test(char);\n}\n\nfunction isAlpha(char) {\n return ALPHA.test(char);\n}\n\nfunction preprocessInput(input) {\n return input.replace(CRLF, '\\n');\n}\n\nvar EventedTokenizer =\n/** @class */\nfunction () {\n function EventedTokenizer(delegate, entityParser, mode) {\n if (mode === void 0) {\n mode = 'precompile';\n }\n\n this.delegate = delegate;\n this.entityParser = entityParser;\n this.mode = mode;\n this.state = \"beforeData\"\n /* beforeData */\n ;\n this.line = -1;\n this.column = -1;\n this.input = '';\n this.index = -1;\n this.tagNameBuffer = '';\n this.states = {\n beforeData: function beforeData() {\n var char = this.peek();\n\n if (char === '<' && !this.isIgnoredEndTag()) {\n this.transitionTo(\"tagOpen\"\n /* tagOpen */\n );\n this.markTagStart();\n this.consume();\n } else {\n if (this.mode === 'precompile' && char === '\\n') {\n var tag = this.tagNameBuffer.toLowerCase();\n\n if (tag === 'pre' || tag === 'textarea') {\n this.consume();\n }\n }\n\n this.transitionTo(\"data\"\n /* data */\n );\n this.delegate.beginData();\n }\n },\n data: function data() {\n var char = this.peek();\n var tag = this.tagNameBuffer;\n\n if (char === '<' && !this.isIgnoredEndTag()) {\n this.delegate.finishData();\n this.transitionTo(\"tagOpen\"\n /* tagOpen */\n );\n this.markTagStart();\n this.consume();\n } else if (char === '&' && tag !== 'script' && tag !== 'style') {\n this.consume();\n this.delegate.appendToData(this.consumeCharRef() || '&');\n } else {\n this.consume();\n this.delegate.appendToData(char);\n }\n },\n tagOpen: function tagOpen() {\n var char = this.consume();\n\n if (char === '!') {\n this.transitionTo(\"markupDeclarationOpen\"\n /* markupDeclarationOpen */\n );\n } else if (char === '/') {\n this.transitionTo(\"endTagOpen\"\n /* endTagOpen */\n );\n } else if (char === '@' || char === ':' || isAlpha(char)) {\n this.transitionTo(\"tagName\"\n /* tagName */\n );\n this.tagNameBuffer = '';\n this.delegate.beginStartTag();\n this.appendToTagName(char);\n }\n },\n markupDeclarationOpen: function markupDeclarationOpen() {\n var char = this.consume();\n\n if (char === '-' && this.peek() === '-') {\n this.consume();\n this.transitionTo(\"commentStart\"\n /* commentStart */\n );\n this.delegate.beginComment();\n } else {\n var maybeDoctype = char.toUpperCase() + this.input.substring(this.index, this.index + 6).toUpperCase();\n\n if (maybeDoctype === 'DOCTYPE') {\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.transitionTo(\"doctype\"\n /* doctype */\n );\n if (this.delegate.beginDoctype) this.delegate.beginDoctype();\n }\n }\n },\n doctype: function doctype() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeDoctypeName\"\n /* beforeDoctypeName */\n );\n }\n },\n beforeDoctypeName: function beforeDoctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else {\n this.transitionTo(\"doctypeName\"\n /* doctypeName */\n );\n if (this.delegate.appendToDoctypeName) this.delegate.appendToDoctypeName(char.toLowerCase());\n }\n },\n doctypeName: function doctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"afterDoctypeName\"\n /* afterDoctypeName */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeName) this.delegate.appendToDoctypeName(char.toLowerCase());\n }\n },\n afterDoctypeName: function afterDoctypeName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n var nextSixChars = char.toUpperCase() + this.input.substring(this.index, this.index + 5).toUpperCase();\n var isPublic = nextSixChars.toUpperCase() === 'PUBLIC';\n var isSystem = nextSixChars.toUpperCase() === 'SYSTEM';\n\n if (isPublic || isSystem) {\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n this.consume();\n }\n\n if (isPublic) {\n this.transitionTo(\"afterDoctypePublicKeyword\"\n /* afterDoctypePublicKeyword */\n );\n } else if (isSystem) {\n this.transitionTo(\"afterDoctypeSystemKeyword\"\n /* afterDoctypeSystemKeyword */\n );\n }\n }\n },\n afterDoctypePublicKeyword: function afterDoctypePublicKeyword() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeDoctypePublicIdentifier\"\n /* beforeDoctypePublicIdentifier */\n );\n this.consume();\n } else if (char === '\"') {\n this.transitionTo(\"doctypePublicIdentifierDoubleQuoted\"\n /* doctypePublicIdentifierDoubleQuoted */\n );\n this.consume();\n } else if (char === \"'\") {\n this.transitionTo(\"doctypePublicIdentifierSingleQuoted\"\n /* doctypePublicIdentifierSingleQuoted */\n );\n this.consume();\n } else if (char === '>') {\n this.consume();\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n },\n doctypePublicIdentifierDoubleQuoted: function doctypePublicIdentifierDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.transitionTo(\"afterDoctypePublicIdentifier\"\n /* afterDoctypePublicIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypePublicIdentifier) this.delegate.appendToDoctypePublicIdentifier(char);\n }\n },\n doctypePublicIdentifierSingleQuoted: function doctypePublicIdentifierSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.transitionTo(\"afterDoctypePublicIdentifier\"\n /* afterDoctypePublicIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypePublicIdentifier) this.delegate.appendToDoctypePublicIdentifier(char);\n }\n },\n afterDoctypePublicIdentifier: function afterDoctypePublicIdentifier() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"betweenDoctypePublicAndSystemIdentifiers\"\n /* betweenDoctypePublicAndSystemIdentifiers */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"') {\n this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"\n /* doctypeSystemIdentifierDoubleQuoted */\n );\n } else if (char === \"'\") {\n this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"\n /* doctypeSystemIdentifierSingleQuoted */\n );\n }\n },\n betweenDoctypePublicAndSystemIdentifiers: function betweenDoctypePublicAndSystemIdentifiers() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"') {\n this.transitionTo(\"doctypeSystemIdentifierDoubleQuoted\"\n /* doctypeSystemIdentifierDoubleQuoted */\n );\n } else if (char === \"'\") {\n this.transitionTo(\"doctypeSystemIdentifierSingleQuoted\"\n /* doctypeSystemIdentifierSingleQuoted */\n );\n }\n },\n doctypeSystemIdentifierDoubleQuoted: function doctypeSystemIdentifierDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.transitionTo(\"afterDoctypeSystemIdentifier\"\n /* afterDoctypeSystemIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeSystemIdentifier) this.delegate.appendToDoctypeSystemIdentifier(char);\n }\n },\n doctypeSystemIdentifierSingleQuoted: function doctypeSystemIdentifierSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.transitionTo(\"afterDoctypeSystemIdentifier\"\n /* afterDoctypeSystemIdentifier */\n );\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n if (this.delegate.appendToDoctypeSystemIdentifier) this.delegate.appendToDoctypeSystemIdentifier(char);\n }\n },\n afterDoctypeSystemIdentifier: function afterDoctypeSystemIdentifier() {\n var char = this.consume();\n\n if (isSpace(char)) {\n return;\n } else if (char === '>') {\n if (this.delegate.endDoctype) this.delegate.endDoctype();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n },\n commentStart: function commentStart() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentStartDash\"\n /* commentStartDash */\n );\n } else if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData(char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n commentStartDash: function commentStartDash() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEnd\"\n /* commentEnd */\n );\n } else if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData('-');\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n comment: function comment() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEndDash\"\n /* commentEndDash */\n );\n } else {\n this.delegate.appendToCommentData(char);\n }\n },\n commentEndDash: function commentEndDash() {\n var char = this.consume();\n\n if (char === '-') {\n this.transitionTo(\"commentEnd\"\n /* commentEnd */\n );\n } else {\n this.delegate.appendToCommentData('-' + char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n commentEnd: function commentEnd() {\n var char = this.consume();\n\n if (char === '>') {\n this.delegate.finishComment();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.appendToCommentData('--' + char);\n this.transitionTo(\"comment\"\n /* comment */\n );\n }\n },\n tagName: function tagName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '>') {\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.appendToTagName(char);\n }\n },\n endTagName: function endTagName() {\n var char = this.consume();\n\n if (isSpace(char)) {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n this.tagNameBuffer = '';\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n this.tagNameBuffer = '';\n } else if (char === '>') {\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n this.tagNameBuffer = '';\n } else {\n this.appendToTagName(char);\n }\n },\n beforeAttributeName: function beforeAttributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n return;\n } else if (char === '/') {\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n this.consume();\n } else if (char === '>') {\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '=') {\n this.delegate.reportSyntaxError('attribute name cannot start with equals sign');\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n this.consume();\n this.delegate.appendToAttributeName(char);\n } else {\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n }\n },\n attributeName: function attributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.transitionTo(\"afterAttributeName\"\n /* afterAttributeName */\n );\n this.consume();\n } else if (char === '/') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '=') {\n this.transitionTo(\"beforeAttributeValue\"\n /* beforeAttributeValue */\n );\n this.consume();\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else if (char === '\"' || char === \"'\" || char === '<') {\n this.delegate.reportSyntaxError(char + ' is not a valid character within attribute names');\n this.consume();\n this.delegate.appendToAttributeName(char);\n } else {\n this.consume();\n this.delegate.appendToAttributeName(char);\n }\n },\n afterAttributeName: function afterAttributeName() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n return;\n } else if (char === '/') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '=') {\n this.consume();\n this.transitionTo(\"beforeAttributeValue\"\n /* beforeAttributeValue */\n );\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.transitionTo(\"attributeName\"\n /* attributeName */\n );\n this.delegate.beginAttribute();\n this.consume();\n this.delegate.appendToAttributeName(char);\n }\n },\n beforeAttributeValue: function beforeAttributeValue() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n } else if (char === '\"') {\n this.transitionTo(\"attributeValueDoubleQuoted\"\n /* attributeValueDoubleQuoted */\n );\n this.delegate.beginAttributeValue(true);\n this.consume();\n } else if (char === \"'\") {\n this.transitionTo(\"attributeValueSingleQuoted\"\n /* attributeValueSingleQuoted */\n );\n this.delegate.beginAttributeValue(true);\n this.consume();\n } else if (char === '>') {\n this.delegate.beginAttributeValue(false);\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"attributeValueUnquoted\"\n /* attributeValueUnquoted */\n );\n this.delegate.beginAttributeValue(false);\n this.consume();\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueDoubleQuoted: function attributeValueDoubleQuoted() {\n var char = this.consume();\n\n if (char === '\"') {\n this.delegate.finishAttributeValue();\n this.transitionTo(\"afterAttributeValueQuoted\"\n /* afterAttributeValueQuoted */\n );\n } else if (char === '&') {\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else {\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueSingleQuoted: function attributeValueSingleQuoted() {\n var char = this.consume();\n\n if (char === \"'\") {\n this.delegate.finishAttributeValue();\n this.transitionTo(\"afterAttributeValueQuoted\"\n /* afterAttributeValueQuoted */\n );\n } else if (char === '&') {\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else {\n this.delegate.appendToAttributeValue(char);\n }\n },\n attributeValueUnquoted: function attributeValueUnquoted() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.delegate.finishAttributeValue();\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '&') {\n this.consume();\n this.delegate.appendToAttributeValue(this.consumeCharRef() || '&');\n } else if (char === '>') {\n this.delegate.finishAttributeValue();\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.consume();\n this.delegate.appendToAttributeValue(char);\n }\n },\n afterAttributeValueQuoted: function afterAttributeValueQuoted() {\n var char = this.peek();\n\n if (isSpace(char)) {\n this.consume();\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n } else if (char === '/') {\n this.consume();\n this.transitionTo(\"selfClosingStartTag\"\n /* selfClosingStartTag */\n );\n } else if (char === '>') {\n this.consume();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n }\n },\n selfClosingStartTag: function selfClosingStartTag() {\n var char = this.peek();\n\n if (char === '>') {\n this.consume();\n this.delegate.markTagAsSelfClosing();\n this.delegate.finishTag();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n } else {\n this.transitionTo(\"beforeAttributeName\"\n /* beforeAttributeName */\n );\n }\n },\n endTagOpen: function endTagOpen() {\n var char = this.consume();\n\n if (char === '@' || char === ':' || isAlpha(char)) {\n this.transitionTo(\"endTagName\"\n /* endTagName */\n );\n this.tagNameBuffer = '';\n this.delegate.beginEndTag();\n this.appendToTagName(char);\n }\n }\n };\n this.reset();\n }\n\n EventedTokenizer.prototype.reset = function () {\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n this.input = '';\n this.tagNameBuffer = '';\n this.index = 0;\n this.line = 1;\n this.column = 0;\n this.delegate.reset();\n };\n\n EventedTokenizer.prototype.transitionTo = function (state) {\n this.state = state;\n };\n\n EventedTokenizer.prototype.tokenize = function (input) {\n this.reset();\n this.tokenizePart(input);\n this.tokenizeEOF();\n };\n\n EventedTokenizer.prototype.tokenizePart = function (input) {\n this.input += preprocessInput(input);\n\n while (this.index < this.input.length) {\n var handler = this.states[this.state];\n\n if (handler !== undefined) {\n handler.call(this);\n } else {\n throw new Error(\"unhandled state \" + this.state);\n }\n }\n };\n\n EventedTokenizer.prototype.tokenizeEOF = function () {\n this.flushData();\n };\n\n EventedTokenizer.prototype.flushData = function () {\n if (this.state === 'data') {\n this.delegate.finishData();\n this.transitionTo(\"beforeData\"\n /* beforeData */\n );\n }\n };\n\n EventedTokenizer.prototype.peek = function () {\n return this.input.charAt(this.index);\n };\n\n EventedTokenizer.prototype.consume = function () {\n var char = this.peek();\n this.index++;\n\n if (char === '\\n') {\n this.line++;\n this.column = 0;\n } else {\n this.column++;\n }\n\n return char;\n };\n\n EventedTokenizer.prototype.consumeCharRef = function () {\n var endIndex = this.input.indexOf(';', this.index);\n\n if (endIndex === -1) {\n return;\n }\n\n var entity = this.input.slice(this.index, endIndex);\n var chars = this.entityParser.parse(entity);\n\n if (chars) {\n var count = entity.length; // consume the entity chars\n\n while (count) {\n this.consume();\n count--;\n } // consume the `;`\n\n\n this.consume();\n return chars;\n }\n };\n\n EventedTokenizer.prototype.markTagStart = function () {\n this.delegate.tagOpen();\n };\n\n EventedTokenizer.prototype.appendToTagName = function (char) {\n this.tagNameBuffer += char;\n this.delegate.appendToTagName(char);\n };\n\n EventedTokenizer.prototype.isIgnoredEndTag = function () {\n var tag = this.tagNameBuffer;\n return tag === 'title' && this.input.substring(this.index, this.index + 8) !== '' || tag === 'style' && this.input.substring(this.index, this.index + 8) !== '' || tag === 'script' && this.input.substring(this.index, this.index + 9) !== '';\n };\n\n return EventedTokenizer;\n}();\n\nvar Tokenizer =\n/** @class */\nfunction () {\n function Tokenizer(entityParser, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = options;\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n this.tokens = [];\n this.tokenizer = new EventedTokenizer(this, entityParser, options.mode);\n this._currentAttribute = undefined;\n }\n\n Tokenizer.prototype.tokenize = function (input) {\n this.tokens = [];\n this.tokenizer.tokenize(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizePart = function (input) {\n this.tokens = [];\n this.tokenizer.tokenizePart(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizeEOF = function () {\n this.tokens = [];\n this.tokenizer.tokenizeEOF();\n return this.tokens[0];\n };\n\n Tokenizer.prototype.reset = function () {\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n };\n\n Tokenizer.prototype.current = function () {\n var token = this.token;\n\n if (token === null) {\n throw new Error('token was unexpectedly null');\n }\n\n if (arguments.length === 0) {\n return token;\n }\n\n for (var i = 0; i < arguments.length; i++) {\n if (token.type === arguments[i]) {\n return token;\n }\n }\n\n throw new Error(\"token type was unexpectedly \" + token.type);\n };\n\n Tokenizer.prototype.push = function (token) {\n this.token = token;\n this.tokens.push(token);\n };\n\n Tokenizer.prototype.currentAttribute = function () {\n return this._currentAttribute;\n };\n\n Tokenizer.prototype.addLocInfo = function () {\n if (this.options.loc) {\n this.current().loc = {\n start: {\n line: this.startLine,\n column: this.startColumn\n },\n end: {\n line: this.tokenizer.line,\n column: this.tokenizer.column\n }\n };\n }\n\n this.startLine = this.tokenizer.line;\n this.startColumn = this.tokenizer.column;\n }; // Data\n\n\n Tokenizer.prototype.beginDoctype = function () {\n this.push({\n type: \"Doctype\"\n /* Doctype */\n ,\n name: ''\n });\n };\n\n Tokenizer.prototype.appendToDoctypeName = function (char) {\n this.current(\"Doctype\"\n /* Doctype */\n ).name += char;\n };\n\n Tokenizer.prototype.appendToDoctypePublicIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.publicIdentifier === undefined) {\n doctype.publicIdentifier = char;\n } else {\n doctype.publicIdentifier += char;\n }\n };\n\n Tokenizer.prototype.appendToDoctypeSystemIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.systemIdentifier === undefined) {\n doctype.systemIdentifier = char;\n } else {\n doctype.systemIdentifier += char;\n }\n };\n\n Tokenizer.prototype.endDoctype = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.beginData = function () {\n this.push({\n type: \"Chars\"\n /* Chars */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToData = function (char) {\n this.current(\"Chars\"\n /* Chars */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishData = function () {\n this.addLocInfo();\n }; // Comment\n\n\n Tokenizer.prototype.beginComment = function () {\n this.push({\n type: \"Comment\"\n /* Comment */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToCommentData = function (char) {\n this.current(\"Comment\"\n /* Comment */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishComment = function () {\n this.addLocInfo();\n }; // Tags - basic\n\n\n Tokenizer.prototype.tagOpen = function () {};\n\n Tokenizer.prototype.beginStartTag = function () {\n this.push({\n type: \"StartTag\"\n /* StartTag */\n ,\n tagName: '',\n attributes: [],\n selfClosing: false\n });\n };\n\n Tokenizer.prototype.beginEndTag = function () {\n this.push({\n type: \"EndTag\"\n /* EndTag */\n ,\n tagName: ''\n });\n };\n\n Tokenizer.prototype.finishTag = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.markTagAsSelfClosing = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).selfClosing = true;\n }; // Tags - name\n\n\n Tokenizer.prototype.appendToTagName = function (char) {\n this.current(\"StartTag\"\n /* StartTag */\n , \"EndTag\"\n /* EndTag */\n ).tagName += char;\n }; // Tags - attributes\n\n\n Tokenizer.prototype.beginAttribute = function () {\n this._currentAttribute = ['', '', false];\n };\n\n Tokenizer.prototype.appendToAttributeName = function (char) {\n this.currentAttribute()[0] += char;\n };\n\n Tokenizer.prototype.beginAttributeValue = function (isQuoted) {\n this.currentAttribute()[2] = isQuoted;\n };\n\n Tokenizer.prototype.appendToAttributeValue = function (char) {\n this.currentAttribute()[1] += char;\n };\n\n Tokenizer.prototype.finishAttributeValue = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).attributes.push(this._currentAttribute);\n };\n\n Tokenizer.prototype.reportSyntaxError = function (message) {\n this.current().syntaxError = message;\n };\n\n return Tokenizer;\n}();\n\nfunction tokenize(input, options) {\n var tokenizer = new Tokenizer(new EntityParser(HTML5NamedCharRefs), options);\n return tokenizer.tokenize(input);\n}\n\nvar Options = linkify__namespace.Options;\nvar StartTag = 'StartTag';\nvar EndTag = 'EndTag';\nvar Chars = 'Chars';\nvar Comment = 'Comment';\nvar Doctype = 'Doctype';\n/**\n * @param {string} str html string to link\n * @param {object} [opts] linkify options\n * @returns {string} resulting string\n */\n\nfunction linkifyHtml(str) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // `tokens` and `token` in this section refer to tokens generated by the\n // HTML parser, not linkify's parser\n var tokens = tokenize(str);\n var linkifiedTokens = [];\n var linkified = [];\n opts = new Options(opts); // Linkify the tokens given by the parser\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.type === StartTag) {\n linkifiedTokens.push(token); // Ignore all the contents of ignored tags\n\n var tagName = token.tagName.toUpperCase();\n var isIgnored = tagName === 'A' || opts.ignoreTags.indexOf(tagName) >= 0;\n\n if (!isIgnored) {\n continue;\n }\n\n var preskipLen = linkifiedTokens.length;\n skipTagTokens(tagName, tokens, ++i, linkifiedTokens);\n i += linkifiedTokens.length - preskipLen - 1;\n continue;\n } else if (token.type !== Chars) {\n // Skip this token, it's not important\n linkifiedTokens.push(token);\n continue;\n } // Valid text token, linkify it!\n\n\n var linkifedChars = linkifyChars(token.chars, opts);\n linkifiedTokens.push.apply(linkifiedTokens, linkifedChars);\n } // Convert the tokens back into a string\n\n\n for (var _i = 0; _i < linkifiedTokens.length; _i++) {\n var _token = linkifiedTokens[_i];\n\n switch (_token.type) {\n case StartTag:\n {\n var link = '<' + _token.tagName;\n\n if (_token.attributes.length > 0) {\n var attrs = attrsToStrings(_token.attributes);\n link += ' ' + attrs.join(' ');\n }\n\n link += '>';\n linkified.push(link);\n break;\n }\n\n case EndTag:\n linkified.push(\"\"));\n break;\n\n case Chars:\n linkified.push(escapeText(_token.chars));\n break;\n\n case Comment:\n linkified.push(\"\"));\n break;\n\n case Doctype:\n {\n var doctype = \"';\n linkified.push(doctype);\n break;\n }\n }\n }\n\n return linkified.join('');\n}\n/**\n\t`tokens` and `token` in this section referes to tokens returned by\n\t`linkify.tokenize`. `linkified` will contain HTML Parser-style tokens\n*/\n\nfunction linkifyChars(str, opts) {\n var tokens = linkify__namespace.tokenize(str);\n var result = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.t === 'nl' && opts.nl2br) {\n result.push({\n type: StartTag,\n tagName: 'br',\n attributes: [],\n selfClosing: true\n });\n continue;\n } else if (!token.isLink || !opts.check(token)) {\n result.push({\n type: Chars,\n chars: token.toString()\n });\n continue;\n }\n\n var _opts$resolve = opts.resolve(token),\n formatted = _opts$resolve.formatted,\n formattedHref = _opts$resolve.formattedHref,\n tagName = _opts$resolve.tagName,\n className = _opts$resolve.className,\n target = _opts$resolve.target,\n rel = _opts$resolve.rel,\n attributes = _opts$resolve.attributes,\n truncate = _opts$resolve.truncate; // Build up attributes\n\n\n var attributeArray = [['href', formattedHref]];\n\n if (className) {\n attributeArray.push(['class', className]);\n }\n\n if (target) {\n attributeArray.push(['target', target]);\n }\n\n if (rel) {\n attributeArray.push(['rel', rel]);\n }\n\n if (truncate && formatted.length > truncate) {\n formatted = formatted.substring(0, truncate) + '…';\n }\n\n for (var attr in attributes) {\n attributeArray.push([attr, attributes[attr]]);\n } // Add the required tokens\n\n\n result.push({\n type: StartTag,\n tagName: tagName,\n attributes: attributeArray,\n selfClosing: false\n });\n result.push({\n type: Chars,\n chars: formatted\n });\n result.push({\n type: EndTag,\n tagName: tagName\n });\n }\n\n return result;\n}\n/**\n\tReturns a list of tokens skipped until the closing tag of tagName.\n\n\t* `tagName` is the closing tag which will prompt us to stop skipping\n\t* `tokens` is the array of tokens generated by HTML5Tokenizer which\n\t* `i` is the index immediately after the opening tag to skip\n\t* `skippedTokens` is an array which skipped tokens are being pushed into\n\n\tCaveats\n\n\t* Assumes that i is the first token after the given opening tagName\n\t* The closing tag will be skipped, but nothing after it\n\t* Will track whether there is a nested tag of the same type\n*/\n\n\nfunction skipTagTokens(tagName, tokens, i, skippedTokens) {\n // number of tokens of this type on the [fictional] stack\n var stackCount = 1;\n\n while (i < tokens.length && stackCount > 0) {\n var token = tokens[i];\n\n if (token.type === StartTag && token.tagName.toUpperCase() === tagName) {\n // Nested tag of the same type, \"add to stack\"\n stackCount++;\n } else if (token.type === EndTag && token.tagName.toUpperCase() === tagName) {\n // Closing tag\n stackCount--;\n }\n\n skippedTokens.push(token);\n i++;\n } // Note that if stackCount > 0 here, the HTML is probably invalid\n\n\n return skippedTokens;\n}\n\nfunction escapeText(text) {\n // Not required, HTML tokenizer ensures this occurs properly\n return text;\n}\n\nfunction escapeAttr(attr) {\n return attr.replace(/\"/g, '"');\n}\n\nfunction attrsToStrings(attrs) {\n var attrStrs = [];\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i][0];\n var value = attrs[i][1];\n attrStrs.push(\"\".concat(name, \"=\\\"\").concat(escapeAttr(value), \"\\\"\"));\n }\n\n return attrStrs;\n}\n\nmodule.exports = linkifyHtml;\n","module.exports = __webpack_public_path__ + \"img/exclamation_point.c8a81d47.png\";","import { createVNode as _createVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withModifiers as _withModifiers, openBlock as _openBlock, createBlock as _createBlock, withScopeId as _withScopeId, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/img/exclamation_point.png'\n\nconst _withId = /*#__PURE__*/_withScopeId(\"data-v-22c8479e\")\n\n_pushScopeId(\"data-v-22c8479e\")\nconst _hoisted_1 = { class: \"__modalsContainer __show\" }\nconst _hoisted_2 = { class: \"_clickBlocker\" }\nconst _hoisted_3 = { class: \"genericModalContent text-center\" }\nconst _hoisted_4 = /*#__PURE__*/_createVNode(\"img\", { src: _imports_0 }, null, -1)\nconst _hoisted_5 = { class: \"title-div\" }\nconst _hoisted_6 = { class: \"text-div\" }\nconst _hoisted_7 = { class: \"d-flex justify-content-around mt-4\" }\nconst _hoisted_8 = { class: \"fs_14 white\" }\n_popScopeId()\n\nexport const render = /*#__PURE__*/_withId((_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) => {\n const _component_localized_text = _resolveComponent(\"localized-text\")!\n\n return (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _createVNode(\"div\", _hoisted_2, [\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", {\n class: \"confirm-div\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => {}, [\"prevent\",\"stop\"]))\n }, [\n _hoisted_4,\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.title), 1)\n ]),\n _createVNode(\"div\", _hoisted_6, [\n _createVNode(\"span\", null, _toDisplayString(_ctx.text), 1)\n ]),\n _createVNode(\"div\", _hoisted_7, [\n _createVNode(\"button\", {\n type: \"button\",\n class: \"genericButton bgWhite w-50\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.returnValue(false)))\n }, [\n _createVNode(_component_localized_text, {\n localizedKey: \"app_no\",\n text: \"No\",\n class: \"fs_14 spaceCadet\"\n })\n ]),\n _createVNode(\"button\", {\n type: \"button\",\n class: \"genericButton w-50\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.returnValue(true)))\n }, [\n _createVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.confirmButton), 1)\n ])\n ])\n ])\n ])\n ])\n ]))\n})","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\n\r\n@Options({})\r\nexport default class CustomConfirm extends Vue {\r\n\r\n @Prop({\r\n default: \"\"\r\n }) title: string;\r\n\r\n @Prop({\r\n default: \"\"\r\n }) text: string;\r\n \r\n @Prop({\r\n default: \"Si\"\r\n }) confirmButton: string;\r\n\r\n @Prop() callback: (value: boolean) => void;\r\n\r\n returned: boolean = false;\r\n\r\n returnValue(value: boolean){\r\n this.callback(value);\r\n this.returned = true;\r\n }\r\n\r\n}\r\n","import { render } from \"./customConfirm.vue?vue&type=template&id=22c8479e&scoped=true&ts=true\"\nimport script from \"./customConfirm.vue?vue&type=script&lang=ts\"\nexport * from \"./customConfirm.vue?vue&type=script&lang=ts\"\n\nimport \"./customConfirm.vue?vue&type=style&index=0&id=22c8479e&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\rekt\\\\source\\\\repos\\\\uose\\\\uoseapp_new\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-22c8479e\"]])\n\nexport default __exports__","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./uoseWriter.vue?vue&type=style&index=0&id=032ecc52&scoped=true&lang=css\"","import { toDisplayString as _toDisplayString, createVNode as _createVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withModifiers as _withModifiers } from \"vue\"\nimport _imports_0 from '@/assets/img/close.svg'\n\n\nconst _hoisted_1 = { class: \"d-flex align-items-center justify-content-between\" }\nconst _hoisted_2 = { class: \"title\" }\nconst _hoisted_3 = { class: \"fs-14 greyBlue\" }\nconst _hoisted_4 = { class: \"mt-5\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_localized_text = _resolveComponent(\"localized-text\")!\n\n return (_openBlock(), _createBlock(\"div\", {\n class: \"bottomModalContainer\",\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$emit('close')))\n }, [\n _createVNode(\"div\", {\n class: \"bottomModal\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(() => {}, [\"prevent\",\"stop\"]))\n }, [\n _createVNode(\"div\", _hoisted_1, [\n _createVNode(\"div\", _hoisted_2, [\n _createVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.chatName), 1)\n ]),\n _createVNode(\"img\", {\n src: _imports_0,\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('close')))\n })\n ]),\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(\"div\", {\n class: \"genericButton bgGreyBlue\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.report()))\n }, [\n _createVNode(_component_localized_text, {\n localizedKey: \"app_faiunasegnalazione\",\n text: \"Fai una segnalazione\",\n class: \"fs_13 white\"\n })\n ]),\n _createVNode(\"div\", {\n class: \"genericButton bgGreyBlue mt-2\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.exitFromGroup()))\n }, [\n _createVNode(_component_localized_text, {\n localizedKey: \"app_escidalgruppo\",\n text: \"esci dal gruppo\",\n class: \"fs_13 white\"\n })\n ]),\n (!_ctx.isGroupChat)\n ? (_openBlock(), _createBlock(\"div\", {\n key: 0,\n class: \"genericButton bgWhite mt-2\",\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.blockUser()))\n }, [\n _createVNode(_component_localized_text, {\n localizedKey: \"app_bloccaUtente\",\n text: \"Blocca utente\",\n class: \"fs_13\"\n })\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n}","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\nimport { ChatRoomClient, ReportClient, UserClient } from '@/services/Services';\r\nimport ReportCustomConfirm from '@/components/reportCustomConfirm.vue';\r\nimport ModalSuccessError from '@/components/modalSuccessError.vue';\r\nimport * as OM from '@/model';\r\nimport * as VM from '@/viewModel';\r\nimport { LocalizationServices } from '@/services/LocalizationServices';\r\nimport store from '@/store';\r\nimport ConfirmModal from '@/components/confirmModal.vue';\r\n\r\n@Options({})\r\nexport default class ChatSettingsModal extends Vue {\r\n\r\n @Prop() userIdentifier: string;\r\n @Prop() chatName: string;\r\n @Prop() isGroupChat: boolean;\r\n @Prop({\r\n default: \"/chats\"\r\n }) buttonUrl: string;\r\n\r\n blockUser() {\r\n UserClient.blockUser(this.userIdentifier)\r\n .then(x => {\r\n for(var i = 0; i < this.$opModal.modals().length; i++) {\r\n this.$opModal.closeLast();\r\n }\r\n\r\n var text = LocalizationServices.getLocalizedValue(\"app_utentesegnalatoconsuccesso\", \"Utente segnalato con successo!\");\r\n this.$opModal.show(ModalSuccessError, {\r\n message: text,\r\n buttonUrl: this.buttonUrl\r\n })\r\n })\r\n }\r\n\r\n report() {\r\n for(var i = 0; i < this.$opModal.modals().length; i++) {\r\n this.$opModal.closeLast();\r\n }\r\n \r\n this.$opModal.show(ReportCustomConfirm, {\r\n callback: (value: string) => {\r\n var createReport = new OM.CreateReport();\r\n createReport.reportType = VM.ReportType.User;\r\n createReport.note = value;\r\n createReport.itemIdentifier = this.userIdentifier;\r\n ReportClient.createReport(createReport)\r\n .then( x => {\r\n for(var i = 0; i < this.$opModal.modals().length; i++) {\r\n this.$opModal.closeLast();\r\n }\r\n\r\n var text = LocalizationServices.getLocalizedValue(\"app_segnalazioneavvenutaconsuccesso\", \"Segnalazione avvenuta con successo!\");\r\n\r\n this.$opModal.show(ModalSuccessError, {\r\n message: text,\r\n buttonUrl: this.buttonUrl\r\n })\r\n })\r\n }\r\n })\r\n }\r\n\r\n exitFromGroup(){\r\n var text = LocalizationServices.getLocalizedValue(\"app_sicuropdivolerusciredaquestogruppo\", \"Sei sicuro di voler uscire da questo gruppo?\");\r\n this.$opModal.show(ConfirmModal, {\r\n text: text,\r\n okCb: () => {\r\n ChatRoomClient.removeFromChat(store.state.user.identifier, this.$route.params.identifier.toString())\r\n .then(x => {\r\n this.$opModal.closeAll();\r\n this.$router.replace(\"/chats\");\r\n });\r\n },\r\n koCb: () => {\r\n this.$opModal.closeAll();\r\n }\r\n })\r\n \r\n }\r\n\r\n}\r\n\r\n","import { render } from \"./chatSettingsModal.vue?vue&type=template&id=4d514760&ts=true\"\nimport script from \"./chatSettingsModal.vue?vue&type=script&lang=ts\"\nexport * from \"./chatSettingsModal.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"C:\\\\Users\\\\rekt\\\\source\\\\repos\\\\uose\\\\uoseapp_new\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./reportCustomConfirm.vue?vue&type=style&index=0&id=c0b65350&scoped=true&lang=css\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./chatComponent.vue?vue&type=style&index=0&id=eb3d0936&scoped=true&lang=css\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./photoUploader.vue?vue&type=style&index=0&id=6cfd4310&scoped=true&lang=css\"","import { createVNode as _createVNode, resolveComponent as _resolveComponent, vModelText as _vModelText, withDirectives as _withDirectives, withModifiers as _withModifiers, openBlock as _openBlock, createBlock as _createBlock, withScopeId as _withScopeId, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/img/close.svg'\nimport _imports_1 from '@/assets/img/exclamation_point.png'\n\nconst _withId = /*#__PURE__*/_withScopeId(\"data-v-c0b65350\")\n\n_pushScopeId(\"data-v-c0b65350\")\nconst _hoisted_1 = { class: \"_clickBlocker\" }\nconst _hoisted_2 = { class: \"genericModalContent text-center\" }\nconst _hoisted_3 = { class: \"d-flex justify-content-end\" }\nconst _hoisted_4 = /*#__PURE__*/_createVNode(\"img\", {\n src: _imports_1,\n class: \"mt-3\"\n}, null, -1)\nconst _hoisted_5 = { class: \"form-group squareInputContainer withLabel mt-4\" }\n_popScopeId()\n\nexport const render = /*#__PURE__*/_withId((_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) => {\n const _component_localized_text = _resolveComponent(\"localized-text\")!\n\n return (_openBlock(), _createBlock(\"div\", {\n class: \"__modalsContainer __show\",\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$emit('close')))\n }, [\n _createVNode(\"div\", _hoisted_1, [\n _createVNode(\"div\", _hoisted_2, [\n _createVNode(\"div\", {\n class: \"confirm-div\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(() => {}, [\"prevent\",\"stop\"]))\n }, [\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"img\", {\n src: _imports_0,\n class: \"closeIcon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('close')))\n })\n ]),\n _hoisted_4,\n _createVNode(_component_localized_text, {\n class: \"errore fs_24 fw_700 d-block mb-2\",\n localizedKey: \"app_attenzione\",\n text: \"Attenzione!\"\n }),\n _createVNode(_component_localized_text, {\n localizedKey: \"app_perchevuoisegnalarequestocontenuto\",\n text: \"Perché vuoi segnalare questo contenuto?\"\n }),\n _createVNode(\"div\", _hoisted_5, [\n _createVNode(\"label\", null, [\n _createVNode(_component_localized_text, {\n localizedKey: \"app_inserisciUnaMotivazione\",\n text: \"Inserisci una motivazione\",\n class: \"fs_12 grey\"\n })\n ]),\n _withDirectives(_createVNode(\"input\", {\n type: \"text\",\n class: \"genericInput squareInput\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => (_ctx.note = $event))\n }, null, 512), [\n [_vModelText, _ctx.note]\n ])\n ]),\n _createVNode(\"button\", {\n class: \"genericButton bgPurple w-100 mt-5\",\n disabled: _ctx.disabled,\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.confirm()))\n }, [\n _createVNode(_component_localized_text, {\n localizedKey: \"app_segnala\",\n text: \"Segnala\",\n class: \"fs_13 white\"\n })\n ], 8, [\"disabled\"])\n ])\n ])\n ])\n ]))\n})","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\n\r\n@Options({})\r\nexport default class ReportCustomConfirm extends Vue {\r\n\r\n @Prop() callback: (value: string) => void;\r\n\r\n note: string = \"\";\r\n returned: boolean = false;\r\n\r\n confirm(){\r\n this.callback(this.note);\r\n }\r\n\r\n get disabled() {\r\n return !this.note.trim()\r\n }\r\n\r\n}\r\n","import { render } from \"./reportCustomConfirm.vue?vue&type=template&id=c0b65350&scoped=true&ts=true\"\nimport script from \"./reportCustomConfirm.vue?vue&type=script&lang=ts\"\nexport * from \"./reportCustomConfirm.vue?vue&type=script&lang=ts\"\n\nimport \"./reportCustomConfirm.vue?vue&type=style&index=0&id=c0b65350&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\rekt\\\\source\\\\repos\\\\uose\\\\uoseapp_new\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-c0b65350\"]])\n\nexport default __exports__","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--1-1!./imgPreviewModal.vue?vue&type=style&index=0&id=54e96868&scoped=true&lang=css\"","import { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createBlock as _createBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, withScopeId as _withScopeId, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/img/camera.svg'\nimport _imports_1 from '@/assets/img/chat/chatRequest_on.svg'\n\nconst _withId = /*#__PURE__*/_withScopeId(\"data-v-eb3d0936\")\n\n_pushScopeId(\"data-v-eb3d0936\")\nconst _hoisted_1 = {\n class: \"writerContainer\",\n ref: \"chatWriter\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"quotedMessage\"\n}\nconst _hoisted_3 = /*#__PURE__*/_createVNode(\"button\", {\n type: \"button\",\n class: \"squareButton ms-2\"\n}, [\n /*#__PURE__*/_createVNode(\"img\", { src: _imports_0 })\n], -1)\nconst _hoisted_4 = {\n key: 2,\n type: \"button\",\n class: \"squareButton ms-2\"\n}\nconst _hoisted_5 = /*#__PURE__*/_createVNode(\"img\", { src: _imports_0 }, null, -1)\nconst _hoisted_6 = /*#__PURE__*/_createVNode(\"img\", { src: _imports_1 }, null, -1)\n_popScopeId()\n\nexport const render = /*#__PURE__*/_withId((_ctx: any,_cache: any) => {\n const _component_chat_message = _resolveComponent(\"chat-message\")!\n const _component_localized_text = _resolveComponent(\"localized-text\")!\n const _component_uose_writer = _resolveComponent(\"uose-writer\")!\n const _component_file_selector = _resolveComponent(\"file-selector\")!\n const _component_photo_uploader = _resolveComponent(\"photo-uploader\")!\n\n return (_openBlock(), _createBlock(\"div\", null, [\n _createVNode(\"div\", {\n class: \"chatMessageContainer\",\n ref: \"chatMessageContainer\",\n style: _ctx.messageContainerStyle,\n onScroll: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.scrollListener && _ctx.scrollListener(...args)))\n }, [\n (_openBlock(true), _createBlock(_Fragment, null, _renderList(_ctx.messages, (item, i) => {\n return (_openBlock(), _createBlock(_component_chat_message, {\n key: item.identifier,\n onLongtouch: _ctx.onLongtouch,\n \"show-sender-image\": _ctx.showSenderImage(i),\n \"show-sender-name\": _ctx.showSenderName(i),\n \"names-dictionary\": _ctx.namesDictionary,\n ref: item.identifier,\n message: item,\n onDeleteMessage: _ctx.deleteMessage,\n canDeleteOther: _ctx.canDeleteOther\n }, null, 8, [\"onLongtouch\", \"show-sender-image\", \"show-sender-name\", \"names-dictionary\", \"message\", \"onDeleteMessage\", \"canDeleteOther\"]))\n }), 128))\n ], 36),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withId(() => [\n (_ctx.showNuoviMessaggi)\n ? (_openBlock(), _createBlock(\"div\", {\n key: 0,\n class: \"newChatMessages\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.goToBottom && _ctx.goToBottom(...args)))\n }, [\n _createVNode(_component_localized_text, {\n localizedKey: 'app_hainuovimessaggi',\n text: 'Hai nuovi messaggi'\n })\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n }),\n _createVNode(\"div\", _hoisted_1, [\n (_ctx.quotedMessage)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_2, [\n _createVNode(\"button\", {\n class: \"cancel\",\n type: \"button\",\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.cancelQuote && _ctx.cancelQuote(...args)))\n }, \"X\"),\n _createVNode(_component_localized_text, {\n localizedKey: \"app_rispondiA\",\n text: \"Rispondi a:\",\n class: \"fs_12 grey\"\n }),\n _createVNode(\"span\", {\n class: \"fs_12 spaceCadet text\",\n innerHTML: _ctx.quotedMessage.text\n }, null, 8, [\"innerHTML\"])\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(_component_uose_writer, {\n class: \"genericInput squareInput p-0\",\n modelValue: _ctx.messageText,\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => (_ctx.messageText = $event)),\n ref: \"chatInput\",\n placeholderText: 'Scrivi qualcosa',\n placeholderKey: 'app_scriviqualcosa',\n onInput: _ctx.calcWriterHeight,\n \"max-height\": 200,\n reset: _ctx.reset\n }, null, 8, [\"modelValue\", \"onInput\", \"reset\"]),\n (!_ctx.isDisabled)\n ? (_openBlock(), _createBlock(_component_file_selector, {\n key: 1,\n modelValue: _ctx.file,\n \"onUpdate:modelValue\": _cache[5] || (_cache[5] = ($event: any) => (_ctx.file = $event)),\n accept: 'video/mp4, video/x-m4v, video/*, image/*'\n }, {\n default: _withId(() => [\n _hoisted_3\n ]),\n _: 1\n }, 8, [\"modelValue\"]))\n : (_openBlock(), _createBlock(\"button\", _hoisted_4, [\n _hoisted_5\n ])),\n _createVNode(\"div\", {\n class: \"squareButton ms-2\",\n disabled: !_ctx.messageText.trim() || _ctx.isDisabled,\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.sendMessage()))\n }, [\n _hoisted_6\n ], 8, [\"disabled\"])\n ], 512),\n _createVNode(_Transition, { name: \"fade\" }, {\n default: _withId(() => [\n (_ctx.showUploadActionBar)\n ? (_openBlock(), _createBlock(_component_photo_uploader, {\n key: 0,\n onHide: _cache[7] || (_cache[7] = ($event: any) => (_ctx.showUploadActionBar = false)),\n onChangedFile: _ctx.changedFile\n }, null, 8, [\"onChangedFile\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _: 1\n })\n ]))\n})","import * as VM from '@/viewModel';\r\nimport { wsBaseUrl } from '@/config';\r\n\r\nclass _WsServices {\r\n\r\n log: string = \"\";\r\n \r\n _ws: WebSocket;\r\n private _chatRoomIdentifier: string;\r\n private _userIdentifier: string;\r\n private switchoff: boolean = false;\r\n\r\n Connect(chatRoomIdentifier: string, userIdentifier: string, chatRoomType: string){\r\n this._ws = new WebSocket(wsBaseUrl);\r\n this._ws.onopen = (e) => {\r\n let present = new VM.PresentMessage();\r\n present.chatRoomIdentifier = chatRoomIdentifier;\r\n present.userIdentifier = userIdentifier;\r\n present.chatRoomType = chatRoomType;\r\n let msg = new VM.WsClientMessage();\r\n msg.type = \"present\";\r\n msg.content = present;\r\n this._ws.send(JSON.stringify(msg));\r\n };\r\n this._ws.onmessage = (wsMsg: MessageEvent) => {\r\n let data = >JSON.parse(wsMsg.data);\r\n if(data.type == 'message'){\r\n this._messageCallback(data.content);\r\n } else if(data.type == 'namesDictionary'){\r\n this._namesDictionaryCallback(data.content);\r\n } else if(data.type == 'disable'){\r\n this._disableCallback(data.content);\r\n } else if(data.type == 'remove'){\r\n this._removeCallback(data.content);\r\n } else if(data.type == 'friendRequestUpgrade'){\r\n this._friendRequestUpgradeCallback(data.content);\r\n }\r\n }\r\n this._ws.onerror = (e) => {\r\n }\r\n this._ws.onclose = (e) => {\r\n setTimeout(() => {\r\n if(this.switchoff){\r\n return;\r\n }\r\n this.Connect(chatRoomIdentifier, userIdentifier, chatRoomType);\r\n }, 1000);\r\n }\r\n }\r\n \r\n Disconnect(chatRoomIdentifier: string, userIdentifier: string, chatRoomType: string){\r\n this.SendDisconnectMessage(chatRoomIdentifier, userIdentifier, chatRoomType);\r\n this._ws.close();\r\n this.switchoff = true;\r\n }\r\n\r\n SendDisconnectMessage(chatRoomIdentifier: string, userIdentifier: string, chatRoomType: string){\r\n let disconnect = new VM.DisconnectMessage();\r\n disconnect.chatRoomIdentifier = chatRoomIdentifier;\r\n disconnect.userIdentifier = userIdentifier;\r\n disconnect.chatRoomType = chatRoomType;\r\n let msg = new VM.WsClientMessage();\r\n msg.type = \"disconnect\";\r\n msg.content = disconnect;\r\n this._ws.send(JSON.stringify(msg));\r\n }\r\n \r\n SendDisableMessage(chatRoomIdentifier, disable){\r\n let msg = new VM.WsClientMessage();\r\n msg.type = \"disable\";\r\n let disableMessage = new VM.DisableMessage();\r\n disableMessage.chatRoomIdentifier = chatRoomIdentifier;\r\n disableMessage.disable = disable;\r\n msg.content = disableMessage;\r\n this._ws.send(JSON.stringify(msg));\r\n }\r\n \r\n SendMessage(message: VM.ChatMessage){\r\n let msg = new VM.WsClientMessage();\r\n msg.type = \"message\";\r\n msg.content = message;\r\n this._ws.send(JSON.stringify(msg));\r\n }\r\n\r\n SendPresent(message: VM.PresentMessage){\r\n var msg = new VM.WsClientMessage();\r\n msg.type = \"present\";\r\n msg.content = message;\r\n this._ws.send(JSON.stringify(msg));\r\n }\r\n\r\n RemoveMessage(message: VM.RemoveMessage){\r\n let msg = new VM.WsClientMessage();\r\n msg.type = \"remove\";\r\n msg.content = message;\r\n this._ws.send(JSON.stringify(msg));\r\n }\r\n\r\n private _namesDictionaryCallback: (msg: VM.NamesDictionaryMessage) => void;\r\n OnNamesDictionary(onNamesDictionaryCallback: (msg: VM.NamesDictionaryMessage) => void){\r\n this._namesDictionaryCallback = onNamesDictionaryCallback;\r\n }\r\n private _messageCallback: (msg: any) => void;\r\n OnMessage(onMessageCallback: (msg: any) => void){\r\n this._messageCallback = onMessageCallback;\r\n }\r\n private _disableCallback: (disable: VM.DisableMessage) => void;\r\n OnDisable(onDisableCallback: (msg: any) => void){\r\n this._disableCallback = onDisableCallback;\r\n }\r\n private _removeCallback: (remove: VM.RemoveMessage) => void;\r\n OnRemove(onRemoveCallback: (msg: any) => void){\r\n this._removeCallback = onRemoveCallback;\r\n }\r\n private _friendRequestUpgradeCallback: (remove: VM.RemoveMessage) => void;\r\n OnFriendRequestUpgrade(onFriendRequestUpgradeCallback: (msg: any) => void){\r\n this._friendRequestUpgradeCallback = onFriendRequestUpgradeCallback;\r\n }\r\n \r\n}\r\n\r\nexport let WsServices = new _WsServices();","import { createVNode as _createVNode, resolveComponent as _resolveComponent, withModifiers as _withModifiers, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, withScopeId as _withScopeId, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nimport _imports_0 from '@/assets/img/camera.svg'\nimport _imports_1 from '@/assets/img/folder.svg'\n\nconst _withId = /*#__PURE__*/_withScopeId(\"data-v-6cfd4310\")\n\n_pushScopeId(\"data-v-6cfd4310\")\nconst _hoisted_1 = { key: 0 }\nconst _hoisted_2 = { class: \"uploadPhotoModal\" }\nconst _hoisted_3 = { class: \"row\" }\nconst _hoisted_4 = { class: \"text-center\" }\nconst _hoisted_5 = /*#__PURE__*/_createVNode(\"img\", { src: _imports_0 }, null, -1)\nconst _hoisted_6 = { class: \"text-center\" }\nconst _hoisted_7 = /*#__PURE__*/_createVNode(\"img\", { src: _imports_1 }, null, -1)\nconst _hoisted_8 = { key: 1 }\n_popScopeId()\n\nexport const render = /*#__PURE__*/_withId((_ctx: any,_cache: any) => {\n const _component_localized_text = _resolveComponent(\"localized-text\")!\n\n return (_ctx.mobile)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _createVNode(\"div\", {\n class: \"uploadPhotoBackground\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (_ctx.$emit('hide')))\n }, [\n _createVNode(\"div\", _hoisted_2, [\n _createVNode(\"div\", _hoisted_3, [\n _createVNode(\"div\", {\n class: \"col-6\",\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.getPic(1)), [\"stop\",\"prevent\"]))\n }, [\n _createVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createVNode(\"p\", null, [\n _createVNode(_component_localized_text, {\n localizedKey: 'app_fotocamera',\n text: 'Camera'\n })\n ])\n ])\n ]),\n _createVNode(\"div\", {\n class: \"col-6\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.getPic(0)), [\"stop\",\"prevent\"]))\n }, [\n _createVNode(\"div\", _hoisted_6, [\n _hoisted_7,\n _createVNode(\"p\", null, [\n _createVNode(_component_localized_text, {\n localizedKey: 'app_gallery',\n text: 'Gallery'\n })\n ])\n ])\n ])\n ])\n ])\n ])\n ]))\n : (_openBlock(), _createBlock(\"div\", _hoisted_8, [\n _createVNode(\"input\", {\n type: \"file\",\n onChange: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.changedFile && _ctx.changedFile(...args))),\n hidden: \"\",\n ref: \"input_file\"\n }, null, 544)\n ]))\n})","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\n\r\n@Options({})\r\nexport default class PhotoUploader extends Vue {\r\n\r\n mobile: boolean = false;\r\n file: any = null;\r\n\r\n @Prop() callback: (pic: any) => void;\r\n\r\n @Prop({\r\n default: true\r\n }) allowEdit: boolean;\r\n\r\n created(){\r\n // if(window.cordova)\r\n // this.mobile = true;\r\n }\r\n\r\n mounted(){\r\n if(!this.mobile)\r\n this.getPicWindow();\r\n }\r\n\r\n getPic(from: number) {\r\n if(window.cordova)\r\n this.getPicApp(from);\r\n }\r\n\r\n getPicApp(from: number){\r\n let onSuccess = (imgData: any) => {\r\n // StatusBar.overlaysWebView(false);\r\n // this.callback(imgData);\r\n (window).resolveLocalFileSystemURL(imgData, this.callback, (err) => console.log(err));\r\n }\r\n let onError = (err: any) => {\r\n // StatusBar.overlaysWebView(false);\r\n console.log(err);\r\n }\r\n (window).navigator.camera.getPicture(onSuccess, onError, {\r\n destinationType: 1,\r\n sourceType: from,\r\n correctOrientation: true,\r\n allowEdit: this.allowEdit\r\n })\r\n }\r\n\r\n getPicWindow(){\r\n (this.$refs.input_file).click();\r\n }\r\n\r\n changedFile(event: any){\r\n this.$emit(\"changedFile\", event.target.files[0])\r\n }\r\n\r\n}\r\n","import { render } from \"./photoUploader.vue?vue&type=template&id=6cfd4310&scoped=true&ts=true\"\nimport script from \"./photoUploader.vue?vue&type=script&lang=ts\"\nexport * from \"./photoUploader.vue?vue&type=script&lang=ts\"\n\nimport \"./photoUploader.vue?vue&type=style&index=0&id=6cfd4310&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\rekt\\\\source\\\\repos\\\\uose\\\\uoseapp_new\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-6cfd4310\"]])\n\nexport default __exports__","import { createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, resolveDirective as _resolveDirective, withDirectives as _withDirectives, toDisplayString as _toDisplayString, withModifiers as _withModifiers } from \"vue\"\nimport _imports_0 from '@/assets/img/close.svg'\n\n\nconst _hoisted_1 = {\n key: 0,\n class: \"quotedMessage\"\n}\nconst _hoisted_2 = {\n key: 2,\n class: \"d-flex\"\n}\nconst _hoisted_3 = {\n key: 0,\n class: \"sender\"\n}\nconst _hoisted_4 = { class: \"timestamp\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _directive_userimage = _resolveDirective(\"userimage\")!\n\n return (_openBlock(), _createBlock(\"div\", {\n class: [\"chatMessage\", _ctx.getMessageClass(_ctx.message)],\n onMousedown: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.checkLongPress && _ctx.checkLongPress(...args))),\n onMousemove: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.voidLongPress && _ctx.voidLongPress(...args))),\n onMouseup: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.voidLongPress && _ctx.voidLongPress(...args))),\n onTouchstart: _cache[6] || (_cache[6] = \n//@ts-ignore\n(...args) => (_ctx.checkLongPress && _ctx.checkLongPress(...args))),\n onTouchmove: _cache[7] || (_cache[7] = \n//@ts-ignore\n(...args) => (_ctx.voidLongPress && _ctx.voidLongPress(...args))),\n onTouchend: _cache[8] || (_cache[8] = \n//@ts-ignore\n(...args) => (_ctx.voidLongPress && _ctx.voidLongPress(...args)))\n }, [\n (_ctx.message.quotedMessage)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n _createVNode(\"span\", {\n class: \"ellipsis\",\n innerHTML: _ctx.message.quotedMessage.text\n }, null, 8, [\"innerHTML\"])\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.showSenderImage)\n ? _withDirectives((_openBlock(), _createBlock(\"div\", {\n key: 1,\n class: [\"chatImg\", { pointer: _ctx.$store.state.user.identifier != _ctx.message.senderIdentifier }],\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.openProfile && _ctx.openProfile(...args)))\n }, null, 2)), [\n [_directive_userimage, _ctx.$store.state.getUserImage(_ctx.message.senderIdentifier)]\n ])\n : _createCommentVNode(\"\", true),\n (_ctx.namesDictionary[_ctx.message.senderIdentifier])\n ? (_openBlock(), _createBlock(\"div\", _hoisted_2, [\n (_ctx.showSenderName)\n ? (_openBlock(), _createBlock(\"p\", _hoisted_3, _toDisplayString(_ctx.namesDictionary[_ctx.message.senderIdentifier]), 1))\n : _createCommentVNode(\"\", true),\n (_ctx.canDelete)\n ? (_openBlock(), _createBlock(\"img\", {\n key: 1,\n onClick: _cache[2] || (_cache[2] = _withModifiers(\n//@ts-ignore\n(...args) => (_ctx.deleteMessage && _ctx.deleteMessage(...args)), [\"stop\",\"prevent\"])),\n class: \"close_icon\",\n src: _imports_0\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createVNode(\"span\", {\n innerHTML: _ctx.message.text,\n ref: \"messageContainer\"\n }, null, 8, [\"innerHTML\"]),\n _createVNode(\"small\", _hoisted_4, _toDisplayString(_ctx.$filters.chatDate(_ctx.message.date)), 1)\n ], 34))\n}","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\nimport CustomConfirm from '@/components/customConfirm.vue';\r\nimport store from '@/store';\r\nimport * as OM from '@/model';\r\nimport { LocalizationServices } from '@/services/LocalizationServices';\r\n\r\n@Options({})\r\nexport default class ChatMessageComponent extends Vue {\r\n\r\n userId: string = store.state.user.identifier;\r\n\r\n @Prop({\r\n type: [Object, OM.ChatRoomMessageVM]\r\n }) message: OM.ChatRoomMessageVM;\r\n \r\n @Prop() namesDictionary: { [ key: string ]: string};\r\n\r\n @Prop() showSenderImage: boolean;\r\n @Prop() showSenderName: boolean;\r\n @Prop({\r\n default: false\r\n }) canDeleteOther: boolean;\r\n \r\n\r\n mounted(){\r\n let container: any = this.$refs.messageContainer;\r\n let imgs = container.querySelectorAll('._chatImg');\r\n imgs.forEach(x => {\r\n // x.addEventListener('click', (ev) => {\r\n // if(!window.cordova){\r\n // return;\r\n // }\r\n // var background = getComputedStyle(ev.target).backgroundImage;\r\n // let url = background.substring(5, background.length -2); //toglie url('')\r\n // PhotoViewer.show(url, '');\r\n // });\r\n })\r\n }\r\n\r\n openProfile(){\r\n if(this.message.senderIdentifier == store.state.user.identifier)\r\n return;\r\n\r\n this.$router.push('/profile/' + this.message.senderIdentifier);\r\n }\r\n\r\n getMessageClass(message: OM.ChatRoomMessageVM){\r\n let ris = message.senderIdentifier == this.userId ? 'right' : 'left';\r\n if(this.showSenderName){\r\n ris += ' moreMargin';\r\n }\r\n return ris;\r\n }\r\n\r\n timer: any = null;\r\n checkLongPress(){\r\n var touchduration = 400;\r\n this.timer = setTimeout(() => {\r\n this.$emit('longtouch', this.message);\r\n }, touchduration);\r\n }\r\n voidLongPress(){\r\n clearTimeout(this.timer);\r\n }\r\n\r\n deleteMessage(){\r\n var title = LocalizationServices.getLocalizedValue(\"app_attenzione\", \"Attenzione!\");\r\n var text = LocalizationServices.getLocalizedValue(\"app_vuoidavveroeliminarequestomessaggio\", \"Vuoi davvero eliminare questo messaggio?\");\r\n\r\n this.$opModal.show(CustomConfirm, {\r\n title: title,\r\n text: text,\r\n callback: (value: boolean) => {\r\n if(!value)\r\n this.$opModal.closeLast();\r\n else \r\n this.$emit(\"deleteMessage\", this.message);\r\n }\r\n\r\n })\r\n }\r\n\r\n get canDelete(){\r\n if(this.message.senderIdentifier == this.userId)\r\n return true;\r\n\r\n if(this.canDeleteOther){\r\n var admin = store.state.community.admins.filter( x => {\r\n return x.identifier == this.userId;\r\n });\r\n\r\n var moderator = store.state.community.moderators.filter( x => {\r\n return x.identifier == this.userId;\r\n });\r\n\r\n if(admin.length > 0 || moderator.length > 0)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { render } from \"./chatMessage.vue?vue&type=template&id=12be9186&ts=true\"\nimport script from \"./chatMessage.vue?vue&type=script&lang=ts\"\nexport * from \"./chatMessage.vue?vue&type=script&lang=ts\"\n\nimport \"./chatMessage.vue?vue&type=style&index=0&id=12be9186&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\rekt\\\\source\\\\repos\\\\uose\\\\uoseapp_new\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withScopeId as _withScopeId, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\nconst _withId = /*#__PURE__*/_withScopeId(\"data-v-54e96868\")\n\n_pushScopeId(\"data-v-54e96868\")\nconst _hoisted_1 = {\n class: \"d-flex flex-column justify-content-between modal_preview\",\n style: {\"background-color\":\"black\"}\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"div_container\"\n}\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { class: \"d-flex justify-content-around\" }\n_popScopeId()\n\nexport const render = /*#__PURE__*/_withId((_ctx: any,_cache: any) => {\n const _component_localized_text = _resolveComponent(\"localized-text\")!\n\n return (_openBlock(), _createBlock(\"div\", _hoisted_1, [\n (_ctx.loaded)\n ? (_openBlock(), _createBlock(\"div\", _hoisted_2, [\n (_ctx.isAppImage && !_ctx.videoUrl)\n ? (_openBlock(), _createBlock(\"img\", {\n key: 0,\n src: _ctx.file,\n alt: \"\"\n }, null, 8, [\"src\"]))\n : (_ctx.isAppImage && _ctx.videoUrl)\n ? (_openBlock(), _createBlock(\"video\", {\n key: 1,\n preload: \"none\",\n class: \"postVideo\",\n poster: _ctx.preview,\n controls: \"\"\n }, [\n _createVNode(\"source\", {\n src: _ctx.videoUrl,\n type: _ctx.file.type\n }, null, 8, [\"src\", \"type\"])\n ], 8, [\"poster\"]))\n : (_ctx.file.type.match('image'))\n ? (_openBlock(), _createBlock(\"img\", {\n key: 2,\n src: _ctx.preview\n }, null, 8, [\"src\"]))\n : (_ctx.file.type.match('video'))\n ? (_openBlock(), _createBlock(\"video\", {\n key: 3,\n preload: \"none\",\n class: \"postVideo\",\n poster: _ctx.preview,\n controls: \"\"\n }, [\n _createVNode(\"source\", {\n src: _ctx.videoUrl,\n type: _ctx.file.type\n }, null, 8, [\"src\", \"type\"])\n ], 8, [\"poster\"]))\n : _createCommentVNode(\"\", true)\n ]))\n : (_openBlock(), _createBlock(\"div\", _hoisted_3)),\n _createVNode(\"div\", _hoisted_4, [\n _createVNode(\"button\", {\n type: \"button\",\n class: \"btn btn-big square btn-white\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$emit('close')))\n }, [\n _createVNode(_component_localized_text, {\n localizedKey: 'app_annulla',\n text: 'Annulla'\n })\n ]),\n _createVNode(\"button\", {\n type: \"button\",\n class: \"btn btn-big square btn-cyan\",\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.ok && _ctx.ok(...args)))\n }, [\n _createVNode(_component_localized_text, {\n localizedKey: 'app_invia',\n text: 'Invia'\n })\n ])\n ])\n ]))\n})","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { Prop } from 'vue-property-decorator';\r\nimport { makeFilePreview } from '@/utils';\r\n\r\n@Options({})\r\nexport default class ImgPreviewModal extends Vue {\r\n\r\n @Prop() file: any;\r\n @Prop() okCb: any;\r\n\r\n isAppImage: boolean = false;\r\n\r\n preview: any = \"\";\r\n loaded: boolean = false;\r\n videoUrl: string = \"\";\r\n \r\n created(){\r\n if(window.cordova)\r\n this.appPreview();\r\n else\r\n this.webPreview();\r\n }\r\n\r\n appPreview(){\r\n this.isAppImage = true;\r\n \r\n var cordovafilesrc = \"\";\r\n\r\n if(window.cordova && typeof this.file != typeof \"\" )\r\n cordovafilesrc = (this.file).localURL;\r\n else\r\n cordovafilesrc = this.file;\r\n\r\n if(typeof cordovafilesrc == typeof \"\" && (cordovafilesrc.indexOf(\".mp4\") != -1 || cordovafilesrc.indexOf(\".x-m4v\") != -1)){\r\n this.videoUrl = this.file;\r\n\r\n // makeFilePreviewApp(this.file)\r\n // .then( preview => {\r\n // this.preview = preview;\r\n // console.log(\"preview\", this.preview)\r\n // this.loaded = true;\r\n // })\r\n } \r\n \r\n this.loaded = true;\r\n }\r\n\r\n webPreview(){\r\n makeFilePreview(this.file)\r\n .then( preview => {\r\n this.preview = preview;\r\n if(this.file.type.match(\"video\"))\r\n this.videoUrl = URL.createObjectURL(this.file);\r\n this.loaded = true;\r\n })\r\n }\r\n\r\n ok() {\r\n this.okCb();\r\n this.$emit('close');\r\n }\r\n \r\n}\r\n\r\n","import { render } from \"./imgPreviewModal.vue?vue&type=template&id=54e96868&scoped=true&ts=true\"\nimport script from \"./imgPreviewModal.vue?vue&type=script&lang=ts\"\nexport * from \"./imgPreviewModal.vue?vue&type=script&lang=ts\"\n\nimport \"./imgPreviewModal.vue?vue&type=style&index=0&id=54e96868&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\rekt\\\\source\\\\repos\\\\uose\\\\uoseapp_new\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-54e96868\"]])\n\nexport default __exports__","\r\nimport { Options, Vue } from 'vue-class-component';\r\nimport { Prop, Watch } from 'vue-property-decorator';\r\nimport { WsServices } from '@/services/WsServices';\r\nimport { ChatRoomClient } from '@/services/Services';\r\nimport { StorageServices } from '@/services/StorageServices';\r\nimport PhotoUploader from '@/components/photoUploader.vue';\r\nimport UoseWriter from '@/components/uoseWriter.vue';\r\nimport ChatMessage from './chatMessage.vue';\r\nimport ImgPreviewModal from './imgPreviewModal.vue';\r\nimport linkify from 'linkifyjs/html';\r\nimport store from '@/store';\r\nimport * as OM from '@/model';\r\nimport * as VM from '@/viewModel';\r\nimport { LocalizationServices } from '@/services/LocalizationServices';\r\n\r\n@Options({\r\n components: {\r\n ChatMessage,\r\n UoseWriter,\r\n PhotoUploader\r\n }\r\n})\r\nexport default class ChatComponent extends Vue {\r\n \r\n @Prop() chatRoom: OM.BaseChatRoomVm;\r\n @Prop() containerAdjustment: number;\r\n @Prop() containerAdjustmentOko: number;\r\n @Prop({\r\n default: true\r\n }) canWrite: boolean;\r\n\r\n @Prop({\r\n default: false\r\n }) canDeleteOther: boolean;\r\n\r\n messages: OM.ChatRoomMessageVM[] = [];\r\n namesDictionary: { [key: string]: string } = {};\r\n quotedMessage: OM.ChatRoomMessageVM = null;\r\n messageText: string = \"\";\r\n showNuoviMessaggi: boolean = false;\r\n messageContainer: HTMLElement;\r\n chatWriter: HTMLElement;\r\n isTicket: boolean = false;\r\n fetchingData: boolean = false;\r\n doneFetching: boolean;\r\n take: number = 50;\r\n writerBaseHeight: number = 0;\r\n isDisabled: boolean = false;\r\n showActionMenu: boolean = false;\r\n reset: number = 0;\r\n placeholder: string = \"\";\r\n\r\n file: File = null;\r\n\r\n showUploadActionBar: boolean = false;\r\n imgPreview: string = '';\r\n\r\n chatInput: any;\r\n\r\n created() {\r\n this.placeholder = LocalizationServices.getLocalizedValue(\"app_scriviqualcosa\", \"Scrivi qualcosa\");\r\n }\r\n\r\n openImageUploader(){\r\n this.showUploadActionBar = false;\r\n\r\n this.$nextTick( () => {\r\n this.showUploadActionBar = true\r\n })\r\n }\r\n\r\n showSenderImage(i){\r\n if(i == this.messages.length - 1){\r\n return true;\r\n } else {\r\n return this.messages[i + 1].senderIdentifier != this.messages[i].senderIdentifier;\r\n }\r\n }\r\n\r\n showSenderName(i){\r\n return true;\r\n }\r\n\r\n changedFile(file: File){\r\n this.$opModal.show(ImgPreviewModal, {\r\n file: file,\r\n okCb: () => {\r\n ChatRoomClient.uploadChatAttachment(file)\r\n .then( x => {\r\n store.commit('hideSpinner');\r\n this.imgPreview = x;\r\n this.showUploadActionBar = false;\r\n this.sendImg(this.imgPreview); \r\n })\r\n .catch( err => {\r\n store.commit('hideSpinner');\r\n });\r\n }\r\n })\r\n }\r\n\r\n @Watch(\"file\")\r\n changedFileApp(){\r\n if(!this.file)\r\n return;\r\n \r\n var cordovafilesrc = \"\";\r\n\r\n if(window.cordova && typeof this.file != typeof \"\" )\r\n cordovafilesrc = (this.file).localURL;\r\n else\r\n cordovafilesrc = this.file;\r\n \r\n if(window.cordova && (cordovafilesrc.indexOf(\".mp4\") != -1 || cordovafilesrc.indexOf(\".x-m4v\") != -1))\r\n this.readVideoOnAndroid(this.file);\r\n else \r\n this.$opModal.show(ImgPreviewModal, {\r\n file: cordovafilesrc,\r\n okCb: () => {\r\n ChatRoomClient.uploadChatAttachment(this.file)\r\n .then( x => {\r\n store.commit('hideSpinner');\r\n this.imgPreview = x;\r\n this.showUploadActionBar = false;\r\n this.sendImg(this.imgPreview); \r\n })\r\n .catch( err => {\r\n store.commit('hideSpinner');\r\n });\r\n }\r\n }, () => {{\r\n this.file = null;\r\n }}\r\n )\r\n }\r\n\r\n readVideoOnAndroid(file){\r\n var vm = this;\r\n (window).resolveLocalFileSystemURL(\r\n this.file,\r\n function (fileEntry) {\r\n // console.log(fileEntry.name)\r\n // console.log(fileEntry.toURL());\r\n // window.cordova.plugins.diagnostic.requestExternalStorageAuthorization( ()=>{\r\n // vm.$opModal.show(ImgPreviewModal, {\r\n // file: fileEntry.toURL(),\r\n // okCb: () => {\r\n // ChatRoomServices.uploadChatAttachment(this.file)\r\n // .then( x => {\r\n // store.commit('hideSpinner');\r\n // this.imgPreview = x;\r\n // this.showUploadActionBar = false;\r\n // this.sendImg(this.imgPreview); \r\n // })\r\n // .catch( err => {\r\n // store.commit('hideSpinner');\r\n // });\r\n // }\r\n // }, () => {{\r\n // this.file = null;\r\n // }}\r\n // )\r\n // }, (error) =>{\r\n // console.log(error)\r\n // });\r\n\r\n }, \r\n (err) => {\r\n console.log(\"Errore\", err)\r\n })\r\n }\r\n\r\n messageContainerStyle: string = \"\";\r\n calcWriterHeight(){\r\n let ris = this.writerBaseHeight;\r\n let writerHeight = getComputedStyle(this.chatWriter).height;\r\n ris += parseFloat(writerHeight.substring(0, writerHeight.length - 2)) + 1;\r\n this.messageContainer.style.setProperty('--writerheight', ris + 'px');\r\n }\r\n keyboardWillShowCallback(){\r\n this.messageContainer.scrollTop += this.writerBaseHeight;\r\n this.messageContainer.style.setProperty('--containerAdjustment', this.containerAdjustmentOko + 'px');\r\n }\r\n keyboardWillHideCallback(){\r\n this.messageContainer.style.setProperty('--containerAdjustment', this.containerAdjustment + 'px');\r\n }\r\n mounted() {\r\n document.addEventListener(\"resume\", this.resumeCallback, false);\r\n document.addEventListener(\"pause\", this.pauseCallback, false);\r\n window.addEventListener('keyboardWillShow', this.keyboardWillShowCallback);\r\n window.addEventListener('keyboardWillHide', this.keyboardWillHideCallback);\r\n\r\n this.init();\r\n }\r\n\r\n init(){\r\n if(store.state.newChatMessages.indexOf(this.chatRoom.identifier) != -1){\r\n var foundIndex = store.state.newChatMessages.findIndex( x => x == this.$route.params.identifier.toString());\r\n store.state.newChatMessages.splice(foundIndex, 1);\r\n }\r\n \r\n this.chatInput = (this.$refs.chatInput).$el.querySelector('.editor');\r\n this.chatWriter = this.$refs.chatWriter;\r\n this.messageContainer = this.$refs.chatMessageContainer;\r\n this.messageContainer.style.setProperty('--containerAdjustment', this.containerAdjustment + 'px');\r\n let writerHeight = getComputedStyle(this.messageContainer).getPropertyValue('--writerheight');\r\n this.writerBaseHeight = parseFloat(writerHeight.substring(0, writerHeight.length - 2));\r\n this.calcWriterHeight();\r\n\r\n Promise.all([\r\n ChatRoomClient.getChatMessages(this.chatRoom.identifier, this.messages.length, this.take),\r\n ChatRoomClient.getParticipants(this.chatRoom.identifier)\r\n ])\r\n .then( xs => {\r\n this.messages.push(...xs[0]);\r\n\r\n this.namesDictionary = {};\r\n\r\n xs[1].forEach( el => {\r\n this.namesDictionary[el.identifier] = el.name;\r\n })\r\n setTimeout(() => {\r\n this.scrollToBottom();\r\n }, 200);\r\n WsServices.Connect(this.chatRoom.identifier, store.state.user.identifier, this.chatRoom.type);\r\n WsServices.OnMessage(this.onMessage);\r\n WsServices.OnNamesDictionary(this.onNamesDictionary);\r\n WsServices.OnDisable(this.onDisable);\r\n WsServices.OnRemove(this.onRemove);\r\n WsServices.OnFriendRequestUpgrade(this.onFriendRequestUpgrade);\r\n })\r\n }\r\n\r\n resumeCallback(){\r\n this.init();\r\n }\r\n\r\n pauseCallback(){\r\n WsServices.Disconnect(this.chatRoom.identifier, store.state.user.identifier, this.chatRoom.type);\r\n }\r\n\r\n scrollToBottom() {\r\n this.messageContainer.scrollTop = this.messageContainer.scrollHeight;\r\n }\r\n \r\n beforeUnmount(){\r\n this.pauseCallback();\r\n document.removeEventListener(\"resume\", this.resumeCallback, false);\r\n document.removeEventListener(\"pause\", this.pauseCallback, false);\r\n\r\n window.removeEventListener('keyboardWillShow', this.keyboardWillShowCallback);\r\n window.removeEventListener('keyboardWillHide', this.keyboardWillHideCallback);\r\n }\r\n\r\n onLongtouch(val: OM.ChatRoomMessageVM){\r\n this.quotedMessage = {...val};\r\n this.quotedMessage.quotedMessage = null;\r\n this.$nextTick(() => {\r\n this.calcWriterHeight();\r\n });\r\n }\r\n\r\n cancelQuote(){\r\n this.quotedMessage = null;\r\n this.$nextTick(() => {\r\n this.calcWriterHeight();\r\n });\r\n }\r\n\r\n onNamesDictionary(message: VM.NamesDictionaryMessage){\r\n Object.keys(message.namesDictionary).forEach( key => {\r\n this.namesDictionary[key] = message.namesDictionary[key];\r\n })\r\n }\r\n \r\n onMessage(message: OM.ChatRoomMessageVM){\r\n this.messages.push(message);\r\n if(this.isAtBottom()){\r\n setTimeout(() => {\r\n this.goToBottom();\r\n }, 10);\r\n } else {\r\n //nuovi messaggi\r\n this.showNuoviMessaggi = true;\r\n }\r\n }\r\n\r\n isAtTop(){\r\n return this.messageContainer.scrollTop == 0;\r\n }\r\n isAtBottom(){\r\n let a = Math.abs(Math.floor(this.messageContainer.clientHeight - this.messageContainer.scrollHeight));\r\n let b = Math.floor(this.messageContainer.scrollTop + 10);\r\n return a <= b;\r\n }\r\n goToBottom(){\r\n this.messageContainer.scrollTop = this.messageContainer.scrollHeight;\r\n }\r\n \r\n scrollListener(){\r\n this.checkTopScroll();\r\n this.checkBottomScroll();\r\n }\r\n checkTopScroll(){\r\n if(!this.isAtTop())\r\n return;\r\n if(this.fetchingData || this.doneFetching)\r\n return;\r\n\r\n this.fetchingData = true;\r\n ChatRoomClient.getChatMessages(this.chatRoom.identifier, this.messages.length, this.take)\r\n .then(msgs => {\r\n this.fetchingData = false;\r\n let scrollBottom = this.messageContainer.scrollHeight - this.messageContainer.scrollTop;\r\n this.messages.unshift(...msgs);\r\n this.$nextTick(() => {\r\n this.messageContainer.scrollTop = this.messageContainer.scrollHeight - scrollBottom;\r\n });\r\n if(msgs.length == 0){\r\n this.doneFetching = true;\r\n }\r\n })\r\n }\r\n checkBottomScroll(){\r\n if(this.isAtBottom()){\r\n this.showNuoviMessaggi = false;\r\n }\r\n }\r\n\r\n onFriendRequestUpgrade(data: VM.UpgradeMessage){\r\n this.$router.replace('/chats/' + data.chatRoomIdentifier);\r\n }\r\n onDisable(data: VM.DisableMessage){\r\n this.isDisabled = data.disable;\r\n }\r\n onRemove(data: VM.RemoveMessage){\r\n let index = this.messages.findIndex(x => x.identifier == data.messageIdentifier);\r\n this.messages.splice(index, 1);\r\n }\r\n\r\n disableChat(){\r\n WsServices.SendDisableMessage(this.chatRoom.identifier, true);\r\n this.showActionMenu = false;\r\n }\r\n\r\n sendMessage(){\r\n \r\n if(!this.messageText.trim() || this.isDisabled) {\r\n return;\r\n }\r\n let parsedText = linkify(this.messageText);\r\n let newMessage: OM.ChatRoomMessageVM;\r\n newMessage = {\r\n identifier: \"00000000-0000-0000-0000-000000000000\",\r\n date: null,\r\n text: parsedText,\r\n senderIdentifier: store.state.user.identifier,\r\n quotedMessage: this.quotedMessage,\r\n metaData: '',\r\n lastReadDates: {}\r\n }\r\n var wsMessage: VM.ChatMessage = {\r\n chatRoomIdentifier: this.chatRoom.identifier,\r\n message: newMessage\r\n }\r\n WsServices.SendMessage(wsMessage);\r\n this.messageText = \"\";\r\n this.imgPreview = \"\";\r\n this.reset++;\r\n this.quotedMessage = null;\r\n this.chatInput.focus();\r\n setTimeout(() => {\r\n this.calcWriterHeight();\r\n });\r\n this.$nextTick(() => {\r\n this.goToBottom();\r\n });\r\n }\r\n sendImg(imgUrl: string){\r\n let newMessage: OM.ChatRoomMessageVM;\r\n newMessage = {\r\n identifier: \"00000000-0000-0000-0000-000000000000\",\r\n date: null,\r\n text: imgUrl,\r\n senderIdentifier: store.state.user.identifier,\r\n quotedMessage: this.quotedMessage,\r\n metaData: '',\r\n lastReadDates: {}\r\n }\r\n var chatMessage: VM.ChatMessage = {\r\n chatRoomIdentifier: this.chatRoom.identifier,\r\n message: newMessage\r\n }\r\n WsServices.SendMessage(chatMessage);\r\n this.messageText = \"\";\r\n this.imgPreview = \"\";\r\n this.quotedMessage = null;\r\n this.calcWriterHeight();\r\n this.$nextTick(() => {\r\n this.goToBottom();\r\n });\r\n }\r\n\r\n deleteMessage(chat: OM.ChatRoomMessageVM){\r\n var vm = new VM.RemoveMessage();\r\n vm.chatRoomIdentifier = this.chatRoom.identifier;\r\n vm.messageIdentifier = chat.identifier;\r\n vm.senderIdentifier = StorageServices.getUserIdentifier();\r\n\r\n WsServices.RemoveMessage(vm);\r\n this.$opModal.closeLast();\r\n }\r\n}\r\n","import { render } from \"./chatComponent.vue?vue&type=template&id=eb3d0936&scoped=true&ts=true\"\nimport script from \"./chatComponent.vue?vue&type=script&lang=ts\"\nexport * from \"./chatComponent.vue?vue&type=script&lang=ts\"\n\nimport \"./chatComponent.vue?vue&type=style&index=0&id=eb3d0936&scoped=true&lang=css\"\n\nimport exportComponent from \"C:\\\\Users\\\\rekt\\\\source\\\\repos\\\\uose\\\\uoseapp_new\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-eb3d0936\"]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/folder.ae02463b.svg\";"],"sourceRoot":""}