@next-bricks/nav 1.26.5 → 1.26.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/query-search.e5330199.js","mappings":"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","sources":["webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///../../node_modules/classnames/index.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/query-search/index.tsx","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///./src/query-search/i18n.ts","webpack:///../../node_modules/@next-shared/general/dist/esm/JsonStorage.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/query-search/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js"],"sourcesContent":["\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import React, {\n useEffect,\n useState,\n useMemo,\n useRef,\n useCallback,\n} from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales, K, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport classNames from \"classnames\";\nimport type {\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap,\n} from \"@next-bricks/form/search\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\n\nimport { getRuntime, getHistory } from \"@next-core/runtime\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { uniq } from \"lodash\";\nimport { Select, ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement } = createDecorators();\n\n// --- 常量定义 ---\nconst STORAGE = new JsonStorage(localStorage);\nconst FULL_TEXT_URL = \"search/result?q=%{q}%\";\nconst IP_SEARCH_URL = \"search/new/ipSearch?q=%{q}%\";\nconst ITSM_SEARCH_URL = \"/itsc-ticket-center/ticket-list?q=%{q}%\";\nconst INSTANCE_SEARCH_URL = \"search/instance-or-relation-path/search/\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nexport const WrappedSearch = wrapBrick<\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap\n>(\"eo-search\", {\n onChange: \"change\",\n onSearch: \"search\",\n});\nconst WrappedToolTip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\n/**\n * 综合搜索入口,支持全文检索、IP 搜索、工单搜索等多种查询模式,带搜索历史记录功能\n */\nexport\n@defineElement(\"nav.query-search\", {\n styleTexts: [styleText],\n})\nclass QuerySearch extends ReactNextElement {\n render() {\n return <QuerySearchComponent shadowRoot={this.shadowRoot} />;\n }\n}\n\nexport interface QuerySearchComponentProps {\n shadowRoot: ShadowRoot | null;\n}\n\nenum QuerierTypes {\n fullText = \"fullText\",\n instanceSearch = \"instanceSearch\",\n relationSearch = \"relationSearch\",\n link = \"link\",\n ipSearch = \"ipSearch\",\n}\n\ninterface QuerierConfig {\n url: string;\n searchPlaceholder: string;\n}\n\ninterface Querier {\n name: string;\n type: QuerierTypes;\n disabled: boolean;\n showInApps: string[];\n instanceId?: string;\n config: QuerierConfig;\n}\n\ninterface QuerierOption extends Querier {\n label: string;\n value: string;\n}\n\n// 获取 Storage Key 的辅助函数\nconst getOrgId = () => (auth.getAuth() as Record<string, string>)?.org || \"\";\nconst getRecentVisitsKey = () => `querier-search-recent-visits:${getOrgId()}`;\nconst getSelectedQuerierKey = () => `querier-search-querier:${getOrgId()}`;\n\nexport function QuerySearchComponent(props: QuerySearchComponentProps) {\n const { shadowRoot } = props;\n const inputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const appId = getRuntime().getCurrentApp()?.id || \"\";\n const currentTheme = useCurrentTheme();\n\n // State\n /**\n * null: 初始化(无动画)\n * false: 收起(播放收起动画)\n * true: 展开\n */\n const [showInput, setShowInput] = useState<boolean | null>(null);\n const [searchKey, setSearchKey] = useState<string>(\"\");\n const [visits, setVisits] = useState<string[]>([]);\n\n // Data State\n const [querierList, setQuerierList] = useState<Querier[]>([]);\n const [querierOptions, setQuerierOptions] = useState<QuerierOption[]>([]);\n const [selectedQuerier, setSelectedQuerier] = useState<QuerierOption>();\n\n // Style Cache\n const cache = useMemo(() => createCache(), []);\n\n // 检测是否应该直接跳转 (响应式布局逻辑)\n const checkIsDirectJump = useCallback((): boolean => {\n const parentWidth = shadowRoot?.host?.parentElement?.clientWidth || 0;\n return document.documentElement.clientWidth - parentWidth - 500 < 200;\n }, [shadowRoot]);\n\n // 处理跳转逻辑\n const handleHistoryPush = useCallback(\n (q?: string) => {\n // 如果还没加载 querier,默认去 IP 搜索\n const targetUrl =\n showInput && selectedQuerier?.config?.url\n ? selectedQuerier.config.url\n : IP_SEARCH_URL;\n const cleanUrl = targetUrl.startsWith(\"/\") ? targetUrl : \"/\" + targetUrl;\n const queryTerm = q || searchKey || \"\";\n const to = cleanUrl.replaceAll(\"%{q}%\", queryTerm);\n getHistory().push(to);\n },\n [showInput, selectedQuerier, searchKey]\n );\n\n // --- 核心逻辑优化 1: 分离键盘事件监听 ---\n\n // 1.1 全局快捷键监听 (Cmd/Ctrl + K) - 只绑定一次\n // istanbul ignore next\n useEffect(() => {\n const handleGlobalKeyDown = (e: KeyboardEvent) => {\n const isMac = /Mac|iPod|iPhone|iPad/.test(navigator.userAgent);\n const modKey = isMac ? e.metaKey : e.ctrlKey;\n\n if (modKey && e.key === \"k\") {\n e.preventDefault();\n // 使用 functional update 获取最新状态,避免频繁解绑\n setShowInput((prevShow) => {\n if (!prevShow) {\n // 如果当前是关闭状态,检查是否直接跳转\n if (checkIsDirectJump()) {\n // 注意:这里可能取不到最新的 selectedQuerier,如果依赖它,需要调整逻辑\n // 但 checkIsDirectJump 路径下通常走 IP Search 或默认\n // 为简化,此处仅触发打开,或需将 historyPush 移出 effect\n // *修正*: 为了保持原逻辑,这里若 directJump 为 true,我们在 state 变化副作用里处理,或者简单地只设为 true\n // 原逻辑是: 没 showInput -> directJump ? jump : show\n return true;\n }\n return true;\n }\n return prevShow;\n });\n\n // 特殊处理 DirectJump: 如果变为 true 后需要立即跳转,\n // 最好是在点击 button 时判断。快捷键场景下,先打开 Input 也是合理的交互。\n // 如果严格遵循原逻辑,需要在 effect 外部处理 jump。\n if (checkIsDirectJump() && !showInput) {\n // 这里 showInput 是闭包旧值,需小心\n handleHistoryPush();\n setShowInput(false); // 保持关闭\n }\n }\n };\n\n window.addEventListener(\"keydown\", handleGlobalKeyDown);\n return () => window.removeEventListener(\"keydown\", handleGlobalKeyDown);\n }, [checkIsDirectJump, handleHistoryPush]); // 依赖项较少\n\n // 1.2 局部交互监听 (点击外部关闭, ESC) - 仅当 showInput 为 true 时生效\n // istanbul ignore next\n useEffect(() => {\n if (!showInput) return;\n\n // 自动聚焦\n inputRef.current?.focus();\n\n const handleClickOutside = (e: MouseEvent) => {\n if (\n containerRef.current &&\n !e.composedPath().includes(containerRef.current)\n ) {\n setShowInput(false);\n }\n };\n\n const handleEscKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" || e.key === \"Esc\") {\n setShowInput(false);\n }\n };\n\n // 关键修复:添加时使用了 capture: true\n window.addEventListener(\"click\", handleClickOutside, true);\n window.addEventListener(\"keydown\", handleEscKey);\n\n return () => {\n // 关键修复:移除时必须保持 capture: true,否则无法移除\n window.removeEventListener(\"click\", handleClickOutside, true);\n window.removeEventListener(\"keydown\", handleEscKey);\n };\n }, [showInput]);\n\n // --- 核心逻辑优化 2: 数据获取 (Lazy Loading) ---\n\n useEffect(() => {\n // 只有在打开输入框且列表为空时才加载\n if (showInput && querierList.length === 0) {\n const fetchQueriers = async () => {\n const defaultQueriers: Querier[] = [\n {\n type: QuerierTypes.fullText,\n name: t(K.FULL_TEXT_SEARCH),\n disabled: false,\n showInApps: [],\n config: { url: FULL_TEXT_URL, searchPlaceholder: \"\" },\n },\n {\n type: QuerierTypes.ipSearch,\n name: t(K.IP_SEARCH),\n disabled: false,\n showInApps: [],\n config: { url: IP_SEARCH_URL, searchPlaceholder: \"\" },\n },\n {\n type: QuerierTypes.link,\n name: t(K.TICKET_SEARCH),\n disabled: false,\n showInApps: [],\n config: {\n url: ITSM_SEARCH_URL,\n searchPlaceholder: t(K.TICKET_SEARCH_PLACEHOLDER),\n },\n },\n ];\n\n try {\n const res = await InstanceApi_postSearchV3(\"QUERIER_CONFIG@EASYOPS\", {\n page: 1,\n page_size: 100,\n fields: [\"name\", \"type\", \"disabled\", \"config\", \"showInApps\"],\n });\n\n const apiQueriers =\n res.list?.map((item) => {\n const i = item as Querier;\n const config: QuerierConfig = i.config || {\n url: \"\",\n searchPlaceholder: \"\",\n };\n\n if (i.type === QuerierTypes.fullText) config.url = FULL_TEXT_URL;\n else if (i.type === QuerierTypes.ipSearch)\n config.url = IP_SEARCH_URL;\n else if (\n [\n QuerierTypes.instanceSearch,\n QuerierTypes.relationSearch,\n ].includes(i.type)\n ) {\n config.url = `${INSTANCE_SEARCH_URL}${i.name}?q=%{q}%`;\n }\n return { ...i, config };\n }) || [];\n\n setQuerierList(\n apiQueriers.length > 0 ? apiQueriers : defaultQueriers\n );\n } catch {\n setQuerierList(defaultQueriers);\n }\n };\n fetchQueriers();\n }\n }, [showInput, querierList.length]);\n\n // --- 逻辑优化 3: 选项过滤与选中状态 ---\n\n useEffect(() => {\n if (querierList.length === 0) return;\n\n const options = querierList\n .filter(\n (i) =>\n !i.disabled && (!i.showInApps?.length || i.showInApps.includes(appId))\n )\n .map((i) => ({ ...i, label: i.name, value: i.name }));\n\n setQuerierOptions(options);\n\n // 恢复上次选中的 Querier\n const lastSelectedName = STORAGE.getItem(getSelectedQuerierKey());\n const matched = options.find((i) => i.name === lastSelectedName);\n const defaultOption =\n options.find((i) => i.type === QuerierTypes.ipSearch) || options[0];\n\n setSelectedQuerier(matched || defaultOption);\n }, [querierList, appId]);\n\n // 读取历史记录\n useEffect(() => {\n if (selectedQuerier) {\n const historyKey = `${getRecentVisitsKey()}-${selectedQuerier.name}`;\n setVisits(STORAGE.getItem(historyKey) ?? []);\n }\n }, [selectedQuerier]);\n\n // --- 事件处理 ---\n\n const handleQuerierSelect = (val: string) => {\n STORAGE.setItem(getSelectedQuerierKey(), val);\n setSelectedQuerier(querierOptions.find((i) => i.name === val));\n };\n // istanbul ignore next\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\" && searchKey && selectedQuerier) {\n const historyKey = `${getRecentVisitsKey()}-${selectedQuerier.name}`;\n STORAGE.setItem(historyKey, uniq([searchKey, ...visits].slice(0, 5)));\n handleHistoryPush();\n }\n };\n\n const handleClear = () => setSearchKey(\"\");\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) =>\n setSearchKey(e.target.value);\n\n const handleSearchClick = () => {\n if (checkIsDirectJump()) {\n handleHistoryPush();\n } else {\n setShowInput(true);\n }\n };\n // istanbul ignore next\n const handleHistoryTagClick = (tag: string) => {\n if (selectedQuerier) {\n const historyKey = `${getRecentVisitsKey()}-${selectedQuerier.name}`;\n STORAGE.setItem(historyKey, uniq([tag, ...visits].slice(0, 5)));\n handleHistoryPush(tag);\n }\n };\n\n // 计算 Placeholder\n const getPlaceholder = () => {\n if (selectedQuerier?.config?.searchPlaceholder)\n return selectedQuerier.config.searchPlaceholder;\n if (selectedQuerier?.type === QuerierTypes.ipSearch)\n return t(K.IP_SEARCH_PLACEHOLDER);\n if (selectedQuerier?.type === QuerierTypes.fullText)\n return t(K.FULL_TEXT_SEARCH_PLACEHOLDER);\n return \"\";\n };\n\n return (\n <ConfigProvider\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider\n container={shadowRoot as ShadowRoot}\n cache={cache}\n hashPriority=\"high\"\n >\n <div style={{ position: \"relative\" }} ref={containerRef}>\n <div\n className={classNames(\"container\", {\n containerShowInput: showInput,\n inputContentSlideout: showInput === false,\n })}\n onClick={(e) => e.stopPropagation()}\n >\n <div\n className={classNames(\"inputContent\", {\n inputContentSlidein: showInput,\n inputContentSlideout: showInput === false,\n })}\n >\n <div className=\"input-addon-wrapper\">\n <span className=\"input-affix-wrapper\">\n <span className=\"input-before-addon\">\n <Select\n value={selectedQuerier?.value}\n getPopupContainer={(trigger) => trigger.parentElement}\n showSearch\n variant=\"borderless\"\n style={{ width: \"100px\" }}\n options={querierOptions}\n onChange={handleQuerierSelect}\n />\n </span>\n <input\n placeholder={getPlaceholder()}\n ref={inputRef}\n value={searchKey}\n onChange={handleChange}\n onKeyDown={handleInputKeyDown}\n />\n {!!searchKey && (\n <span className=\"input-suffix\">\n <WrappedIcon\n className=\"input-clear-icon\"\n lib=\"antd\"\n icon=\"close-circle\"\n theme=\"filled\"\n onClick={handleClear}\n />\n </span>\n )}\n </span>\n </div>\n </div>\n\n {!showInput && (\n <WrappedToolTip content={t(K.IP_SEARCH_TOOLTIP)} placement=\"left\">\n <WrappedButton\n onClick={handleSearchClick}\n className={classNames(\"button\", {\n buttonSildeint: showInput === false,\n })}\n shape=\"circle\"\n type=\"ghost\"\n buttonStyle={{\n border: \"none\",\n background: \"none\",\n fontSize: \"16px\",\n }}\n icon={{ icon: \"search\", theme: \"outlined\", lib: \"antd\" }}\n />\n </WrappedToolTip>\n )}\n </div>\n\n <div\n className={classNames(\"historySearchContainer\", {\n historySearchContainerSlidein: showInput,\n historySearchContainerSlideout: showInput === false,\n })}\n >\n <div className=\"historySearchContent\">\n <div className=\"latestSearchText\">{t(K.RECENT_SEARCH)}</div>\n <div className=\"latestSearchTagContainer\">\n {visits.map((i) => (\n <span\n key={i}\n className=\"latestSearchTagContent\"\n onClick={() => handleHistoryTagClick(i)}\n >\n <span className=\"latestSearchTagText\" title={i}>\n {i}\n </span>\n </span>\n ))}\n {!visits.length && (\n <div className=\"emptyText\">{t(K.NO_SEARCH_HISTORY)}</div>\n )}\n </div>\n </div>\n <div className=\"quickSearchTip\">{t(K.QUICK_SEARCH_TIP)}</div>\n </div>\n </div>\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n FULL_TEXT_SEARCH = \"FULL_TEXT_SEARCH\",\n IP_SEARCH = \"IP_SEARCH\",\n TICKET_SEARCH = \"TICKET_SEARCH\",\n TICKET_SEARCH_PLACEHOLDER = \"TICKET_SEARCH_PLACEHOLDER\",\n IP_SEARCH_PLACEHOLDER = \"IP_SEARCH_PLACEHOLDER\",\n FULL_TEXT_SEARCH_PLACEHOLDER = \"FULL_TEXT_SEARCH_PLACEHOLDER\",\n IP_SEARCH_TOOLTIP = \"IP_SEARCH_TOOLTIP\",\n RECENT_SEARCH = \"RECENT_SEARCH\",\n NO_SEARCH_HISTORY = \"NO_SEARCH_HISTORY\",\n QUICK_SEARCH_TIP = \"QUICK_SEARCH_TIP\",\n}\n\nconst en: Locale = {\n FULL_TEXT_SEARCH: \"Full-text search\",\n IP_SEARCH: \"IP search\",\n TICKET_SEARCH: \"Ticket search\",\n TICKET_SEARCH_PLACEHOLDER: \"Enter ticket number/title and other keywords\",\n IP_SEARCH_PLACEHOLDER:\n \"Enter IP to query hosts and related applications, systems and other resources\",\n FULL_TEXT_SEARCH_PLACEHOLDER:\n 'Search applications, hosts and other information, supports \"\" exact search',\n IP_SEARCH_TOOLTIP: \"IP Search\",\n RECENT_SEARCH: \"Recent Search\",\n NO_SEARCH_HISTORY: \"No search history\",\n QUICK_SEARCH_TIP: \"Quick Search (Cmd/Ctrl+K)\",\n};\n\nconst zh: Locale = {\n FULL_TEXT_SEARCH: \"全文搜索\",\n IP_SEARCH: \"ip搜索\",\n TICKET_SEARCH: \"工单搜索\",\n TICKET_SEARCH_PLACEHOLDER: \"输入工单编号/标题等关键字\",\n IP_SEARCH_PLACEHOLDER: \"输入IP查询主机关联的应用、系统等资源\",\n FULL_TEXT_SEARCH_PLACEHOLDER: '搜索应用、主机等信息,支持\"\"精确搜索',\n IP_SEARCH_TOOLTIP: \"IP搜索\",\n RECENT_SEARCH: \"最近搜索\",\n NO_SEARCH_HISTORY: \"暂无搜索记录\",\n QUICK_SEARCH_TIP: \"快捷搜索(Cmd/Ctrl+K)\",\n};\n\nexport const NS = \"bricks/nav/query-search\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","export class JsonStorage {\n constructor(storage) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"brick-next-\";\n this.storage = storage;\n this.prefix = prefix;\n }\n setItem(name, value) {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n getItem(name) {\n return JSON.parse(this.storage.getItem(this.prefix + name));\n }\n removeItem(name) {\n return this.storage.removeItem(this.prefix + name);\n }\n clear() {\n return this.storage.clear();\n }\n}\n//# sourceMappingURL=JsonStorage.js.map","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _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 }, _typeof(o);\n}","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.container{position:relative;width:32px;height:32px}.containerShowInput{width:500px}.inputContent{background:rgba(204,209,219,0.3);border-radius:3px;height:30px;position:absolute;right:0;width:0px;overflow:hidden}.inputContentSlidein{overflow:visible;animation:slidein 0.4s ease-in-out forwards}.inputContentSlideout{width:500px;animation:slideout 0.4s 0.2s ease-in-out forwards}input{flex:1;padding:0;margin:0;border:none;outline:none;font-size:14px;line-height:20px;color:inherit;background-color:transparent;cursor:inherit;width:100%}select{border:none;outline:none;width:150px;background:transparent}input:focus{border:none!important}input::placeholder{color:var(--color-disabled-text)}.button{position:absolute;right:0;top:0}.buttonSildeint{opacity:0;animation:btnSlidein 0.1ms 0.6s ease-in-out forwards}@keyframes btnSlidein{from{opacity:0}to{opacity:1}}@keyframes slidein{from{width:0px}to{width:500px}}@keyframes slideout{from{width:500px}to{width:0px}}.input-addon-wrapper{display:table;width:100%;line-height:22px}.input-affix-wrapper{display:inline-flex;position:relative;padding-bottom:4px;width:100%;transition:border-color 0.3s,box-shadow 0.3s;overflow:visible}.input-suffix,\n.input-before-addon{display:flex;flex:none;align-items:center;margin-left:4px;margin-right:4px;width:16px}.input-before-addon{width:100px}.input-clear-icon{margin-left:4px;font-size:12px;color:var(--text-color-disabled);cursor:pointer}.input-clear-icon:hover{color:var(--antd-text-color-secondary)}.historySearchContainer{width:500px;height:160px;box-shadow:0px 2px 6px 0px rgba(0,0,0,0.15);background-color:var(--antd-dropdown-menu-bg);top:35px;position:absolute;height:0px;right:0;overflow:hidden;border-radius:6px;z-index:1000}.historySearchContainerSlidein{top:35px;animation:historySlidein 0.4s 0.2s ease-in-out forwards}.historySearchContainerSlideout{animation:historySlideout 0.4s ease-in-out forwards}@keyframes historySlidein{from{height:0px}to{height:160px}}@keyframes historySlideout{from{height:160px}to{height:0px}}.quickSearchTip{width:140px;height:17px;font-family:PingFangSC,PingFang SC;font-weight:400;font-size:12px;color:var(--color-auxiliary-text);line-height:17px;text-align:left;font-style:normal;padding:8px 16px 8px 16px;width:484px;border-top:1px solid var(--color-border-divider-line)}.historySearchContent{height:103px;padding:16px 16px 8px 16px;overflow:auto}.latestSearchText{width:56px;height:20px;font-family:PingFangSC,PingFang SC;font-weight:400;font-size:14px;color:var(--local-card-description-color);line-height:20px;text-align:left;font-style:normal;margin-bottom:10px}.latestSearchTagText{height:17px;font-family:PingFangSC,PingFang SC;font-weight:400;font-size:14px;color:var(--color-strong-text);line-height:17px;text-align:center;font-style:normal;white-space:nowrap}.latestSearchTagContainer{display:flex;flex-wrap:wrap;row-gap:8px;column-gap:10px}.latestSearchTagContent{height:20px;background:var(--color-fill-bg-base-1);border-radius:3px;padding:1.5px 8px;cursor:pointer;max-width:480px;overflow:hidden;text-overflow:ellipsis}.emptyText{color:var(--text-color-secondary);text-align:center;width:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}"],"names":["module","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","id","_k","push","_setPrototypeOf","o","p","Object","setPrototypeOf","bind","__proto__","toPropertyKey","t","e","Symbol","toPrimitive","call","r","TypeError","String","setFunctionName","n","description","defineProperty","configurable","value","applyDecs2311","a","c","u","s","f","l","d","metadata","m","h","create","y","v","g","apply","b","applyDec","w","D","S","j","E","I","P","F","get","set","getOwnPropertyDescriptor","Error","name","N","O","z","A","H","K","kind","addInitializer","access","has","init","unshift","splice","enumerable","prototype","checkInRHS","hasOwn","hasOwnProperty","classNames","classes","arguments","arg","appendClass","parseValue","Array","isArray","includes","key","newClass","default","_defineProperty","obj","writable","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","initializeI18n","NS","locales","defineElement","createDecorators","STORAGE","JsonStorage","localStorage","FULL_TEXT_URL","IP_SEARCH_URL","ITSM_SEARCH_URL","INSTANCE_SEARCH_URL","WrappedIcon","wrapBrick","WrappedButton","WrappedSearch","onChange","onSearch","WrappedToolTip","_QuerySearch","QuerySearch","ReactNextElement","render","React","QuerySearchComponent","shadowRoot","_QuerySearch2","_initClass","_applyDecs","styleTexts","styleText","QuerierTypes","getOrgId","_auth$getAuth","auth","getAuth","org","getRecentVisitsKey","getSelectedQuerierKey","props","_getRuntime$getCurren","inputRef","useRef","containerRef","appId","getRuntime","getCurrentApp","currentTheme","useCurrentTheme","showInput","setShowInput","useState","searchKey","setSearchKey","visits","setVisits","querierList","setQuerierList","querierOptions","setQuerierOptions","selectedQuerier","setSelectedQuerier","cache","useMemo","createCache","checkIsDirectJump","useCallback","_shadowRoot$host","parentWidth","host","parentElement","clientWidth","document","documentElement","handleHistoryPush","q","_selectedQuerier$conf","targetUrl","config","url","cleanUrl","startsWith","queryTerm","to","replaceAll","getHistory","useEffect","handleGlobalKeyDown","test","navigator","userAgent","metaKey","ctrlKey","preventDefault","prevShow","window","addEventListener","removeEventListener","_inputRef$current","current","focus","handleClickOutside","composedPath","handleEscKey","async","defaultQueriers","type","fullText","FULL_TEXT_SEARCH","disabled","showInApps","searchPlaceholder","ipSearch","IP_SEARCH","link","TICKET_SEARCH","TICKET_SEARCH_PLACEHOLDER","_res$list","apiQueriers","InstanceApi_postSearchV3","page","page_size","fields","instanceSearch","relationSearch","fetchQueriers","options","filter","_i$showInApps","label","lastSelectedName","getItem","matched","find","defaultOption","_STORAGE$getItem","historyKey","ConfigProvider","theme","algorithm","darkAlgorithm","defaultAlgorithm","StyleProvider","container","hashPriority","style","position","ref","className","containerShowInput","inputContentSlideout","onClick","stopPropagation","inputContentSlidein","Select","getPopupContainer","trigger","showSearch","variant","width","val","setItem","placeholder","_selectedQuerier$conf2","IP_SEARCH_PLACEHOLDER","FULL_TEXT_SEARCH_PLACEHOLDER","target","onKeyDown","uniq","slice","lib","icon","handleClear","IP_SEARCH_TOOLTIP","placement","handleSearchClick","buttonSildeint","shape","buttonStyle","border","background","fontSize","historySearchContainerSlidein","historySearchContainerSlideout","RECENT_SEARCH","tag","handleHistoryTagClick","title","NO_SEARCH_HISTORY","QUICK_SEARCH_TIP","getPlaceholder","_checkInRHS","en","zh","i18n","getFixedT","constructor","storage","prefix","JSON","stringify","parse","removeItem","clear","_objectWithoutPropertiesLoose","source","excluded","sourceKeys","keys","indexOf","_typeof","iterator","___CSS_LOADER_EXPORT___","_extends","assign","ownKeys","getOwnPropertySymbols","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/query-search.e5330199.js","mappings":"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","sources":["webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///../../node_modules/classnames/index.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack:///./src/query-search/index.tsx","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///./src/query-search/i18n.ts","webpack:///../../node_modules/@next-shared/general/dist/esm/JsonStorage.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./src/query-search/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectSpread2.js"],"sourcesContent":["\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","import React, {\n useEffect,\n useState,\n useMemo,\n useRef,\n useCallback,\n} from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { initializeI18n } from \"@next-core/i18n\";\nimport { NS, locales, K, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\n\nimport type { Button, ButtonProps } from \"@next-bricks/basic/button\";\nimport classNames from \"classnames\";\nimport type {\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap,\n} from \"@next-bricks/form/search\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\n\nimport { getRuntime, getHistory } from \"@next-core/runtime\";\nimport { JsonStorage } from \"@next-shared/general/JsonStorage\";\nimport { auth } from \"@next-core/easyops-runtime\";\nimport { uniq } from \"lodash\";\nimport { Select, ConfigProvider, theme } from \"antd\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { InstanceApi_postSearchV3 } from \"@next-api-sdk/cmdb-sdk\";\nimport type { EoTooltip, ToolTipProps } from \"@next-bricks/basic/tooltip\";\nimport { useCurrentTheme } from \"@next-core/react-runtime\";\n\ninitializeI18n(NS, locales);\n\nconst { defineElement } = createDecorators();\n\n// --- 常量定义 ---\nconst STORAGE = new JsonStorage(localStorage);\nconst FULL_TEXT_URL = \"search/result?q=%{q}%\";\nconst IP_SEARCH_URL = \"search/new/ipSearch?q=%{q}%\";\nconst ITSM_SEARCH_URL = \"/itsc-ticket-center/ticket-list?q=%{q}%\";\nconst INSTANCE_SEARCH_URL = \"search/instance-or-relation-path/search/\";\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedButton = wrapBrick<Button, ButtonProps>(\"eo-button\");\nexport const WrappedSearch = wrapBrick<\n GeneralSearch,\n SearchProps,\n SearchEvents,\n SearchEventsMap\n>(\"eo-search\", {\n onChange: \"change\",\n onSearch: \"search\",\n});\nconst WrappedToolTip = wrapBrick<EoTooltip, ToolTipProps>(\"eo-tooltip\");\n\n/**\n * 综合搜索入口,支持全文检索、IP 搜索、工单搜索等多种查询模式,带搜索历史记录功能\n */\nexport\n@defineElement(\"nav.query-search\", {\n styleTexts: [styleText],\n})\nclass QuerySearch extends ReactNextElement implements QuerySearchProps {\n render() {\n return <QuerySearchComponent shadowRoot={this.shadowRoot} />;\n }\n}\n\nexport type QuerySearchProps = Omit<QuerySearchComponentProps, \"shadowRoot\">;\n\nexport interface QuerySearchComponentProps {\n shadowRoot: ShadowRoot | null;\n}\n\nenum QuerierTypes {\n fullText = \"fullText\",\n instanceSearch = \"instanceSearch\",\n relationSearch = \"relationSearch\",\n link = \"link\",\n ipSearch = \"ipSearch\",\n}\n\ninterface QuerierConfig {\n url: string;\n searchPlaceholder: string;\n}\n\ninterface Querier {\n name: string;\n type: QuerierTypes;\n disabled: boolean;\n showInApps: string[];\n instanceId?: string;\n config: QuerierConfig;\n}\n\ninterface QuerierOption extends Querier {\n label: string;\n value: string;\n}\n\n// 获取 Storage Key 的辅助函数\nconst getOrgId = () => (auth.getAuth() as Record<string, string>)?.org || \"\";\nconst getRecentVisitsKey = () => `querier-search-recent-visits:${getOrgId()}`;\nconst getSelectedQuerierKey = () => `querier-search-querier:${getOrgId()}`;\n\nexport function QuerySearchComponent(props: QuerySearchComponentProps) {\n const { shadowRoot } = props;\n const inputRef = useRef<HTMLInputElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const appId = getRuntime().getCurrentApp()?.id || \"\";\n const currentTheme = useCurrentTheme();\n\n // State\n /**\n * null: 初始化(无动画)\n * false: 收起(播放收起动画)\n * true: 展开\n */\n const [showInput, setShowInput] = useState<boolean | null>(null);\n const [searchKey, setSearchKey] = useState<string>(\"\");\n const [visits, setVisits] = useState<string[]>([]);\n\n // Data State\n const [querierList, setQuerierList] = useState<Querier[]>([]);\n const [querierOptions, setQuerierOptions] = useState<QuerierOption[]>([]);\n const [selectedQuerier, setSelectedQuerier] = useState<QuerierOption>();\n\n // Style Cache\n const cache = useMemo(() => createCache(), []);\n\n // 检测是否应该直接跳转 (响应式布局逻辑)\n const checkIsDirectJump = useCallback((): boolean => {\n const parentWidth = shadowRoot?.host?.parentElement?.clientWidth || 0;\n return document.documentElement.clientWidth - parentWidth - 500 < 200;\n }, [shadowRoot]);\n\n // 处理跳转逻辑\n const handleHistoryPush = useCallback(\n (q?: string) => {\n // 如果还没加载 querier,默认去 IP 搜索\n const targetUrl =\n showInput && selectedQuerier?.config?.url\n ? selectedQuerier.config.url\n : IP_SEARCH_URL;\n const cleanUrl = targetUrl.startsWith(\"/\") ? targetUrl : \"/\" + targetUrl;\n const queryTerm = q || searchKey || \"\";\n const to = cleanUrl.replaceAll(\"%{q}%\", queryTerm);\n getHistory().push(to);\n },\n [showInput, selectedQuerier, searchKey]\n );\n\n // --- 核心逻辑优化 1: 分离键盘事件监听 ---\n\n // 1.1 全局快捷键监听 (Cmd/Ctrl + K) - 只绑定一次\n // istanbul ignore next\n useEffect(() => {\n const handleGlobalKeyDown = (e: KeyboardEvent) => {\n const isMac = /Mac|iPod|iPhone|iPad/.test(navigator.userAgent);\n const modKey = isMac ? e.metaKey : e.ctrlKey;\n\n if (modKey && e.key === \"k\") {\n e.preventDefault();\n // 使用 functional update 获取最新状态,避免频繁解绑\n setShowInput((prevShow) => {\n if (!prevShow) {\n // 如果当前是关闭状态,检查是否直接跳转\n if (checkIsDirectJump()) {\n // 注意:这里可能取不到最新的 selectedQuerier,如果依赖它,需要调整逻辑\n // 但 checkIsDirectJump 路径下通常走 IP Search 或默认\n // 为简化,此处仅触发打开,或需将 historyPush 移出 effect\n // *修正*: 为了保持原逻辑,这里若 directJump 为 true,我们在 state 变化副作用里处理,或者简单地只设为 true\n // 原逻辑是: 没 showInput -> directJump ? jump : show\n return true;\n }\n return true;\n }\n return prevShow;\n });\n\n // 特殊处理 DirectJump: 如果变为 true 后需要立即跳转,\n // 最好是在点击 button 时判断。快捷键场景下,先打开 Input 也是合理的交互。\n // 如果严格遵循原逻辑,需要在 effect 外部处理 jump。\n if (checkIsDirectJump() && !showInput) {\n // 这里 showInput 是闭包旧值,需小心\n handleHistoryPush();\n setShowInput(false); // 保持关闭\n }\n }\n };\n\n window.addEventListener(\"keydown\", handleGlobalKeyDown);\n return () => window.removeEventListener(\"keydown\", handleGlobalKeyDown);\n }, [checkIsDirectJump, handleHistoryPush]); // 依赖项较少\n\n // 1.2 局部交互监听 (点击外部关闭, ESC) - 仅当 showInput 为 true 时生效\n // istanbul ignore next\n useEffect(() => {\n if (!showInput) return;\n\n // 自动聚焦\n inputRef.current?.focus();\n\n const handleClickOutside = (e: MouseEvent) => {\n if (\n containerRef.current &&\n !e.composedPath().includes(containerRef.current)\n ) {\n setShowInput(false);\n }\n };\n\n const handleEscKey = (e: KeyboardEvent) => {\n if (e.key === \"Escape\" || e.key === \"Esc\") {\n setShowInput(false);\n }\n };\n\n // 关键修复:添加时使用了 capture: true\n window.addEventListener(\"click\", handleClickOutside, true);\n window.addEventListener(\"keydown\", handleEscKey);\n\n return () => {\n // 关键修复:移除时必须保持 capture: true,否则无法移除\n window.removeEventListener(\"click\", handleClickOutside, true);\n window.removeEventListener(\"keydown\", handleEscKey);\n };\n }, [showInput]);\n\n // --- 核心逻辑优化 2: 数据获取 (Lazy Loading) ---\n\n useEffect(() => {\n // 只有在打开输入框且列表为空时才加载\n if (showInput && querierList.length === 0) {\n const fetchQueriers = async () => {\n const defaultQueriers: Querier[] = [\n {\n type: QuerierTypes.fullText,\n name: t(K.FULL_TEXT_SEARCH),\n disabled: false,\n showInApps: [],\n config: { url: FULL_TEXT_URL, searchPlaceholder: \"\" },\n },\n {\n type: QuerierTypes.ipSearch,\n name: t(K.IP_SEARCH),\n disabled: false,\n showInApps: [],\n config: { url: IP_SEARCH_URL, searchPlaceholder: \"\" },\n },\n {\n type: QuerierTypes.link,\n name: t(K.TICKET_SEARCH),\n disabled: false,\n showInApps: [],\n config: {\n url: ITSM_SEARCH_URL,\n searchPlaceholder: t(K.TICKET_SEARCH_PLACEHOLDER),\n },\n },\n ];\n\n try {\n const res = await InstanceApi_postSearchV3(\"QUERIER_CONFIG@EASYOPS\", {\n page: 1,\n page_size: 100,\n fields: [\"name\", \"type\", \"disabled\", \"config\", \"showInApps\"],\n });\n\n const apiQueriers =\n res.list?.map((item) => {\n const i = item as Querier;\n const config: QuerierConfig = i.config || {\n url: \"\",\n searchPlaceholder: \"\",\n };\n\n if (i.type === QuerierTypes.fullText) config.url = FULL_TEXT_URL;\n else if (i.type === QuerierTypes.ipSearch)\n config.url = IP_SEARCH_URL;\n else if (\n [\n QuerierTypes.instanceSearch,\n QuerierTypes.relationSearch,\n ].includes(i.type)\n ) {\n config.url = `${INSTANCE_SEARCH_URL}${i.name}?q=%{q}%`;\n }\n return { ...i, config };\n }) || [];\n\n setQuerierList(\n apiQueriers.length > 0 ? apiQueriers : defaultQueriers\n );\n } catch {\n setQuerierList(defaultQueriers);\n }\n };\n fetchQueriers();\n }\n }, [showInput, querierList.length]);\n\n // --- 逻辑优化 3: 选项过滤与选中状态 ---\n\n useEffect(() => {\n if (querierList.length === 0) return;\n\n const options = querierList\n .filter(\n (i) =>\n !i.disabled && (!i.showInApps?.length || i.showInApps.includes(appId))\n )\n .map((i) => ({ ...i, label: i.name, value: i.name }));\n\n setQuerierOptions(options);\n\n // 恢复上次选中的 Querier\n const lastSelectedName = STORAGE.getItem(getSelectedQuerierKey());\n const matched = options.find((i) => i.name === lastSelectedName);\n const defaultOption =\n options.find((i) => i.type === QuerierTypes.ipSearch) || options[0];\n\n setSelectedQuerier(matched || defaultOption);\n }, [querierList, appId]);\n\n // 读取历史记录\n useEffect(() => {\n if (selectedQuerier) {\n const historyKey = `${getRecentVisitsKey()}-${selectedQuerier.name}`;\n setVisits(STORAGE.getItem(historyKey) ?? []);\n }\n }, [selectedQuerier]);\n\n // --- 事件处理 ---\n\n const handleQuerierSelect = (val: string) => {\n STORAGE.setItem(getSelectedQuerierKey(), val);\n setSelectedQuerier(querierOptions.find((i) => i.name === val));\n };\n // istanbul ignore next\n const handleInputKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\" && searchKey && selectedQuerier) {\n const historyKey = `${getRecentVisitsKey()}-${selectedQuerier.name}`;\n STORAGE.setItem(historyKey, uniq([searchKey, ...visits].slice(0, 5)));\n handleHistoryPush();\n }\n };\n\n const handleClear = () => setSearchKey(\"\");\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) =>\n setSearchKey(e.target.value);\n\n const handleSearchClick = () => {\n if (checkIsDirectJump()) {\n handleHistoryPush();\n } else {\n setShowInput(true);\n }\n };\n // istanbul ignore next\n const handleHistoryTagClick = (tag: string) => {\n if (selectedQuerier) {\n const historyKey = `${getRecentVisitsKey()}-${selectedQuerier.name}`;\n STORAGE.setItem(historyKey, uniq([tag, ...visits].slice(0, 5)));\n handleHistoryPush(tag);\n }\n };\n\n // 计算 Placeholder\n const getPlaceholder = () => {\n if (selectedQuerier?.config?.searchPlaceholder)\n return selectedQuerier.config.searchPlaceholder;\n if (selectedQuerier?.type === QuerierTypes.ipSearch)\n return t(K.IP_SEARCH_PLACEHOLDER);\n if (selectedQuerier?.type === QuerierTypes.fullText)\n return t(K.FULL_TEXT_SEARCH_PLACEHOLDER);\n return \"\";\n };\n\n return (\n <ConfigProvider\n theme={{\n algorithm:\n currentTheme === \"dark-v2\"\n ? theme.darkAlgorithm\n : theme.defaultAlgorithm,\n }}\n >\n <StyleProvider\n container={shadowRoot as ShadowRoot}\n cache={cache}\n hashPriority=\"high\"\n >\n <div style={{ position: \"relative\" }} ref={containerRef}>\n <div\n className={classNames(\"container\", {\n containerShowInput: showInput,\n inputContentSlideout: showInput === false,\n })}\n onClick={(e) => e.stopPropagation()}\n >\n <div\n className={classNames(\"inputContent\", {\n inputContentSlidein: showInput,\n inputContentSlideout: showInput === false,\n })}\n >\n <div className=\"input-addon-wrapper\">\n <span className=\"input-affix-wrapper\">\n <span className=\"input-before-addon\">\n <Select\n value={selectedQuerier?.value}\n getPopupContainer={(trigger) => trigger.parentElement}\n showSearch\n variant=\"borderless\"\n style={{ width: \"100px\" }}\n options={querierOptions}\n onChange={handleQuerierSelect}\n />\n </span>\n <input\n placeholder={getPlaceholder()}\n ref={inputRef}\n value={searchKey}\n onChange={handleChange}\n onKeyDown={handleInputKeyDown}\n />\n {!!searchKey && (\n <span className=\"input-suffix\">\n <WrappedIcon\n className=\"input-clear-icon\"\n lib=\"antd\"\n icon=\"close-circle\"\n theme=\"filled\"\n onClick={handleClear}\n />\n </span>\n )}\n </span>\n </div>\n </div>\n\n {!showInput && (\n <WrappedToolTip content={t(K.IP_SEARCH_TOOLTIP)} placement=\"left\">\n <WrappedButton\n onClick={handleSearchClick}\n className={classNames(\"button\", {\n buttonSildeint: showInput === false,\n })}\n shape=\"circle\"\n type=\"ghost\"\n buttonStyle={{\n border: \"none\",\n background: \"none\",\n fontSize: \"16px\",\n }}\n icon={{ icon: \"search\", theme: \"outlined\", lib: \"antd\" }}\n />\n </WrappedToolTip>\n )}\n </div>\n\n <div\n className={classNames(\"historySearchContainer\", {\n historySearchContainerSlidein: showInput,\n historySearchContainerSlideout: showInput === false,\n })}\n >\n <div className=\"historySearchContent\">\n <div className=\"latestSearchText\">{t(K.RECENT_SEARCH)}</div>\n <div className=\"latestSearchTagContainer\">\n {visits.map((i) => (\n <span\n key={i}\n className=\"latestSearchTagContent\"\n onClick={() => handleHistoryTagClick(i)}\n >\n <span className=\"latestSearchTagText\" title={i}>\n {i}\n </span>\n </span>\n ))}\n {!visits.length && (\n <div className=\"emptyText\">{t(K.NO_SEARCH_HISTORY)}</div>\n )}\n </div>\n </div>\n <div className=\"quickSearchTip\">{t(K.QUICK_SEARCH_TIP)}</div>\n </div>\n </div>\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","import { i18n } from \"@next-core/i18n\";\n\nexport enum K {\n FULL_TEXT_SEARCH = \"FULL_TEXT_SEARCH\",\n IP_SEARCH = \"IP_SEARCH\",\n TICKET_SEARCH = \"TICKET_SEARCH\",\n TICKET_SEARCH_PLACEHOLDER = \"TICKET_SEARCH_PLACEHOLDER\",\n IP_SEARCH_PLACEHOLDER = \"IP_SEARCH_PLACEHOLDER\",\n FULL_TEXT_SEARCH_PLACEHOLDER = \"FULL_TEXT_SEARCH_PLACEHOLDER\",\n IP_SEARCH_TOOLTIP = \"IP_SEARCH_TOOLTIP\",\n RECENT_SEARCH = \"RECENT_SEARCH\",\n NO_SEARCH_HISTORY = \"NO_SEARCH_HISTORY\",\n QUICK_SEARCH_TIP = \"QUICK_SEARCH_TIP\",\n}\n\nconst en: Locale = {\n FULL_TEXT_SEARCH: \"Full-text search\",\n IP_SEARCH: \"IP search\",\n TICKET_SEARCH: \"Ticket search\",\n TICKET_SEARCH_PLACEHOLDER: \"Enter ticket number/title and other keywords\",\n IP_SEARCH_PLACEHOLDER:\n \"Enter IP to query hosts and related applications, systems and other resources\",\n FULL_TEXT_SEARCH_PLACEHOLDER:\n 'Search applications, hosts and other information, supports \"\" exact search',\n IP_SEARCH_TOOLTIP: \"IP Search\",\n RECENT_SEARCH: \"Recent Search\",\n NO_SEARCH_HISTORY: \"No search history\",\n QUICK_SEARCH_TIP: \"Quick Search (Cmd/Ctrl+K)\",\n};\n\nconst zh: Locale = {\n FULL_TEXT_SEARCH: \"全文搜索\",\n IP_SEARCH: \"ip搜索\",\n TICKET_SEARCH: \"工单搜索\",\n TICKET_SEARCH_PLACEHOLDER: \"输入工单编号/标题等关键字\",\n IP_SEARCH_PLACEHOLDER: \"输入IP查询主机关联的应用、系统等资源\",\n FULL_TEXT_SEARCH_PLACEHOLDER: '搜索应用、主机等信息,支持\"\"精确搜索',\n IP_SEARCH_TOOLTIP: \"IP搜索\",\n RECENT_SEARCH: \"最近搜索\",\n NO_SEARCH_HISTORY: \"暂无搜索记录\",\n QUICK_SEARCH_TIP: \"快捷搜索(Cmd/Ctrl+K)\",\n};\n\nexport const NS = \"bricks/nav/query-search\";\n\nexport const locales = { en, zh };\n\nexport const t = i18n.getFixedT(null, NS);\n\ntype Locale = { [k in K]: string } & {\n [k in K as `${k}_plural`]?: string;\n};\n","export class JsonStorage {\n constructor(storage) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"brick-next-\";\n this.storage = storage;\n this.prefix = prefix;\n }\n setItem(name, value) {\n this.storage.setItem(this.prefix + name, JSON.stringify(value));\n }\n getItem(name) {\n return JSON.parse(this.storage.getItem(this.prefix + name));\n }\n removeItem(name) {\n return this.storage.removeItem(this.prefix + name);\n }\n clear() {\n return this.storage.clear();\n }\n}\n//# sourceMappingURL=JsonStorage.js.map","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _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 }, _typeof(o);\n}","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:inline-block}:host([hidden]){display:none}.container{position:relative;width:32px;height:32px}.containerShowInput{width:500px}.inputContent{background:rgba(204,209,219,0.3);border-radius:3px;height:30px;position:absolute;right:0;width:0px;overflow:hidden}.inputContentSlidein{overflow:visible;animation:slidein 0.4s ease-in-out forwards}.inputContentSlideout{width:500px;animation:slideout 0.4s 0.2s ease-in-out forwards}input{flex:1;padding:0;margin:0;border:none;outline:none;font-size:14px;line-height:20px;color:inherit;background-color:transparent;cursor:inherit;width:100%}select{border:none;outline:none;width:150px;background:transparent}input:focus{border:none!important}input::placeholder{color:var(--color-disabled-text)}.button{position:absolute;right:0;top:0}.buttonSildeint{opacity:0;animation:btnSlidein 0.1ms 0.6s ease-in-out forwards}@keyframes btnSlidein{from{opacity:0}to{opacity:1}}@keyframes slidein{from{width:0px}to{width:500px}}@keyframes slideout{from{width:500px}to{width:0px}}.input-addon-wrapper{display:table;width:100%;line-height:22px}.input-affix-wrapper{display:inline-flex;position:relative;padding-bottom:4px;width:100%;transition:border-color 0.3s,box-shadow 0.3s;overflow:visible}.input-suffix,\n.input-before-addon{display:flex;flex:none;align-items:center;margin-left:4px;margin-right:4px;width:16px}.input-before-addon{width:100px}.input-clear-icon{margin-left:4px;font-size:12px;color:var(--text-color-disabled);cursor:pointer}.input-clear-icon:hover{color:var(--antd-text-color-secondary)}.historySearchContainer{width:500px;height:160px;box-shadow:0px 2px 6px 0px rgba(0,0,0,0.15);background-color:var(--antd-dropdown-menu-bg);top:35px;position:absolute;height:0px;right:0;overflow:hidden;border-radius:6px;z-index:1000}.historySearchContainerSlidein{top:35px;animation:historySlidein 0.4s 0.2s ease-in-out forwards}.historySearchContainerSlideout{animation:historySlideout 0.4s ease-in-out forwards}@keyframes historySlidein{from{height:0px}to{height:160px}}@keyframes historySlideout{from{height:160px}to{height:0px}}.quickSearchTip{width:140px;height:17px;font-family:PingFangSC,PingFang SC;font-weight:400;font-size:12px;color:var(--color-auxiliary-text);line-height:17px;text-align:left;font-style:normal;padding:8px 16px 8px 16px;width:484px;border-top:1px solid var(--color-border-divider-line)}.historySearchContent{height:103px;padding:16px 16px 8px 16px;overflow:auto}.latestSearchText{width:56px;height:20px;font-family:PingFangSC,PingFang SC;font-weight:400;font-size:14px;color:var(--local-card-description-color);line-height:20px;text-align:left;font-style:normal;margin-bottom:10px}.latestSearchTagText{height:17px;font-family:PingFangSC,PingFang SC;font-weight:400;font-size:14px;color:var(--color-strong-text);line-height:17px;text-align:center;font-style:normal;white-space:nowrap}.latestSearchTagContainer{display:flex;flex-wrap:wrap;row-gap:8px;column-gap:10px}.latestSearchTagContent{height:20px;background:var(--color-fill-bg-base-1);border-radius:3px;padding:1.5px 8px;cursor:pointer;max-width:480px;overflow:hidden;text-overflow:ellipsis}.emptyText{color:var(--text-color-secondary);text-align:center;width:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}"],"names":["module","exports","cssWithMappingToString","list","toString","this","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","id","_k","push","_setPrototypeOf","o","p","Object","setPrototypeOf","bind","__proto__","toPropertyKey","t","e","Symbol","toPrimitive","call","r","TypeError","String","setFunctionName","n","description","defineProperty","configurable","value","applyDecs2311","a","c","u","s","f","l","d","metadata","m","h","create","y","v","g","apply","b","applyDec","w","D","S","j","E","I","P","F","get","set","getOwnPropertyDescriptor","Error","name","N","O","z","A","H","K","kind","addInitializer","access","has","init","unshift","splice","enumerable","prototype","checkInRHS","hasOwn","hasOwnProperty","classNames","classes","arguments","arg","appendClass","parseValue","Array","isArray","includes","key","newClass","default","_defineProperty","obj","writable","asyncGeneratorStep","gen","resolve","reject","_next","_throw","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","initializeI18n","NS","locales","defineElement","createDecorators","STORAGE","JsonStorage","localStorage","FULL_TEXT_URL","IP_SEARCH_URL","ITSM_SEARCH_URL","INSTANCE_SEARCH_URL","WrappedIcon","wrapBrick","WrappedButton","WrappedSearch","onChange","onSearch","WrappedToolTip","_QuerySearch","QuerySearch","ReactNextElement","render","React","QuerySearchComponent","shadowRoot","_QuerySearch2","_initClass","_applyDecs","styleTexts","styleText","QuerierTypes","getOrgId","_auth$getAuth","auth","getAuth","org","getRecentVisitsKey","getSelectedQuerierKey","props","_getRuntime$getCurren","inputRef","useRef","containerRef","appId","getRuntime","getCurrentApp","currentTheme","useCurrentTheme","showInput","setShowInput","useState","searchKey","setSearchKey","visits","setVisits","querierList","setQuerierList","querierOptions","setQuerierOptions","selectedQuerier","setSelectedQuerier","cache","useMemo","createCache","checkIsDirectJump","useCallback","_shadowRoot$host","parentWidth","host","parentElement","clientWidth","document","documentElement","handleHistoryPush","q","_selectedQuerier$conf","targetUrl","config","url","cleanUrl","startsWith","queryTerm","to","replaceAll","getHistory","useEffect","handleGlobalKeyDown","test","navigator","userAgent","metaKey","ctrlKey","preventDefault","prevShow","window","addEventListener","removeEventListener","_inputRef$current","current","focus","handleClickOutside","composedPath","handleEscKey","async","defaultQueriers","type","fullText","FULL_TEXT_SEARCH","disabled","showInApps","searchPlaceholder","ipSearch","IP_SEARCH","link","TICKET_SEARCH","TICKET_SEARCH_PLACEHOLDER","_res$list","apiQueriers","InstanceApi_postSearchV3","page","page_size","fields","instanceSearch","relationSearch","fetchQueriers","options","filter","_i$showInApps","label","lastSelectedName","getItem","matched","find","defaultOption","_STORAGE$getItem","historyKey","ConfigProvider","theme","algorithm","darkAlgorithm","defaultAlgorithm","StyleProvider","container","hashPriority","style","position","ref","className","containerShowInput","inputContentSlideout","onClick","stopPropagation","inputContentSlidein","Select","getPopupContainer","trigger","showSearch","variant","width","val","setItem","placeholder","_selectedQuerier$conf2","IP_SEARCH_PLACEHOLDER","FULL_TEXT_SEARCH_PLACEHOLDER","target","onKeyDown","uniq","slice","lib","icon","handleClear","IP_SEARCH_TOOLTIP","placement","handleSearchClick","buttonSildeint","shape","buttonStyle","border","background","fontSize","historySearchContainerSlidein","historySearchContainerSlideout","RECENT_SEARCH","tag","handleHistoryTagClick","title","NO_SEARCH_HISTORY","QUICK_SEARCH_TIP","getPlaceholder","_checkInRHS","en","zh","i18n","getFixedT","constructor","storage","prefix","JSON","stringify","parse","removeItem","clear","_objectWithoutPropertiesLoose","source","excluded","sourceKeys","keys","indexOf","_typeof","iterator","___CSS_LOADER_EXPORT___","_extends","assign","ownKeys","getOwnPropertySymbols","_objectSpread2","forEach","getOwnPropertyDescriptors","defineProperties"],"sourceRoot":""}
@@ -29,24 +29,24 @@
29
29
  "eo-sidebar-menu-group": {
30
30
  "doc": "---\ntagName: eo-sidebar-menu-group\ndisplayName: WrappedEoSidebarMenuGroup\ndescription: 侧栏菜单分组\ncategory: navigation\nsource: \"@next-bricks/nav\"\n---\n\n# eo-sidebar-menu-group\n\n> 侧栏菜单分组\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| ------------- | --------- | ---- | ------ | -------------------- |\n| collapsable | `boolean` | 否 | - | 是否允许折叠 |\n| collapsed | `boolean` | 否 | - | 是否折叠 |\n| selected | `boolean` | 否 | - | 是否选中 |\n| menuCollapsed | `boolean` | 否 | - | 菜单整体是否收起状态 |\n\n## Slots\n\n| 名称 | 说明 |\n| ----- | -------- |\n| title | 分组标题 |\n\n## Examples\n\n### Basic\n\n展示侧栏菜单分组的基本用法,通过 `title` 插槽设置分组标题,默认插槽放置菜单项。\n\n```yaml preview\n- brick: eo-sidebar-menu-group\n properties:\n style:\n width: 196px\n children:\n - brick: span\n slot: title\n properties:\n textContent: \"菜单分组\"\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 1\"\n icon:\n lib: easyops\n category: second-menu\n icon: advanced-settings-second-menu\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 2\"\n icon:\n lib: easyops\n category: second-menu\n icon: alibaba-cloud-disk-second-menu\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 3\"\n icon:\n lib: easyops\n category: second-menu\n icon: advanced-settings-second-menu\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-sidebar-menu-group style=\"width: 196px\">\n# <span slot=\"title\">菜单分组</span>\n# <eo-sidebar-menu-item id=\"brick-1\">菜单项 1</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item id=\"brick-2\">菜单项 2</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item id=\"brick-3\">菜单项 3</eo-sidebar-menu-item>\n# </eo-sidebar-menu-group>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"advanced-settings-second-menu\",\n# };\n# \n# const brick_2 = document.getElementById(\"brick-2\");\n# brick_2.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"alibaba-cloud-disk-second-menu\",\n# };\n# \n# const brick_3 = document.getElementById(\"brick-3\");\n# brick_3.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"advanced-settings-second-menu\",\n# };\n# </script>\n# \n```\n\n### 可折叠分组\n\n启用 `collapsable` 后,点击分组标题可展开/收起该分组。\n\n```yaml preview\n- brick: eo-sidebar-menu-group\n properties:\n style:\n width: 196px\n collapsable: true\n collapsed: false\n children:\n - brick: span\n slot: title\n properties:\n textContent: \"可折叠分组\"\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 1\"\n icon:\n lib: easyops\n category: second-menu\n icon: advanced-settings-second-menu\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 2\"\n icon:\n lib: easyops\n category: second-menu\n icon: alibaba-cloud-disk-second-menu\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-sidebar-menu-group style=\"width: 196px\" collapsable>\n# <span slot=\"title\">可折叠分组</span>\n# <eo-sidebar-menu-item id=\"brick-1\">菜单项 1</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item id=\"brick-2\">菜单项 2</eo-sidebar-menu-item>\n# </eo-sidebar-menu-group>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"advanced-settings-second-menu\",\n# };\n# \n# const brick_2 = document.getElementById(\"brick-2\");\n# brick_2.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"alibaba-cloud-disk-second-menu\",\n# };\n# </script>\n# \n```\n"
31
31
  },
