{"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_comment.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","withLoadingAndDisable","loadingTarget","disableTargets","callback","a","classList","add","forEach","el","disabled","result","remove","console","error","wait","ms","Promise","resolve","setTimeout","pollingRequest","requestCb","stopConditionCb","intervalMs","getCsrfToken","document","querySelector","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","addEventListener","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_comment-867557aa005e608c6399.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 = 1057);\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","/**\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":""}