@next-bricks/data-view 0.13.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +5 -5
- package/dist/chunks/{1646.7412ac5f.js → 1646.00f8ddfc.js} +2 -2
- package/dist/chunks/{1646.7412ac5f.js.map → 1646.00f8ddfc.js.map} +1 -1
- package/dist/chunks/2108.53f1e2b5.js.map +1 -1
- package/dist/chunks/{2916.34d5150f.js → 2502.f7f556e2.js} +2 -2
- package/dist/chunks/2502.f7f556e2.js.map +1 -0
- package/dist/chunks/2618.3b734d5a.js +2 -0
- package/dist/chunks/2618.3b734d5a.js.map +1 -0
- package/dist/chunks/2754.63e58b26.js +2 -0
- package/dist/chunks/2754.63e58b26.js.map +1 -0
- package/dist/chunks/{3458.66ce61b1.js → 3458.4c99153d.js} +2 -2
- package/dist/chunks/{8691.bfecd4c2.js.map → 3458.4c99153d.js.map} +1 -1
- package/dist/chunks/3494.c7a24423.js +2 -0
- package/dist/chunks/3494.c7a24423.js.map +1 -0
- package/dist/chunks/{4049.29408ae2.js → 4049.06228157.js} +2 -2
- package/dist/chunks/{4049.29408ae2.js.map → 4049.06228157.js.map} +1 -1
- package/dist/chunks/4770.7549442e.js +2 -0
- package/dist/chunks/4770.7549442e.js.map +1 -0
- package/dist/chunks/4791.ff1d135f.js.map +1 -1
- package/dist/chunks/{5114.c504ff08.js → 5114.e362fe95.js} +2 -2
- package/dist/chunks/5114.e362fe95.js.map +1 -0
- package/dist/chunks/5151.ce644081.js +2 -0
- package/dist/chunks/5151.ce644081.js.map +1 -0
- package/dist/chunks/{5636.d64d4d52.js → 5636.e1796a6a.js} +2 -2
- package/dist/chunks/{5636.d64d4d52.js.map → 5636.e1796a6a.js.map} +1 -1
- package/dist/chunks/5637.0144d974.js.map +1 -1
- package/dist/chunks/{5725.acd3173d.js → 5725.4e31534a.js} +2 -2
- package/dist/chunks/{5725.acd3173d.js.map → 5725.4e31534a.js.map} +1 -1
- package/dist/chunks/{6205.f18e341c.js → 6205.47b27d26.js} +2 -2
- package/dist/chunks/6205.47b27d26.js.map +1 -0
- package/dist/chunks/6252.a408a0a3.js.map +1 -1
- package/dist/chunks/6301.8283ed69.js +2 -0
- package/dist/chunks/6301.8283ed69.js.map +1 -0
- package/dist/chunks/{6473.4c7164f1.js → 6473.5bb88c66.js} +2 -2
- package/dist/chunks/{6473.4c7164f1.js.map → 6473.5bb88c66.js.map} +1 -1
- package/dist/chunks/6789.fcbbeadb.js.map +1 -1
- package/dist/chunks/{7164.f1274bef.js → 7164.272521bc.js} +2 -2
- package/dist/chunks/7164.272521bc.js.map +1 -0
- package/dist/chunks/{7672.f8c0d9d5.js → 7672.87ae5be6.js} +2 -2
- package/dist/chunks/{7672.f8c0d9d5.js.map → 7672.87ae5be6.js.map} +1 -1
- package/dist/chunks/{7746.58cce6af.js → 7746.66872fcf.js} +2 -2
- package/dist/chunks/{7746.58cce6af.js.map → 7746.66872fcf.js.map} +1 -1
- package/dist/chunks/7782.ba06ff15.js +2 -0
- package/dist/chunks/7782.ba06ff15.js.map +1 -0
- package/dist/chunks/7822.3c93ccc0.js +2 -0
- package/dist/chunks/7822.3c93ccc0.js.map +1 -0
- package/dist/chunks/{8691.bfecd4c2.js → 8691.dcf26a0c.js} +2 -2
- package/dist/chunks/{3458.66ce61b1.js.map → 8691.dcf26a0c.js.map} +1 -1
- package/dist/chunks/9526.b1b920ff.js +2 -0
- package/dist/chunks/9526.b1b920ff.js.map +1 -0
- package/dist/chunks/{app-wall-card-item.773b88a2.js → app-wall-card-item.940bfb27.js} +3 -3
- package/dist/chunks/app-wall-card-item.940bfb27.js.map +1 -0
- package/dist/chunks/{app-wall-relation-line.b3457721.js → app-wall-relation-line.7d23426d.js} +3 -3
- package/dist/chunks/app-wall-relation-line.7d23426d.js.map +1 -0
- package/dist/chunks/app-wall-system-card.bde6830e.js.map +1 -1
- package/dist/chunks/app-wall.016f9ec6.js +2 -0
- package/dist/chunks/app-wall.016f9ec6.js.map +1 -0
- package/dist/chunks/battery-chart.a80664a9.js +2 -0
- package/dist/chunks/battery-chart.a80664a9.js.map +1 -0
- package/dist/chunks/brick-notification.921c2ed3.js +2 -0
- package/dist/chunks/brick-notification.921c2ed3.js.map +1 -0
- package/dist/chunks/{cabinet-app-layer.7d13abc3.js → cabinet-app-layer.f6d22c56.js} +3 -3
- package/dist/chunks/cabinet-app-layer.f6d22c56.js.map +1 -0
- package/dist/chunks/{cabinet-button.eace0f9d.js → cabinet-button.6b3d36f2.js} +2 -2
- package/dist/chunks/cabinet-button.6b3d36f2.js.map +1 -0
- package/dist/chunks/cabinet-container.4a5f4b04.js +3 -0
- package/dist/chunks/cabinet-container.4a5f4b04.js.map +1 -0
- package/dist/chunks/cabinet-graph.c81b9297.js +2 -0
- package/dist/chunks/cabinet-graph.c81b9297.js.map +1 -0
- package/dist/chunks/{cabinet-node.ef54d0c4.js → cabinet-node.9c0cd3b5.js} +3 -3
- package/dist/chunks/cabinet-node.9c0cd3b5.js.map +1 -0
- package/dist/chunks/{cabinet-thumbnail.22282acb.js → cabinet-thumbnail.1027b046.js} +3 -3
- package/dist/chunks/{cabinet-thumbnail.22282acb.js.map → cabinet-thumbnail.1027b046.js.map} +1 -1
- package/dist/chunks/complex-search.48ed755e.js +2 -0
- package/dist/chunks/complex-search.48ed755e.js.map +1 -0
- package/dist/chunks/dropdown-menu.122b99af.js +3 -0
- package/dist/chunks/dropdown-menu.122b99af.js.map +1 -0
- package/dist/chunks/{gauge-chart.f4944080.js → gauge-chart.97728202.js} +2 -2
- package/dist/chunks/gauge-chart.97728202.js.map +1 -0
- package/dist/chunks/{gear-background.d94e02e2.js → gear-background.aa9c8881.js} +2 -2
- package/dist/chunks/gear-background.aa9c8881.js.map +1 -0
- package/dist/chunks/graph-layout-grid.9945798d.js +2 -0
- package/dist/chunks/graph-layout-grid.9945798d.js.map +1 -0
- package/dist/chunks/{graph-node.547a6dc9.js → graph-node.3b722d4b.js} +2 -2
- package/dist/chunks/graph-node.3b722d4b.js.map +1 -0
- package/dist/chunks/{graph-text.e913f91e.js → graph-text.e6e84fc4.js} +2 -2
- package/dist/chunks/graph-text.e6e84fc4.js.map +1 -0
- package/dist/chunks/{grid-background.8034709e.js → grid-background.5500a391.js} +2 -2
- package/dist/chunks/grid-background.5500a391.js.map +1 -0
- package/dist/chunks/hi-tech-button.fc429ec7.js +2 -0
- package/dist/chunks/hi-tech-button.fc429ec7.js.map +1 -0
- package/dist/chunks/lights-component-title.87c1f519.js +2 -0
- package/dist/chunks/lights-component-title.87c1f519.js.map +1 -0
- package/dist/chunks/loading-panel.e90ef9a2.js +2 -0
- package/dist/chunks/loading-panel.e90ef9a2.js.map +1 -0
- package/dist/chunks/main.670e210a.js +2 -0
- package/dist/chunks/main.670e210a.js.map +1 -0
- package/dist/chunks/{modern-style-component-title.0ecbc822.js → modern-style-component-title.122c04c8.js} +2 -2
- package/dist/chunks/modern-style-component-title.122c04c8.js.map +1 -0
- package/dist/chunks/{modern-style-page-title.6ec3a54a.js → modern-style-page-title.9c5b4fe4.js} +2 -2
- package/dist/chunks/modern-style-page-title.9c5b4fe4.js.map +1 -0
- package/dist/chunks/modern-style-treemap.a6ca1bfd.js +3 -0
- package/dist/chunks/modern-style-treemap.a6ca1bfd.js.map +1 -0
- package/dist/chunks/{particle-animation.0edae74c.js → particle-animation.cc736d30.js} +2 -2
- package/dist/chunks/particle-animation.cc736d30.js.map +1 -0
- package/dist/chunks/radar-chart.5de4e675.js +2 -0
- package/dist/chunks/radar-chart.5de4e675.js.map +1 -0
- package/dist/chunks/tabs-drawer.000b4e3e.js +3 -0
- package/dist/chunks/tabs-drawer.000b4e3e.js.map +1 -0
- package/dist/chunks/tabs-page-title.d7f34cdf.js +3 -0
- package/dist/chunks/tabs-page-title.d7f34cdf.js.map +1 -0
- package/dist/chunks/tech-mesh-base-view.e6d45c37.js +2 -0
- package/dist/chunks/tech-mesh-base-view.e6d45c37.js.map +1 -0
- package/dist/chunks/{title-text.0e67fd3e.js → title-text.1dac106c.js} +2 -2
- package/dist/chunks/title-text.1dac106c.js.map +1 -0
- package/dist/chunks/{top-title-bar.b61de75a.js → top-title-bar.0a07a3e1.js} +2 -2
- package/dist/chunks/top-title-bar.0a07a3e1.js.map +1 -0
- package/dist/index.d495e9e6.js +2 -0
- package/dist/index.d495e9e6.js.map +1 -0
- package/dist/manifest.json +66 -66
- package/dist/types.json +199 -199
- package/package.json +4 -4
- package/dist/chunks/2618.b7473aca.js +0 -2
- package/dist/chunks/2618.b7473aca.js.map +0 -1
- package/dist/chunks/2754.c7ac7717.js +0 -2
- package/dist/chunks/2754.c7ac7717.js.map +0 -1
- package/dist/chunks/2916.34d5150f.js.map +0 -1
- package/dist/chunks/3494.7b59fbc7.js +0 -2
- package/dist/chunks/3494.7b59fbc7.js.map +0 -1
- package/dist/chunks/4131.68cd0781.js +0 -2
- package/dist/chunks/4131.68cd0781.js.map +0 -1
- package/dist/chunks/4770.0dcb5da8.js +0 -2
- package/dist/chunks/4770.0dcb5da8.js.map +0 -1
- package/dist/chunks/5114.c504ff08.js.map +0 -1
- package/dist/chunks/5151.13888d0e.js +0 -2
- package/dist/chunks/5151.13888d0e.js.map +0 -1
- package/dist/chunks/6205.f18e341c.js.map +0 -1
- package/dist/chunks/6301.5bc48948.js +0 -2
- package/dist/chunks/6301.5bc48948.js.map +0 -1
- package/dist/chunks/7164.f1274bef.js.map +0 -1
- package/dist/chunks/7822.16f2edd6.js +0 -2
- package/dist/chunks/7822.16f2edd6.js.map +0 -1
- package/dist/chunks/9526.4ed72968.js +0 -2
- package/dist/chunks/9526.4ed72968.js.map +0 -1
- package/dist/chunks/app-wall-card-item.773b88a2.js.map +0 -1
- package/dist/chunks/app-wall-relation-line.b3457721.js.map +0 -1
- package/dist/chunks/app-wall.c42aea16.js +0 -2
- package/dist/chunks/app-wall.c42aea16.js.map +0 -1
- package/dist/chunks/battery-chart.bce01429.js +0 -2
- package/dist/chunks/battery-chart.bce01429.js.map +0 -1
- package/dist/chunks/brick-notification.849b2697.js +0 -2
- package/dist/chunks/brick-notification.849b2697.js.map +0 -1
- package/dist/chunks/cabinet-app-layer.7d13abc3.js.map +0 -1
- package/dist/chunks/cabinet-button.eace0f9d.js.map +0 -1
- package/dist/chunks/cabinet-container.8b79820d.js +0 -3
- package/dist/chunks/cabinet-container.8b79820d.js.map +0 -1
- package/dist/chunks/cabinet-graph.ccbdb7d8.js +0 -2
- package/dist/chunks/cabinet-graph.ccbdb7d8.js.map +0 -1
- package/dist/chunks/cabinet-node.ef54d0c4.js.map +0 -1
- package/dist/chunks/complex-search.9a396c27.js +0 -2
- package/dist/chunks/complex-search.9a396c27.js.map +0 -1
- package/dist/chunks/dropdown-menu.d845a097.js +0 -3
- package/dist/chunks/dropdown-menu.d845a097.js.map +0 -1
- package/dist/chunks/gauge-chart.f4944080.js.map +0 -1
- package/dist/chunks/gear-background.d94e02e2.js.map +0 -1
- package/dist/chunks/graph-layout-grid.596f5ff8.js +0 -2
- package/dist/chunks/graph-layout-grid.596f5ff8.js.map +0 -1
- package/dist/chunks/graph-node.547a6dc9.js.map +0 -1
- package/dist/chunks/graph-text.e913f91e.js.map +0 -1
- package/dist/chunks/grid-background.8034709e.js.map +0 -1
- package/dist/chunks/hi-tech-button.fcb724f8.js +0 -2
- package/dist/chunks/hi-tech-button.fcb724f8.js.map +0 -1
- package/dist/chunks/lights-component-title.6e709aa8.js +0 -2
- package/dist/chunks/lights-component-title.6e709aa8.js.map +0 -1
- package/dist/chunks/loading-panel.75c7fcdc.js +0 -2
- package/dist/chunks/loading-panel.75c7fcdc.js.map +0 -1
- package/dist/chunks/main.999836cf.js +0 -2
- package/dist/chunks/main.999836cf.js.map +0 -1
- package/dist/chunks/modern-style-component-title.0ecbc822.js.map +0 -1
- package/dist/chunks/modern-style-page-title.6ec3a54a.js.map +0 -1
- package/dist/chunks/modern-style-treemap.61642f86.js +0 -3
- package/dist/chunks/modern-style-treemap.61642f86.js.map +0 -1
- package/dist/chunks/particle-animation.0edae74c.js.map +0 -1
- package/dist/chunks/radar-chart.3c0fc235.js +0 -2
- package/dist/chunks/radar-chart.3c0fc235.js.map +0 -1
- package/dist/chunks/tabs-drawer.c77b2402.js +0 -3
- package/dist/chunks/tabs-drawer.c77b2402.js.map +0 -1
- package/dist/chunks/tabs-page-title.d479525c.js +0 -3
- package/dist/chunks/tabs-page-title.d479525c.js.map +0 -1
- package/dist/chunks/tech-mesh-base-view.54fff757.js +0 -2
- package/dist/chunks/tech-mesh-base-view.54fff757.js.map +0 -1
- package/dist/chunks/title-text.0e67fd3e.js.map +0 -1
- package/dist/chunks/top-title-bar.b61de75a.js.map +0 -1
- package/dist/index.ba2895a5.js +0 -2
- package/dist/index.ba2895a5.js.map +0 -1
- /package/dist/chunks/{app-wall-card-item.773b88a2.js.LICENSE.txt → app-wall-card-item.940bfb27.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{app-wall-relation-line.b3457721.js.LICENSE.txt → app-wall-relation-line.7d23426d.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-app-layer.7d13abc3.js.LICENSE.txt → cabinet-app-layer.f6d22c56.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-container.8b79820d.js.LICENSE.txt → cabinet-container.4a5f4b04.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-node.ef54d0c4.js.LICENSE.txt → cabinet-node.9c0cd3b5.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-thumbnail.22282acb.js.LICENSE.txt → cabinet-thumbnail.1027b046.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{dropdown-menu.d845a097.js.LICENSE.txt → dropdown-menu.122b99af.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{modern-style-treemap.61642f86.js.LICENSE.txt → modern-style-treemap.a6ca1bfd.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{tabs-drawer.c77b2402.js.LICENSE.txt → tabs-drawer.000b4e3e.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{tabs-page-title.d479525c.js.LICENSE.txt → tabs-page-title.d7f34cdf.js.LICENSE.txt} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/5725.acd3173d.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 var 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 var 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 var 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([].concat(symbols).map(symbol => escapeRegExp(symbol)).join(\"|\"), \")\\\\{\"));\n}\nexport function tokenize(raw, symbols) {\n var 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 var subRaw = getSubRaw(context);\n var matchedPlaceholder = (_subRaw$match = subRaw.match(context.beginPlaceholder)) === null || _subRaw$match === void 0 ? void 0 : _subRaw$match[0];\n var subCursor = matchedPlaceholder ? subRaw.indexOf(matchedPlaceholder) : -1;\n if (subCursor >= 0 && matchedPlaceholder && subRaw.charAt(subCursor + matchedPlaceholder.length) !== \"{\") {\n var 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 var [value] = getSubRaw(context).match(/^(?:[\\*\\x2D\\.0-9A-\\[\\]_a-z\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*/);\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 var matches = getSubRaw(context).match(/^[a-zA-Z]\\w*/);\n if (!matches) {\n throw new Error(\"Expected a pipe identifier at index \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n var 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 \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n}\nvar jsonLiteralMap = new Map([[\"false\", false], [\"null\", null], [\"true\", true]]);\nfunction eatJsonValueOrLiteralString(context, nextStatus) {\n var 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 var [value] = getSubRaw(context).match(/^(?:[\\x2D0-9A-Z_a-z\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*/);\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 var subRaw = getSubRaw(context);\n var firstChar = subRaw.charAt(0);\n var valueType = firstChar === \"[\" ? JsonValueType.Array : firstChar === \"{\" ? JsonValueType.Object : firstChar === '\"' ? JsonValueType.String : JsonValueType.Others;\n var subCursor = 0;\n var objectBracesToMatch = 0;\n var arrayBracketsToMatch = 0;\n var stringQuotesToClose = false;\n var stringBackslashToEscape = false;\n var matched = false;\n while (subCursor < subRaw.length) {\n var 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 \".concat(context.cursor, \" near: \").concat(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 var transformNode = transformNodeFactory(context.data);\n var injectNode = injectNodeFactory(context, raw);\n var tree = parseInjectableString(raw, symbols);\n var 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 var result = node.field ? get(data, node.field) : data;\n if (result === undefined) {\n result = node.defaultValue;\n }\n return processPipes(result, node.pipes);\n };\n}\nfunction injectNodeFactory(context, raw) {\n return function injectNode(node) {\n var _context$overrideApp, _context$overrideApp2;\n var 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 var [, 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 var result;\n var SimpleContextMap = {\n SYS: \"sys\",\n FLAGS: \"flags\"\n };\n switch (namespace) {\n case \"QUERY\":\n case \"query\":\n if (subField === \"*\") {\n result = context.query;\n } else {\n result = context.query.has(subField) ? context.query.get(subField) : undefined;\n }\n break;\n case \"QUERY_ARRAY\":\n result = context.query.has(subField) ? context.query.getAll(subField) : undefined;\n break;\n case \"EVENT\":\n case \"event\":\n if (context.event === undefined) {\n // Keep the original raw partial when meet a `${EVENT}` in non-event context.\n return raw.substring(node.loc.start, node.loc.end);\n }\n result = subField === \"*\" ? context.event : get(context.event, subField);\n break;\n case \"APP\":\n result = subField === \"*\" ? (_context$overrideApp = context.overrideApp) !== null && _context$overrideApp !== void 0 ? _context$overrideApp : context.app : get((_context$overrideApp2 = context.overrideApp) !== null && _context$overrideApp2 !== void 0 ? _context$overrideApp2 : context.app, subField);\n break;\n case \"HASH\":\n result = context.location.hash;\n break;\n case \"SYS\":\n case \"FLAGS\":\n result = subField === \"*\" ? context[SimpleContextMap[namespace]] : get(context[SimpleContextMap[namespace]], subField);\n break;\n case \"ANCHOR\":\n {\n var 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 var 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: \\\"\".concat(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 var tree = {\n type: \"InjectableString\",\n elements: []\n };\n var 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: \".concat(type, \", received token: \").concat(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 var start = token.loc.start;\n var symbol = token.value;\n acceptToken(TokenType.Field);\n var 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 var 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","data","values","transformNode","node","result","field","undefined","defaultValue","processPipes","pipes","injectNode","_context$overrideApp","_context$overrideApp2","namespace","subField","SimpleContextMap","SYS","FLAGS","query","getAll","event","overrideApp","app","location","hash","anchor","substr","original","console","error","params","injectNodeFactory","token","tree","elements","optionalToken","shift","acceptToken","isArray","includes","placeholder","pipe","identifier","parameters","parseTokens","tokenize","parseInjectableString"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/5725.4e31534a.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 var 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 var 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 var 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([].concat(symbols).map(symbol => escapeRegExp(symbol)).join(\"|\"), \")\\\\{\"));\n}\nexport function tokenize(raw, symbols) {\n var 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 var subRaw = getSubRaw(context);\n var matchedPlaceholder = (_subRaw$match = subRaw.match(context.beginPlaceholder)) === null || _subRaw$match === void 0 ? void 0 : _subRaw$match[0];\n var subCursor = matchedPlaceholder ? subRaw.indexOf(matchedPlaceholder) : -1;\n if (subCursor >= 0 && matchedPlaceholder && subRaw.charAt(subCursor + matchedPlaceholder.length) !== \"{\") {\n var 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 var [value] = getSubRaw(context).match(/^(?:[\\*\\x2D\\.0-9A-\\[\\]_a-z\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*/);\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 var matches = getSubRaw(context).match(/^[a-zA-Z]\\w*/);\n if (!matches) {\n throw new Error(\"Expected a pipe identifier at index \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n var 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 \".concat(context.cursor, \" near: \").concat(JSON.stringify(context.raw.substring(context.cursor))));\n }\n}\nvar jsonLiteralMap = new Map([[\"false\", false], [\"null\", null], [\"true\", true]]);\nfunction eatJsonValueOrLiteralString(context, nextStatus) {\n var 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 var [value] = getSubRaw(context).match(/^(?:[\\x2D0-9A-Z_a-z\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*/);\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 var subRaw = getSubRaw(context);\n var firstChar = subRaw.charAt(0);\n var valueType = firstChar === \"[\" ? JsonValueType.Array : firstChar === \"{\" ? JsonValueType.Object : firstChar === '\"' ? JsonValueType.String : JsonValueType.Others;\n var subCursor = 0;\n var objectBracesToMatch = 0;\n var arrayBracketsToMatch = 0;\n var stringQuotesToClose = false;\n var stringBackslashToEscape = false;\n var matched = false;\n while (subCursor < subRaw.length) {\n var 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 \".concat(context.cursor, \" near: \").concat(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 var transformNode = transformNodeFactory(context.data);\n var injectNode = injectNodeFactory(context, raw);\n var tree = parseInjectableString(raw, symbols);\n var 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 var result = node.field ? get(data, node.field) : data;\n if (result === undefined) {\n result = node.defaultValue;\n }\n return processPipes(result, node.pipes);\n };\n}\nfunction injectNodeFactory(context, raw) {\n return function injectNode(node) {\n var _context$overrideApp, _context$overrideApp2;\n var 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 var [, 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 var result;\n var SimpleContextMap = {\n SYS: \"sys\",\n FLAGS: \"flags\"\n };\n switch (namespace) {\n case \"QUERY\":\n case \"query\":\n if (subField === \"*\") {\n result = context.query;\n } else {\n result = context.query.has(subField) ? context.query.get(subField) : undefined;\n }\n break;\n case \"QUERY_ARRAY\":\n result = context.query.has(subField) ? context.query.getAll(subField) : undefined;\n break;\n case \"EVENT\":\n case \"event\":\n if (context.event === undefined) {\n // Keep the original raw partial when meet a `${EVENT}` in non-event context.\n return raw.substring(node.loc.start, node.loc.end);\n }\n result = subField === \"*\" ? context.event : get(context.event, subField);\n break;\n case \"APP\":\n result = subField === \"*\" ? (_context$overrideApp = context.overrideApp) !== null && _context$overrideApp !== void 0 ? _context$overrideApp : context.app : get((_context$overrideApp2 = context.overrideApp) !== null && _context$overrideApp2 !== void 0 ? _context$overrideApp2 : context.app, subField);\n break;\n case \"HASH\":\n result = context.location.hash;\n break;\n case \"SYS\":\n case \"FLAGS\":\n result = subField === \"*\" ? context[SimpleContextMap[namespace]] : get(context[SimpleContextMap[namespace]], subField);\n break;\n case \"ANCHOR\":\n {\n var 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 var 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: \\\"\".concat(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 var tree = {\n type: \"InjectableString\",\n elements: []\n };\n var 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: \".concat(type, \", received token: \").concat(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 var start = token.loc.start;\n var symbol = token.value;\n acceptToken(TokenType.Field);\n var 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 var 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","data","values","transformNode","node","result","field","undefined","defaultValue","processPipes","pipes","injectNode","_context$overrideApp","_context$overrideApp2","namespace","subField","SimpleContextMap","SYS","FLAGS","query","getAll","event","overrideApp","app","location","hash","anchor","substr","original","console","error","params","injectNodeFactory","token","tree","elements","optionalToken","shift","acceptToken","isArray","includes","placeholder","pipe","identifier","parameters","parseTokens","tokenize","parseInjectableString"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_next_bricks_data_view=self.webpackChunk_next_bricks_data_view||[]).push([[6205,7164],{7164:(e,n,i)=>{i.r(n),i.d(n,{i18n:()=>l,i18nText:()=>f,initializeI18n:()=>o});var t=i(
|
|
2
|
-
//# sourceMappingURL=6205.
|
|
1
|
+
"use strict";(self.webpackChunk_next_bricks_data_view=self.webpackChunk_next_bricks_data_view||[]).push([[6205,7164],{7164:(e,n,i)=>{i.r(n),i.d(n,{i18n:()=>l,i18nText:()=>f,initializeI18n:()=>o});var t=i(3239),a=i(4594),r=i(6473),s=!1,u=new Set;function o(e,n){if(s||(s=!0,a.i18n.use(r.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},compatibilityJSON:"v3",resources:{}})),e&&n&&!u.has(e))for(var[i,t]of(u.add(e),Object.entries(n)))a.i18n.addResourceBundle(i,e,t)}var c=i(1433);function f(e){var n;if(e){var i=null!==(n=a.i18n.language)&&void 0!==n?n:"zh-CN";if((0,c.hasOwnProperty)(e,i))return e[i];var t=i.split("-")[0];if(t!==i)return(0,c.hasOwnProperty)(e,t)?e[t]:void 0;var r="".concat(t,"-");for(var s of Object.keys(e))if(s.startsWith(r))return e[s]}}var l=t.default}}]);
|
|
2
|
+
//# sourceMappingURL=6205.47b27d26.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chunks/6205.47b27d26.js","mappings":"sOAEIA,GAAc,EACdC,EAAwB,IAAIC,IACzB,SAASC,EAAeC,EAAIC,GAyBjC,GAxBKL,IACHA,GAAc,EACd,EAAAM,KAICC,IAAmF,WAEnFC,KAAK,CACJC,YAAa,KACbC,OAAO,EACPC,cAAe,CAAC,KAAM,MACtBC,0BAA0B,EAC1BC,cAAe,CACbC,aAAa,GAGfC,MAAO,CACLC,aAAa,GAEfC,kBAAmB,KACnBC,UAAW,CAAC,KAGXd,GAAOC,IAAWJ,EAAsBkB,IAAIf,GAIjD,IAAK,IAAKgB,EAAMF,KADhBjB,EAAsBoB,IAAIjB,GACIkB,OAAOC,QAAQlB,IAC3C,EAAAC,KAAKkB,kBAAkBJ,EAAMhB,EAAIc,EAErC,C,cClCO,SAASO,EAASC,GACvB,IAAIC,EACJ,GAAKD,EAAL,CAGA,IAAIE,EAAgD,QAApCD,EAAiB,EAAArB,KAAKsB,gBAAyC,IAAnBD,EAA4BA,EAAiB,QAEzG,IAAI,IAAAE,gBAAeH,EAAME,GACvB,OAAOF,EAAKE,GAGd,IAAIE,EAAkBF,EAASG,MAAM,KAAK,GAC1C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeH,EAAMI,GAAmBJ,EAAKI,QAAmBE,EAKzE,IAAIC,EAAS,GAAGC,OAAOJ,EAAiB,KACxC,IAAK,IAAIK,KAAOb,OAAOc,KAAKV,GAC1B,GAAIS,EAAIE,WAAWJ,GACjB,OAAOP,EAAKS,EAnBhB,CAsBF,CC3BO,IAAI7B,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\";\nvar initialized = false;\nvar 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\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 (var [lang, resources] of Object.entries(locales)) {\n i18n.addResourceBundle(lang, NS, resources);\n }\n}\n//# sourceMappingURL=init.js.map","import { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nexport function i18nText(data) {\n var _i18n$language;\n if (!data) {\n return;\n }\n var language = (_i18n$language = i18n.language) !== null && _i18n$language !== void 0 ? _i18n$language : \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n var 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 var prefix = \"\".concat(primaryLanguage, \"-\");\n for (var 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 var 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","lang","add","Object","entries","addResourceBundle","i18nText","data","_i18n$language","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","concat","key","keys","startsWith"],"sourceRoot":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/6252.a408a0a3.js","mappings":"4LAmBaA,EAAW,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGWC,EAA6B,CACxCC,SAAU,CACRC,UAAW,yBAEbC,WAAY,CACVC,EAAG,EACHC,YAAa,OACbH,UAAW,OACXI,UAAW,IAEbC,SAAU,CACRF,YAAa,UACbC,UAAW,IAGFE,EAA8B,CACzCC,EAAG,EACHC,oBAAqB,GACrBC,WAAY,GACZC,SAAU,GACVC,mBAAoB,GACpBC,iBAAkB,GAClBC,OAAQ,GAQGC,EAAsB,SACjCC,EACAF,GAEA,IAAMG,GAAyBC,EAAAA,EAAAA,WAAUX,GAEzC,GADAU,EAAWH,OAASA,GAChBE,aAAU,EAAVA,EAAYG,QAAS,EAAG,OAAOF,EACnCA,EAAWJ,iBAAmBG,EAC9BC,EAAWT,EAAIQ,EAAWG,OAC1B,IAAMC,EAAsB,EAAVC,KAAKC,GAAUL,EAAWT,EAM5C,OALAQ,EAAWO,SAAQ,CAACC,EAAMC,KACxBR,EAAWR,oBAAoBgB,GAAKD,EAAKE,MAAQF,EAAKG,SACtDV,EAAWP,WAAWe,GAAKR,EAAWR,oBAAoBgB,GAAKX,EAC/DG,EAAWN,SAASc,GAAKA,EAAIL,CAAQ,IAEhCH,CACT,EAEaW,EAAsB,SACjC5B,EACAE,EACAI,GAEA,IAAMuB,GAAyBX,EAAAA,EAAAA,WAAUnB,GAIzC,OAHA+B,EAAAA,EAAAA,OAAMD,EAAW7B,SAAUA,IAC3B8B,EAAAA,EAAAA,OAAMD,EAAW3B,WAAYA,IAC7B4B,EAAAA,EAAAA,OAAMD,EAAWvB,SAAUA,GACpBuB,CACT,EAQaE,EAAmB,SAC9BvB,EACAwB,EACArB,GAGA,IADA,IAAMsB,EAAqB,GAClBR,EAAI,EAAGA,EAAIjB,EAAGiB,IAAK,CAC1B,IAAMS,EAAoB,CACxBC,EAAG,EACHC,EAAG,GAELF,EAAYC,EAAIH,EAAcP,GAAKJ,KAAKgB,IAAI1B,EAASc,IACrDS,EAAYE,GAAKJ,EAAcP,GAAKJ,KAAKiB,IAAI3B,EAASc,IACtDQ,EAAmBM,KAAKL,EAC1B,CACA,OAAOD,CACT,EAQaO,EAAgB,SAAUhC,EAAWL,EAAWsC,GAG3D,IAFA,IAAMC,EAAY,GACZC,EAAmB,EAAVtB,KAAKC,GAAUd,EACrBiB,EAAI,EAAGA,EAAIjB,EAAGiB,IAAK,CAC1B,IAAMmB,EAAe,CACnBT,EAAG,EACHC,EAAG,GAELQ,EAAOT,EAAIhC,EAAIkB,KAAKgB,IAAIZ,EAAIkB,GAASF,EAAO,GAC5CG,EAAOR,GAAKjC,EAAIkB,KAAKiB,IAAIb,EAAIkB,GAASF,EAAO,GAC7CC,EAAUH,KAAKK,EACjB,CACA,OAAOF,CACT,EAWaG,EAAc,SACzBC,EACAC,GAGA,IAAMvC,EAAIuC,EAAQvC,EAChBL,EAAI4C,EAAQ5C,EACZsC,EAASM,EAAQN,OACjBrC,EAAc2C,EAAQ3C,YACtBC,EAAY0C,EAAQ1C,UAAY0C,EAAQC,MAG1CF,EAAQG,OACRH,EAAQI,YACR,IAAMP,EAAmB,EAAVtB,KAAKC,GAAUd,EAC9BsC,EAAQK,UAAUV,EAAO,GAAIA,EAAO,IACpCK,EAAQM,OAAO,GAAIjD,GACnB,IAAK,IAAIsB,EAAI,EAAGA,EAAIjB,EAAGiB,IACrBqB,EAAQO,OAAOV,GACfG,EAAQQ,OAAO,GAAInD,GAUrB,GARA2C,EAAQS,YACRT,EAAQU,SAEJT,EAAQ3C,cACV0C,EAAQ1C,YAAcA,EACtB0C,EAAQzC,UAAYA,EACpByC,EAAQW,QAjBE,QAmBRV,EAAQ9C,UAAW,CACrB,GAAiC,iBAAtB8C,EAAQ9C,UACjB6C,EAAQ7C,UAAY8C,EAAQ9C,eACvB,GAAI8C,EAAQ9C,qBAAqByD,MAAO,CAE7C,IAAMC,EAAWb,EAAQc,sBAAsBzD,GAAIA,EAAGA,EAAGA,GACzD4C,EAAQ9C,UAAUsB,SAASsC,IACzBF,EAASG,aAAa,EAAGD,EAAO,IAChCF,EAASG,aAAa,EAAGD,EAAO,GAAG,IAErCf,EAAQ7C,UAAY0D,CACtB,CAEAb,EAAQiB,MACV,CACAjB,EAAQkB,SACV,EAUaC,EAAsB,SACjCnB,EACAC,GAGA,IAAM,EAAEvC,EAAC,EAAEL,EAAC,OAAEsC,EAAM,YAAErC,GAAgB2C,EAChC1C,EAAY0C,EAAQ1C,UAAY0C,EAAQC,MAE9CF,EAAQG,OACR,IAAMN,EAAmB,EAAVtB,KAAKC,GAAUd,EAC9BsC,EAAQK,UAAUV,EAAO,GAAIA,EAAO,IAGpCK,EAAQzC,UAAYA,EACpByC,EAAQW,QAPI,OASZX,EAAQO,QAAQhC,KAAKC,GAAK,GAE1B,IAAK,IAAIG,EAAI,EAAGA,EAAIjB,EAAGiB,IAAK,CAE1B,IAAMyC,EAAS/D,EAAIkB,KAAKiB,IAAIK,EAAQlB,GAClC0C,EAAShE,EAAIkB,KAAKgB,IAAIM,EAAQlB,GAC9B2C,EAAOjE,EAAIkB,KAAKiB,IAAIK,GAASlB,EAAI,IACjC4C,EAAOlE,EAAIkB,KAAKgB,IAAIM,GAASlB,EAAI,IAEnCqB,EAAQI,YAERJ,EAAQM,OAAOc,EAAQC,GACvBrB,EAAQQ,OAAOc,EAAMC,GAErB,IAAMV,EAAWb,EAAQc,qBAAqBM,EAAQC,EAAQC,EAAMC,GACpEV,EAASG,aAAa,EAAG1D,GACzBuD,EAASG,aAAa,GAAK,WAC3BH,EAASG,aAAa,GAAK,WAC3BH,EAASG,aAAa,EAAG1D,GAEzB0C,EAAQ1C,YAAcuD,EACtBb,EAAQU,QACV,CACAV,EAAQkB,SACV,EAmCaM,EAAiB,SAC5BxB,EACAL,EACA8B,GAEAzB,EAAQG,OACRH,EAAQI,YACRqB,EAAWC,KAAKC,IACd3B,EAAQM,OAAOX,EAAO,GAAIA,EAAO,IACjCK,EAAQQ,OAAOmB,EAAMtC,EAAGsC,EAAMrC,EAAE,IAElCU,EAAQ1C,YAAc,UACtB0C,EAAQzC,UAAY,EACpByC,EAAQU,SACRV,EAAQkB,SACV,EACaU,EAAsB,SACjC5B,EACAL,EACAtC,EACAoE,EACAvD,GAEA8B,EAAQG,OACR,IAAM0B,EAAUxE,EAAI,EAClByE,EAAUzE,EAAI,EACd0E,EAAa1E,EAAI,GAAK,GAAKA,EAAI,GAAK,GAEtCoE,EAAWC,KAAI,CAACC,EAAOhD,KAAM,IAAAqD,EAAAC,EAAAC,EAAAC,EACvBC,EAAUT,EAAMtC,EAClBgD,EAAgBV,EAAMtC,EACtBiD,EAAaX,EAAMtC,EACnBkD,EAAUZ,EAAMrC,EAChBkD,EAAQb,EAAMtC,EACVoD,GAAqB,QAAbT,EAAA9D,EAAWS,UAAE,IAAAqD,OAAA,EAAbA,EAAeS,QAASzF,EAAS2B,IAAM,OACrDqB,EAAQI,YACRJ,EAAQM,OAAOqB,EAAMtC,EAAGsC,EAAMrC,GAE1BqC,EAAMtC,EAAIM,EAAO,IAAM,GAIzB2C,GADAD,GADAD,GAAWP,GACeA,GACGE,EAC7BS,EAAQJ,EAhBC,IAiBAT,EAAMtC,EAAIM,EAAO,GAAK,IAI/B2C,GADAD,GADAD,GAAWP,GACeA,GACGE,EAC7BS,EAAQH,EAtBC,IAyBPV,EAAMrC,EAAIK,EAAO,GAAK,EACxB4C,GAAWT,EACFH,EAAMrC,EAAIK,EAAO,GAAK,IAC/B4C,GAAWT,GAEb9B,EAAQQ,OAAO4B,EAASG,GACxBvC,EAAQQ,OAAO8B,EAAYC,GAC3BvC,EAAQ1C,YAAc,0BACtB0C,EAAQU,SACRV,EAAQI,YACRJ,EAAQM,OAAO+B,EAAeE,GAC9BvC,EAAQQ,OAAO8B,EAAYC,GAC3BvC,EAAQ1C,YAAcmF,EACtBzC,EAAQzC,UAAY,EACpByC,EAAQU,SAGR,IAAMgC,EAAqB,QAAbT,EAAA/D,EAAWS,UAAE,IAAAsD,GAAbA,EAAeU,aACzBJ,EAAUlF,EAAI,IACdkF,EAAUlF,EAAI,IACZuF,EAAavF,EAAI,GAgBvB,GAdiB,QAAjB6E,EAAIhE,EAAWS,UAAE,IAAAuD,GAAbA,EAAeW,OACjB7C,EAAQ7C,UAAYsF,EACpBzC,EAAQ8C,SAASN,EAAOE,EAjDf,OAmDT1C,EAAQ+C,UAAY,OACpB/C,EAAQgD,KAAO,OAAHC,OAAUL,EAAU,8BAChC5C,EAAQ7C,UAAY,0BACpB6C,EAAQkD,SAAS,GAADD,OACX/E,EAAWS,GAAGkE,MACjBL,EAAQW,GACRT,EAAQS,GAEVnD,EAAQU,UAEO,QAAjByB,EAAIjE,EAAWS,UAAE,IAAAwD,GAAbA,EAAeQ,aAAc,KAAAS,EACzBC,EAAchG,EAAI,GACxB2C,EAAQ+C,UAAY,OACpB/C,EAAQgD,KAAO,OAAHC,OAAUI,EAAW,8BACjCrD,EAAQ7C,UAAY,OACpB6C,EAAQkD,SAAS,GAADD,OACE,QADFG,EACXlF,EAAWS,UAAE,IAAAyE,OAAA,EAAbA,EAAeT,cAClBH,EAAQW,GACRT,EAAQS,EAA4B,IAAbP,GAEzB5C,EAAQU,QACV,KAEFV,EAAQkB,SACV,EA8CO,SAASoC,EACdtD,EACAC,GAEA,IAAM,EAAEZ,EAAC,EAAEC,EAAC,EAAG,QAAEiE,EAAO,QAAEC,EAAO,YAAElG,EAAW,UAAEC,EAAS,UAAEJ,GACzD8C,EACFD,EAAQG,OACRH,EAAQI,YACRJ,EAAQK,UAAUkD,EAASC,GAC3BxD,EAAQyD,IAAIpE,EAAGC,EAAGjC,EAAG,EAAa,EAAVkB,KAAKC,IAC7BwB,EAAQS,YACRT,EAAQ1C,YAAcA,EACtB0C,EAAQzC,UAAYA,EACpByC,EAAQ0D,SAAW,QACnB1D,EAAQ7C,UAAYA,EACpB6C,EAAQU,SACRV,EAAQiB,OACRjB,EAAQkB,SACV,CAOO,IA0BMyC,EAAe,SAC1B3D,EACAL,EACAO,EACAD,GAEA,IAAM,gBAAE2D,EAAe,gBAAEC,EAAe,kBAAEC,GAAsB7D,EAElC,IADA2D,EAAgBnC,WAAWpD,SAzO/B,SAC1B2B,EACAL,EACAM,GAEA,IAAM,YAAE3C,EAAW,UAAEC,EAAS,WAAEkE,GAAexB,EACzC8D,EAAgBtC,EAAWpD,OACjC2B,EAAQG,OACRH,EAAQI,YACRJ,EAAQK,UAAUV,EAAO,GAAIA,EAAO,IACpCK,EAAQM,OAAOmB,EAAW,GAAGpC,EAAGoC,EAAW,GAAGnC,GAC9C,IAAK,IAAIX,EAAI,EAAGA,EAAIoF,EAAepF,IACjCqB,EAAQQ,OAAOiB,EAAW9C,GAAGU,EAAGoC,EAAW9C,GAAGW,GAEhDU,EAAQS,YACRT,EAAQ1C,YAAcA,EACtB0C,EAAQzC,UAAYA,EACpByC,EAAQ0D,SAAW,QACnB1D,EAAQU,SACRV,EAAQkB,SACV,CAwNE8C,CAAahE,EAASL,EAAQiE,GApCJ,SAC1B5D,EACAL,EACAM,GAEA,IAAM,UAAE9C,EAAS,WAAEsE,GAAexB,EAC5BgE,EAAwBxC,EAAWpD,OACzC2B,EAAQG,OACRH,EAAQI,YACRJ,EAAQK,UAAUV,EAAO,GAAIA,EAAO,IACpCK,EAAQM,OAAOmB,EAAW,GAAGpC,EAAGoC,EAAW,GAAGnC,GAC9C,IAAK,IAAIX,EAAI,EAAGA,EAAIsF,EAAuBtF,IACzCqB,EAAQQ,OAAOiB,EAAW9C,GAAGU,EAAGoC,EAAW9C,GAAGW,GAEhDU,EAAQS,YACRT,EAAQ7C,UAAYA,EACpB6C,EAAQiB,OACRjB,EAAQkB,SACV,CAoBEgD,CAAalE,EAASL,EAAQkE,GAnGF,SAC5B7D,EACAL,EACAO,EACAD,GAOA,IALA,IAAM,YAAE3C,EAAW,UAAEH,EAAS,WAAEsE,GAAexB,EACzC5C,EAAI4C,EAAQ5C,EAAI6C,EACpB3C,EAAY0C,EAAQ1C,UAAY2C,EAE5B+D,EAAwBxC,EAAWpD,OAChCM,EAAI,EAAGA,EAAIsF,EAAuBtF,IACzC2E,EAAWtD,EAAS,CAClBX,EAAGoC,EAAW9C,GAAGU,EACjBC,EAAGmC,EAAW9C,GAAGW,EACjBjC,EAAGA,EACHkG,QAAS5D,EAAO,GAChB6D,QAAS7D,EAAO,GAChBrC,YAAaA,EACbC,UAAWA,EACXJ,UAAWA,GAGjB,CA8EEgH,CAAenE,EAASL,EAAQO,EAAO4D,GACzC,EAcaM,EAAsB,SACjCpE,EACAC,GAQA,IANA,IAAM,MAAEoE,EAAK,EAAE3G,EAAC,EAAG,MAAEwC,EAAK,OAAEP,EAAM,UAAEpC,GAAc0C,EAGhDqE,EAAgB,CAAC,CAAC,UAAW,YAGtB3F,EAAI0F,EAAO1F,EAAI,EAAGA,IACrBA,IAAM0F,GACRlD,EAAoBnB,EAAS,CAC3BtC,IACAL,EACAsC,SACAO,QACA3C,YACAD,YAAa,uBAEf6D,EAAoBnB,EAAS,CAC3BtC,IACAL,EAAO,IAAJA,EACHsC,SACAO,QACA5C,YAAa,uBACbC,eAOFwC,EAAYC,EAAS,CACnBtC,IACAL,EANoB,IAAJA,EAAYgH,EAGJ1F,EAIxBgB,SACAxC,UAPgBwB,EAAI,GAAK,EAtBd,UAsBiC2F,EAQ5ChH,YAhCa,cAiCbC,YACA2C,SAIR,E,6ECrhBO,SAASqE,EAAKC,GASQ,IATP,WACpBtG,EAAU,OACVF,EAAM,MACNY,EAAK,SACL1B,EAAQ,WACRE,EAAU,SACVI,EAAQ,MACRiH,GAEWD,EADRE,GAAKC,EAAAA,EAAAA,GAAAH,EAAAI,GAEFC,GAAYC,EAAAA,EAAAA,QAA0B,MACtCC,GAAaD,EAAAA,EAAAA,QAAiC,OAC7C3G,EAAY6G,IAAiBC,EAAAA,EAAAA,UAAqBxH,IAClDsB,EAAYmG,IAAiBD,EAAAA,EAAAA,UAAqBhI,GAEnDiD,EAAQiF,OAAOC,iBAuGrB,OAtGAC,EAAAA,EAAAA,YAAU,KACR,IAAMC,EAAST,EAAUU,QACnBvF,EAAUsF,EAAOE,WAAW,MAC5BC,EAAcH,EAAOI,YACrBC,EAAeL,EAAOM,aAE5BN,EAAOO,MAAQJ,EAAcvF,EAC7BoF,EAAOQ,OAASH,EAAezF,EAC/B,IAAM6F,EAAgBxH,KAAKyH,IAAIV,EAAOO,MAAOP,EAAOQ,QAAUrB,EAE9DM,EAAWQ,QAAUvF,EACrBgF,EAAc/G,EAAoBC,EAAYF,QAAAA,EAAU+H,GAAe,GACtE,CAAC7H,EAAYF,EAAQyG,KACxBY,EAAAA,EAAAA,YAAU,KACRH,EAAcpG,EAAoB5B,EAAUE,EAAYI,GAAU,GACjE,CAACN,EAAUE,EAAYI,KAE1B6H,EAAAA,EAAAA,YAAU,KACR,IAAIY,EAAgB,EAClBC,EAAQ,KACJZ,EAAST,EAAUU,QACnBvF,EAAU+E,EAAWQ,QACrB5F,EAAS,CAAC2F,EAAOO,MAAQ,EAAGP,EAAOQ,OAAS,GAElD,GAAI9F,EAAS,CAEX,IAAMmG,EAAYA,KAChBD,EAAQf,OAAOiB,sBAAsBD,IAErCF,GAAiB,MACI,GACnBd,OAAOkB,qBAAqBH,GAG9BlG,EAAQsG,UAAU,EAAG,EAAGhB,EAAOO,MAAOP,EAAOQ,QAE7C1B,EAAoBpE,EAAS,CAC3BqE,MAAO,EACP3G,EAAGS,EAAWT,EACdL,EAAGc,EAAWH,OACdkC,QACAP,SACApC,UAAW,IAGb,IAAMK,EAAaO,EAAWP,WAAW8D,KAAK9C,GACrCA,EAAQqH,IAEX9G,EAAqBF,EACzBd,EAAWT,EACXE,EACAO,EAAWN,UAEP+F,EAAkB,CACtBnC,WAAYtC,EACZ7B,YAAayB,EAAWvB,SAASF,YACjCC,UAAWwB,EAAWvB,SAASD,WAE3BuG,EAAoB,CACxBrC,WAAYtC,EACZ9B,EAAG0B,EAAW3B,WAAWC,EACzBC,YAAayB,EAAW3B,WAAWE,YACnCH,UAAW4B,EAAW3B,WAAWD,UACjCI,UAAWwB,EAAW3B,WAAWG,WAE7BsG,EAAkB,CACtBpC,WAAYtC,EACZhC,UAAW4B,EAAW7B,SAASC,WAEjCwG,EAAa3D,EAASL,EAAQO,EAAO,CACnC0D,gBAAiBA,EACjBC,gBAAiBA,EACjBC,kBAAmBA,IAIrB,IAAMyC,EAA2B7G,EAC/BvB,EAAWT,EACXS,EAAWH,OACX2B,GAUF,GARA6B,EAAexB,EAASL,EAAQ4G,GAChC3E,EACE5B,EACAL,EACAxB,EAAWH,OACXuI,EACApI,EAAWJ,kBAETa,EAAO,CACT,IAAM4H,EAAWrI,EAAWH,OAAS,EACrCgC,EAAQgD,KAAO,QAAHC,OAAWuD,EAAQ,8BAC/BxG,EAAQ7C,UAAY,OACpB6C,EAAQ+C,UAAY,SACpB/C,EAAQyG,aAAe,SACvBzG,EAAQkD,SAAS,GAADD,OAAIrE,GAASe,EAAO,GAAIA,EAAO,GACjD,GAEFwG,GACF,IACC,CAAChI,EAAYY,EAAYH,IAG1B8H,IAAAA,cAAA,OACEC,UAAU,YACVC,MAAO,CAAEf,MAAO,GAAF5C,OAAKyB,EAAMmB,MAAK,MAAMC,OAAQ,GAAF7C,OAAKyB,EAAMoB,OAAM,QAE3DY,IAAAA,cAAA,UAAQC,UAAU,aAAaE,IAAKhC,IAG1C,C,mEC1IIiC,E,MAA0B,GAA4B,KAE1DA,EAAwBrH,KAAK,CAACsH,EAAOC,GAAI,yGAA0G,KAEnJ,QAAeF,EAAwBG,U,iBCNxB,SAAStC,EAAyBuC,EAAQC,GACvD,GAAc,MAAVD,EAAgB,MAAO,CAAC,EAC5B,IACIE,EAAKzI,EADL0I,ECHS,SAAuCH,EAAQC,GAC5D,GAAc,MAAVD,EAAgB,MAAO,CAAC,EAC5B,IAEIE,EAAKzI,EAFL0I,EAAS,CAAC,EACVC,EAAaC,OAAOC,KAAKN,GAE7B,IAAKvI,EAAI,EAAGA,EAAI2I,EAAWjJ,OAAQM,IACjCyI,EAAME,EAAW3I,GACbwI,EAASM,QAAQL,IAAQ,IAC7BC,EAAOD,GAAOF,EAAOE,IAEvB,OAAOC,CACT,CDRe,CAA6BH,EAAQC,GAElD,GAAII,OAAOG,sBAAuB,CAChC,IAAIC,EAAmBJ,OAAOG,sBAAsBR,GACpD,IAAKvI,EAAI,EAAGA,EAAIgJ,EAAiBtJ,OAAQM,IACvCyI,EAAMO,EAAiBhJ,GACnBwI,EAASM,QAAQL,IAAQ,GACxBG,OAAOK,UAAUC,qBAAqBC,KAAKZ,EAAQE,KACxDC,EAAOD,GAAOF,EAAOE,GAEzB,CACA,OAAOC,CACT,C","sources":["webpack:///./src/radar-chart/utils.ts","webpack:///./src/radar-chart/radar.tsx","webpack:///./src/radar-chart/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["import { cloneDeep, merge } from \"lodash\";\nimport {\n Axis,\n BaseConfig,\n CircleOptions,\n Data,\n DataCircle,\n DataCircleOptions,\n DataFill,\n DataFillProps,\n DataLine,\n DataLineOptions,\n DataPolyProps,\n DrawPolygonOptions,\n DrawRadarBgOption,\n GradientPolygon,\n UserConfig,\n} from \"./interface.js\";\n\nexport const colorMap = [\n \"#5B8FF9\",\n \"#5AD8A6\",\n \"#5D7092\",\n \"#F6BD16\",\n \"#E86452\",\n \"#6DC8EC\",\n \"#945FB9\",\n \"#FF9845\",\n \"#1E9493\",\n \"#FF99C3\",\n]; //chart-v2 的主题色\n\nexport const baseUserConfig: UserConfig = {\n dataFill: {\n fillStyle: \"rgba(76,132,250,0.67)\",\n },\n dataCircle: {\n r: 2,\n strokeStyle: \"#ccc\",\n fillStyle: \"#fff\",\n lineWidth: 0.5,\n },\n dataLine: {\n strokeStyle: \"#0B2EE7\",\n lineWidth: 5,\n },\n};\nexport const baseRadarConfig: BaseConfig = {\n n: 0,\n dataRadiusOfPercent: [],\n dataRadius: [],\n angleArr: [],\n tooltipsContentArr: [],\n originDataSource: [],\n radius: 1,\n};\n/**\n * // 初始化参数配置\n * @param dataSource\n * @param radius\n * @returns BaseConfig\n */\nexport const constructBaseConfig = function (\n dataSource: Data[],\n radius: number\n) {\n const baseConfig: BaseConfig = cloneDeep(baseRadarConfig);\n baseConfig.radius = radius;\n if (dataSource?.length < 1) return baseConfig;\n baseConfig.originDataSource = dataSource;\n baseConfig.n = dataSource.length;\n const disAngle = (Math.PI * 2) / baseConfig.n;\n dataSource.forEach((data, i) => {\n baseConfig.dataRadiusOfPercent[i] = data.value / data.maxValue;\n baseConfig.dataRadius[i] = baseConfig.dataRadiusOfPercent[i] * radius;\n baseConfig.angleArr[i] = i * disAngle;\n });\n return baseConfig;\n};\n\nexport const constructUserConfig = function (\n dataFill: DataFill,\n dataCircle: DataCircle,\n dataLine: DataLine\n) {\n const userConfig: UserConfig = cloneDeep(baseUserConfig);\n merge(userConfig.dataFill, dataFill);\n merge(userConfig.dataCircle, dataCircle);\n merge(userConfig.dataLine, dataLine);\n return userConfig;\n};\n\n/**\n * 获取数据点相对于原点的坐标\n * n:多边形边数\n * dataRadiusArr: 数据点的坐标数组\n * angleArr: 多边形的角度数组\n */\nexport const getDataPointsPos = function (\n n: number,\n dataRadiusArr: number[],\n angleArr: number[]\n) {\n const dataPointsPosArray = [];\n for (let i = 0; i < n; i++) {\n const curPoinrPos: Axis = {\n x: 0,\n y: 0,\n };\n curPoinrPos.x = dataRadiusArr[i] * Math.sin(angleArr[i]);\n curPoinrPos.y = -dataRadiusArr[i] * Math.cos(angleArr[i]);\n dataPointsPosArray.push(curPoinrPos);\n }\n return dataPointsPosArray;\n};\n\n/**\n * 获取正多边形每个点的坐标位置数组(相对于原点)\n * n: 多边形的边数\n * r: 半径\n * origin: 原点位置\n */\nexport const getPolygonPos = function (n: number, r: number, origin: number[]) {\n const dotsArray = []; // 多边形每一个点的坐标数组,格式如[{x: 1, y: 2}]\n const angle = (Math.PI * 2) / n;\n for (let i = 0; i < n; i++) {\n const curPos: Axis = {\n x: 0,\n y: 0,\n };\n curPos.x = r * Math.sin(i * angle) + origin[0];\n curPos.y = -r * Math.cos(i * angle) + origin[1];\n dotsArray.push(curPos);\n }\n return dotsArray;\n};\n\n/**\n * 绘制闭合正多边形\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * fillStyle:填充样式\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawPolygon = function (\n context: CanvasRenderingContext2D,\n options: DrawPolygonOptions\n) {\n // 对传入参数进行默认值设置\n const n = options.n,\n r = options.r,\n origin = options.origin,\n strokeStyle = options.strokeStyle,\n lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n\n context.save();\n context.beginPath();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n context.moveTo(0, -r);\n for (let i = 0; i < n; i++) {\n context.rotate(angle);\n context.lineTo(0, -r);\n }\n context.closePath();\n context.stroke();\n\n if (options.strokeStyle) {\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n }\n if (options.fillStyle) {\n if (typeof options.fillStyle === \"string\") {\n context.fillStyle = options.fillStyle;\n } else if (options.fillStyle instanceof Array) {\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(-r, -r, r, r);\n options.fillStyle.forEach((colors) => {\n gradient.addColorStop(0, colors[0]);\n gradient.addColorStop(1, colors[1]);\n });\n context.fillStyle = gradient;\n }\n\n context.fill();\n }\n context.restore();\n};\n\n/**\n * 绘制线性渐变的多边形,\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawGradientPolygon = function (\n context: CanvasRenderingContext2D,\n options: GradientPolygon\n) {\n // 对传入参数进行默认值设置\n const { n, r, origin, strokeStyle } = options;\n const lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n context.save();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n\n // 设置线条样式\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n // 添加偏移量,使第一条边与正上方对齐\n context.rotate(-Math.PI / 2);\n\n for (let i = 0; i < n; i++) {\n // 计算当前边的起点和终点坐标\n const startX = r * Math.cos(angle * i),\n startY = r * Math.sin(angle * i),\n endX = r * Math.cos(angle * (i + 1)),\n endY = r * Math.sin(angle * (i + 1));\n // 开始一个新的路径\n context.beginPath();\n // 绘制多边形的一条边\n context.moveTo(startX, startY);\n context.lineTo(endX, endY);\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(startX, startY, endX, endY);\n gradient.addColorStop(0, strokeStyle);\n gradient.addColorStop(0.5, \"#1D2B57\");\n gradient.addColorStop(0.6, \"#1D2B57\");\n gradient.addColorStop(1, strokeStyle);\n // 设置当前路径的描边样式为线性渐变\n context.strokeStyle = gradient;\n context.stroke();\n }\n context.restore();\n};\n\n/**\n * 绘制数据点连接线条(一次性画完)\n * dataPoints: 数据的位置数组\n * strokeStyle: 线条样式\n * lineWidth: 线条宽度\n */\nexport const drawDataLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataLineOptions\n) {\n const { strokeStyle, lineWidth, dataPoints } = options;\n const dataPointsLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.stroke();\n context.restore();\n};\n/**\n * 绘制放射性中心点到多边形顶点连线\n * @param context\n * @param origin\n * @param dataPoints 多边形顶点坐标\n */\nexport const drawVertexLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n dataPoints: Axis[]\n) {\n context.save();\n context.beginPath();\n dataPoints.map((point) => {\n context.moveTo(origin[0], origin[1]);\n context.lineTo(point.x, point.y);\n });\n context.strokeStyle = \"#1D2B57\";\n context.lineWidth = 2;\n context.stroke();\n context.restore();\n};\nexport const drawLeadLineAndText = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n r: number,\n dataPoints: Axis[],\n dataSource: Data[]\n) {\n context.save();\n const offsetX = r / 2,\n offsetY = r / 4,\n offsetEndX = r / 12 > 10 ? r / 12 : 10,\n rectSize = 12;\n dataPoints.map((point, i) => {\n let curPosX = point.x,\n curPosMiddleX = point.x,\n curPosEndX = point.x,\n curPosY = point.y,\n rectX = point.x;\n const color = dataSource[i]?.color || colorMap[i] || \"#ccc\";\n context.beginPath();\n context.moveTo(point.x, point.y);\n\n if (point.x - origin[0] >= 0) {\n //引线方向往右\n curPosX += offsetX;\n curPosMiddleX = curPosX + offsetX;\n curPosEndX = curPosMiddleX + offsetEndX;\n rectX = curPosX + rectSize;\n } else if (point.x - origin[0] < 0) {\n //引线方向往左\n curPosX -= offsetX;\n curPosMiddleX = curPosX - offsetX;\n curPosEndX = curPosMiddleX - offsetEndX;\n rectX = curPosMiddleX + rectSize;\n }\n\n if (point.y - origin[1] < 0) {\n curPosY -= offsetY;\n } else if (point.y - origin[1] > 0) {\n curPosY += offsetY;\n }\n context.lineTo(curPosX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = \"rgba(255, 255, 255, .1)\";\n context.stroke();\n context.beginPath();\n context.moveTo(curPosMiddleX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = color;\n context.lineWidth = 2;\n context.stroke();\n\n //文本\n const rectY = dataSource[i]?.percentValue\n ? curPosY - r / 3.5\n : curPosY - r / 5.5;\n const legendSize = r / 12;\n\n if (dataSource[i]?.name) {\n context.fillStyle = color;\n context.fillRect(rectX, rectY, rectSize, rectSize);\n\n context.textAlign = \"left\";\n context.font = `400 ${legendSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"rgba(255, 255, 255, .4)\";\n context.fillText(\n `${dataSource[i].name}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2\n );\n context.stroke();\n }\n if (dataSource[i]?.percentValue) {\n const percentSize = r / 10;\n context.textAlign = \"left\";\n context.font = `500 ${percentSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.fillText(\n `${dataSource[i]?.percentValue}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2 + legendSize * 1.5\n );\n context.stroke();\n }\n });\n context.restore();\n};\n\n/**\n * 绘制数据点圆圈\n * dataPoints: 数据的位置数组\n * r: 圆圈半径\n * strokeStyle: 圆的描边样式\n * fillStyle: 圆的描边宽度\n * lineWidth: 圆的填充样式\n */\nexport const drawDataCircle = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataCircleOptions\n) {\n const { strokeStyle, fillStyle, dataPoints } = options;\n const r = options.r * ratio,\n lineWidth = options.lineWidth * ratio;\n\n const dataPointsPosArrayLen = dataPoints.length;\n for (let i = 0; i < dataPointsPosArrayLen; i++) {\n drawCircle(context, {\n x: dataPoints[i].x,\n y: dataPoints[i].y,\n r: r,\n originX: origin[0],\n originY: origin[1],\n strokeStyle: strokeStyle,\n lineWidth: lineWidth,\n fillStyle: fillStyle,\n });\n }\n};\n\n/**\n * 绘制圆圈\n * x: 圆心位置x\n * y: 圆心位置y\n * r: 半径\n * originX: 原点位置x\n * originY: 原点位置y\n * strokeStyle: 描边样式\n * lineWidth: 线条宽度\n * fillStyle: 填充样式\n */\nexport function drawCircle(\n context: CanvasRenderingContext2D,\n options: CircleOptions\n) {\n const { x, y, r, originX, originY, strokeStyle, lineWidth, fillStyle } =\n options;\n context.save();\n context.beginPath();\n context.translate(originX, originY);\n context.arc(x, y, r, 0, Math.PI * 2);\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.fillStyle = fillStyle;\n context.stroke();\n context.fill();\n context.restore();\n}\n\n/**\n * 绘制数据多边形填充\n * dataPoints: 数据的位置数组\n * fillStyle: 填充样式\n */\nexport const drawDataFill = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataFillProps\n) {\n const { fillStyle, dataPoints } = options;\n const dataPointsPosArrayLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsPosArrayLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.fillStyle = fillStyle;\n context.fill();\n context.restore();\n};\n\n/**\n * 绘制数据点组成的图案\n * dataLineOptions\n * dataFillOptions\n * dataCircleOptions\n */\nexport const drawDataPoly = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataPolyProps\n) {\n const { dataLineOptions, dataFillOptions, dataCircleOptions } = options;\n const dataPointsPosArrayLen = dataLineOptions.dataPoints.length;\n if (dataPointsPosArrayLen === 0) return;\n // 绘制数据点连接线条\n drawDataLine(context, origin, dataLineOptions);\n // 绘制数据多边形填充\n drawDataFill(context, origin, dataFillOptions);\n // 绘制数据点圆圈\n drawDataCircle(context, origin, ratio, dataCircleOptions);\n};\n\n/**\n * 绘制雷达的背景图\n * 参数options对象的属性如下:\n * layer: 多边形层数\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * oddStrokeStyle: index为奇数的多边形的描边颜色\n * oddFillStyle: index为奇数的多边形的填充颜色\n * evenStrokeStyle: index为偶数的多边形的描边颜色\n * evenFillStyle: index为偶数的多边形的填充颜色\n */\nexport const drawRadarBackground = function (\n context: CanvasRenderingContext2D,\n options: DrawRadarBgOption\n) {\n const { layer, n, r, ratio, origin, lineWidth } = options;\n const evenStrokeStyle = \"transparent\",\n oddStrokeStyle = \"transparent\",\n evenFillStyle = [[\"#3366FF\", \"#83F5E1\"]],\n oddFillStyle = \"#29292d\";\n // 由外向内绘画多边形\n for (let i = layer; i > 0; i--) {\n if (i === layer) {\n drawGradientPolygon(context, {\n n,\n r,\n origin,\n ratio,\n lineWidth,\n strokeStyle: \"rgba(51, 102, 255)\",\n });\n drawGradientPolygon(context, {\n n,\n r: r * 0.95,\n origin,\n ratio,\n strokeStyle: \"rgba(76,132,250,0.1)\",\n lineWidth,\n });\n } else {\n const layerDis = (r * 0.95) / layer;\n const fillStyle = i % 2 != 0 ? oddFillStyle : evenFillStyle,\n strokeStyle = i % 2 != 0 ? oddStrokeStyle : evenStrokeStyle,\n layerRadiu = layerDis * i;\n drawPolygon(context, {\n n,\n r: layerRadiu,\n origin,\n fillStyle,\n strokeStyle,\n lineWidth,\n ratio,\n });\n }\n }\n};\n","import React, { ReactElement, useEffect, useRef, useState } from \"react\";\nimport {\n baseRadarConfig,\n baseUserConfig,\n constructBaseConfig,\n constructUserConfig,\n drawDataPoly,\n drawLeadLineAndText,\n drawRadarBackground,\n drawVertexLine,\n getDataPointsPos,\n getPolygonPos,\n} from \"./utils.js\";\nimport { BaseConfig, RadarProps, UserConfig } from \"./interface.js\";\n\nexport function Radar({\n dataSource,\n radius,\n value,\n dataFill,\n dataCircle,\n dataLine,\n scale,\n ...props\n}: RadarProps): ReactElement {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D>(null);\n const [baseConfig, setBaseConfig] = useState<BaseConfig>(baseRadarConfig);\n const [userConfig, setUserConfig] = useState<UserConfig>(baseUserConfig);\n\n const ratio = window.devicePixelRatio;\n useEffect(() => {\n const canvas = canvasRef.current;\n const context = canvas.getContext(\"2d\");\n const canvasWidth = canvas.clientWidth;\n const canvasHeight = canvas.clientHeight;\n // 根据设备像素比调整画布的实际像素大小\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n const defaultRadius = Math.min(canvas.width, canvas.height) * scale; // 正多边形的默认半径\n\n contextRef.current = context;\n setBaseConfig(constructBaseConfig(dataSource, radius ?? defaultRadius));\n }, [dataSource, radius, scale]);\n useEffect(() => {\n setUserConfig(constructUserConfig(dataFill, dataCircle, dataLine));\n }, [dataFill, dataCircle, dataLine]);\n\n useEffect(() => {\n let radiusPrecent = 0,\n timer = null;\n const canvas = canvasRef.current;\n const context = contextRef.current;\n const origin = [canvas.width / 2, canvas.height / 2];\n\n if (context) {\n // 起requestAnimationFrame为了数值绘制区域有过渡效果\n const drawFrame = () => {\n timer = window.requestAnimationFrame(drawFrame);\n // 数据点坐标元素\n radiusPrecent += 0.05;\n if (radiusPrecent >= 1) {\n window.cancelAnimationFrame(timer);\n }\n // 清空画布\n context.clearRect(0, 0, canvas.width, canvas.height);\n // 绘制背景图\n drawRadarBackground(context, {\n layer: 5,\n n: baseConfig.n,\n r: baseConfig.radius,\n ratio,\n origin,\n lineWidth: 2,\n });\n\n const dataRadius = baseConfig.dataRadius.map((value) => {\n return value * radiusPrecent;\n });\n const dataPointsPosArray = getDataPointsPos(\n baseConfig.n,\n dataRadius,\n baseConfig.angleArr\n );\n const dataLineOptions = {\n dataPoints: dataPointsPosArray,\n strokeStyle: userConfig.dataLine.strokeStyle,\n lineWidth: userConfig.dataLine.lineWidth,\n };\n const dataCircleOptions = {\n dataPoints: dataPointsPosArray,\n r: userConfig.dataCircle.r,\n strokeStyle: userConfig.dataCircle.strokeStyle,\n fillStyle: userConfig.dataCircle.fillStyle,\n lineWidth: userConfig.dataCircle.lineWidth,\n };\n const dataFillOptions = {\n dataPoints: dataPointsPosArray,\n fillStyle: userConfig.dataFill.fillStyle,\n };\n drawDataPoly(context, origin, ratio, {\n dataLineOptions: dataLineOptions,\n dataFillOptions: dataFillOptions,\n dataCircleOptions: dataCircleOptions,\n });\n\n //绘制放射性中心点到多边形顶点连线\n const polygonOuterPointsPosArr = getPolygonPos(\n baseConfig.n,\n baseConfig.radius,\n origin\n );\n drawVertexLine(context, origin, polygonOuterPointsPosArr);\n drawLeadLineAndText(\n context,\n origin,\n baseConfig.radius,\n polygonOuterPointsPosArr,\n baseConfig.originDataSource\n );\n if (value) {\n const fontSize = baseConfig.radius / 5;\n context.font = `bold ${fontSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.textAlign = \"center\";\n context.textBaseline = \"middle\";\n context.fillText(`${value}`, origin[0], origin[1]);\n }\n };\n drawFrame();\n }\n }, [baseConfig, userConfig, value]);\n\n return (\n <div\n className=\"radarWrap\"\n style={{ width: `${props.width}px`, height: `${props.height}px` }}\n >\n <canvas className=\"canvasWrap\" ref={canvasRef} />\n </div>\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, \".radarWrap{position:relative;width:100%;height:100%;.canvasWrap{display:block;width:100%;height:100%}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}"],"names":["colorMap","baseUserConfig","dataFill","fillStyle","dataCircle","r","strokeStyle","lineWidth","dataLine","baseRadarConfig","n","dataRadiusOfPercent","dataRadius","angleArr","tooltipsContentArr","originDataSource","radius","constructBaseConfig","dataSource","baseConfig","cloneDeep","length","disAngle","Math","PI","forEach","data","i","value","maxValue","constructUserConfig","userConfig","merge","getDataPointsPos","dataRadiusArr","dataPointsPosArray","curPoinrPos","x","y","sin","cos","push","getPolygonPos","origin","dotsArray","angle","curPos","drawPolygon","context","options","ratio","save","beginPath","translate","moveTo","rotate","lineTo","closePath","stroke","lineCap","Array","gradient","createLinearGradient","colors","addColorStop","fill","restore","drawGradientPolygon","startX","startY","endX","endY","drawVertexLine","dataPoints","map","point","drawLeadLineAndText","offsetX","offsetY","offsetEndX","_dataSource$i","_dataSource$i2","_dataSource$i3","_dataSource$i4","curPosX","curPosMiddleX","curPosEndX","curPosY","rectX","color","rectY","percentValue","legendSize","name","fillRect","textAlign","font","concat","fillText","rectSize","_dataSource$i5","percentSize","drawCircle","originX","originY","arc","lineJoin","drawDataPoly","dataLineOptions","dataFillOptions","dataCircleOptions","dataPointsLen","drawDataLine","dataPointsPosArrayLen","drawDataFill","drawDataCircle","drawRadarBackground","layer","evenFillStyle","Radar","_ref","scale","props","_objectWithoutProperties","_excluded","canvasRef","useRef","contextRef","setBaseConfig","useState","setUserConfig","window","devicePixelRatio","useEffect","canvas","current","getContext","canvasWidth","clientWidth","canvasHeight","clientHeight","width","height","defaultRadius","min","radiusPrecent","timer","drawFrame","requestAnimationFrame","cancelAnimationFrame","clearRect","polygonOuterPointsPosArr","fontSize","textBaseline","React","className","style","ref","___CSS_LOADER_EXPORT___","module","id","toString","source","excluded","key","target","sourceKeys","Object","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/6252.a408a0a3.js","mappings":"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","sources":["webpack:///./src/radar-chart/utils.ts","webpack:///./src/radar-chart/radar.tsx","webpack:///./src/radar-chart/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["import { cloneDeep, merge } from \"lodash\";\nimport {\n Axis,\n BaseConfig,\n CircleOptions,\n Data,\n DataCircle,\n DataCircleOptions,\n DataFill,\n DataFillProps,\n DataLine,\n DataLineOptions,\n DataPolyProps,\n DrawPolygonOptions,\n DrawRadarBgOption,\n GradientPolygon,\n UserConfig,\n} from \"./interface.js\";\n\nexport const colorMap = [\n \"#5B8FF9\",\n \"#5AD8A6\",\n \"#5D7092\",\n \"#F6BD16\",\n \"#E86452\",\n \"#6DC8EC\",\n \"#945FB9\",\n \"#FF9845\",\n \"#1E9493\",\n \"#FF99C3\",\n]; //chart-v2 的主题色\n\nexport const baseUserConfig: UserConfig = {\n dataFill: {\n fillStyle: \"rgba(76,132,250,0.67)\",\n },\n dataCircle: {\n r: 2,\n strokeStyle: \"#ccc\",\n fillStyle: \"#fff\",\n lineWidth: 0.5,\n },\n dataLine: {\n strokeStyle: \"#0B2EE7\",\n lineWidth: 5,\n },\n};\nexport const baseRadarConfig: BaseConfig = {\n n: 0,\n dataRadiusOfPercent: [],\n dataRadius: [],\n angleArr: [],\n tooltipsContentArr: [],\n originDataSource: [],\n radius: 1,\n};\n/**\n * // 初始化参数配置\n * @param dataSource\n * @param radius\n * @returns BaseConfig\n */\nexport const constructBaseConfig = function (\n dataSource: Data[],\n radius: number\n) {\n const baseConfig: BaseConfig = cloneDeep(baseRadarConfig);\n baseConfig.radius = radius;\n if (dataSource?.length < 1) return baseConfig;\n baseConfig.originDataSource = dataSource;\n baseConfig.n = dataSource.length;\n const disAngle = (Math.PI * 2) / baseConfig.n;\n dataSource.forEach((data, i) => {\n baseConfig.dataRadiusOfPercent[i] = data.value / data.maxValue;\n baseConfig.dataRadius[i] = baseConfig.dataRadiusOfPercent[i] * radius;\n baseConfig.angleArr[i] = i * disAngle;\n });\n return baseConfig;\n};\n\nexport const constructUserConfig = function (\n dataFill: DataFill,\n dataCircle: DataCircle,\n dataLine: DataLine\n) {\n const userConfig: UserConfig = cloneDeep(baseUserConfig);\n merge(userConfig.dataFill, dataFill);\n merge(userConfig.dataCircle, dataCircle);\n merge(userConfig.dataLine, dataLine);\n return userConfig;\n};\n\n/**\n * 获取数据点相对于原点的坐标\n * n:多边形边数\n * dataRadiusArr: 数据点的坐标数组\n * angleArr: 多边形的角度数组\n */\nexport const getDataPointsPos = function (\n n: number,\n dataRadiusArr: number[],\n angleArr: number[]\n) {\n const dataPointsPosArray = [];\n for (let i = 0; i < n; i++) {\n const curPoinrPos: Axis = {\n x: 0,\n y: 0,\n };\n curPoinrPos.x = dataRadiusArr[i] * Math.sin(angleArr[i]);\n curPoinrPos.y = -dataRadiusArr[i] * Math.cos(angleArr[i]);\n dataPointsPosArray.push(curPoinrPos);\n }\n return dataPointsPosArray;\n};\n\n/**\n * 获取正多边形每个点的坐标位置数组(相对于原点)\n * n: 多边形的边数\n * r: 半径\n * origin: 原点位置\n */\nexport const getPolygonPos = function (n: number, r: number, origin: number[]) {\n const dotsArray = []; // 多边形每一个点的坐标数组,格式如[{x: 1, y: 2}]\n const angle = (Math.PI * 2) / n;\n for (let i = 0; i < n; i++) {\n const curPos: Axis = {\n x: 0,\n y: 0,\n };\n curPos.x = r * Math.sin(i * angle) + origin[0];\n curPos.y = -r * Math.cos(i * angle) + origin[1];\n dotsArray.push(curPos);\n }\n return dotsArray;\n};\n\n/**\n * 绘制闭合正多边形\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * fillStyle:填充样式\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawPolygon = function (\n context: CanvasRenderingContext2D,\n options: DrawPolygonOptions\n) {\n // 对传入参数进行默认值设置\n const n = options.n,\n r = options.r,\n origin = options.origin,\n strokeStyle = options.strokeStyle,\n lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n\n context.save();\n context.beginPath();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n context.moveTo(0, -r);\n for (let i = 0; i < n; i++) {\n context.rotate(angle);\n context.lineTo(0, -r);\n }\n context.closePath();\n context.stroke();\n\n if (options.strokeStyle) {\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n }\n if (options.fillStyle) {\n if (typeof options.fillStyle === \"string\") {\n context.fillStyle = options.fillStyle;\n } else if (options.fillStyle instanceof Array) {\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(-r, -r, r, r);\n options.fillStyle.forEach((colors) => {\n gradient.addColorStop(0, colors[0]);\n gradient.addColorStop(1, colors[1]);\n });\n context.fillStyle = gradient;\n }\n\n context.fill();\n }\n context.restore();\n};\n\n/**\n * 绘制线性渐变的多边形,\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawGradientPolygon = function (\n context: CanvasRenderingContext2D,\n options: GradientPolygon\n) {\n // 对传入参数进行默认值设置\n const { n, r, origin, strokeStyle } = options;\n const lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n context.save();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n\n // 设置线条样式\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n // 添加偏移量,使第一条边与正上方对齐\n context.rotate(-Math.PI / 2);\n\n for (let i = 0; i < n; i++) {\n // 计算当前边的起点和终点坐标\n const startX = r * Math.cos(angle * i),\n startY = r * Math.sin(angle * i),\n endX = r * Math.cos(angle * (i + 1)),\n endY = r * Math.sin(angle * (i + 1));\n // 开始一个新的路径\n context.beginPath();\n // 绘制多边形的一条边\n context.moveTo(startX, startY);\n context.lineTo(endX, endY);\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(startX, startY, endX, endY);\n gradient.addColorStop(0, strokeStyle);\n gradient.addColorStop(0.5, \"#1D2B57\");\n gradient.addColorStop(0.6, \"#1D2B57\");\n gradient.addColorStop(1, strokeStyle);\n // 设置当前路径的描边样式为线性渐变\n context.strokeStyle = gradient;\n context.stroke();\n }\n context.restore();\n};\n\n/**\n * 绘制数据点连接线条(一次性画完)\n * dataPoints: 数据的位置数组\n * strokeStyle: 线条样式\n * lineWidth: 线条宽度\n */\nexport const drawDataLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataLineOptions\n) {\n const { strokeStyle, lineWidth, dataPoints } = options;\n const dataPointsLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.stroke();\n context.restore();\n};\n/**\n * 绘制放射性中心点到多边形顶点连线\n * @param context\n * @param origin\n * @param dataPoints 多边形顶点坐标\n */\nexport const drawVertexLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n dataPoints: Axis[]\n) {\n context.save();\n context.beginPath();\n dataPoints.map((point) => {\n context.moveTo(origin[0], origin[1]);\n context.lineTo(point.x, point.y);\n });\n context.strokeStyle = \"#1D2B57\";\n context.lineWidth = 2;\n context.stroke();\n context.restore();\n};\nexport const drawLeadLineAndText = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n r: number,\n dataPoints: Axis[],\n dataSource: Data[]\n) {\n context.save();\n const offsetX = r / 2,\n offsetY = r / 4,\n offsetEndX = r / 12 > 10 ? r / 12 : 10,\n rectSize = 12;\n dataPoints.map((point, i) => {\n let curPosX = point.x,\n curPosMiddleX = point.x,\n curPosEndX = point.x,\n curPosY = point.y,\n rectX = point.x;\n const color = dataSource[i]?.color || colorMap[i] || \"#ccc\";\n context.beginPath();\n context.moveTo(point.x, point.y);\n\n if (point.x - origin[0] >= 0) {\n //引线方向往右\n curPosX += offsetX;\n curPosMiddleX = curPosX + offsetX;\n curPosEndX = curPosMiddleX + offsetEndX;\n rectX = curPosX + rectSize;\n } else if (point.x - origin[0] < 0) {\n //引线方向往左\n curPosX -= offsetX;\n curPosMiddleX = curPosX - offsetX;\n curPosEndX = curPosMiddleX - offsetEndX;\n rectX = curPosMiddleX + rectSize;\n }\n\n if (point.y - origin[1] < 0) {\n curPosY -= offsetY;\n } else if (point.y - origin[1] > 0) {\n curPosY += offsetY;\n }\n context.lineTo(curPosX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = \"rgba(255, 255, 255, .1)\";\n context.stroke();\n context.beginPath();\n context.moveTo(curPosMiddleX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = color;\n context.lineWidth = 2;\n context.stroke();\n\n //文本\n const rectY = dataSource[i]?.percentValue\n ? curPosY - r / 3.5\n : curPosY - r / 5.5;\n const legendSize = r / 12;\n\n if (dataSource[i]?.name) {\n context.fillStyle = color;\n context.fillRect(rectX, rectY, rectSize, rectSize);\n\n context.textAlign = \"left\";\n context.font = `400 ${legendSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"rgba(255, 255, 255, .4)\";\n context.fillText(\n `${dataSource[i].name}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2\n );\n context.stroke();\n }\n if (dataSource[i]?.percentValue) {\n const percentSize = r / 10;\n context.textAlign = \"left\";\n context.font = `500 ${percentSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.fillText(\n `${dataSource[i]?.percentValue}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2 + legendSize * 1.5\n );\n context.stroke();\n }\n });\n context.restore();\n};\n\n/**\n * 绘制数据点圆圈\n * dataPoints: 数据的位置数组\n * r: 圆圈半径\n * strokeStyle: 圆的描边样式\n * fillStyle: 圆的描边宽度\n * lineWidth: 圆的填充样式\n */\nexport const drawDataCircle = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataCircleOptions\n) {\n const { strokeStyle, fillStyle, dataPoints } = options;\n const r = options.r * ratio,\n lineWidth = options.lineWidth * ratio;\n\n const dataPointsPosArrayLen = dataPoints.length;\n for (let i = 0; i < dataPointsPosArrayLen; i++) {\n drawCircle(context, {\n x: dataPoints[i].x,\n y: dataPoints[i].y,\n r: r,\n originX: origin[0],\n originY: origin[1],\n strokeStyle: strokeStyle,\n lineWidth: lineWidth,\n fillStyle: fillStyle,\n });\n }\n};\n\n/**\n * 绘制圆圈\n * x: 圆心位置x\n * y: 圆心位置y\n * r: 半径\n * originX: 原点位置x\n * originY: 原点位置y\n * strokeStyle: 描边样式\n * lineWidth: 线条宽度\n * fillStyle: 填充样式\n */\nexport function drawCircle(\n context: CanvasRenderingContext2D,\n options: CircleOptions\n) {\n const { x, y, r, originX, originY, strokeStyle, lineWidth, fillStyle } =\n options;\n context.save();\n context.beginPath();\n context.translate(originX, originY);\n context.arc(x, y, r, 0, Math.PI * 2);\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.fillStyle = fillStyle;\n context.stroke();\n context.fill();\n context.restore();\n}\n\n/**\n * 绘制数据多边形填充\n * dataPoints: 数据的位置数组\n * fillStyle: 填充样式\n */\nexport const drawDataFill = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataFillProps\n) {\n const { fillStyle, dataPoints } = options;\n const dataPointsPosArrayLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsPosArrayLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.fillStyle = fillStyle;\n context.fill();\n context.restore();\n};\n\n/**\n * 绘制数据点组成的图案\n * dataLineOptions\n * dataFillOptions\n * dataCircleOptions\n */\nexport const drawDataPoly = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataPolyProps\n) {\n const { dataLineOptions, dataFillOptions, dataCircleOptions } = options;\n const dataPointsPosArrayLen = dataLineOptions.dataPoints.length;\n if (dataPointsPosArrayLen === 0) return;\n // 绘制数据点连接线条\n drawDataLine(context, origin, dataLineOptions);\n // 绘制数据多边形填充\n drawDataFill(context, origin, dataFillOptions);\n // 绘制数据点圆圈\n drawDataCircle(context, origin, ratio, dataCircleOptions);\n};\n\n/**\n * 绘制雷达的背景图\n * 参数options对象的属性如下:\n * layer: 多边形层数\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * oddStrokeStyle: index为奇数的多边形的描边颜色\n * oddFillStyle: index为奇数的多边形的填充颜色\n * evenStrokeStyle: index为偶数的多边形的描边颜色\n * evenFillStyle: index为偶数的多边形的填充颜色\n */\nexport const drawRadarBackground = function (\n context: CanvasRenderingContext2D,\n options: DrawRadarBgOption\n) {\n const { layer, n, r, ratio, origin, lineWidth } = options;\n const evenStrokeStyle = \"transparent\",\n oddStrokeStyle = \"transparent\",\n evenFillStyle = [[\"#3366FF\", \"#83F5E1\"]],\n oddFillStyle = \"#29292d\";\n // 由外向内绘画多边形\n for (let i = layer; i > 0; i--) {\n if (i === layer) {\n drawGradientPolygon(context, {\n n,\n r,\n origin,\n ratio,\n lineWidth,\n strokeStyle: \"rgba(51, 102, 255)\",\n });\n drawGradientPolygon(context, {\n n,\n r: r * 0.95,\n origin,\n ratio,\n strokeStyle: \"rgba(76,132,250,0.1)\",\n lineWidth,\n });\n } else {\n const layerDis = (r * 0.95) / layer;\n const fillStyle = i % 2 != 0 ? oddFillStyle : evenFillStyle,\n strokeStyle = i % 2 != 0 ? oddStrokeStyle : evenStrokeStyle,\n layerRadiu = layerDis * i;\n drawPolygon(context, {\n n,\n r: layerRadiu,\n origin,\n fillStyle,\n strokeStyle,\n lineWidth,\n ratio,\n });\n }\n }\n};\n","import React, { ReactElement, useEffect, useRef, useState } from \"react\";\nimport {\n baseRadarConfig,\n baseUserConfig,\n constructBaseConfig,\n constructUserConfig,\n drawDataPoly,\n drawLeadLineAndText,\n drawRadarBackground,\n drawVertexLine,\n getDataPointsPos,\n getPolygonPos,\n} from \"./utils.js\";\nimport { BaseConfig, RadarProps, UserConfig } from \"./interface.js\";\n\nexport function Radar({\n dataSource,\n radius,\n value,\n dataFill,\n dataCircle,\n dataLine,\n scale,\n ...props\n}: RadarProps): ReactElement {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D>(null);\n const [baseConfig, setBaseConfig] = useState<BaseConfig>(baseRadarConfig);\n const [userConfig, setUserConfig] = useState<UserConfig>(baseUserConfig);\n\n const ratio = window.devicePixelRatio;\n useEffect(() => {\n const canvas = canvasRef.current;\n const context = canvas.getContext(\"2d\");\n const canvasWidth = canvas.clientWidth;\n const canvasHeight = canvas.clientHeight;\n // 根据设备像素比调整画布的实际像素大小\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n const defaultRadius = Math.min(canvas.width, canvas.height) * scale; // 正多边形的默认半径\n\n contextRef.current = context;\n setBaseConfig(constructBaseConfig(dataSource, radius ?? defaultRadius));\n }, [dataSource, radius, scale]);\n useEffect(() => {\n setUserConfig(constructUserConfig(dataFill, dataCircle, dataLine));\n }, [dataFill, dataCircle, dataLine]);\n\n useEffect(() => {\n let radiusPrecent = 0,\n timer = null;\n const canvas = canvasRef.current;\n const context = contextRef.current;\n const origin = [canvas.width / 2, canvas.height / 2];\n\n if (context) {\n // 起requestAnimationFrame为了数值绘制区域有过渡效果\n const drawFrame = () => {\n timer = window.requestAnimationFrame(drawFrame);\n // 数据点坐标元素\n radiusPrecent += 0.05;\n if (radiusPrecent >= 1) {\n window.cancelAnimationFrame(timer);\n }\n // 清空画布\n context.clearRect(0, 0, canvas.width, canvas.height);\n // 绘制背景图\n drawRadarBackground(context, {\n layer: 5,\n n: baseConfig.n,\n r: baseConfig.radius,\n ratio,\n origin,\n lineWidth: 2,\n });\n\n const dataRadius = baseConfig.dataRadius.map((value) => {\n return value * radiusPrecent;\n });\n const dataPointsPosArray = getDataPointsPos(\n baseConfig.n,\n dataRadius,\n baseConfig.angleArr\n );\n const dataLineOptions = {\n dataPoints: dataPointsPosArray,\n strokeStyle: userConfig.dataLine.strokeStyle,\n lineWidth: userConfig.dataLine.lineWidth,\n };\n const dataCircleOptions = {\n dataPoints: dataPointsPosArray,\n r: userConfig.dataCircle.r,\n strokeStyle: userConfig.dataCircle.strokeStyle,\n fillStyle: userConfig.dataCircle.fillStyle,\n lineWidth: userConfig.dataCircle.lineWidth,\n };\n const dataFillOptions = {\n dataPoints: dataPointsPosArray,\n fillStyle: userConfig.dataFill.fillStyle,\n };\n drawDataPoly(context, origin, ratio, {\n dataLineOptions: dataLineOptions,\n dataFillOptions: dataFillOptions,\n dataCircleOptions: dataCircleOptions,\n });\n\n //绘制放射性中心点到多边形顶点连线\n const polygonOuterPointsPosArr = getPolygonPos(\n baseConfig.n,\n baseConfig.radius,\n origin\n );\n drawVertexLine(context, origin, polygonOuterPointsPosArr);\n drawLeadLineAndText(\n context,\n origin,\n baseConfig.radius,\n polygonOuterPointsPosArr,\n baseConfig.originDataSource\n );\n if (value) {\n const fontSize = baseConfig.radius / 5;\n context.font = `bold ${fontSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.textAlign = \"center\";\n context.textBaseline = \"middle\";\n context.fillText(`${value}`, origin[0], origin[1]);\n }\n };\n drawFrame();\n }\n }, [baseConfig, userConfig, value]);\n\n return (\n <div\n className=\"radarWrap\"\n style={{ width: `${props.width}px`, height: `${props.height}px` }}\n >\n <canvas className=\"canvasWrap\" ref={canvasRef} />\n </div>\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, `.radarWrap{position:relative;width:100%;height:100%;.canvasWrap{display:block;width:100%;height:100%}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}"],"names":["colorMap","baseUserConfig","dataFill","fillStyle","dataCircle","r","strokeStyle","lineWidth","dataLine","baseRadarConfig","n","dataRadiusOfPercent","dataRadius","angleArr","tooltipsContentArr","originDataSource","radius","constructBaseConfig","dataSource","baseConfig","cloneDeep","length","disAngle","Math","PI","forEach","data","i","value","maxValue","constructUserConfig","userConfig","merge","getDataPointsPos","dataRadiusArr","dataPointsPosArray","curPoinrPos","x","y","sin","cos","push","getPolygonPos","origin","dotsArray","angle","curPos","drawPolygon","context","options","ratio","save","beginPath","translate","moveTo","rotate","lineTo","closePath","stroke","lineCap","Array","gradient","createLinearGradient","colors","addColorStop","fill","restore","drawGradientPolygon","startX","startY","endX","endY","drawVertexLine","dataPoints","map","point","drawLeadLineAndText","offsetX","offsetY","offsetEndX","_dataSource$i","_dataSource$i2","_dataSource$i3","_dataSource$i4","curPosX","curPosMiddleX","curPosEndX","curPosY","rectX","color","rectY","percentValue","legendSize","name","fillRect","textAlign","font","concat","fillText","rectSize","_dataSource$i5","percentSize","drawCircle","originX","originY","arc","lineJoin","drawDataPoly","dataLineOptions","dataFillOptions","dataCircleOptions","dataPointsLen","drawDataLine","dataPointsPosArrayLen","drawDataFill","drawDataCircle","drawRadarBackground","layer","evenFillStyle","Radar","_ref","scale","props","_objectWithoutProperties","_excluded","canvasRef","useRef","contextRef","setBaseConfig","useState","setUserConfig","window","devicePixelRatio","useEffect","canvas","current","getContext","canvasWidth","clientWidth","canvasHeight","clientHeight","width","height","defaultRadius","min","radiusPrecent","timer","drawFrame","requestAnimationFrame","cancelAnimationFrame","clearRect","polygonOuterPointsPosArr","fontSize","textBaseline","React","className","style","ref","___CSS_LOADER_EXPORT___","module","id","toString","source","excluded","key","target","sourceKeys","Object","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call"],"sourceRoot":""}
|