@antscorp/antsomi-genai 1.0.6 → 1.0.8
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/Component-5tZ5h_sR.mjs +100 -0
- package/dist/Component-5tZ5h_sR.mjs.map +1 -0
- package/dist/{Component-CTfDbD_d.mjs → Component-7PEts-s_.mjs} +3342 -3345
- package/dist/Component-7PEts-s_.mjs.map +1 -0
- package/dist/Component-B83Wd5AE.mjs +83 -0
- package/dist/Component-B83Wd5AE.mjs.map +1 -0
- package/dist/{Component-DKrH_QkH.mjs → Component-BAZRbStH.mjs} +2 -1
- package/dist/Component-BAZRbStH.mjs.map +1 -0
- package/dist/Component-BzsuO3n8.mjs +142 -0
- package/dist/Component-BzsuO3n8.mjs.map +1 -0
- package/dist/Component-CEhBJFCA.mjs +313 -0
- package/dist/Component-CEhBJFCA.mjs.map +1 -0
- package/dist/Component-DHjdgrfM.mjs +86 -0
- package/dist/Component-DHjdgrfM.mjs.map +1 -0
- package/dist/Component-G49xxeB4.mjs +241 -0
- package/dist/Component-G49xxeB4.mjs.map +1 -0
- package/dist/Component-YV3sGbWg.mjs +261 -0
- package/dist/Component-YV3sGbWg.mjs.map +1 -0
- package/dist/Component-d7cDCRNK.mjs +141 -0
- package/dist/Component-d7cDCRNK.mjs.map +1 -0
- package/dist/{index-Cmy0W3pf.mjs → index-6GAQ9ihW.mjs} +1210 -1269
- package/dist/index-6GAQ9ihW.mjs.map +1 -0
- package/dist/{index-CQEJnKKK.mjs → index-BT1TrqjD.mjs} +2 -1
- package/dist/index-BT1TrqjD.mjs.map +1 -0
- package/dist/index-C64kNXxs.mjs +249 -0
- package/dist/index-C64kNXxs.mjs.map +1 -0
- package/dist/index-C7wLrNkc.mjs +6 -0
- package/dist/index-C7wLrNkc.mjs.map +1 -0
- package/dist/{index-sCbsA1DR.mjs → index-CPJ3867M.mjs} +3 -2
- package/dist/index-CPJ3867M.mjs.map +1 -0
- package/dist/{index-B5HGiE1g.mjs → index-CmRpViq1.mjs} +3561 -3509
- package/dist/index-CmRpViq1.mjs.map +1 -0
- package/dist/index-D04sfX5-.mjs +6 -0
- package/dist/index-D04sfX5-.mjs.map +1 -0
- package/dist/{index-j8mMwpTN.mjs → index-DWnKer9T.mjs} +188 -183
- package/dist/index-DWnKer9T.mjs.map +1 -0
- package/dist/{index-BunB7Zfa.mjs → index-Ddza-lgc.mjs} +3 -2
- package/dist/index-Ddza-lgc.mjs.map +1 -0
- package/dist/index-DljyD4y3.mjs +6 -0
- package/dist/index-DljyD4y3.mjs.map +1 -0
- package/dist/{index-DiwQ5kuX.mjs → index-DsNdziRt.mjs} +2 -1
- package/dist/index-DsNdziRt.mjs.map +1 -0
- package/dist/{index-Dh9EYLoH.mjs → index-Ne7pf9XK.mjs} +22 -21
- package/dist/index-Ne7pf9XK.mjs.map +1 -0
- package/dist/{index-JaNOziH3.mjs → index-YlVaQR0G.mjs} +3 -2
- package/dist/index-YlVaQR0G.mjs.map +1 -0
- package/dist/index.es.js +2 -1
- package/dist/index.es.js.map +1 -0
- package/dist/toNumber-CHl49cGq.mjs +1 -0
- package/dist/toNumber-CHl49cGq.mjs.map +1 -0
- package/dist/{useGetSchema-B4FeKOfN.mjs → useGetSchema-BYpDKZeF.mjs} +2 -1
- package/dist/useGetSchema-BYpDKZeF.mjs.map +1 -0
- package/package.json +3 -4
- package/dist/Component-BKr0w4Us.mjs +0 -86
- package/dist/Component-BgBLJsOt.mjs +0 -316
- package/dist/Component-DCaEyotc.mjs +0 -264
- package/dist/Component-DOVG-vCq.mjs +0 -144
- package/dist/Component-DXg6OcXi.mjs +0 -244
- package/dist/Component-Deoa-f1C.mjs +0 -89
- package/dist/Component-JWAUzkP5.mjs +0 -103
- package/dist/Component-UboAHscO.mjs +0 -145
- package/dist/index-DHqQn4M-.mjs +0 -5
- package/dist/index-DUG__POS.mjs +0 -5
- package/dist/index-RnRjfUZ7.mjs +0 -5
- package/dist/index-uqO3Q0gN.mjs +0 -210
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Report as S } from "@antscorp/antsomi-charts";
|
|
2
|
+
import { Spin as x } from "@antscorp/antsomi-ui";
|
|
3
|
+
import h, { forwardRef as C, useState as D, useMemo as w } from "react";
|
|
4
|
+
import { a as N, j as g, a8 as z, U as y } from "./index-CmRpViq1.mjs";
|
|
5
|
+
import { u as E } from "./useGetSchema-BYpDKZeF.mjs";
|
|
6
|
+
import { i as I } from "./index-DWnKer9T.mjs";
|
|
7
|
+
const v = C((t, a) => {
|
|
8
|
+
const { width: i, height: e } = N(t);
|
|
9
|
+
return g.jsx("svg", { viewBox: "0 0 32 32", fill: "currentColor", ...t, ref: a, width: i, height: e, children: g.jsx("g", { transform: "scale(0.03125 0.03125)", children: g.jsx("path", { d: "M389.74 204.8v80.64h270.72l-476.16 476.16 57.6 57.6 476.16-476.16v270.72h80.64v-408.96z" }) }) });
|
|
10
|
+
}), R = C((t, a) => {
|
|
11
|
+
const { width: i, height: e } = N(t);
|
|
12
|
+
return g.jsx("svg", { viewBox: "0 0 24 24", fill: "currentColor", xmlns: "http://www.w3.org/2000/svg", ...t, ref: a, width: i, height: e, children: g.jsx("path", { d: "M17.3463 15.6478L6.53566 4.83719C6.31986 4.62856 6.02554 4.5 5.70118 4.5C5.03779 4.5 4.5 5.03779 4.5 5.70118C4.5 6.02554 4.62856 6.31986 4.83751 6.53599L4.83719 6.53566L15.6478 17.3463L13.4941 19.5H19.5V13.4941L17.3463 15.6478Z", fill: "currentColor" }) });
|
|
13
|
+
}), L = (t) => {
|
|
14
|
+
const { defaultDateRange: a } = t;
|
|
15
|
+
return { fromRange: a.fromRange, toRange: a.toRange };
|
|
16
|
+
}, b = (t) => {
|
|
17
|
+
const { data: a, settings: i } = t, { rows: e } = a, o = {
|
|
18
|
+
value: 0,
|
|
19
|
+
isNoData: !0,
|
|
20
|
+
conditionalFormattingStyle: {}
|
|
21
|
+
};
|
|
22
|
+
if (e.every((n) => n.value !== void 0)) {
|
|
23
|
+
const { metric: n, conditionalFormatting: d } = i;
|
|
24
|
+
let u = "";
|
|
25
|
+
n.length > 0 && (u = n.at(0)?.name || "");
|
|
26
|
+
const { fromRange: m, toRange: f } = L(i), p = !!(m && f);
|
|
27
|
+
let r = [];
|
|
28
|
+
if (r = u ? e.reduce((s, c) => (c.name === u && c.value && s.push(+c.value), s), []) : [], r && r.length > 0) {
|
|
29
|
+
const s = typeof r[0] < "u" ? +r[0] : 0, c = typeof r[1] < "u" ? +r[1] : 0;
|
|
30
|
+
if (o.isNoData = !1, typeof s == "number" && (o.value = s), p && c > 0) {
|
|
31
|
+
const l = { icon: null, value: Number.NaN };
|
|
32
|
+
s < c ? l.icon = /* @__PURE__ */ h.createElement(R, { size: 14 }) : l.icon = /* @__PURE__ */ h.createElement(v, { size: 14 }), r[0] === null && (l.icon = /* @__PURE__ */ h.createElement(R, { size: 14 })), l.value = c, o.compare = {
|
|
33
|
+
...o,
|
|
34
|
+
...l
|
|
35
|
+
};
|
|
36
|
+
} else if (p) {
|
|
37
|
+
const l = {
|
|
38
|
+
color: "",
|
|
39
|
+
icon: null,
|
|
40
|
+
value: Number.NaN
|
|
41
|
+
};
|
|
42
|
+
typeof r[0] == "number" && (r[1] === null || r[1] === 0) && (l.icon = /* @__PURE__ */ h.createElement(v, { size: 14 })), o.compare = l;
|
|
43
|
+
} else
|
|
44
|
+
o.compare = {
|
|
45
|
+
color: "",
|
|
46
|
+
icon: null,
|
|
47
|
+
value: Number.NaN
|
|
48
|
+
};
|
|
49
|
+
o.conditionalFormattingStyle = S.buildConditionalFormatting(
|
|
50
|
+
d,
|
|
51
|
+
n,
|
|
52
|
+
e
|
|
53
|
+
);
|
|
54
|
+
} else
|
|
55
|
+
o.isNoData = !0;
|
|
56
|
+
}
|
|
57
|
+
return { data: o };
|
|
58
|
+
}, j = (t) => {
|
|
59
|
+
const { nodeViewProps: a } = t, {
|
|
60
|
+
extension: { options: i = {} },
|
|
61
|
+
node: e
|
|
62
|
+
} = a, o = `${i.messageId}`, n = parseInt(i.dataSourceId, 10) || 0, [d, u] = D();
|
|
63
|
+
z(() => {
|
|
64
|
+
u(I.parse(e.attrs));
|
|
65
|
+
}, [e.attrs]);
|
|
66
|
+
const { data: m, dataSourceSchema: f, isLoading: p, error: r } = E({
|
|
67
|
+
id: o,
|
|
68
|
+
attrs: d,
|
|
69
|
+
dataSourceId: n,
|
|
70
|
+
enabled: !!d
|
|
71
|
+
}), s = w(() => d && f ? y.nodeView.report.attrsToCompSetting({
|
|
72
|
+
dataSourceSchema: f,
|
|
73
|
+
attrs: d
|
|
74
|
+
}) : null, [d, f]);
|
|
75
|
+
return { data: w(() => m && s ? b({
|
|
76
|
+
data: m,
|
|
77
|
+
settings: s
|
|
78
|
+
}) : null, [m, s])?.data, settings: s, isLoading: p, error: r };
|
|
79
|
+
}, U = (t) => {
|
|
80
|
+
const { chartWrapperSize: a, renderDropdownAction: i } = t, { settings: e, isLoading: o, data: n } = j({ nodeViewProps: t });
|
|
81
|
+
return o || !n || !e || !a ? /* @__PURE__ */ React.createElement(x, { indicatorSize: 20 }) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
|
|
82
|
+
S.ScoreCard,
|
|
83
|
+
{
|
|
84
|
+
width: a.width,
|
|
85
|
+
height: a.height,
|
|
86
|
+
style: e.style,
|
|
87
|
+
data: {
|
|
88
|
+
value: n.value,
|
|
89
|
+
compare: n.compare
|
|
90
|
+
},
|
|
91
|
+
conditionalFormatting: e.conditionalFormatting,
|
|
92
|
+
defaultDateRange: e.defaultDateRange,
|
|
93
|
+
metric: e.metric
|
|
94
|
+
}
|
|
95
|
+
), i(n));
|
|
96
|
+
};
|
|
97
|
+
export {
|
|
98
|
+
U as ScoreCardNodeView
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=Component-5tZ5h_sR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Component-5tZ5h_sR.mjs","sources":["../node_modules/@antscorp/antsomi-ui/es/components/icons/ArrowGrowIcon.js","../node_modules/@antscorp/antsomi-ui/es/components/icons/ArrowLineIcon.js","../src/components/ConversationMessage/extensions/NodeViews/ScoreCard/utils.tsx","../src/components/ConversationMessage/extensions/NodeViews/ScoreCard/hooks/useScoreCardNodeView.ts","../src/components/ConversationMessage/extensions/NodeViews/ScoreCard/Component.tsx"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from 'react';\nimport { useIcon } from './hooks/useIcon';\nexport const ArrowGrowIcon = forwardRef((props, ref) => {\n const { width, height } = useIcon(props);\n return (_jsx(\"svg\", { viewBox: \"0 0 32 32\", fill: \"currentColor\", ...props, ref: ref, width: width, height: height, children: _jsx(\"g\", { transform: \"scale(0.03125 0.03125)\", children: _jsx(\"path\", { d: \"M389.74 204.8v80.64h270.72l-476.16 476.16 57.6 57.6 476.16-476.16v270.72h80.64v-408.96z\" }) }) }));\n});\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from 'react';\nimport { useIcon } from './hooks/useIcon';\nexport const ArrowLineIcon = forwardRef((props, ref) => {\n const { width, height } = useIcon(props);\n return (_jsx(\"svg\", { viewBox: \"0 0 24 24\", fill: \"currentColor\", xmlns: \"http://www.w3.org/2000/svg\", ...props, ref: ref, width: width, height: height, children: _jsx(\"path\", { d: \"M17.3463 15.6478L6.53566 4.83719C6.31986 4.62856 6.02554 4.5 5.70118 4.5C5.03779 4.5 4.5 5.03779 4.5 5.70118C4.5 6.02554 4.62856 6.31986 4.83751 6.53599L4.83719 6.53566L15.6478 17.3463L13.4941 19.5H19.5V13.4941L17.3463 15.6478Z\", fill: \"currentColor\" }) }));\n});\n","import { Report } from '@antscorp/antsomi-charts';\nimport { ArrowGrowIcon, ArrowLineIcon } from '@antscorp/antsomi-ui/es/components/icons';\nimport React from 'react';\nimport type { ApiScoreCardData, ScoreCardSettings } from '@/types';\n\nconst getRange = (settings: ScoreCardSettings): { fromRange: string; toRange: string } => {\n\tconst { defaultDateRange } = settings;\n\n\treturn { fromRange: defaultDateRange.fromRange, toRange: defaultDateRange.toRange };\n};\n\nexport const serializeReportPerfData = (params: {\n\tdata: ApiScoreCardData;\n\tsettings: ScoreCardSettings;\n}) => {\n\tconst { data, settings } = params;\n\n\tconst { rows } = data;\n\n\ttype TCompare = {\n\t\ticon: React.ReactNode;\n\t\tvalue: number;\n\t\tcolor?: string;\n\t};\n\n\tconst newState: {\n\t\tvalue: number;\n\t\tisNoData: boolean;\n\t\tcompare?: TCompare;\n\t\tconditionalFormattingStyle: Record<\n\t\t\tstring,\n\t\t\t{\n\t\t\t\t[key: string]: {\n\t\t\t\t\tcolor: string;\n\t\t\t\t\tbackgroundColor: string;\n\t\t\t\t};\n\t\t\t}\n\t\t>;\n\t} = {\n\t\tvalue: 0,\n\t\tisNoData: true,\n\t\tconditionalFormattingStyle: {},\n\t};\n\n\tif (rows.every((row) => row.value !== undefined)) {\n\t\tconst { metric: metrics, conditionalFormatting } = settings;\n\n\t\t// Check dimension moved metric\n\t\tlet metricName = '';\n\n\t\tif (metrics.length > 0) {\n\t\t\tmetricName = metrics.at(0)?.name || '';\n\t\t}\n\n\t\tconst { fromRange, toRange } = getRange(settings);\n\n\t\tconst isCompare = !!(fromRange && toRange);\n\n\t\tlet values: number[] = [];\n\n\t\tvalues = metricName\n\t\t\t? rows.reduce<number[]>((arr, cur) => {\n\t\t\t\t\tif (cur.name === metricName && cur.value) {\n\t\t\t\t\t\tarr.push(+cur.value);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn arr;\n\t\t\t\t}, [])\n\t\t\t: [];\n\n\t\tif (values && values.length > 0) {\n\t\t\tconst value = typeof values[0] !== 'undefined' ? +values[0] : 0;\n\n\t\t\tconst valueCompare = typeof values[1] !== 'undefined' ? +values[1] : 0;\n\n\t\t\tnewState.isNoData = false;\n\n\t\t\tif (typeof value === 'number') {\n\t\t\t\tnewState.value = value;\n\t\t\t}\n\n\t\t\tif (isCompare && valueCompare > 0) {\n\t\t\t\tconst compare: TCompare = { icon: null, value: Number.NaN };\n\n\t\t\t\tif (value < valueCompare) {\n\t\t\t\t\tcompare.icon = <ArrowLineIcon size={14} />;\n\t\t\t\t} else {\n\t\t\t\t\tcompare.icon = <ArrowGrowIcon size={14} />;\n\t\t\t\t}\n\n\t\t\t\t// Case value is missing data\n\t\t\t\tif (values[0] === null) {\n\t\t\t\t\tcompare.icon = <ArrowLineIcon size={14} />;\n\t\t\t\t}\n\n\t\t\t\tcompare.value = valueCompare;\n\n\t\t\t\tnewState.compare = {\n\t\t\t\t\t...newState,\n\t\t\t\t\t...compare,\n\t\t\t\t};\n\t\t\t} else if (isCompare) {\n\t\t\t\tconst compare: TCompare = {\n\t\t\t\t\tcolor: '',\n\t\t\t\t\ticon: null,\n\t\t\t\t\tvalue: Number.NaN,\n\t\t\t\t};\n\n\t\t\t\t// Case valueCompare is missing data\n\t\t\t\tif (typeof values[0] === 'number' && (values[1] === null || values[1] === 0)) {\n\t\t\t\t\tcompare.icon = <ArrowGrowIcon size={14} />;\n\t\t\t\t}\n\n\t\t\t\tnewState.compare = compare;\n\t\t\t} else {\n\t\t\t\tnewState.compare = {\n\t\t\t\t\tcolor: '',\n\t\t\t\t\ticon: null,\n\t\t\t\t\tvalue: Number.NaN,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// Conditional Formatting\n\t\t\tnewState.conditionalFormattingStyle = Report.buildConditionalFormatting(\n\t\t\t\tconditionalFormatting,\n\t\t\t\tmetrics,\n\t\t\t\trows,\n\t\t\t);\n\t\t} else {\n\t\t\tnewState.isNoData = true;\n\t\t}\n\t}\n\n\treturn { data: newState };\n};\n","import { useMemo, useState } from 'react';\nimport { useDeepCompareEffect } from 'use-deep-compare';\nimport { useChartNodeView } from '@/hooks/useChartNodeView';\nimport { ScoreCardAttrsSchema } from '@/schemas/tiptap';\nimport type { ChartNodeViewProps, ScoreCardAttrs } from '@/types/tiptap';\nimport { Utils } from '@/utils';\nimport { serializeReportPerfData } from '../utils';\n\ntype Params = {\n\tnodeViewProps: ChartNodeViewProps;\n};\n\nexport const useScoreCardNodeView = (params: Params) => {\n\tconst { nodeViewProps } = params;\n\n\tconst {\n\t\textension: { options = {} },\n\t\tnode,\n\t} = nodeViewProps;\n\n\tconst messageId = `${options.messageId}`;\n\tconst dataSourceId = parseInt(options.dataSourceId, 10) || 0;\n\n\tconst [attrs, setAttrs] = useState<ScoreCardAttrs>();\n\n\tuseDeepCompareEffect(() => {\n\t\tsetAttrs(ScoreCardAttrsSchema.parse(node.attrs));\n\t}, [node.attrs]);\n\n\tconst { data, dataSourceSchema, isLoading, error } = useChartNodeView({\n\t\tid: messageId,\n\t\tattrs,\n\t\tdataSourceId,\n\t\tenabled: !!attrs,\n\t});\n\n\tconst settings = useMemo(() => {\n\t\tif (!(attrs && dataSourceSchema)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn Utils.nodeView.report.attrsToCompSetting({\n\t\t\tdataSourceSchema,\n\t\t\tattrs,\n\t\t});\n\t}, [attrs, dataSourceSchema]);\n\n\tconst serializedData = useMemo(() => {\n\t\tif (!(data && settings)) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn serializeReportPerfData({\n\t\t\tdata,\n\t\t\tsettings,\n\t\t});\n\t}, [data, settings]);\n\n\treturn { data: serializedData?.data, settings, isLoading, error };\n};\n","import { Report } from '@antscorp/antsomi-charts';\nimport { Spin } from '@antscorp/antsomi-ui';\nimport type { ChartNodeViewProps } from '@/types/tiptap';\nimport { useScoreCardNodeView } from './hooks';\n\nexport const ScoreCardNodeView = (props: ChartNodeViewProps) => {\n\tconst { chartWrapperSize, renderDropdownAction } = props;\n\n\tconst { settings, isLoading, data } = useScoreCardNodeView({ nodeViewProps: props });\n\n\tif (isLoading || !data || !settings || !chartWrapperSize) {\n\t\treturn <Spin indicatorSize={20} />;\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<Report.ScoreCard\n\t\t\t\twidth={chartWrapperSize.width}\n\t\t\t\theight={chartWrapperSize.height}\n\t\t\t\tstyle={settings.style}\n\t\t\t\tdata={{\n\t\t\t\t\tvalue: data.value,\n\t\t\t\t\tcompare: data.compare,\n\t\t\t\t}}\n\t\t\t\tconditionalFormatting={settings.conditionalFormatting}\n\t\t\t\tdefaultDateRange={settings.defaultDateRange}\n\t\t\t\tmetric={settings.metric}\n\t\t\t/>\n\n\t\t\t{renderDropdownAction(data)}\n\t\t</>\n\t);\n};\n"],"names":["ArrowGrowIcon","forwardRef","props","ref","width","height","useIcon","_jsx","ArrowLineIcon","getRange","settings","defaultDateRange","serializeReportPerfData","params","data","rows","newState","row","metrics","conditionalFormatting","metricName","fromRange","toRange","isCompare","values","arr","cur","value","valueCompare","compare","React","Report","useScoreCardNodeView","nodeViewProps","options","node","messageId","dataSourceId","attrs","setAttrs","useState","useDeepCompareEffect","ScoreCardAttrsSchema","dataSourceSchema","isLoading","error","useChartNodeView","useMemo","Utils","ScoreCardNodeView","chartWrapperSize","renderDropdownAction","Spin"],"mappings":"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","x_google_ignoreList":[0,1]}
|