{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack:///./app/frontend/packs/pages/static/mention_comment.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.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:///./app/frontend/javascripts/api_utils.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","_regeneratorRuntime","e","a","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","Context","makeInvokeMethod","tryCatch","type","arg","h","f","y","GeneratorFunction","GeneratorFunctionPrototype","this","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","window","Coorum","Mention","isObject","now","toNumber","FUNC_ERROR_TEXT","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","undefined","apply","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","arguments","leadingEdge","clearTimeout","cancel","flush","_Symbol","obj","freeGlobal","freeSelf","self","root","baseGetTag","isObjectLike","symbolTag","global","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","$elem","tagify","__tagify","initialValues","compactValues","destroy","$tagify","initTagify","categorySelect","announcement","document","querySelector","chat","question","$categoryInputElem","dataset","postableType","$segmentInputElem","boundCategoryInputChange","handleCategoryInputChange","boundSegmentInputChange","handleSegmentInputChange","addEventListeners","changeCategory","addEventListener","removeEventListener","input","_s","classNames","namespace","readonly","disabled","required","userInput","placeholder","tagData","nickname","escapeHTML","avatar","getAttributes","username","suggestions","response","users","username_displayed","map","_","avatar_url_or_default","url_name","loading","suggest","inputedUser","whitelist","removeAllTags","addTags","console","error","categoryId","segment_group_id","word","paramsObj","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","buildSafeURLSearchParams","fetchWithTimeout","toString","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","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","trimmedEndIndex","reTrimStart","string","replace","reWhitespace","index","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_createForOfIteratorHelper","allowArrayLike","it","F","_e7","normalCompletion","didErr","step","_e8","minLen","len","arr2","getOwnPropertySymbols","getOwnPropertyDescriptor","getOwnPropertyDescriptors","defineProperties","toLowerCase","indexOf","createElement","innerHTML","innerText","DOMParser","parseFromString","body","firstElementChild","nodeType","assign","_step","_iterator","_step2","_iterator2","_s2","includes","String","normalize","navigator","userAgent","crypto","getRandomValues","Uint8Array","classList","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","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","add","remove","createListHTML","dropdownContent","fillHeaderFooter","replaceChild","refilter","listeners","onMouseOver","onMouseLeave","onClick","onScroll","_this4","_t2","target","closest","_this5","button","warn","scrollTop","scrollHeight","percentage","round","getAttribute","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","message","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","id","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","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","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","withLoadingAndDisable","loadingTarget","disableTargets","callback","el","ms","pollingRequest","requestCb","stopConditionCb","intervalMs","getCsrfToken","jqueryAjaxBeforeSend","xhr","setRequestHeader","apiFailResultHandler","responseJSON","status","alert","resource","timeout","controller","AbortController","abort","fetch","headers","signal","URLSearchParams"],"mappings":"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","file":"js/pages/static/mention_comment-f2aa4d50474ed8f242d2.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 = 1054);\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","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;","import Mention from '../../../javascripts/components/Mention'\n\nif (!window?.Coorum) {\n window.Coorum = {}\n}\nwindow.Coorum.Mention = Mention\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;","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","/**\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"],"sourceRoot":""}