@next-bricks/visual-builder 1.36.17 → 1.36.19

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.
Files changed (154) hide show
  1. package/dist/bricks.json +25 -25
  2. package/dist/chunks/1122.7e99ff7d.js +2 -0
  3. package/dist/chunks/1122.7e99ff7d.js.map +1 -0
  4. package/dist/chunks/1889.c21de868.js +2 -0
  5. package/dist/chunks/1889.c21de868.js.map +1 -0
  6. package/dist/chunks/1940.7463e189.js +2 -0
  7. package/dist/chunks/1940.7463e189.js.map +1 -0
  8. package/dist/chunks/{2277.d3148cce.js → 2277.3aa5ee83.js} +2 -2
  9. package/dist/chunks/2277.3aa5ee83.js.map +1 -0
  10. package/dist/chunks/2980.89f78737.js +2 -0
  11. package/dist/chunks/2980.89f78737.js.map +1 -0
  12. package/dist/chunks/{5552.c86323fa.js → 3171.76f5ef5e.js} +2 -2
  13. package/dist/chunks/3171.76f5ef5e.js.map +1 -0
  14. package/dist/chunks/3933.6543fa09.js +2 -0
  15. package/dist/chunks/3933.6543fa09.js.map +1 -0
  16. package/dist/chunks/{4658.fee7130c.js → 4658.e6a14e7e.js} +2 -2
  17. package/dist/chunks/4658.e6a14e7e.js.map +1 -0
  18. package/dist/chunks/{4837.e5a0317e.js → 4837.6d3d8d7b.js} +2 -2
  19. package/dist/chunks/4837.6d3d8d7b.js.map +1 -0
  20. package/dist/chunks/5347.556f53c5.js +3 -0
  21. package/dist/chunks/5347.556f53c5.js.map +1 -0
  22. package/dist/chunks/5399.2121beed.js +2 -0
  23. package/dist/chunks/5399.2121beed.js.map +1 -0
  24. package/dist/chunks/{790.64754a11.js → 5552.6eeb729f.js} +2 -2
  25. package/dist/chunks/5552.6eeb729f.js.map +1 -0
  26. package/dist/chunks/5559.46d76c74.js +3 -0
  27. package/dist/chunks/{5814.71e5fb63.js.LICENSE.txt → 5559.46d76c74.js.LICENSE.txt} +0 -2
  28. package/dist/chunks/5559.46d76c74.js.map +1 -0
  29. package/dist/chunks/5832.03057e05.js +3 -0
  30. package/dist/chunks/5832.03057e05.js.map +1 -0
  31. package/dist/chunks/6314.88036f7d.js +2 -0
  32. package/dist/chunks/6314.88036f7d.js.map +1 -0
  33. package/dist/chunks/{7218.42259ab1.js → 7218.119bb6e5.js} +2 -2
  34. package/dist/chunks/7218.119bb6e5.js.map +1 -0
  35. package/dist/chunks/{3171.90b67ac3.js → 790.0aa66d1e.js} +2 -2
  36. package/dist/chunks/790.0aa66d1e.js.map +1 -0
  37. package/dist/chunks/{871.f5ada237.js → 871.fff582b1.js} +2 -2
  38. package/dist/chunks/871.fff582b1.js.map +1 -0
  39. package/dist/chunks/9080.2e2c451c.js +2 -0
  40. package/dist/chunks/9080.2e2c451c.js.map +1 -0
  41. package/dist/chunks/9559.3a75207b.js +2 -0
  42. package/dist/chunks/9559.3a75207b.js.map +1 -0
  43. package/dist/chunks/{batch-update-raw-data-generated-view.122f1652.js → batch-update-raw-data-generated-view.77d9153a.js} +3 -3
  44. package/dist/chunks/{batch-update-raw-data-generated-view.122f1652.js.map → batch-update-raw-data-generated-view.77d9153a.js.map} +1 -1
  45. package/dist/chunks/chat-conversation.c9597045.js +3 -0
  46. package/dist/chunks/chat-conversation.c9597045.js.map +1 -0
  47. package/dist/chunks/chat-preview.cd48092a.js +3 -0
  48. package/dist/chunks/chat-preview.cd48092a.js.map +1 -0
  49. package/dist/chunks/{check-editor-by-name.8a3500c8.js → check-editor-by-name.a0ed5831.js} +2 -2
  50. package/dist/chunks/{check-editor-by-name.8a3500c8.js.map → check-editor-by-name.a0ed5831.js.map} +1 -1
  51. package/dist/chunks/contract-select.5a7f5538.js +3 -0
  52. package/dist/chunks/contract-select.5a7f5538.js.map +1 -0
  53. package/dist/chunks/generate-snippets-context-menu.64ec5d69.js +2 -0
  54. package/dist/chunks/generate-snippets-context-menu.64ec5d69.js.map +1 -0
  55. package/dist/chunks/{get-data-deps.7cf9f399.js → get-data-deps.c4a17516.js} +2 -2
  56. package/dist/chunks/{get-data-deps.7cf9f399.js.map → get-data-deps.c4a17516.js.map} +1 -1
  57. package/dist/chunks/{get-dependency-tree.36c9bf4e.js → get-dependency-tree.acf3f10a.js} +2 -2
  58. package/dist/chunks/{get-dependency-tree.36c9bf4e.js.map → get-dependency-tree.acf3f10a.js.map} +1 -1
  59. package/dist/chunks/{get-raw-data-system-prompts.c4029513.js → get-raw-data-system-prompts.31d8f5e6.js} +2 -2
  60. package/dist/chunks/{get-raw-data-system-prompts.c4029513.js.map → get-raw-data-system-prompts.31d8f5e6.js.map} +1 -1
  61. package/dist/chunks/{inject-chat-preview-agent.b147f181.js → inject-chat-preview-agent.81adb527.js} +2 -2
  62. package/dist/chunks/{inject-chat-preview-agent.b147f181.js.map → inject-chat-preview-agent.81adb527.js.map} +1 -1
  63. package/dist/chunks/main.e5326f7c.js +2 -0
  64. package/dist/chunks/{main.80931bec.js.map → main.e5326f7c.js.map} +1 -1
  65. package/dist/chunks/page-arch-node.3d9866d1.js +3 -0
  66. package/dist/chunks/page-arch-node.3d9866d1.js.map +1 -0
  67. package/dist/chunks/{parse-path.39c437b5.js → parse-path.092a6965.js} +2 -2
  68. package/dist/chunks/{parse-path.39c437b5.js.map → parse-path.092a6965.js.map} +1 -1
  69. package/dist/chunks/{pre-generated-container.988a3b09.js → pre-generated-container.c86a4369.js} +2 -2
  70. package/dist/chunks/{pre-generated-container.988a3b09.js.map → pre-generated-container.c86a4369.js.map} +1 -1
  71. package/dist/chunks/pre-generated-preview.852d95c5.js +3 -0
  72. package/dist/chunks/pre-generated-preview.852d95c5.js.map +1 -0
  73. package/dist/chunks/property-editor.60245d89.js +2 -0
  74. package/dist/chunks/property-editor.60245d89.js.map +1 -0
  75. package/dist/chunks/raw-data-preview.73c3a680.js +3 -0
  76. package/dist/chunks/raw-data-preview.73c3a680.js.map +1 -0
  77. package/dist/chunks/workbench-action-list.3d2031d5.js +2 -0
  78. package/dist/chunks/workbench-action-list.3d2031d5.js.map +1 -0
  79. package/dist/chunks/{workbench-history-action.c0f3b4f9.js → workbench-history-action.2e9d48ac.js} +3 -3
  80. package/dist/chunks/workbench-history-action.2e9d48ac.js.map +1 -0
  81. package/dist/chunks/workbench-sidebar.fbf1aaae.js +2 -0
  82. package/dist/chunks/workbench-sidebar.fbf1aaae.js.map +1 -0
  83. package/dist/index.bae2f15b.js +2 -0
  84. package/dist/index.bae2f15b.js.map +1 -0
  85. package/dist/manifest.json +118 -118
  86. package/dist/types.json +408 -408
  87. package/dist-types/property-editor/components/common/ColorPickerComponent.d.ts +1 -1
  88. package/package.json +3 -3
  89. package/dist/chunks/1122.8d825637.js +0 -2
  90. package/dist/chunks/1122.8d825637.js.map +0 -1
  91. package/dist/chunks/1889.e1d839b8.js +0 -2
  92. package/dist/chunks/1889.e1d839b8.js.map +0 -1
  93. package/dist/chunks/1940.956f7191.js +0 -2
  94. package/dist/chunks/1940.956f7191.js.map +0 -1
  95. package/dist/chunks/2277.d3148cce.js.map +0 -1
  96. package/dist/chunks/2980.c90cc3f1.js +0 -2
  97. package/dist/chunks/2980.c90cc3f1.js.map +0 -1
  98. package/dist/chunks/3171.90b67ac3.js.map +0 -1
  99. package/dist/chunks/3933.e89d1f01.js +0 -2
  100. package/dist/chunks/3933.e89d1f01.js.map +0 -1
  101. package/dist/chunks/4658.fee7130c.js.map +0 -1
  102. package/dist/chunks/4837.e5a0317e.js.map +0 -1
  103. package/dist/chunks/5399.aeb5c01e.js +0 -2
  104. package/dist/chunks/5399.aeb5c01e.js.map +0 -1
  105. package/dist/chunks/5552.c86323fa.js.map +0 -1
  106. package/dist/chunks/5814.71e5fb63.js +0 -3
  107. package/dist/chunks/5814.71e5fb63.js.map +0 -1
  108. package/dist/chunks/5832.d2b22565.js +0 -3
  109. package/dist/chunks/5832.d2b22565.js.map +0 -1
  110. package/dist/chunks/6314.7d3f5d0d.js +0 -2
  111. package/dist/chunks/6314.7d3f5d0d.js.map +0 -1
  112. package/dist/chunks/7218.42259ab1.js.map +0 -1
  113. package/dist/chunks/790.64754a11.js.map +0 -1
  114. package/dist/chunks/871.f5ada237.js.map +0 -1
  115. package/dist/chunks/9080.ea7347c9.js +0 -2
  116. package/dist/chunks/9080.ea7347c9.js.map +0 -1
  117. package/dist/chunks/9559.95f5357b.js +0 -2
  118. package/dist/chunks/9559.95f5357b.js.map +0 -1
  119. package/dist/chunks/9939.3f3445dd.js +0 -3
  120. package/dist/chunks/9939.3f3445dd.js.map +0 -1
  121. package/dist/chunks/chat-conversation.f9dbc32c.js +0 -3
  122. package/dist/chunks/chat-conversation.f9dbc32c.js.map +0 -1
  123. package/dist/chunks/chat-preview.fdb077ce.js +0 -3
  124. package/dist/chunks/chat-preview.fdb077ce.js.map +0 -1
  125. package/dist/chunks/contract-select.5599eb42.js +0 -3
  126. package/dist/chunks/contract-select.5599eb42.js.map +0 -1
  127. package/dist/chunks/generate-snippets-context-menu.436c8cff.js +0 -2
  128. package/dist/chunks/generate-snippets-context-menu.436c8cff.js.map +0 -1
  129. package/dist/chunks/main.80931bec.js +0 -2
  130. package/dist/chunks/page-arch-node.eadf238c.js +0 -3
  131. package/dist/chunks/page-arch-node.eadf238c.js.map +0 -1
  132. package/dist/chunks/pre-generated-preview.6c286032.js +0 -3
  133. package/dist/chunks/pre-generated-preview.6c286032.js.map +0 -1
  134. package/dist/chunks/property-editor.5846d698.js +0 -2
  135. package/dist/chunks/property-editor.5846d698.js.map +0 -1
  136. package/dist/chunks/raw-data-preview.65d60641.js +0 -3
  137. package/dist/chunks/raw-data-preview.65d60641.js.map +0 -1
  138. package/dist/chunks/workbench-action-list.b1c93dbf.js +0 -2
  139. package/dist/chunks/workbench-action-list.b1c93dbf.js.map +0 -1
  140. package/dist/chunks/workbench-history-action.c0f3b4f9.js.map +0 -1
  141. package/dist/chunks/workbench-sidebar.54dbf128.js +0 -2
  142. package/dist/chunks/workbench-sidebar.54dbf128.js.map +0 -1
  143. package/dist/index.14f39395.js +0 -2
  144. package/dist/index.14f39395.js.map +0 -1
  145. /package/dist/chunks/{9939.3f3445dd.js.LICENSE.txt → 5347.556f53c5.js.LICENSE.txt} +0 -0
  146. /package/dist/chunks/{5832.d2b22565.js.LICENSE.txt → 5832.03057e05.js.LICENSE.txt} +0 -0
  147. /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
  148. /package/dist/chunks/{chat-conversation.f9dbc32c.js.LICENSE.txt → chat-conversation.c9597045.js.LICENSE.txt} +0 -0
  149. /package/dist/chunks/{chat-preview.fdb077ce.js.LICENSE.txt → chat-preview.cd48092a.js.LICENSE.txt} +0 -0
  150. /package/dist/chunks/{contract-select.5599eb42.js.LICENSE.txt → contract-select.5a7f5538.js.LICENSE.txt} +0 -0
  151. /package/dist/chunks/{page-arch-node.eadf238c.js.LICENSE.txt → page-arch-node.3d9866d1.js.LICENSE.txt} +0 -0
  152. /package/dist/chunks/{pre-generated-preview.6c286032.js.LICENSE.txt → pre-generated-preview.852d95c5.js.LICENSE.txt} +0 -0
  153. /package/dist/chunks/{raw-data-preview.65d60641.js.LICENSE.txt → raw-data-preview.73c3a680.js.LICENSE.txt} +0 -0
  154. /package/dist/chunks/{workbench-history-action.c0f3b4f9.js.LICENSE.txt → workbench-history-action.2e9d48ac.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/2277.d3148cce.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 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.app : get(context.overrideApp ?? 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","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 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[2980],{4940:(e,t,o)=>{o.d(t,{e:()=>a,l:()=>l});var n=o(8769);const a=(0,n.createContext)({});function l(){return(0,n.useContext)(a)}},7758:(e,t,o)=>{o.d(t,{cU:()=>L});var n=o(9575),a=o(8769),l=o.n(a),r=o(1030),i=o.n(r),c=o(3373),s=o.n(c),d=o(9406),u=o(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=o(4295),b=o(5223);const g=(0,m.wrapBrick)("eo-icon");function v(e){let{data:t,className:o,gap:n,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",o),style:{gap:n}},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:o,isFirst:n,isLast:r,onActionClick:i}=e;const c=n&&"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:o})}),[t.action,o,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:o,searchPlaceholder:n,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)((()=>function(e,t){const o=(e,n,a,l)=>{const r=e.shift();if(r){e.length>0&&e.splice(0,1,`${r}/${e[0]}`);const i=n.find((e=>e&&e.key===r&&e.isContainer));if(i)n[l]=null,o(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?n[l]=c:n.push(c),o(e,c.children,a)}}else n.push(a)};return e.forEach(((t,n)=>{if(t.path){const a=t.path.split("/").filter(Boolean);o(a,e,t,n)}})),e.filter(Boolean)}((null==t?void 0:t.slice())??[],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 o;t.matchedSelf=_(t,W);const n=null===(o=t.children)||void 0===o?void 0:o.map(e).includes(!0);return t.matched=t.matchedSelf||n,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],o=e;for(;o;){if(o.draggable&&(t||o!==e)&&"A"!==o.tagName)return o;o=o.parentElement}},Y=function(e,t,o){let n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;for(const a of e)if(a.data[o]===t&&(n=a),a.children&&(n=Y(a.children,t,o,n)),n)break;return n},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:n}),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 o;if(e.stopPropagation(),!u)return;const n=e.target;null!==(o=n.dataset)&&void 0!==o&&o.container||(k(!0),function(e,t){const o=document.createElement("canvas");document.body.append(o);const n=o.getContext("2d");o.width=n.measureText(t).width+60,o.height=20,o.style.position="absolute",o.style.left="-100%",o.style.zIndex="-100",n.fillStyle="#333333",n.fillRect(0,0,o.width,o.height),n.fillStyle="#999999",n.font="bold 14px Arial",n.fillText(t,20,15),e.dataTransfer.setDragImage(o,0,0)}(e,n.innerText),S(n),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),o=t.dataset.uid;if(t===L||null!=o&&o.includes(":"))return;const{top:n,bottom:a}=t.getBoundingClientRect();let l;const r=m?5:10;return l=e.clientY<n+r?p.top:e.clientY>a-r?p.bottom:m?p.inside:D,{element:t,node:Y(K,o,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=(o,n)=>{for(let a=0;a<o.length;a++){if(o[a].key===n){e=o[a];break}o[a].children&&t(o[a].children,n)}},o=A.dataset.uid;t(K,o);const n=t=>{let o=!1;const{container:a,uid:l}=A.dataset,r=a?e.originKey:l,i=t.filter((e=>(e.children&&(e.children=n(e.children)),e.key===r&&(o=!0),e.key!==w.key)));return o&&i.splice(i.findIndex((e=>e.key===r))+("bottom"===D?1:0),0,w),i},a=function(e){const t=[],o=e=>{e.forEach((e=>{e.isContainer?o(e.children):t.push(i().omit(e,["path","icon"]))}))};return o(e),t}(K),l=w.isContainer?a.find((e=>e.key===w.originKey)):w;l.data.path=e.parentPath||e.path,b({nodes:n(a),curNode:l,overNode:e,status:D})}V()}}},l().createElement(N,{nodes:H,level:1}))))):l().createElement("div",{className:"placeholder"},o))}function N(e){let{nodes:t,level:o}=e;const n=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:o,isFirst:0===t,isLast:t===n}))))}function S(e){let{style:t}=e;const{dragStatus:o}=h(),n={height:22,border:"1px dashed goldenrod",opacity:o===p.inside?"0":"1",...t};return l().createElement("li",{className:"workbenchTree-placeholder-dom",style:n})}function I(e){var t,o,i;let{node:c,level:f,isFirst:m,isLast:b}=e;const g=!(null!==(t=c.children)&&void 0!==t&&t.length),x=c.isContainer,{hoverKey:L,activeKey:I,basePaddingLeft:M,showMatchedNodeOnly:A,fixedActionsFor:B,collapsible:D,collapsedNodes:R,nodeKey:P,clickFactory:F,mouseEnterFactory:T,mouseLeaveFactory:z,contextMenuFactory:$,onNodeToggle:_,getCollapsedId:K,skipNotify:O}=(0,d.o)(),{allow:j,allowDragToRoot:W,onDragStart:H,dragElement:U,dragOverElement:Y,dragStatus:V}=h(),{actions:q,actionsHidden:G,onActionClick:J}=(0,u.l)(),Q=f*w+M-2,X=(0,a.useContext)(C),[Z,ee]=(0,a.useState)(null),[te,oe]=(0,a.useState)(!1),[ne,ae]=(0,a.useState)((null==R?void 0:R.includes(null==K?void 0:K(c)))??!1),le=(0,a.useMemo)((()=>null==T?void 0:T(c)),[T,c]),re=(0,a.useMemo)((()=>null==z?void 0:z(c)),[z,c]),ie=(0,a.useCallback)((e=>{var t;e.stopPropagation(),null==$||null===(t=$(c))||void 0===t||t(e)}),[$,c]),ce=I&&c.key===I,se=(0,a.useMemo)((()=>ce?e=>{var t;null==e||null===(t=e.scrollIntoView)||void 0===t||t.call(e,{block:"center",inline:"center"})}:null),[]),de=(0,a.useMemo)((()=>{return x?c.key:c.data?"mount-point"===(e=c.data).type?e.parent[P]||`${e.parent.$$uid}:${e.mountPoint}`:e[P]||e.$$uid:void 0;var e}),[P,c,x]);(0,a.useEffect)((()=>{V!==p.inside&&[p.top,p.bottom].includes(V)&&ee(V)}),[V]);const ue=(0,a.useMemo)((()=>!!U&&U.dataset.uid===String(de)),[U,de]),pe=(0,a.useMemo)((()=>!!Y&&Y.dataset.uid===String(de)),[Y,de]),fe=(0,a.useMemo)((()=>{let e={opacity:ue?.2:1};return pe&&V===p.inside&&(e={boxShadow:E,background:"rgba(255, 255, 255, 0.1)"}),Object.assign({},e)}),[pe,ue,V]),he=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation(),oe(!0),ae((e=>!e))}),[]),me=(0,a.useCallback)((e=>{e.preventDefault(),e.stopPropagation()}),[]),be=(0,a.useCallback)((e=>{var t;if(!x)return null==F||null===(t=F(c))||void 0===t?void 0:t();he(e)}),[F,he,x,c]);(0,a.useEffect)((()=>{te&&(null==_||_(null==K?void 0:K(c),ne))}),[te,ne,K,c,_]);const ge=D&&!g&&!X;return X&&A&&!c.matched?null:l().createElement(l().Fragment,null,pe&&(W||1!==f)&&Z===p.top&&l().createElement(S,{style:{marginLeft:Q}}),l().createElement("li",(0,n.A)({draggable:j,onDragStart:e=>H(e,c),"data-uid":de,"data-level":f,style:fe},x?{"data-container":x}:{}),l().createElement(k,(0,n.A)({className:"nodeLabelLink",tabIndex:0,onMouseEnter:le,onMouseLeave:re,onContextMenu:ie,onClick:be},O?{url:{pathname:(0,r.get)(c.link,"url","href"),state:{notify:!1}}}:{...(0,r.pick)(c.link,["url","href"])}),l().createElement("span",{className:s()("nodeLabelRow",{active:ce,hover:L&&c.key===L,matched:X&&c.matchedSelf&&!A,fixedActions:B&&[].concat(B).some((e=>(0,r.isMatch)(c.data,e))),collapsed:ge&&ne,collapsible:ge})},l().createElement("span",{className:s()("nodeLabel",{unreachable:c.unreachable}),style:{paddingLeft:Q,color:c.labelColor},ref:se},l().createElement("span",{className:"nodeIconWrapper"},ge&&l().createElement("span",{className:"collapseIcon",onClick:he,onMouseDown:me,title:ne?"Expand":"Collapse",role:"button"},l().createElement(y,{lib:"antd",theme:"outlined",icon:ne?"right":"down"})),l().createElement("span",{className:"nodeIcon"},l().createElement(y,(0,n.A)({},c.icon,{style:{fontSize:null!==(o=c.icon)&&void 0!==o&&o.imgSrc?14:null,color:null===(i=c.icon)||void 0===i?void 0:i.color}})))),l().createElement("span",{className:"nodeName"},c.labelPrefix&&l().createElement("span",{style:c.labelPrefix.style},c.labelPrefix.text),c.name)),l().createElement(v,{className:"nodeActionsBar",data:c.data,isFirst:m,isLast:b,actions:q,onActionClick:J,actionsHidden:G}),c.badge&&l().createElement("span",{className:"badge"},l().createElement(y,(0,n.A)({},c.badge,{style:{color:c.badge.color}}))))),g||l().createElement(N,{nodes:c.children,level:f+1})),pe&&(W||1!==f)&&Z===p.bottom&&l().createElement(S,{style:{marginLeft:Q}}))}},9406:(e,t,o)=>{o.d(t,{N:()=>a,o:()=>l});var n=o(8769);const a=(0,n.createContext)({});function l(){return(0,n.useContext)(a)}},675:(e,t,o)=>{function n(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=>n(e,t)));default:return!1}}o.d(t,{U:()=>n})},6275:(e,t,o)=>{o.d(t,{A:()=>i});var n=o(6758),a=o.n(n),l=o(935),r=o.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,o)=>{o.d(t,{A:()=>i});var n=o(6758),a=o.n(n),l=o(935),r=o.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.c90cc3f1.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/2980.c90cc3f1.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","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","_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 +0,0 @@
1
- {"version":3,"file":"chunks/3171.90b67ac3.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,IAAKA,EACH,OAEF,MAAMC,EAAW,EAAArB,KAAKqB,UAAY,QAElC,IAAI,IAAAC,gBAAeF,EAAMC,GACvB,OAAOD,EAAKC,GAGd,MAAME,EAAkBF,EAASG,MAAM,KAAK,GAC5C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeF,EAAMG,GAAmBH,EAAKG,QAAmBE,EAKzE,MAAMC,EAAS,GAAGH,KAClB,IAAK,MAAMI,KAAOX,OAAOY,KAAKR,GAC5B,GAAIO,EAAIE,WAAWH,GACjB,OAAON,EAAKO,EAGlB,CC1BO,MAAM3B,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 if (!data) {\n return;\n }\n const language = 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","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","key","keys","startsWith"],"sourceRoot":""}
@@ -1,2 +0,0 @@
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:()=>v,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(522),c=o(3078);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",m="check";function v(e){const t=new Set,o=k(t),{customTemplates:n,functions:r}=e.meta??{};return u([e.routes,n],o,b),h(r,o,{matchSource:e=>e.includes(b)}),Array.from(t)}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===m:"Identifier"===t.node.property.type&&t.node.property.name===m))for(const t of n.node.arguments)"Literal"===t.type&&"string"==typeof t.value&&e.add(t.value)}}}}}]);
2
- //# sourceMappingURL=3933.e89d1f01.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/3933.e89d1f01.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 const collection = new Set();\n const beforeVisitPermissions = beforeVisitPermissionsFactory(collection);\n const {\n customTemplates,\n functions\n } = 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","collection","beforeVisitPermissions","beforeVisitPermissionsFactory","customTemplates","meta","routes","from","scanPermissionActionsInAny","arg"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/4658.fee7130c.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 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.app : get(context.overrideApp ?? 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","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 +0,0 @@
1
- {"version":3,"file":"chunks/4837.e5a0317e.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/react-runtime/dist/esm/ReactUseBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentTheme.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRecentApps.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useCurrentApp.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useRouteRender.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgsDefaults.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/fetch.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProvider.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useProvider/useProviderArgs.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/asyncWrapBrick.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useNavConfig.js","webpack:///../../node_modules/@next-core/react-runtime/dist/esm/useLazyWrapBrick.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { __secret_internals, handleHttpError, getV2RuntimeFromDll } from \"@next-core/runtime\";\n// Note: always synchronize code in LegacyUseBrick:\n// `bricks/v2-adapter/src/data-providers/legacy-brick-kit/getLegacyUseBrick.ts`\nlet ReactUseBrick = function ReactUseBrick(_ref) {\n let {\n useBrick,\n data,\n errorBoundary,\n refCallback,\n ignoredCallback\n } = _ref;\n const [renderResult, setRenderResult] = useState(null);\n const mountResult = useRef();\n const [renderKey, setRenderKey] = useState();\n const IdCounterRef = useRef(0);\n const initialRenderId = useMemo(() => {\n var _secret_internals$ge;\n return (_secret_internals$ge = __secret_internals.getRenderId) === null || _secret_internals$ge === void 0 ? void 0 : _secret_internals$ge.call(__secret_internals);\n }, []);\n useEffect(() => {\n let ignore = false;\n async function init() {\n try {\n const newRender = await __secret_internals.renderUseBrick(useBrick, data, errorBoundary);\n if (ignore) {\n return;\n }\n setRenderResult(newRender);\n setRenderKey(getUniqueId(IdCounterRef));\n } catch (error) {\n if (!ignore && isTheSameRender(initialRenderId)) {\n // eslint-disable-next-line no-console\n console.error(\"Render useBrick failed:\", useBrick, \"with data:\", data);\n handleHttpError(error);\n }\n }\n }\n init();\n return () => {\n ignore = true;\n };\n }, [data, useBrick, initialRenderId, errorBoundary]);\n const _refCallback = useCallback(element => {\n if (element) {\n mountResult.current = __secret_internals.mountUseBrick(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n renderResult, element);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n __secret_internals.unmountUseBrick(renderResult, mountResult.current);\n mountResult.current = undefined;\n }\n refCallback === null || refCallback === void 0 || refCallback(element);\n }, [refCallback, renderResult]);\n if (!renderResult) {\n // Fallback when loading/\n return null;\n // return <span>🌀 Loading...</span>;\n }\n const {\n tagName\n } = renderResult;\n if (tagName === null) {\n ignoredCallback === null || ignoredCallback === void 0 || ignoredCallback();\n return null;\n }\n const WebComponent = tagName;\n return /*#__PURE__*/React.createElement(WebComponent, {\n key: renderKey,\n ref: _refCallback\n });\n};\nfunction getUniqueId(ref) {\n return ++ref.current;\n}\nfunction isTheSameRender(initialRenderId) {\n var _secret_internals$ge2;\n const newRenderId = (_secret_internals$ge2 = __secret_internals.getRenderId) === null || _secret_internals$ge2 === void 0 ? void 0 : _secret_internals$ge2.call(__secret_internals);\n return !initialRenderId || !newRenderId || initialRenderId === newRenderId;\n}\nlet ReactUseMultipleBricks = function ReactUseMultipleBricks(_ref2) {\n let {\n useBrick,\n data,\n errorBoundary\n } = _ref2;\n if (Array.isArray(useBrick)) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, useBrick.map((item, index) => /*#__PURE__*/React.createElement(ReactUseBrick, {\n key: index,\n useBrick: item,\n data: data,\n errorBoundary: errorBoundary\n })));\n }\n return /*#__PURE__*/React.createElement(ReactUseBrick, {\n useBrick: useBrick,\n data: data,\n errorBoundary: errorBoundary\n });\n};\n\n// Make v3 bricks compatible with Brick Next v2.\n// istanbul ignore next\nconst v2Kit = getV2RuntimeFromDll();\n// istanbul ignore next\nif (v2Kit) {\n const {\n SingleBrickAsComponentFactory,\n BrickAsComponentFactory\n } = v2Kit;\n if (SingleBrickAsComponentFactory && BrickAsComponentFactory) {\n ReactUseBrick = SingleBrickAsComponentFactory(React);\n ReactUseMultipleBricks = BrickAsComponentFactory(React);\n }\n}\nexport { ReactUseBrick, ReactUseMultipleBricks };\n//# sourceMappingURL=ReactUseBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getCurrentTheme } from \"@next-core/runtime\";\nexport function useCurrentTheme() {\n const [currentTheme, setCurrentTheme] = useState(getCurrentTheme);\n useEffect(() => {\n const listenToThemeChange = event => {\n setCurrentTheme(event.detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n return currentTheme;\n}\n//# sourceMappingURL=useCurrentTheme.js.map","import React from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useRecentApps() {\n const [recentApps, setRecentApps] = React.useState(() => getRuntime().getRecentApps());\n React.useEffect(() => {\n const listener = event => {\n setRecentApps(event.detail);\n };\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n return recentApps;\n}\n//# sourceMappingURL=useRecentApps.js.map","import { useRecentApps } from \"./useRecentApps.js\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp() {\n return useRecentApps().currentApp;\n}\n//# sourceMappingURL=useCurrentApp.js.map","import React from \"react\";\nexport function useRouteRender() {\n const [routeRender, setRouteRender] = React.useState(null);\n React.useEffect(() => {\n const listener = event => {\n setRouteRender(event.detail);\n };\n window.addEventListener(\"route.render\", listener);\n return () => window.removeEventListener(\"route.render\", listener);\n }, []);\n return routeRender;\n}\n//# sourceMappingURL=useRouteRender.js.map","export const useProviderArgsDefaults = {\n provider: \"\",\n customOptions: {\n onError: () => {\n /* Do nothing.. */\n },\n transform: (oldData, newData) => newData,\n data: undefined,\n loading: false,\n suspense: false,\n cache: true\n },\n dependencies: undefined\n};\nexport default Object.entries(useProviderArgsDefaults).reduce((acc, _ref) => {\n let [key, value] = _ref;\n if (Object.prototype.toString.call(value) === \"[object Object]\") return {\n ...acc,\n ...value\n };\n return {\n ...acc,\n [key]: value\n };\n}, {});\n//# sourceMappingURL=useProviderArgsDefaults.js.map","import { fetchByProvider } from \"@next-core/runtime\";\nconst cacheMap = new Map();\nfunction isObj(v) {\n return typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\nfunction isString(v) {\n return typeof v === \"string\";\n}\nfunction buildSortedCacheKey(provider) {\n const sortObj = obj => Object.keys(obj).sort().map(k => ({\n [k]: obj[k]\n }));\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n try {\n const sortedArgs = isObj(args) ? sortObj(args) : args.map(arg => isString(arg) ? arg : sortObj(arg));\n return JSON.stringify({\n provider,\n args: sortedArgs\n });\n } catch (e) {\n return JSON.stringify({\n provider,\n args\n });\n }\n}\nexport default async function fetch(provider, cache, args) {\n let promise;\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const cacheKey = buildSortedCacheKey(provider, ...args);\n !cache && cacheMap.has(cacheKey) && cacheMap.delete(cacheKey);\n if (cacheMap.has(cacheKey)) {\n promise = cacheMap.get(cacheKey);\n } else {\n promise = (() => {\n return fetchByProvider(provider, args);\n })();\n cache && cacheMap.set(cacheKey, promise);\n }\n return promise;\n}\n//# sourceMappingURL=fetch.js.map","import { useCallback, useEffect, useMemo, useReducer, useRef, useState } from \"react\";\nimport useProviderArgs from \"./useProviderArgs.js\";\nimport { isObject, isString } from \"lodash\";\nimport fetch from \"./fetch.js\";\nexport function useProvider() {\n const {\n provider,\n customOptions,\n dependencies,\n requestInit\n } = useProviderArgs(...arguments);\n const {\n onError,\n transform,\n suspense,\n cache,\n ...defaults\n } = customOptions;\n const [loading, setLoading] = useState(defaults.loading);\n const suspenseStatus = useRef(\"pending\");\n const suspender = useRef();\n const mounted = useRef(false);\n const error = useRef();\n const response = useRef();\n const data = useRef(defaults.data);\n const forceUpdate = useReducer(() => ({}), [])[1];\n const doFetch = useCallback(async (provider, providerArgs) => {\n try {\n error.current = undefined;\n if (!suspense) setLoading(true);\n const newRes = await fetch(provider, cache, providerArgs);\n response.current = newRes;\n data.current = transform(data.current, newRes);\n } catch (e) {\n error.current = e;\n data.current = undefined;\n }\n if (!suspense) setLoading(false);\n if (error.current) onError(error.current);\n return data.current;\n }, [provider, customOptions, dependencies, requestInit, suspense, transform, defaults.data, onError, cache]);\n const makeFetch = useCallback(async (providerOrBody, args) => {\n let providerStr = provider;\n let providerArgs = [];\n if (isString(providerOrBody)) {\n providerStr = providerOrBody;\n }\n if (isObject(providerOrBody)) {\n providerArgs = providerOrBody;\n } else if (isObject(args)) {\n providerArgs = args;\n }\n if (suspense) {\n return (async () => {\n suspender.current = doFetch(providerStr, providerArgs).then(newData => {\n suspenseStatus.current = \"success\";\n return newData;\n }, error => {\n /* istanbul ignore next */\n suspenseStatus.current = \"error\";\n error.current = error;\n return error;\n });\n forceUpdate();\n return await suspender.current;\n })();\n }\n return doFetch(providerStr, providerArgs);\n }, [doFetch]);\n const request = useMemo(() => Object.defineProperties({\n query: makeFetch\n }, {\n loading: {\n get() {\n return loading;\n }\n },\n data: {\n get() {\n return data.current;\n }\n },\n error: {\n get() {\n return error.current;\n }\n }\n }), [makeFetch]);\n\n // onMount/onUpdate\n useEffect(() => {\n mounted.current = true;\n if (Array.isArray(dependencies) && provider) {\n request.query(provider, requestInit.args);\n }\n return () => mounted.current = false;\n }, dependencies);\n if (suspense && suspender.current) {\n switch (suspenseStatus.current) {\n case \"pending\":\n throw suspender.current;\n /* istanbul ignore next */\n case \"error\":\n throw error.current;\n }\n }\n return Object.assign([request, response.current, loading, error.current], {\n request,\n ...request,\n response: response.current,\n data: data.current,\n loading,\n error: error.current\n });\n}\n//# sourceMappingURL=useProvider.js.map","import { useMemo } from \"react\";\nimport defaults, { useProviderArgsDefaults } from \"./useProviderArgsDefaults.js\";\nimport { isObject } from \"lodash\";\nexport default function useProviderArgs(providerOrParamsOrGlobalOptions, globalOptionsOrDeps, deps) {\n const provider = useMemo(() => {\n if (typeof providerOrParamsOrGlobalOptions === \"string\") {\n return providerOrParamsOrGlobalOptions;\n }\n return useProviderArgsDefaults.provider;\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const options = useMemo(() => {\n let localOptions = {};\n if (isObject(providerOrParamsOrGlobalOptions)) {\n localOptions = providerOrParamsOrGlobalOptions;\n } else if (isObject(globalOptionsOrDeps)) {\n localOptions = globalOptionsOrDeps;\n }\n return {\n ...defaults,\n ...localOptions\n };\n }, [providerOrParamsOrGlobalOptions, globalOptionsOrDeps]);\n const requestInit = useMemo(() => {\n const customOptionKeys = [...Object.keys(useProviderArgsDefaults), ...Object.keys(useProviderArgsDefaults.customOptions)];\n const {\n args = null,\n ...restOptions\n } = Object.keys(options).reduce((acc, key) => {\n if (!customOptionKeys.includes(key)) acc[key] = options[key];\n return acc;\n }, {});\n return {\n options: {\n ...restOptions\n },\n args\n };\n }, [options]);\n const dependencies = useMemo(() => {\n if (Array.isArray(globalOptionsOrDeps)) return globalOptionsOrDeps;\n if (Array.isArray(deps)) return deps;\n return defaults.dependencies;\n }, [globalOptionsOrDeps, deps]);\n const loading = options.loading || Array.isArray(dependencies);\n const customOptions = useMemo(() => {\n const customOptionKeys = Object.keys(useProviderArgsDefaults.customOptions);\n const customOptions = customOptionKeys.reduce((opts, key) => {\n opts[key] = options[key];\n return opts;\n }, {});\n return {\n ...customOptions,\n loading\n };\n }, [options]);\n return {\n provider,\n customOptions,\n requestInit,\n dependencies\n };\n}\n//# sourceMappingURL=useProviderArgs.js.map","import { __secret_internals } from \"@next-core/runtime\";\nimport { wrapBrick } from \"@next-core/react-element\";\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\n/**\n * 使用异步加载的方式包装一个构件,可用于按条件渲染的构件依赖。\n *\n * 例如提供复杂弹层内容的按钮构件,其内容需要使用到一些大型构件,那么这些依赖可以使用 asyncWrapBrick,\n * 这样只有在需要时才会加载这些依赖的构件。\n */\n\nexport async function asyncWrapBrick(brickName, eventsMapping) {\n await __secret_internals.loadBricks([brickName]);\n return wrapBrick(brickName, eventsMapping);\n}\n//# sourceMappingURL=asyncWrapBrick.js.map","import { useEffect, useState } from \"react\";\nimport { getRuntime } from \"@next-core/runtime\";\nexport function useNavConfig() {\n const [navConfig, setNavConfig] = useState(() => getRuntime().getNavConfig());\n useEffect(() => {\n const listener = event => {\n setNavConfig(event.detail);\n };\n window.addEventListener(\"navConfig.change\", listener);\n return () => window.removeEventListener(\"navConfig.change\", listener);\n }, []);\n return navConfig;\n}\n//# sourceMappingURL=useNavConfig.js.map","import { lazy, useMemo } from \"react\";\nimport { asyncWrapBrick } from \"./asyncWrapBrick.js\";\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\n/**\n * 使用 `React.lazy` 包装一个异步加载的构件。\n *\n * ```jsx\n * const DepComponent = useLazyWrapBrick(\"async-dep\");\n * return (\n * <Suspense fallback=\"Loading...\">\n * <DepComponent {...props} />\n * </Suspense>\n * );\n * ```\n */\n\nexport function useLazyWrapBrick(brickName, eventsMapping) {\n return useMemo(() => {\n if (brickName != null) {\n return /*#__PURE__*/lazy(async () => ({\n default: await asyncWrapBrick(brickName, eventsMapping)\n }));\n }\n return null;\n }, [brickName, eventsMapping]);\n}\n//# sourceMappingURL=useLazyWrapBrick.js.map"],"names":["ReactUseBrick","_ref","useBrick","data","errorBoundary","refCallback","ignoredCallback","renderResult","setRenderResult","useState","mountResult","useRef","renderKey","setRenderKey","IdCounterRef","initialRenderId","useMemo","_secret_internals$ge","__secret_internals","getRenderId","call","useEffect","ignore","async","newRender","renderUseBrick","current","error","_secret_internals$ge2","newRenderId","isTheSameRender","console","handleHttpError","init","_refCallback","useCallback","element","mountUseBrick","unmountUseBrick","undefined","tagName","WebComponent","key","ref","ReactUseMultipleBricks","_ref2","Array","isArray","map","item","index","v2Kit","getV2RuntimeFromDll","SingleBrickAsComponentFactory","BrickAsComponentFactory","useCurrentTheme","currentTheme","setCurrentTheme","getCurrentTheme","listenToThemeChange","event","detail","window","addEventListener","removeEventListener","useRecentApps","recentApps","setRecentApps","getRuntime","getRecentApps","listener","useCurrentApp","currentApp","useRouteRender","routeRender","setRouteRender","useProviderArgsDefaults","provider","customOptions","onError","transform","oldData","newData","loading","suspense","cache","dependencies","Object","entries","reduce","acc","value","prototype","toString","cacheMap","Map","useProvider","requestInit","providerOrParamsOrGlobalOptions","globalOptionsOrDeps","deps","options","localOptions","isObject","customOptionKeys","keys","args","restOptions","includes","opts","useProviderArgs","arguments","defaults","setLoading","suspenseStatus","suspender","mounted","response","forceUpdate","useReducer","doFetch","providerArgs","newRes","promise","cacheKey","sortObj","obj","sort","k","_len","length","_key","sortedArgs","v","arg","isString","JSON","stringify","e","buildSortedCacheKey","has","delete","get","fetchByProvider","set","fetch","makeFetch","providerOrBody","providerStr","then","request","defineProperties","query","assign","asyncWrapBrick","brickName","eventsMapping","loadBricks","wrapBrick","useNavConfig","navConfig","setNavConfig","getNavConfig","useLazyWrapBrick","lazy","default"],"sourceRoot":""}
@@ -1,2 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_next_bricks_visual_builder=globalThis.webpackChunk_next_bricks_visual_builder||[]).push([[5399],{5399:(e,t,r)=>{r.r(t),r.d(t,{BrickLoadError:()=>k,enqueueStableLoadBricks:()=>p,enqueueStableLoadProcessors:()=>w,flushStableLoadBricks:()=>f,loadBricksImperatively:()=>m,loadEditorsImperatively:()=>v,loadProcessorsImperatively:()=>h,loadScript:()=>o,loadSharedModule:()=>a,loadStyle:()=>i});const s=new Map;function n(e,t,r,o){if(Array.isArray(t))return Promise.all(t.map((t=>n(e,t,r))));const i=r&&!/^https?:/.test(t)?`${r}${t}`:t,a=s.get(i);if(a)return a;const c=new Promise(((t,r)=>{const s=()=>{window.dispatchEvent(new Event("request.end"))},n=document.createElement("style"===e?"link":"script");"script"===e?Object.assign(n,{type:"text/javascript",async:!0,...o,src:i}):Object.assign(n,{rel:"stylesheet",...o,href:i}),n.onload=()=>{t(i),s()},n.onerror=e=>{r(e),s()};const a=document.currentScript||document.getElementsByTagName("script")[0];a.parentNode.insertBefore(n,a),window.dispatchEvent(new Event("request.start"))}));return s.set(i,c),c}function o(e,t,r){return n("script",e,t,r)}function i(e,t,r){return n("style",e,t,r)}async function a(e,t){await r.I("default");const s=window[e];return await s.init(r.S.default),(await s.get(t))()}let c,l,u=!1;const d=new Promise(((e,t)=>{c=e,l=t}));function f(){u||c()}function p(e,t){return S($("bricks",e,t))}function w(e,t){return S($("processors",e,t))}async function m(e,t){const r=$("bricks",e,t);return f(),S(r)}function h(e,t){const r=$("processors",e,t);return f(),S(r)}function v(e,t){const r=$("editors",e,t);return f(),S(r)}class k extends Error{constructor(e){super(e),this.name="BrickLoadError",Error.captureStackTrace&&Error.captureStackTrace(this,k)}}let b;const y="v2-adapter.load-bricks";function P(e,t,r){const s=new Map,n=new Set,o=t=>{var i;if(n.has(t))return;let a,c,l;if(n.add(t),"editors"===e){l=t;for(const e of r.values()){var u;null!==(u=e.propertyEditors??e.editors)&&void 0!==u&&u.some((e=>e===l))&&(a=e)}}else if("processors"===e||t.includes(".")){[c,l]=t.split(".");const s=`bricks/${"processors"===e?(p=c,p.replace(/[A-Z]/g,(e=>`-${e[0].toLocaleLowerCase()}`)).replace(/_[0-9]/g,(e=>`-${e[1]}`))):c}`;a=r.get(s)}else{let e;l=t;for(const s of r.values()){var d;if(null!==(d=s.elements)&&void 0!==d&&d.some((e=>e===l))){var f;if(null===(f=s.deprecatedElements)||void 0===f||!f.includes(t)){a=s;break}e=s}}!a&&e&&(a=e)}var p;if(!a)return void console.error(`Package for ${t} not found.`);let w=s.get(a);w||(w=[],s.set(a,w)),w.push({fullName:t,lastName:l});const m=null===(i=a.dependencies)||void 0===i?void 0:i[t];if(m)for(const e of m)o(e)};for(const e of t)o(e);return s}async function E(e,t,r){const s=`${"processors"===e||"editors"===e?`./${e}/`:"./"}${"editors"===e?r.fullName:r.lastName}`;try{await a(t,s)}catch(t){throw console.error(t),new k(`Load ${e} of "${r.fullName}" failed: ${null==t?void 0:t.message}`)}}function g(e,t,r){return t.map((async t=>(await o(t.filePath,window.PUBLIC_ROOT??""),await d,Promise.all(r.get(t).map((r=>E(e,t.id,r)))))))}async function $(e,t,r){const s=new Map;for(const e of r){const t=e.id||_(e.filePath);s.set(t,e)}const n=P(e,t,s);let i;const a=[],d=[];let f;for(const e of n.keys())if(e.id)"bricks/basic"===e.id?i=e:d.push(e);else if(a.push(e),f=s.get("bricks/v2-adapter"),!f)throw new Error("Using v2 bricks, but v2-adapter not found");const p=f;let w;const m=i;if(m){const t=o(m.filePath,window.PUBLIC_ROOT??"");u||(u=!0,t.then((()=>Promise.resolve())).then(c,l)),w=t.then((()=>Promise.all(n.get(m).map((t=>E(e,m.id,t))))))}const h=[w].concat(g(e,d,n));if(p&&a.length>0){if(!b){const e=P("bricks",[y],s),t=[...e.keys()];b=(async()=>(await Promise.all(g("bricks",t,e)),document.createElement(y)))()}h.push(b.then((t=>Promise.all(a.map((s=>{const o=_(s.filePath).split("/")[1];return t.resolve(p.filePath,"editors"===e?s.propertyEditorsJsFilePath??s.filePath:s.filePath,"bricks"===e?n.get(s).map((e=>`${o}.${e.lastName}`)):[],s.dll,r)}))))))}await Promise.all(h)}async function S(e){window.dispatchEvent(new Event("request.start"));try{await e}finally{window.dispatchEvent(new Event("request.end"))}}function _(e){return e.split("/").slice(0,2).join("/")}}}]);
2
- //# sourceMappingURL=5399.aeb5c01e.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/5399.aeb5c01e.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/loader/dist/esm/loadScriptOrStyle.js","webpack:///../../node_modules/@next-core/loader/dist/esm/loadScript.js","webpack:///../../node_modules/@next-core/loader/dist/esm/loadStyle.js","webpack:///../../node_modules/@next-core/loader/dist/esm/loadSharedModule.js","webpack:///../../node_modules/@next-core/loader/dist/esm/stableLoadBricks.js"],"sourcesContent":["const cache = new Map();\nexport default function loadScriptOrStyle(type, src, prefix, attrs) {\n if (Array.isArray(src)) {\n return Promise.all(src.map(item => loadScriptOrStyle(type, item, prefix)));\n }\n const fixedSrc = prefix && !/^https?:/.test(src) ? `${prefix}${src}` : src;\n const cachedPromise = cache.get(fixedSrc);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = new Promise((resolve, reject) => {\n const end = () => {\n window.dispatchEvent(new Event(\"request.end\"));\n };\n const element = document.createElement(type === \"style\" ? \"link\" : \"script\");\n if (type === \"script\") {\n Object.assign(element, {\n type: \"text/javascript\",\n async: true,\n ...attrs,\n src: fixedSrc\n });\n } else {\n Object.assign(element, {\n rel: \"stylesheet\",\n ...attrs,\n href: fixedSrc\n });\n }\n element.onload = () => {\n resolve(fixedSrc);\n end();\n };\n element.onerror = e => {\n reject(e);\n end();\n };\n const firstScript = document.currentScript || document.getElementsByTagName(\"script\")[0];\n firstScript.parentNode.insertBefore(element, firstScript);\n window.dispatchEvent(new Event(\"request.start\"));\n });\n cache.set(fixedSrc, promise);\n return promise;\n}\n//# sourceMappingURL=loadScriptOrStyle.js.map","import loadScriptOrStyle from \"./loadScriptOrStyle.js\";\nexport default function loadScript(src, prefix, attrs) {\n return loadScriptOrStyle(\"script\", src, prefix, attrs);\n}\n//# sourceMappingURL=loadScript.js.map","import loadScriptOrStyle from \"./loadScriptOrStyle.js\";\nexport default function loadStyle(src, prefix, attrs) {\n return loadScriptOrStyle(\"style\", src, prefix, attrs);\n}\n//# sourceMappingURL=loadStyle.js.map","// https://github.com/module-federation/module-federation-examples/blob/eda9493f3991a423479fd834cfb1d7b241d9d1f0/advanced-api/dynamic-remotes/app1/src/App.js\nexport default async function loadSharedModule(scope, module) {\n // Initializes the share scope. This fills it with known provided modules from this build and all remotes\n await __webpack_init_sharing__(\"default\");\n const container = window[scope]; // or get the container somewhere else\n // Initialize the container, it may provide shared modules\n await container.init(__webpack_share_scopes__.default);\n const factory = await container.get(module);\n return factory();\n}\n//# sourceMappingURL=loadSharedModule.js.map","import loadScript from \"./loadScript.js\";\nimport loadSharedModule from \"./loadSharedModule.js\";\nlet resolveBasicPkg;\nlet rejectBasicPkg;\nlet basicPkgWillBeResolved = false;\nconst waitBasicPkg = new Promise((resolve, reject) => {\n resolveBasicPkg = resolve;\n rejectBasicPkg = reject;\n});\nexport function flushStableLoadBricks() {\n if (!basicPkgWillBeResolved) {\n resolveBasicPkg();\n }\n}\n\n/**\n * When loading bundles with webpack module federation concurrently, if\n * these bundles share some modules, webpack will load a singleton module\n * if versions are matched. Webpack will use the first bundle who started\n * to init the shared scope. Generally which bundle to use for a specific\n * module, does not matter. However, it may cause flaky result since the\n * shared module may from different bundles which maybe not exactly the\n * same, especially developers declare dependencies incorrectly sometimes.\n * So in order to make it less flaky, we try to make a BASIC package takes\n * precedence over others. We will always load the shared modules from the\n * basic package bundle if it contains the shared modules.\n */\nexport function enqueueStableLoadBricks(bricks, brickPackages) {\n const promise = enqueueStableLoad(\"bricks\", bricks, brickPackages);\n return dispatchRequestStatus(promise);\n}\nexport function enqueueStableLoadProcessors(processors, brickPackages) {\n const promise = enqueueStableLoad(\"processors\", processors, brickPackages);\n return dispatchRequestStatus(promise);\n}\nexport async function loadBricksImperatively(bricks, brickPackages) {\n const promise = enqueueStableLoad(\"bricks\", bricks, brickPackages);\n flushStableLoadBricks();\n return dispatchRequestStatus(promise);\n}\nexport function loadProcessorsImperatively(processors, brickPackages) {\n const promise = enqueueStableLoad(\"processors\", processors, brickPackages);\n flushStableLoadBricks();\n return dispatchRequestStatus(promise);\n}\nexport function loadEditorsImperatively(editors, brickPackages) {\n const promise = enqueueStableLoad(\"editors\", editors, brickPackages);\n flushStableLoadBricks();\n return dispatchRequestStatus(promise);\n}\nexport class BrickLoadError extends Error {\n constructor(message) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(message);\n this.name = \"BrickLoadError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrickLoadError);\n }\n }\n}\nlet v2AdapterPromise;\nconst V2_ADAPTER_LOAD_BRICKS = \"v2-adapter.load-bricks\";\n// Get brick/processor items including their dependencies\nfunction getItemsByPkg(type, list, brickPackagesMap) {\n const itemsByPkg = new Map();\n const listToLoad = new Set();\n const add = item => {\n var _pkg$dependencies;\n if (listToLoad.has(item)) {\n return;\n }\n listToLoad.add(item);\n let pkg;\n let namespace;\n let lastName;\n if (type === \"editors\") {\n lastName = item;\n for (const p of brickPackagesMap.values()) {\n var _ref;\n if ((_ref = p.propertyEditors ?? p.editors) !== null && _ref !== void 0 && _ref.some(e => e === lastName)) {\n pkg = p;\n }\n }\n } else if (type === \"processors\" || item.includes(\".\")) {\n [namespace, lastName] = item.split(\".\");\n const pkgId = `bricks/${type === \"processors\" ? getProcessorPackageName(namespace) : namespace}`;\n pkg = brickPackagesMap.get(pkgId);\n } else {\n lastName = item;\n let deprecatedBrickInThisPkg;\n for (const p of brickPackagesMap.values()) {\n var _p$elements;\n if ((_p$elements = p.elements) !== null && _p$elements !== void 0 && _p$elements.some(e => e === lastName)) {\n var _p$deprecatedElements;\n if ((_p$deprecatedElements = p.deprecatedElements) !== null && _p$deprecatedElements !== void 0 && _p$deprecatedElements.includes(item)) {\n deprecatedBrickInThisPkg = p;\n } else {\n pkg = p;\n break;\n }\n }\n }\n if (!pkg && deprecatedBrickInThisPkg) {\n pkg = deprecatedBrickInThisPkg;\n }\n }\n if (!pkg) {\n // eslint-disable-next-line no-console\n console.error(`Package for ${item} not found.`);\n return;\n }\n let groupItems = itemsByPkg.get(pkg);\n if (!groupItems) {\n groupItems = [];\n itemsByPkg.set(pkg, groupItems);\n }\n groupItems.push({\n fullName: item,\n lastName\n });\n\n // Load their dependencies too\n const deps = (_pkg$dependencies = pkg.dependencies) === null || _pkg$dependencies === void 0 ? void 0 : _pkg$dependencies[item];\n if (deps) {\n for (const dep of deps) {\n add(dep);\n }\n }\n };\n for (const item of list) {\n add(item);\n }\n return itemsByPkg;\n}\nasync function loadBrickModule(type, pkgId, item) {\n const moduleName = `${type === \"processors\" || type === \"editors\" ? `./${type}/` : \"./\"}${type === \"editors\" ? item.fullName : item.lastName}`;\n try {\n await loadSharedModule(pkgId, moduleName);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n throw new BrickLoadError(`Load ${type} of \"${item.fullName}\" failed: ${error === null || error === void 0 ? void 0 : error.message}`);\n }\n}\nfunction loadRestBricks(type, pkgs, itemsMap) {\n return pkgs.map(async pkg => {\n await loadScript(pkg.filePath, window.PUBLIC_ROOT ?? \"\");\n await waitBasicPkg;\n return Promise.all(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n itemsMap.get(pkg).map(item => loadBrickModule(type, pkg.id, item)));\n });\n}\nasync function enqueueStableLoad(type, list, brickPackages) {\n const brickPackagesMap = new Map();\n for (const pkg of brickPackages) {\n const pkgId = pkg.id || getPkgIdByFilePath(pkg.filePath);\n brickPackagesMap.set(pkgId, pkg);\n }\n const itemsByPkg = getItemsByPkg(type, list, brickPackagesMap);\n let foundBasicPkg;\n const v2Packages = [];\n const v3PackagesOtherThanBasic = [];\n let maybeV2Adapter;\n for (const pkg of itemsByPkg.keys()) {\n if (pkg.id) {\n if (pkg.id === \"bricks/basic\") {\n foundBasicPkg = pkg;\n } else {\n v3PackagesOtherThanBasic.push(pkg);\n }\n } else {\n // Brick packages of v2 has no `id`\n v2Packages.push(pkg);\n maybeV2Adapter = brickPackagesMap.get(\"bricks/v2-adapter\");\n if (!maybeV2Adapter) {\n throw new Error(\"Using v2 bricks, but v2-adapter not found\");\n }\n }\n }\n const v2Adapter = maybeV2Adapter;\n let basicPkgPromise;\n const basicPkg = foundBasicPkg;\n if (basicPkg) {\n const tempPromise = loadScript(basicPkg.filePath, window.PUBLIC_ROOT ?? \"\");\n // Packages other than BASIC will wait for an extra micro-task tick.\n if (!basicPkgWillBeResolved) {\n basicPkgWillBeResolved = true;\n tempPromise.then(() => Promise.resolve()).then(resolveBasicPkg, rejectBasicPkg);\n }\n basicPkgPromise = tempPromise.then(() => Promise.all(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n itemsByPkg.get(basicPkg).map(item => loadBrickModule(type, basicPkg.id, item))));\n }\n const pkgPromises = [basicPkgPromise].concat(loadRestBricks(type, v3PackagesOtherThanBasic, itemsByPkg));\n if (v2Adapter && v2Packages.length > 0) {\n if (!v2AdapterPromise) {\n // Load `v2-adapter.load-bricks` and its dependencies\n const v2AdapterItemsByPkg = getItemsByPkg(\"bricks\", [V2_ADAPTER_LOAD_BRICKS], brickPackagesMap);\n const v2AdapterPackages = [...v2AdapterItemsByPkg.keys()];\n const loadV2Adapter = async () => {\n await Promise.all(loadRestBricks(\"bricks\", v2AdapterPackages, v2AdapterItemsByPkg));\n return document.createElement(V2_ADAPTER_LOAD_BRICKS);\n };\n v2AdapterPromise = loadV2Adapter();\n }\n pkgPromises.push(v2AdapterPromise.then(adapter => Promise.all(v2Packages.map(pkg => {\n const pkgId = getPkgIdByFilePath(pkg.filePath);\n const pkgNamespace = pkgId.split(\"/\")[1];\n return adapter.resolve(v2Adapter.filePath, type === \"editors\" ? pkg.propertyEditorsJsFilePath ?? pkg.filePath : pkg.filePath, type === \"bricks\" ?\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n itemsByPkg.get(pkg).map(item => `${pkgNamespace}.${item.lastName}`) : [], pkg.dll,\n // Todo: remove `brickPackages` as an argument\n brickPackages);\n }))));\n }\n await Promise.all(pkgPromises);\n}\nasync function dispatchRequestStatus(promise) {\n window.dispatchEvent(new Event(\"request.start\"));\n try {\n await promise;\n } finally {\n window.dispatchEvent(new Event(\"request.end\"));\n }\n}\nfunction getProcessorPackageName(camelPackageName) {\n return camelPackageName.replace(/[A-Z]/g, match => `-${match[0].toLocaleLowerCase()}`).replace(/_[0-9]/g, match => `-${match[1]}`);\n}\nfunction getPkgIdByFilePath(filePath) {\n return filePath.split(\"/\").slice(0, 2).join(\"/\");\n}\n//# sourceMappingURL=stableLoadBricks.js.map"],"names":["cache","Map","loadScriptOrStyle","type","src","prefix","attrs","Array","isArray","Promise","all","map","item","fixedSrc","test","cachedPromise","get","promise","resolve","reject","end","window","dispatchEvent","Event","element","document","createElement","Object","assign","async","rel","href","onload","onerror","e","firstScript","currentScript","getElementsByTagName","parentNode","insertBefore","set","loadScript","loadStyle","loadSharedModule","scope","module","container","init","default","resolveBasicPkg","rejectBasicPkg","basicPkgWillBeResolved","waitBasicPkg","flushStableLoadBricks","enqueueStableLoadBricks","bricks","brickPackages","dispatchRequestStatus","enqueueStableLoad","enqueueStableLoadProcessors","processors","loadBricksImperatively","loadProcessorsImperatively","loadEditorsImperatively","editors","BrickLoadError","Error","constructor","message","super","this","name","captureStackTrace","v2AdapterPromise","V2_ADAPTER_LOAD_BRICKS","getItemsByPkg","list","brickPackagesMap","itemsByPkg","listToLoad","Set","add","_pkg$dependencies","has","pkg","namespace","lastName","p","values","_ref","propertyEditors","some","includes","split","pkgId","camelPackageName","replace","match","toLocaleLowerCase","deprecatedBrickInThisPkg","_p$elements","elements","_p$deprecatedElements","deprecatedElements","console","error","groupItems","push","fullName","deps","dependencies","dep","loadBrickModule","moduleName","loadRestBricks","pkgs","itemsMap","filePath","PUBLIC_ROOT","id","getPkgIdByFilePath","foundBasicPkg","v2Packages","v3PackagesOtherThanBasic","maybeV2Adapter","keys","v2Adapter","basicPkgPromise","basicPkg","tempPromise","then","pkgPromises","concat","length","v2AdapterItemsByPkg","v2AdapterPackages","loadV2Adapter","adapter","pkgNamespace","propertyEditorsJsFilePath","dll","slice","join"],"sourceRoot":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunks/5552.c86323fa.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,IAAKA,EACH,OAEF,MAAMC,EAAW,EAAArB,KAAKqB,UAAY,QAElC,IAAI,IAAAC,gBAAeF,EAAMC,GACvB,OAAOD,EAAKC,GAGd,MAAME,EAAkBF,EAASG,MAAM,KAAK,GAC5C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeF,EAAMG,GAAmBH,EAAKG,QAAmBE,EAKzE,MAAMC,EAAS,GAAGH,KAClB,IAAK,MAAMI,KAAOX,OAAOY,KAAKR,GAC5B,GAAIO,EAAIE,WAAWH,GACjB,OAAON,EAAKO,EAGlB,CC1BO,MAAM3B,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 if (!data) {\n return;\n }\n const language = 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","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","key","keys","startsWith"],"sourceRoot":""}