32
- "eo-sidebar-menu": {
33
- "doc": "---\ntagName: eo-sidebar-menu\ndisplayName: WrappedEoSidebarMenu\ndescription: 侧栏菜单\ncategory: navigation\nsource: \"@next-bricks/nav\"\n---\n\n# eo-sidebar-menu\n\n> 侧栏菜单\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| ------------- | --------- | ---- | ------ | -------------------- |\n| menuCollapsed | `boolean` | 否 | - | 菜单整体是否收起状态 |\n\n## Examples\n\n### Basic\n\n展示侧栏菜单的基本用法,可包含菜单项、菜单分组和子菜单,支持整体收起/展开切换。\n\n```yaml preview gap\n- brick: eo-button\n context:\n - name: menuCollapsed\n value: false\n properties:\n type: primary\n textContent: switch collapsed\n events:\n click:\n - action: context.replace\n args:\n - menuCollapsed\n - <% !CTX.menuCollapsed %>\n- brick: eo-sidebar-menu\n properties:\n id: sidebar-menu\n menuCollapsed: <%= CTX.menuCollapsed %>\n style: \"<%= { width: CTX.menuCollapsed ? '40px' : '196px' } %>\"\n children:\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 1\"\n icon:\n lib: easyops\n category: second-menu\n icon: gaussdb-for-opengauss-second-menu\n - brick: eo-sidebar-menu-group\n children:\n - brick: span\n slot: title\n properties:\n textContent: \"菜单分组\"\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 2\"\n icon:\n lib: easyops\n category: second-menu\n icon: firewall-second-menu\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 3\"\n icon:\n lib: easyops\n category: second-menu\n icon: host-resources-second-menu\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 4\"\n icon:\n lib: easyops\n category: second-menu\n icon: loadbalance-second-menu\n - brick: eo-sidebar-menu-submenu\n properties:\n icon:\n lib: easyops\n category: second-menu\n icon: oceanbase-second-menu\n children:\n - brick: span\n slot: title\n properties:\n textContent: \"子菜单\"\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 5\"\n icon:\n lib: easyops\n category: second-menu\n icon: nginx-second-menu\n inSubmenu: true\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 6\"\n icon:\n lib: easyops\n category: second-menu\n icon: process-task-second-menu\n inSubmenu: true\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 7\"\n icon:\n lib: easyops\n category: second-menu\n icon: persistent-volume-statement-second-menu\n inSubmenu: true\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-button type=\"primary\" id=\"brick-1\">switch collapsed</eo-button>\n# <eo-sidebar-menu menu-collapsed id=\"sidebar-menu\">\n# <eo-sidebar-menu-item id=\"brick-2\">菜单项 1</eo-sidebar-menu-item>\n# <eo-sidebar-menu-group>\n# <span slot=\"title\">菜单分组</span>\n# <eo-sidebar-menu-item id=\"brick-3\">菜单项 2</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item id=\"brick-4\">菜单项 3</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item id=\"brick-5\">菜单项 4</eo-sidebar-menu-item>\n# </eo-sidebar-menu-group>\n# <eo-sidebar-menu-submenu id=\"brick-6\">\n# <span slot=\"title\">子菜单</span>\n# <eo-sidebar-menu-item in-submenu id=\"brick-7\"\n# >菜单项 5</eo-sidebar-menu-item\n# >\n# <eo-sidebar-menu-item in-submenu id=\"brick-8\"\n# >菜单项 6</eo-sidebar-menu-item\n# >\n# <eo-sidebar-menu-item in-submenu id=\"brick-9\"\n# >菜单项 7</eo-sidebar-menu-item\n# >\n# </eo-sidebar-menu-submenu>\n# </eo-sidebar-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"click\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# \n# const brick_2 = document.getElementById(\"brick-2\");\n# brick_2.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"gaussdb-for-opengauss-second-menu\",\n# };\n# \n# const brick_3 = document.getElementById(\"brick-3\");\n# brick_3.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"firewall-second-menu\",\n# };\n# \n# const brick_4 = document.getElementById(\"brick-4\");\n# brick_4.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"host-resources-second-menu\",\n# };\n# \n# const brick_5 = document.getElementById(\"brick-5\");\n# brick_5.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"loadbalance-second-menu\",\n# };\n# \n# const brick_6 = document.getElementById(\"brick-6\");\n# brick_6.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"oceanbase-second-menu\",\n# };\n# \n# const brick_7 = document.getElementById(\"brick-7\");\n# brick_7.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"nginx-second-menu\",\n# };\n# \n# const brick_8 = document.getElementById(\"brick-8\");\n# brick_8.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"process-task-second-menu\",\n# };\n# \n# const brick_9 = document.getElementById(\"brick-9\");\n# brick_9.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"persistent-volume-statement-second-menu\",\n# };\n# </script>\n# \n```\n"
34
- },
35
32
  "eo-sidebar-menu-submenu": {
36
33
  "doc": "---\ntagName: eo-sidebar-menu-submenu\ndisplayName: WrappedEoSidebarMenuSubmenu\ndescription: 侧栏菜单子菜单\ncategory: navigation\nsource: \"@next-bricks/nav\"\n---\n\n# eo-sidebar-menu-submenu\n\n> 侧栏菜单子菜单\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| ------------- | ------------------ | ---- | ------ | -------------------- |\n| icon | `GeneralIconProps` | 否 | - | 菜单的图标 |\n| selected | `boolean` | 否 | - | 是否选中 |\n| collapsed | `boolean` | 否 | - | 是否折叠 |\n| menuCollapsed | `boolean` | 否 | - | 菜单整体是否收起状态 |\n\n## Slots\n\n| 名称 | 说明 |\n| ----- | ---------- |\n| title | 子菜单标题 |\n\n## Examples\n\n### Basic\n\n展示侧栏子菜单的基本用法,通过 `title` 插槽设置标题,默认插槽放置子菜单项,点击标题可切换展开/收起。\n\n```yaml preview\n- brick: eo-sidebar-menu-submenu\n properties:\n style:\n width: 196px\n icon:\n lib: antd\n icon: menu\n theme: outlined\n children:\n - brick: span\n slot: title\n properties:\n textContent: \"子菜单\"\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 1\"\n icon:\n lib: easyops\n category: second-menu\n icon: availability-zone-second-menu\n inSubmenu: true\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 2\"\n inSubmenu: true\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 3\"\n inSubmenu: true\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-sidebar-menu-submenu style=\"width: 196px\" id=\"brick-1\">\n# <span slot=\"title\">子菜单</span>\n# <eo-sidebar-menu-item in-submenu id=\"brick-2\">菜单项 1</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item in-submenu>菜单项 2</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item in-submenu>菜单项 3</eo-sidebar-menu-item>\n# </eo-sidebar-menu-submenu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.icon = {\n# lib: \"antd\",\n# icon: \"menu\",\n# theme: \"outlined\",\n# };\n# \n# const brick_2 = document.getElementById(\"brick-2\");\n# brick_2.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"availability-zone-second-menu\",\n# };\n# </script>\n# \n```\n\n### 默认折叠\n\n设置 `collapsed` 为 `true` 使子菜单默认为收起状态。\n\n```yaml preview\n- brick: eo-sidebar-menu-submenu\n properties:\n style:\n width: 196px\n collapsed: true\n icon:\n lib: antd\n icon: menu\n theme: outlined\n children:\n - brick: span\n slot: title\n properties:\n textContent: \"默认折叠子菜单\"\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 1\"\n inSubmenu: true\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 2\"\n inSubmenu: true\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-sidebar-menu-submenu style=\"width: 196px\" collapsed id=\"brick-1\">\n# <span slot=\"title\">默认折叠子菜单</span>\n# <eo-sidebar-menu-item in-submenu>菜单项 1</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item in-submenu>菜单项 2</eo-sidebar-menu-item>\n# </eo-sidebar-menu-submenu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.icon = {\n# lib: \"antd\",\n# icon: \"menu\",\n# theme: \"outlined\",\n# };\n# </script>\n# \n```\n"
37
34
  },
