{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./app/frontend/packs/pages/static/mention.js","webpack:///./app/frontend/javascripts/api_utils.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isObject.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./app/frontend/javascripts/components/Mention.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/@yaireo/tagify/dist/tagify.min.js","webpack:///./app/frontend/javascripts/utils.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_typeof","iterator","constructor","window","Coorum","Mention","document","addEventListener","$mention","querySelector","setEvents","withLoadingAndDisable","loadingTarget","disableTargets","callback","a","classList","add","forEach","el","disabled","result","remove","console","error","wait","ms","Promise","resolve","setTimeout","pollingRequest","requestCb","stopConditionCb","intervalMs","getCsrfToken","getAttribute","jqueryAjaxBeforeSend","xhr","setRequestHeader","apiFailResultHandler","e","message","responseJSON","status","alert","fetchWithTimeout","resource","options","timeout","controller","AbortController","id","abort","fetch","headers","signal","response","clearTimeout","buildSafeURLSearchParams","paramsObj","keys","undefined","URLSearchParams","isObject","now","toNumber","FUNC_ERROR_TEXT","nativeMax","Math","max","nativeMin","min","func","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","this","leadingEdge","cancel","flush","_Symbol","obj","freeGlobal","freeSelf","self","root","type","g","baseGetTag","isObjectLike","symbolTag","global","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","$elem","tagify","__tagify","initialValues","compactValues","destroy","$tagify","initTagify","categorySelect","announcement","chat","question","$categoryInputElem","dataset","postableType","$segmentInputElem","boundCategoryInputChange","handleCategoryInputChange","boundSegmentInputChange","handleSegmentInputChange","addEventListeners","changeCategory","removeEventListener","input","_s","classNames","namespace","readonly","required","userInput","placeholder","tagData","nickname","escapeHTML","avatar","getAttributes","username","suggestions","users","username_displayed","length","map","_","avatar_url_or_default","url_name","loading","values","suggest","inputedUser","whitelist","removeAllTags","addTags","categoryId","segment_group_id","word","category_id","getCategoryId","getSegmentGroupId","is_root_post","isRootPost","is_params_preferred","isParamsPreferred","menu_id","menuId","postable_type","postable_id","postableId","persisted","parent_type","parentType","parent_id","parentId","searchParams","toString","method","json","responseJson","convertResponse","split","filter","x","diffAllowlist","addedUser","some","allowlistUser","concat","elem","Tagify","tagTextProp","enforceWhitelist","skipInvalid","editTags","pasteAsTags","dropdown","maxItems","closeOnSelect","enabled","classname","searchKeys","templates","wrapper","wrapperTemplate","tag","tagTemplate","dropdownItem","dropdownItemTemplate","dropdownFooter","originalInputValueFormat","item","join","validate","data","hooks","beforePaste","pastedText","searchUsers","_clipboardData","addedUsers","updateAllowlist","show","isCompositionStart","position","events","callbacks","onKeyDown","DOM","on","debounce","detail","isFirefox","isIE","match","ddHeightParam","_sd","settings","rect","parentRect","top","bottom","left","width","parentsPositions","ddElm","placeAbove","viewportHeight","documentElement","clientHeight","positionTo","clientWidth","innerWidth","ddTarget","scope","ddTargetParent","parentNode","ddHeight","state","visible","getCaretGlobalPosition","offsetLeft","offsetTop","getParentsPositions","appendTarget","getBoundingClientRect","floor","ceil","style","cssText","pageXOffset","pageYOffset","setAttribute","hasFocus","selectedElm","dropdownItemActiveSelector","selectedElmData","getSuggestionDataByNode","preventDefault","dropdownItems","getAllSuggestionsRefs","actionUp","getNextOrPrevOption","matches","dropdownItemSelector","highlightOption","hide","actions","ArrowLeft","autoComplete","rightKey","editing","getMappedValue","autocomplete","set","keyCode","suggestionClick","suggestionElm","then","selectOption","inputText","trim","err","raw","charCodeAt","backspace","removeTags","editTag","objectProto","nativeObjectToString","isOwn","unmasked","Date","baseTrim","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","test","slice","trimmedEndIndex","reTrimStart","string","replace","reWhitespace","index","charAt","configurable","writable","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_createForOfIteratorHelper","allowArrayLike","it","F","done","_e7","f","normalCompletion","didErr","step","next","_e8","minLen","len","arr2","getOwnPropertySymbols","getOwnPropertyDescriptor","push","getOwnPropertyDescriptors","defineProperties","toLowerCase","indexOf","createElement","innerHTML","innerText","DOMParser","parseFromString","body","firstElementChild","nodeType","h","assign","_step","_iterator","_step2","_iterator2","_s2","includes","String","normalize","u","navigator","userAgent","crypto","getRandomValues","Uint8Array","v","contains","delimiters","pattern","maxTags","addTagOnBlur","onChangeAfterBlur","duplicates","blacklist","keepInvalidTags","createInvalidTags","mixTagsAllowedAfter","mixTagsInterpolator","clicks","keepInvalid","transformTag","a11y","focusableTags","mixMode","insertAfterTag","selectMode","focus","tagNoAnimation","tagInvalid","tagNotAllowed","scopeLoading","hasMaxTags","hasNoTags","empty","inputInvalid","dropdownWrapper","dropdownHeader","dropdownItemActive","dropdownItemHidden","dropdownInital","tagText","tagX","tagLoading","tagEditing","tagFlash","tagHide","fuzzySearch","caseSensitive","accentedSearch","includeSelectedTags","highlightFirst","clearOnSelect","beforeRemoveTag","T","_t","_dropdown","refs","y","w","parseTemplate","content","getHeaderRef","getFooterRef","querySelectorAll","_this","dropdownItemNoMatch","enable","isLoading","dropdownHide__bindEventsTimeout","suggestedListItems","filterListItems","trigger","unshift","fill","binding","query","setStateSelection","render","_this2","removeChild","ddItemData","ddItemElm","selection","flaggedTags","baseOffset","toggle","_this3","cloneNode","appendChild","createListHTML","dropdownContent","fillHeaderFooter","replaceChild","refilter","listeners","onMouseOver","onMouseLeave","onClick","onScroll","_this4","_t2","target","closest","_this5","button","warn","scrollTop","scrollHeight","percentage","round","find","findIndex","removeAttribute","_this6","elm","event","onEditTagDone","__isValid","normalizeTags","toggleFocusClass","once","selectAll","_this7","isTagDuplicate","every","_t3","_r","_u","exact","reduce","sortby","mapValueTo","_this8","mappedValue","b","exceed","duplicate","notAllowed","O","customBinding","_this9","customEventsList","mainEvents","main","bindGlobal","isJQueryPlugin","jQuery","originalInput","onFocusBlur","keydown","onKeydown","click","onClickScope","dblclick","onDoubleClickScope","paste","onPaste","drop","onDrop","clearInterval","originalInputValueObserverInterval","setInterval","observeOriginalInputValue","inputMutationObserver","MutationObserver","onInputDOMChange","disconnect","observe","childList","_step3","_iterator3","cb","onWindowKeyDown","unbindGlobal","_this$value","_this$value$","textContent","relatedTarget","addNew","postUpdate","triggerChangeEvent","activeElement","nextElementSibling","_this10","getSelection","anchorOffset","anchorNode","previousSibling","getTagElms","previousElementSibling","hasAttribute","placeCaretAfterNode","nodeName","nodeValue","fixFirefoxLastTagNoCaret","children","tagName","blur","_t4","inputSuggestion","_s3","onInput","onMixTagsInput","inputElm","validateTag","toggleScopeValidation","isValid","search","_this11","createDocumentFragment","getRangeAt","inputType","createTagElem","childNodes","insertNode","setRangeAtStartEnd","lastChild","update","withoutChangeEvent","rangeCount","cloneRange","collapse","setStart","focusNode","endOffset","lastIndexOf","prefix","matchedPatternCount","onInputIE","tagifyValue","loadOriginalValues","getNodeIndex","_this12","clipboardData","getData","injectAtCaret","onEditTagInput","_o","_defineProperty","__tagId","editTagChangeDetected","originalIsValid","title","newValue","onEditTagFocus","onEditTagBlur","_this$validateTag","__originalData","_g","onEditTagkeydown","__tagifyTagData","__originalHTML","editable","_this13","addedNodes","_t$previousSibling","outerHTML","replaceWith","tagSelector","_e","createTextNode","_e2","nextSibling","_i2","removedNodes","M","_e3","Proxy","off","cloneData","triggerHandler","cloneEvent","HTMLElement","CustomEvent","dispatchEvent","InstallTrigger","documentMode","getPersistedData","localStorage","getItem","JSON","parse","setPersistedData","setItem","stringify","Event","clearPersistedData","removeItem","_t5","applySettings","build","getCSSVars","autofocus","helpers","sameStr","removeCollectionProp","omit","parseHTML","extend","concatWithoutDups","getUID","isNodeTag","dataProps","className","generateClassSelectors","_loop","_e4","RegExp","_delimiters","TEXTS","texts","getCustomAttributes","range","_a","_n","_e5","_i3","startContainer","_s4","startOffset","createRange","setEnd","right","getComputedStyle","CSSVars","tagHideTransition","unit","pop","getPropertyValue","integrated","originalInput_tabIndex","tabIndex","inputSelector","insertBefore","blockChangeEvent","_e6","parseMixTags","insertAdjacentHTML","lastOriginalValueReported","toggleClass","bubbles","simulated","_valueTracker","setValue","random","setStartAfter","removeAllRanges","addRange","getTagTextNode","tagTextSelector","setTagTextNode","_this14","getLastTag","skipValidation","editTagToggleValidity","removeTagsFromValue","previousData","replaceTag","reCheckInvalidTags","getInvalidTagAttrs","updateValueByDOMTags","_this15","_this$state$selection","appendMixTags","deleteContents","source","substr","substring","replaceTextWithNode","getTagIdx","_step4","_iterator4","_n2","getTagIndexByValue","_this16","getTagElmByValue","flashTag","_this17","isTagBlacklisted","isTagWhitelisted","getWhitelistItem","setReadonly","setContentEditable","contentEditable","setDisabled","_ref2","_this18","_ref","_this19","Error","splitText","selectTag","appendTag","addEmptyTag","_this20","addMixTags","__preInvalidData","_this21","prefixedTextToTag","_this22","createNodeIterator","NodeFilter","SHOW_TEXT","nextNode","_this23","_this24","node","idx","__removed","parseFloat","clientTop","removeTagsFromDOM","_this25","splice","_this26","_this$value2","_this$value2$","setOriginalInputValue","getInputValue","getCleanValue","getMixedTagsAsString","_r2","removeTag","escapeHTMLwithLink","text","separator","simpleFormatWithMultiLineFeed","url","simpleFormatWithLink","_regeneratorRuntime","asyncIterator","define","wrap","Generator","Context","makeInvokeMethod","tryCatch","arg","GeneratorFunction","GeneratorFunctionPrototype","getPrototypeOf","defineIteratorMethods","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","resultName","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","mark","setPrototypeOf","__proto__","awrap","async","reverse","prev","stop","rval","handle","complete","finish","delegateYield"],"mappings":"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","file":"js/pages/static/mention-4667b92918408c2aae0f.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1058);\n","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import Mention from '../../../javascripts/components/Mention';\n\nif (!window?.Coorum) {\n window.Coorum = {};\n}\nwindow.Coorum.Mention = Mention;\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const $mention = document.querySelector('.js-mention');\n if ($mention) {\n const mention = new Coorum.Mention($mention);\n mention.setEvents();\n }\n});\n","/**\n * usage:\n * - 1. loadingTargetを position: relative\n * - 2. loadingTargetに中に <%= render partial: 'shared/loader' %>入れる\n *\n * @param loadingTarget\n * @param disableTargets\n * @param callback\n * @returns {Promise}\n */\nexport async function withLoadingAndDisable(loadingTarget, disableTargets, callback) {\n try {\n // loading\n loadingTarget.classList.add('-loading');\n // disable\n if (disableTargets) {\n disableTargets.forEach(el => {\n el.disabled = true;\n });\n }\n\n const result = await callback();\n\n // loading off\n loadingTarget.classList.remove('-loading');\n // disable off\n if (disableTargets) {\n disableTargets.forEach(el => {\n el.disabled = false;\n });\n }\n\n return result;\n } catch (e) {\n console.error('error: ', e);\n\n // loading off\n loadingTarget.classList.remove('-loading');\n // disable off\n if (disableTargets) {\n disableTargets.forEach(el => {\n el.disabled = false;\n });\n }\n return null;\n }\n}\n\nfunction wait(ms) {\n return new Promise(resolve => {\n setTimeout(resolve, ms);\n });\n}\n\n/**\n * @param requestCb\n * @param stopConditionCb\n * @param intervalMs\n * @returns {Promise<*>}\n */\nexport async function pollingRequest(requestCb, stopConditionCb, intervalMs = 5000) {\n let result = await requestCb();\n while (!stopConditionCb(result)) {\n await wait(intervalMs);\n result = await requestCb();\n }\n return result;\n}\n\n/**\n * @deprecated\n * use utils/csrf.util.ts\n * jsでtsは参照はできないので、getCsrfToken()を使うjsが viteからcompileされる時だけrefactoringすること\n */\nexport function getCsrfToken() {\n return document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content');\n}\n\nexport function jqueryAjaxBeforeSend(xhr) {\n xhr.setRequestHeader('X-CSRF-Token', getCsrfToken());\n}\n\nexport function apiFailResultHandler(e, message) {\n console.error(e);\n if (e.responseJSON && e.responseJSON.status === 400) {\n alert(e.responseJSON.message);\n } else {\n alert(message);\n }\n}\n\nexport async function fetchWithTimeout(resource, options = {}) {\n const { timeout = 10000 } = options;\n\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), timeout);\n\n const response = await fetch(resource, {\n headers: {\n 'Accept': 'application/json',\n 'X-CSRF-TOKEN': getCsrfToken(),\n },\n ...options,\n signal: controller.signal\n });\n clearTimeout(id);\n\n return response;\n}\n\n/**\n * objectから、null, undefined, ''の値を削除して、URLSearchParamsを作成する\n * 0は残した場合があるため、truthyは使わない\n *\n * @param paramsObj\n * @returns {module:url.URLSearchParams}\n */\nexport function buildSafeURLSearchParams(paramsObj) {\n for (const key of Object.keys(paramsObj)) {\n if (paramsObj[key] === null || paramsObj[key] === undefined || paramsObj[key] === '') {\n delete paramsObj[key];\n }\n }\n return new URLSearchParams(paramsObj);\n}\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n/** Error message constants. */\n\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar _Symbol = root.Symbol;\nmodule.exports = _Symbol;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar freeGlobal = require('./_freeGlobal');\n/** Detect free variable `self`. */\n\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = _typeof(value);\n\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar symbolTag = '[object Symbol]';\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\nfunction isSymbol(value) {\n return _typeof(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nmodule.exports = isSymbol;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","var _Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n/** `Object#toString` result references. */\n\n\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;","import Tagify from '@yaireo/tagify';\nimport debounce from 'lodash/debounce';\nimport { buildSafeURLSearchParams, fetchWithTimeout } from '../api_utils';\nimport { escapeHTML } from '../utils';\n\n/**\n * FIXME: category inputとsegment group inputのselectorのscopeをもっと狭くしたい\n * なぜなら、mention inputは\n * 投稿の作成、修正画面だけでなく、詳細画面で複数入力ファームが表示されるケースがあるため。\n */\nclass Mention {\n constructor($elem) {\n this.$elem = $elem;\n const tagify = this.$elem?.__tagify;\n\n this.initialValues = this.compactValues();\n\n // 既にtagifyのインスタンスがある場合にはリセット\n if (tagify) {\n tagify.destroy();\n }\n this.$tagify = this.initTagify(this.$elem);\n\n // category input\n const categorySelect = {\n announcement: document.querySelector('[name=\"announcement_category_id\"]'),\n chat: document.querySelector('[name=\"chat_category_id\"]'),\n question: document.querySelector('[name=\"question_category_id\"]'),\n };\n this.$categoryInputElem = categorySelect?.[this.$elem.dataset.postableType];\n\n // segment group input\n this.$segmentInputElem = document.querySelector('[name=\"announcement[post_segment_group_segment_group_id]\"].js-segment-group-select');\n\n // add listeners\n this.boundCategoryInputChange = this.handleCategoryInputChange.bind(this);\n this.boundSegmentInputChange = this.handleSegmentInputChange.bind(this);\n this.addEventListeners();\n }\n\n /**\n * segment group selectの値が変更されたときに呼ばれる\n * すでにmentionを選択がある場合には、mentionをリセットする。\n */\n async handleSegmentInputChange() {\n await this.changeCategory(this.$tagify);\n }\n\n /**\n * category selectの値が変更されたときに呼ばれる\n */\n async handleCategoryInputChange() {\n await this.changeCategory(this.$tagify);\n }\n\n addEventListeners() {\n // カテゴリーを変更した際に選択ユーザーとホワイトリストを作り直す\n if (this.$categoryInputElem) {\n this.$categoryInputElem.addEventListener('change', this.boundCategoryInputChange);\n }\n // セグメントグループを変更した際にユーザーとホワイトリストを作り直す\n if (this.$segmentInputElem) {\n this.$segmentInputElem.addEventListener('change', this.boundSegmentInputChange);\n }\n }\n\n /**\n * 現在は使ってないが、reactと兼用で使う場合のために作る\n */\n removeEventListeners() {\n if (this.$categoryInputElem) {\n this.$categoryInputElem.removeEventListener('change', this.boundCategoryInputChange);\n }\n if (this.$segmentInputElem) {\n this.$segmentInputElem.removeEventListener('change', this.boundSegmentInputChange);\n }\n }\n\n // Override Wrapper\n // https://github.com/yairEO/tagify/blob/v4.13.3/src/parts/templates.js\n wrapperTemplate(input, _s) {\n return `\n \n ​\n `;\n }\n\n tagTemplate(tagData) {\n const nickname = tagData.nickname ? escapeHTML(tagData.nickname) : null;\n return `\n \n
\n
\n \n
\n ${nickname}\n
\n \n `;\n }\n\n dropdownItemTemplate(tagData) {\n const nickname = tagData.nickname ? escapeHTML(tagData.nickname) : null;\n return `\n ${tagData.avatar\n ? `\n
\n \n
`\n : ''\n }\n
\n
${nickname\n }
\n ${tagData.username !== null\n ? `\n
\n
ID
\n
${tagData.username}
\n
`\n : ''\n }\n
\n \n `;\n }\n\n // 選択肢が表示しきれない場合の「○○ more items. Refine your search.」というメッセージを抑止する\n dropdownFooter(suggestions) {\n return '';\n }\n\n convertResponse(response) {\n const { users, username_displayed } = response;\n if (!users || users.length < 1) {\n return [];\n }\n\n return users.map(({ nickname, avatar_url_or_default, url_name, username }, _) => {\n return {\n nickname,\n username: username_displayed ? username : null,\n avatar: avatar_url_or_default,\n value: url_name,\n };\n });\n }\n\n async changeCategory(tagify) {\n try {\n if (tagify?.value.length > 0) {\n tagify.loading(true);\n\n const values = tagify.value;\n // 許可リストを更新し、選択済みを削除\n tagify.whitelist = await this.suggest(\n null,\n values.map((inputedUser) => inputedUser.value)\n );\n\n tagify.removeAllTags();\n // 選択済みのユーザーを追加、許可リストにないユーザーは追加されない\n tagify.addTags(values);\n tagify.loading(false);\n } else {\n tagify.loading(true);\n tagify.whitelist = [];\n tagify.removeAllTags();\n tagify.loading(false);\n }\n } catch (e) {\n console.error('error: ', e);\n }\n }\n\n getCategoryId() {\n if (this.$categoryInputElem) {\n return this.$categoryInputElem.value;\n }\n\n const dataset = this.$elem.dataset;\n return dataset.categoryId;\n }\n\n getSegmentGroupId() {\n let segment_group_id = undefined;\n if (this.$segmentInputElem) {\n segment_group_id = this.$segmentInputElem.value;\n }\n return segment_group_id;\n }\n\n async suggest(word = null, url_name = null) {\n const dataset = this.$elem.dataset;\n const paramsObj = {\n word: word,\n url_name: url_name,\n category_id: this.getCategoryId(),\n segment_group_id: this.getSegmentGroupId(),\n is_root_post: dataset.isRootPost,\n is_params_preferred: dataset.isParamsPreferred,\n menu_id: dataset.menuId,\n postable_type: dataset.postableType,\n postable_id: dataset.postableId,\n persisted: dataset.persisted,\n parent_type: dataset.parentType,\n parent_id: dataset.parentId,\n };\n const searchParams = buildSafeURLSearchParams(paramsObj);\n const response = await fetchWithTimeout(`/mentions/suggest?${searchParams.toString()}`, {\n method: 'GET'\n });\n const responseJson = await response.json();\n return this.convertResponse(responseJson);\n }\n\n compactValues() {\n return this.$elem?.value\n .split(',')\n .filter((x) => !(x === null || x === undefined || x === ''));\n }\n\n async updateAllowlist(tagify, addedUsers = []) {\n const diffAllowlist = addedUsers.filter(\n (addedUser) =>\n !tagify.whitelist.some(\n (allowlistUser) => allowlistUser.value == addedUser.value\n )\n );\n\n // プリロードされたリストにいないユーザーがあればホワイトリストに追加\n if (diffAllowlist.length > 0) {\n tagify.whitelist = tagify.whitelist.concat(diffAllowlist);\n }\n }\n\n initTagify(elem) {\n const tagify = new Tagify(elem, {\n tagTextProp: 'nickname',\n enforceWhitelist: true,\n skipInvalid: true,\n editTags: false,\n pasteAsTags: false,\n dropdown: {\n maxItems: 50,\n closeOnSelect: false,\n enabled: 0,\n classname: 'users-list',\n searchKeys: ['nickname', 'username'],\n },\n templates: {\n wrapper: this.wrapperTemplate,\n tag: this.tagTemplate,\n dropdownItem: this.dropdownItemTemplate,\n dropdownFooter: this.dropdownFooter\n },\n whitelist: [],\n originalInputValueFormat: (values) => values.map((item) => item.value).join(','),\n validate: ({ value }) => tagify.whitelist.some((data) => value === data.value),\n hooks: {\n beforePaste: (e, { tagify, pastedText, _clipboardData }) => {\n const searchUsers = async () => {\n const addedUsers = await this.suggest(pastedText);\n await this.updateAllowlist(tagify, addedUsers);\n\n // ドロップダウンの表示\n tagify.loading(false);\n tagify.dropdown.show();\n };\n\n searchUsers();\n\n return Promise.resolve();\n },\n }\n });\n\n return tagify;\n }\n\n async setEvents() {\n const tagify = this.$tagify;\n\n let isCompositionStart = false;\n const initialValues = this.initialValues;\n\n // dropdownのDOMポジションコントロールをOverride\n tagify.dropdown.position = this.position.bind(tagify);\n // onKeyDownイベントに含まれるIMEバグに対するOverride\n tagify.dropdown.events.callbacks.onKeyDown = this.onKeyDown.bind(tagify);\n\n // 編集時などの既に値がある場合\n if (initialValues.length > 0) {\n // 既に追加されているユーザーと、その差分を取得\n tagify.loading(true);\n\n const addedUsers = await this.suggest(null, initialValues);\n await this.updateAllowlist(tagify, addedUsers);\n\n tagify.addTags(addedUsers);\n tagify.loading(false);\n }\n\n // IME用文字列変換開始\n tagify.DOM.input.addEventListener('compositionstart', (e) => {\n isCompositionStart = true;\n });\n\n // IME用文字列変換完了\n tagify.DOM.input.addEventListener('compositionend', async (e) => {\n if (!e.data) {\n isCompositionStart = false;\n return;\n }\n\n tagify.loading(true);\n\n const addedUsers = await this.suggest(e.data);\n await this.updateAllowlist(tagify, addedUsers);\n\n tagify.loading(false);\n tagify.dropdown.show();\n\n isCompositionStart = false;\n });\n\n tagify\n .on('remove', () => {\n isCompositionStart = false;\n })\n .on(\n 'input',\n debounce(async (e) => {\n if (!e.detail.value) {\n return false;\n }\n // FirefoxでもIEでもなく、且つ半角英数の時にはトリガーしない\n if (\n !tagify.isFirefox &&\n !tagify.isIE &&\n (!e.detail.value.match(/^[ -~]*$/) || isCompositionStart)\n ) {\n return false;\n }\n\n tagify.loading(true);\n\n const addedUsers = await this.suggest(e.detail.value);\n await this.updateAllowlist(tagify, addedUsers);\n\n tagify.loading(false);\n tagify.dropdown.show();\n }, 200)\n );\n }\n\n // Tagify.Dropdownの表示位置をコントロールするMethodのMonkeyPatch\n // https://github.com/yairEO/tagify/blob/v4.13.3/dist/tagify.js\n position(ddHeightParam) {\n var _sd = this.settings.dropdown;\n if (_sd.position === 'manual') return;\n var rect,\n parentRect,\n top,\n bottom,\n left,\n width,\n parentsPositions,\n ddElm = this.DOM.dropdown,\n placeAbove = _sd.placeAbove,\n viewportHeight = document.documentElement.clientHeight,\n viewportWidth = Math.max(\n document.documentElement.clientWidth || 0,\n window.innerWidth || 0\n ),\n positionTo = viewportWidth > 480 ? _sd.position : 'all',\n // 変更1: 上下の位置はデフォルトのscopeを基準に取得\n ddTarget = this.DOM.scope,\n // 変更2: 左右の位置はscope側が横スクロールを許容することで取得できない為、親のエレメントから取得\n ddTargetParent = this.DOM.scope.parentNode,\n ddHeight = ddHeightParam || ddElm.clientHeight;\n\n function getParentsPositions(p) {\n var left = 0,\n top = 0;\n\n while (p) {\n left += p.offsetLeft || 0;\n top += p.offsetTop || 0;\n p = p.parentNode;\n }\n\n return {\n left,\n top,\n };\n }\n\n if (!this.state.dropdown.visible) return;\n\n if (positionTo === 'text') {\n rect = this.getCaretGlobalPosition();\n bottom = rect.bottom;\n top = rect.top;\n left = rect.left;\n width = 'auto';\n } else {\n parentsPositions = getParentsPositions(\n this.settings.dropdown.appendTarget\n );\n rect = ddTarget.getBoundingClientRect();\n parentRect = ddTargetParent.getBoundingClientRect();\n top = rect.top - parentsPositions.top;\n bottom = rect.bottom - 1 - parentsPositions.top;\n left = parentRect.left - parentsPositions.left;\n width = parentRect.width + 'px';\n }\n\n top = Math.floor(top);\n bottom = Math.ceil(bottom);\n placeAbove =\n placeAbove === undefined\n ? viewportHeight - rect.bottom < ddHeight\n : placeAbove; // flip vertically if there is no space for the dropdown below the input\n\n ddElm.style.cssText =\n 'left:' +\n (left + window.pageXOffset) +\n 'px; width:' +\n width +\n ';' +\n (placeAbove\n ? 'top: ' + (top + window.pageYOffset) + 'px'\n : 'top: ' + (bottom + window.pageYOffset) + 'px');\n ddElm.setAttribute('placement', placeAbove ? 'top' : 'bottom');\n ddElm.setAttribute('position', positionTo);\n }\n\n // TagifyのIMEバグ修正Monkeypatch\n // Enter時に229だった場合、処理から離脱するように修正\n // https://github.com/yairEO/tagify/blob/v4.13.3/dist/tagify.js\n // https://github.com/yairEO/tagify/blob/master/src/parts/dropdown.js\n onKeyDown(e) {\n if (!this.state.hasFocus) return;\n\n // get the \"active\" element, and if there was none (yet) active, use first child\n var selectedElm = this.DOM.dropdown.querySelector(\n this.settings.classNames.dropdownItemActiveSelector\n ),\n selectedElmData = this.dropdown.getSuggestionDataByNode(selectedElm);\n\n switch (e.key) {\n case 'ArrowDown':\n case 'ArrowUp':\n case 'Down': // >IE11\n case 'Up': {\n // >IE11\n e.preventDefault();\n var dropdownItems = this.dropdown.getAllSuggestionsRefs(),\n actionUp = e.key === 'ArrowUp' || e.key === 'Up';\n\n if (selectedElm) {\n selectedElm = this.dropdown.getNextOrPrevOption(\n selectedElm,\n !actionUp\n );\n }\n\n // if no element was found OR current item is not a \"real\" item, loop\n if (\n !selectedElm ||\n !selectedElm.matches(this.settings.classNames.dropdownItemSelector)\n ) {\n selectedElm = dropdownItems[actionUp ? dropdownItems.length - 1 : 0];\n }\n\n selectedElmData = this.dropdown.getSuggestionDataByNode(selectedElm);\n\n this.dropdown.highlightOption(selectedElm, true);\n // selectedElm.scrollIntoView({inline: 'nearest', behavior: 'smooth'})\n break;\n }\n case 'Escape':\n case 'Esc': // IE11\n this.dropdown.hide();\n break;\n\n case 'ArrowRight':\n if (this.state.actions.ArrowLeft) return;\n case 'Tab': {\n // in mix-mode, treat arrowRight like Enter key, so a tag will be created\n if (\n this.settings.mode !== 'mix' &&\n selectedElm &&\n !this.settings.autoComplete.rightKey &&\n !this.state.editing\n ) {\n e.preventDefault(); // prevents blur so the autocomplete suggestion will not become a tag\n var value = this.dropdown.getMappedValue(selectedElmData);\n\n this.input.autocomplete.set.call(this, value);\n return false;\n }\n return true;\n }\n case 'Enter': {\n // Monkeypatch-Start\n if (e.keyCode === 229) return;\n // Monkeypatch-End\n\n e.preventDefault();\n\n this.settings.hooks\n .suggestionClick(e, {\n tagify: this,\n tagData: selectedElmData,\n suggestionElm: selectedElm,\n })\n .then(() => {\n if (selectedElm) {\n this.dropdown.selectOption(selectedElm);\n // highlight next option\n selectedElm = this.dropdown.getNextOrPrevOption(\n selectedElm,\n !actionUp\n );\n this.dropdown.highlightOption(selectedElm);\n return;\n } else this.dropdown.hide();\n\n if (this.settings.mode !== 'mix')\n this.addTags(this.state.inputText.trim(), true);\n })\n .catch((err) => err);\n\n break;\n }\n case 'Backspace': {\n if (this.settings.mode === 'mix' || this.state.editing.scope) return;\n\n const value = this.input.raw.call(this);\n\n if (value === '' || value.charCodeAt(0) === 8203) {\n if (this.settings.backspace === true) this.removeTags();\n else if (this.settings.backspace === 'edit')\n setTimeout(this.editTag.bind(this), 0);\n }\n }\n }\n }\n}\n\nexport default Mention;\n","var _Symbol = require('./_Symbol');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\n}\n\nmodule.exports = getRawTag;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && _typeof(value) == 'object';\n}\n\nmodule.exports = isObjectLike;","var root = require('./_root');\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\n\nvar now = function now() {\n return root.Date.now();\n};\n\nmodule.exports = now;","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar NAN = 0 / 0;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = toNumber;","var trimmedEndIndex = require('./_trimmedEndIndex');\n/** Used to match leading whitespace. */\n\n\nvar reTrimStart = /^\\s+/;\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n\nfunction baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n}\n\nmodule.exports = baseTrim;","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n\n return index;\n}\n\nmodule.exports = trimmedEndIndex;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e7) { throw _e7; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e8) { didErr = true; err = _e8; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Tagify (v 4.16.2) - tags input component\n * By Yair Even-Or\n * https://github.com/yairEO/tagify\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n * \r\n * THE SOFTWARE IS NOT PERMISSIBLE TO BE SOLD.\n */\n!function (t, e) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"undefined\" != typeof module ? module.exports = e() : \"function\" == typeof define && define.amd ? define(e) : (t = \"undefined\" != typeof globalThis ? globalThis : t || self).Tagify = e();\n}(this, function () {\n \"use strict\";\n\n function t(t, e) {\n var i = Object.keys(t);\n\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(t);\n e && (s = s.filter(function (e) {\n return Object.getOwnPropertyDescriptor(t, e).enumerable;\n })), i.push.apply(i, s);\n }\n\n return i;\n }\n\n function e(e) {\n for (var s = 1; s < arguments.length; s++) {\n var a = null != arguments[s] ? arguments[s] : {};\n s % 2 ? t(Object(a), !0).forEach(function (t) {\n i(e, t, a[t]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(a)) : t(Object(a)).forEach(function (t) {\n Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(a, t));\n });\n }\n\n return e;\n }\n\n function i(t, e, i) {\n return e in t ? Object.defineProperty(t, e, {\n value: i,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = i, t;\n }\n\n var s = function s(t, e, i, _s) {\n return t = \"\" + t, e = \"\" + e, _s && (t = t.trim(), e = e.trim()), i ? t == e : t.toLowerCase() == e.toLowerCase();\n },\n a = function a(t, e) {\n return t && Array.isArray(t) && t.map(function (t) {\n return n(t, e);\n });\n };\n\n function n(t, e) {\n var i,\n s = {};\n\n for (i in t) {\n e.indexOf(i) < 0 && (s[i] = t[i]);\n }\n\n return s;\n }\n\n function o(t) {\n var e = document.createElement(\"div\");\n return t.replace(/\\&#?[0-9a-z]+;/gi, function (t) {\n return e.innerHTML = t, e.innerText;\n });\n }\n\n function r(t) {\n return new DOMParser().parseFromString(t.trim(), \"text/html\").body.firstElementChild;\n }\n\n function l(t, e) {\n for (e = e || \"previous\"; t = t[e + \"Sibling\"];) {\n if (3 == t.nodeType) return t;\n }\n }\n\n function d(t) {\n return \"string\" == typeof t ? t.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/`|'/g, \"'\") : t;\n }\n\n function h(t) {\n var e = Object.prototype.toString.call(t).split(\" \")[1].slice(0, -1);\n return t === Object(t) && \"Array\" != e && \"Function\" != e && \"RegExp\" != e && \"HTMLUnknownElement\" != e;\n }\n\n function g(t, e, i) {\n function s(t, e) {\n for (var i in e) {\n if (e.hasOwnProperty(i)) {\n if (h(e[i])) {\n h(t[i]) ? s(t[i], e[i]) : t[i] = Object.assign({}, e[i]);\n continue;\n }\n\n if (Array.isArray(e[i])) {\n t[i] = Object.assign([], e[i]);\n continue;\n }\n\n t[i] = e[i];\n }\n }\n }\n\n return t instanceof Object || (t = {}), s(t, e), i && s(t, i), t;\n }\n\n function p() {\n var t = [],\n e = {};\n\n var _iterator = _createForOfIteratorHelper(arguments),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _i = _step.value;\n\n var _iterator2 = _createForOfIteratorHelper(_i),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _s2 = _step2.value;\n h(_s2) ? e[_s2.value] || (t.push(_s2), e[_s2.value] = 1) : t.includes(_s2) || t.push(_s2);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return t;\n }\n\n function c(t) {\n return String.prototype.normalize ? \"string\" == typeof t ? t.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\") : void 0 : t;\n }\n\n var u = function u() {\n return /(?=.*chrome)(?=.*android)/i.test(navigator.userAgent);\n };\n\n function m() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (t) {\n return (t ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> t / 4).toString(16);\n });\n }\n\n function v(t) {\n return t && t.classList && t.classList.contains(this.settings.classNames.tag);\n }\n\n var f = {\n delimiters: \",\",\n pattern: null,\n tagTextProp: \"value\",\n maxTags: 1 / 0,\n callbacks: {},\n addTagOnBlur: !0,\n onChangeAfterBlur: !0,\n duplicates: !1,\n whitelist: [],\n blacklist: [],\n enforceWhitelist: !1,\n userInput: !0,\n keepInvalidTags: !1,\n createInvalidTags: !0,\n mixTagsAllowedAfter: /,|\\.|\\:|\\s/,\n mixTagsInterpolator: [\"[[\", \"]]\"],\n backspace: !0,\n skipInvalid: !1,\n pasteAsTags: !0,\n editTags: {\n clicks: 2,\n keepInvalid: !0\n },\n transformTag: function transformTag() {},\n trim: !0,\n a11y: {\n focusableTags: !1\n },\n mixMode: {\n insertAfterTag: \" \"\n },\n autoComplete: {\n enabled: !0,\n rightKey: !1\n },\n classNames: {\n namespace: \"tagify\",\n mixMode: \"tagify--mix\",\n selectMode: \"tagify--select\",\n input: \"tagify__input\",\n focus: \"tagify--focus\",\n tagNoAnimation: \"tagify--noAnim\",\n tagInvalid: \"tagify--invalid\",\n tagNotAllowed: \"tagify--notAllowed\",\n scopeLoading: \"tagify--loading\",\n hasMaxTags: \"tagify--hasMaxTags\",\n hasNoTags: \"tagify--noTags\",\n empty: \"tagify--empty\",\n inputInvalid: \"tagify__input--invalid\",\n dropdown: \"tagify__dropdown\",\n dropdownWrapper: \"tagify__dropdown__wrapper\",\n dropdownHeader: \"tagify__dropdown__header\",\n dropdownFooter: \"tagify__dropdown__footer\",\n dropdownItem: \"tagify__dropdown__item\",\n dropdownItemActive: \"tagify__dropdown__item--active\",\n dropdownItemHidden: \"tagify__dropdown__item--hidden\",\n dropdownInital: \"tagify__dropdown--initial\",\n tag: \"tagify__tag\",\n tagText: \"tagify__tag-text\",\n tagX: \"tagify__tag__removeBtn\",\n tagLoading: \"tagify__tag--loading\",\n tagEditing: \"tagify__tag--editable\",\n tagFlash: \"tagify__tag--flash\",\n tagHide: \"tagify__tag--hide\"\n },\n dropdown: {\n classname: \"\",\n enabled: 2,\n maxItems: 10,\n searchKeys: [\"value\", \"searchBy\"],\n fuzzySearch: !0,\n caseSensitive: !1,\n accentedSearch: !0,\n includeSelectedTags: !1,\n highlightFirst: !1,\n closeOnSelect: !0,\n clearOnSelect: !0,\n position: \"all\",\n appendTarget: null\n },\n hooks: {\n beforeRemoveTag: function beforeRemoveTag() {\n return Promise.resolve();\n },\n beforePaste: function beforePaste() {\n return Promise.resolve();\n },\n suggestionClick: function suggestionClick() {\n return Promise.resolve();\n }\n }\n };\n\n function T() {\n this.dropdown = {};\n\n for (var _t in this._dropdown) {\n this.dropdown[_t] = \"function\" == typeof this._dropdown[_t] ? this._dropdown[_t].bind(this) : this._dropdown[_t];\n }\n\n this.dropdown.refs();\n }\n\n var w = {\n refs: function refs() {\n this.DOM.dropdown = this.parseTemplate(\"dropdown\", [this.settings]), this.DOM.dropdown.content = this.DOM.dropdown.querySelector(\"[data-selector='tagify-suggestions-wrapper']\");\n },\n getHeaderRef: function getHeaderRef() {\n return this.DOM.dropdown.querySelector(\"[data-selector='tagify-suggestions-header']\");\n },\n getFooterRef: function getFooterRef() {\n return this.DOM.dropdown.querySelector(\"[data-selector='tagify-suggestions-footer']\");\n },\n getAllSuggestionsRefs: function getAllSuggestionsRefs() {\n return _toConsumableArray(this.DOM.dropdown.content.querySelectorAll(this.settings.classNames.dropdownItemSelector));\n },\n show: function show(t) {\n var _this = this;\n\n var e,\n i,\n a,\n n = this.settings,\n o = \"mix\" == n.mode && !n.enforceWhitelist,\n r = !n.whitelist || !n.whitelist.length,\n l = \"manual\" == n.dropdown.position;\n\n if (t = void 0 === t ? this.state.inputText : t, !(r && !o && !n.templates.dropdownItemNoMatch || !1 === n.dropdown.enable || this.state.isLoading || this.settings.readonly)) {\n if (clearTimeout(this.dropdownHide__bindEventsTimeout), this.suggestedListItems = this.dropdown.filterListItems(t), t && !this.suggestedListItems.length && (this.trigger(\"dropdown:noMatch\", t), n.templates.dropdownItemNoMatch && (a = n.templates.dropdownItemNoMatch.call(this, {\n value: t\n }))), !a) {\n if (this.suggestedListItems.length) t && o && !this.state.editing.scope && !s(this.suggestedListItems[0].value, t) && this.suggestedListItems.unshift({\n value: t\n });else {\n if (!t || !o || this.state.editing.scope) return this.input.autocomplete.suggest.call(this), void this.dropdown.hide();\n this.suggestedListItems = [{\n value: t\n }];\n }\n i = \"\" + (h(e = this.suggestedListItems[0]) ? e.value : e), n.autoComplete && i && 0 == i.indexOf(t) && this.input.autocomplete.suggest.call(this, e);\n }\n\n this.dropdown.fill(a), n.dropdown.highlightFirst && this.dropdown.highlightOption(this.DOM.dropdown.content.querySelector(n.classNames.dropdownItemSelector)), this.state.dropdown.visible || setTimeout(this.dropdown.events.binding.bind(this)), this.state.dropdown.visible = t || !0, this.state.dropdown.query = t, this.setStateSelection(), l || setTimeout(function () {\n _this.dropdown.position(), _this.dropdown.render();\n }), setTimeout(function () {\n _this.trigger(\"dropdown:show\", _this.DOM.dropdown);\n });\n }\n },\n hide: function hide(t) {\n var _this2 = this;\n\n var e = this.DOM,\n i = e.scope,\n s = e.dropdown,\n a = \"manual\" == this.settings.dropdown.position && !t;\n if (s && document.body.contains(s) && !a) return window.removeEventListener(\"resize\", this.dropdown.position), this.dropdown.events.binding.call(this, !1), i.setAttribute(\"aria-expanded\", !1), s.parentNode.removeChild(s), setTimeout(function () {\n _this2.state.dropdown.visible = !1;\n }, 100), this.state.dropdown.query = this.state.ddItemData = this.state.ddItemElm = this.state.selection = null, this.state.tag && this.state.tag.value.length && (this.state.flaggedTags[this.state.tag.baseOffset] = this.state.tag), this.trigger(\"dropdown:hide\", s), this;\n },\n toggle: function toggle(t) {\n this.dropdown[this.state.dropdown.visible && !t ? \"hide\" : \"show\"]();\n },\n render: function render() {\n var _this3 = this;\n\n var t,\n e,\n i,\n s = (t = this.DOM.dropdown, (i = t.cloneNode(!0)).style.cssText = \"position:fixed; top:-9999px; opacity:0\", document.body.appendChild(i), e = i.clientHeight, i.parentNode.removeChild(i), e),\n a = this.settings;\n return \"number\" == typeof a.dropdown.enabled && a.dropdown.enabled >= 0 ? (this.DOM.scope.setAttribute(\"aria-expanded\", !0), document.body.contains(this.DOM.dropdown) || (this.DOM.dropdown.classList.add(a.classNames.dropdownInital), this.dropdown.position(s), a.dropdown.appendTarget.appendChild(this.DOM.dropdown), setTimeout(function () {\n return _this3.DOM.dropdown.classList.remove(a.classNames.dropdownInital);\n })), this) : this;\n },\n fill: function fill(t) {\n t = \"string\" == typeof t ? t : this.dropdown.createListHTML(t || this.suggestedListItems);\n var e,\n i = this.settings.templates.dropdownContent.call(this, t);\n this.DOM.dropdown.content.innerHTML = (e = i) ? e.replace(/\\>[\\r\\n ]+\\<\").replace(/(<.*?>)|\\s+/g, function (t, e) {\n return e || \" \";\n }) : \"\";\n },\n fillHeaderFooter: function fillHeaderFooter() {\n this.settings.templates;\n var t = this.dropdown.filterListItems(this.state.dropdown.query),\n e = this.parseTemplate(\"dropdownHeader\", [t]),\n i = this.parseTemplate(\"dropdownFooter\", [t]),\n s = this.dropdown.getHeaderRef(),\n a = this.dropdown.getFooterRef();\n e && (s === null || s === void 0 ? void 0 : s.parentNode.replaceChild(e, s)), i && (a === null || a === void 0 ? void 0 : a.parentNode.replaceChild(i, a));\n },\n refilter: function refilter(t) {\n t = t || this.state.dropdown.query || \"\", this.suggestedListItems = this.dropdown.filterListItems(t), this.dropdown.fill(), this.suggestedListItems.length || this.dropdown.hide(), this.trigger(\"dropdown:updated\", this.DOM.dropdown);\n },\n position: function position(t) {\n var e = this.settings.dropdown;\n\n if (\"manual\" != e.position) {\n var i,\n s,\n a,\n n,\n o,\n r,\n l = this.DOM.dropdown,\n d = e.placeAbove,\n h = document.documentElement.clientHeight,\n g = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0) > 480 ? e.position : \"all\",\n p = this.DOM[\"input\" == g ? \"input\" : \"scope\"];\n t = t || l.clientHeight, this.state.dropdown.visible && (\"text\" == g ? (a = (i = this.getCaretGlobalPosition()).bottom, s = i.top, n = i.left, o = \"auto\") : (r = function (t) {\n for (var e = 0, i = 0; t;) {\n e += t.offsetLeft || 0, i += t.offsetTop || 0, t = t.parentNode;\n }\n\n return {\n left: e,\n top: i\n };\n }(this.settings.dropdown.appendTarget), s = (i = p.getBoundingClientRect()).top - r.top, a = i.bottom - 1 - r.top, n = i.left - r.left, o = i.width + \"px\"), s = Math.floor(s), a = Math.ceil(a), d = void 0 === d ? h - i.bottom < t : d, l.style.cssText = \"left:\" + (n + window.pageXOffset) + \"px; width:\" + o + \";\" + (d ? \"top: \" + (s + window.pageYOffset) + \"px\" : \"top: \" + (a + window.pageYOffset) + \"px\"), l.setAttribute(\"placement\", d ? \"top\" : \"bottom\"), l.setAttribute(\"position\", g));\n }\n },\n events: {\n binding: function binding() {\n var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];\n var e = this.dropdown.events.callbacks,\n i = this.listeners.dropdown = this.listeners.dropdown || {\n position: this.dropdown.position.bind(this),\n onKeyDown: e.onKeyDown.bind(this),\n onMouseOver: e.onMouseOver.bind(this),\n onMouseLeave: e.onMouseLeave.bind(this),\n onClick: e.onClick.bind(this),\n onScroll: e.onScroll.bind(this)\n },\n s = t ? \"addEventListener\" : \"removeEventListener\";\n \"manual\" != this.settings.dropdown.position && (document[s](\"scroll\", i.position, !0), window[s](\"resize\", i.position), window[s](\"keydown\", i.onKeyDown)), this.DOM.dropdown[s](\"mouseover\", i.onMouseOver), this.DOM.dropdown[s](\"mouseleave\", i.onMouseLeave), this.DOM.dropdown[s](\"mousedown\", i.onClick), this.DOM.dropdown.content[s](\"scroll\", i.onScroll);\n },\n callbacks: {\n onKeyDown: function onKeyDown(t) {\n var _this4 = this;\n\n if (this.state.hasFocus) {\n var e = this.DOM.dropdown.querySelector(this.settings.classNames.dropdownItemActiveSelector),\n i = this.dropdown.getSuggestionDataByNode(e);\n\n switch (t.key) {\n case \"ArrowDown\":\n case \"ArrowUp\":\n case \"Down\":\n case \"Up\":\n t.preventDefault();\n var s = this.dropdown.getAllSuggestionsRefs(),\n a = \"ArrowUp\" == t.key || \"Up\" == t.key;\n e && (e = this.dropdown.getNextOrPrevOption(e, !a)), e && e.matches(this.settings.classNames.dropdownItemSelector) || (e = s[a ? s.length - 1 : 0]), i = this.dropdown.getSuggestionDataByNode(e), this.dropdown.highlightOption(e, !0);\n break;\n\n case \"Escape\":\n case \"Esc\":\n this.dropdown.hide();\n break;\n\n case \"ArrowRight\":\n if (this.state.actions.ArrowLeft) return;\n\n case \"Tab\":\n if (\"mix\" != this.settings.mode && e && !this.settings.autoComplete.rightKey && !this.state.editing) {\n t.preventDefault();\n var n = this.dropdown.getMappedValue(i);\n return this.input.autocomplete.set.call(this, n), !1;\n }\n\n return !0;\n\n case \"Enter\":\n t.preventDefault(), this.settings.hooks.suggestionClick(t, {\n tagify: this,\n tagData: i,\n suggestionElm: e\n }).then(function () {\n if (e) return _this4.dropdown.selectOption(e), e = _this4.dropdown.getNextOrPrevOption(e, !a), void _this4.dropdown.highlightOption(e);\n _this4.dropdown.hide(), \"mix\" != _this4.settings.mode && _this4.addTags(_this4.state.inputText.trim(), !0);\n })[\"catch\"](function (t) {\n return t;\n });\n break;\n\n case \"Backspace\":\n {\n if (\"mix\" == this.settings.mode || this.state.editing.scope) return;\n\n var _t2 = this.input.raw.call(this);\n\n \"\" != _t2 && 8203 != _t2.charCodeAt(0) || (!0 === this.settings.backspace ? this.removeTags() : \"edit\" == this.settings.backspace && setTimeout(this.editTag.bind(this), 0));\n }\n }\n }\n },\n onMouseOver: function onMouseOver(t) {\n var e = t.target.closest(this.settings.classNames.dropdownItemSelector);\n e && this.dropdown.highlightOption(e);\n },\n onMouseLeave: function onMouseLeave(t) {\n this.dropdown.highlightOption();\n },\n onClick: function onClick(t) {\n var _this5 = this;\n\n if (0 == t.button && t.target != this.DOM.dropdown && t.target != this.DOM.dropdown.content) {\n var e = t.target.closest(this.settings.classNames.dropdownItemSelector),\n i = this.dropdown.getSuggestionDataByNode(e);\n this.state.actions.selectOption = !0, setTimeout(function () {\n return _this5.state.actions.selectOption = !1;\n }, 50), this.settings.hooks.suggestionClick(t, {\n tagify: this,\n tagData: i,\n suggestionElm: e\n }).then(function () {\n e ? _this5.dropdown.selectOption(e, t) : _this5.dropdown.hide();\n })[\"catch\"](function (t) {\n return console.warn(t);\n });\n }\n },\n onScroll: function onScroll(t) {\n var e = t.target,\n i = e.scrollTop / (e.scrollHeight - e.parentNode.clientHeight) * 100;\n this.trigger(\"dropdown:scroll\", {\n percentage: Math.round(i)\n });\n }\n }\n },\n getSuggestionDataByNode: function getSuggestionDataByNode(t) {\n var e = t && t.getAttribute(\"value\");\n return this.suggestedListItems.find(function (t) {\n return t.value == e;\n }) || null;\n },\n getNextOrPrevOption: function getNextOrPrevOption(t) {\n var e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n var i = this.dropdown.getAllSuggestionsRefs(),\n s = i.findIndex(function (e) {\n return e === t;\n });\n return e ? i[s + 1] : i[s - 1];\n },\n highlightOption: function highlightOption(t, e) {\n var i,\n s = this.settings.classNames.dropdownItemActive;\n if (this.state.ddItemElm && (this.state.ddItemElm.classList.remove(s), this.state.ddItemElm.removeAttribute(\"aria-selected\")), !t) return this.state.ddItemData = null, this.state.ddItemElm = null, void this.input.autocomplete.suggest.call(this);\n i = this.dropdown.getSuggestionDataByNode(t), this.state.ddItemData = i, this.state.ddItemElm = t, t.classList.add(s), t.setAttribute(\"aria-selected\", !0), e && (t.parentNode.scrollTop = t.clientHeight + t.offsetTop - t.parentNode.clientHeight), this.settings.autoComplete && (this.input.autocomplete.suggest.call(this, i), this.dropdown.position());\n },\n selectOption: function selectOption(t, e) {\n var _this6 = this;\n\n var i = this.settings.dropdown,\n s = i.clearOnSelect,\n a = i.closeOnSelect;\n if (!t) return this.addTags(this.state.inputText, !0), void (a && this.dropdown.hide());\n e = e || {};\n var n = t.getAttribute(\"value\"),\n o = \"noMatch\" == n,\n r = this.suggestedListItems.find(function (t) {\n return (t.value || t) == n;\n });\n this.trigger(\"dropdown:select\", {\n data: r,\n elm: t,\n event: e\n }), n && (r || o) ? (this.state.editing ? this.onEditTagDone(null, g({\n __isValid: !0\n }, this.normalizeTags([r])[0])) : this[\"mix\" == this.settings.mode ? \"addMixTags\" : \"addTags\"]([r || this.input.raw.call(this)], s), this.DOM.input.parentNode && (setTimeout(function () {\n _this6.DOM.input.focus(), _this6.toggleFocusClass(!0);\n }), a && setTimeout(this.dropdown.hide.bind(this)), t.addEventListener(\"transitionend\", function () {\n _this6.dropdown.fillHeaderFooter(), setTimeout(function () {\n return t.remove();\n }, 100);\n }, {\n once: !0\n }), t.classList.add(this.settings.classNames.dropdownItemHidden))) : a && setTimeout(this.dropdown.hide.bind(this));\n },\n selectAll: function selectAll(t) {\n this.suggestedListItems.length = 0, this.dropdown.hide(), this.dropdown.filterListItems(\"\");\n var e = this.dropdown.filterListItems(\"\");\n return t || (e = this.state.dropdown.suggestions), this.addTags(e, !0), this;\n },\n filterListItems: function filterListItems(t, e) {\n var _this7 = this;\n\n var i,\n s,\n a,\n n,\n o,\n r = this.settings,\n l = r.dropdown,\n d = (e = e || {}, []),\n g = [],\n p = r.whitelist,\n u = l.maxItems >= 0 ? l.maxItems : 1 / 0,\n m = l.searchKeys,\n v = 0;\n if (!(t = \"select\" == r.mode && this.value.length && this.value[0][r.tagTextProp] == t ? \"\" : t) || !m.length) return d = l.includeSelectedTags ? p : p.filter(function (t) {\n return !_this7.isTagDuplicate(h(t) ? t.value : t);\n }), this.state.dropdown.suggestions = d, d.slice(0, u);\n\n function f(t, e) {\n return e.toLowerCase().split(\" \").every(function (e) {\n return t.includes(e.toLowerCase());\n });\n }\n\n for (o = l.caseSensitive ? \"\" + t : (\"\" + t).toLowerCase(); v < p.length; v++) {\n var _t3 = void 0,\n _r = void 0;\n\n i = p[v] instanceof Object ? p[v] : {\n value: p[v]\n };\n\n var _u = !Object.keys(i).some(function (t) {\n return m.includes(t);\n }) ? [\"value\"] : m;\n\n l.fuzzySearch && !e.exact ? (a = _u.reduce(function (t, e) {\n return t + \" \" + (i[e] || \"\");\n }, \"\").toLowerCase().trim(), l.accentedSearch && (a = c(a), o = c(o)), _t3 = 0 == a.indexOf(o), _r = a === o, s = f(a, o)) : (_t3 = !0, s = _u.some(function (t) {\n var s = \"\" + (i[t] || \"\");\n return l.accentedSearch && (s = c(s), o = c(o)), l.caseSensitive || (s = s.toLowerCase()), _r = s === o, e.exact ? s === o : 0 == s.indexOf(o);\n })), n = !l.includeSelectedTags && this.isTagDuplicate(h(i) ? i.value : i), s && !n && (_r && _t3 ? g.push(i) : \"startsWith\" == l.sortby && _t3 ? d.unshift(i) : d.push(i));\n }\n\n return this.state.dropdown.suggestions = g.concat(d), \"function\" == typeof l.sortby ? l.sortby(g.concat(d), o) : g.concat(d).slice(0, u);\n },\n getMappedValue: function getMappedValue(t) {\n var e = this.settings.dropdown.mapValueTo;\n return e ? \"function\" == typeof e ? e(t) : t[e] || t.value : t.value;\n },\n createListHTML: function createListHTML(t) {\n var _this8 = this;\n\n return g([], t).map(function (t, i) {\n \"string\" != typeof t && \"number\" != typeof t || (t = {\n value: t\n });\n\n var s = _this8.dropdown.getMappedValue(t);\n\n return s = \"string\" == typeof s ? d(s) : s, _this8.settings.templates.dropdownItem.apply(_this8, [e(e({}, t), {}, {\n mappedValue: s\n }), _this8]);\n }).join(\"\");\n }\n };\n var b = \"@yaireo/tagify/\";\n var y,\n x = {\n empty: \"empty\",\n exceed: \"number of tags exceeded\",\n pattern: \"pattern mismatch\",\n duplicate: \"already exists\",\n notAllowed: \"not allowed\"\n },\n D = {\n wrapper: function wrapper(t, e) {\n return \"\\n \\n ​\\n \");\n },\n tag: function tag(t, e) {\n var i = e.settings;\n return \"\\n \\n
\\n \").concat(t[i.tagTextProp] || t.value, \"\\n
\\n
\");\n },\n dropdown: function dropdown(t) {\n var e = t.dropdown,\n i = \"manual\" == e.position,\n s = \"\".concat(t.classNames.dropdown);\n return \"
\\n
\\n
\");\n },\n dropdownContent: function dropdownContent(t) {\n var e = this.settings,\n i = this.state.dropdown.suggestions;\n return \"\\n \".concat(e.templates.dropdownHeader.call(this, i), \"\\n \").concat(t, \"\\n \").concat(e.templates.dropdownFooter.call(this, i), \"\\n \");\n },\n dropdownItem: function dropdownItem(t) {\n return \"
\").concat(t.mappedValue || t.value, \"
\");\n },\n dropdownHeader: function dropdownHeader(t) {\n return \"
\");\n },\n dropdownFooter: function dropdownFooter(t) {\n var e = t.length - this.settings.dropdown.maxItems;\n return e > 0 ? \"
\\n \").concat(e, \" more items. Refine your search.\\n
\") : \"\";\n },\n dropdownItemNoMatch: null\n };\n var O = {\n customBinding: function customBinding() {\n var _this9 = this;\n\n this.customEventsList.forEach(function (t) {\n _this9.on(t, _this9.settings.callbacks[t]);\n });\n },\n binding: function binding() {\n var t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];\n var e,\n i = this.events.callbacks,\n s = t ? \"addEventListener\" : \"removeEventListener\";\n\n if (!this.state.mainEvents || !t) {\n for (var a in this.state.mainEvents = t, t && !this.listeners.main && (this.events.bindGlobal.call(this), this.settings.isJQueryPlugin && jQuery(this.DOM.originalInput).on(\"tagify.removeAllTags\", this.removeAllTags.bind(this))), e = this.listeners.main = this.listeners.main || {\n focus: [\"input\", i.onFocusBlur.bind(this)],\n keydown: [\"input\", i.onKeydown.bind(this)],\n click: [\"scope\", i.onClickScope.bind(this)],\n dblclick: [\"scope\", i.onDoubleClickScope.bind(this)],\n paste: [\"input\", i.onPaste.bind(this)],\n drop: [\"input\", i.onDrop.bind(this)]\n }) {\n this.DOM[e[a][0]][s](a, e[a][1]);\n }\n\n clearInterval(this.listeners.main.originalInputValueObserverInterval), this.listeners.main.originalInputValueObserverInterval = setInterval(i.observeOriginalInputValue.bind(this), 500);\n var n = this.listeners.main.inputMutationObserver || new MutationObserver(i.onInputDOMChange.bind(this));\n n && n.disconnect(), \"mix\" == this.settings.mode && n.observe(this.DOM.input, {\n childList: !0\n });\n }\n },\n bindGlobal: function bindGlobal(t) {\n var e,\n i = this.events.callbacks,\n s = t ? \"removeEventListener\" : \"addEventListener\";\n\n if (t || !this.listeners.global) {\n var _iterator3 = _createForOfIteratorHelper((this.listeners.global = this.listeners && this.listeners.global || [{\n type: this.isIE ? \"keydown\" : \"input\",\n target: this.DOM.input,\n cb: i[this.isIE ? \"onInputIE\" : \"onInput\"].bind(this)\n }, {\n type: \"keydown\",\n target: window,\n cb: i.onWindowKeyDown.bind(this)\n }, {\n type: \"blur\",\n target: this.DOM.input,\n cb: i.onFocusBlur.bind(this)\n }], this.listeners.global)),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n e = _step3.value;\n e.target[s](e.type, e.cb);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n },\n unbindGlobal: function unbindGlobal() {\n this.events.bindGlobal.call(this, !0);\n },\n callbacks: {\n onFocusBlur: function onFocusBlur(t) {\n var _this$value, _this$value$;\n\n var e = this.settings,\n i = t.target ? this.trim(t.target.textContent) : \"\",\n s = (_this$value = this.value) === null || _this$value === void 0 ? void 0 : (_this$value$ = _this$value[0]) === null || _this$value$ === void 0 ? void 0 : _this$value$[e.tagTextProp],\n a = t.type,\n n = e.dropdown.enabled >= 0,\n o = {\n relatedTarget: t.relatedTarget\n },\n r = this.state.actions.selectOption && (n || !e.dropdown.closeOnSelect),\n l = this.state.actions.addNew && n,\n d = t.relatedTarget && v.call(this, t.relatedTarget) && this.DOM.scope.contains(t.relatedTarget);\n\n if (\"blur\" == a) {\n if (t.relatedTarget === this.DOM.scope) return this.dropdown.hide(), void this.DOM.input.focus();\n this.postUpdate(), e.onChangeAfterBlur && this.triggerChangeEvent();\n }\n\n if (!r && !l) if (this.state.hasFocus = \"focus\" == a && +new Date(), this.toggleFocusClass(this.state.hasFocus), \"mix\" != e.mode) {\n if (\"focus\" == a) return this.trigger(\"focus\", o), void (0 !== e.dropdown.enabled && e.userInput || this.dropdown.show(this.value.length ? \"\" : void 0));\n \"blur\" == a && (this.trigger(\"blur\", o), this.loading(!1), \"select\" == e.mode && (d && (this.removeTags(), i = \"\"), s === i && (i = \"\")), i && !this.state.actions.selectOption && e.addTagOnBlur && this.addTags(i, !0)), this.DOM.input.removeAttribute(\"style\"), this.dropdown.hide();\n } else \"focus\" == a ? this.trigger(\"focus\", o) : \"blur\" == t.type && (this.trigger(\"blur\", o), this.loading(!1), this.dropdown.hide(), this.state.dropdown.visible = void 0, this.setStateSelection());\n },\n onWindowKeyDown: function onWindowKeyDown(t) {\n var e,\n i = document.activeElement;\n if (v.call(this, i) && this.DOM.scope.contains(document.activeElement)) switch (e = i.nextElementSibling, t.key) {\n case \"Backspace\":\n this.settings.readonly || (this.removeTags(i), (e || this.DOM.input).focus());\n break;\n\n case \"Enter\":\n setTimeout(this.editTag.bind(this), 0, i);\n }\n },\n onKeydown: function onKeydown(t) {\n var _this10 = this;\n\n var e = this.settings;\n \"select\" == e.mode && e.enforceWhitelist && this.value.length && \"Tab\" != t.key && t.preventDefault();\n var i = this.trim(t.target.textContent);\n\n if (this.trigger(\"keydown\", {\n event: t\n }), \"mix\" == e.mode) {\n switch (t.key) {\n case \"Left\":\n case \"ArrowLeft\":\n this.state.actions.ArrowLeft = !0;\n break;\n\n case \"Delete\":\n case \"Backspace\":\n if (this.state.editing) return;\n var s,\n a,\n n,\n r = document.getSelection(),\n d = \"Delete\" == t.key && r.anchorOffset == (r.anchorNode.length || 0),\n h = r.anchorNode.previousSibling,\n g = 1 == r.anchorNode.nodeType || !r.anchorOffset && h && 1 == h.nodeType && r.anchorNode.previousSibling,\n p = o(this.DOM.input.innerHTML),\n c = this.getTagElms();\n if (\"edit\" == e.backspace && g) return s = 1 == r.anchorNode.nodeType ? null : r.anchorNode.previousElementSibling, setTimeout(this.editTag.bind(this), 0, s), void t.preventDefault();\n if (u() && g) return n = l(g), g.hasAttribute(\"readonly\") || g.remove(), this.DOM.input.focus(), void setTimeout(function () {\n _this10.placeCaretAfterNode(n), _this10.DOM.input.click();\n });\n if (\"BR\" == r.anchorNode.nodeName) return;\n if ((d || g) && 1 == r.anchorNode.nodeType ? a = 0 == r.anchorOffset ? d ? c[0] : null : c[Math.min(c.length, r.anchorOffset) - 1] : d ? a = r.anchorNode.nextElementSibling : g && (a = g), 3 == r.anchorNode.nodeType && !r.anchorNode.nodeValue && r.anchorNode.previousElementSibling && t.preventDefault(), (g || d) && !e.backspace) return void t.preventDefault();\n if (\"Range\" != r.type && !r.anchorOffset && r.anchorNode == this.DOM.input && \"Delete\" != t.key) return void t.preventDefault();\n if (\"Range\" != r.type && a && a.hasAttribute(\"readonly\")) return void this.placeCaretAfterNode(l(a));\n clearTimeout(y), y = setTimeout(function () {\n var t = document.getSelection(),\n e = o(_this10.DOM.input.innerHTML),\n i = !d && t.anchorNode.previousSibling;\n if (e.length >= p.length && i) if (v.call(_this10, i) && !i.hasAttribute(\"readonly\")) {\n if (_this10.removeTags(i), _this10.fixFirefoxLastTagNoCaret(), 2 == _this10.DOM.input.children.length && \"BR\" == _this10.DOM.input.children[1].tagName) return _this10.DOM.input.innerHTML = \"\", _this10.value.length = 0, !0;\n } else i.remove();\n _this10.value = [].map.call(c, function (t, e) {\n var i = _this10.tagData(t);\n\n if (t.parentNode || i.readonly) return i;\n\n _this10.trigger(\"remove\", {\n tag: t,\n index: e,\n data: i\n });\n }).filter(function (t) {\n return t;\n });\n }, 20);\n }\n\n return !0;\n }\n\n switch (t.key) {\n case \"Backspace\":\n \"select\" == e.mode && e.enforceWhitelist && this.value.length ? this.removeTags() : this.state.dropdown.visible && \"manual\" != e.dropdown.position || \"\" != t.target.textContent && 8203 != i.charCodeAt(0) || (!0 === e.backspace ? this.removeTags() : \"edit\" == e.backspace && setTimeout(this.editTag.bind(this), 0));\n break;\n\n case \"Esc\":\n case \"Escape\":\n if (this.state.dropdown.visible) return;\n t.target.blur();\n break;\n\n case \"Down\":\n case \"ArrowDown\":\n this.state.dropdown.visible || this.dropdown.show();\n break;\n\n case \"ArrowRight\":\n {\n var _t4 = this.state.inputSuggestion || this.state.ddItemData;\n\n if (_t4 && e.autoComplete.rightKey) return void this.addTags([_t4], !0);\n break;\n }\n\n case \"Tab\":\n {\n var _s3 = \"select\" == e.mode;\n\n if (!i || _s3) return !0;\n t.preventDefault();\n }\n\n case \"Enter\":\n if (this.state.dropdown.visible || 229 == t.keyCode) return;\n t.preventDefault(), setTimeout(function () {\n _this10.state.actions.selectOption || _this10.addTags(i, !0);\n });\n }\n },\n onInput: function onInput(t) {\n this.postUpdate();\n var e = this.settings;\n if (\"mix\" == e.mode) return this.events.callbacks.onMixTagsInput.call(this, t);\n var i = this.input.normalize.call(this),\n s = i.length >= e.dropdown.enabled,\n a = {\n value: i,\n inputElm: this.DOM.input\n },\n n = this.validateTag({\n value: i\n });\n \"select\" == e.mode && this.toggleScopeValidation(n), a.isValid = n, this.state.inputText != i && (this.input.set.call(this, i, !1), -1 != i.search(e.delimiters) ? this.addTags(i) && this.input.set.call(this) : e.dropdown.enabled >= 0 && this.dropdown[s ? \"show\" : \"hide\"](i), this.trigger(\"input\", a));\n },\n onMixTagsInput: function onMixTagsInput(t) {\n var _this11 = this;\n\n var e,\n i,\n s,\n a,\n n,\n o,\n r,\n l,\n d = this.settings,\n h = this.value.length,\n p = this.getTagElms(),\n c = document.createDocumentFragment(),\n m = window.getSelection().getRangeAt(0),\n v = [].map.call(p, function (t) {\n return _this11.tagData(t).value;\n });\n if (\"deleteContentBackward\" == t.inputType && u() && this.events.callbacks.onKeydown.call(this, {\n target: t.target,\n key: \"Backspace\"\n }), this.value.slice().forEach(function (t) {\n t.readonly && !v.includes(t.value) && c.appendChild(_this11.createTagElem(t));\n }), c.childNodes.length && (m.insertNode(c), this.setRangeAtStartEnd(!1, c.lastChild)), p.length != h) return this.value = [].map.call(this.getTagElms(), function (t) {\n return _this11.tagData(t);\n }), void this.update({\n withoutChangeEvent: !0\n });\n if (this.hasMaxTags()) return !0;\n\n if (window.getSelection && (o = window.getSelection()).rangeCount > 0 && 3 == o.anchorNode.nodeType) {\n if ((m = o.getRangeAt(0).cloneRange()).collapse(!0), m.setStart(o.focusNode, 0), s = (e = m.toString().slice(0, m.endOffset)).split(d.pattern).length - 1, (i = e.match(d.pattern)) && (a = e.slice(e.lastIndexOf(i[i.length - 1]))), a) {\n if (this.state.actions.ArrowLeft = !1, this.state.tag = {\n prefix: a.match(d.pattern)[0],\n value: a.replace(d.pattern, \"\")\n }, this.state.tag.baseOffset = o.baseOffset - this.state.tag.value.length, l = this.state.tag.value.match(d.delimiters)) return this.state.tag.value = this.state.tag.value.replace(d.delimiters, \"\"), this.state.tag.delimiters = l[0], this.addTags(this.state.tag.value, d.dropdown.clearOnSelect), void this.dropdown.hide();\n n = this.state.tag.value.length >= d.dropdown.enabled;\n\n try {\n r = (r = this.state.flaggedTags[this.state.tag.baseOffset]).prefix == this.state.tag.prefix && r.value[0] == this.state.tag.value[0], this.state.flaggedTags[this.state.tag.baseOffset] && !this.state.tag.value && delete this.state.flaggedTags[this.state.tag.baseOffset];\n } catch (t) {}\n\n (r || s < this.state.mixMode.matchedPatternCount) && (n = !1);\n } else this.state.flaggedTags = {};\n\n this.state.mixMode.matchedPatternCount = s;\n }\n\n setTimeout(function () {\n _this11.update({\n withoutChangeEvent: !0\n }), _this11.trigger(\"input\", g({}, _this11.state.tag, {\n textContent: _this11.DOM.input.textContent\n })), _this11.state.tag && _this11.dropdown[n ? \"show\" : \"hide\"](_this11.state.tag.value);\n }, 10);\n },\n onInputIE: function onInputIE(t) {\n var e = this;\n setTimeout(function () {\n e.events.callbacks.onInput.call(e, t);\n });\n },\n observeOriginalInputValue: function observeOriginalInputValue() {\n this.DOM.originalInput.parentNode || this.destroy(), this.DOM.originalInput.value != this.DOM.originalInput.tagifyValue && this.loadOriginalValues();\n },\n onClickScope: function onClickScope(t) {\n var e = this.settings,\n i = t.target.closest(\".\" + e.classNames.tag),\n s = +new Date() - this.state.hasFocus;\n\n if (t.target != this.DOM.scope) {\n if (!t.target.classList.contains(e.classNames.tagX)) return i ? (this.trigger(\"click\", {\n tag: i,\n index: this.getNodeIndex(i),\n data: this.tagData(i),\n event: t\n }), void (1 !== e.editTags && 1 !== e.editTags.clicks || this.events.callbacks.onDoubleClickScope.call(this, t))) : void (t.target == this.DOM.input && (\"mix\" == e.mode && this.fixFirefoxLastTagNoCaret(), s > 500) ? this.state.dropdown.visible ? this.dropdown.hide() : 0 === e.dropdown.enabled && \"mix\" != e.mode && this.dropdown.show(this.value.length ? \"\" : void 0) : \"select\" == e.mode && !this.state.dropdown.visible && this.dropdown.show());\n this.removeTags(t.target.parentNode);\n } else this.state.hasFocus || this.DOM.input.focus();\n },\n onPaste: function onPaste(t) {\n var _this12 = this;\n\n t.preventDefault();\n var e,\n i,\n s = this.settings;\n if (\"select\" == s.mode && s.enforceWhitelist || !s.userInput) return !1;\n s.readonly || (e = t.clipboardData || window.clipboardData, i = e.getData(\"Text\"), s.hooks.beforePaste(t, {\n tagify: this,\n pastedText: i,\n clipboardData: e\n }).then(function (e) {\n void 0 === e && (e = i), e && (_this12.injectAtCaret(e, window.getSelection().getRangeAt(0)), \"mix\" == _this12.settings.mode ? _this12.events.callbacks.onMixTagsInput.call(_this12, t) : _this12.settings.pasteAsTags ? _this12.addTags(_this12.state.inputText + e, !0) : _this12.state.inputText = e);\n })[\"catch\"](function (t) {\n return t;\n }));\n },\n onDrop: function onDrop(t) {\n t.preventDefault();\n },\n onEditTagInput: function onEditTagInput(t, e) {\n var _o;\n\n var i = t.closest(\".\" + this.settings.classNames.tag),\n s = this.getNodeIndex(i),\n a = this.tagData(i),\n n = this.input.normalize.call(this, t),\n o = (_o = {}, _defineProperty(_o, this.settings.tagTextProp, n), _defineProperty(_o, \"__tagId\", a.__tagId), _o),\n r = this.validateTag(o);\n this.editTagChangeDetected(g(a, o)) || !0 !== t.originalIsValid || (r = !0), i.classList.toggle(this.settings.classNames.tagInvalid, !0 !== r), a.__isValid = r, i.title = !0 === r ? a.title || a.value : r, n.length >= this.settings.dropdown.enabled && (this.state.editing && (this.state.editing.value = n), this.dropdown.show(n)), this.trigger(\"edit:input\", {\n tag: i,\n index: s,\n data: g({}, this.value[s], {\n newValue: n\n }),\n event: e\n });\n },\n onEditTagFocus: function onEditTagFocus(t) {\n this.state.editing = {\n scope: t,\n input: t.querySelector(\"[contenteditable]\")\n };\n },\n onEditTagBlur: function onEditTagBlur(t) {\n if (this.state.hasFocus || this.toggleFocusClass(), this.DOM.scope.contains(t)) {\n var _this$validateTag;\n\n var e,\n i,\n s = this.settings,\n a = t.closest(\".\" + s.classNames.tag),\n n = this.input.normalize.call(this, t),\n o = this.tagData(a),\n r = o.__originalData,\n l = this.editTagChangeDetected(o),\n d = this.validateTag((_this$validateTag = {}, _defineProperty(_this$validateTag, s.tagTextProp, n), _defineProperty(_this$validateTag, \"__tagId\", o.__tagId), _this$validateTag));\n if (n) {\n if (l) {\n var _g;\n\n if (e = this.hasMaxTags(), i = g({}, r, (_g = {}, _defineProperty(_g, s.tagTextProp, this.trim(n)), _defineProperty(_g, \"__isValid\", d), _g)), s.transformTag.call(this, i, r), !0 !== (d = (!e || !0 === r.__isValid) && this.validateTag(i))) {\n if (this.trigger(\"invalid\", {\n data: i,\n tag: a,\n message: d\n }), s.editTags.keepInvalid) return;\n s.keepInvalidTags ? i.__isValid = d : i = r;\n } else s.keepInvalidTags && (delete i.title, delete i[\"aria-invalid\"], delete i[\"class\"]);\n\n this.onEditTagDone(a, i);\n } else this.onEditTagDone(a, r);\n } else this.onEditTagDone(a);\n }\n },\n onEditTagkeydown: function onEditTagkeydown(t, e) {\n switch (this.trigger(\"edit:keydown\", {\n event: t\n }), t.key) {\n case \"Esc\":\n case \"Escape\":\n e.parentNode.replaceChild(e.__tagifyTagData.__originalHTML, e), this.state.editing = !1;\n\n case \"Enter\":\n case \"Tab\":\n t.preventDefault(), t.target.blur();\n }\n },\n onDoubleClickScope: function onDoubleClickScope(t) {\n var e,\n i,\n s = t.target.closest(\".\" + this.settings.classNames.tag),\n a = this.tagData(s),\n n = this.settings;\n s && n.userInput && !1 !== a.editable && (e = s.classList.contains(this.settings.classNames.tagEditing), i = s.hasAttribute(\"readonly\"), \"select\" == n.mode || n.readonly || e || i || !this.settings.editTags || this.editTag(s), this.toggleFocusClass(!0), this.trigger(\"dblclick\", {\n tag: s,\n index: this.getNodeIndex(s),\n data: this.tagData(s)\n }));\n },\n onInputDOMChange: function onInputDOMChange(t) {\n var _this13 = this;\n\n t.forEach(function (t) {\n t.addedNodes.forEach(function (t) {\n var _t$previousSibling;\n\n if (\"

\" == t.outerHTML) t.replaceWith(document.createElement(\"br\"));else if (1 == t.nodeType && t.querySelector(_this13.settings.classNames.tagSelector)) {\n var _e = document.createTextNode(\"\");\n\n 3 == t.childNodes[0].nodeType && \"BR\" != t.previousSibling.nodeName && (_e = document.createTextNode(\"\\n\")), t.replaceWith.apply(t, [_e].concat(_toConsumableArray(_toConsumableArray(t.childNodes).slice(0, -1)))), _this13.placeCaretAfterNode(_e);\n } else if (v.call(_this13, t) && (3 != ((_t$previousSibling = t.previousSibling) === null || _t$previousSibling === void 0 ? void 0 : _t$previousSibling.nodeType) || t.previousSibling.textContent || t.previousSibling.remove(), t.previousSibling && \"BR\" == t.previousSibling.nodeName)) {\n t.previousSibling.replaceWith(\"\\n​\");\n var _e2 = t.nextSibling,\n _i2 = \"\";\n\n for (; _e2;) {\n _i2 += _e2.textContent, _e2 = _e2.nextSibling;\n }\n\n _i2.trim() && _this13.placeCaretAfterNode(t.previousSibling);\n }\n }), t.removedNodes.forEach(function (t) {\n t && \"BR\" == t.nodeName && v.call(_this13, e) && (_this13.removeTags(e), _this13.fixFirefoxLastTagNoCaret());\n });\n });\n var e = this.DOM.input.lastChild;\n e && \"\" == e.nodeValue && e.remove(), e && \"BR\" == e.nodeName || this.DOM.input.appendChild(document.createElement(\"br\"));\n }\n }\n };\n\n function M(t, e) {\n if (!t) {\n console.warn(\"Tagify:\", \"input element not found\", t);\n\n var _e3 = new Proxy(this, {\n get: function get() {\n return function () {\n return _e3;\n };\n }\n });\n\n return _e3;\n }\n\n if (t.__tagify) return console.warn(\"Tagify: \", \"input element is already Tagified - Same instance is returned.\", t), t.__tagify;\n var i;\n g(this, function (t) {\n var e = document.createTextNode(\"\");\n\n function i(t, i, s) {\n s && i.split(/\\s+/g).forEach(function (i) {\n return e[t + \"EventListener\"].call(e, i, s);\n });\n }\n\n return {\n off: function off(t, e) {\n return i(\"remove\", t, e), this;\n },\n on: function on(t, e) {\n return e && \"function\" == typeof e && i(\"add\", t, e), this;\n },\n trigger: function trigger(i, s, a) {\n var n;\n if (a = a || {\n cloneData: !0\n }, i) if (t.settings.isJQueryPlugin) \"remove\" == i && (i = \"removeTag\"), jQuery(t.DOM.originalInput).triggerHandler(i, [s]);else {\n try {\n var o = \"object\" == _typeof(s) ? s : {\n value: s\n };\n if ((o = a.cloneData ? g({}, o) : o).tagify = this, s.event && (o.event = this.cloneEvent(s.event)), s instanceof Object) for (var r in s) {\n s[r] instanceof HTMLElement && (o[r] = s[r]);\n }\n n = new CustomEvent(i, {\n detail: o\n });\n } catch (t) {\n console.warn(t);\n }\n\n e.dispatchEvent(n);\n }\n }\n };\n }(this)), this.isFirefox = \"undefined\" != typeof InstallTrigger, this.isIE = window.document.documentMode, e = e || {}, this.getPersistedData = (i = e.id, function (t) {\n var e,\n s = \"/\" + t;\n if (1 == localStorage.getItem(b + i + \"/v\", 1)) try {\n e = JSON.parse(localStorage[b + i + s]);\n } catch (t) {}\n return e;\n }), this.setPersistedData = function (t) {\n return t ? (localStorage.setItem(b + t + \"/v\", 1), function (e, i) {\n var s = \"/\" + i,\n a = JSON.stringify(e);\n e && i && (localStorage.setItem(b + t + s, a), dispatchEvent(new Event(\"storage\")));\n }) : function () {};\n }(e.id), this.clearPersistedData = function (t) {\n return function (e) {\n var i = b + \"/\" + t + \"/\";\n if (e) localStorage.removeItem(i + e);else for (var _t5 in localStorage) {\n _t5.includes(i) && localStorage.removeItem(_t5);\n }\n };\n }(e.id), this.applySettings(t, e), this.state = {\n inputText: \"\",\n editing: !1,\n actions: {},\n mixMode: {},\n dropdown: {},\n flaggedTags: {}\n }, this.value = [], this.listeners = {}, this.DOM = {}, this.build(t), T.call(this), this.getCSSVars(), this.loadOriginalValues(), this.events.customBinding.call(this), this.events.binding.call(this), t.autofocus && this.DOM.input.focus(), t.__tagify = this;\n }\n\n return M.prototype = {\n _dropdown: w,\n helpers: {\n sameStr: s,\n removeCollectionProp: a,\n omit: n,\n isObject: h,\n parseHTML: r,\n escapeHTML: d,\n extend: g,\n concatWithoutDups: p,\n getUID: m,\n isNodeTag: v\n },\n customEventsList: [\"change\", \"add\", \"remove\", \"invalid\", \"input\", \"click\", \"keydown\", \"focus\", \"blur\", \"edit:input\", \"edit:beforeUpdate\", \"edit:updated\", \"edit:start\", \"edit:keydown\", \"dropdown:show\", \"dropdown:hide\", \"dropdown:select\", \"dropdown:updated\", \"dropdown:noMatch\", \"dropdown:scroll\"],\n dataProps: [\"__isValid\", \"__removed\", \"__originalData\", \"__originalHTML\", \"__tagId\"],\n trim: function trim(t) {\n return this.settings.trim && t && \"string\" == typeof t ? t.trim() : t;\n },\n parseHTML: r,\n templates: D,\n parseTemplate: function parseTemplate(t, e) {\n return t = this.settings.templates[t] || t, this.parseHTML(t.apply(this, e));\n },\n\n set whitelist(t) {\n var e = t && Array.isArray(t);\n this.settings.whitelist = e ? t : [], this.setPersistedData(e ? t : [], \"whitelist\");\n },\n\n get whitelist() {\n return this.settings.whitelist;\n },\n\n generateClassSelectors: function generateClassSelectors(t) {\n var _loop = function _loop(_e4) {\n var i = _e4;\n Object.defineProperty(t, i + \"Selector\", {\n get: function get() {\n return \".\" + this[i].split(\" \")[0];\n }\n });\n };\n\n for (var _e4 in t) {\n _loop(_e4);\n }\n },\n applySettings: function applySettings(t, i) {\n f.templates = this.templates;\n var s = this.settings = g({}, f, i);\n if (s.disabled = t.hasAttribute(\"disabled\"), s.readonly = s.readonly || t.hasAttribute(\"readonly\"), s.placeholder = d(t.getAttribute(\"placeholder\") || s.placeholder || \"\"), s.required = t.hasAttribute(\"required\"), this.generateClassSelectors(s.classNames), void 0 === s.dropdown.includeSelectedTags && (s.dropdown.includeSelectedTags = s.duplicates), this.isIE && (s.autoComplete = !1), [\"whitelist\", \"blacklist\"].forEach(function (e) {\n var i = t.getAttribute(\"data-\" + e);\n i && (i = i.split(s.delimiters)) instanceof Array && (s[e] = i);\n }), \"autoComplete\" in i && !h(i.autoComplete) && (s.autoComplete = f.autoComplete, s.autoComplete.enabled = i.autoComplete), \"mix\" == s.mode && (s.autoComplete.rightKey = !0, s.delimiters = i.delimiters || null, s.tagTextProp && !s.dropdown.searchKeys.includes(s.tagTextProp) && s.dropdown.searchKeys.push(s.tagTextProp)), t.pattern) try {\n s.pattern = new RegExp(t.pattern);\n } catch (t) {}\n\n if (s.delimiters) {\n s._delimiters = s.delimiters;\n\n try {\n s.delimiters = new RegExp(this.settings.delimiters, \"g\");\n } catch (t) {}\n }\n\n s.disabled && (s.userInput = !1), this.TEXTS = e(e({}, x), s.texts || {}), \"select\" != s.mode && s.userInput || (s.dropdown.enabled = 0), s.dropdown.appendTarget = i.dropdown && i.dropdown.appendTarget ? i.dropdown.appendTarget : document.body;\n var a = this.getPersistedData(\"whitelist\");\n Array.isArray(a) && (this.whitelist = Array.isArray(s.whitelist) ? p(s.whitelist, a) : a);\n },\n getAttributes: function getAttributes(t) {\n var e,\n i = this.getCustomAttributes(t),\n s = \"\";\n\n for (e in i) {\n s += \" \" + e + (void 0 !== t[e] ? \"=\\\"\".concat(i[e], \"\\\"\") : \"\");\n }\n\n return s;\n },\n getCustomAttributes: function getCustomAttributes(t) {\n if (!h(t)) return \"\";\n var e,\n i = {};\n\n for (e in t) {\n \"__\" != e.slice(0, 2) && \"class\" != e && t.hasOwnProperty(e) && void 0 !== t[e] && (i[e] = d(t[e]));\n }\n\n return i;\n },\n setStateSelection: function setStateSelection() {\n var t = window.getSelection(),\n e = {\n anchorOffset: t.anchorOffset,\n anchorNode: t.anchorNode,\n range: t.getRangeAt && t.rangeCount && t.getRangeAt(0)\n };\n return this.state.selection = e, e;\n },\n getCaretGlobalPosition: function getCaretGlobalPosition() {\n var t = document.getSelection();\n\n if (t.rangeCount) {\n var _e5 = t.getRangeAt(0),\n _i3 = _e5.startContainer,\n _s4 = _e5.startOffset;\n\n var _a, _n;\n\n if (_s4 > 0) return _n = document.createRange(), _n.setStart(_i3, _s4 - 1), _n.setEnd(_i3, _s4), _a = _n.getBoundingClientRect(), {\n left: _a.right,\n top: _a.top,\n bottom: _a.bottom\n };\n if (_i3.getBoundingClientRect) return _i3.getBoundingClientRect();\n }\n\n return {\n left: -9999,\n top: -9999\n };\n },\n getCSSVars: function getCSSVars() {\n var t = getComputedStyle(this.DOM.scope, null);\n var e;\n this.CSSVars = {\n tagHideTransition: function (t) {\n var e = t.value;\n return \"s\" == t.unit ? 1e3 * e : e;\n }(function (t) {\n if (!t) return {};\n var e = (t = t.trim().split(\" \")[0]).split(/\\d+/g).filter(function (t) {\n return t;\n }).pop().trim();\n return {\n value: +t.split(e).filter(function (t) {\n return t;\n })[0].trim(),\n unit: e\n };\n }((e = \"tag-hide-transition\", t.getPropertyValue(\"--\" + e))))\n };\n },\n build: function build(t) {\n var e = this.DOM;\n this.settings.mixMode.integrated ? (e.originalInput = null, e.scope = t, e.input = t) : (e.originalInput = t, e.originalInput_tabIndex = t.tabIndex, e.scope = this.parseTemplate(\"wrapper\", [t, this.settings]), e.input = e.scope.querySelector(this.settings.classNames.inputSelector), t.parentNode.insertBefore(e.scope, t), t.tabIndex = -1);\n },\n destroy: function destroy() {\n this.events.unbindGlobal.call(this), this.DOM.scope.parentNode.removeChild(this.DOM.scope), this.DOM.originalInput.tabIndex = this.DOM.originalInput_tabIndex, delete this.DOM.originalInput.__tagify, this.dropdown.hide(!0), clearTimeout(this.dropdownHide__bindEventsTimeout), clearInterval(this.listeners.main.originalInputValueObserverInterval);\n },\n loadOriginalValues: function loadOriginalValues(t) {\n var e,\n i = this.settings;\n\n if (this.state.blockChangeEvent = !0, void 0 === t) {\n var _e6 = this.getPersistedData(\"value\");\n\n t = _e6 && !this.DOM.originalInput.value ? _e6 : i.mixMode.integrated ? this.DOM.input.textContent : this.DOM.originalInput.value;\n }\n\n if (this.removeAllTags(), t) {\n if (\"mix\" == i.mode) this.parseMixTags(this.trim(t)), (e = this.DOM.input.lastChild) && \"BR\" == e.tagName || this.DOM.input.insertAdjacentHTML(\"beforeend\", \"
\");else {\n try {\n JSON.parse(t) instanceof Array && (t = JSON.parse(t));\n } catch (t) {}\n\n this.addTags(t, !0).forEach(function (t) {\n return t && t.classList.add(i.classNames.tagNoAnimation);\n });\n }\n } else this.postUpdate();\n this.state.lastOriginalValueReported = i.mixMode.integrated ? \"\" : this.DOM.originalInput.value, this.state.blockChangeEvent = !1;\n },\n cloneEvent: function cloneEvent(t) {\n var e = {};\n\n for (var i in t) {\n \"path\" != i && (e[i] = t[i]);\n }\n\n return e;\n },\n loading: function loading(t) {\n return this.state.isLoading = t, this.DOM.scope.classList[t ? \"add\" : \"remove\"](this.settings.classNames.scopeLoading), this;\n },\n tagLoading: function tagLoading(t, e) {\n return t && t.classList[e ? \"add\" : \"remove\"](this.settings.classNames.tagLoading), this;\n },\n toggleClass: function toggleClass(t, e) {\n \"string\" == typeof t && this.DOM.scope.classList.toggle(t, e);\n },\n toggleScopeValidation: function toggleScopeValidation(t) {\n var e = !0 === t || void 0 === t;\n !this.settings.required && t && t === this.TEXTS.empty && (e = !0), this.toggleClass(this.settings.classNames.tagInvalid, !e), this.DOM.scope.title = e ? \"\" : t;\n },\n toggleFocusClass: function toggleFocusClass(t) {\n this.toggleClass(this.settings.classNames.focus, !!t);\n },\n triggerChangeEvent: function triggerChangeEvent() {\n if (!this.settings.mixMode.integrated) {\n var t = this.DOM.originalInput,\n e = this.state.lastOriginalValueReported !== t.value,\n i = new CustomEvent(\"change\", {\n bubbles: !0\n });\n e && (this.state.lastOriginalValueReported = t.value, i.simulated = !0, t._valueTracker && t._valueTracker.setValue(Math.random()), t.dispatchEvent(i), this.trigger(\"change\", this.state.lastOriginalValueReported), t.value = this.state.lastOriginalValueReported);\n }\n },\n events: O,\n fixFirefoxLastTagNoCaret: function fixFirefoxLastTagNoCaret() {},\n placeCaretAfterNode: function placeCaretAfterNode(t) {\n if (t && t.parentNode) {\n var e = t,\n i = window.getSelection(),\n s = i.getRangeAt(0);\n i.rangeCount && (s.setStartAfter(e || t), s.collapse(!0), i.removeAllRanges(), i.addRange(s));\n }\n },\n insertAfterTag: function insertAfterTag(t, e) {\n if (e = e || this.settings.mixMode.insertAfterTag, t && t.parentNode && e) return e = \"string\" == typeof e ? document.createTextNode(e) : e, t.parentNode.insertBefore(e, t.nextSibling), e;\n },\n editTagChangeDetected: function editTagChangeDetected(t) {\n var e = t.__originalData;\n\n for (var i in e) {\n if (!this.dataProps.includes(i) && t[i] != e[i]) return !0;\n }\n\n return !1;\n },\n getTagTextNode: function getTagTextNode(t) {\n return t.querySelector(this.settings.classNames.tagTextSelector);\n },\n setTagTextNode: function setTagTextNode(t, e) {\n this.getTagTextNode(t).innerHTML = d(e);\n },\n editTag: function editTag(t, e) {\n var _this14 = this;\n\n t = t || this.getLastTag(), e = e || {}, this.dropdown.hide();\n var i = this.settings,\n s = this.getTagTextNode(t),\n a = this.getNodeIndex(t),\n n = this.tagData(t),\n o = this.events.callbacks,\n r = this,\n l = !0;\n\n if (s) {\n if (!(n instanceof Object && \"editable\" in n) || n.editable) return n = this.tagData(t, {\n __originalData: g({}, n),\n __originalHTML: t.cloneNode(!0)\n }), this.tagData(n.__originalHTML, n.__originalData), s.setAttribute(\"contenteditable\", !0), t.classList.add(i.classNames.tagEditing), s.addEventListener(\"focus\", o.onEditTagFocus.bind(this, t)), s.addEventListener(\"blur\", function () {\n setTimeout(function () {\n return o.onEditTagBlur.call(r, r.getTagTextNode(t));\n });\n }), s.addEventListener(\"input\", o.onEditTagInput.bind(this, s)), s.addEventListener(\"keydown\", function (e) {\n return o.onEditTagkeydown.call(_this14, e, t);\n }), e.skipValidation || (l = this.editTagToggleValidity(t)), s.originalIsValid = l, this.trigger(\"edit:start\", {\n tag: t,\n index: a,\n data: n,\n isValid: l\n }), s.focus(), this.setRangeAtStartEnd(!1, s), this;\n } else console.warn(\"Cannot find element in Tag template: .\", i.classNames.tagTextSelector);\n },\n editTagToggleValidity: function editTagToggleValidity(t, e) {\n var i;\n if (e = e || this.tagData(t)) return (i = !(\"__isValid\" in e) || !0 === e.__isValid) || this.removeTagsFromValue(t), this.update(), t.classList.toggle(this.settings.classNames.tagNotAllowed, !i), e.__isValid;\n console.warn(\"tag has no data: \", t, e);\n },\n onEditTagDone: function onEditTagDone(t, e) {\n e = e || {};\n var i = {\n tag: t = t || this.state.editing.scope,\n index: this.getNodeIndex(t),\n previousData: this.tagData(t),\n data: e\n };\n this.trigger(\"edit:beforeUpdate\", i, {\n cloneData: !1\n }), this.state.editing = !1, delete e.__originalData, delete e.__originalHTML, t && e[this.settings.tagTextProp] ? (t = this.replaceTag(t, e), this.editTagToggleValidity(t, e), this.settings.a11y.focusableTags ? t.focus() : this.placeCaretAfterNode(t)) : t && this.removeTags(t), this.trigger(\"edit:updated\", i), this.dropdown.hide(), this.settings.keepInvalidTags && this.reCheckInvalidTags();\n },\n replaceTag: function replaceTag(t, e) {\n e && e.value || (e = t.__tagifyTagData), e.__isValid && 1 != e.__isValid && g(e, this.getInvalidTagAttrs(e, e.__isValid));\n var i = this.createTagElem(e);\n return t.parentNode.replaceChild(i, t), this.updateValueByDOMTags(), i;\n },\n updateValueByDOMTags: function updateValueByDOMTags() {\n var _this15 = this;\n\n this.value.length = 0, [].forEach.call(this.getTagElms(), function (t) {\n t.classList.contains(_this15.settings.classNames.tagNotAllowed.split(\" \")[0]) || _this15.value.push(_this15.tagData(t));\n }), this.update();\n },\n setRangeAtStartEnd: function setRangeAtStartEnd(t, e) {\n t = \"number\" == typeof t ? t : !!t, e = (e = e || this.DOM.input).lastChild || e;\n var i = document.getSelection();\n\n try {\n i.rangeCount >= 1 && [\"Start\", \"End\"].forEach(function (s) {\n return i.getRangeAt(0)[\"set\" + s](e, t || e.length);\n });\n } catch (t) {}\n },\n injectAtCaret: function injectAtCaret(t, e) {\n var _this$state$selection;\n\n return !(e = e || ((_this$state$selection = this.state.selection) === null || _this$state$selection === void 0 ? void 0 : _this$state$selection.range)) && t ? (this.appendMixTags(t), this) : (\"string\" == typeof t && (t = document.createTextNode(t)), e.deleteContents(), e.insertNode(t), this.setRangeAtStartEnd(!1, t), this.updateValueByDOMTags(), this.update(), this);\n },\n input: {\n set: function set() {\n var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : \"\",\n e = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n var i = this.settings.dropdown.closeOnSelect;\n this.state.inputText = t, e && (this.DOM.input.innerHTML = d(\"\" + t)), !t && i && this.dropdown.hide.bind(this), this.input.autocomplete.suggest.call(this), this.input.validate.call(this);\n },\n raw: function raw() {\n return this.DOM.input.textContent;\n },\n validate: function validate() {\n var t = !this.state.inputText || !0 === this.validateTag({\n value: this.state.inputText\n });\n return this.DOM.input.classList.toggle(this.settings.classNames.inputInvalid, !t), t;\n },\n normalize: function normalize(t) {\n var e = t || this.DOM.input,\n i = [];\n e.childNodes.forEach(function (t) {\n return 3 == t.nodeType && i.push(t.nodeValue);\n }), i = i.join(\"\\n\");\n\n try {\n i = i.replace(/(?:\\r\\n|\\r|\\n)/g, this.settings.delimiters.source.charAt(0));\n } catch (t) {}\n\n return i = i.replace(/\\s/g, \" \"), this.trim(i);\n },\n autocomplete: {\n suggest: function suggest(t) {\n if (this.settings.autoComplete.enabled) {\n \"string\" == typeof (t = t || {}) && (t = {\n value: t\n });\n var e = t.value ? \"\" + t.value : \"\",\n i = e.substr(0, this.state.inputText.length).toLowerCase(),\n s = e.substring(this.state.inputText.length);\n e && this.state.inputText && i == this.state.inputText.toLowerCase() ? (this.DOM.input.setAttribute(\"data-suggest\", s), this.state.inputSuggestion = t) : (this.DOM.input.removeAttribute(\"data-suggest\"), delete this.state.inputSuggestion);\n }\n },\n set: function set(t) {\n var e = this.DOM.input.getAttribute(\"data-suggest\"),\n i = t || (e ? this.state.inputText + e : null);\n return !!i && (\"mix\" == this.settings.mode ? this.replaceTextWithNode(document.createTextNode(this.state.tag.prefix + i)) : (this.input.set.call(this, i), this.setRangeAtStartEnd()), this.input.autocomplete.suggest.call(this), this.dropdown.hide(), !0);\n }\n }\n },\n getTagIdx: function getTagIdx(t) {\n return this.value.findIndex(function (e) {\n return e.__tagId == (t || {}).__tagId;\n });\n },\n getNodeIndex: function getNodeIndex(t) {\n var e = 0;\n if (t) for (; t = t.previousElementSibling;) {\n e++;\n }\n return e;\n },\n getTagElms: function getTagElms() {\n for (var t = arguments.length, e = new Array(t), i = 0; i < t; i++) {\n e[i] = arguments[i];\n }\n\n var s = \".\" + [].concat(_toConsumableArray(this.settings.classNames.tag.split(\" \")), e).join(\".\");\n return [].slice.call(this.DOM.scope.querySelectorAll(s));\n },\n getLastTag: function getLastTag() {\n var t = this.DOM.scope.querySelectorAll(\"\".concat(this.settings.classNames.tagSelector, \":not(.\").concat(this.settings.classNames.tagHide, \"):not([readonly])\"));\n return t[t.length - 1];\n },\n tagData: function tagData(t, e, i) {\n return t ? (e && (t.__tagifyTagData = i ? e : g({}, t.__tagifyTagData || {}, e)), t.__tagifyTagData) : (console.warn(\"tag element doesn't exist\", t, e), e);\n },\n isTagDuplicate: function isTagDuplicate(t, e, i) {\n var a = 0;\n if (\"select\" == this.settings.mode) return !1;\n\n var _iterator4 = _createForOfIteratorHelper(this.value),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var _n2 = _step4.value;\n s(this.trim(\"\" + t), _n2.value, e) && i != _n2.__tagId && a++;\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n\n return a;\n },\n getTagIndexByValue: function getTagIndexByValue(t) {\n var _this16 = this;\n\n var e = [];\n return this.getTagElms().forEach(function (i, a) {\n s(_this16.trim(i.textContent), t, _this16.settings.dropdown.caseSensitive) && e.push(a);\n }), e;\n },\n getTagElmByValue: function getTagElmByValue(t) {\n var e = this.getTagIndexByValue(t)[0];\n return this.getTagElms()[e];\n },\n flashTag: function flashTag(t) {\n var _this17 = this;\n\n t && (t.classList.add(this.settings.classNames.tagFlash), setTimeout(function () {\n t.classList.remove(_this17.settings.classNames.tagFlash);\n }, 100));\n },\n isTagBlacklisted: function isTagBlacklisted(t) {\n return t = this.trim(t.toLowerCase()), this.settings.blacklist.filter(function (e) {\n return (\"\" + e).toLowerCase() == t;\n }).length;\n },\n isTagWhitelisted: function isTagWhitelisted(t) {\n return !!this.getWhitelistItem(t);\n },\n getWhitelistItem: function getWhitelistItem(t, e, i) {\n e = e || \"value\";\n var a,\n n = this.settings;\n return (i = i || n.whitelist).some(function (i) {\n var o = \"string\" == typeof i ? i : i[e] || i.value;\n if (s(o, t, n.dropdown.caseSensitive, n.trim)) return a = \"string\" == typeof i ? {\n value: i\n } : i, !0;\n }), a || \"value\" != e || \"value\" == n.tagTextProp || (a = this.getWhitelistItem(t, n.tagTextProp, i)), a;\n },\n validateTag: function validateTag(t) {\n var e = this.settings,\n i = \"value\" in t ? \"value\" : e.tagTextProp,\n s = this.trim(t[i] + \"\");\n return (t[i] + \"\").trim() ? e.pattern && e.pattern instanceof RegExp && !e.pattern.test(s) ? this.TEXTS.pattern : !e.duplicates && this.isTagDuplicate(s, e.dropdown.caseSensitive, t.__tagId) ? this.TEXTS.duplicate : this.isTagBlacklisted(s) || e.enforceWhitelist && !this.isTagWhitelisted(s) ? this.TEXTS.notAllowed : !e.validate || e.validate(t) : this.TEXTS.empty;\n },\n getInvalidTagAttrs: function getInvalidTagAttrs(t, e) {\n return {\n \"aria-invalid\": !0,\n \"class\": \"\".concat(t[\"class\"] || \"\", \" \").concat(this.settings.classNames.tagNotAllowed).trim(),\n title: e\n };\n },\n hasMaxTags: function hasMaxTags() {\n return this.value.length >= this.settings.maxTags && this.TEXTS.exceed;\n },\n setReadonly: function setReadonly(t, e) {\n var i = this.settings;\n document.activeElement.blur(), i[e || \"readonly\"] = t, this.DOM.scope[(t ? \"set\" : \"remove\") + \"Attribute\"](e || \"readonly\", !0), this.setContentEditable(!t);\n },\n setContentEditable: function setContentEditable(t) {\n this.DOM.input.contentEditable = t, this.DOM.input.tabIndex = t ? 0 : -1;\n },\n setDisabled: function setDisabled(t) {\n this.setReadonly(t, \"disabled\");\n },\n normalizeTags: function normalizeTags(t) {\n var _this18 = this,\n _ref2;\n\n var e = this.settings,\n i = e.whitelist,\n s = e.delimiters,\n a = e.mode,\n n = e.tagTextProp;\n e.enforceWhitelist;\n\n var o = [],\n r = !!i && i[0] instanceof Object,\n l = Array.isArray(t),\n d = l && t[0].value,\n h = function h(t) {\n return (t + \"\").split(s).filter(function (t) {\n return t;\n }).map(function (t) {\n var _ref;\n\n return _ref = {}, _defineProperty(_ref, n, _this18.trim(t)), _defineProperty(_ref, \"value\", _this18.trim(t)), _ref;\n });\n };\n\n if (\"number\" == typeof t && (t = t.toString()), \"string\" == typeof t) {\n if (!t.trim()) return [];\n t = h(t);\n } else l && (t = (_ref2 = []).concat.apply(_ref2, _toConsumableArray(t.map(function (t) {\n return t.value ? t : h(t);\n }))));\n\n return r && !d && (t.forEach(function (t) {\n var e = o.map(function (t) {\n return t.value;\n }),\n i = _this18.dropdown.filterListItems.call(_this18, t[n], {\n exact: !0\n });\n\n _this18.settings.duplicates || (i = i.filter(function (t) {\n return !e.includes(t.value);\n }));\n var s = i.length > 1 ? _this18.getWhitelistItem(t[n], n, i) : i[0];\n s && s instanceof Object ? o.push(s) : \"mix\" != a && (null == t.value && (t.value = t[n]), o.push(t));\n }), o.length && (t = o)), t;\n },\n parseMixTags: function parseMixTags(t) {\n var _this19 = this;\n\n var e = this.settings,\n i = e.mixTagsInterpolator,\n s = e.duplicates,\n a = e.transformTag,\n n = e.enforceWhitelist,\n o = e.maxTags,\n r = e.tagTextProp,\n l = [];\n return t = t.split(i[0]).map(function (t, e) {\n var d,\n h,\n g,\n p = t.split(i[1]),\n c = p[0],\n u = l.length == o;\n\n try {\n if (c == +c) throw Error;\n h = JSON.parse(c);\n } catch (t) {\n h = _this19.normalizeTags(c)[0] || {\n value: c\n };\n }\n\n if (a.call(_this19, h), u || !(p.length > 1) || n && !_this19.isTagWhitelisted(h.value) || !s && _this19.isTagDuplicate(h.value)) {\n if (t) return e ? i[0] + t : t;\n } else h[d = h[r] ? r : \"value\"] = _this19.trim(h[d]), g = _this19.createTagElem(h), l.push(h), g.classList.add(_this19.settings.classNames.tagNoAnimation), p[0] = g.outerHTML, _this19.value.push(h);\n\n return p.join(\"\");\n }).join(\"\"), this.DOM.input.innerHTML = t, this.DOM.input.appendChild(document.createTextNode(\"\")), this.DOM.input.normalize(), this.getTagElms().forEach(function (t, e) {\n return _this19.tagData(t, l[e]);\n }), this.update({\n withoutChangeEvent: !0\n }), t;\n },\n replaceTextWithNode: function replaceTextWithNode(t, e) {\n if (this.state.tag || e) {\n e = e || this.state.tag.prefix + this.state.tag.value;\n var i,\n s,\n a = this.state.selection || window.getSelection(),\n n = a.anchorNode,\n o = this.state.tag.delimiters ? this.state.tag.delimiters.length : 0;\n return n.splitText(a.anchorOffset - o), -1 == (i = n.nodeValue.lastIndexOf(e)) ? !0 : (s = n.splitText(i), t && n.parentNode.replaceChild(t, s), !0);\n }\n },\n selectTag: function selectTag(t, e) {\n var i = this.settings;\n\n if (!i.enforceWhitelist || this.isTagWhitelisted(e.value)) {\n this.input.set.call(this, e[i.tagTextProp] || e.value, !0), this.state.actions.selectOption && setTimeout(this.setRangeAtStartEnd.bind(this));\n var s = this.getLastTag();\n return s ? this.replaceTag(s, e) : this.appendTag(t), this.value[0] = e, this.update(), this.trigger(\"add\", {\n tag: t,\n data: e\n }), [t];\n }\n },\n addEmptyTag: function addEmptyTag(t) {\n var e = g({\n value: \"\"\n }, t || {}),\n i = this.createTagElem(e);\n this.tagData(i, e), this.appendTag(i), this.editTag(i, {\n skipValidation: !0\n });\n },\n addTags: function addTags(t, e, i) {\n var _this20 = this;\n\n var s = [],\n a = this.settings,\n n = [],\n o = document.createDocumentFragment();\n if (i = i || a.skipInvalid, !t || 0 == t.length) return s;\n\n switch (t = this.normalizeTags(t), a.mode) {\n case \"mix\":\n return this.addMixTags(t);\n\n case \"select\":\n e = !1, this.removeAllTags();\n }\n\n return this.DOM.input.removeAttribute(\"style\"), t.forEach(function (t) {\n var e,\n r = {},\n l = Object.assign({}, t, {\n value: t.value + \"\"\n });\n\n if (t = Object.assign({}, l), a.transformTag.call(_this20, t), t.__isValid = _this20.hasMaxTags() || _this20.validateTag(t), !0 !== t.__isValid) {\n if (i) return;\n if (g(r, _this20.getInvalidTagAttrs(t, t.__isValid), {\n __preInvalidData: l\n }), t.__isValid == _this20.TEXTS.duplicate && _this20.flashTag(_this20.getTagElmByValue(t.value)), !a.createInvalidTags) return void n.push(t.value);\n }\n\n if (\"readonly\" in t && (t.readonly ? r[\"aria-readonly\"] = !0 : delete t.readonly), e = _this20.createTagElem(t, r), s.push(e), \"select\" == a.mode) return _this20.selectTag(e, t);\n o.appendChild(e), t.__isValid && !0 === t.__isValid ? (_this20.value.push(t), _this20.trigger(\"add\", {\n tag: e,\n index: _this20.value.length - 1,\n data: t\n })) : (_this20.trigger(\"invalid\", {\n data: t,\n index: _this20.value.length,\n tag: e,\n message: t.__isValid\n }), a.keepInvalidTags || setTimeout(function () {\n return _this20.removeTags(e, !0);\n }, 1e3)), _this20.dropdown.position();\n }), this.appendTag(o), this.update(), t.length && e && (this.input.set.call(this, a.createInvalidTags ? \"\" : n.join(a._delimiters)), this.setRangeAtStartEnd()), a.dropdown.enabled && this.dropdown.refilter(), s;\n },\n addMixTags: function addMixTags(t) {\n var _this21 = this;\n\n if ((t = this.normalizeTags(t))[0].prefix || this.state.tag) return this.prefixedTextToTag(t[0]);\n \"string\" == typeof t && (t = [{\n value: t\n }]), this.state.selection;\n var e = document.createDocumentFragment();\n return t.forEach(function (t) {\n var i = _this21.createTagElem(t);\n\n e.appendChild(i), _this21.insertAfterTag(i);\n }), this.appendMixTags(e), e;\n },\n appendMixTags: function appendMixTags(t) {\n var e = !!this.state.selection;\n e ? this.injectAtCaret(t) : (this.DOM.input.focus(), (e = this.setStateSelection()).range.setStart(this.DOM.input, e.range.endOffset), e.range.setEnd(this.DOM.input, e.range.endOffset), this.DOM.input.appendChild(t), this.updateValueByDOMTags(), this.update());\n },\n prefixedTextToTag: function prefixedTextToTag(t) {\n var _this22 = this;\n\n var e,\n i = this.settings,\n s = this.state.tag.delimiters;\n\n if (i.transformTag.call(this, t), t.prefix = t.prefix || this.state.tag ? this.state.tag.prefix : (i.pattern.source || i.pattern)[0], e = this.createTagElem(t), this.replaceTextWithNode(e) || this.DOM.input.appendChild(e), setTimeout(function () {\n return e.classList.add(_this22.settings.classNames.tagNoAnimation);\n }, 300), this.value.push(t), this.update(), !s) {\n var a = this.insertAfterTag(e) || e;\n this.placeCaretAfterNode(a);\n }\n\n return this.state.tag = null, this.trigger(\"add\", g({}, {\n tag: e\n }, {\n data: t\n })), e;\n },\n appendTag: function appendTag(t) {\n var e = this.DOM,\n i = e.input;\n i === e.input ? e.scope.insertBefore(t, i) : e.scope.appendChild(t);\n },\n createTagElem: function createTagElem(t, i) {\n t.__tagId = m();\n var s,\n a = g({}, t, e({\n value: d(t.value + \"\")\n }, i));\n return function (t) {\n for (var e, i = document.createNodeIterator(t, NodeFilter.SHOW_TEXT, null, !1); e = i.nextNode();) {\n e.textContent.trim() || e.parentNode.removeChild(e);\n }\n }(s = this.parseTemplate(\"tag\", [a, this])), this.tagData(s, t), s;\n },\n reCheckInvalidTags: function reCheckInvalidTags() {\n var _this23 = this;\n\n var t = this.settings;\n this.getTagElms(t.classNames.tagNotAllowed).forEach(function (e, i) {\n var s = _this23.tagData(e),\n a = _this23.hasMaxTags(),\n n = _this23.validateTag(s),\n o = !0 === n && !a;\n\n if (\"select\" == t.mode && _this23.toggleScopeValidation(n), o) return s = s.__preInvalidData ? s.__preInvalidData : {\n value: s.value\n }, _this23.replaceTag(e, s);\n e.title = a || n;\n });\n },\n removeTags: function removeTags(t, e, i) {\n var _this24 = this;\n\n var s,\n a = this.settings;\n if (t = t && t instanceof HTMLElement ? [t] : t instanceof Array ? t : t ? [t] : [this.getLastTag()], s = t.reduce(function (t, e) {\n e && \"string\" == typeof e && (e = _this24.getTagElmByValue(e));\n\n var i = _this24.tagData(e);\n\n return e && i && !i.readonly && t.push({\n node: e,\n idx: _this24.getTagIdx(i),\n data: _this24.tagData(e, {\n __removed: !0\n })\n }), t;\n }, []), i = \"number\" == typeof i ? i : this.CSSVars.tagHideTransition, \"select\" == a.mode && (i = 0, this.input.set.call(this)), 1 == s.length && \"select\" != a.mode && s[0].node.classList.contains(a.classNames.tagNotAllowed) && (e = !0), s.length) return a.hooks.beforeRemoveTag(s, {\n tagify: this\n }).then(function () {\n function t(t) {\n t.node.parentNode && (t.node.parentNode.removeChild(t.node), e ? a.keepInvalidTags && this.trigger(\"remove\", {\n tag: t.node,\n index: t.idx\n }) : (this.trigger(\"remove\", {\n tag: t.node,\n index: t.idx,\n data: t.data\n }), this.dropdown.refilter(), this.dropdown.position(), this.DOM.input.normalize(), a.keepInvalidTags && this.reCheckInvalidTags()));\n }\n\n i && i > 10 && 1 == s.length ? function (e) {\n e.node.style.width = parseFloat(window.getComputedStyle(e.node).width) + \"px\", document.body.clientTop, e.node.classList.add(a.classNames.tagHide), setTimeout(t.bind(this), i, e);\n }.call(_this24, s[0]) : s.forEach(t.bind(_this24)), e || (_this24.removeTagsFromValue(s.map(function (t) {\n return t.node;\n })), _this24.update(), \"select\" == a.mode && _this24.setContentEditable(!0));\n })[\"catch\"](function (t) {});\n },\n removeTagsFromDOM: function removeTagsFromDOM() {\n [].slice.call(this.getTagElms()).forEach(function (t) {\n return t.parentNode.removeChild(t);\n });\n },\n removeTagsFromValue: function removeTagsFromValue(t) {\n var _this25 = this;\n\n (t = Array.isArray(t) ? t : [t]).forEach(function (t) {\n var e = _this25.tagData(t),\n i = _this25.getTagIdx(e);\n\n i > -1 && _this25.value.splice(i, 1);\n });\n },\n removeAllTags: function removeAllTags(t) {\n var _this26 = this;\n\n t = t || {}, this.value = [], \"mix\" == this.settings.mode ? this.DOM.input.innerHTML = \"\" : this.removeTagsFromDOM(), this.dropdown.refilter(), this.dropdown.position(), this.state.dropdown.visible && setTimeout(function () {\n _this26.DOM.input.focus();\n }), \"select\" == this.settings.mode && (this.input.set.call(this), this.setContentEditable(!0)), this.update(t);\n },\n postUpdate: function postUpdate() {\n var _this$value2, _this$value2$;\n\n var t = this.settings,\n e = t.classNames,\n i = \"mix\" == t.mode ? t.mixMode.integrated ? this.DOM.input.textContent : this.DOM.originalInput.value.trim() : this.value.length + this.input.raw.call(this).length;\n this.toggleClass(e.hasMaxTags, this.value.length >= t.maxTags), this.toggleClass(e.hasNoTags, !this.value.length), this.toggleClass(e.empty, !i), \"select\" == t.mode && this.toggleScopeValidation((_this$value2 = this.value) === null || _this$value2 === void 0 ? void 0 : (_this$value2$ = _this$value2[0]) === null || _this$value2$ === void 0 ? void 0 : _this$value2$.__isValid);\n },\n setOriginalInputValue: function setOriginalInputValue(t) {\n var e = this.DOM.originalInput;\n this.settings.mixMode.integrated || (e.value = t, e.tagifyValue = e.value, this.setPersistedData(t, \"value\"));\n },\n update: function update(t) {\n var e = this.getInputValue();\n this.setOriginalInputValue(e), this.postUpdate(), this.settings.onChangeAfterBlur && (t || {}).withoutChangeEvent || this.state.blockChangeEvent || this.triggerChangeEvent();\n },\n getInputValue: function getInputValue() {\n var t = this.getCleanValue();\n return \"mix\" == this.settings.mode ? this.getMixedTagsAsString(t) : t.length ? this.settings.originalInputValueFormat ? this.settings.originalInputValueFormat(t) : JSON.stringify(t) : \"\";\n },\n getCleanValue: function getCleanValue(t) {\n return a(t || this.value, this.dataProps);\n },\n getMixedTagsAsString: function getMixedTagsAsString() {\n var t = \"\",\n e = this,\n i = this.settings,\n s = i.originalInputValueFormat || JSON.stringify,\n a = i.mixTagsInterpolator;\n return function i(o) {\n o.childNodes.forEach(function (o) {\n if (1 == o.nodeType) {\n var _r2 = e.tagData(o);\n\n if (\"BR\" == o.tagName && (t += \"\\r\\n\"), _r2 && v.call(e, o)) {\n if (_r2.__removed) return;\n t += a[0] + s(n(_r2, e.dataProps)) + a[1];\n } else o.getAttribute(\"style\") || [\"B\", \"I\", \"U\"].includes(o.tagName) ? t += o.textContent : \"DIV\" != o.tagName && \"P\" != o.tagName || (t += \"\\r\\n\", i(o));\n } else t += o.textContent;\n });\n }(this.DOM.input), t;\n }\n }, M.prototype.removeTag = M.prototype.removeTags, M;\n});","export function escapeHTML(string){\n return string.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, \"'\");\n}\n\n\nfunction simpleFormatWithMultiLineFeed(text) {\n return `

${safeJoin(text.split(\"\\n\"), \"\\n
\")}

`;\n}\n\nfunction simpleFormatWithLink(text) {\n text = simpleFormatWithMultiLineFeed(text);\n const urlRegex = /(http|https):\\/\\/[^\\s]+/g;\n return text.replace(urlRegex, (url) => {\n return `${url}`;\n });\n}\n\nfunction safeJoin(array, separator) {\n return array.join(separator);\n}\n\nexport function escapeHTMLwithLink(text) {\n return simpleFormatWithLink(escapeHTML(text));\n}\n\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"sourceRoot":""}