@next-bricks/visual-builder 1.36.18 → 1.36.20
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.
- package/dist/bricks.json +15 -15
- package/dist/chunks/1122.7e99ff7d.js +2 -0
- package/dist/chunks/1122.7e99ff7d.js.map +1 -0
- package/dist/chunks/1889.c21de868.js +2 -0
- package/dist/chunks/1889.c21de868.js.map +1 -0
- package/dist/chunks/1940.7463e189.js +2 -0
- package/dist/chunks/1940.7463e189.js.map +1 -0
- package/dist/chunks/{2277.d3148cce.js → 2277.3aa5ee83.js} +2 -2
- package/dist/chunks/2277.3aa5ee83.js.map +1 -0
- package/dist/chunks/{2980.714f5f61.js → 2980.89f78737.js} +2 -2
- package/dist/chunks/{2980.714f5f61.js.map → 2980.89f78737.js.map} +1 -1
- package/dist/chunks/{5552.c86323fa.js → 3171.76f5ef5e.js} +2 -2
- package/dist/chunks/3171.76f5ef5e.js.map +1 -0
- package/dist/chunks/3933.6543fa09.js +2 -0
- package/dist/chunks/3933.6543fa09.js.map +1 -0
- package/dist/chunks/{4658.fee7130c.js → 4658.e6a14e7e.js} +2 -2
- package/dist/chunks/4658.e6a14e7e.js.map +1 -0
- package/dist/chunks/{4837.91bfbc0f.js → 4837.6d3d8d7b.js} +2 -2
- package/dist/chunks/4837.6d3d8d7b.js.map +1 -0
- package/dist/chunks/5347.556f53c5.js +3 -0
- package/dist/chunks/5347.556f53c5.js.map +1 -0
- package/dist/chunks/5399.2121beed.js +2 -0
- package/dist/chunks/5399.2121beed.js.map +1 -0
- package/dist/chunks/{790.64754a11.js → 5552.6eeb729f.js} +2 -2
- package/dist/chunks/5552.6eeb729f.js.map +1 -0
- package/dist/chunks/5559.46d76c74.js +3 -0
- package/dist/chunks/5559.46d76c74.js.map +1 -0
- package/dist/chunks/{5832.afb53fc6.js → 5832.03057e05.js} +3 -3
- package/dist/chunks/{5832.afb53fc6.js.map → 5832.03057e05.js.map} +1 -1
- package/dist/chunks/6314.88036f7d.js +2 -0
- package/dist/chunks/6314.88036f7d.js.map +1 -0
- package/dist/chunks/{7218.955ab799.js → 7218.119bb6e5.js} +2 -2
- package/dist/chunks/7218.119bb6e5.js.map +1 -0
- package/dist/chunks/{3171.90b67ac3.js → 790.0aa66d1e.js} +2 -2
- package/dist/chunks/790.0aa66d1e.js.map +1 -0
- package/dist/chunks/{871.f5ada237.js → 871.fff582b1.js} +2 -2
- package/dist/chunks/871.fff582b1.js.map +1 -0
- package/dist/chunks/{9080.831f173f.js → 9080.2e2c451c.js} +2 -2
- package/dist/chunks/{9080.831f173f.js.map → 9080.2e2c451c.js.map} +1 -1
- package/dist/chunks/9559.3a75207b.js +2 -0
- package/dist/chunks/9559.3a75207b.js.map +1 -0
- package/dist/chunks/{batch-update-raw-data-generated-view.122f1652.js → batch-update-raw-data-generated-view.77d9153a.js} +3 -3
- package/dist/chunks/{batch-update-raw-data-generated-view.122f1652.js.map → batch-update-raw-data-generated-view.77d9153a.js.map} +1 -1
- package/dist/chunks/{chat-conversation.5e235303.js → chat-conversation.c9597045.js} +3 -3
- package/dist/chunks/{chat-conversation.5e235303.js.map → chat-conversation.c9597045.js.map} +1 -1
- package/dist/chunks/{chat-preview.469b9501.js → chat-preview.cd48092a.js} +3 -3
- package/dist/chunks/{chat-preview.469b9501.js.map → chat-preview.cd48092a.js.map} +1 -1
- package/dist/chunks/{check-editor-by-name.24058c71.js → check-editor-by-name.a0ed5831.js} +2 -2
- package/dist/chunks/{check-editor-by-name.24058c71.js.map → check-editor-by-name.a0ed5831.js.map} +1 -1
- package/dist/chunks/{contract-select.2a47cf3f.js → contract-select.5a7f5538.js} +3 -3
- package/dist/chunks/{contract-select.2a47cf3f.js.map → contract-select.5a7f5538.js.map} +1 -1
- package/dist/chunks/generate-snippets-context-menu.64ec5d69.js +2 -0
- package/dist/chunks/{generate-snippets-context-menu.517b2f57.js.map → generate-snippets-context-menu.64ec5d69.js.map} +1 -1
- package/dist/chunks/{get-data-deps.7cf9f399.js → get-data-deps.c4a17516.js} +2 -2
- package/dist/chunks/{get-data-deps.7cf9f399.js.map → get-data-deps.c4a17516.js.map} +1 -1
- package/dist/chunks/{get-dependency-tree.36c9bf4e.js → get-dependency-tree.acf3f10a.js} +2 -2
- package/dist/chunks/{get-dependency-tree.36c9bf4e.js.map → get-dependency-tree.acf3f10a.js.map} +1 -1
- package/dist/chunks/{get-raw-data-system-prompts.c4029513.js → get-raw-data-system-prompts.31d8f5e6.js} +2 -2
- package/dist/chunks/{get-raw-data-system-prompts.c4029513.js.map → get-raw-data-system-prompts.31d8f5e6.js.map} +1 -1
- package/dist/chunks/{inject-chat-preview-agent.b147f181.js → inject-chat-preview-agent.81adb527.js} +2 -2
- package/dist/chunks/{inject-chat-preview-agent.b147f181.js.map → inject-chat-preview-agent.81adb527.js.map} +1 -1
- package/dist/chunks/main.e5326f7c.js +2 -0
- package/dist/chunks/{main.1f0a49eb.js.map → main.e5326f7c.js.map} +1 -1
- package/dist/chunks/{parse-path.39c437b5.js → parse-path.092a6965.js} +2 -2
- package/dist/chunks/{parse-path.39c437b5.js.map → parse-path.092a6965.js.map} +1 -1
- package/dist/chunks/{pre-generated-container.791ab2a3.js → pre-generated-container.c86a4369.js} +2 -2
- package/dist/chunks/{pre-generated-container.791ab2a3.js.map → pre-generated-container.c86a4369.js.map} +1 -1
- package/dist/chunks/{pre-generated-preview.2397d1d4.js → pre-generated-preview.852d95c5.js} +3 -3
- package/dist/chunks/{pre-generated-preview.2397d1d4.js.map → pre-generated-preview.852d95c5.js.map} +1 -1
- package/dist/chunks/{property-editor.e335a65f.js → property-editor.60245d89.js} +2 -2
- package/dist/chunks/{property-editor.e335a65f.js.map → property-editor.60245d89.js.map} +1 -1
- package/dist/chunks/{raw-data-preview.269b78b8.js → raw-data-preview.73c3a680.js} +3 -3
- package/dist/chunks/{raw-data-preview.269b78b8.js.map → raw-data-preview.73c3a680.js.map} +1 -1
- package/dist/chunks/{workbench-action-list.11eca073.js → workbench-action-list.3d2031d5.js} +2 -2
- package/dist/chunks/{workbench-action-list.11eca073.js.map → workbench-action-list.3d2031d5.js.map} +1 -1
- package/dist/chunks/{workbench-history-action.b7b8b6c8.js → workbench-history-action.2e9d48ac.js} +3 -3
- package/dist/chunks/{workbench-history-action.b7b8b6c8.js.map → workbench-history-action.2e9d48ac.js.map} +1 -1
- package/dist/index.8a4cfb4e.js +2 -0
- package/dist/index.8a4cfb4e.js.map +1 -0
- package/dist/manifest.json +71 -71
- package/package.json +3 -3
- package/dist/chunks/1122.8d825637.js +0 -2
- package/dist/chunks/1122.8d825637.js.map +0 -1
- package/dist/chunks/1889.e1d839b8.js +0 -2
- package/dist/chunks/1889.e1d839b8.js.map +0 -1
- package/dist/chunks/1940.956f7191.js +0 -2
- package/dist/chunks/1940.956f7191.js.map +0 -1
- package/dist/chunks/2277.d3148cce.js.map +0 -1
- package/dist/chunks/3171.90b67ac3.js.map +0 -1
- package/dist/chunks/3933.e89d1f01.js +0 -2
- package/dist/chunks/3933.e89d1f01.js.map +0 -1
- package/dist/chunks/4658.fee7130c.js.map +0 -1
- package/dist/chunks/4837.91bfbc0f.js.map +0 -1
- package/dist/chunks/5347.16a45784.js +0 -3
- package/dist/chunks/5347.16a45784.js.map +0 -1
- package/dist/chunks/5399.aeb5c01e.js +0 -2
- package/dist/chunks/5399.aeb5c01e.js.map +0 -1
- package/dist/chunks/5552.c86323fa.js.map +0 -1
- package/dist/chunks/5559.bd23795c.js +0 -3
- package/dist/chunks/5559.bd23795c.js.map +0 -1
- package/dist/chunks/6314.7d3f5d0d.js +0 -2
- package/dist/chunks/6314.7d3f5d0d.js.map +0 -1
- package/dist/chunks/7218.955ab799.js.map +0 -1
- package/dist/chunks/790.64754a11.js.map +0 -1
- package/dist/chunks/871.f5ada237.js.map +0 -1
- package/dist/chunks/9559.95f5357b.js +0 -2
- package/dist/chunks/9559.95f5357b.js.map +0 -1
- package/dist/chunks/generate-snippets-context-menu.517b2f57.js +0 -2
- package/dist/chunks/main.1f0a49eb.js +0 -2
- package/dist/index.ad813146.js +0 -2
- package/dist/index.ad813146.js.map +0 -1
- /package/dist/chunks/{5347.16a45784.js.LICENSE.txt → 5347.556f53c5.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{5559.bd23795c.js.LICENSE.txt → 5559.46d76c74.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{5832.afb53fc6.js.LICENSE.txt → 5832.03057e05.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{batch-update-raw-data-generated-view.122f1652.js.LICENSE.txt → batch-update-raw-data-generated-view.77d9153a.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{chat-conversation.5e235303.js.LICENSE.txt → chat-conversation.c9597045.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{chat-preview.469b9501.js.LICENSE.txt → chat-preview.cd48092a.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{contract-select.2a47cf3f.js.LICENSE.txt → contract-select.5a7f5538.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{pre-generated-preview.2397d1d4.js.LICENSE.txt → pre-generated-preview.852d95c5.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{raw-data-preview.269b78b8.js.LICENSE.txt → raw-data-preview.73c3a680.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{workbench-history-action.b7b8b6c8.js.LICENSE.txt → workbench-history-action.2e9d48ac.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/2277.3aa5ee83.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/inject/dist/esm/interfaces.js","webpack:///../../node_modules/@next-core/inject/dist/esm/lexical.js","webpack:///../../node_modules/@next-core/inject/dist/esm/compile.js","webpack:///../../node_modules/@next-core/inject/dist/esm/syntax.js"],"sourcesContent":["export let LexicalStatus = /*#__PURE__*/function (LexicalStatus) {\n LexicalStatus[LexicalStatus[\"Initial\"] = 0] = \"Initial\";\n LexicalStatus[LexicalStatus[\"ExpectField\"] = 1] = \"ExpectField\";\n LexicalStatus[LexicalStatus[\"ExpectOptionalBeginDefault\"] = 2] = \"ExpectOptionalBeginDefault\";\n LexicalStatus[LexicalStatus[\"ExpectDefaultValue\"] = 3] = \"ExpectDefaultValue\";\n LexicalStatus[LexicalStatus[\"ExpectOptionalBeginPipe\"] = 4] = \"ExpectOptionalBeginPipe\";\n LexicalStatus[LexicalStatus[\"ExpectPipeIdentifier\"] = 5] = \"ExpectPipeIdentifier\";\n LexicalStatus[LexicalStatus[\"ExpectOptionalBeginPipeParameter\"] = 6] = \"ExpectOptionalBeginPipeParameter\";\n LexicalStatus[LexicalStatus[\"ExpectPipeParameter\"] = 7] = \"ExpectPipeParameter\";\n LexicalStatus[LexicalStatus[\"ExpectPlaceholderEnd\"] = 8] = \"ExpectPlaceholderEnd\";\n return LexicalStatus;\n}({});\nexport let TokenType = /*#__PURE__*/function (TokenType) {\n TokenType[\"Raw\"] = \"Raw\";\n TokenType[\"BeginPlaceHolder\"] = \"BeginPlaceHolder\";\n TokenType[\"Field\"] = \"Field\";\n TokenType[\"BeginDefault\"] = \"BeginDefault\";\n TokenType[\"LiteralString\"] = \"LiteralString\";\n TokenType[\"BeginPipe\"] = \"BeginPipe\";\n TokenType[\"PipeIdentifier\"] = \"PipeIdentifier\";\n TokenType[\"BeginPipeParameter\"] = \"BeginPipeParameter\";\n TokenType[\"EndPlaceHolder\"] = \"EndPlaceHolder\";\n TokenType[\"JsonValue\"] = \"JsonValue\";\n return TokenType;\n}({});\nexport let JsonValueType = /*#__PURE__*/function (JsonValueType) {\n JsonValueType[JsonValueType[\"Array\"] = 0] = \"Array\";\n JsonValueType[JsonValueType[\"Object\"] = 1] = \"Object\";\n JsonValueType[JsonValueType[\"String\"] = 2] = \"String\";\n JsonValueType[JsonValueType[\"Others\"] = 3] = \"Others\";\n return JsonValueType;\n}({});\n//# sourceMappingURL=interfaces.js.map","import { escapeRegExp } from \"lodash\";\nimport { LexicalStatus, TokenType, JsonValueType } from \"./interfaces.js\";\nexport function getRegExpOfPlaceholder(symbols) {\n return new RegExp(`(${[].concat(symbols).map(symbol => escapeRegExp(symbol)).join(\"|\")})\\\\{`);\n}\nexport function tokenize(raw, symbols) {\n const context = {\n beginPlaceholder: getRegExpOfPlaceholder(symbols),\n raw,\n cursor: 0,\n status: LexicalStatus.Initial,\n tokens: []\n };\n while (context.cursor < raw.length) {\n switch (context.status) {\n case LexicalStatus.Initial:\n eatOptionalRawAndOptionalPlaceholderBegin(context);\n break;\n case LexicalStatus.ExpectField:\n eatWhitespace(context);\n eatField(context);\n break;\n case LexicalStatus.ExpectOptionalBeginDefault:\n eatWhitespace(context);\n eatOptionalDefault(context);\n break;\n case LexicalStatus.ExpectDefaultValue:\n eatWhitespace(context);\n eatDefaultValue(context);\n break;\n case LexicalStatus.ExpectOptionalBeginPipe:\n eatWhitespace(context);\n eatOptionalBeginPipe(context);\n break;\n case LexicalStatus.ExpectPipeIdentifier:\n eatWhitespace(context);\n eatPipeIdentifier(context);\n break;\n case LexicalStatus.ExpectOptionalBeginPipeParameter:\n eatWhitespace(context);\n eatOptionalBeginPipeParameter(context);\n break;\n case LexicalStatus.ExpectPipeParameter:\n eatWhitespace(context);\n eatPipeParameter(context);\n break;\n case LexicalStatus.ExpectPlaceholderEnd:\n eatWhitespace(context);\n eatPlaceholderEnd(context);\n break;\n }\n }\n if (context.status !== LexicalStatus.Initial) {\n throw new Error(\"Expected a placeholder end '}' at the end\");\n }\n return context.tokens;\n}\nfunction eatOptionalRawAndOptionalPlaceholderBegin(context) {\n var _subRaw$match;\n const subRaw = getSubRaw(context);\n const matchedPlaceholder = (_subRaw$match = subRaw.match(context.beginPlaceholder)) === null || _subRaw$match === void 0 ? void 0 : _subRaw$match[0];\n const subCursor = matchedPlaceholder ? subRaw.indexOf(matchedPlaceholder) : -1;\n if (subCursor >= 0 && matchedPlaceholder && subRaw.charAt(subCursor + matchedPlaceholder.length) !== \"{\") {\n const nextCursor = context.cursor + subCursor;\n if (subCursor > 0) {\n context.tokens.push({\n type: TokenType.Raw,\n value: subRaw.substring(0, subCursor)\n });\n }\n context.tokens.push({\n type: TokenType.BeginPlaceHolder,\n loc: {\n start: nextCursor,\n end: nextCursor + matchedPlaceholder.length\n },\n value: matchedPlaceholder.substring(0, matchedPlaceholder.length - 1)\n });\n context.cursor += subCursor + matchedPlaceholder.length;\n context.status = LexicalStatus.ExpectField;\n } else {\n context.tokens.push({\n type: TokenType.Raw,\n value: subRaw\n });\n context.cursor = context.raw.length;\n }\n}\nfunction eatWhitespace(context) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n context.cursor += getSubRaw(context).match(/^[ \\r\\n\\t]*/)[0].length;\n}\nfunction eatField(context) {\n // Only allow alphanumeric, `_`, `.`, `*`, `[`, `]`, `-` and other non-ascii.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const [value] = getSubRaw(context).match(/^[\\w.*[\\]\\-\\u{80}-\\u{10FFFF}]*/u);\n context.tokens.push({\n type: TokenType.Field,\n value\n });\n context.cursor += value.length;\n context.status = LexicalStatus.ExpectOptionalBeginDefault;\n}\nfunction eatOptionalDefault(context) {\n if (getSubRaw(context).charAt(0) === \"=\") {\n context.tokens.push({\n type: TokenType.BeginDefault\n });\n context.cursor += 1;\n context.status = LexicalStatus.ExpectDefaultValue;\n } else {\n context.status = LexicalStatus.ExpectOptionalBeginPipe;\n }\n}\nfunction eatDefaultValue(context) {\n eatJsonValueOrLiteralString(context, LexicalStatus.ExpectOptionalBeginPipe);\n}\nfunction eatOptionalBeginPipe(context) {\n if (getSubRaw(context).charAt(0) === \"|\") {\n context.tokens.push({\n type: TokenType.BeginPipe\n });\n context.cursor += 1;\n context.status = LexicalStatus.ExpectPipeIdentifier;\n } else {\n context.status = LexicalStatus.ExpectPlaceholderEnd;\n }\n}\nfunction eatPipeIdentifier(context) {\n const matches = getSubRaw(context).match(/^[a-zA-Z]\\w*/);\n if (!matches) {\n throw new Error(`Expected a pipe identifier at index ${context.cursor} near: ${JSON.stringify(context.raw.substring(context.cursor))}`);\n }\n const value = matches[0];\n context.tokens.push({\n type: TokenType.PipeIdentifier,\n value\n });\n context.cursor += value.length;\n context.status = LexicalStatus.ExpectOptionalBeginPipeParameter;\n}\nfunction eatOptionalBeginPipeParameter(context) {\n if (getSubRaw(context).charAt(0) === \":\") {\n context.tokens.push({\n type: TokenType.BeginPipeParameter\n });\n context.cursor += 1;\n context.status = LexicalStatus.ExpectPipeParameter;\n } else {\n context.status = LexicalStatus.ExpectOptionalBeginPipe;\n }\n}\nfunction eatPipeParameter(context) {\n eatJsonValueOrLiteralString(context, LexicalStatus.ExpectOptionalBeginPipeParameter);\n}\nfunction eatPlaceholderEnd(context) {\n if (getSubRaw(context).charAt(0) === \"}\") {\n context.tokens.push({\n type: TokenType.EndPlaceHolder,\n loc: {\n start: context.cursor,\n end: context.cursor + 1\n }\n });\n context.cursor += 1;\n context.status = LexicalStatus.Initial;\n } else {\n throw new Error(`Expected a placeholder end '}' at index ${context.cursor} near: ${JSON.stringify(context.raw.substring(context.cursor))}`);\n }\n}\nconst jsonLiteralMap = new Map([[\"false\", false], [\"null\", null], [\"true\", true]]);\nfunction eatJsonValueOrLiteralString(context, nextStatus) {\n const subRaw = getSubRaw(context);\n if (/[0-9[{\"]/.test(subRaw.charAt(0)) || /-[0-9]/.test(subRaw.substring(0, 2))) {\n eatJsonValue(context, nextStatus);\n } else {\n // Accept any characters except controls and whitespace.\n // Only allow alphanumeric, `_`, `-` and other non-ascii.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const [value] = getSubRaw(context).match(/^[\\w\\-\\u{80}-\\u{10FFFF}]*/u);\n if (jsonLiteralMap.has(value)) {\n context.tokens.push({\n type: TokenType.JsonValue,\n value: jsonLiteralMap.get(value)\n });\n } else {\n context.tokens.push({\n type: TokenType.LiteralString,\n value\n });\n }\n context.cursor += value.length;\n context.status = nextStatus;\n }\n}\n\n// 我们不需要非常精确地在一段字符串中匹配出一段*完整合法的* JSON value,\n// 而只需要找到一段*可能是完整合法的* JSON value 即可,解析的工作交给 `JSON.parse()`。\n// 由于 JSON 中 object/array/string 的镜像起止符特性,我们尝试去完成这些符号匹配即可。\nfunction eatJsonValue(context, nextStatus) {\n const subRaw = getSubRaw(context);\n const firstChar = subRaw.charAt(0);\n const valueType = firstChar === \"[\" ? JsonValueType.Array : firstChar === \"{\" ? JsonValueType.Object : firstChar === '\"' ? JsonValueType.String : JsonValueType.Others;\n let subCursor = 0;\n let objectBracesToMatch = 0;\n let arrayBracketsToMatch = 0;\n let stringQuotesToClose = false;\n let stringBackslashToEscape = false;\n let matched = false;\n while (subCursor < subRaw.length) {\n const char = subRaw.charAt(subCursor);\n if (stringBackslashToEscape) {\n stringBackslashToEscape = false;\n } else if (stringQuotesToClose) {\n if (char === '\"') {\n stringQuotesToClose = false;\n } else if (char === \"\\\\\") {\n stringBackslashToEscape = true;\n }\n } else {\n switch (char) {\n case \"[\":\n arrayBracketsToMatch += 1;\n break;\n case \"{\":\n objectBracesToMatch += 1;\n break;\n case \"]\":\n arrayBracketsToMatch -= 1;\n break;\n case \"}\":\n objectBracesToMatch -= 1;\n break;\n case '\"':\n stringQuotesToClose = true;\n break;\n }\n }\n subCursor += 1;\n switch (valueType) {\n case JsonValueType.Array:\n matched = !arrayBracketsToMatch;\n break;\n case JsonValueType.Object:\n matched = !objectBracesToMatch;\n break;\n case JsonValueType.String:\n matched = !stringQuotesToClose;\n break;\n default:\n // 对于其它类型,如果下一个字符不再是这些值类型可能的字符时,我们认为 JSON value 完成匹配。\n // 其它可能的值类型:number/boolean/null/undefined。\n matched = subCursor < subRaw.length && /[^a-z0-9E.+-]/.test(subRaw.charAt(subCursor));\n }\n if (matched) {\n break;\n }\n }\n if (!matched) {\n throw new Error(`Failed to match a JSON value at index ${context.cursor} near: ${JSON.stringify(context.raw.substring(context.cursor))}`);\n }\n context.tokens.push({\n type: TokenType.JsonValue,\n value: JSON.parse(subRaw.substring(0, subCursor))\n });\n context.cursor += subCursor;\n context.status = nextStatus;\n}\nfunction getSubRaw(context) {\n return context.raw.substring(context.cursor);\n}\n//# sourceMappingURL=lexical.js.map","import { get } from \"lodash\";\nimport { processPipes } from \"@next-core/pipes\";\nimport { parseInjectableString } from \"./syntax.js\";\nimport { getRegExpOfPlaceholder } from \"./lexical.js\";\nexport function transform(raw, context) {\n return compile(raw, \"@\", context);\n}\nexport function inject(raw, context) {\n return compile(raw, \"$\", context);\n}\nexport function transformAndInject(raw, context) {\n return compile(raw, [\"@\", \"$\"], context);\n}\nfunction compile(raw, symbols, context) {\n // const symbols = [\"@\", \"$\"];\n if (!isInjectable(raw, symbols)) {\n return raw;\n }\n const transformNode = transformNodeFactory(context.data);\n const injectNode = injectNodeFactory(context, raw);\n const tree = parseInjectableString(raw, symbols);\n const values = tree.elements.map(node => node.type === \"RawString\" ? node.value : node.symbol === \"$\" ? injectNode(node) : transformNode(node));\n return reduceCompiledValues(values);\n}\nfunction reduceCompiledValues(values) {\n // If the whole string is a placeholder, we should keep the original value.\n if (values.length === 1) {\n return values[0];\n }\n\n // If an element is `undefined`, `null` or an empty array `[]`, it is converted to an empty string.\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join#Description\n return values.join(\"\");\n}\nfunction isInjectable(raw, symbols) {\n return getRegExpOfPlaceholder(symbols).test(raw);\n}\nfunction transformNodeFactory(data) {\n return function transformNode(node) {\n // If meet `@{}`, return `data`.\n let result = node.field ? get(data, node.field) : data;\n if (result === undefined) {\n result = node.defaultValue;\n }\n return processPipes(result, node.pipes);\n };\n}\nfunction injectNodeFactory(context, raw) {\n return function injectNode(node) {\n var _context$overrideApp, _context$overrideApp2;\n const matches = node.field.match(/^(?:(QUERY(?:_ARRAY)?|EVENT|query|event|APP|HASH|ANCHOR|SYS|FLAGS|CTX)\\.)?(.+)$/);\n if (!matches) {\n // Keep the original raw partial when meet a unknown namespace.\n return raw.substring(node.loc.start, node.loc.end);\n }\n let [, namespace, subField] = matches;\n\n // Support namespace with no subfield such as `${ANCHOR}`.\n // But distinguish with match params. E.g. `${query}` is a match param.\n if (!namespace && /^[A-Z_]+$/.test(subField)) {\n namespace = subField;\n subField = \"*\";\n }\n let result;\n const SimpleContextMap = {\n SYS: \"sys\",\n FLAGS: \"flags\"\n };\n switch (namespace) {\n case \"QUERY\":\n case \"query\":\n if (subField === \"*\") {\n result = context.query;\n } else {\n result = context.query.has(subField) ? context.query.get(subField) : undefined;\n }\n break;\n case \"QUERY_ARRAY\":\n result = context.query.has(subField) ? context.query.getAll(subField) : undefined;\n break;\n case \"EVENT\":\n case \"event\":\n if (context.event === undefined) {\n // Keep the original raw partial when meet a `${EVENT}` in non-event context.\n return raw.substring(node.loc.start, node.loc.end);\n }\n result = subField === \"*\" ? context.event : get(context.event, subField);\n break;\n case \"APP\":\n result = subField === \"*\" ? (_context$overrideApp = context.overrideApp) !== null && _context$overrideApp !== void 0 ? _context$overrideApp : context.app : get((_context$overrideApp2 = context.overrideApp) !== null && _context$overrideApp2 !== void 0 ? _context$overrideApp2 : context.app, subField);\n break;\n case \"HASH\":\n result = context.location.hash;\n break;\n case \"SYS\":\n case \"FLAGS\":\n result = subField === \"*\" ? context[SimpleContextMap[namespace]] : get(context[SimpleContextMap[namespace]], subField);\n break;\n case \"ANCHOR\":\n {\n const anchor = context.location.hash ? context.location.hash.substr(1) : null;\n result = subField === \"*\" ? anchor : get(anchor, subField);\n break;\n }\n case \"CTX\":\n {\n const original = raw.substring(node.loc.start, node.loc.end);\n // eslint-disable-next-line no-console\n console.error(`CTX is not supported in placeholder any more: \"${original}\"`);\n return original;\n }\n default:\n if (context.match) {\n result = context.match.params[subField];\n } else {\n // If the context is empty, return the original raw partial.\n return raw.substring(node.loc.start, node.loc.end);\n }\n }\n if (result === undefined) {\n result = node.defaultValue;\n }\n return processPipes(result, node.pipes);\n };\n}\n//# sourceMappingURL=compile.js.map","import { tokenize } from \"./lexical.js\";\nimport { TokenType } from \"./interfaces.js\";\nexport function parseInjectableString(raw, symbols) {\n return parseTokens(tokenize(raw, symbols));\n}\nfunction parseTokens(tokens) {\n const tree = {\n type: \"InjectableString\",\n elements: []\n };\n let token;\n function optionalToken(type) {\n if (type === tokens[0].type) {\n token = tokens.shift();\n return true;\n }\n return false;\n }\n function acceptToken(type) {\n token = tokens.shift();\n if (Array.isArray(type) ? !type.includes(token.type) : type !== token.type) {\n throw new Error(`Expected token: ${type}, received token: ${token.type}`);\n }\n }\n while (tokens.length > 0) {\n if (optionalToken(TokenType.Raw)) {\n tree.elements.push({\n type: \"RawString\",\n value: token.value\n });\n } else {\n acceptToken(TokenType.BeginPlaceHolder);\n const start = token.loc.start;\n const symbol = token.value;\n acceptToken(TokenType.Field);\n const placeholder = {\n type: \"Placeholder\",\n symbol,\n field: token.value,\n defaultValue: undefined,\n pipes: [],\n loc: {\n start,\n end: start\n }\n };\n tree.elements.push(placeholder);\n if (optionalToken(TokenType.BeginDefault)) {\n acceptToken([TokenType.JsonValue, TokenType.LiteralString]);\n placeholder.defaultValue = token.value;\n }\n while (optionalToken(TokenType.BeginPipe)) {\n acceptToken(TokenType.PipeIdentifier);\n const pipe = {\n type: \"PipeCall\",\n identifier: token.value,\n parameters: []\n };\n placeholder.pipes.push(pipe);\n while (optionalToken(TokenType.BeginPipeParameter)) {\n acceptToken([TokenType.JsonValue, TokenType.LiteralString]);\n pipe.parameters.push(token.value);\n }\n }\n acceptToken(TokenType.EndPlaceHolder);\n placeholder.loc.end = token.loc.end;\n }\n }\n return tree;\n}\n//# sourceMappingURL=syntax.js.map"],"names":["LexicalStatus","TokenType","JsonValueType","getRegExpOfPlaceholder","symbols","RegExp","concat","map","symbol","escapeRegExp","join","eatOptionalRawAndOptionalPlaceholderBegin","context","_subRaw$match","subRaw","getSubRaw","matchedPlaceholder","match","beginPlaceholder","subCursor","indexOf","charAt","length","nextCursor","cursor","tokens","push","type","Raw","value","substring","BeginPlaceHolder","loc","start","end","status","ExpectField","raw","eatWhitespace","eatField","Field","ExpectOptionalBeginDefault","eatOptionalDefault","BeginDefault","ExpectDefaultValue","ExpectOptionalBeginPipe","eatDefaultValue","eatJsonValueOrLiteralString","eatOptionalBeginPipe","BeginPipe","ExpectPipeIdentifier","ExpectPlaceholderEnd","eatPipeIdentifier","matches","Error","JSON","stringify","PipeIdentifier","ExpectOptionalBeginPipeParameter","eatOptionalBeginPipeParameter","BeginPipeParameter","ExpectPipeParameter","eatPipeParameter","eatPlaceholderEnd","EndPlaceHolder","Initial","jsonLiteralMap","Map","nextStatus","test","firstChar","valueType","Array","Object","String","Others","objectBracesToMatch","arrayBracketsToMatch","stringQuotesToClose","stringBackslashToEscape","matched","char","JsonValue","parse","eatJsonValue","has","get","LiteralString","transform","compile","inject","transformAndInject","isInjectable","transformNode","data","node","result","field","undefined","defaultValue","processPipes","pipes","injectNode","_context$overrideApp","_context$overrideApp2","namespace","subField","SimpleContextMap","SYS","FLAGS","query","getAll","event","overrideApp","app","location","hash","anchor","substr","original","console","error","params","injectNodeFactory","values","tree","elements","token","optionalToken","shift","acceptToken","isArray","includes","placeholder","pipe","identifier","parameters","parseTokens","tokenize","parseInjectableString"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[2980],{4940:(e,t,n)=>{n.d(t,{e:()=>a,l:()=>l});var o=n(8769);const a=(0,o.createContext)({});function l(){return(0,o.useContext)(a)}},7758:(e,t,n)=>{n.d(t,{cU:()=>L});var o=n(9575),a=n(8769),l=n.n(a),r=n(1030),i=n.n(r),c=n(3373),s=n.n(c),d=n(9406),u=n(4940);let p=function(e){return e.inside="inside",e.top="top",e.bottom="bottom",e}({});const f=(0,a.createContext)({});function h(){return(0,a.useContext)(f)}var m=n(4295),b=n(3474);const g=(0,m.wrapBrick)("eo-icon");function v(e){let{data:t,className:n,gap:o,isFirst:r,isLast:i,actions:c,actionsHidden:d,onActionClick:u}=e;const p=(0,a.useMemo)((()=>null==c?void 0:c.filter((e=>(0,b.checkIfByTransform)(e,t)))),[c,t]);return d||null==p||!p.length?null:l().createElement("div",{className:s()("actionsBar",n),style:{gap:o}},p.map((e=>l().createElement(x,{key:e.action,action:e,data:t,isFirst:r,isLast:i,onActionClick:u}))))}function x(e){let{action:t,data:n,isFirst:o,isLast:r,onActionClick:i}=e;const c=o&&"move-up"===t.action||r&&"move-down"===t.action,d=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),c||null==i||i({action:t.action,data:n})}),[t.action,n,c,i]),u=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation()}),[]);return l().createElement("a",{className:s()("action",{disabled:c}),title:t.title,role:"button",onClick:d,onContextMenu:u,onMouseDown:u},l().createElement(g,t.icon))}const k=(0,m.wrapBrick)("eo-link"),y=(0,m.wrapBrick)("eo-icon"),w=10,E="0 0 0 1px #ba6d30",C=(0,a.createContext)(!1);function L(e){let{nodes:t,placeholder:n,searchPlaceholder:o,isDrag:r,noSearch:c,allowDrag:u,allowDragToRoot:h,allowDragToInside:m,dropEmit:b}=e;const[g,v]=(0,a.useState)(""),[x,k]=(0,a.useState)(r),[w,E]=(0,a.useState)(),[L,S]=(0,a.useState)(),[I,M]=(0,a.useState)(),[A,B]=(0,a.useState)(),[D,R]=(0,a.useState)(),[P,F]=(0,a.useState)(),{nodeKey:T,onBrickDrop:z,contextMenuFactory:$,matchNode:_}=(0,d.o)(),K=(0,a.useMemo)((()=>{var e;return function(e,t){const n=(e,o,a,l)=>{const r=e.shift();if(r){e.length>0&&e.splice(0,1,`${r}/${e[0]}`);const i=o.find((e=>e&&e.key===r&&e.isContainer));if(i)o[l]=null,n(e,i.children,a);else{const i=r.split("/"),c={name:i.pop(),key:r,parentPath:i?i.join("/"):i,originKey:a.key,data:{[t]:r,isContainer:!0},children:[],icon:{icon:"folder",lib:"antd",theme:"filled",color:"orange"},isContainer:!0};"number"==typeof l?o[l]=c:o.push(c),n(e,c.children,a)}}else o.push(a)};return e.forEach(((t,o)=>{if(t.path){const a=t.path.split("/").filter(Boolean);n(a,e,t,o)}})),e.filter(Boolean)}(null!==(e=null==t?void 0:t.slice())&&void 0!==e?e:[],T)}),[t,T]),O=(0,a.useCallback)((e=>{v(e.target.value)}),[]),j=(0,a.useMemo)((()=>null==$?void 0:$()),[$]),W=null==g?void 0:g.trim().toLowerCase(),H=(0,a.useMemo)((()=>{if(c||!W||!K)return K;const e=t=>{var n;t.matchedSelf=_(t,W);const o=null===(n=t.children)||void 0===n?void 0:n.map(e).includes(!0);return t.matched=t.matchedSelf||o,t.matched};return K.forEach(e),K.slice()}),[c,W,K,_]),U=function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=e;for(;n;){if(n.draggable&&(t||n!==e)&&"A"!==n.tagName)return n;n=n.parentElement}},Y=function(e,t,n){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;for(const a of e)if(a.data[n]===t&&(o=a),a.children&&(o=Y(a.children,t,n,o)),o)break;return o},V=()=>{S(null),B(null),M(null),R(null),k(!1)};return(0,a.useEffect)((()=>{k(r)}),[r]),(0,a.useEffect)((()=>(window.addEventListener("dragend",V),()=>{window.removeEventListener("dragend",V)})),[]),l().createElement("div",{style:{height:"100%"},className:"tree-wrapper",onContextMenu:j},null!=K&&K.length?l().createElement("div",null,!c&&l().createElement("div",{className:"searchBox",onContextMenu:e=>e.stopPropagation()},l().createElement("span",{className:s()("filter-input-wrapper",{focus:P})},l().createElement("span",{className:"prefix"},l().createElement(y,{icon:"search",lib:"antd",theme:"outlined"})),l().createElement("input",{value:g,onChange:O,onFocus:()=>F(!0),onBlur:()=>F(!1),autoComplete:"off",placeholder:o}),l().createElement("span",{className:"suffix"},g?l().createElement(y,{className:"clear-button",icon:"close-circle",lib:"antd",theme:"filled",onClick:()=>{v("")}}):null))),l().createElement(C.Provider,{value:!!g},l().createElement(f.Provider,{value:{allow:u,allowDragToRoot:h,dragElement:L,dragOverElement:A,dragStatus:D,onDragStart:(e,t)=>{var n;if(e.stopPropagation(),!u)return;const o=e.target;null!==(n=o.dataset)&&void 0!==n&&n.container||(k(!0),function(e,t){const n=document.createElement("canvas");document.body.append(n);const o=n.getContext("2d");n.width=o.measureText(t).width+60,n.height=20,n.style.position="absolute",n.style.left="-100%",n.style.zIndex="-100",o.fillStyle="#333333",o.fillRect(0,0,n.width,n.height),o.fillStyle="#999999",o.font="bold 14px Arial",o.fillText(t,20,15),e.dataTransfer.setDragImage(n,0,0)}(e,o.innerText),S(o),E(t))}}},l().createElement("div",{className:s()({hightlight:r}),onDragOver:e=>{if(e.preventDefault(),!x)return;if("workbenchTree-placeholder-dom"===e.target.className)return;const t=(e=>{const t=U(e.target),n=t.dataset.uid;if(t===L||null!=n&&n.includes(":"))return;const{top:o,bottom:a}=t.getBoundingClientRect();let l;const r=m?5:10;return l=e.clientY<o+r?p.top:e.clientY>a-r?p.bottom:m?p.inside:D,{element:t,node:Y(K,n,T),status:l}})(e);!t||null!=L&&L.contains(t.element)||(B(t.element),M(t.node),R(t.status))},onDrop:e=>{if(x){if(z){let t=A;[p.top,p.bottom].includes(D)&&(t=U(t,!1)),z(e,{curElement:L,overElement:A,parentElement:t,overStatus:D})}else if(h||1!==Number(A.dataset.level)){let e=I;const t=(n,o)=>{for(let a=0;a<n.length;a++){if(n[a].key===o){e=n[a];break}n[a].children&&t(n[a].children,o)}},n=A.dataset.uid;t(K,n);const o=t=>{let n=!1;const{container:a,uid:l}=A.dataset,r=a?e.originKey:l,i=t.filter((e=>(e.children&&(e.children=o(e.children)),e.key===r&&(n=!0),e.key!==w.key)));return n&&i.splice(i.findIndex((e=>e.key===r))+("bottom"===D?1:0),0,w),i},a=function(e){const t=[],n=e=>{e.forEach((e=>{e.isContainer?n(e.children):t.push(i().omit(e,["path","icon"]))}))};return n(e),t}(K),l=w.isContainer?a.find((e=>e.key===w.originKey)):w;l.data.path=e.parentPath||e.path,b({nodes:o(a),curNode:l,overNode:e,status:D})}V()}}},l().createElement(N,{nodes:H,level:1}))))):l().createElement("div",{className:"placeholder"},n))}function N(e){let{nodes:t,level:n}=e;const o=t.length-1;return l().createElement("ul",{className:"tree"},t.filter((e=>(0,b.checkIfOfComputed)(e))).map(((e,t)=>l().createElement(I,{key:e.key,node:e,level:n,isFirst:0===t,isLast:t===o}))))}function S(e){let{style:t}=e;const{dragStatus:n}=h(),o={height:22,border:"1px dashed goldenrod",opacity:n===p.inside?"0":"1",...t};return l().createElement("li",{className:"workbenchTree-placeholder-dom",style:o})}function I(e){var t,n,i,c;let{node:f,level:m,isFirst:b,isLast:g}=e;const x=!(null!==(t=f.children)&&void 0!==t&&t.length),L=f.isContainer,{hoverKey:I,activeKey:M,basePaddingLeft:A,showMatchedNodeOnly:B,fixedActionsFor:D,collapsible:R,collapsedNodes:P,nodeKey:F,clickFactory:T,mouseEnterFactory:z,mouseLeaveFactory:$,contextMenuFactory:_,onNodeToggle:K,getCollapsedId:O,skipNotify:j}=(0,d.o)(),{allow:W,allowDragToRoot:H,onDragStart:U,dragElement:Y,dragOverElement:V,dragStatus:q}=h(),{actions:G,actionsHidden:J,onActionClick:Q}=(0,u.l)(),X=m*w+A-2,Z=(0,a.useContext)(C),[ee,te]=(0,a.useState)(null),[ne,oe]=(0,a.useState)(!1),[ae,le]=(0,a.useState)(null!==(n=null==P?void 0:P.includes(null==O?void 0:O(f)))&&void 0!==n&&n),re=(0,a.useMemo)((()=>null==z?void 0:z(f)),[z,f]),ie=(0,a.useMemo)((()=>null==$?void 0:$(f)),[$,f]),ce=(0,a.useCallback)((e=>{var t;e.stopPropagation(),null==_||null===(t=_(f))||void 0===t||t(e)}),[_,f]),se=M&&f.key===M,de=(0,a.useMemo)((()=>se?e=>{var t;null==e||null===(t=e.scrollIntoView)||void 0===t||t.call(e,{block:"center",inline:"center"})}:null),[]),ue=(0,a.useMemo)((()=>{return L?f.key:f.data?"mount-point"===(e=f.data).type?e.parent[F]||`${e.parent.$$uid}:${e.mountPoint}`:e[F]||e.$$uid:void 0;var e}),[F,f,L]);(0,a.useEffect)((()=>{q!==p.inside&&[p.top,p.bottom].includes(q)&&te(q)}),[q]);const pe=(0,a.useMemo)((()=>!!Y&&Y.dataset.uid===String(ue)),[Y,ue]),fe=(0,a.useMemo)((()=>!!V&&V.dataset.uid===String(ue)),[V,ue]),he=(0,a.useMemo)((()=>{let e={opacity:pe?.2:1};return fe&&q===p.inside&&(e={boxShadow:E,background:"rgba(255, 255, 255, 0.1)"}),Object.assign({},e)}),[fe,pe,q]),me=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),oe(!0),le((e=>!e))}),[]),be=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation()}),[]),ge=(0,a.useCallback)((e=>{var t;if(!L)return null==T||null===(t=T(f))||void 0===t?void 0:t();me(e)}),[T,me,L,f]);(0,a.useEffect)((()=>{ne&&(null==K||K(null==O?void 0:O(f),ae))}),[ne,ae,O,f,K]);const ve=R&&!x&&!Z;return Z&&B&&!f.matched?null:l().createElement(l().Fragment,null,fe&&(H||1!==m)&&ee===p.top&&l().createElement(S,{style:{marginLeft:X}}),l().createElement("li",(0,o.A)({draggable:W,onDragStart:e=>U(e,f),"data-uid":ue,"data-level":m,style:he},L?{"data-container":L}:{}),l().createElement(k,(0,o.A)({className:"nodeLabelLink",tabIndex:0,onMouseEnter:re,onMouseLeave:ie,onContextMenu:ce,onClick:ge},j?{url:{pathname:(0,r.get)(f.link,"url","href"),state:{notify:!1}}}:{...(0,r.pick)(f.link,["url","href"])}),l().createElement("span",{className:s()("nodeLabelRow",{active:se,hover:I&&f.key===I,matched:Z&&f.matchedSelf&&!B,fixedActions:D&&[].concat(D).some((e=>(0,r.isMatch)(f.data,e))),collapsed:ve&&ae,collapsible:ve})},l().createElement("span",{className:s()("nodeLabel",{unreachable:f.unreachable}),style:{paddingLeft:X,color:f.labelColor},ref:de},l().createElement("span",{className:"nodeIconWrapper"},ve&&l().createElement("span",{className:"collapseIcon",onClick:me,onMouseDown:be,title:ae?"Expand":"Collapse",role:"button"},l().createElement(y,{lib:"antd",theme:"outlined",icon:ae?"right":"down"})),l().createElement("span",{className:"nodeIcon"},l().createElement(y,(0,o.A)({},f.icon,{style:{fontSize:null!==(i=f.icon)&&void 0!==i&&i.imgSrc?14:null,color:null===(c=f.icon)||void 0===c?void 0:c.color}})))),l().createElement("span",{className:"nodeName"},f.labelPrefix&&l().createElement("span",{style:f.labelPrefix.style},f.labelPrefix.text),f.name)),l().createElement(v,{className:"nodeActionsBar",data:f.data,isFirst:b,isLast:g,actions:G,onActionClick:Q,actionsHidden:J}),f.badge&&l().createElement("span",{className:"badge"},l().createElement(y,(0,o.A)({},f.badge,{style:{color:f.badge.color}}))))),x||l().createElement(N,{nodes:f.children,level:m+1})),fe&&(H||1!==m)&&ee===p.bottom&&l().createElement(S,{style:{marginLeft:X}}))}},9406:(e,t,n)=>{n.d(t,{N:()=>a,o:()=>l});var o=n(8769);const a=(0,o.createContext)({});function l(){return(0,o.useContext)(a)}},675:(e,t,n)=>{function o(e,t){switch(typeof e){case"string":return e.toLowerCase().includes(t);case"boolean":case"number":return String(e).includes(t);case"object":return null===e?"null".includes(t):(Array.isArray(e)?e:Object.entries(e).flat()).some((e=>o(e,t)));default:return!1}}n.d(t,{U:()=>o})},6275:(e,t,n)=>{n.d(t,{A:()=>i});var o=n(6758),a=n.n(o),l=n(935),r=n.n(l)()(a());r.push([e.id,".actionsBar{display:flex;align-items:center;padding:0 3px}.action{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:5px}.action:hover{color:#fff;background-color:rgba(90,93,94,0.31)}.action{color:#c5c5c5}.disabled,\n.disabled:hover{color:var(--color-disabled-text);cursor:not-allowed;background-color:initial}",""]);const i=r.toString()},7995:(e,t,n)=>{n.d(t,{A:()=>i});var o=n(6758),a=n.n(o),l=n(935),r=n.n(l)()(a());r.push([e.id,':host,\n:host-context(html[data-override-theme="light"]){--search-box-background:#fff;--node-color:#595959;--node-color-focus:#595959;--node-background-active:#e0eeff;--node-background-focus:#e0eeff;--node-icon-background-hover:#fff}:host-context(html[data-theme="dark-v2"]),\n:host-context(html[data-override-theme="dark-v2"]){--search-box-background:#181818;--node-color:#c5c5c5;--node-color-focus:#fff;--node-background-active:rgba(255,255,255,0.08);--node-background-focus:#1a7aff;--node-icon-background-hover:rgba(90,93,94,0.31)}.searchBox{position:sticky;top:0;background-color:var(--search-box-background);padding:5px 10px 10px;z-index:1}.searchBox .filter-input-wrapper{background-color:var(--search-box-background);border:1px solid rgba(255,255,255,0.2);position:relative;width:100%;min-width:0;padding:2px 7px;color:var(--antd-input-color);font-size:14px;line-height:1.5715;display:inline-flex;border-radius:3px;transition:all 0.3s;box-sizing:border-box}.searchBox .filter-input-wrapper.focus{background-color:var(--search-box-background);border:1px solid rgba(255,255,255,0.2);border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(0,113,235,0.2)}.searchBox .filter-input-wrapper input{text-overflow:ellipsis;border:none;outline:none;border-radius:3px;background-color:var(--search-box-background);box-sizing:border-box;margin:0;padding:0;color:var(--antd-text-color);font-variant:tabular-nums;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;width:100%;min-width:0;color:var(--antd-input-color);font-size:14px;line-height:1.5715;background-image:none;transition:all 0.3s}.prefix{margin-right:4px}.suffix{margin-left:4px}.searchBox .prefix,\n.searchBox .suffix{display:flex;flex:none;align-items:center}.clear-button{cursor:pointer}.tree{list-style:none;margin:0;padding:0}.placeholder{color:var(--antd-input-placeholder-color);padding:0 15px}.nodeLabelLink{display:block}.nodeLabelLink::part(link){display:flex}.nodeLabelRow{display:flex;cursor:pointer;height:22px;padding-right:10px;flex:1;min-width:0}.nodeLabelRow:hover,\n.nodeLabelRow.hover{background-color:rgba(255,255,255,0.12)}.nodeLabelLink:focus .nodeLabelRow.active{background-color:var(--node-background-focus)}.nodeLabel{display:flex;align-items:center;min-width:0;flex:1}.unreachable{opacity:0.3}.nodeAction,\n.nodeAction:hover,\n.nodeLabelRow .nodeLabel{color:var(--node-color)}.nodeLabelLink:focus .nodeLabel{color:var(--node-color-focus)}.nodeLabelRow.matched .nodeLabel{color:var(--palette-orange-6)}.nodeLabelRow.active{background-color:var(--node-background-active)}.nodeIconWrapper{display:flex;width:24px;flex-shrink:0}.nodeIcon,\n.collapseIcon{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:5px;font-size:13px}.collapseIcon{display:none}.nodeLabelRow.collapsed .nodeIcon,\n.nodeLabelRow.collapsible .nodeIconWrapper:hover .nodeIcon{display:none}.nodeLabelRow.collapsed .collapseIcon,\n.nodeLabelRow.collapsible .nodeIconWrapper:hover .collapseIcon{display:flex}.nodeLabelRow.collapsible .nodeIcon:hover,\n.nodeLabelRow.collapsible .collapseIcon:hover{background-color:var(--node-icon-background-hover)}.nodeName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nodeLabelRow:not(:hover, .fixedActions) .nodeActionsBar{display:none}.badge{margin:0 3px}.collapsed + .tree{display:none}.hightlight{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:#fcd93f}',""]);const i=r.toString()}}]);
|
|
2
|
-
//# sourceMappingURL=2980.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[2980],{4940:(e,t,n)=>{n.d(t,{e:()=>a,l:()=>l});var o=n(8769);const a=(0,o.createContext)({});function l(){return(0,o.useContext)(a)}},7758:(e,t,n)=>{n.d(t,{cU:()=>L});var o=n(9575),a=n(8769),l=n.n(a),r=n(1030),i=n.n(r),c=n(3373),s=n.n(c),d=n(9406),u=n(4940);let p=function(e){return e.inside="inside",e.top="top",e.bottom="bottom",e}({});const f=(0,a.createContext)({});function h(){return(0,a.useContext)(f)}var m=n(4295),b=n(4946);const g=(0,m.wrapBrick)("eo-icon");function v(e){let{data:t,className:n,gap:o,isFirst:r,isLast:i,actions:c,actionsHidden:d,onActionClick:u}=e;const p=(0,a.useMemo)((()=>null==c?void 0:c.filter((e=>(0,b.checkIfByTransform)(e,t)))),[c,t]);return d||null==p||!p.length?null:l().createElement("div",{className:s()("actionsBar",n),style:{gap:o}},p.map((e=>l().createElement(x,{key:e.action,action:e,data:t,isFirst:r,isLast:i,onActionClick:u}))))}function x(e){let{action:t,data:n,isFirst:o,isLast:r,onActionClick:i}=e;const c=o&&"move-up"===t.action||r&&"move-down"===t.action,d=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),c||null==i||i({action:t.action,data:n})}),[t.action,n,c,i]),u=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation()}),[]);return l().createElement("a",{className:s()("action",{disabled:c}),title:t.title,role:"button",onClick:d,onContextMenu:u,onMouseDown:u},l().createElement(g,t.icon))}const k=(0,m.wrapBrick)("eo-link"),y=(0,m.wrapBrick)("eo-icon"),w=10,E="0 0 0 1px #ba6d30",C=(0,a.createContext)(!1);function L(e){let{nodes:t,placeholder:n,searchPlaceholder:o,isDrag:r,noSearch:c,allowDrag:u,allowDragToRoot:h,allowDragToInside:m,dropEmit:b}=e;const[g,v]=(0,a.useState)(""),[x,k]=(0,a.useState)(r),[w,E]=(0,a.useState)(),[L,S]=(0,a.useState)(),[I,M]=(0,a.useState)(),[A,B]=(0,a.useState)(),[D,R]=(0,a.useState)(),[P,F]=(0,a.useState)(),{nodeKey:T,onBrickDrop:z,contextMenuFactory:$,matchNode:_}=(0,d.o)(),K=(0,a.useMemo)((()=>{var e;return function(e,t){const n=(e,o,a,l)=>{const r=e.shift();if(r){e.length>0&&e.splice(0,1,`${r}/${e[0]}`);const i=o.find((e=>e&&e.key===r&&e.isContainer));if(i)o[l]=null,n(e,i.children,a);else{const i=r.split("/"),c={name:i.pop(),key:r,parentPath:i?i.join("/"):i,originKey:a.key,data:{[t]:r,isContainer:!0},children:[],icon:{icon:"folder",lib:"antd",theme:"filled",color:"orange"},isContainer:!0};"number"==typeof l?o[l]=c:o.push(c),n(e,c.children,a)}}else o.push(a)};return e.forEach(((t,o)=>{if(t.path){const a=t.path.split("/").filter(Boolean);n(a,e,t,o)}})),e.filter(Boolean)}(null!==(e=null==t?void 0:t.slice())&&void 0!==e?e:[],T)}),[t,T]),O=(0,a.useCallback)((e=>{v(e.target.value)}),[]),j=(0,a.useMemo)((()=>null==$?void 0:$()),[$]),W=null==g?void 0:g.trim().toLowerCase(),H=(0,a.useMemo)((()=>{if(c||!W||!K)return K;const e=t=>{var n;t.matchedSelf=_(t,W);const o=null===(n=t.children)||void 0===n?void 0:n.map(e).includes(!0);return t.matched=t.matchedSelf||o,t.matched};return K.forEach(e),K.slice()}),[c,W,K,_]),U=function(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=e;for(;n;){if(n.draggable&&(t||n!==e)&&"A"!==n.tagName)return n;n=n.parentElement}},Y=function(e,t,n){let o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;for(const a of e)if(a.data[n]===t&&(o=a),a.children&&(o=Y(a.children,t,n,o)),o)break;return o},V=()=>{S(null),B(null),M(null),R(null),k(!1)};return(0,a.useEffect)((()=>{k(r)}),[r]),(0,a.useEffect)((()=>(window.addEventListener("dragend",V),()=>{window.removeEventListener("dragend",V)})),[]),l().createElement("div",{style:{height:"100%"},className:"tree-wrapper",onContextMenu:j},null!=K&&K.length?l().createElement("div",null,!c&&l().createElement("div",{className:"searchBox",onContextMenu:e=>e.stopPropagation()},l().createElement("span",{className:s()("filter-input-wrapper",{focus:P})},l().createElement("span",{className:"prefix"},l().createElement(y,{icon:"search",lib:"antd",theme:"outlined"})),l().createElement("input",{value:g,onChange:O,onFocus:()=>F(!0),onBlur:()=>F(!1),autoComplete:"off",placeholder:o}),l().createElement("span",{className:"suffix"},g?l().createElement(y,{className:"clear-button",icon:"close-circle",lib:"antd",theme:"filled",onClick:()=>{v("")}}):null))),l().createElement(C.Provider,{value:!!g},l().createElement(f.Provider,{value:{allow:u,allowDragToRoot:h,dragElement:L,dragOverElement:A,dragStatus:D,onDragStart:(e,t)=>{var n;if(e.stopPropagation(),!u)return;const o=e.target;null!==(n=o.dataset)&&void 0!==n&&n.container||(k(!0),function(e,t){const n=document.createElement("canvas");document.body.append(n);const o=n.getContext("2d");n.width=o.measureText(t).width+60,n.height=20,n.style.position="absolute",n.style.left="-100%",n.style.zIndex="-100",o.fillStyle="#333333",o.fillRect(0,0,n.width,n.height),o.fillStyle="#999999",o.font="bold 14px Arial",o.fillText(t,20,15),e.dataTransfer.setDragImage(n,0,0)}(e,o.innerText),S(o),E(t))}}},l().createElement("div",{className:s()({hightlight:r}),onDragOver:e=>{if(e.preventDefault(),!x)return;if("workbenchTree-placeholder-dom"===e.target.className)return;const t=(e=>{const t=U(e.target),n=t.dataset.uid;if(t===L||null!=n&&n.includes(":"))return;const{top:o,bottom:a}=t.getBoundingClientRect();let l;const r=m?5:10;return l=e.clientY<o+r?p.top:e.clientY>a-r?p.bottom:m?p.inside:D,{element:t,node:Y(K,n,T),status:l}})(e);!t||null!=L&&L.contains(t.element)||(B(t.element),M(t.node),R(t.status))},onDrop:e=>{if(x){if(z){let t=A;[p.top,p.bottom].includes(D)&&(t=U(t,!1)),z(e,{curElement:L,overElement:A,parentElement:t,overStatus:D})}else if(h||1!==Number(A.dataset.level)){let e=I;const t=(n,o)=>{for(let a=0;a<n.length;a++){if(n[a].key===o){e=n[a];break}n[a].children&&t(n[a].children,o)}},n=A.dataset.uid;t(K,n);const o=t=>{let n=!1;const{container:a,uid:l}=A.dataset,r=a?e.originKey:l,i=t.filter((e=>(e.children&&(e.children=o(e.children)),e.key===r&&(n=!0),e.key!==w.key)));return n&&i.splice(i.findIndex((e=>e.key===r))+("bottom"===D?1:0),0,w),i},a=function(e){const t=[],n=e=>{e.forEach((e=>{e.isContainer?n(e.children):t.push(i().omit(e,["path","icon"]))}))};return n(e),t}(K),l=w.isContainer?a.find((e=>e.key===w.originKey)):w;l.data.path=e.parentPath||e.path,b({nodes:o(a),curNode:l,overNode:e,status:D})}V()}}},l().createElement(N,{nodes:H,level:1}))))):l().createElement("div",{className:"placeholder"},n))}function N(e){let{nodes:t,level:n}=e;const o=t.length-1;return l().createElement("ul",{className:"tree"},t.filter((e=>(0,b.checkIfOfComputed)(e))).map(((e,t)=>l().createElement(I,{key:e.key,node:e,level:n,isFirst:0===t,isLast:t===o}))))}function S(e){let{style:t}=e;const{dragStatus:n}=h(),o={height:22,border:"1px dashed goldenrod",opacity:n===p.inside?"0":"1",...t};return l().createElement("li",{className:"workbenchTree-placeholder-dom",style:o})}function I(e){var t,n,i,c;let{node:f,level:m,isFirst:b,isLast:g}=e;const x=!(null!==(t=f.children)&&void 0!==t&&t.length),L=f.isContainer,{hoverKey:I,activeKey:M,basePaddingLeft:A,showMatchedNodeOnly:B,fixedActionsFor:D,collapsible:R,collapsedNodes:P,nodeKey:F,clickFactory:T,mouseEnterFactory:z,mouseLeaveFactory:$,contextMenuFactory:_,onNodeToggle:K,getCollapsedId:O,skipNotify:j}=(0,d.o)(),{allow:W,allowDragToRoot:H,onDragStart:U,dragElement:Y,dragOverElement:V,dragStatus:q}=h(),{actions:G,actionsHidden:J,onActionClick:Q}=(0,u.l)(),X=m*w+A-2,Z=(0,a.useContext)(C),[ee,te]=(0,a.useState)(null),[ne,oe]=(0,a.useState)(!1),[ae,le]=(0,a.useState)(null!==(n=null==P?void 0:P.includes(null==O?void 0:O(f)))&&void 0!==n&&n),re=(0,a.useMemo)((()=>null==z?void 0:z(f)),[z,f]),ie=(0,a.useMemo)((()=>null==$?void 0:$(f)),[$,f]),ce=(0,a.useCallback)((e=>{var t;e.stopPropagation(),null==_||null===(t=_(f))||void 0===t||t(e)}),[_,f]),se=M&&f.key===M,de=(0,a.useMemo)((()=>se?e=>{var t;null==e||null===(t=e.scrollIntoView)||void 0===t||t.call(e,{block:"center",inline:"center"})}:null),[]),ue=(0,a.useMemo)((()=>{return L?f.key:f.data?"mount-point"===(e=f.data).type?e.parent[F]||`${e.parent.$$uid}:${e.mountPoint}`:e[F]||e.$$uid:void 0;var e}),[F,f,L]);(0,a.useEffect)((()=>{q!==p.inside&&[p.top,p.bottom].includes(q)&&te(q)}),[q]);const pe=(0,a.useMemo)((()=>!!Y&&Y.dataset.uid===String(ue)),[Y,ue]),fe=(0,a.useMemo)((()=>!!V&&V.dataset.uid===String(ue)),[V,ue]),he=(0,a.useMemo)((()=>{let e={opacity:pe?.2:1};return fe&&q===p.inside&&(e={boxShadow:E,background:"rgba(255, 255, 255, 0.1)"}),Object.assign({},e)}),[fe,pe,q]),me=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),oe(!0),le((e=>!e))}),[]),be=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation()}),[]),ge=(0,a.useCallback)((e=>{var t;if(!L)return null==T||null===(t=T(f))||void 0===t?void 0:t();me(e)}),[T,me,L,f]);(0,a.useEffect)((()=>{ne&&(null==K||K(null==O?void 0:O(f),ae))}),[ne,ae,O,f,K]);const ve=R&&!x&&!Z;return Z&&B&&!f.matched?null:l().createElement(l().Fragment,null,fe&&(H||1!==m)&&ee===p.top&&l().createElement(S,{style:{marginLeft:X}}),l().createElement("li",(0,o.A)({draggable:W,onDragStart:e=>U(e,f),"data-uid":ue,"data-level":m,style:he},L?{"data-container":L}:{}),l().createElement(k,(0,o.A)({className:"nodeLabelLink",tabIndex:0,onMouseEnter:re,onMouseLeave:ie,onContextMenu:ce,onClick:ge},j?{url:{pathname:(0,r.get)(f.link,"url","href"),state:{notify:!1}}}:{...(0,r.pick)(f.link,["url","href"])}),l().createElement("span",{className:s()("nodeLabelRow",{active:se,hover:I&&f.key===I,matched:Z&&f.matchedSelf&&!B,fixedActions:D&&[].concat(D).some((e=>(0,r.isMatch)(f.data,e))),collapsed:ve&&ae,collapsible:ve})},l().createElement("span",{className:s()("nodeLabel",{unreachable:f.unreachable}),style:{paddingLeft:X,color:f.labelColor},ref:de},l().createElement("span",{className:"nodeIconWrapper"},ve&&l().createElement("span",{className:"collapseIcon",onClick:me,onMouseDown:be,title:ae?"Expand":"Collapse",role:"button"},l().createElement(y,{lib:"antd",theme:"outlined",icon:ae?"right":"down"})),l().createElement("span",{className:"nodeIcon"},l().createElement(y,(0,o.A)({},f.icon,{style:{fontSize:null!==(i=f.icon)&&void 0!==i&&i.imgSrc?14:null,color:null===(c=f.icon)||void 0===c?void 0:c.color}})))),l().createElement("span",{className:"nodeName"},f.labelPrefix&&l().createElement("span",{style:f.labelPrefix.style},f.labelPrefix.text),f.name)),l().createElement(v,{className:"nodeActionsBar",data:f.data,isFirst:b,isLast:g,actions:G,onActionClick:Q,actionsHidden:J}),f.badge&&l().createElement("span",{className:"badge"},l().createElement(y,(0,o.A)({},f.badge,{style:{color:f.badge.color}}))))),x||l().createElement(N,{nodes:f.children,level:m+1})),fe&&(H||1!==m)&&ee===p.bottom&&l().createElement(S,{style:{marginLeft:X}}))}},9406:(e,t,n)=>{n.d(t,{N:()=>a,o:()=>l});var o=n(8769);const a=(0,o.createContext)({});function l(){return(0,o.useContext)(a)}},675:(e,t,n)=>{function o(e,t){switch(typeof e){case"string":return e.toLowerCase().includes(t);case"boolean":case"number":return String(e).includes(t);case"object":return null===e?"null".includes(t):(Array.isArray(e)?e:Object.entries(e).flat()).some((e=>o(e,t)));default:return!1}}n.d(t,{U:()=>o})},6275:(e,t,n)=>{n.d(t,{A:()=>i});var o=n(6758),a=n.n(o),l=n(935),r=n.n(l)()(a());r.push([e.id,".actionsBar{display:flex;align-items:center;padding:0 3px}.action{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:5px}.action:hover{color:#fff;background-color:rgba(90,93,94,0.31)}.action{color:#c5c5c5}.disabled,\n.disabled:hover{color:var(--color-disabled-text);cursor:not-allowed;background-color:initial}",""]);const i=r.toString()},7995:(e,t,n)=>{n.d(t,{A:()=>i});var o=n(6758),a=n.n(o),l=n(935),r=n.n(l)()(a());r.push([e.id,':host,\n:host-context(html[data-override-theme="light"]){--search-box-background:#fff;--node-color:#595959;--node-color-focus:#595959;--node-background-active:#e0eeff;--node-background-focus:#e0eeff;--node-icon-background-hover:#fff}:host-context(html[data-theme="dark-v2"]),\n:host-context(html[data-override-theme="dark-v2"]){--search-box-background:#181818;--node-color:#c5c5c5;--node-color-focus:#fff;--node-background-active:rgba(255,255,255,0.08);--node-background-focus:#1a7aff;--node-icon-background-hover:rgba(90,93,94,0.31)}.searchBox{position:sticky;top:0;background-color:var(--search-box-background);padding:5px 10px 10px;z-index:1}.searchBox .filter-input-wrapper{background-color:var(--search-box-background);border:1px solid rgba(255,255,255,0.2);position:relative;width:100%;min-width:0;padding:2px 7px;color:var(--antd-input-color);font-size:14px;line-height:1.5715;display:inline-flex;border-radius:3px;transition:all 0.3s;box-sizing:border-box}.searchBox .filter-input-wrapper.focus{background-color:var(--search-box-background);border:1px solid rgba(255,255,255,0.2);border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(0,113,235,0.2)}.searchBox .filter-input-wrapper input{text-overflow:ellipsis;border:none;outline:none;border-radius:3px;background-color:var(--search-box-background);box-sizing:border-box;margin:0;padding:0;color:var(--antd-text-color);font-variant:tabular-nums;list-style:none;font-feature-settings:"tnum";position:relative;display:inline-block;width:100%;min-width:0;color:var(--antd-input-color);font-size:14px;line-height:1.5715;background-image:none;transition:all 0.3s}.prefix{margin-right:4px}.suffix{margin-left:4px}.searchBox .prefix,\n.searchBox .suffix{display:flex;flex:none;align-items:center}.clear-button{cursor:pointer}.tree{list-style:none;margin:0;padding:0}.placeholder{color:var(--antd-input-placeholder-color);padding:0 15px}.nodeLabelLink{display:block}.nodeLabelLink::part(link){display:flex}.nodeLabelRow{display:flex;cursor:pointer;height:22px;padding-right:10px;flex:1;min-width:0}.nodeLabelRow:hover,\n.nodeLabelRow.hover{background-color:rgba(255,255,255,0.12)}.nodeLabelLink:focus .nodeLabelRow.active{background-color:var(--node-background-focus)}.nodeLabel{display:flex;align-items:center;min-width:0;flex:1}.unreachable{opacity:0.3}.nodeAction,\n.nodeAction:hover,\n.nodeLabelRow .nodeLabel{color:var(--node-color)}.nodeLabelLink:focus .nodeLabel{color:var(--node-color-focus)}.nodeLabelRow.matched .nodeLabel{color:var(--palette-orange-6)}.nodeLabelRow.active{background-color:var(--node-background-active)}.nodeIconWrapper{display:flex;width:24px;flex-shrink:0}.nodeIcon,\n.collapseIcon{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:5px;font-size:13px}.collapseIcon{display:none}.nodeLabelRow.collapsed .nodeIcon,\n.nodeLabelRow.collapsible .nodeIconWrapper:hover .nodeIcon{display:none}.nodeLabelRow.collapsed .collapseIcon,\n.nodeLabelRow.collapsible .nodeIconWrapper:hover .collapseIcon{display:flex}.nodeLabelRow.collapsible .nodeIcon:hover,\n.nodeLabelRow.collapsible .collapseIcon:hover{background-color:var(--node-icon-background-hover)}.nodeName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nodeLabelRow:not(:hover):not(.fixedActions) .nodeActionsBar{display:none}.badge{margin:0 3px}.collapsed + .tree{display:none}.hightlight{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:#fcd93f}',""]);const i=r.toString()}}]);
|
|
2
|
+
//# sourceMappingURL=2980.89f78737.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/2980.714f5f61.js","mappings":"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","sources":["webpack:///./src/shared/workbench/WorkbenchActionsContext.ts","webpack:///./src/shared/workbench/WorkbenchTreeDndContext.ts","webpack:///./src/shared/workbench-mini-action-bar/WorkbenchMiniActionBar.tsx","webpack:///./src/shared/workbench/WorkbenchTree.tsx","webpack:///./src/utils/normalizeTreeNodeWithPath.ts","webpack:///./src/utils/setDragImage.ts","webpack:///./src/shared/workbench/WorkbenchTreeContext.ts","webpack:///./src/utils/deepMatch.ts","webpack:///./src/shared/workbench-mini-action-bar/WorkbenchMiniActionBar.shadow.css","webpack:///./src/workbench-tree/WorkbenchTree.shadow.css"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type {\n ActionClickDetail,\n WorkbenchTreeAction,\n} from \"../../interfaces.js\";\n\nexport interface ContextOfWorkbenchActions {\n actions?: WorkbenchTreeAction[];\n actionsHidden?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nexport const WorkbenchActionsContext = createContext<ContextOfWorkbenchActions>(\n {}\n);\n\nexport function useWorkbenchActionsContext(): ContextOfWorkbenchActions {\n return useContext(WorkbenchActionsContext);\n}\n","import { createContext, useContext } from \"react\";\nimport { WorkbenchNodeData } from \"../../interfaces.js\";\n\nexport enum dragStatusEnum {\n inside = \"inside\",\n top = \"top\",\n bottom = \"bottom\",\n}\n\ninterface WorkbenchTreeDndContext {\n allow?: boolean;\n allowDragToRoot?: boolean;\n dragElement?: HTMLElement;\n dragOverElement?: HTMLElement;\n dragStatus?: dragStatusEnum;\n onDragStart?: (\n e: React.DragEvent<HTMLElement>,\n node: WorkbenchNodeData\n ) => void;\n onDragOver?: (e: React.DragEvent<HTMLElement>) => void;\n onDrop?: (e: React.DragEvent<HTMLElement>) => void;\n}\n\nexport const WorkbenchTreeDndContext = createContext<WorkbenchTreeDndContext>(\n {} as WorkbenchTreeDndContext\n);\n\nexport function useWorkbenchTreeDndContext(): WorkbenchTreeDndContext {\n return useContext(WorkbenchTreeDndContext);\n}\n","import React, { useCallback, useMemo } from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport { checkIfByTransform } from \"@next-core/runtime\";\nimport { WorkbenchTreeAction, ActionClickDetail } from \"../../interfaces.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\n\nexport const WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\n \"eo-icon\"\n);\n\nexport interface WorkbenchSubActionBarProps {\n data?: unknown;\n className?: string;\n gap?: number;\n isFirst?: boolean;\n isLast?: boolean;\n actions?: WorkbenchTreeAction[];\n actionsHidden?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nexport function WorkbenchMiniActionBar({\n data,\n className,\n gap,\n isFirst,\n isLast,\n actions,\n actionsHidden,\n onActionClick,\n}: WorkbenchSubActionBarProps): React.ReactElement {\n const enabledActions = useMemo(\n () => actions?.filter((item) => checkIfByTransform(item, data)),\n [actions, data]\n );\n\n if (actionsHidden || !enabledActions?.length) {\n return null;\n }\n\n return (\n <div className={classNames(\"actionsBar\", className)} style={{ gap }}>\n {enabledActions.map((item) => (\n <WorkbenchSubAction\n key={item.action}\n action={item}\n data={data}\n isFirst={isFirst}\n isLast={isLast}\n onActionClick={onActionClick}\n />\n ))}\n </div>\n );\n}\n\ninterface WorkbenchSubActionProps {\n action: WorkbenchTreeAction;\n data?: unknown;\n isFirst?: boolean;\n isLast?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nfunction WorkbenchSubAction({\n action,\n data,\n isFirst,\n isLast,\n onActionClick,\n}: WorkbenchSubActionProps): React.ReactElement {\n const disabled =\n (isFirst && action.action === \"move-up\") ||\n (isLast && action.action === \"move-down\");\n\n const handleActionClick = useCallback(\n (event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n disabled ||\n onActionClick?.({\n action: action.action,\n data: data,\n });\n },\n [action.action, data, disabled, onActionClick]\n );\n\n const preventMouseEvent = useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n return (\n <a\n className={classNames(\"action\", { disabled: disabled })}\n title={action.title}\n role=\"button\"\n onClick={handleActionClick}\n onContextMenu={preventMouseEvent}\n onMouseDown={preventMouseEvent}\n >\n <WrappedGeneralIcon {...action.icon} />\n </a>\n );\n}\n","import React, {\n type ChangeEvent,\n useCallback,\n useMemo,\n useState,\n type ReactElement,\n createContext,\n useContext,\n useEffect,\n} from \"react\";\n// import { Input } from \"antd\";\nimport { get, isMatch, pick } from \"lodash\";\nimport classNames from \"classnames\";\nimport { useWorkbenchTreeContext } from \"./WorkbenchTreeContext.js\";\nimport { useWorkbenchActionsContext } from \"./WorkbenchActionsContext.js\";\nimport {\n useWorkbenchTreeDndContext,\n dragStatusEnum,\n} from \"./WorkbenchTreeDndContext.js\";\nimport type { WorkbenchNodeData } from \"../../interfaces.js\";\nimport { WorkbenchMiniActionBar } from \"../workbench-mini-action-bar/WorkbenchMiniActionBar.js\";\nimport { checkIfOfComputed } from \"@next-core/runtime\";\nimport { WorkbenchTreeDndContext } from \"./WorkbenchTreeDndContext.js\";\nimport { setDragImage } from \"../../utils/setDragImage.js\";\nimport classnames from \"classnames\";\nimport {\n getNodesByPathTree,\n getNodeTreeByPath,\n} from \"../../utils/normalizeTreeNodeWithPath.js\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\n\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nexport const WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\n \"eo-icon\"\n);\n\nconst treeLevelPadding = 10;\nconst borderStyle = \"0 0 0 1px #ba6d30\";\n\nexport interface dropEmitProps {\n nodes: WorkbenchNodeData[];\n curNode: WorkbenchNodeData;\n overNode: WorkbenchNodeData;\n status: dragStatusEnum;\n}\n\nexport interface WorkbenchTreeProps {\n nodes: WorkbenchNodeData[];\n placeholder?: string;\n searchPlaceholder?: string;\n noSearch?: boolean;\n isDrag?: boolean;\n allowDrag?: boolean;\n allowDragToRoot?: boolean;\n allowDragToInside?: boolean;\n dropEmit?: (detail: dropEmitProps) => void;\n}\n\nexport interface TreeListProps {\n nodes: WorkbenchNodeData[];\n level: number;\n}\n\nconst SearchingContext = createContext(false);\n\nexport function WorkbenchTree({\n nodes: originNode,\n placeholder,\n searchPlaceholder,\n isDrag,\n noSearch,\n allowDrag,\n allowDragToRoot,\n allowDragToInside,\n dropEmit,\n}: WorkbenchTreeProps): ReactElement {\n const [q, setQ] = useState<string>(\"\");\n const [isDragging, setIsDragging] = useState<boolean>(isDrag);\n const [curNode, setCurNode] = useState<WorkbenchNodeData>();\n const [curElement, setCurElement] = useState<HTMLElement>();\n const [overNode, setOverNode] = useState<WorkbenchNodeData>();\n const [overElement, setOverElement] = useState<HTMLElement>();\n const [overStatus, setOverStatus] = useState<dragStatusEnum>();\n const [isFocus, setIsFocus] = useState<boolean>();\n const { nodeKey, onBrickDrop, contextMenuFactory, matchNode } =\n useWorkbenchTreeContext();\n const nodes = useMemo(\n () => getNodeTreeByPath(originNode?.slice() ?? [], nodeKey),\n [originNode, nodeKey]\n );\n\n const handleSearchChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setQ(event.target.value);\n },\n []\n );\n\n const handleClearInput = () => {\n setQ(\"\");\n };\n\n const onContextMenu = useMemo(\n () => contextMenuFactory?.(),\n [contextMenuFactory]\n );\n\n const trimmedLowerQ = q?.trim().toLowerCase();\n const filteredNodes = useMemo(() => {\n if (noSearch || !trimmedLowerQ || !nodes) {\n return nodes;\n }\n const walk = (node: WorkbenchNodeData): boolean => {\n node.matchedSelf = matchNode(node, trimmedLowerQ);\n const hasMatchedChildren = node.children?.map(walk).includes(true);\n node.matched = node.matchedSelf || hasMatchedChildren;\n return node.matched;\n };\n nodes.forEach(walk);\n return nodes.slice();\n }, [noSearch, trimmedLowerQ, nodes, matchNode]);\n\n const findDragParent = (element: HTMLElement, equal = true): HTMLElement => {\n let node = element;\n while (node) {\n if (\n node.draggable &&\n (equal || node !== element) &&\n node.tagName !== \"A\"\n ) {\n return node;\n }\n node = node.parentElement;\n }\n };\n\n const findNode = (\n nodes: WorkbenchNodeData[],\n id: string,\n nodeKey: string,\n node: WorkbenchNodeData = null\n ): WorkbenchNodeData => {\n for (const item of nodes) {\n if ((item.data as Record<string, unknown>)[nodeKey] === id) {\n node = item;\n }\n if (item.children) {\n node = findNode(item.children, id, nodeKey, node);\n }\n if (node) break;\n }\n return node;\n };\n\n const getDragState = (\n e: React.DragEvent<HTMLElement>\n ): {\n element: HTMLElement;\n node: WorkbenchNodeData;\n status: dragStatusEnum;\n } => {\n const element = findDragParent(e.target as HTMLElement);\n const id = element.dataset.uid;\n if (element === curElement || id?.includes(\":\")) {\n return;\n }\n const { top, bottom } = element.getBoundingClientRect();\n let status: dragStatusEnum;\n const repair = allowDragToInside ? 5 : 10;\n if (e.clientY < top + repair) {\n status = dragStatusEnum.top;\n } else if (e.clientY > bottom - repair) {\n status = dragStatusEnum.bottom;\n } else {\n status = allowDragToInside ? dragStatusEnum.inside : overStatus;\n }\n\n return {\n element,\n node: findNode(nodes, id, nodeKey),\n status,\n };\n };\n\n const handleOnDragStart = (\n e: React.DragEvent,\n node: WorkbenchNodeData\n ): void => {\n e.stopPropagation();\n if (!allowDrag) return;\n const element = e.target as HTMLElement;\n if (element.dataset?.container) return;\n setIsDragging(true);\n setDragImage(e, element.innerText);\n setCurElement(element);\n setCurNode(node);\n };\n\n const handleOnDragOver = (e: React.DragEvent<HTMLElement>): void => {\n e.preventDefault();\n if (!isDragging) return;\n if ((e.target as HTMLElement).className === \"workbenchTree-placeholder-dom\")\n return;\n const dom = getDragState(e);\n if (dom && !curElement?.contains(dom.element)) {\n setOverElement(dom.element);\n setOverNode(dom.node);\n setOverStatus(dom.status);\n }\n };\n\n const handleOnDragEnd = (): void => {\n setCurElement(null);\n setOverElement(null);\n setOverNode(null);\n setOverStatus(null);\n setIsDragging(false);\n };\n\n const handleOnDrop = (e: React.DragEvent<HTMLElement>): void => {\n if (!isDragging) return;\n if (onBrickDrop) {\n let parentElement = overElement;\n if ([dragStatusEnum.top, dragStatusEnum.bottom].includes(overStatus)) {\n parentElement = findDragParent(parentElement, false);\n }\n onBrickDrop(e, {\n curElement,\n overElement,\n parentElement,\n overStatus,\n });\n } else {\n if (allowDragToRoot || Number(overElement.dataset.level) !== 1) {\n let realOverNode = overNode;\n const findRealNode = (\n nodes: WorkbenchNodeData[],\n key: string\n ): void => {\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i].key === key) {\n realOverNode = nodes[i];\n break;\n }\n if (nodes[i].children) {\n findRealNode(nodes[i].children, key);\n }\n }\n };\n const overUid = overElement.dataset.uid;\n findRealNode(nodes, overUid);\n const filterNodes = (\n nodes: WorkbenchNodeData[]\n ): WorkbenchNodeData[] => {\n let flag = false;\n const { container, uid } = overElement.dataset;\n const realOverKey = container ? realOverNode.originKey : uid;\n const newNodes = nodes.filter((node) => {\n if (node.children) {\n node.children = filterNodes(node.children);\n }\n if (node.key === realOverKey) flag = true;\n return node.key !== curNode.key;\n });\n if (flag) {\n newNodes.splice(\n newNodes.findIndex((item) => item.key === realOverKey) +\n (overStatus === \"bottom\" ? 1 : 0),\n 0,\n curNode\n );\n }\n return newNodes;\n };\n\n const normalizeNode = getNodesByPathTree(nodes);\n const realCurNode = curNode.isContainer\n ? normalizeNode.find((item) => item.key === curNode.originKey)\n : curNode;\n const curNodeData = realCurNode.data as Record<string, unknown>;\n curNodeData.path = realOverNode.parentPath || realOverNode.path;\n\n dropEmit({\n nodes: filterNodes(normalizeNode),\n curNode: realCurNode,\n overNode: realOverNode,\n status: overStatus,\n });\n }\n }\n handleOnDragEnd();\n };\n\n useEffect(() => {\n setIsDragging(isDrag);\n }, [isDrag]);\n\n useEffect(() => {\n window.addEventListener(\"dragend\", handleOnDragEnd);\n return () => {\n window.removeEventListener(\"dragend\", handleOnDragEnd);\n };\n }, []);\n\n return (\n <div\n style={{\n height: \"100%\",\n }}\n className=\"tree-wrapper\"\n onContextMenu={onContextMenu}\n >\n {nodes?.length ? (\n <div>\n {!noSearch && (\n <div\n className=\"searchBox\"\n onContextMenu={(e) => e.stopPropagation()}\n >\n <span\n className={classNames(\"filter-input-wrapper\", {\n focus: isFocus,\n })}\n >\n <span className=\"prefix\">\n <WrappedGeneralIcon\n icon=\"search\"\n lib=\"antd\"\n theme=\"outlined\"\n />\n </span>\n <input\n value={q}\n onChange={handleSearchChange}\n onFocus={() => setIsFocus(true)}\n onBlur={() => setIsFocus(false)}\n autoComplete=\"off\"\n placeholder={searchPlaceholder}\n />\n <span className=\"suffix\">\n {q ? (\n <WrappedGeneralIcon\n className=\"clear-button\"\n icon=\"close-circle\"\n lib=\"antd\"\n theme=\"filled\"\n onClick={handleClearInput}\n />\n ) : null}\n </span>\n </span>\n </div>\n )}\n <SearchingContext.Provider value={!!q}>\n <WorkbenchTreeDndContext.Provider\n value={{\n allow: allowDrag,\n allowDragToRoot: allowDragToRoot,\n dragElement: curElement,\n dragOverElement: overElement,\n dragStatus: overStatus,\n onDragStart: handleOnDragStart,\n }}\n >\n <div\n className={classnames({\n hightlight: isDrag,\n })}\n onDragOver={handleOnDragOver}\n onDrop={handleOnDrop}\n >\n <TreeList nodes={filteredNodes} level={1} />\n </div>\n </WorkbenchTreeDndContext.Provider>\n </SearchingContext.Provider>\n </div>\n ) : (\n <div className=\"placeholder\">{placeholder}</div>\n )}\n </div>\n );\n}\n\nfunction TreeList({ nodes, level }: TreeListProps): ReactElement {\n const lastIndex = nodes.length - 1;\n return (\n <ul className=\"tree\">\n {nodes\n .filter((item) => checkIfOfComputed(item))\n .map((node, index) => (\n <TreeNode\n key={node.key}\n node={node}\n level={level}\n isFirst={index === 0}\n isLast={index === lastIndex}\n />\n ))}\n </ul>\n );\n}\n\nfunction PlaceholderDOM({\n style,\n}: {\n style: React.CSSProperties;\n}): React.ReactElement {\n const { dragStatus } = useWorkbenchTreeDndContext();\n const styles: React.CSSProperties = {\n height: 22,\n border: \"1px dashed goldenrod\",\n opacity: dragStatus === dragStatusEnum.inside ? \"0\" : \"1\",\n ...style,\n };\n\n return <li className=\"workbenchTree-placeholder-dom\" style={styles} />;\n}\nexport interface TreeNodeProps {\n node: WorkbenchNodeData;\n level: number;\n isFirst?: boolean;\n isLast?: boolean;\n skipNotify?: boolean;\n}\n\nfunction TreeNode({\n node,\n level,\n isFirst,\n isLast,\n}: TreeNodeProps): ReactElement {\n const isLeaf = !node.children?.length;\n const isContainer = node.isContainer;\n const {\n hoverKey,\n activeKey,\n basePaddingLeft,\n showMatchedNodeOnly,\n fixedActionsFor,\n collapsible,\n collapsedNodes,\n nodeKey,\n clickFactory,\n mouseEnterFactory,\n mouseLeaveFactory,\n contextMenuFactory,\n onNodeToggle,\n getCollapsedId,\n skipNotify,\n } = useWorkbenchTreeContext();\n const {\n allow,\n allowDragToRoot,\n onDragStart,\n dragElement,\n dragOverElement,\n dragStatus,\n } = useWorkbenchTreeDndContext();\n\n const { actions, actionsHidden, onActionClick } =\n useWorkbenchActionsContext();\n\n const nodePaddingLeft = level * treeLevelPadding + basePaddingLeft - 2;\n const searching = useContext(SearchingContext);\n const [cacheDragStatus, setCacheDragStatus] = useState(null);\n const [collapseClicked, setCollapseClicked] = useState(false);\n const [collapsed, setCollapsed] = useState(\n collapsedNodes?.includes(getCollapsedId?.(node)) ?? false\n );\n\n const onMouseEnter = useMemo(\n () => mouseEnterFactory?.(node),\n [mouseEnterFactory, node]\n );\n const onMouseLeave = useMemo(\n () => mouseLeaveFactory?.(node),\n [mouseLeaveFactory, node]\n );\n\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n contextMenuFactory?.(node)?.(e);\n },\n [contextMenuFactory, node]\n );\n\n const isActive = activeKey && node.key === activeKey;\n\n const nodeLabelCallback = useMemo(\n () =>\n isActive\n ? (element: HTMLElement) => {\n element?.scrollIntoView?.({\n block: \"center\",\n inline: \"center\",\n // behavior: \"smooth\",\n });\n }\n : null,\n // Only for initial active node.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const nodeUid = useMemo(() => {\n if (isContainer) {\n return node.key;\n }\n if (node.data) {\n const getNodeUid = (data: Record<string, any>): number | string => {\n return data.type === \"mount-point\"\n ? data.parent[nodeKey] || `${data.parent.$$uid}:${data.mountPoint}`\n : data[nodeKey] || data.$$uid;\n };\n return getNodeUid(node.data);\n }\n }, [nodeKey, node, isContainer]);\n\n useEffect(() => {\n if (dragStatus === dragStatusEnum.inside) {\n return;\n }\n if ([dragStatusEnum.top, dragStatusEnum.bottom].includes(dragStatus)) {\n setCacheDragStatus(dragStatus);\n }\n }, [dragStatus]);\n\n const isDragElement = useMemo(() => {\n if (dragElement) {\n const dragUid = dragElement.dataset.uid;\n return dragUid === String(nodeUid);\n }\n return false;\n }, [dragElement, nodeUid]);\n\n const isDragActive = useMemo(() => {\n if (dragOverElement) {\n const dragUid = dragOverElement.dataset.uid;\n return dragUid === String(nodeUid);\n }\n return false;\n }, [dragOverElement, nodeUid]);\n\n const nodeStyle = useMemo((): React.CSSProperties => {\n const commomStyle: React.CSSProperties = {};\n let style: React.CSSProperties = {\n opacity: isDragElement ? 0.2 : 1,\n };\n if (isDragActive) {\n if (dragStatus === dragStatusEnum.inside) {\n style = {\n boxShadow: borderStyle,\n background: \"rgba(255, 255, 255, 0.1)\",\n };\n }\n }\n return Object.assign(commomStyle, style);\n }, [isDragActive, isDragElement, dragStatus]);\n\n const handleCollapse = useCallback((event: React.MouseEvent | MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setCollapseClicked(true);\n setCollapsed((prev) => !prev);\n }, []);\n\n const preventMouseEvent = useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const onLinkClick = useCallback(\n (e: MouseEvent | React.MouseEvent) => {\n if (isContainer) {\n handleCollapse(e);\n } else {\n return clickFactory?.(node)?.();\n }\n },\n [clickFactory, handleCollapse, isContainer, node]\n );\n\n useEffect(() => {\n if (collapseClicked) {\n onNodeToggle?.(getCollapsedId?.(node), collapsed);\n }\n }, [collapseClicked, collapsed, getCollapsedId, node, onNodeToggle]);\n\n // Disallow collapse leaf nodes, or any nodes when searching.\n const allowCollapse = collapsible && !isLeaf && !searching;\n\n if (searching && showMatchedNodeOnly && !node.matched) {\n return null;\n }\n\n return (\n <>\n {isDragActive &&\n (allowDragToRoot || level !== 1) &&\n cacheDragStatus === dragStatusEnum.top && (\n <PlaceholderDOM\n style={{\n marginLeft: nodePaddingLeft,\n }}\n />\n )}\n <li\n draggable={allow}\n onDragStart={(e) => onDragStart(e, node)}\n data-uid={nodeUid}\n data-level={level}\n style={nodeStyle}\n {...(isContainer\n ? {\n \"data-container\": isContainer,\n }\n : {})}\n >\n <WrappedLink\n className=\"nodeLabelLink\"\n tabIndex={0}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onContextMenu={onContextMenu}\n // noEmptyHref={true}\n onClick={onLinkClick}\n {...(skipNotify\n ? {\n // TODO: link should support\n url: {\n pathname: get(node.link, \"url\", \"href\"),\n state: {\n notify: false,\n },\n } as any,\n }\n : { ...pick(node.link, [\"url\", \"href\"]) })}\n >\n <span\n className={classNames(\"nodeLabelRow\", {\n active: isActive,\n hover: hoverKey && node.key === hoverKey,\n matched: searching && node.matchedSelf && !showMatchedNodeOnly,\n fixedActions:\n fixedActionsFor &&\n []\n .concat(fixedActionsFor)\n .some((source) =>\n isMatch(node.data as Record<string, unknown>, source)\n ),\n collapsed: allowCollapse && collapsed,\n collapsible: allowCollapse,\n })}\n >\n <span\n className={classNames(\"nodeLabel\", {\n unreachable: node.unreachable,\n })}\n style={{\n paddingLeft: nodePaddingLeft,\n color: node.labelColor,\n }}\n ref={nodeLabelCallback}\n >\n <span className=\"nodeIconWrapper\">\n {allowCollapse && (\n <span\n className=\"collapseIcon\"\n onClick={handleCollapse}\n onMouseDown={preventMouseEvent}\n title={collapsed ? \"Expand\" : \"Collapse\"}\n role=\"button\"\n >\n <WrappedGeneralIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon={collapsed ? \"right\" : \"down\"}\n />\n </span>\n )}\n <span className=\"nodeIcon\">\n <WrappedGeneralIcon\n {...node.icon}\n style={{\n fontSize: (node.icon as unknown as Record<string, string>)\n ?.imgSrc\n ? 14\n : null,\n color: node.icon?.color,\n }}\n />\n </span>\n </span>\n <span className=\"nodeName\">\n {node.labelPrefix && (\n <span style={node.labelPrefix.style}>\n {node.labelPrefix.text}\n </span>\n )}\n {/* {isTransformName\n ? smartDisplayForEvaluableString(node.name)\n : node.name} */}\n {node.name}\n </span>\n </span>\n <WorkbenchMiniActionBar\n className=\"nodeActionsBar\"\n data={node.data}\n isFirst={isFirst}\n isLast={isLast}\n actions={actions}\n onActionClick={onActionClick}\n actionsHidden={actionsHidden}\n />\n {node.badge && (\n <span className=\"badge\">\n <WrappedGeneralIcon\n {...node.badge}\n style={{ color: node.badge.color }}\n />\n </span>\n )}\n </span>\n </WrappedLink>\n {isLeaf || <TreeList nodes={node.children} level={level + 1} />}\n </li>\n {isDragActive &&\n (allowDragToRoot || level !== 1) &&\n cacheDragStatus === dragStatusEnum.bottom && (\n <PlaceholderDOM\n style={{\n marginLeft: nodePaddingLeft,\n }}\n />\n )}\n </>\n );\n}\n","import _ from \"lodash\";\nimport { WorkbenchNodeData } from \"../interfaces.js\";\n\nexport function getNodeTreeByPath(\n nodes: WorkbenchNodeData[],\n nodeKey: string\n): Array<WorkbenchNodeData> {\n const createNodeByPath = (\n pathList: string[],\n nodes: Array<WorkbenchNodeData>,\n node: WorkbenchNodeData,\n index?: number\n ): void => {\n const path = pathList.shift();\n if (path) {\n pathList.length > 0\n ? pathList.splice(0, 1, `${path}/${pathList[0]}`)\n : pathList;\n const folder = nodes.find(\n (node) => node && node.key === path && node.isContainer\n );\n if (folder) {\n nodes[index] = null;\n createNodeByPath(pathList, folder.children, node);\n } else {\n const newPathList = path.split(\"/\");\n const newNode = {\n name: newPathList.pop(),\n key: path,\n parentPath: newPathList ? newPathList.join(\"/\") : newPathList,\n originKey: node.key,\n data: {\n [nodeKey]: path,\n isContainer: true,\n },\n children: [],\n icon: {\n icon: \"folder\",\n lib: \"antd\",\n theme: \"filled\",\n color: \"orange\",\n },\n isContainer: true,\n } as WorkbenchNodeData;\n if (typeof index === \"number\") {\n nodes[index] = newNode;\n } else {\n nodes.push(newNode);\n }\n createNodeByPath(pathList, newNode.children, node);\n }\n } else {\n nodes.push(node);\n }\n };\n\n nodes.forEach((node, index) => {\n if (node.path) {\n const pathList = node.path.split(\"/\").filter(Boolean);\n createNodeByPath(pathList, nodes, node, index);\n }\n });\n return nodes.filter(Boolean);\n}\n\nexport function getNodesByPathTree(\n nodes: Array<WorkbenchNodeData>\n): Array<WorkbenchNodeData> {\n const result: Array<WorkbenchNodeData> = [];\n const walk = (nodes: Array<WorkbenchNodeData>): void => {\n nodes.forEach((item) => {\n if (item.isContainer) {\n walk(item.children);\n } else {\n result.push(_.omit(item, [\"path\", \"icon\"]) as WorkbenchNodeData);\n }\n });\n };\n walk(nodes);\n return result;\n}\n","export function setDragImage(\n e: DragEvent | React.DragEvent,\n title: string\n): void {\n const canvas = document.createElement(\"canvas\");\n document.body.append(canvas);\n const context = canvas.getContext(\"2d\");\n canvas.width = context.measureText(title).width + 60;\n canvas.height = 20;\n canvas.style.position = \"absolute\";\n canvas.style.left = \"-100%\";\n canvas.style.zIndex = \"-100\";\n\n context.fillStyle = \"#333333\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n\n context.fillStyle = \"#999999\";\n context.font = \"bold 14px Arial\";\n context.fillText(title, 20, 15);\n\n e.dataTransfer.setDragImage(canvas, 0, 0);\n}\n","import { createContext, useContext } from \"react\";\nimport type { WorkbenchNodeData } from \"../../interfaces.js\";\nimport { dragStatusEnum } from \"./WorkbenchTreeDndContext.js\";\n\nexport interface dropOptions {\n curElement: HTMLElement;\n overElement: HTMLElement;\n parentElement: HTMLElement;\n overStatus: dragStatusEnum;\n}\n\nexport interface ContextOfWorkbenchTree {\n hoverKey?: string | number;\n activeKey?: string | number;\n basePaddingLeft?: number;\n showMatchedNodeOnly?: boolean;\n isTransformName?: boolean;\n fixedActionsFor?: Record<string, unknown> | Record<string, unknown>[];\n collapsible?: boolean;\n collapsedNodes?: (string | number)[];\n nodeKey?: string;\n clickFactory?(node: WorkbenchNodeData): () => void;\n mouseEnterFactory?(node: WorkbenchNodeData): () => void;\n mouseLeaveFactory?(node: WorkbenchNodeData): () => void;\n contextMenuFactory?(\n node?: WorkbenchNodeData\n ): (event: React.MouseEvent) => void;\n matchNode?(node: WorkbenchNodeData, lowerTrimmedQuery?: string): boolean;\n onNodeToggle?(nodeId: string | number, collapsed: boolean): void;\n getCollapsedId?(node: WorkbenchNodeData): string | number;\n onBrickDrop?(e: React.DragEvent<HTMLElement>, options: dropOptions): void;\n skipNotify?: boolean;\n}\n\nexport const WorkbenchTreeContext = createContext<ContextOfWorkbenchTree>({});\n\nexport function useWorkbenchTreeContext(): ContextOfWorkbenchTree {\n return useContext(WorkbenchTreeContext);\n}\n","export function deepFilter<T>(data: Array<T>, q: string): Array<T> {\n const trimmedQuery = q?.trim();\n if (!trimmedQuery) {\n return data.slice();\n }\n return data.filter((item) => deepMatch(item, trimmedQuery.toLowerCase()));\n}\n\nexport function deepMatch(data: unknown, lowerTrimmedQuery: string): boolean {\n switch (typeof data) {\n case \"string\":\n return data.toLowerCase().includes(lowerTrimmedQuery);\n case \"boolean\":\n case \"number\":\n return String(data).includes(lowerTrimmedQuery);\n case \"object\":\n return data === null\n ? \"null\".includes(lowerTrimmedQuery)\n : (Array.isArray(data) ? data : Object.entries(data).flat()).some(\n (item) => deepMatch(item, lowerTrimmedQuery)\n );\n default:\n return false;\n }\n}\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, `.actionsBar{display:flex;align-items:center;padding:0 3px}.action{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:5px}.action:hover{color:#fff;background-color:rgba(90,93,94,0.31)}.action{color:#c5c5c5}.disabled,\n.disabled:hover{color:var(--color-disabled-text);cursor:not-allowed;background-color:initial}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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,\n:host-context(html[data-override-theme=\"light\"]){--search-box-background:#fff;--node-color:#595959;--node-color-focus:#595959;--node-background-active:#e0eeff;--node-background-focus:#e0eeff;--node-icon-background-hover:#fff}:host-context(html[data-theme=\"dark-v2\"]),\n:host-context(html[data-override-theme=\"dark-v2\"]){--search-box-background:#181818;--node-color:#c5c5c5;--node-color-focus:#fff;--node-background-active:rgba(255,255,255,0.08);--node-background-focus:#1a7aff;--node-icon-background-hover:rgba(90,93,94,0.31)}.searchBox{position:sticky;top:0;background-color:var(--search-box-background);padding:5px 10px 10px;z-index:1}.searchBox .filter-input-wrapper{background-color:var(--search-box-background);border:1px solid rgba(255,255,255,0.2);position:relative;width:100%;min-width:0;padding:2px 7px;color:var(--antd-input-color);font-size:14px;line-height:1.5715;display:inline-flex;border-radius:3px;transition:all 0.3s;box-sizing:border-box}.searchBox .filter-input-wrapper.focus{background-color:var(--search-box-background);border:1px solid rgba(255,255,255,0.2);border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(0,113,235,0.2)}.searchBox .filter-input-wrapper input{text-overflow:ellipsis;border:none;outline:none;border-radius:3px;background-color:var(--search-box-background);box-sizing:border-box;margin:0;padding:0;color:var(--antd-text-color);font-variant:tabular-nums;list-style:none;font-feature-settings:\"tnum\";position:relative;display:inline-block;width:100%;min-width:0;color:var(--antd-input-color);font-size:14px;line-height:1.5715;background-image:none;transition:all 0.3s}.prefix{margin-right:4px}.suffix{margin-left:4px}.searchBox .prefix,\n.searchBox .suffix{display:flex;flex:none;align-items:center}.clear-button{cursor:pointer}.tree{list-style:none;margin:0;padding:0}.placeholder{color:var(--antd-input-placeholder-color);padding:0 15px}.nodeLabelLink{display:block}.nodeLabelLink::part(link){display:flex}.nodeLabelRow{display:flex;cursor:pointer;height:22px;padding-right:10px;flex:1;min-width:0}.nodeLabelRow:hover,\n.nodeLabelRow.hover{background-color:rgba(255,255,255,0.12)}.nodeLabelLink:focus .nodeLabelRow.active{background-color:var(--node-background-focus)}.nodeLabel{display:flex;align-items:center;min-width:0;flex:1}.unreachable{opacity:0.3}.nodeAction,\n.nodeAction:hover,\n.nodeLabelRow .nodeLabel{color:var(--node-color)}.nodeLabelLink:focus .nodeLabel{color:var(--node-color-focus)}.nodeLabelRow.matched .nodeLabel{color:var(--palette-orange-6)}.nodeLabelRow.active{background-color:var(--node-background-active)}.nodeIconWrapper{display:flex;width:24px;flex-shrink:0}.nodeIcon,\n.collapseIcon{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:5px;font-size:13px}.collapseIcon{display:none}.nodeLabelRow.collapsed .nodeIcon,\n.nodeLabelRow.collapsible .nodeIconWrapper:hover .nodeIcon{display:none}.nodeLabelRow.collapsed .collapseIcon,\n.nodeLabelRow.collapsible .nodeIconWrapper:hover .collapseIcon{display:flex}.nodeLabelRow.collapsible .nodeIcon:hover,\n.nodeLabelRow.collapsible .collapseIcon:hover{background-color:var(--node-icon-background-hover)}.nodeName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nodeLabelRow:not(:hover, .fixedActions) .nodeActionsBar{display:none}.badge{margin:0 3px}.collapsed + .tree{display:none}.hightlight{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:#fcd93f}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["WorkbenchActionsContext","createContext","useWorkbenchActionsContext","useContext","dragStatusEnum","WorkbenchTreeDndContext","useWorkbenchTreeDndContext","WrappedGeneralIcon","wrapBrick","WorkbenchMiniActionBar","_ref","data","className","gap","isFirst","isLast","actions","actionsHidden","onActionClick","enabledActions","useMemo","filter","item","checkIfByTransform","length","React","classNames","style","map","WorkbenchSubAction","key","action","_ref2","disabled","handleActionClick","useCallback","event","preventDefault","stopPropagation","preventMouseEvent","title","role","onClick","onContextMenu","onMouseDown","icon","WrappedLink","treeLevelPadding","borderStyle","SearchingContext","WorkbenchTree","nodes","originNode","placeholder","searchPlaceholder","isDrag","noSearch","allowDrag","allowDragToRoot","allowDragToInside","dropEmit","q","setQ","useState","isDragging","setIsDragging","curNode","setCurNode","curElement","setCurElement","overNode","setOverNode","overElement","setOverElement","overStatus","setOverStatus","isFocus","setIsFocus","nodeKey","onBrickDrop","contextMenuFactory","matchNode","useWorkbenchTreeContext","_originNode$slice","createNodeByPath","pathList","node","index","path","shift","splice","folder","find","isContainer","children","newPathList","split","newNode","name","pop","parentPath","join","originKey","lib","theme","color","push","forEach","Boolean","getNodeTreeByPath","slice","handleSearchChange","target","value","trimmedLowerQ","trim","toLowerCase","filteredNodes","walk","_node$children","matchedSelf","hasMatchedChildren","includes","matched","findDragParent","element","equal","arguments","undefined","draggable","tagName","parentElement","findNode","id","handleOnDragEnd","useEffect","window","addEventListener","removeEventListener","height","e","focus","onChange","onFocus","onBlur","autoComplete","handleClearInput","Provider","allow","dragElement","dragOverElement","dragStatus","onDragStart","handleOnDragStart","_element$dataset","dataset","container","canvas","document","createElement","body","append","context","getContext","width","measureText","position","left","zIndex","fillStyle","fillRect","font","fillText","dataTransfer","setDragImage","innerText","classnames","hightlight","onDragOver","dom","uid","top","bottom","getBoundingClientRect","status","repair","clientY","inside","getDragState","contains","onDrop","Number","level","realOverNode","findRealNode","i","overUid","filterNodes","flag","realOverKey","newNodes","findIndex","normalizeNode","result","_","getNodesByPathTree","realCurNode","TreeList","lastIndex","checkIfOfComputed","TreeNode","PlaceholderDOM","_ref3","styles","border","opacity","_ref4","_node$children2","_collapsedNodes$inclu","_node$icon","_node$icon2","isLeaf","hoverKey","activeKey","basePaddingLeft","showMatchedNodeOnly","fixedActionsFor","collapsible","collapsedNodes","clickFactory","mouseEnterFactory","mouseLeaveFactory","onNodeToggle","getCollapsedId","skipNotify","nodePaddingLeft","searching","cacheDragStatus","setCacheDragStatus","collapseClicked","setCollapseClicked","collapsed","setCollapsed","onMouseEnter","onMouseLeave","_contextMenuFactory","isActive","nodeLabelCallback","_element$scrollIntoVi","scrollIntoView","call","block","inline","nodeUid","type","parent","$$uid","mountPoint","isDragElement","String","isDragActive","nodeStyle","boxShadow","background","Object","assign","handleCollapse","prev","onLinkClick","_clickFactory","allowCollapse","marginLeft","_extends","tabIndex","url","pathname","get","link","state","notify","pick","active","hover","fixedActions","concat","some","source","isMatch","unreachable","paddingLeft","labelColor","ref","fontSize","imgSrc","labelPrefix","text","badge","WorkbenchTreeContext","deepMatch","lowerTrimmedQuery","Array","isArray","entries","flat","___CSS_LOADER_EXPORT___","module","toString"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/2980.89f78737.js","mappings":"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","sources":["webpack:///./src/shared/workbench/WorkbenchActionsContext.ts","webpack:///./src/shared/workbench/WorkbenchTreeDndContext.ts","webpack:///./src/shared/workbench-mini-action-bar/WorkbenchMiniActionBar.tsx","webpack:///./src/shared/workbench/WorkbenchTree.tsx","webpack:///./src/utils/normalizeTreeNodeWithPath.ts","webpack:///./src/utils/setDragImage.ts","webpack:///./src/shared/workbench/WorkbenchTreeContext.ts","webpack:///./src/utils/deepMatch.ts","webpack:///./src/shared/workbench-mini-action-bar/WorkbenchMiniActionBar.shadow.css","webpack:///./src/workbench-tree/WorkbenchTree.shadow.css"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type {\n ActionClickDetail,\n WorkbenchTreeAction,\n} from \"../../interfaces.js\";\n\nexport interface ContextOfWorkbenchActions {\n actions?: WorkbenchTreeAction[];\n actionsHidden?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nexport const WorkbenchActionsContext = createContext<ContextOfWorkbenchActions>(\n {}\n);\n\nexport function useWorkbenchActionsContext(): ContextOfWorkbenchActions {\n return useContext(WorkbenchActionsContext);\n}\n","import { createContext, useContext } from \"react\";\nimport { WorkbenchNodeData } from \"../../interfaces.js\";\n\nexport enum dragStatusEnum {\n inside = \"inside\",\n top = \"top\",\n bottom = \"bottom\",\n}\n\ninterface WorkbenchTreeDndContext {\n allow?: boolean;\n allowDragToRoot?: boolean;\n dragElement?: HTMLElement;\n dragOverElement?: HTMLElement;\n dragStatus?: dragStatusEnum;\n onDragStart?: (\n e: React.DragEvent<HTMLElement>,\n node: WorkbenchNodeData\n ) => void;\n onDragOver?: (e: React.DragEvent<HTMLElement>) => void;\n onDrop?: (e: React.DragEvent<HTMLElement>) => void;\n}\n\nexport const WorkbenchTreeDndContext = createContext<WorkbenchTreeDndContext>(\n {} as WorkbenchTreeDndContext\n);\n\nexport function useWorkbenchTreeDndContext(): WorkbenchTreeDndContext {\n return useContext(WorkbenchTreeDndContext);\n}\n","import React, { useCallback, useMemo } from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport classNames from \"classnames\";\nimport { checkIfByTransform } from \"@next-core/runtime\";\nimport { WorkbenchTreeAction, ActionClickDetail } from \"../../interfaces.js\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\n\nexport const WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\n \"eo-icon\"\n);\n\nexport interface WorkbenchSubActionBarProps {\n data?: unknown;\n className?: string;\n gap?: number;\n isFirst?: boolean;\n isLast?: boolean;\n actions?: WorkbenchTreeAction[];\n actionsHidden?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nexport function WorkbenchMiniActionBar({\n data,\n className,\n gap,\n isFirst,\n isLast,\n actions,\n actionsHidden,\n onActionClick,\n}: WorkbenchSubActionBarProps): React.ReactElement {\n const enabledActions = useMemo(\n () => actions?.filter((item) => checkIfByTransform(item, data)),\n [actions, data]\n );\n\n if (actionsHidden || !enabledActions?.length) {\n return null;\n }\n\n return (\n <div className={classNames(\"actionsBar\", className)} style={{ gap }}>\n {enabledActions.map((item) => (\n <WorkbenchSubAction\n key={item.action}\n action={item}\n data={data}\n isFirst={isFirst}\n isLast={isLast}\n onActionClick={onActionClick}\n />\n ))}\n </div>\n );\n}\n\ninterface WorkbenchSubActionProps {\n action: WorkbenchTreeAction;\n data?: unknown;\n isFirst?: boolean;\n isLast?: boolean;\n onActionClick?(detail: ActionClickDetail): void;\n}\n\nfunction WorkbenchSubAction({\n action,\n data,\n isFirst,\n isLast,\n onActionClick,\n}: WorkbenchSubActionProps): React.ReactElement {\n const disabled =\n (isFirst && action.action === \"move-up\") ||\n (isLast && action.action === \"move-down\");\n\n const handleActionClick = useCallback(\n (event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n disabled ||\n onActionClick?.({\n action: action.action,\n data: data,\n });\n },\n [action.action, data, disabled, onActionClick]\n );\n\n const preventMouseEvent = useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n return (\n <a\n className={classNames(\"action\", { disabled: disabled })}\n title={action.title}\n role=\"button\"\n onClick={handleActionClick}\n onContextMenu={preventMouseEvent}\n onMouseDown={preventMouseEvent}\n >\n <WrappedGeneralIcon {...action.icon} />\n </a>\n );\n}\n","import React, {\n type ChangeEvent,\n useCallback,\n useMemo,\n useState,\n type ReactElement,\n createContext,\n useContext,\n useEffect,\n} from \"react\";\n// import { Input } from \"antd\";\nimport { get, isMatch, pick } from \"lodash\";\nimport classNames from \"classnames\";\nimport { useWorkbenchTreeContext } from \"./WorkbenchTreeContext.js\";\nimport { useWorkbenchActionsContext } from \"./WorkbenchActionsContext.js\";\nimport {\n useWorkbenchTreeDndContext,\n dragStatusEnum,\n} from \"./WorkbenchTreeDndContext.js\";\nimport type { WorkbenchNodeData } from \"../../interfaces.js\";\nimport { WorkbenchMiniActionBar } from \"../workbench-mini-action-bar/WorkbenchMiniActionBar.js\";\nimport { checkIfOfComputed } from \"@next-core/runtime\";\nimport { WorkbenchTreeDndContext } from \"./WorkbenchTreeDndContext.js\";\nimport { setDragImage } from \"../../utils/setDragImage.js\";\nimport classnames from \"classnames\";\nimport {\n getNodesByPathTree,\n getNodeTreeByPath,\n} from \"../../utils/normalizeTreeNodeWithPath.js\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\n\nexport const WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nexport const WrappedGeneralIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\n \"eo-icon\"\n);\n\nconst treeLevelPadding = 10;\nconst borderStyle = \"0 0 0 1px #ba6d30\";\n\nexport interface dropEmitProps {\n nodes: WorkbenchNodeData[];\n curNode: WorkbenchNodeData;\n overNode: WorkbenchNodeData;\n status: dragStatusEnum;\n}\n\nexport interface WorkbenchTreeProps {\n nodes: WorkbenchNodeData[];\n placeholder?: string;\n searchPlaceholder?: string;\n noSearch?: boolean;\n isDrag?: boolean;\n allowDrag?: boolean;\n allowDragToRoot?: boolean;\n allowDragToInside?: boolean;\n dropEmit?: (detail: dropEmitProps) => void;\n}\n\nexport interface TreeListProps {\n nodes: WorkbenchNodeData[];\n level: number;\n}\n\nconst SearchingContext = createContext(false);\n\nexport function WorkbenchTree({\n nodes: originNode,\n placeholder,\n searchPlaceholder,\n isDrag,\n noSearch,\n allowDrag,\n allowDragToRoot,\n allowDragToInside,\n dropEmit,\n}: WorkbenchTreeProps): ReactElement {\n const [q, setQ] = useState<string>(\"\");\n const [isDragging, setIsDragging] = useState<boolean>(isDrag);\n const [curNode, setCurNode] = useState<WorkbenchNodeData>();\n const [curElement, setCurElement] = useState<HTMLElement>();\n const [overNode, setOverNode] = useState<WorkbenchNodeData>();\n const [overElement, setOverElement] = useState<HTMLElement>();\n const [overStatus, setOverStatus] = useState<dragStatusEnum>();\n const [isFocus, setIsFocus] = useState<boolean>();\n const { nodeKey, onBrickDrop, contextMenuFactory, matchNode } =\n useWorkbenchTreeContext();\n const nodes = useMemo(\n () => getNodeTreeByPath(originNode?.slice() ?? [], nodeKey),\n [originNode, nodeKey]\n );\n\n const handleSearchChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n setQ(event.target.value);\n },\n []\n );\n\n const handleClearInput = () => {\n setQ(\"\");\n };\n\n const onContextMenu = useMemo(\n () => contextMenuFactory?.(),\n [contextMenuFactory]\n );\n\n const trimmedLowerQ = q?.trim().toLowerCase();\n const filteredNodes = useMemo(() => {\n if (noSearch || !trimmedLowerQ || !nodes) {\n return nodes;\n }\n const walk = (node: WorkbenchNodeData): boolean => {\n node.matchedSelf = matchNode(node, trimmedLowerQ);\n const hasMatchedChildren = node.children?.map(walk).includes(true);\n node.matched = node.matchedSelf || hasMatchedChildren;\n return node.matched;\n };\n nodes.forEach(walk);\n return nodes.slice();\n }, [noSearch, trimmedLowerQ, nodes, matchNode]);\n\n const findDragParent = (element: HTMLElement, equal = true): HTMLElement => {\n let node = element;\n while (node) {\n if (\n node.draggable &&\n (equal || node !== element) &&\n node.tagName !== \"A\"\n ) {\n return node;\n }\n node = node.parentElement;\n }\n };\n\n const findNode = (\n nodes: WorkbenchNodeData[],\n id: string,\n nodeKey: string,\n node: WorkbenchNodeData = null\n ): WorkbenchNodeData => {\n for (const item of nodes) {\n if ((item.data as Record<string, unknown>)[nodeKey] === id) {\n node = item;\n }\n if (item.children) {\n node = findNode(item.children, id, nodeKey, node);\n }\n if (node) break;\n }\n return node;\n };\n\n const getDragState = (\n e: React.DragEvent<HTMLElement>\n ): {\n element: HTMLElement;\n node: WorkbenchNodeData;\n status: dragStatusEnum;\n } => {\n const element = findDragParent(e.target as HTMLElement);\n const id = element.dataset.uid;\n if (element === curElement || id?.includes(\":\")) {\n return;\n }\n const { top, bottom } = element.getBoundingClientRect();\n let status: dragStatusEnum;\n const repair = allowDragToInside ? 5 : 10;\n if (e.clientY < top + repair) {\n status = dragStatusEnum.top;\n } else if (e.clientY > bottom - repair) {\n status = dragStatusEnum.bottom;\n } else {\n status = allowDragToInside ? dragStatusEnum.inside : overStatus;\n }\n\n return {\n element,\n node: findNode(nodes, id, nodeKey),\n status,\n };\n };\n\n const handleOnDragStart = (\n e: React.DragEvent,\n node: WorkbenchNodeData\n ): void => {\n e.stopPropagation();\n if (!allowDrag) return;\n const element = e.target as HTMLElement;\n if (element.dataset?.container) return;\n setIsDragging(true);\n setDragImage(e, element.innerText);\n setCurElement(element);\n setCurNode(node);\n };\n\n const handleOnDragOver = (e: React.DragEvent<HTMLElement>): void => {\n e.preventDefault();\n if (!isDragging) return;\n if ((e.target as HTMLElement).className === \"workbenchTree-placeholder-dom\")\n return;\n const dom = getDragState(e);\n if (dom && !curElement?.contains(dom.element)) {\n setOverElement(dom.element);\n setOverNode(dom.node);\n setOverStatus(dom.status);\n }\n };\n\n const handleOnDragEnd = (): void => {\n setCurElement(null);\n setOverElement(null);\n setOverNode(null);\n setOverStatus(null);\n setIsDragging(false);\n };\n\n const handleOnDrop = (e: React.DragEvent<HTMLElement>): void => {\n if (!isDragging) return;\n if (onBrickDrop) {\n let parentElement = overElement;\n if ([dragStatusEnum.top, dragStatusEnum.bottom].includes(overStatus)) {\n parentElement = findDragParent(parentElement, false);\n }\n onBrickDrop(e, {\n curElement,\n overElement,\n parentElement,\n overStatus,\n });\n } else {\n if (allowDragToRoot || Number(overElement.dataset.level) !== 1) {\n let realOverNode = overNode;\n const findRealNode = (\n nodes: WorkbenchNodeData[],\n key: string\n ): void => {\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i].key === key) {\n realOverNode = nodes[i];\n break;\n }\n if (nodes[i].children) {\n findRealNode(nodes[i].children, key);\n }\n }\n };\n const overUid = overElement.dataset.uid;\n findRealNode(nodes, overUid);\n const filterNodes = (\n nodes: WorkbenchNodeData[]\n ): WorkbenchNodeData[] => {\n let flag = false;\n const { container, uid } = overElement.dataset;\n const realOverKey = container ? realOverNode.originKey : uid;\n const newNodes = nodes.filter((node) => {\n if (node.children) {\n node.children = filterNodes(node.children);\n }\n if (node.key === realOverKey) flag = true;\n return node.key !== curNode.key;\n });\n if (flag) {\n newNodes.splice(\n newNodes.findIndex((item) => item.key === realOverKey) +\n (overStatus === \"bottom\" ? 1 : 0),\n 0,\n curNode\n );\n }\n return newNodes;\n };\n\n const normalizeNode = getNodesByPathTree(nodes);\n const realCurNode = curNode.isContainer\n ? normalizeNode.find((item) => item.key === curNode.originKey)\n : curNode;\n const curNodeData = realCurNode.data as Record<string, unknown>;\n curNodeData.path = realOverNode.parentPath || realOverNode.path;\n\n dropEmit({\n nodes: filterNodes(normalizeNode),\n curNode: realCurNode,\n overNode: realOverNode,\n status: overStatus,\n });\n }\n }\n handleOnDragEnd();\n };\n\n useEffect(() => {\n setIsDragging(isDrag);\n }, [isDrag]);\n\n useEffect(() => {\n window.addEventListener(\"dragend\", handleOnDragEnd);\n return () => {\n window.removeEventListener(\"dragend\", handleOnDragEnd);\n };\n }, []);\n\n return (\n <div\n style={{\n height: \"100%\",\n }}\n className=\"tree-wrapper\"\n onContextMenu={onContextMenu}\n >\n {nodes?.length ? (\n <div>\n {!noSearch && (\n <div\n className=\"searchBox\"\n onContextMenu={(e) => e.stopPropagation()}\n >\n <span\n className={classNames(\"filter-input-wrapper\", {\n focus: isFocus,\n })}\n >\n <span className=\"prefix\">\n <WrappedGeneralIcon\n icon=\"search\"\n lib=\"antd\"\n theme=\"outlined\"\n />\n </span>\n <input\n value={q}\n onChange={handleSearchChange}\n onFocus={() => setIsFocus(true)}\n onBlur={() => setIsFocus(false)}\n autoComplete=\"off\"\n placeholder={searchPlaceholder}\n />\n <span className=\"suffix\">\n {q ? (\n <WrappedGeneralIcon\n className=\"clear-button\"\n icon=\"close-circle\"\n lib=\"antd\"\n theme=\"filled\"\n onClick={handleClearInput}\n />\n ) : null}\n </span>\n </span>\n </div>\n )}\n <SearchingContext.Provider value={!!q}>\n <WorkbenchTreeDndContext.Provider\n value={{\n allow: allowDrag,\n allowDragToRoot: allowDragToRoot,\n dragElement: curElement,\n dragOverElement: overElement,\n dragStatus: overStatus,\n onDragStart: handleOnDragStart,\n }}\n >\n <div\n className={classnames({\n hightlight: isDrag,\n })}\n onDragOver={handleOnDragOver}\n onDrop={handleOnDrop}\n >\n <TreeList nodes={filteredNodes} level={1} />\n </div>\n </WorkbenchTreeDndContext.Provider>\n </SearchingContext.Provider>\n </div>\n ) : (\n <div className=\"placeholder\">{placeholder}</div>\n )}\n </div>\n );\n}\n\nfunction TreeList({ nodes, level }: TreeListProps): ReactElement {\n const lastIndex = nodes.length - 1;\n return (\n <ul className=\"tree\">\n {nodes\n .filter((item) => checkIfOfComputed(item))\n .map((node, index) => (\n <TreeNode\n key={node.key}\n node={node}\n level={level}\n isFirst={index === 0}\n isLast={index === lastIndex}\n />\n ))}\n </ul>\n );\n}\n\nfunction PlaceholderDOM({\n style,\n}: {\n style: React.CSSProperties;\n}): React.ReactElement {\n const { dragStatus } = useWorkbenchTreeDndContext();\n const styles: React.CSSProperties = {\n height: 22,\n border: \"1px dashed goldenrod\",\n opacity: dragStatus === dragStatusEnum.inside ? \"0\" : \"1\",\n ...style,\n };\n\n return <li className=\"workbenchTree-placeholder-dom\" style={styles} />;\n}\nexport interface TreeNodeProps {\n node: WorkbenchNodeData;\n level: number;\n isFirst?: boolean;\n isLast?: boolean;\n skipNotify?: boolean;\n}\n\nfunction TreeNode({\n node,\n level,\n isFirst,\n isLast,\n}: TreeNodeProps): ReactElement {\n const isLeaf = !node.children?.length;\n const isContainer = node.isContainer;\n const {\n hoverKey,\n activeKey,\n basePaddingLeft,\n showMatchedNodeOnly,\n fixedActionsFor,\n collapsible,\n collapsedNodes,\n nodeKey,\n clickFactory,\n mouseEnterFactory,\n mouseLeaveFactory,\n contextMenuFactory,\n onNodeToggle,\n getCollapsedId,\n skipNotify,\n } = useWorkbenchTreeContext();\n const {\n allow,\n allowDragToRoot,\n onDragStart,\n dragElement,\n dragOverElement,\n dragStatus,\n } = useWorkbenchTreeDndContext();\n\n const { actions, actionsHidden, onActionClick } =\n useWorkbenchActionsContext();\n\n const nodePaddingLeft = level * treeLevelPadding + basePaddingLeft - 2;\n const searching = useContext(SearchingContext);\n const [cacheDragStatus, setCacheDragStatus] = useState(null);\n const [collapseClicked, setCollapseClicked] = useState(false);\n const [collapsed, setCollapsed] = useState(\n collapsedNodes?.includes(getCollapsedId?.(node)) ?? false\n );\n\n const onMouseEnter = useMemo(\n () => mouseEnterFactory?.(node),\n [mouseEnterFactory, node]\n );\n const onMouseLeave = useMemo(\n () => mouseLeaveFactory?.(node),\n [mouseLeaveFactory, node]\n );\n\n const onContextMenu = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n contextMenuFactory?.(node)?.(e);\n },\n [contextMenuFactory, node]\n );\n\n const isActive = activeKey && node.key === activeKey;\n\n const nodeLabelCallback = useMemo(\n () =>\n isActive\n ? (element: HTMLElement) => {\n element?.scrollIntoView?.({\n block: \"center\",\n inline: \"center\",\n // behavior: \"smooth\",\n });\n }\n : null,\n // Only for initial active node.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n\n const nodeUid = useMemo(() => {\n if (isContainer) {\n return node.key;\n }\n if (node.data) {\n const getNodeUid = (data: Record<string, any>): number | string => {\n return data.type === \"mount-point\"\n ? data.parent[nodeKey] || `${data.parent.$$uid}:${data.mountPoint}`\n : data[nodeKey] || data.$$uid;\n };\n return getNodeUid(node.data);\n }\n }, [nodeKey, node, isContainer]);\n\n useEffect(() => {\n if (dragStatus === dragStatusEnum.inside) {\n return;\n }\n if ([dragStatusEnum.top, dragStatusEnum.bottom].includes(dragStatus)) {\n setCacheDragStatus(dragStatus);\n }\n }, [dragStatus]);\n\n const isDragElement = useMemo(() => {\n if (dragElement) {\n const dragUid = dragElement.dataset.uid;\n return dragUid === String(nodeUid);\n }\n return false;\n }, [dragElement, nodeUid]);\n\n const isDragActive = useMemo(() => {\n if (dragOverElement) {\n const dragUid = dragOverElement.dataset.uid;\n return dragUid === String(nodeUid);\n }\n return false;\n }, [dragOverElement, nodeUid]);\n\n const nodeStyle = useMemo((): React.CSSProperties => {\n const commomStyle: React.CSSProperties = {};\n let style: React.CSSProperties = {\n opacity: isDragElement ? 0.2 : 1,\n };\n if (isDragActive) {\n if (dragStatus === dragStatusEnum.inside) {\n style = {\n boxShadow: borderStyle,\n background: \"rgba(255, 255, 255, 0.1)\",\n };\n }\n }\n return Object.assign(commomStyle, style);\n }, [isDragActive, isDragElement, dragStatus]);\n\n const handleCollapse = useCallback((event: React.MouseEvent | MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setCollapseClicked(true);\n setCollapsed((prev) => !prev);\n }, []);\n\n const preventMouseEvent = useCallback((event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n }, []);\n\n const onLinkClick = useCallback(\n (e: MouseEvent | React.MouseEvent) => {\n if (isContainer) {\n handleCollapse(e);\n } else {\n return clickFactory?.(node)?.();\n }\n },\n [clickFactory, handleCollapse, isContainer, node]\n );\n\n useEffect(() => {\n if (collapseClicked) {\n onNodeToggle?.(getCollapsedId?.(node), collapsed);\n }\n }, [collapseClicked, collapsed, getCollapsedId, node, onNodeToggle]);\n\n // Disallow collapse leaf nodes, or any nodes when searching.\n const allowCollapse = collapsible && !isLeaf && !searching;\n\n if (searching && showMatchedNodeOnly && !node.matched) {\n return null;\n }\n\n return (\n <>\n {isDragActive &&\n (allowDragToRoot || level !== 1) &&\n cacheDragStatus === dragStatusEnum.top && (\n <PlaceholderDOM\n style={{\n marginLeft: nodePaddingLeft,\n }}\n />\n )}\n <li\n draggable={allow}\n onDragStart={(e) => onDragStart(e, node)}\n data-uid={nodeUid}\n data-level={level}\n style={nodeStyle}\n {...(isContainer\n ? {\n \"data-container\": isContainer,\n }\n : {})}\n >\n <WrappedLink\n className=\"nodeLabelLink\"\n tabIndex={0}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onContextMenu={onContextMenu}\n // noEmptyHref={true}\n onClick={onLinkClick}\n {...(skipNotify\n ? {\n // TODO: link should support\n url: {\n pathname: get(node.link, \"url\", \"href\"),\n state: {\n notify: false,\n },\n } as any,\n }\n : { ...pick(node.link, [\"url\", \"href\"]) })}\n >\n <span\n className={classNames(\"nodeLabelRow\", {\n active: isActive,\n hover: hoverKey && node.key === hoverKey,\n matched: searching && node.matchedSelf && !showMatchedNodeOnly,\n fixedActions:\n fixedActionsFor &&\n []\n .concat(fixedActionsFor)\n .some((source) =>\n isMatch(node.data as Record<string, unknown>, source)\n ),\n collapsed: allowCollapse && collapsed,\n collapsible: allowCollapse,\n })}\n >\n <span\n className={classNames(\"nodeLabel\", {\n unreachable: node.unreachable,\n })}\n style={{\n paddingLeft: nodePaddingLeft,\n color: node.labelColor,\n }}\n ref={nodeLabelCallback}\n >\n <span className=\"nodeIconWrapper\">\n {allowCollapse && (\n <span\n className=\"collapseIcon\"\n onClick={handleCollapse}\n onMouseDown={preventMouseEvent}\n title={collapsed ? \"Expand\" : \"Collapse\"}\n role=\"button\"\n >\n <WrappedGeneralIcon\n lib=\"antd\"\n theme=\"outlined\"\n icon={collapsed ? \"right\" : \"down\"}\n />\n </span>\n )}\n <span className=\"nodeIcon\">\n <WrappedGeneralIcon\n {...node.icon}\n style={{\n fontSize: (node.icon as unknown as Record<string, string>)\n ?.imgSrc\n ? 14\n : null,\n color: node.icon?.color,\n }}\n />\n </span>\n </span>\n <span className=\"nodeName\">\n {node.labelPrefix && (\n <span style={node.labelPrefix.style}>\n {node.labelPrefix.text}\n </span>\n )}\n {/* {isTransformName\n ? smartDisplayForEvaluableString(node.name)\n : node.name} */}\n {node.name}\n </span>\n </span>\n <WorkbenchMiniActionBar\n className=\"nodeActionsBar\"\n data={node.data}\n isFirst={isFirst}\n isLast={isLast}\n actions={actions}\n onActionClick={onActionClick}\n actionsHidden={actionsHidden}\n />\n {node.badge && (\n <span className=\"badge\">\n <WrappedGeneralIcon\n {...node.badge}\n style={{ color: node.badge.color }}\n />\n </span>\n )}\n </span>\n </WrappedLink>\n {isLeaf || <TreeList nodes={node.children} level={level + 1} />}\n </li>\n {isDragActive &&\n (allowDragToRoot || level !== 1) &&\n cacheDragStatus === dragStatusEnum.bottom && (\n <PlaceholderDOM\n style={{\n marginLeft: nodePaddingLeft,\n }}\n />\n )}\n </>\n );\n}\n","import _ from \"lodash\";\nimport { WorkbenchNodeData } from \"../interfaces.js\";\n\nexport function getNodeTreeByPath(\n nodes: WorkbenchNodeData[],\n nodeKey: string\n): Array<WorkbenchNodeData> {\n const createNodeByPath = (\n pathList: string[],\n nodes: Array<WorkbenchNodeData>,\n node: WorkbenchNodeData,\n index?: number\n ): void => {\n const path = pathList.shift();\n if (path) {\n pathList.length > 0\n ? pathList.splice(0, 1, `${path}/${pathList[0]}`)\n : pathList;\n const folder = nodes.find(\n (node) => node && node.key === path && node.isContainer\n );\n if (folder) {\n nodes[index] = null;\n createNodeByPath(pathList, folder.children, node);\n } else {\n const newPathList = path.split(\"/\");\n const newNode = {\n name: newPathList.pop(),\n key: path,\n parentPath: newPathList ? newPathList.join(\"/\") : newPathList,\n originKey: node.key,\n data: {\n [nodeKey]: path,\n isContainer: true,\n },\n children: [],\n icon: {\n icon: \"folder\",\n lib: \"antd\",\n theme: \"filled\",\n color: \"orange\",\n },\n isContainer: true,\n } as WorkbenchNodeData;\n if (typeof index === \"number\") {\n nodes[index] = newNode;\n } else {\n nodes.push(newNode);\n }\n createNodeByPath(pathList, newNode.children, node);\n }\n } else {\n nodes.push(node);\n }\n };\n\n nodes.forEach((node, index) => {\n if (node.path) {\n const pathList = node.path.split(\"/\").filter(Boolean);\n createNodeByPath(pathList, nodes, node, index);\n }\n });\n return nodes.filter(Boolean);\n}\n\nexport function getNodesByPathTree(\n nodes: Array<WorkbenchNodeData>\n): Array<WorkbenchNodeData> {\n const result: Array<WorkbenchNodeData> = [];\n const walk = (nodes: Array<WorkbenchNodeData>): void => {\n nodes.forEach((item) => {\n if (item.isContainer) {\n walk(item.children);\n } else {\n result.push(_.omit(item, [\"path\", \"icon\"]) as WorkbenchNodeData);\n }\n });\n };\n walk(nodes);\n return result;\n}\n","export function setDragImage(\n e: DragEvent | React.DragEvent,\n title: string\n): void {\n const canvas = document.createElement(\"canvas\");\n document.body.append(canvas);\n const context = canvas.getContext(\"2d\");\n canvas.width = context.measureText(title).width + 60;\n canvas.height = 20;\n canvas.style.position = \"absolute\";\n canvas.style.left = \"-100%\";\n canvas.style.zIndex = \"-100\";\n\n context.fillStyle = \"#333333\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n\n context.fillStyle = \"#999999\";\n context.font = \"bold 14px Arial\";\n context.fillText(title, 20, 15);\n\n e.dataTransfer.setDragImage(canvas, 0, 0);\n}\n","import { createContext, useContext } from \"react\";\nimport type { WorkbenchNodeData } from \"../../interfaces.js\";\nimport { dragStatusEnum } from \"./WorkbenchTreeDndContext.js\";\n\nexport interface dropOptions {\n curElement: HTMLElement;\n overElement: HTMLElement;\n parentElement: HTMLElement;\n overStatus: dragStatusEnum;\n}\n\nexport interface ContextOfWorkbenchTree {\n hoverKey?: string | number;\n activeKey?: string | number;\n basePaddingLeft?: number;\n showMatchedNodeOnly?: boolean;\n isTransformName?: boolean;\n fixedActionsFor?: Record<string, unknown> | Record<string, unknown>[];\n collapsible?: boolean;\n collapsedNodes?: (string | number)[];\n nodeKey?: string;\n clickFactory?(node: WorkbenchNodeData): () => void;\n mouseEnterFactory?(node: WorkbenchNodeData): () => void;\n mouseLeaveFactory?(node: WorkbenchNodeData): () => void;\n contextMenuFactory?(\n node?: WorkbenchNodeData\n ): (event: React.MouseEvent) => void;\n matchNode?(node: WorkbenchNodeData, lowerTrimmedQuery?: string): boolean;\n onNodeToggle?(nodeId: string | number, collapsed: boolean): void;\n getCollapsedId?(node: WorkbenchNodeData): string | number;\n onBrickDrop?(e: React.DragEvent<HTMLElement>, options: dropOptions): void;\n skipNotify?: boolean;\n}\n\nexport const WorkbenchTreeContext = createContext<ContextOfWorkbenchTree>({});\n\nexport function useWorkbenchTreeContext(): ContextOfWorkbenchTree {\n return useContext(WorkbenchTreeContext);\n}\n","export function deepFilter<T>(data: Array<T>, q: string): Array<T> {\n const trimmedQuery = q?.trim();\n if (!trimmedQuery) {\n return data.slice();\n }\n return data.filter((item) => deepMatch(item, trimmedQuery.toLowerCase()));\n}\n\nexport function deepMatch(data: unknown, lowerTrimmedQuery: string): boolean {\n switch (typeof data) {\n case \"string\":\n return data.toLowerCase().includes(lowerTrimmedQuery);\n case \"boolean\":\n case \"number\":\n return String(data).includes(lowerTrimmedQuery);\n case \"object\":\n return data === null\n ? \"null\".includes(lowerTrimmedQuery)\n : (Array.isArray(data) ? data : Object.entries(data).flat()).some(\n (item) => deepMatch(item, lowerTrimmedQuery)\n );\n default:\n return false;\n }\n}\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, `.actionsBar{display:flex;align-items:center;padding:0 3px}.action{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:5px}.action:hover{color:#fff;background-color:rgba(90,93,94,0.31)}.action{color:#c5c5c5}.disabled,\n.disabled:hover{color:var(--color-disabled-text);cursor:not-allowed;background-color:initial}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\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,\n:host-context(html[data-override-theme=\"light\"]){--search-box-background:#fff;--node-color:#595959;--node-color-focus:#595959;--node-background-active:#e0eeff;--node-background-focus:#e0eeff;--node-icon-background-hover:#fff}:host-context(html[data-theme=\"dark-v2\"]),\n:host-context(html[data-override-theme=\"dark-v2\"]){--search-box-background:#181818;--node-color:#c5c5c5;--node-color-focus:#fff;--node-background-active:rgba(255,255,255,0.08);--node-background-focus:#1a7aff;--node-icon-background-hover:rgba(90,93,94,0.31)}.searchBox{position:sticky;top:0;background-color:var(--search-box-background);padding:5px 10px 10px;z-index:1}.searchBox .filter-input-wrapper{background-color:var(--search-box-background);border:1px solid rgba(255,255,255,0.2);position:relative;width:100%;min-width:0;padding:2px 7px;color:var(--antd-input-color);font-size:14px;line-height:1.5715;display:inline-flex;border-radius:3px;transition:all 0.3s;box-sizing:border-box}.searchBox .filter-input-wrapper.focus{background-color:var(--search-box-background);border:1px solid rgba(255,255,255,0.2);border-right-width:1px!important;outline:0;box-shadow:0 0 0 2px rgba(0,113,235,0.2)}.searchBox .filter-input-wrapper input{text-overflow:ellipsis;border:none;outline:none;border-radius:3px;background-color:var(--search-box-background);box-sizing:border-box;margin:0;padding:0;color:var(--antd-text-color);font-variant:tabular-nums;list-style:none;font-feature-settings:\"tnum\";position:relative;display:inline-block;width:100%;min-width:0;color:var(--antd-input-color);font-size:14px;line-height:1.5715;background-image:none;transition:all 0.3s}.prefix{margin-right:4px}.suffix{margin-left:4px}.searchBox .prefix,\n.searchBox .suffix{display:flex;flex:none;align-items:center}.clear-button{cursor:pointer}.tree{list-style:none;margin:0;padding:0}.placeholder{color:var(--antd-input-placeholder-color);padding:0 15px}.nodeLabelLink{display:block}.nodeLabelLink::part(link){display:flex}.nodeLabelRow{display:flex;cursor:pointer;height:22px;padding-right:10px;flex:1;min-width:0}.nodeLabelRow:hover,\n.nodeLabelRow.hover{background-color:rgba(255,255,255,0.12)}.nodeLabelLink:focus .nodeLabelRow.active{background-color:var(--node-background-focus)}.nodeLabel{display:flex;align-items:center;min-width:0;flex:1}.unreachable{opacity:0.3}.nodeAction,\n.nodeAction:hover,\n.nodeLabelRow .nodeLabel{color:var(--node-color)}.nodeLabelLink:focus .nodeLabel{color:var(--node-color-focus)}.nodeLabelRow.matched .nodeLabel{color:var(--palette-orange-6)}.nodeLabelRow.active{background-color:var(--node-background-active)}.nodeIconWrapper{display:flex;width:24px;flex-shrink:0}.nodeIcon,\n.collapseIcon{display:flex;justify-content:center;align-items:center;width:20px;height:20px;border-radius:5px;font-size:13px}.collapseIcon{display:none}.nodeLabelRow.collapsed .nodeIcon,\n.nodeLabelRow.collapsible .nodeIconWrapper:hover .nodeIcon{display:none}.nodeLabelRow.collapsed .collapseIcon,\n.nodeLabelRow.collapsible .nodeIconWrapper:hover .collapseIcon{display:flex}.nodeLabelRow.collapsible .nodeIcon:hover,\n.nodeLabelRow.collapsible .collapseIcon:hover{background-color:var(--node-icon-background-hover)}.nodeName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nodeLabelRow:not(:hover):not(.fixedActions) .nodeActionsBar{display:none}.badge{margin:0 3px}.collapsed + .tree{display:none}.hightlight{outline-width:1px;outline-style:solid;outline-offset:-1px;outline-color:#fcd93f}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["WorkbenchActionsContext","createContext","useWorkbenchActionsContext","useContext","dragStatusEnum","WorkbenchTreeDndContext","useWorkbenchTreeDndContext","WrappedGeneralIcon","wrapBrick","WorkbenchMiniActionBar","_ref","data","className","gap","isFirst","isLast","actions","actionsHidden","onActionClick","enabledActions","useMemo","filter","item","checkIfByTransform","length","React","classNames","style","map","WorkbenchSubAction","key","action","_ref2","disabled","handleActionClick","useCallback","event","preventDefault","stopPropagation","preventMouseEvent","title","role","onClick","onContextMenu","onMouseDown","icon","WrappedLink","treeLevelPadding","borderStyle","SearchingContext","WorkbenchTree","nodes","originNode","placeholder","searchPlaceholder","isDrag","noSearch","allowDrag","allowDragToRoot","allowDragToInside","dropEmit","q","setQ","useState","isDragging","setIsDragging","curNode","setCurNode","curElement","setCurElement","overNode","setOverNode","overElement","setOverElement","overStatus","setOverStatus","isFocus","setIsFocus","nodeKey","onBrickDrop","contextMenuFactory","matchNode","useWorkbenchTreeContext","_originNode$slice","createNodeByPath","pathList","node","index","path","shift","splice","folder","find","isContainer","children","newPathList","split","newNode","name","pop","parentPath","join","originKey","lib","theme","color","push","forEach","Boolean","getNodeTreeByPath","slice","handleSearchChange","target","value","trimmedLowerQ","trim","toLowerCase","filteredNodes","walk","_node$children","matchedSelf","hasMatchedChildren","includes","matched","findDragParent","element","equal","arguments","undefined","draggable","tagName","parentElement","findNode","id","handleOnDragEnd","useEffect","window","addEventListener","removeEventListener","height","e","focus","onChange","onFocus","onBlur","autoComplete","handleClearInput","Provider","allow","dragElement","dragOverElement","dragStatus","onDragStart","handleOnDragStart","_element$dataset","dataset","container","canvas","document","createElement","body","append","context","getContext","width","measureText","position","left","zIndex","fillStyle","fillRect","font","fillText","dataTransfer","setDragImage","innerText","classnames","hightlight","onDragOver","dom","uid","top","bottom","getBoundingClientRect","status","repair","clientY","inside","getDragState","contains","onDrop","Number","level","realOverNode","findRealNode","i","overUid","filterNodes","flag","realOverKey","newNodes","findIndex","normalizeNode","result","_","getNodesByPathTree","realCurNode","TreeList","lastIndex","checkIfOfComputed","TreeNode","PlaceholderDOM","_ref3","styles","border","opacity","_ref4","_node$children2","_collapsedNodes$inclu","_node$icon","_node$icon2","isLeaf","hoverKey","activeKey","basePaddingLeft","showMatchedNodeOnly","fixedActionsFor","collapsible","collapsedNodes","clickFactory","mouseEnterFactory","mouseLeaveFactory","onNodeToggle","getCollapsedId","skipNotify","nodePaddingLeft","searching","cacheDragStatus","setCacheDragStatus","collapseClicked","setCollapseClicked","collapsed","setCollapsed","onMouseEnter","onMouseLeave","_contextMenuFactory","isActive","nodeLabelCallback","_element$scrollIntoVi","scrollIntoView","call","block","inline","nodeUid","type","parent","$$uid","mountPoint","isDragElement","String","isDragActive","nodeStyle","boxShadow","background","Object","assign","handleCollapse","prev","onLinkClick","_clickFactory","allowCollapse","marginLeft","_extends","tabIndex","url","pathname","get","link","state","notify","pick","active","hover","fixedActions","concat","some","source","isMatch","unreachable","paddingLeft","labelColor","ref","fontSize","imgSrc","labelPrefix","text","badge","WorkbenchTreeContext","deepMatch","lowerTrimmedQuery","Array","isArray","entries","flat","___CSS_LOADER_EXPORT___","module","toString"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[5552,
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[3171,5552,790],{5552:(e,n,t)=>{t.r(n),t.d(n,{i18n:()=>d,i18nText:()=>l,initializeI18n:()=>o});var i=t(2350),s=t(8799),r=t(7072);let u=!1;const a=new Set;function o(e,n){if(u||(u=!0,s.i18n.use(r.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},compatibilityJSON:"v3",resources:{}})),e&&n&&!a.has(e)){a.add(e);for(const[t,i]of Object.entries(n))s.i18n.addResourceBundle(t,e,i)}}var c=t(6511);function l(e){var n;if(!e)return;const t=null!==(n=s.i18n.language)&&void 0!==n?n:"zh-CN";if((0,c.hasOwnProperty)(e,t))return e[t];const i=t.split("-")[0];if(i!==t)return(0,c.hasOwnProperty)(e,i)?e[i]:void 0;const r=`${i}-`;for(const n of Object.keys(e))if(n.startsWith(r))return e[n]}const d=i.default}}]);
|
|
2
|
+
//# sourceMappingURL=3171.76f5ef5e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/3171.76f5ef5e.js","mappings":"gQAEA,IAAIA,GAAc,EAClB,MAAMC,EAAwB,IAAIC,IAC3B,SAASC,EAAeC,EAAIC,GAwBjC,GAvBKL,IACHA,GAAc,EACd,EAAAM,KAICC,IAAmF,WAEnFC,KAAK,CACJC,YAAa,KACbC,OAAO,EACPC,cAAe,CAAC,KAAM,MACtBC,0BAA0B,EAC1BC,cAAe,CACbC,aAAa,GAEfC,MAAO,CACLC,aAAa,GAEfC,kBAAmB,KACnBC,UAAW,CAAC,KAGXd,GAAOC,IAAWJ,EAAsBkB,IAAIf,GAAjD,CAGAH,EAAsBmB,IAAIhB,GAC1B,IAAK,MAAOiB,EAAMH,KAAcI,OAAOC,QAAQlB,GAC7C,EAAAC,KAAKkB,kBAAkBH,EAAMjB,EAAIc,EAHnC,CAKF,C,cCjCO,SAASO,EAASC,GACvB,IAAIC,EACJ,IAAKD,EACH,OAEF,MAAME,EAAgD,QAApCD,EAAiB,EAAArB,KAAKsB,gBAAyC,IAAnBD,EAA4BA,EAAiB,QAE3G,IAAI,IAAAE,gBAAeH,EAAME,GACvB,OAAOF,EAAKE,GAGd,MAAME,EAAkBF,EAASG,MAAM,KAAK,GAC5C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeH,EAAMI,GAAmBJ,EAAKI,QAAmBE,EAKzE,MAAMC,EAAS,GAAGH,KAClB,IAAK,MAAMI,KAAOZ,OAAOa,KAAKT,GAC5B,GAAIQ,EAAIE,WAAWH,GACjB,OAAOP,EAAKQ,EAGlB,CC3BO,MAAM5B,EAA6E,S","sources":["webpack:///../../node_modules/@next-core/i18n/dist/esm/init.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/text.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/index.js"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nlet initialized = false;\nconst initializedNamespaces = new Set();\nexport function initializeI18n(NS, locales) {\n if (!initialized) {\n initialized = true;\n i18n\n // learn more: https://github.com/i18next/i18next-xhr-backend\n // .use(Backend)\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(process.env.NODE_ENV === \"test\" ? LanguageDetector : /* istanbul ignore next */LanguageDetector.default)\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: \"zh\",\n debug: process.env.NODE_ENV === \"development\",\n supportedLngs: [\"zh\", \"en\"],\n nonExplicitSupportedLngs: true,\n interpolation: {\n escapeValue: false // not needed for react as it escapes by default\n },\n react: {\n useSuspense: false\n },\n compatibilityJSON: \"v3\",\n resources: {}\n });\n }\n if (!NS || !locales || initializedNamespaces.has(NS)) {\n return;\n }\n initializedNamespaces.add(NS);\n for (const [lang, resources] of Object.entries(locales)) {\n i18n.addResourceBundle(lang, NS, resources);\n }\n}\n//# sourceMappingURL=init.js.map","import { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nexport function i18nText(data) {\n var _i18n$language;\n if (!data) {\n return;\n }\n const language = (_i18n$language = i18n.language) !== null && _i18n$language !== void 0 ? _i18n$language : \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n const primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage) ? data[primaryLanguage] : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n const prefix = `${primaryLanguage}-`;\n for (const key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n//# sourceMappingURL=text.js.map","import i18next from \"i18next\";\nexport const i18n = process.env.NODE_ENV === \"test\" ? i18next : /* istanbul ignore next */i18next.default;\nexport * from \"./init.js\";\nexport * from \"./text.js\";\n//# sourceMappingURL=index.js.map"],"names":["initialized","initializedNamespaces","Set","initializeI18n","NS","locales","i18n","use","init","fallbackLng","debug","supportedLngs","nonExplicitSupportedLngs","interpolation","escapeValue","react","useSuspense","compatibilityJSON","resources","has","add","lang","Object","entries","addResourceBundle","i18nText","data","_i18n$language","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","key","keys","startsWith"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[3933,6314],{3933:(e,t,o)=>{function n(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(r,s){if("string"==typeof t?r.name===t:t.includes(r.name)){const t=[];for(let i=1;i<=o;i++){const o=s[s.length-i];if("MemberExpression"===(null==o?void 0:o.node.type)&&"object"===o.key){const s=o.node;s.computed||"Identifier"!==s.property.type?s.computed&&"Literal"===s.property.type&&"string"==typeof s.property.value?t.push(n?`${r.name}.${s.property.value}`:s.property.value):e.hasNonStaticUsage=!0:t.push(n?`${r.name}.${s.property.name}`:s.property.name)}else e.hasNonStaticUsage=!0}t.length===o&&e.usedProperties.add(t.join("."))}}}function r(e,t){return function(o,n,r){if(n.name===e){const e=r[r.length-1],n=r[r.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==e?void 0:e.node.type)&&"object"===e.key&&(e.node.computed?"Literal"===e.node.property.type&&e.node.property.value===t:"Identifier"===e.node.property.type&&e.node.property.name===t)){const e=n.node.arguments;if(e.length>0){const t=e[0];"Literal"===t.type&&"string"==typeof t.value?o.usedArgs.add(t.value):o.hasNonStaticUsage=!0}}}}}o.r(t),o.d(t,{beforeVisitGlobalMember:()=>n,collectAppGetMenuUsage:()=>s,collectInstalledAppsHasUsage:()=>i,collectMemberUsage:()=>p,collectMemberUsageInFunction:()=>S,createProviderClass:()=>c.createProviderClass,scanPermissionActionsInAny:()=>P,scanPermissionActionsInStoryboard:()=>m,strictCollectMemberUsage:()=>l,track:()=>f,trackAll:()=>y,traverseStoryboardExpressions:()=>u,traverseStoryboardFunction:()=>g,traverseStoryboardFunctions:()=>h,unwrapProvider:()=>c.unwrapProvider});const s=r("APP","getMenu"),i=r("INSTALLED_APPS","has");var a=o(8395),c=o(6511);function u(e,t,o){const n=new WeakSet,{matchExpressionString:r,visitNotMatchedExpressionString:s,visitNonExpressionString:i,visitObject:u}="string"==typeof o?{matchExpressionString:e=>e.includes(o)}:o;!function e(o){if("string"==typeof o)if((0,a.isEvaluable)(o))if(r(o))try{(0,a.preevaluate)(o,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal(e,n){t(e,n,o)}}})}catch(e){console.error("Parse storyboard expression failed:",e)}else null==s||s(o);else null==i||i(o);else if((0,c.isObject)(o)){if(n.has(o))return;n.add(o),null==u||u(o);for(const t of Array.isArray(o)?o:Object.values(o))e(t)}}(e)}function l(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const{hasNonStaticUsage:n,nonStaticUsage:r,usedProperties:s}=p(e,t,o);if(n)throw new Error(`Non-static usage of ${t} is prohibited, check your expression: "${r}"`);return s}function p(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r={usedProperties:new Set,hasNonStaticUsage:!1},s=n(r,t,o);return u(e,((e,t,o)=>{s(e,t),r.hasNonStaticUsage&&(r.nonStaticUsage=o)}),t),r}const d=["CTX","STATE","FORM_STATE"];function f(e,t,o){if(e.includes(t)){const r={usedProperties:new Set,hasNonStaticUsage:!1},{expression:s}=(0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(r,o)}});let i;if("SequenceExpression"===s.type&&(i=s.expressions[0])&&"Literal"===i.type&&i.value===t){if(r.usedProperties.size>0)return r.usedProperties;console.warn(`You are using "${t}" but no \`${o}\` usage found in your expression: ${JSON.stringify(e)}`)}}return!1}function y(e){if(d.some((t=>e.includes(t)))){const t={usedProperties:new Set,hasNonStaticUsage:!1};if((0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(t,d,1,!0)}}),t.usedProperties.size>0){const e=[...t.usedProperties],o={context:!1,state:!1,formState:!1},n={CTX:"context",STATE:"state",FORM_STATE:"formState"};return e.forEach((e=>{const[t,r]=e.split(".");o[n[t]]||(o[n[t]]=[]),o[n[t]].push(r)})),o}console.warn(`You are using track all but no "CTX" or "STATE" or "FORM_STATE" usage found in your expression: ${JSON.stringify(e)}`)}return!1}function h(e,t,o){if(Array.isArray(e))for(const n of e)null!=o&&o.matchSource&&!o.matchSource(n.source)||g(n,t)}function g(e,t,o){try{(0,a.precookFunction)(e.source,{typescript:e.typescript,withParent:!0,hooks:{beforeVisitGlobal:t},cacheKey:e})}catch(t){o||console.error(`Parse storyboard function "${e.name}" failed:`,t)}}function S(e,t,o){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;const s={usedProperties:new Set,hasNonStaticUsage:!1};if(e.source.includes(t)&&g(e,n(s,t,r),o),s.hasNonStaticUsage&&!o)throw new Error(`Non-static usage of ${t} is prohibited, check your function: "${e.name}"`);return s.usedProperties.delete(e.name),s.usedProperties}const b="PERMISSIONS",v="check";function m(e){var t;const o=new Set,n=k(o),{customTemplates:r,functions:s}=null!==(t=e.meta)&&void 0!==t?t:{};return u([e.routes,r],n,b),h(s,n,{matchSource:e=>e.includes(b)}),Array.from(o)}function P(e){const t=new Set;return u(e,k(t),b),Array.from(t)}function k(e){return function(t,o){if(t.name===b){const t=o[o.length-1],n=o[o.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==t?void 0:t.node.type)&&"object"===t.key&&(t.node.computed?"Literal"===t.node.property.type&&t.node.property.value===v:"Identifier"===t.node.property.type&&t.node.property.name===v))for(const t of n.node.arguments)"Literal"===t.type&&"string"==typeof t.value&&e.add(t.value)}}}}}]);
|
|
2
|
+
//# sourceMappingURL=3933.6543fa09.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/3933.6543fa09.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/beforeVisitGlobalMember.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberCallUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/track.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/collectMemberUsageInFunction.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/permissions.js"],"sourcesContent":["export function beforeVisitGlobalMember(usage, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n let rememberObjectName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return function beforeVisitGlobal(node, parent) {\n if (typeof objectName === \"string\" ? node.name === objectName : objectName.includes(node.name)) {\n const segments = [];\n for (let i = 1; i <= level; i++) {\n const memberParent = parent[parent.length - i];\n if ((memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\") {\n const memberNode = memberParent.node;\n if (!memberNode.computed && memberNode.property.type === \"Identifier\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.name}` : memberNode.property.name);\n } else if (memberNode.computed && memberNode.property.type === \"Literal\" && typeof memberNode.property.value === \"string\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.value}` : memberNode.property.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n if (segments.length === level) {\n usage.usedProperties.add(segments.join(\".\"));\n }\n }\n };\n}\n//# sourceMappingURL=beforeVisitGlobalMember.js.map","function collectMemberCallUsageFactory(object, property) {\n return function collectMemberCallUsage(usage, node, parent) {\n if (node.name === object) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === property : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === property)) {\n const args = callParent.node.arguments;\n if (args.length > 0) {\n const firstArg = args[0];\n if (firstArg.type === \"Literal\" && typeof firstArg.value === \"string\") {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\nexport const collectAppGetMenuUsage = collectMemberCallUsageFactory(\"APP\", \"getMenu\");\nexport const collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\"INSTALLED_APPS\", \"has\");\n//# sourceMappingURL=collectMemberCallUsage.js.map","import { isEvaluable, preevaluate } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nexport function traverseStoryboardExpressions(data, beforeVisitGlobal,\n// If `options` is a string, it means the *keyword*.\noptions) {\n const memo = new WeakSet();\n const {\n matchExpressionString,\n visitNotMatchedExpressionString,\n visitNonExpressionString,\n visitObject\n } = typeof options === \"string\" ? {\n matchExpressionString: v => v.includes(options)\n } : options;\n function traverse(value) {\n if (typeof value === \"string\") {\n if (isEvaluable(value)) {\n if (matchExpressionString(value)) {\n try {\n preevaluate(value, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n beforeVisitGlobal(node, parent, value);\n }\n }\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard expression failed:\", error);\n }\n } else {\n visitNotMatchedExpressionString === null || visitNotMatchedExpressionString === void 0 || visitNotMatchedExpressionString(value);\n }\n } else {\n visitNonExpressionString === null || visitNonExpressionString === void 0 || visitNonExpressionString(value);\n }\n } else if (isObject(value)) {\n // Avoid call stack overflow.\n if (memo.has(value)) {\n return;\n }\n memo.add(value);\n visitObject === null || visitObject === void 0 || visitObject(value);\n for (const item of Array.isArray(value) ? value : Object.values(value)) {\n traverse(item);\n }\n }\n }\n traverse(data);\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nimport { traverseStoryboardExpressions } from \"./traverse.js\";\nexport function strictCollectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const {\n hasNonStaticUsage,\n nonStaticUsage,\n usedProperties\n } = collectMemberUsage(data, objectName, level);\n if (hasNonStaticUsage) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your expression: \"${nonStaticUsage}\"`);\n }\n return usedProperties;\n}\nexport function collectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const beforeVisitGlobal = beforeVisitGlobalMember(usage, objectName, level);\n traverseStoryboardExpressions(data, (node, parent, expr) => {\n beforeVisitGlobal(node, parent);\n if (usage.hasNonStaticUsage) {\n usage.nonStaticUsage = expr;\n }\n }, objectName);\n return usage;\n}\n//# sourceMappingURL=collectMemberUsage.js.map","import { preevaluate } from \"@next-core/cook\";\nimport { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nconst TRACK_NAMES = [\"CTX\", \"STATE\", \"FORM_STATE\"];\nexport function track(raw, trackText, variableName) {\n if (raw.includes(trackText)) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const {\n expression\n } = preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, variableName)\n }\n });\n let trackCtxExp;\n if (expression.type === \"SequenceExpression\" && (trackCtxExp = expression.expressions[0]) && trackCtxExp.type === \"Literal\" && trackCtxExp.value === trackText) {\n if (usage.usedProperties.size > 0) {\n return usage.usedProperties;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using \"${trackText}\" but no \\`${variableName}\\` usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n }\n return false;\n}\nexport function trackAll(raw) {\n // Do not pre-evaluate a string if it doesn't include track names.\n if (TRACK_NAMES.some(name => raw.includes(name))) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, TRACK_NAMES, 1, true)\n }\n });\n if (usage.usedProperties.size > 0) {\n const usedProperties = [...usage.usedProperties];\n const result = {\n context: false,\n state: false,\n formState: false\n };\n const keyMap = {\n CTX: \"context\",\n STATE: \"state\",\n FORM_STATE: \"formState\"\n };\n usedProperties.forEach(item => {\n const [key, name] = item.split(\".\");\n if (!result[keyMap[key]]) {\n result[keyMap[key]] = [];\n }\n result[keyMap[key]].push(name);\n });\n return result;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using track all but no \"CTX\" or \"STATE\" or \"FORM_STATE\" usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n return false;\n}\n//# sourceMappingURL=track.js.map","import { precookFunction } from \"@next-core/cook\";\nexport function traverseStoryboardFunctions(functions, beforeVisitGlobal, options) {\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n if (!(options !== null && options !== void 0 && options.matchSource) || options.matchSource(fn.source)) {\n traverseStoryboardFunction(fn, beforeVisitGlobal);\n }\n }\n }\n}\nexport function traverseStoryboardFunction(fn, beforeVisitGlobal, silentErrors) {\n try {\n precookFunction(fn.source, {\n typescript: fn.typescript,\n withParent: true,\n hooks: {\n beforeVisitGlobal\n },\n cacheKey: fn\n });\n } catch (error) {\n if (!silentErrors) {\n // eslint-disable-next-line no-console\n console.error(`Parse storyboard function \"${fn.name}\" failed:`, error);\n }\n }\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"../expressions/beforeVisitGlobalMember.js\";\nimport { traverseStoryboardFunction } from \"./traverse.js\";\nexport function collectMemberUsageInFunction(fn, objectName, silentErrors) {\n let level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n if (fn.source.includes(objectName)) {\n traverseStoryboardFunction(fn, beforeVisitGlobalMember(usage, objectName, level), silentErrors);\n }\n if (usage.hasNonStaticUsage && !silentErrors) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your function: \"${fn.name}\"`);\n }\n usage.usedProperties.delete(fn.name);\n return usage.usedProperties;\n}\n//# sourceMappingURL=collectMemberUsageInFunction.js.map","import { traverseStoryboardExpressions } from \"./expressions/index.js\";\nimport { traverseStoryboardFunctions } from \"./functions/index.js\";\nconst PERMISSIONS = \"PERMISSIONS\";\nconst check = \"check\";\nexport function scanPermissionActionsInStoryboard(storyboard) {\n var _storyboard$meta;\n const collection = new Set();\n const beforeVisitPermissions = beforeVisitPermissionsFactory(collection);\n const {\n customTemplates,\n functions\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates], beforeVisitPermissions, PERMISSIONS);\n traverseStoryboardFunctions(functions, beforeVisitPermissions, {\n matchSource(source) {\n return source.includes(PERMISSIONS);\n }\n });\n return Array.from(collection);\n}\nexport function scanPermissionActionsInAny(data) {\n const collection = new Set();\n traverseStoryboardExpressions(data, beforeVisitPermissionsFactory(collection), PERMISSIONS);\n return Array.from(collection);\n}\nfunction beforeVisitPermissionsFactory(collection) {\n return function beforeVisitPermissions(node, parent) {\n if (node.name === PERMISSIONS) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === check : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === check)) {\n for (const arg of callParent.node.arguments) {\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n collection.add(arg.value);\n }\n }\n }\n }\n };\n}\n//# sourceMappingURL=permissions.js.map"],"names":["beforeVisitGlobalMember","usage","objectName","level","arguments","length","undefined","rememberObjectName","node","parent","name","includes","segments","i","memberParent","type","key","memberNode","computed","property","value","push","hasNonStaticUsage","usedProperties","add","join","collectMemberCallUsageFactory","object","callParent","args","firstArg","usedArgs","collectAppGetMenuUsage","collectInstalledAppsHasUsage","traverseStoryboardExpressions","data","beforeVisitGlobal","options","memo","WeakSet","matchExpressionString","visitNotMatchedExpressionString","visitNonExpressionString","visitObject","v","traverse","isEvaluable","preevaluate","cache","withParent","hooks","error","console","isObject","has","item","Array","isArray","Object","values","strictCollectMemberUsage","nonStaticUsage","collectMemberUsage","Error","Set","expr","TRACK_NAMES","track","raw","trackText","variableName","expression","trackCtxExp","expressions","size","warn","JSON","stringify","trackAll","some","result","context","state","formState","keyMap","CTX","STATE","FORM_STATE","forEach","split","traverseStoryboardFunctions","functions","fn","matchSource","source","traverseStoryboardFunction","silentErrors","precookFunction","typescript","cacheKey","collectMemberUsageInFunction","delete","PERMISSIONS","check","scanPermissionActionsInStoryboard","storyboard","_storyboard$meta","collection","beforeVisitPermissions","beforeVisitPermissionsFactory","customTemplates","meta","routes","from","scanPermissionActionsInAny","arg"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[4658,2277],{2277:(e,t,r)=>{r.r(t),r.d(t,{inject:()=>m,transform:()=>
|
|
2
|
-
//# sourceMappingURL=4658.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[4658,2277],{2277:(e,t,r)=>{r.r(t),r.d(t,{inject:()=>m,transform:()=>y,transformAndInject:()=>w});var n=r(1030),a=r(1744);let i=function(e){return e[e.Initial=0]="Initial",e[e.ExpectField=1]="ExpectField",e[e.ExpectOptionalBeginDefault=2]="ExpectOptionalBeginDefault",e[e.ExpectDefaultValue=3]="ExpectDefaultValue",e[e.ExpectOptionalBeginPipe=4]="ExpectOptionalBeginPipe",e[e.ExpectPipeIdentifier=5]="ExpectPipeIdentifier",e[e.ExpectOptionalBeginPipeParameter=6]="ExpectOptionalBeginPipeParameter",e[e.ExpectPipeParameter=7]="ExpectPipeParameter",e[e.ExpectPlaceholderEnd=8]="ExpectPlaceholderEnd",e}({}),s=function(e){return e.Raw="Raw",e.BeginPlaceHolder="BeginPlaceHolder",e.Field="Field",e.BeginDefault="BeginDefault",e.LiteralString="LiteralString",e.BeginPipe="BeginPipe",e.PipeIdentifier="PipeIdentifier",e.BeginPipeParameter="BeginPipeParameter",e.EndPlaceHolder="EndPlaceHolder",e.JsonValue="JsonValue",e}({}),c=function(e){return e[e.Array=0]="Array",e[e.Object=1]="Object",e[e.String=2]="String",e[e.Others=3]="Others",e}({});function l(e){return new RegExp(`(${[].concat(e).map((e=>(0,n.escapeRegExp)(e))).join("|")})\\{`)}function u(e){var t;const r=v(e),n=null===(t=r.match(e.beginPlaceholder))||void 0===t?void 0:t[0],a=n?r.indexOf(n):-1;if(a>=0&&n&&"{"!==r.charAt(a+n.length)){const t=e.cursor+a;a>0&&e.tokens.push({type:s.Raw,value:r.substring(0,a)}),e.tokens.push({type:s.BeginPlaceHolder,loc:{start:t,end:t+n.length},value:n.substring(0,n.length-1)}),e.cursor+=a+n.length,e.status=i.ExpectField}else e.tokens.push({type:s.Raw,value:r}),e.cursor=e.raw.length}function o(e){e.cursor+=v(e).match(/^[ \r\n\t]*/)[0].length}function p(e){const[t]=v(e).match(/^[\w.*[\]\-\u{80}-\u{10FFFF}]*/u);e.tokens.push({type:s.Field,value:t}),e.cursor+=t.length,e.status=i.ExpectOptionalBeginDefault}function d(e){"="===v(e).charAt(0)?(e.tokens.push({type:s.BeginDefault}),e.cursor+=1,e.status=i.ExpectDefaultValue):e.status=i.ExpectOptionalBeginPipe}function f(e){k(e,i.ExpectOptionalBeginPipe)}function g(e){"|"===v(e).charAt(0)?(e.tokens.push({type:s.BeginPipe}),e.cursor+=1,e.status=i.ExpectPipeIdentifier):e.status=i.ExpectPlaceholderEnd}function h(e){const t=v(e).match(/^[a-zA-Z]\w*/);if(!t)throw new Error(`Expected a pipe identifier at index ${e.cursor} near: ${JSON.stringify(e.raw.substring(e.cursor))}`);const r=t[0];e.tokens.push({type:s.PipeIdentifier,value:r}),e.cursor+=r.length,e.status=i.ExpectOptionalBeginPipeParameter}function P(e){":"===v(e).charAt(0)?(e.tokens.push({type:s.BeginPipeParameter}),e.cursor+=1,e.status=i.ExpectPipeParameter):e.status=i.ExpectOptionalBeginPipe}function E(e){k(e,i.ExpectOptionalBeginPipeParameter)}function b(e){if("}"!==v(e).charAt(0))throw new Error(`Expected a placeholder end '}' at index ${e.cursor} near: ${JSON.stringify(e.raw.substring(e.cursor))}`);e.tokens.push({type:s.EndPlaceHolder,loc:{start:e.cursor,end:e.cursor+1}}),e.cursor+=1,e.status=i.Initial}const x=new Map([["false",!1],["null",null],["true",!0]]);function k(e,t){const r=v(e);if(/[0-9[{"]/.test(r.charAt(0))||/-[0-9]/.test(r.substring(0,2)))!function(e,t){const r=v(e),n=r.charAt(0),a="["===n?c.Array:"{"===n?c.Object:'"'===n?c.String:c.Others;let i=0,l=0,u=0,o=!1,p=!1,d=!1;for(;i<r.length;){const e=r.charAt(i);if(p)p=!1;else if(o)'"'===e?o=!1:"\\"===e&&(p=!0);else switch(e){case"[":u+=1;break;case"{":l+=1;break;case"]":u-=1;break;case"}":l-=1;break;case'"':o=!0}switch(i+=1,a){case c.Array:d=!u;break;case c.Object:d=!l;break;case c.String:d=!o;break;default:d=i<r.length&&/[^a-z0-9E.+-]/.test(r.charAt(i))}if(d)break}if(!d)throw new Error(`Failed to match a JSON value at index ${e.cursor} near: ${JSON.stringify(e.raw.substring(e.cursor))}`);e.tokens.push({type:s.JsonValue,value:JSON.parse(r.substring(0,i))}),e.cursor+=i,e.status=t}(e,t);else{const[r]=v(e).match(/^[\w\-\u{80}-\u{10FFFF}]*/u);x.has(r)?e.tokens.push({type:s.JsonValue,value:x.get(r)}):e.tokens.push({type:s.LiteralString,value:r}),e.cursor+=r.length,e.status=t}}function v(e){return e.raw.substring(e.cursor)}function y(e,t){return A(e,"@",t)}function m(e,t){return A(e,"$",t)}function w(e,t){return A(e,["@","$"],t)}function A(e,t,r){if(!function(e,t){return l(t).test(e)}(e,t))return e;const c=(x=r.data,function(e){let t=e.field?(0,n.get)(x,e.field):x;return void 0===t&&(t=e.defaultValue),(0,a.processPipes)(t,e.pipes)});var x;const k=function(e,t){return function(r){var i,s;const c=r.field.match(/^(?:(QUERY(?:_ARRAY)?|EVENT|query|event|APP|HASH|ANCHOR|SYS|FLAGS|CTX)\.)?(.+)$/);if(!c)return t.substring(r.loc.start,r.loc.end);let l,[,u,o]=c;!u&&/^[A-Z_]+$/.test(o)&&(u=o,o="*");const p={SYS:"sys",FLAGS:"flags"};switch(u){case"QUERY":case"query":l="*"===o?e.query:e.query.has(o)?e.query.get(o):void 0;break;case"QUERY_ARRAY":l=e.query.has(o)?e.query.getAll(o):void 0;break;case"EVENT":case"event":if(void 0===e.event)return t.substring(r.loc.start,r.loc.end);l="*"===o?e.event:(0,n.get)(e.event,o);break;case"APP":l="*"===o?null!==(i=e.overrideApp)&&void 0!==i?i:e.app:(0,n.get)(null!==(s=e.overrideApp)&&void 0!==s?s:e.app,o);break;case"HASH":l=e.location.hash;break;case"SYS":case"FLAGS":l="*"===o?e[p[u]]:(0,n.get)(e[p[u]],o);break;case"ANCHOR":{const t=e.location.hash?e.location.hash.substr(1):null;l="*"===o?t:(0,n.get)(t,o);break}case"CTX":{const e=t.substring(r.loc.start,r.loc.end);return console.error(`CTX is not supported in placeholder any more: "${e}"`),e}default:if(!e.match)return t.substring(r.loc.start,r.loc.end);l=e.match.params[o]}return void 0===l&&(l=r.defaultValue),(0,a.processPipes)(l,r.pipes)}}(r,e);return v=function(e,t){return function(e){const t={type:"InjectableString",elements:[]};let r;function n(t){return t===e[0].type&&(r=e.shift(),!0)}function a(t){if(r=e.shift(),Array.isArray(t)?!t.includes(r.type):t!==r.type)throw new Error(`Expected token: ${t}, received token: ${r.type}`)}for(;e.length>0;)if(n(s.Raw))t.elements.push({type:"RawString",value:r.value});else{a(s.BeginPlaceHolder);const e=r.loc.start,i=r.value;a(s.Field);const c={type:"Placeholder",symbol:i,field:r.value,defaultValue:void 0,pipes:[],loc:{start:e,end:e}};for(t.elements.push(c),n(s.BeginDefault)&&(a([s.JsonValue,s.LiteralString]),c.defaultValue=r.value);n(s.BeginPipe);){a(s.PipeIdentifier);const e={type:"PipeCall",identifier:r.value,parameters:[]};for(c.pipes.push(e);n(s.BeginPipeParameter);)a([s.JsonValue,s.LiteralString]),e.parameters.push(r.value)}a(s.EndPlaceHolder),c.loc.end=r.loc.end}return t}(function(e,t){const r={beginPlaceholder:l(t),raw:e,cursor:0,status:i.Initial,tokens:[]};for(;r.cursor<e.length;)switch(r.status){case i.Initial:u(r);break;case i.ExpectField:o(r),p(r);break;case i.ExpectOptionalBeginDefault:o(r),d(r);break;case i.ExpectDefaultValue:o(r),f(r);break;case i.ExpectOptionalBeginPipe:o(r),g(r);break;case i.ExpectPipeIdentifier:o(r),h(r);break;case i.ExpectOptionalBeginPipeParameter:o(r),P(r);break;case i.ExpectPipeParameter:o(r),E(r);break;case i.ExpectPlaceholderEnd:o(r),b(r)}if(r.status!==i.Initial)throw new Error("Expected a placeholder end '}' at the end");return r.tokens}(e,t))}(e,t).elements.map((e=>"RawString"===e.type?e.value:"$"===e.symbol?k(e):c(e))),1===v.length?v[0]:v.join("");var v}}}]);
|
|
2
|
+
//# sourceMappingURL=4658.e6a14e7e.js.map
|