35
+ "eo-sidebar-menu": {
36
+ "doc": "---\ntagName: eo-sidebar-menu\ndisplayName: WrappedEoSidebarMenu\ndescription: 侧栏菜单\ncategory: navigation\nsource: \"@next-bricks/nav\"\n---\n\n# eo-sidebar-menu\n\n> 侧栏菜单\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| ------------- | --------- | ---- | ------ | -------------------- |\n| menuCollapsed | `boolean` | 否 | - | 菜单整体是否收起状态 |\n\n## Examples\n\n### Basic\n\n展示侧栏菜单的基本用法,可包含菜单项、菜单分组和子菜单,支持整体收起/展开切换。\n\n```yaml preview gap\n- brick: eo-button\n context:\n - name: menuCollapsed\n value: false\n properties:\n type: primary\n textContent: switch collapsed\n events:\n click:\n - action: context.replace\n args:\n - menuCollapsed\n - <% !CTX.menuCollapsed %>\n- brick: eo-sidebar-menu\n properties:\n id: sidebar-menu\n menuCollapsed: <%= CTX.menuCollapsed %>\n style: \"<%= { width: CTX.menuCollapsed ? '40px' : '196px' } %>\"\n children:\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 1\"\n icon:\n lib: easyops\n category: second-menu\n icon: gaussdb-for-opengauss-second-menu\n - brick: eo-sidebar-menu-group\n children:\n - brick: span\n slot: title\n properties:\n textContent: \"菜单分组\"\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 2\"\n icon:\n lib: easyops\n category: second-menu\n icon: firewall-second-menu\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 3\"\n icon:\n lib: easyops\n category: second-menu\n icon: host-resources-second-menu\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 4\"\n icon:\n lib: easyops\n category: second-menu\n icon: loadbalance-second-menu\n - brick: eo-sidebar-menu-submenu\n properties:\n icon:\n lib: easyops\n category: second-menu\n icon: oceanbase-second-menu\n children:\n - brick: span\n slot: title\n properties:\n textContent: \"子菜单\"\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 5\"\n icon:\n lib: easyops\n category: second-menu\n icon: nginx-second-menu\n inSubmenu: true\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 6\"\n icon:\n lib: easyops\n category: second-menu\n icon: process-task-second-menu\n inSubmenu: true\n - brick: eo-sidebar-menu-item\n properties:\n textContent: \"菜单项 7\"\n icon:\n lib: easyops\n category: second-menu\n icon: persistent-volume-statement-second-menu\n inSubmenu: true\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-button type=\"primary\" id=\"brick-1\">switch collapsed</eo-button>\n# <eo-sidebar-menu menu-collapsed id=\"sidebar-menu\">\n# <eo-sidebar-menu-item id=\"brick-2\">菜单项 1</eo-sidebar-menu-item>\n# <eo-sidebar-menu-group>\n# <span slot=\"title\">菜单分组</span>\n# <eo-sidebar-menu-item id=\"brick-3\">菜单项 2</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item id=\"brick-4\">菜单项 3</eo-sidebar-menu-item>\n# <eo-sidebar-menu-item id=\"brick-5\">菜单项 4</eo-sidebar-menu-item>\n# </eo-sidebar-menu-group>\n# <eo-sidebar-menu-submenu id=\"brick-6\">\n# <span slot=\"title\">子菜单</span>\n# <eo-sidebar-menu-item in-submenu id=\"brick-7\"\n# >菜单项 5</eo-sidebar-menu-item\n# >\n# <eo-sidebar-menu-item in-submenu id=\"brick-8\"\n# >菜单项 6</eo-sidebar-menu-item\n# >\n# <eo-sidebar-menu-item in-submenu id=\"brick-9\"\n# >菜单项 7</eo-sidebar-menu-item\n# >\n# </eo-sidebar-menu-submenu>\n# </eo-sidebar-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"click\", (e) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# \n# const brick_2 = document.getElementById(\"brick-2\");\n# brick_2.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"gaussdb-for-opengauss-second-menu\",\n# };\n# \n# const brick_3 = document.getElementById(\"brick-3\");\n# brick_3.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"firewall-second-menu\",\n# };\n# \n# const brick_4 = document.getElementById(\"brick-4\");\n# brick_4.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"host-resources-second-menu\",\n# };\n# \n# const brick_5 = document.getElementById(\"brick-5\");\n# brick_5.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"loadbalance-second-menu\",\n# };\n# \n# const brick_6 = document.getElementById(\"brick-6\");\n# brick_6.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"oceanbase-second-menu\",\n# };\n# \n# const brick_7 = document.getElementById(\"brick-7\");\n# brick_7.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"nginx-second-menu\",\n# };\n# \n# const brick_8 = document.getElementById(\"brick-8\");\n# brick_8.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"process-task-second-menu\",\n# };\n# \n# const brick_9 = document.getElementById(\"brick-9\");\n# brick_9.icon = {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"persistent-volume-statement-second-menu\",\n# };\n# </script>\n# \n```\n"
37
+ },
38
38
  "eo-sidebar": {
39
39
  "doc": "---\ntagName: eo-sidebar\ndisplayName: WrappedEoSidebar\ndescription: 侧边栏\ncategory: navigation\nsource: \"@next-bricks/nav\"\n---\n\n# eo-sidebar\n\n> 侧边栏\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| --------------- | --------------------- | ---- | --------- | -------------------------------- |\n| menu | `SidebarMenuType` | 是 | - | 菜单数据 |\n| hiddenFixedIcon | `boolean` | 否 | - | 是否隐藏固定按钮 |\n| expandedState | `ExpandedState` | 否 | - | 侧栏状态 |\n| position | `\"static\" \\| \"fixed\"` | 否 | `\"fixed\"` | 设置定位方式:静态定位或固定定位 |\n\n## Events\n\n| 事件 | detail | 说明 |\n| --------------------- | -------------------------- | ------------------ |\n| actual.width.change | `number` — 当前宽度 | 宽度变化时触发 |\n| expanded.state.change | `ExpandedState` — 侧栏状态 | 侧栏状态变化时触发 |\n\n## Examples\n\n### Basic\n\n展示侧边栏的基本用法,支持菜单项、子菜单和分组,用户可鼠标悬停展开或点击固定图标固定宽度。\n\n```yaml preview\nbrick: eo-sidebar\nproperties:\n style:\n height: 600px\n position: static\n menu:\n title: 这是一个菜单标题\n menuItems:\n - icon:\n lib: easyops\n category: second-menu\n icon: automatic-collection-second-menu\n text: item 1\n to: /nlicro-test3/breadcrumb/new\n type: default\n children: []\n key: \"0\"\n - icon:\n lib: easyops\n category: second-menu\n icon: deployment-instance-second-menu\n text: item 2\n to: item 2\n type: default\n children: []\n key: \"1\"\n - type: subMenu\n title: sub 1\n icon:\n lib: easyops\n category: second-menu\n icon: deployment-architecture-second-menu\n items:\n - text: inner 1\n to: inner 1\n type: default\n children: []\n key: \"2.0\"\n - text: inner 2\n to: inner 2\n type: default\n children: []\n key: \"2.1\"\n - type: group\n title: group in submenu\n items:\n - text: item - 1\n to: item - 1\n type: default\n children: []\n key: \"2.3.1\"\n - text: item - 2\n to: item - 2\n type: default\n children: []\n key: \"2.3.2\"\n key: \"2\"\n - icon:\n lib: easyops\n category: second-menu\n icon: elasticsearch-second-menu\n text: item 3\n to: item 3\n type: default\n children: []\n key: \"3\"\n - type: group\n title: group 1\n items:\n - icon:\n lib: easyops\n category: second-menu\n icon: change-history-second-menu\n text: inner 3\n to: inner 3\n type: default\n children: []\n key: \"4.0\"\n - icon:\n lib: easyops\n category: second-menu\n icon: broadband-line-second-menu\n text: inner 4\n to: inner 4\n type: default\n children: []\n key: \"4.1\"\n key: \"4\"\n - icon:\n lib: easyops\n category: second-menu\n icon: fill-in-second-menu\n text: item 4\n to: item 4\n type: default\n children: []\n key: \"5\"\nevents:\n actual.width.change:\n action: console.log\n expanded.state.change:\n action: console.log\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-sidebar style=\"height: 600px\" position=\"static\" id=\"brick-1\"></eo-sidebar>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.menu = {\n# title: \"这是一个菜单标题\",\n# menuItems: [\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"automatic-collection-second-menu\",\n# },\n# text: \"item 1\",\n# to: \"/nlicro-test3/breadcrumb/new\",\n# type: \"default\",\n# children: [],\n# key: \"0\",\n# },\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"deployment-instance-second-menu\",\n# },\n# text: \"item 2\",\n# to: \"item 2\",\n# type: \"default\",\n# children: [],\n# key: \"1\",\n# },\n# {\n# type: \"subMenu\",\n# title: \"sub 1\",\n# icon: {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"deployment-architecture-second-menu\",\n# },\n# items: [\n# {\n# text: \"inner 1\",\n# to: \"inner 1\",\n# type: \"default\",\n# children: [],\n# key: \"2.0\",\n# },\n# {\n# text: \"inner 2\",\n# to: \"inner 2\",\n# type: \"default\",\n# children: [],\n# key: \"2.1\",\n# },\n# {\n# type: \"group\",\n# title: \"group in submenu\",\n# items: [\n# {\n# text: \"item - 1\",\n# to: \"item - 1\",\n# type: \"default\",\n# children: [],\n# key: \"2.3.1\",\n# },\n# {\n# text: \"item - 2\",\n# to: \"item - 2\",\n# type: \"default\",\n# children: [],\n# key: \"2.3.2\",\n# },\n# ],\n# },\n# ],\n# key: \"2\",\n# },\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"elasticsearch-second-menu\",\n# },\n# text: \"item 3\",\n# to: \"item 3\",\n# type: \"default\",\n# children: [],\n# key: \"3\",\n# },\n# {\n# type: \"group\",\n# title: \"group 1\",\n# items: [\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"change-history-second-menu\",\n# },\n# text: \"inner 3\",\n# to: \"inner 3\",\n# type: \"default\",\n# children: [],\n# key: \"4.0\",\n# },\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"broadband-line-second-menu\",\n# },\n# text: \"inner 4\",\n# to: \"inner 4\",\n# type: \"default\",\n# children: [],\n# key: \"4.1\",\n# },\n# ],\n# key: \"4\",\n# },\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"fill-in-second-menu\",\n# },\n# text: \"item 4\",\n# to: \"item 4\",\n# type: \"default\",\n# children: [],\n# key: \"5\",\n# },\n# ],\n# };\n# brick_1.addEventListener(\"actual.width.change\", (e) => {\n# console.log(e.detail);\n# });\n# brick_1.addEventListener(\"expanded.state.change\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### 隐藏固定按钮\n\n隐藏侧边栏底部的固定/取消固定图标按钮。\n\n```yaml preview\nbrick: eo-sidebar\nproperties:\n style:\n height: 600px\n position: static\n hiddenFixedIcon: true\n menu:\n title: 菜单标题\n menuItems:\n - icon:\n lib: easyops\n category: second-menu\n icon: automatic-collection-second-menu\n text: item 1\n to: /a\n type: default\n key: \"0\"\n - icon:\n lib: easyops\n category: second-menu\n icon: deployment-instance-second-menu\n text: item 2\n to: /b\n type: default\n key: \"1\"\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-sidebar\n# style=\"height: 600px\"\n# position=\"static\"\n# hidden-fixed-icon\n# id=\"brick-1\"\n# ></eo-sidebar>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.menu = {\n# title: \"菜单标题\",\n# menuItems: [\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"automatic-collection-second-menu\",\n# },\n# text: \"item 1\",\n# to: \"/a\",\n# type: \"default\",\n# key: \"0\",\n# },\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"second-menu\",\n# icon: \"deployment-instance-second-menu\",\n# },\n# text: \"item 2\",\n# to: \"/b\",\n# type: \"default\",\n# key: \"1\",\n# },\n# ],\n# };\n# </script>\n# \n```\n"
40
40
  },
