react-tag-maker
Version:
A customizable tag input component for React and Nextjs
1 lines • 34.9 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../node_modules/react/cjs/react-jsx-runtime.production.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/lib/index.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\");\nfunction jsxProd(type, config, maybeKey) {\n var key = null;\n void 0 !== maybeKey && (key = \"\" + maybeKey);\n void 0 !== config.key && (key = \"\" + config.key);\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n config = maybeKey.ref;\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n ref: void 0 !== config ? config : null,\n props: maybeKey\n };\n}\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsxProd;\nexports.jsxs = jsxProd;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return (type.displayName || \"Context\") + \".Provider\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(\n type,\n key,\n self,\n source,\n owner,\n props,\n debugStack,\n debugTask\n ) {\n self = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== self ? self : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function jsxDEVImpl(\n type,\n config,\n maybeKey,\n isStaticChildren,\n source,\n self,\n debugStack,\n debugTask\n ) {\n var children = config.children;\n if (void 0 !== children)\n if (isStaticChildren)\n if (isArrayImpl(children)) {\n for (\n isStaticChildren = 0;\n isStaticChildren < children.length;\n isStaticChildren++\n )\n validateChildKeys(children[isStaticChildren]);\n Object.freeze && Object.freeze(children);\n } else\n console.error(\n \"React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.\"\n );\n else validateChildKeys(children);\n if (hasOwnProperty.call(config, \"key\")) {\n children = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return \"key\" !== k;\n });\n isStaticChildren =\n 0 < keys.length\n ? \"{key: someKey, \" + keys.join(\": ..., \") + \": ...}\"\n : \"{key: someKey}\";\n didWarnAboutKeySpread[children + isStaticChildren] ||\n ((keys =\n 0 < keys.length ? \"{\" + keys.join(\": ..., \") + \": ...}\" : \"{}\"),\n console.error(\n 'A props object containing a \"key\" prop is being spread into JSX:\\n let props = %s;\\n <%s {...props} />\\nReact keys must be passed directly to JSX without using spread:\\n let props = %s;\\n <%s key={someKey} {...props} />',\n isStaticChildren,\n children,\n keys,\n children\n ),\n (didWarnAboutKeySpread[children + isStaticChildren] = !0));\n }\n children = null;\n void 0 !== maybeKey &&\n (checkKeyStringCoercion(maybeKey), (children = \"\" + maybeKey));\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (children = \"\" + config.key));\n if (\"key\" in config) {\n maybeKey = {};\n for (var propName in config)\n \"key\" !== propName && (maybeKey[propName] = config[propName]);\n } else maybeKey = config;\n children &&\n defineKeyPropWarningGetter(\n maybeKey,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n return ReactElement(\n type,\n children,\n self,\n source,\n getOwner(),\n maybeKey,\n debugStack,\n debugTask\n );\n }\n function validateChildKeys(node) {\n \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_ELEMENT_TYPE &&\n node._store &&\n (node._store.validated = 1);\n }\n var React = require(\"react\"),\n REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\");\n Symbol.for(\"react.provider\");\n var REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,\n hasOwnProperty = Object.prototype.hasOwnProperty,\n isArrayImpl = Array.isArray,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n React = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = React.react_stack_bottom_frame.bind(\n React,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutKeySpread = {};\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.jsx = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !1,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.jsxs = function (type, config, maybeKey, source, self) {\n var trackActualOwner =\n 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return jsxDEVImpl(\n type,\n config,\n maybeKey,\n !0,\n source,\n self,\n trackActualOwner\n ? Error(\"react-stack-top-frame\")\n : unknownOwnerDebugStack,\n trackActualOwner ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n })();\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n/* eslint-disable @typescript-eslint/no-unused-expressions */\r\n// src/lib/index.tsx - 라이브러리 메인 엔트리 파일\r\n\r\nimport React from 'react'\r\nimport { useState, useEffect, useRef, useCallback } from 'react'\r\n\r\nfunction useFirstRender(callback: () => void, deps: unknown[]) {\r\n const isFirstRender = useRef(true);\r\n useEffect(() => {\r\n if (isFirstRender.current) {\r\n callback();\r\n isFirstRender.current = false;\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, deps);\r\n}\r\n\r\ninterface TagProps {\r\n text: string\r\n remove: (text: string) => void\r\n disabled?: boolean\r\n className?: string\r\n}\r\n\r\nfunction Tag({ text, remove, disabled, className }: TagProps) {\r\n const [disappearing, setDisappearing] = useState(false)\r\n const handleClick = useCallback((event: React.MouseEvent<HTMLButtonElement>) => {\r\n event.stopPropagation()\r\n setDisappearing(true)\r\n setTimeout(() => {\r\n remove(text)\r\n }, 150)\r\n }, [remove, text])\r\n\r\n const classNames = useCallback((...classes: (string | undefined | null | false)[]) => {\r\n return disappearing ? classes.filter(Boolean).join(' ') + ' disappearing' : classes.filter(Boolean).join(' ')\r\n }, [disappearing])\r\n\r\n return (\r\n <span className={classNames('gloomy-tag--tag', className)}>\r\n <span>{text}</span>\r\n {!disabled && (\r\n <button type='button' onClick={handleClick} aria-label={`remove ${text}`}>\r\n ✕\r\n </button>\r\n )}\r\n </span>\r\n )\r\n}\r\n\r\nexport interface GloomyTagsProps {\r\n name?: string\r\n placeHolder?: string\r\n state: string[]\r\n setState: React.Dispatch<string[]>\r\n onChange?: (value: string[]) => void\r\n onBlur?: () => void\r\n separators?: string[]\r\n disableBackspaceRemove?: boolean\r\n onExisting?: (text: string) => void\r\n onRemoved?: (text: string) => void\r\n disabled?: boolean\r\n isEditOnRemove?: boolean\r\n beforeAddValidate?: (input: string, state: string[]) => boolean\r\n onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void\r\n classNames?: {\r\n tag?: string\r\n input?: string\r\n }\r\n style?: Record<string, string | number>;\r\n throttleTime?: number;\r\n}\r\n\r\nlet timeout: number | undefined;\r\n\r\nexport default function GloomyTags({\r\n name,\r\n placeHolder,\r\n state,\r\n setState,\r\n onChange,\r\n onBlur,\r\n separators = [],\r\n disableBackspaceRemove = false,\r\n onExisting,\r\n onRemoved,\r\n disabled = false,\r\n isEditOnRemove = false,\r\n beforeAddValidate,\r\n onKeyUp,\r\n classNames,\r\n style,\r\n throttleTime,\r\n}: GloomyTagsProps) {\r\n\r\n const inputRef = useRef<HTMLInputElement>(null)\r\n const [focusArray, setFocusArray] = useState<any[]>([])\r\n useFirstRender(() => {\r\n setState && setState(state)\r\n }, [state])\r\n\r\n useEffect(() => {\r\n const tempFocusArray = typeof state === 'object' ? state.map((e:unknown) => ({\r\n tag: e,\r\n focus: false,\r\n })) : []\r\n setFocusArray(tempFocusArray)\r\n onChange && onChange(state)\r\n }, [state, onChange])\r\n \r\n const [throttle, setThrottle] = useState<unknown>(0)\r\n const ENTER_KEYS = ['Enter', ' ', ',']\r\n const [isFocus, setIsFocus] = useState(false)\r\n useEffect(() => {\r\n if(focusArray.find((e:any) => e && e.focus)) {\r\n setIsFocus(true)\r\n } else {\r\n setIsFocus(false)\r\n }\r\n }, [focusArray])\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\r\n if (event.nativeEvent.isComposing) {\r\n return;\r\n }\r\n if(timeout) return\r\n setTimeout(() => timeout = undefined , timeout)\r\n\r\n const inputValue = event.currentTarget.value.replace(/\\s/gi, '')\r\n const key = event.key\r\n\r\n if (inputValue && (separators.includes(key) || ENTER_KEYS.includes(key))) {\r\n event.preventDefault()\r\n\r\n if (beforeAddValidate && !beforeAddValidate(inputValue, state)) {\r\n return\r\n }\r\n\r\n\r\n // 쓰로틀 상태에서는 안함\r\n if(!throttle) setThrottle(setTimeout(() => {setThrottle(0)}, throttleTime ?? 10))\r\n else return console.warn('react-tag-maker throttling!')\r\n\r\n if (!state.includes(inputValue)) {\r\n setState([...state, inputValue])\r\n event.currentTarget.value = ''\r\n } else {\r\n onExisting && onExisting(inputValue)\r\n }\r\n }\r\n\r\n if (!inputValue && !disableBackspaceRemove && state.length && key === 'Backspace') {\r\n event.preventDefault()\r\n if (isEditOnRemove) {\r\n event.currentTarget.value = `${state.slice(-1)} `\r\n } else if(isFocus) {\r\n setState([...state.slice(0, -1)])\r\n } else if(!isFocus && state.length > 0) {\r\n const tempFocusArray = [...focusArray]\r\n if(tempFocusArray[tempFocusArray.length-1]) {\r\n tempFocusArray[tempFocusArray.length-1].focus = true\r\n setFocusArray(tempFocusArray)\r\n }\r\n } else {\r\n console.log()\r\n }\r\n } else {\r\n const tempFocusArray = [...focusArray]\r\n if(tempFocusArray[tempFocusArray.length-1]) {\r\n tempFocusArray[tempFocusArray.length-1].focus = false\r\n setFocusArray(tempFocusArray)\r\n }\r\n }\r\n }\r\n\r\n const handleTagRemove = (tag: string) => {\r\n setState(state.filter((t) => t !== tag))\r\n onRemoved && onRemoved(tag)\r\n }\r\n\r\n const [originStyle, setOriginStyle] = useState<string | null>(null);\r\n useEffect(() => {\r\n if (!originStyle && typeof document === 'object') {\r\n setOriginStyle(`\r\n .gloomy-tag--container {\r\n box-sizing: border-box;\r\n transition: all 0.2s ease;\r\n align-items: center;\r\n background: #fff;\r\n border: 1px solid #ccc;\r\n border-radius: 5px;\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 8px;\r\n line-height: 1.4;\r\n padding: 8px;\r\n width: 375px;\r\n cursor: text;\r\n\r\n @media(max-width: 600px) {\r\n width: 100%;\r\n }\r\n\r\n &:focus-within {\r\n border-color: #1d77fe;\r\n box-shadow: #1d77fe 0 0 0 1px;\r\n }\r\n\r\n &,\r\n * {\r\n box-sizing: border-box;\r\n transition: all 0.2s ease;\r\n }\r\n .gloomy-tag--input {\r\n border: 0;\r\n outline: 0;\r\n font-size: inherit;\r\n line-height: inherit;\r\n width: 50%;\r\n background: #fff;\r\n color: #000;\r\n }\r\n\r\n .gloomy-tag--tag {\r\n align-items: center;\r\n background: #dbe3eb;\r\n border: 1px solid #b6b5b5;\r\n border-radius: 10px;\r\n display: inline-flex;\r\n justify-content: center;\r\n padding: 2.5px 4px;\r\n opacity: 1;\r\n color: #000;\r\n &:has(button:hover) {\r\n background: #ffe2e2;\r\n }\r\n &.gloomy-tag--focus {\r\n background: #ffe2e2;\r\n }\r\n button {\r\n background: none;\r\n border: 0;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n line-height: inherit;\r\n padding: 0 8px;\r\n font-weight: 900;\r\n color: #000;\r\n &:hover {\r\n color: #e53e3e;\r\n }\r\n }\r\n &.disappearing {\r\n transition: 0.15s;\r\n opacity: 0;\r\n background: #ffaaaa;\r\n }\r\n }\r\n }\r\n `);\r\n }\r\n }, [originStyle])\r\n\r\n const cursorToInput = useCallback((e:any) => {\r\n if(!inputRef.current || e.target.className !== 'gloomy-tag--container') return\r\n inputRef.current.focus()\r\n }, [])\r\n\r\n return (\r\n <div className='gloomy-tag--container' onClick={cursorToInput} style={style}>\r\n {focusArray.map((item) => (\r\n <Tag\r\n key={item.tag}\r\n className={`${classNames?.tag} ${item.focus && 'gloomy-tag--focus'}`}\r\n text={item.tag}\r\n remove={handleTagRemove}\r\n disabled={disabled}\r\n />\r\n ))}\r\n <input\r\n className={`gloomy-tag--input ${classNames?.input}`}\r\n type='text'\r\n name={name}\r\n placeholder={placeHolder}\r\n onKeyDown={handleKeyDown}\r\n onBlur={onBlur}\r\n disabled={disabled}\r\n onKeyUp={onKeyUp}\r\n ref={inputRef}\r\n />\r\n <style>{originStyle}</style>\r\n </div>\r\n )\r\n}"],"names":["REACT_ELEMENT_TYPE","REACT_FRAGMENT_TYPE","jsxProd","type","config","maybeKey","key","propName","reactJsxRuntime_production","getComponentNameFromType","REACT_CLIENT_REFERENCE","REACT_PROFILER_TYPE","REACT_STRICT_MODE_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_ACTIVITY_TYPE","REACT_PORTAL_TYPE","REACT_CONTEXT_TYPE","REACT_CONSUMER_TYPE","REACT_FORWARD_REF_TYPE","innerType","REACT_MEMO_TYPE","REACT_LAZY_TYPE","testStringCoercion","value","checkKeyStringCoercion","JSCompiler_inline_result","JSCompiler_temp_const","JSCompiler_inline_result$jscomp$0","getTaskName","name","getOwner","dispatcher","ReactSharedInternals","UnknownOwner","hasValidKey","hasOwnProperty","getter","defineKeyPropWarningGetter","props","displayName","warnAboutAccessingKey","specialPropKeyWarningShown","elementRefGetterWithDeprecationWarning","componentName","didWarnAboutElementRef","ReactElement","self","source","owner","debugStack","debugTask","jsxDEVImpl","isStaticChildren","children","isArrayImpl","validateChildKeys","keys","k","didWarnAboutKeySpread","node","React","require$$0","createTask","callStackForError","unknownOwnerDebugStack","unknownOwnerDebugTask","reactJsxRuntime_development","trackActualOwner","jsxRuntimeModule","require$$1","useFirstRender","callback","deps","isFirstRender","useRef","useEffect","Tag","text","remove","disabled","className","disappearing","setDisappearing","useState","handleClick","useCallback","event","classNames","classes","jsx","timeout","GloomyTags","placeHolder","state","setState","onChange","onBlur","separators","disableBackspaceRemove","onExisting","onRemoved","isEditOnRemove","beforeAddValidate","onKeyUp","style","throttleTime","inputRef","focusArray","setFocusArray","tempFocusArray","e","throttle","setThrottle","ENTER_KEYS","isFocus","setIsFocus","handleKeyDown","inputValue","handleTagRemove","tag","t","originStyle","setOriginStyle","cursorToInput","item"],"mappings":"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","x_google_ignoreList":[0,1,2]}