41
41
  "eo-sidebar-sub-menu": {
42
42
  "doc": "---\ntagName: eo-sidebar-sub-menu\ndisplayName: WrappedEoSidebarSubMenu\ndescription: 侧边栏子菜单,支持简单菜单项、分组和子菜单的嵌套渲染\ncategory: navigation\nsource: \"@next-bricks/nav\"\n---\n\n# eo-sidebar-sub-menu\n\n> 侧边栏子菜单,支持简单菜单项、分组和子菜单的嵌套渲染\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| ---- | ------------- | ---- | ------ | ------ |\n| menu | `SidebarMenu` | 否 | - | 菜单项 |\n\n## Examples\n\n### Basic\n\n展示侧边栏子菜单的基本用法,支持简单菜单项、分组和子菜单嵌套,根据当前路径自动高亮选中项。\n\n```yaml preview\n- brick: eo-sidebar-sub-menu\n properties:\n style:\n width: 220px\n display: block\n menu:\n title: mock data\n menuItems:\n - exact: true\n icon:\n lib: easyops\n category: third-menu\n icon: advanced-settings-third-menu\n text: 测试标题\n to: /developers/brick-book/atom/sub-menu\n type: default\n key: \"0\"\n - items:\n - icon:\n lib: easyops\n category: third-menu\n icon: application-activity-third-menu\n text: 主机测试兼容复杂场景\n to: /developers/brick-book/atom/sub-menu/1\n key: \"1.0\"\n - icon:\n lib: easyops\n category: third-menu\n icon: dashboard-third-menu\n text: Docker\n to: /developers/brick-book/atom/sub-menu/2\n key: \"1.1\"\n title: 平台资源\n type: group\n key: \"1\"\n - items:\n - icon:\n lib: easyops\n category: third-menu\n icon: host-instance-maintenance-third-menu\n text: 开发负责人\n to: /developers/brick-book/atom/sub-menu/3\n key: \"2.0\"\n - icon:\n lib: easyops\n category: third-menu\n icon: inspection-overview-third-menu\n text: 运维负责人\n to: /developers/brick-book/atom/sub-menu/4\n key: \"2.1\"\n - icon:\n lib: easyops\n category: third-menu\n icon: job-management-third-menu\n text: 测试负责人\n to: /developers/brick-book/atom/sub-menu/5\n key: \"2.2\"\n title: 负责人\n type: group\n key: \"2\"\n - items:\n - icon:\n lib: easyops\n category: third-menu\n icon: plugin-market-third-menu\n items:\n - text: 被调方\n to: /developers/brick-book/atom/sub-menu/8\n key: 3.1.0\n title: 被调方\n type: subMenu\n key: \"3.1\"\n title: 调用关系\n type: group\n key: \"3\"\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-sidebar-sub-menu\n# style=\"width: 220px; display: block\"\n# id=\"brick-1\"\n# ></eo-sidebar-sub-menu>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.menu = {\n# title: \"mock data\",\n# menuItems: [\n# {\n# exact: true,\n# icon: {\n# lib: \"easyops\",\n# category: \"third-menu\",\n# icon: \"advanced-settings-third-menu\",\n# },\n# text: \"测试标题\",\n# to: \"/developers/brick-book/atom/sub-menu\",\n# type: \"default\",\n# key: \"0\",\n# },\n# {\n# items: [\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"third-menu\",\n# icon: \"application-activity-third-menu\",\n# },\n# text: \"主机测试兼容复杂场景\",\n# to: \"/developers/brick-book/atom/sub-menu/1\",\n# key: \"1.0\",\n# },\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"third-menu\",\n# icon: \"dashboard-third-menu\",\n# },\n# text: \"Docker\",\n# to: \"/developers/brick-book/atom/sub-menu/2\",\n# key: \"1.1\",\n# },\n# ],\n# title: \"平台资源\",\n# type: \"group\",\n# key: \"1\",\n# },\n# {\n# items: [\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"third-menu\",\n# icon: \"host-instance-maintenance-third-menu\",\n# },\n# text: \"开发负责人\",\n# to: \"/developers/brick-book/atom/sub-menu/3\",\n# key: \"2.0\",\n# },\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"third-menu\",\n# icon: \"inspection-overview-third-menu\",\n# },\n# text: \"运维负责人\",\n# to: \"/developers/brick-book/atom/sub-menu/4\",\n# key: \"2.1\",\n# },\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"third-menu\",\n# icon: \"job-management-third-menu\",\n# },\n# text: \"测试负责人\",\n# to: \"/developers/brick-book/atom/sub-menu/5\",\n# key: \"2.2\",\n# },\n# ],\n# title: \"负责人\",\n# type: \"group\",\n# key: \"2\",\n# },\n# {\n# items: [\n# {\n# icon: {\n# lib: \"easyops\",\n# category: \"third-menu\",\n# icon: \"plugin-market-third-menu\",\n# },\n# items: [\n# {\n# text: \"被调方\",\n# to: \"/developers/brick-book/atom/sub-menu/8\",\n# key: \"3.1.0\",\n# },\n# ],\n# title: \"被调方\",\n# type: \"subMenu\",\n# key: \"3.1\",\n# },\n# ],\n# title: \"调用关系\",\n# type: \"group\",\n# key: \"3\",\n# },\n# ],\n# };\n# </script>\n# \n```\n"
43
43
  },
44
- "eo-directory-tree": {
45
- "doc": "---\ntagName: eo-directory-tree\ndisplayName: WrappedEoDirectoryTree\ndescription: 目录树\ncategory: \"\"\nsource: \"@next-bricks/nav\"\n---\n\n# eo-directory-tree\n\n> 目录树\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| ---------------------- | ------------------------------------- | ---- | ------ | ------------------------------------------ |\n| data | `TreeItem[]` | 是 | `[]` | 数据源 |\n| directoryTitle | `string \\| undefined` | 否 | — | 目录标题 |\n| internalNodeSelectable | `boolean \\| undefined` | 否 | — | 设置中间节点是否可选,默认只有叶子节点可选 |\n| searchable | `boolean \\| undefined` | 否 | — | 可搜索 |\n| placeholder | `string \\| undefined` | 否 | — | 搜索占位说明 |\n| searchFields | `(string \\| string[])[] \\| undefined` | 否 | — | 除了 title 以外,额外的搜索字段 |\n| suffixBrick | `SuffixBrickConf \\| undefined` | 否 | — | 后缀 useBrick |\n| selectedKeys | `string[] \\| undefined` | 否 | — | 选中的 keys |\n| expandedKeys | `string[] \\| undefined` | 否 | — | 展开的 keys |\n\n## Events\n\n| 事件 | detail | 说明 |\n| ------ | ------------------------------------------------------------------------------------------- | -------- |\n| expand | `{ keys: string[]; node: NodeData }` — { keys: 展开的 keys 列表, node: 触发展开的节点数据 } | 展开事件 |\n| select | `{ keys: string[]; node: NodeData }` — { keys: 选中的 keys 列表, node: 触发选择的节点数据 } | 选择事件 |\n\n## Methods\n\n| 方法 | 参数 | 返回值 | 说明 |\n| ----------------------------- | ------------ | ------ | -------------- |\n| expandAll | `() => void` | `void` | 展开全部 |\n| collapseAll | `() => void` | `void` | 收起全部 |\n| expandAccordingToSelectedKeys | `() => void` | `void` | 根据选择项展开 |\n\n## Examples\n\n### Basic\n\n展示可搜索的多层级目录树,支持展开/收起和节点选择。\n\n```yaml preview\nbrick: eo-directory-tree\nevents:\n expand:\n - action: console.log\n args:\n - <% EVENT.detail %>\n select:\n - action: console.log\n args:\n - <% EVENT.detail %>\nproperties:\n id: directory-tree\n style:\n width: 400px\n directoryTitle: 目录名称标题\n placeholder: 输入关键词\n searchable: true\n selectedKeys:\n - \"1-1-1\"\n suffixBrick:\n useBrick:\n if: <% !Array.isArray(DATA.data.children) %>\n brick: eo-tag\n properties:\n textContent: <% DATA.data.key %>\n data:\n - key: \"0\"\n title: \"第一层级 - 0\"\n - key: \"1\"\n title: \"第一层级 - 1\"\n children:\n - key: 1-0\n title: \"第二层级 - 0\"\n - key: 1-1\n title: \"第二层级 - 1\"\n children:\n - key: 1-1-0\n title: \"第三层级 - 0\"\n - key: 1-1-1\n title: \"第三层级 - 1\"\n - key: 1-1-2\n title: \"第三层级 - 2\"\n - key: 1-3\n title: \"第二层级 - 2\"\n - key: \"2\"\n title: \"第一层级 - 2\"\n - key: \"3\"\n title: \"第一层级 - 3\"\n - key: \"4\"\n title: \"第一层级 - 4\"\nchildren:\n - slot: toolbar\n brick: eo-mini-actions\n events:\n expand.all:\n - target: \"#directory-tree\"\n method: expandAll\n collapse.all:\n - target: \"#directory-tree\"\n method: collapseAll\n aim:\n - target: \"#directory-tree\"\n method: expandAccordingToSelectedKeys\n properties:\n actions:\n - icon:\n lib: antd\n icon: down\n theme: outlined\n isDropdown: false\n event: expand.all\n - icon:\n lib: antd\n icon: up\n theme: outlined\n isDropdown: false\n event: collapse.all\n - icon:\n lib: antd\n icon: aim\n theme: outlined\n isDropdown: false\n event: aim\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-directory-tree\n# style=\"width: 400px\"\n# directory-title=\"目录名称标题\"\n# placeholder=\"输入关键词\"\n# searchable\n# id=\"directory-tree\"\n# >\n# <eo-mini-actions\n# slot=\"toolbar\"\n# actions=\"[object Object],[object Object],[object Object]\"\n# id=\"brick-1\"\n# ></eo-mini-actions>\n# </eo-directory-tree>\n# \n# <script>\n# const directory_tree = document.getElementById(\"directory-tree\");\n# directory_tree.selectedKeys = [\"1-1-1\"];\n# directory_tree.suffixBrick = {\n# useBrick: {\n# if: \"<% !Array.isArray(DATA.data.children) %>\",\n# brick: \"eo-tag\",\n# properties: {\n# textContent: \"<% DATA.data.key %>\",\n# },\n# },\n# };\n# directory_tree.data = [\n# {\n# key: \"0\",\n# title: \"第一层级 - 0\",\n# },\n# {\n# key: \"1\",\n# title: \"第一层级 - 1\",\n# children: [\n# {\n# key: \"1-0\",\n# title: \"第二层级 - 0\",\n# },\n# {\n# key: \"1-1\",\n# title: \"第二层级 - 1\",\n# children: [\n# {\n# key: \"1-1-0\",\n# title: \"第三层级 - 0\",\n# },\n# {\n# key: \"1-1-1\",\n# title: \"第三层级 - 1\",\n# },\n# {\n# key: \"1-1-2\",\n# title: \"第三层级 - 2\",\n# },\n# ],\n# },\n# {\n# key: \"1-3\",\n# title: \"第二层级 - 2\",\n# },\n# ],\n# },\n# {\n# key: \"2\",\n# title: \"第一层级 - 2\",\n# },\n# {\n# key: \"3\",\n# title: \"第一层级 - 3\",\n# },\n# {\n# key: \"4\",\n# title: \"第一层级 - 4\",\n# },\n# ];\n# directory_tree.addEventListener(\"expand\", (e) => {\n# console.log(e.detail);\n# });\n# directory_tree.addEventListener(\"select\", (e) => {\n# console.log(e.detail);\n# });\n# \n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"expand.all\", (e) => {\n# const brick = document.querySelector(\"#directory-tree\");\n# brick.expandAll();\n# });\n# brick_1.addEventListener(\"collapse.all\", (e) => {\n# const brick = document.querySelector(\"#directory-tree\");\n# brick.collapseAll();\n# });\n# brick_1.addEventListener(\"aim\", (e) => {\n# const brick = document.querySelector(\"#directory-tree\");\n# brick.expandAccordingToSelectedKeys();\n# });\n# </script>\n# \n```\n\n### Internal Node Selectable\n\n允许中间节点(非叶子节点)被选中。\n\n```yaml preview\nbrick: eo-directory-tree\nevents:\n select:\n - action: console.log\n args:\n - <% EVENT.detail %>\nproperties:\n style:\n width: 400px\n directoryTitle: 可选中间节点\n internalNodeSelectable: true\n data:\n - key: \"parent1\"\n title: \"父节点1\"\n children:\n - key: child1\n title: \"子节点1\"\n - key: child2\n title: \"子节点2\"\n - key: \"parent2\"\n title: \"父节点2\"\n children:\n - key: child3\n title: \"子节点3\"\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-directory-tree\n# style=\"width: 400px\"\n# directory-title=\"可选中间节点\"\n# internal-node-selectable\n# id=\"brick-1\"\n# ></eo-directory-tree>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.data = [\n# {\n# key: \"parent1\",\n# title: \"父节点1\",\n# children: [\n# {\n# key: \"child1\",\n# title: \"子节点1\",\n# },\n# {\n# key: \"child2\",\n# title: \"子节点2\",\n# },\n# ],\n# },\n# {\n# key: \"parent2\",\n# title: \"父节点2\",\n# children: [\n# {\n# key: \"child3\",\n# title: \"子节点3\",\n# },\n# ],\n# },\n# ];\n# brick_1.addEventListener(\"select\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### Custom Search Fields\n\n指定额外的搜索字段,在 title 之外扩展搜索范围。\n\n```yaml preview\nbrick: eo-directory-tree\nproperties:\n style:\n width: 400px\n directoryTitle: 扩展搜索字段\n searchable: true\n placeholder: 搜索名称或描述\n searchFields:\n - description\n expandedKeys:\n - parent1\n data:\n - key: parent1\n title: 应用服务\n children:\n - key: child1\n title: 服务A\n description: 核心业务服务\n - key: child2\n title: 服务B\n description: 辅助工具服务\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-directory-tree\n# style=\"width: 400px\"\n# directory-title=\"扩展搜索字段\"\n# searchable\n# placeholder=\"搜索名称或描述\"\n# id=\"brick-1\"\n# ></eo-directory-tree>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.searchFields = [\"description\"];\n# brick_1.expandedKeys = [\"parent1\"];\n# brick_1.data = [\n# {\n# key: \"parent1\",\n# title: \"应用服务\",\n# children: [\n# {\n# key: \"child1\",\n# title: \"服务A\",\n# description: \"核心业务服务\",\n# },\n# {\n# key: \"child2\",\n# title: \"服务B\",\n# description: \"辅助工具服务\",\n# },\n# ],\n# },\n# ];\n# </script>\n# \n```\n"
46
- },
47
44
  "eo-directory": {
48
45
  "doc": "---\ntagName: eo-directory\ndisplayName: WrappedEoDirectory\ndescription: 目录\ncategory: \"\"\nsource: \"@next-bricks/nav\"\n---\n\n# eo-directory\n\n> 目录\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| ------------------- | ----------------------------------------- | ---- | --------- | -------------------------------- |\n| position | `\"static\" \\| \"fixed\"` | 是 | `\"fixed\"` | 设置定位方式:静态定位或固定定位 |\n| directoryTitle | `string \\| undefined` | 否 | — | 目录标题 |\n| menuItems | `MenuItem[]` | 是 | `[]` | 菜单数据 |\n| hideRightBorder | `boolean` | 是 | `false` | 是否隐藏右边线 |\n| suffixBrick | `{ useBrick: UseBrickConf } \\| undefined` | 否 | — | 后缀 useBrick |\n| defaultSelectedKeys | `string[] \\| undefined` | 否 | — | 默认选中高亮的菜单项 |\n\n## Events\n\n| 事件 | detail | 说明 |\n| ----------------- | ------------------------------------------------------------------------------------------------- | ------------------------ |\n| menu.item.click | `MenuItemClickEventDetail` — { groupKey: 对应分组的 key(仅分组子项有值), data: 被点击的菜单项 } | 菜单项点击时触发 |\n| suffix.icon.click | `{ key: string }` — { key: 对应菜单项或分组的 key } | 点击菜单项后缀图标时触发 |\n\n## Examples\n\n### Basic\n\n展示带分组和子项的目录菜单,支持点击菜单项和后缀图标。\n\n```yaml preview\n- brick: div\n properties:\n style:\n width: 200px\n height: 500px\n slots:\n \"\":\n type: bricks\n bricks:\n - brick: eo-directory\n events:\n menu.item.click:\n - action: console.log\n suffix.icon.click:\n - action: console.log\n properties:\n defaultSelectedKeys:\n - strategy1\n directoryTitle: 目录标题\n suffixBrick:\n useBrick:\n brick: eo-tag\n properties:\n textContent: <% DATA.data.title %>\n menuItems:\n - title: 测试\n type: group\n suffixIcon:\n lib: antd\n icon: plus-circle\n theme: outlined\n key: test\n children:\n - key: strategy1\n title: 数据1\n - key: strategy2\n title: 数据2\n - title: 其他\n type: group\n suffixIcon:\n lib: antd\n icon: plus-circle\n theme: outlined\n suffixIconDisabled: true\n suffixIconTooltip: 禁止点击\n key: otherKey\n children:\n - key: manual-strategy1\n title: 数据3\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"width: 200px; height: 500px\">\n# <eo-directory directory-title=\"目录标题\" id=\"brick-1\"></eo-directory>\n# </div>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.defaultSelectedKeys = [\"strategy1\"];\n# brick_1.suffixBrick = {\n# useBrick: {\n# brick: \"eo-tag\",\n# properties: {\n# textContent: \"<% DATA.data.title %>\",\n# },\n# },\n# };\n# brick_1.menuItems = [\n# {\n# title: \"测试\",\n# type: \"group\",\n# suffixIcon: {\n# lib: \"antd\",\n# icon: \"plus-circle\",\n# theme: \"outlined\",\n# },\n# key: \"test\",\n# children: [\n# {\n# key: \"strategy1\",\n# title: \"数据1\",\n# },\n# {\n# key: \"strategy2\",\n# title: \"数据2\",\n# },\n# ],\n# },\n# {\n# title: \"其他\",\n# type: \"group\",\n# suffixIcon: {\n# lib: \"antd\",\n# icon: \"plus-circle\",\n# theme: \"outlined\",\n# },\n# suffixIconDisabled: true,\n# suffixIconTooltip: \"禁止点击\",\n# key: \"otherKey\",\n# children: [\n# {\n# key: \"manual-strategy1\",\n# title: \"数据3\",\n# },\n# ],\n# },\n# ];\n# brick_1.addEventListener(\"menu.item.click\", (e) => {\n# console.log(e.detail);\n# });\n# brick_1.addEventListener(\"suffix.icon.click\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### Hide Right Border\n\n隐藏目录右侧边线,适用于特定布局场景。\n\n```yaml preview\n- brick: div\n properties:\n style:\n width: 200px\n height: 300px\n slots:\n \"\":\n type: bricks\n bricks:\n - brick: eo-directory\n properties:\n hideRightBorder: true\n directoryTitle: 无右边线目录\n menuItems:\n - title: 分组A\n type: group\n key: groupA\n children:\n - key: item1\n title: 子项1\n - key: item2\n title: 子项2\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"width: 200px; height: 300px\">\n# <eo-directory\n# hide-right-border\n# directory-title=\"无右边线目录\"\n# id=\"brick-1\"\n# ></eo-directory>\n# </div>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.menuItems = [\n# {\n# title: \"分组A\",\n# type: \"group\",\n# key: \"groupA\",\n# children: [\n# {\n# key: \"item1\",\n# title: \"子项1\",\n# },\n# {\n# key: \"item2\",\n# title: \"子项2\",\n# },\n# ],\n# },\n# ];\n# </script>\n# \n```\n\n### Single Items\n\n展示无分组的单层菜单项列表,并使用 position static 静态定位。\n\n```yaml preview\n- brick: div\n properties:\n style:\n width: 200px\n height: 300px\n slots:\n \"\":\n type: bricks\n bricks:\n - brick: eo-directory\n events:\n menu.item.click:\n - action: console.log\n properties:\n position: static\n directoryTitle: 单层目录\n defaultSelectedKeys:\n - item1\n menuItems:\n - title: 菜单项1\n type: item\n key: item1\n - title: 菜单项2\n type: item\n key: item2\n - title: 菜单项3\n type: item\n key: item3\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"width: 200px; height: 300px\">\n# <eo-directory\n# position=\"static\"\n# directory-title=\"单层目录\"\n# id=\"brick-1\"\n# ></eo-directory>\n# </div>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.defaultSelectedKeys = [\"item1\"];\n# brick_1.menuItems = [\n# {\n# title: \"菜单项1\",\n# type: \"item\",\n# key: \"item1\",\n# },\n# {\n# title: \"菜单项2\",\n# type: \"item\",\n# key: \"item2\",\n# },\n# {\n# title: \"菜单项3\",\n# type: \"item\",\n# key: \"item3\",\n# },\n# ];\n# brick_1.addEventListener(\"menu.item.click\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n"
49
46
  },
47
+ "eo-directory-tree": {
48
+ "doc": "---\ntagName: eo-directory-tree\ndisplayName: WrappedEoDirectoryTree\ndescription: 目录树\ncategory: \"\"\nsource: \"@next-bricks/nav\"\n---\n\n# eo-directory-tree\n\n> 目录树\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| ---------------------- | ------------------------------------- | ---- | ------ | ------------------------------------------ |\n| data | `TreeItem[]` | 是 | `[]` | 数据源 |\n| directoryTitle | `string \\| undefined` | 否 | — | 目录标题 |\n| internalNodeSelectable | `boolean \\| undefined` | 否 | — | 设置中间节点是否可选,默认只有叶子节点可选 |\n| searchable | `boolean \\| undefined` | 否 | — | 可搜索 |\n| placeholder | `string \\| undefined` | 否 | — | 搜索占位说明 |\n| searchFields | `(string \\| string[])[] \\| undefined` | 否 | — | 除了 title 以外,额外的搜索字段 |\n| suffixBrick | `SuffixBrickConf \\| undefined` | 否 | — | 后缀 useBrick |\n| selectedKeys | `string[] \\| undefined` | 否 | — | 选中的 keys |\n| expandedKeys | `string[] \\| undefined` | 否 | — | 展开的 keys |\n\n## Events\n\n| 事件 | detail | 说明 |\n| ------ | ------------------------------------------------------------------------------------------- | -------- |\n| expand | `{ keys: string[]; node: NodeData }` — { keys: 展开的 keys 列表, node: 触发展开的节点数据 } | 展开事件 |\n| select | `{ keys: string[]; node: NodeData }` — { keys: 选中的 keys 列表, node: 触发选择的节点数据 } | 选择事件 |\n\n## Methods\n\n| 方法 | 参数 | 返回值 | 说明 |\n| ----------------------------- | ------------ | ------ | -------------- |\n| expandAll | `() => void` | `void` | 展开全部 |\n| collapseAll | `() => void` | `void` | 收起全部 |\n| expandAccordingToSelectedKeys | `() => void` | `void` | 根据选择项展开 |\n\n## Examples\n\n### Basic\n\n展示可搜索的多层级目录树,支持展开/收起和节点选择。\n\n```yaml preview\nbrick: eo-directory-tree\nevents:\n expand:\n - action: console.log\n args:\n - <% EVENT.detail %>\n select:\n - action: console.log\n args:\n - <% EVENT.detail %>\nproperties:\n id: directory-tree\n style:\n width: 400px\n directoryTitle: 目录名称标题\n placeholder: 输入关键词\n searchable: true\n selectedKeys:\n - \"1-1-1\"\n suffixBrick:\n useBrick:\n if: <% !Array.isArray(DATA.data.children) %>\n brick: eo-tag\n properties:\n textContent: <% DATA.data.key %>\n data:\n - key: \"0\"\n title: \"第一层级 - 0\"\n - key: \"1\"\n title: \"第一层级 - 1\"\n children:\n - key: 1-0\n title: \"第二层级 - 0\"\n - key: 1-1\n title: \"第二层级 - 1\"\n children:\n - key: 1-1-0\n title: \"第三层级 - 0\"\n - key: 1-1-1\n title: \"第三层级 - 1\"\n - key: 1-1-2\n title: \"第三层级 - 2\"\n - key: 1-3\n title: \"第二层级 - 2\"\n - key: \"2\"\n title: \"第一层级 - 2\"\n - key: \"3\"\n title: \"第一层级 - 3\"\n - key: \"4\"\n title: \"第一层级 - 4\"\nchildren:\n - slot: toolbar\n brick: eo-mini-actions\n events:\n expand.all:\n - target: \"#directory-tree\"\n method: expandAll\n collapse.all:\n - target: \"#directory-tree\"\n method: collapseAll\n aim:\n - target: \"#directory-tree\"\n method: expandAccordingToSelectedKeys\n properties:\n actions:\n - icon:\n lib: antd\n icon: down\n theme: outlined\n isDropdown: false\n event: expand.all\n - icon:\n lib: antd\n icon: up\n theme: outlined\n isDropdown: false\n event: collapse.all\n - icon:\n lib: antd\n icon: aim\n theme: outlined\n isDropdown: false\n event: aim\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-directory-tree\n# style=\"width: 400px\"\n# directory-title=\"目录名称标题\"\n# placeholder=\"输入关键词\"\n# searchable\n# id=\"directory-tree\"\n# >\n# <eo-mini-actions\n# slot=\"toolbar\"\n# actions=\"[object Object],[object Object],[object Object]\"\n# id=\"brick-1\"\n# ></eo-mini-actions>\n# </eo-directory-tree>\n# \n# <script>\n# const directory_tree = document.getElementById(\"directory-tree\");\n# directory_tree.selectedKeys = [\"1-1-1\"];\n# directory_tree.suffixBrick = {\n# useBrick: {\n# if: \"<% !Array.isArray(DATA.data.children) %>\",\n# brick: \"eo-tag\",\n# properties: {\n# textContent: \"<% DATA.data.key %>\",\n# },\n# },\n# };\n# directory_tree.data = [\n# {\n# key: \"0\",\n# title: \"第一层级 - 0\",\n# },\n# {\n# key: \"1\",\n# title: \"第一层级 - 1\",\n# children: [\n# {\n# key: \"1-0\",\n# title: \"第二层级 - 0\",\n# },\n# {\n# key: \"1-1\",\n# title: \"第二层级 - 1\",\n# children: [\n# {\n# key: \"1-1-0\",\n# title: \"第三层级 - 0\",\n# },\n# {\n# key: \"1-1-1\",\n# title: \"第三层级 - 1\",\n# },\n# {\n# key: \"1-1-2\",\n# title: \"第三层级 - 2\",\n# },\n# ],\n# },\n# {\n# key: \"1-3\",\n# title: \"第二层级 - 2\",\n# },\n# ],\n# },\n# {\n# key: \"2\",\n# title: \"第一层级 - 2\",\n# },\n# {\n# key: \"3\",\n# title: \"第一层级 - 3\",\n# },\n# {\n# key: \"4\",\n# title: \"第一层级 - 4\",\n# },\n# ];\n# directory_tree.addEventListener(\"expand\", (e) => {\n# console.log(e.detail);\n# });\n# directory_tree.addEventListener(\"select\", (e) => {\n# console.log(e.detail);\n# });\n# \n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"expand.all\", (e) => {\n# const brick = document.querySelector(\"#directory-tree\");\n# brick.expandAll();\n# });\n# brick_1.addEventListener(\"collapse.all\", (e) => {\n# const brick = document.querySelector(\"#directory-tree\");\n# brick.collapseAll();\n# });\n# brick_1.addEventListener(\"aim\", (e) => {\n# const brick = document.querySelector(\"#directory-tree\");\n# brick.expandAccordingToSelectedKeys();\n# });\n# </script>\n# \n```\n\n### Internal Node Selectable\n\n允许中间节点(非叶子节点)被选中。\n\n```yaml preview\nbrick: eo-directory-tree\nevents:\n select:\n - action: console.log\n args:\n - <% EVENT.detail %>\nproperties:\n style:\n width: 400px\n directoryTitle: 可选中间节点\n internalNodeSelectable: true\n data:\n - key: \"parent1\"\n title: \"父节点1\"\n children:\n - key: child1\n title: \"子节点1\"\n - key: child2\n title: \"子节点2\"\n - key: \"parent2\"\n title: \"父节点2\"\n children:\n - key: child3\n title: \"子节点3\"\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-directory-tree\n# style=\"width: 400px\"\n# directory-title=\"可选中间节点\"\n# internal-node-selectable\n# id=\"brick-1\"\n# ></eo-directory-tree>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.data = [\n# {\n# key: \"parent1\",\n# title: \"父节点1\",\n# children: [\n# {\n# key: \"child1\",\n# title: \"子节点1\",\n# },\n# {\n# key: \"child2\",\n# title: \"子节点2\",\n# },\n# ],\n# },\n# {\n# key: \"parent2\",\n# title: \"父节点2\",\n# children: [\n# {\n# key: \"child3\",\n# title: \"子节点3\",\n# },\n# ],\n# },\n# ];\n# brick_1.addEventListener(\"select\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### Custom Search Fields\n\n指定额外的搜索字段,在 title 之外扩展搜索范围。\n\n```yaml preview\nbrick: eo-directory-tree\nproperties:\n style:\n width: 400px\n directoryTitle: 扩展搜索字段\n searchable: true\n placeholder: 搜索名称或描述\n searchFields:\n - description\n expandedKeys:\n - parent1\n data:\n - key: parent1\n title: 应用服务\n children:\n - key: child1\n title: 服务A\n description: 核心业务服务\n - key: child2\n title: 服务B\n description: 辅助工具服务\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-directory-tree\n# style=\"width: 400px\"\n# directory-title=\"扩展搜索字段\"\n# searchable\n# placeholder=\"搜索名称或描述\"\n# id=\"brick-1\"\n# ></eo-directory-tree>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.searchFields = [\"description\"];\n# brick_1.expandedKeys = [\"parent1\"];\n# brick_1.data = [\n# {\n# key: \"parent1\",\n# title: \"应用服务\",\n# children: [\n# {\n# key: \"child1\",\n# title: \"服务A\",\n# description: \"核心业务服务\",\n# },\n# {\n# key: \"child2\",\n# title: \"服务B\",\n# description: \"辅助工具服务\",\n# },\n# ],\n# },\n# ];\n# </script>\n# \n```\n"
49
+ },
50
50
  "eo-directory-tree-leaf": {
51
51
  "doc": "---\ntagName: eo-directory-tree-leaf\ndisplayName: WrappedEoDirectoryTreeLeaf\ndescription: 目录树叶子节点\ncategory: \"\"\nsource: \"@next-bricks/nav\"\n---\n\n# eo-directory-tree-leaf\n\n> 目录树叶子节点\n\n## Props\n\n| 属性 | 类型 | 必填 | 默认值 | 说明 |\n| -------- | ------------------------------- | ---- | ------ | ---------------- |\n| depth | `number` | 是 | `0` | 深度 |\n| selected | `boolean \\| undefined` | 否 | — | 是否选中 |\n| icon | `GeneralIconProps \\| undefined` | 否 | — | 节点图标 |\n| faded | `boolean \\| undefined` | 否 | — | 节点是否淡化显示 |\n\n## Events\n\n| 事件 | detail | 说明 |\n| ------ | ------ | ---------------- |\n| select | `void` | 节点被选中时触发 |\n\n## Slots\n\n| 名称 | 说明 |\n| -------- | ------------ |\n| (默认) | 节点标签内容 |\n| suffix | 节点后缀内容 |\n\n## Examples\n\n### Basic\n\n展示基础叶子节点,包含标签和后缀内容,点击可触发选择事件。\n\n```yaml preview\nbrick: eo-directory-tree-leaf\nevents:\n select:\n - action: console.log\nproperties:\n style:\n width: 200px\nchildren:\n - brick: span\n properties:\n textContent: 第一层级\n - brick: eo-tag\n slot: suffix\n properties:\n textContent: suffixBrick\n color: red\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-directory-tree-leaf style=\"width: 200px\" id=\"brick-1\">\n# <span>第一层级</span>\n# <eo-tag slot=\"suffix\" color=\"red\">suffixBrick</eo-tag>\n# </eo-directory-tree-leaf>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"select\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### With Icon\n\n展示带有节点图标的叶子节点。\n\n```yaml preview\nbrick: eo-directory-tree-leaf\nevents:\n select:\n - action: console.log\n args:\n - <% EVENT.detail %>\nproperties:\n style:\n width: 200px\n icon:\n lib: antd\n icon: file\n theme: outlined\n selected: true\nchildren:\n - brick: span\n properties:\n textContent: 文件节点\n - brick: eo-tag\n slot: suffix\n properties:\n textContent: 已选中\n color: green\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-directory-tree-leaf style=\"width: 200px\" selected id=\"brick-1\">\n# <span>文件节点</span>\n# <eo-tag slot=\"suffix\" color=\"green\">已选中</eo-tag>\n# </eo-directory-tree-leaf>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.icon = {\n# lib: \"antd\",\n# icon: \"file\",\n# theme: \"outlined\",\n# };\n# brick_1.addEventListener(\"select\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### Faded State\n\n展示淡化显示的叶子节点,用于表示禁用或不可用状态。\n\n```yaml preview\nbrick: eo-directory-tree-leaf\nproperties:\n style:\n width: 200px\n faded: true\n depth: 0\nchildren:\n - brick: span\n properties:\n textContent: 淡化节点\n# -- YAML DELIMITER (1nbbm8) --\n# <eo-directory-tree-leaf style=\"width: 200px\" faded depth=\"0\">\n# <span>淡化节点</span>\n# </eo-directory-tree-leaf>\n# \n```\n"
52
52
  },