@elevasis/ui 2.28.0 → 2.29.0
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/api/index.js +2 -2
- package/dist/app/index.d.ts +6 -12
- package/dist/app/index.js +4 -4
- package/dist/charts/index.js +3 -3
- package/dist/{chunk-OHXU5WWK.js → chunk-3DUOPXOJ.js} +146 -9
- package/dist/{chunk-LWKZ3BCC.js → chunk-5CW2HXQA.js} +4 -4
- package/dist/{chunk-JKBGDFX2.js → chunk-65RQE3XF.js} +378 -254
- package/dist/{chunk-XZSEPJZQ.js → chunk-6NHCE7JM.js} +49 -28
- package/dist/{chunk-RIFTUOPE.js → chunk-6WXDE5LZ.js} +1 -1
- package/dist/{chunk-SGS4CQ2B.js → chunk-7E3FUTND.js} +1 -1
- package/dist/{chunk-UPMX5GJI.js → chunk-A7R2URMV.js} +88 -26
- package/dist/{chunk-UY5I2KOZ.js → chunk-AK5E6ILJ.js} +9 -8
- package/dist/{chunk-G26INIF3.js → chunk-CEHUFNAL.js} +1 -1
- package/dist/{chunk-ONFKASZI.js → chunk-CLUP5H3C.js} +7 -10
- package/dist/{chunk-MYEOTM7D.js → chunk-CN2HC4D4.js} +5 -1
- package/dist/chunk-FFDAE2QI.js +330 -0
- package/dist/{chunk-WUVR4QY6.js → chunk-FGDUK74A.js} +4 -4
- package/dist/{chunk-YHBPR67D.js → chunk-HNFQCOD2.js} +4 -4
- package/dist/{chunk-QD4X4H5A.js → chunk-HXZQWMKE.js} +2 -3
- package/dist/{chunk-KEFWANZY.js → chunk-JCGD4GM6.js} +5 -1
- package/dist/{chunk-YO2YORW4.js → chunk-OHGNCWJP.js} +3 -3
- package/dist/{chunk-JPGX3533.js → chunk-OIMPGKDB.js} +2 -2
- package/dist/{chunk-W2ZTLH7Y.js → chunk-OWESKPTJ.js} +85 -26
- package/dist/{chunk-G66QFZXD.js → chunk-QNL7UI5G.js} +15 -9
- package/dist/{chunk-OGXKOMUT.js → chunk-SZWXQHKO.js} +2 -2
- package/dist/{chunk-ZFLM2YVW.js → chunk-Y3YJKKEB.js} +1 -1
- package/dist/components/index.d.ts +16 -14
- package/dist/components/index.js +26 -26
- package/dist/features/auth/index.d.ts +6 -12
- package/dist/features/auth/index.js +1 -0
- package/dist/features/crm/index.d.ts +16 -14
- package/dist/features/crm/index.js +9 -9
- package/dist/features/dashboard/index.d.ts +16 -3
- package/dist/features/dashboard/index.js +10 -10
- package/dist/features/delivery/index.d.ts +6 -12
- package/dist/features/delivery/index.js +9 -9
- package/dist/features/knowledge/index.js +42 -20
- package/dist/features/lead-gen/index.d.ts +187 -24
- package/dist/features/lead-gen/index.js +10 -10
- package/dist/features/monitoring/index.js +11 -11
- package/dist/features/monitoring/requests/index.js +8 -8
- package/dist/features/operations/index.d.ts +16 -3
- package/dist/features/operations/index.js +15 -15
- package/dist/features/settings/index.d.ts +6 -12
- package/dist/features/settings/index.js +9 -9
- package/dist/hooks/delivery/index.d.ts +6 -12
- package/dist/hooks/delivery/index.js +2 -2
- package/dist/hooks/index.d.ts +110 -28
- package/dist/hooks/index.js +8 -8
- package/dist/hooks/published.d.ts +110 -28
- package/dist/hooks/published.js +8 -8
- package/dist/index.d.ts +149 -31
- package/dist/index.js +8 -8
- package/dist/initialization/index.d.ts +6 -12
- package/dist/knowledge/index.d.ts +44 -1
- package/dist/knowledge/index.js +149 -12
- package/dist/profile/index.d.ts +6 -12
- package/dist/provider/index.d.ts +44 -12
- package/dist/provider/index.js +6 -6
- package/dist/provider/published.d.ts +44 -12
- package/dist/provider/published.js +5 -5
- package/dist/supabase/index.d.ts +12 -24
- package/dist/test-utils/index.js +2 -2
- package/dist/typeform/index.d.ts +5 -1
- package/dist/typeform/index.js +52 -7
- package/dist/types/index.d.ts +7 -13
- package/dist/utils/index.d.ts +1 -3
- package/dist/utils/index.js +1 -1
- package/dist/vite/index.js +2 -2
- package/dist/vite-plugin-knowledge/index.js +1 -1
- package/package.json +5 -5
- package/dist/chunk-4KTLOK7K.js +0 -230
package/dist/knowledge/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { NodeDescribeShell, NodeMetadataFooter, EdgeRelationshipGroup, NodeHeader, getKnowledgeIconToken, KindChip, KeyField } from '../chunk-
|
|
2
|
-
export { EdgeRelationshipGroup, KNOWLEDGE_ICON_TOKEN_BY_KIND, KindChip, KnowledgeSearchBar, KnowledgeTree, NodeDescribeShell, NodeHeader, NodeMetadataFooter, RelatedKnowledgeSection, getKnowledgeIconToken } from '../chunk-
|
|
1
|
+
import { NodeDescribeShell, NodeMetadataFooter, EdgeRelationshipGroup, NodeHeader, getKnowledgeIconToken, KindChip, KeyField, EdgeChip, EdgeGroup } from '../chunk-CLUP5H3C.js';
|
|
2
|
+
export { EdgeRelationshipGroup, KNOWLEDGE_ICON_TOKEN_BY_KIND, KindChip, KnowledgeSearchBar, KnowledgeTree, NodeDescribeShell, NodeHeader, NodeMetadataFooter, RelatedKnowledgeSection, getKnowledgeIconToken } from '../chunk-CLUP5H3C.js';
|
|
3
3
|
import '../chunk-X2SUMO3P.js';
|
|
4
4
|
import '../chunk-JDNEWB5F.js';
|
|
5
|
-
import { SemanticIcon } from '../chunk-
|
|
6
|
-
export { SemanticIcon, extendSemanticIconRegistry, getSemanticIconComponent, resolveSemanticIconComponent } from '../chunk-
|
|
5
|
+
import { SemanticIcon } from '../chunk-JCGD4GM6.js';
|
|
6
|
+
export { SemanticIcon, extendSemanticIconRegistry, getSemanticIconComponent, resolveSemanticIconComponent } from '../chunk-JCGD4GM6.js';
|
|
7
7
|
import '../chunk-XQQEKWTL.js';
|
|
8
8
|
import '../chunk-RYTEQBAO.js';
|
|
9
9
|
import { PageContainer } from '../chunk-BZZCNLT6.js';
|
|
@@ -4998,6 +4998,40 @@ function resolveKnowledgeGraphNode(graph, node) {
|
|
|
4998
4998
|
function getKnowledgeCommand(nodeId) {
|
|
4999
4999
|
return `/knowledge read ${nodeId.replace(/^knowledge:/, "")}`;
|
|
5000
5000
|
}
|
|
5001
|
+
function SkillBindings({ node }) {
|
|
5002
|
+
const skills = node.skills ?? [];
|
|
5003
|
+
if (!node.domain && skills.length === 0) return null;
|
|
5004
|
+
return /* @__PURE__ */ jsxs(Stack, { gap: "xs", "data-knowledge-skill-bindings": true, children: [
|
|
5005
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
5006
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", fw: 600, tt: "uppercase", c: "dimmed", style: { letterSpacing: "0.05em" }, children: "Skill Bindings" }),
|
|
5007
|
+
node.domain && /* @__PURE__ */ jsxs(Group, { gap: "xs", align: "baseline", children: [
|
|
5008
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 500, style: { minWidth: 52 }, children: "Domain" }),
|
|
5009
|
+
/* @__PURE__ */ jsx(Text, { size: "sm", style: { fontFamily: "var(--mantine-font-family-monospace)" }, children: node.domain })
|
|
5010
|
+
] }),
|
|
5011
|
+
skills.length > 0 && /* @__PURE__ */ jsx(Group, { gap: "xs", align: "center", children: skills.map((skill) => /* @__PURE__ */ jsx(
|
|
5012
|
+
Box,
|
|
5013
|
+
{
|
|
5014
|
+
component: "span",
|
|
5015
|
+
style: {
|
|
5016
|
+
display: "inline-flex",
|
|
5017
|
+
alignItems: "center",
|
|
5018
|
+
maxWidth: "100%",
|
|
5019
|
+
padding: "2px 8px",
|
|
5020
|
+
borderRadius: "var(--mantine-radius-sm)",
|
|
5021
|
+
border: "1px solid var(--color-border)",
|
|
5022
|
+
background: "var(--color-surface)",
|
|
5023
|
+
color: "var(--color-text-subtle)",
|
|
5024
|
+
fontFamily: "var(--mantine-font-family-monospace)",
|
|
5025
|
+
fontSize: "var(--mantine-font-size-xs)",
|
|
5026
|
+
lineHeight: 1.3,
|
|
5027
|
+
overflowWrap: "anywhere"
|
|
5028
|
+
},
|
|
5029
|
+
children: skill
|
|
5030
|
+
},
|
|
5031
|
+
skill
|
|
5032
|
+
)) })
|
|
5033
|
+
] });
|
|
5034
|
+
}
|
|
5001
5035
|
function findScrollParent(element) {
|
|
5002
5036
|
let parent = element?.parentElement;
|
|
5003
5037
|
while (parent) {
|
|
@@ -5078,14 +5112,17 @@ function KnowledgeNodeView({ node, graph, onNavigateToNode, extraComponents }) {
|
|
|
5078
5112
|
children: /* @__PURE__ */ jsx(KnowledgeBodyRenderer, { nodeId: node.id })
|
|
5079
5113
|
}
|
|
5080
5114
|
),
|
|
5081
|
-
relationships: /* @__PURE__ */
|
|
5082
|
-
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5086
|
-
|
|
5087
|
-
|
|
5088
|
-
|
|
5115
|
+
relationships: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5116
|
+
/* @__PURE__ */ jsx(SkillBindings, { node }),
|
|
5117
|
+
/* @__PURE__ */ jsx(
|
|
5118
|
+
EdgeRelationshipGroup,
|
|
5119
|
+
{
|
|
5120
|
+
graph,
|
|
5121
|
+
nodeId: graphNode?.id ?? node.id,
|
|
5122
|
+
onNavigateToNode
|
|
5123
|
+
}
|
|
5124
|
+
)
|
|
5125
|
+
] }),
|
|
5089
5126
|
footer: graphNode ? /* @__PURE__ */ jsx(NodeMetadataFooter, { node: graphNode }) : void 0
|
|
5090
5127
|
}
|
|
5091
5128
|
)
|
|
@@ -5544,6 +5581,47 @@ function OrganizationDescribeView({
|
|
|
5544
5581
|
}
|
|
5545
5582
|
);
|
|
5546
5583
|
}
|
|
5584
|
+
function CapabilityDescribeView({ node, graph, knowledgeNodes, onNavigateToNode }) {
|
|
5585
|
+
const workflowEdge = graph.edges.find((e) => e.kind === "maps_to" && e.sourceId === node.id);
|
|
5586
|
+
const usedByStageIds = graph.edges.filter((e) => e.kind === "uses" && e.targetId === node.id).map((e) => e.sourceId).filter((id, i, arr) => arr.indexOf(id) === i);
|
|
5587
|
+
return /* @__PURE__ */ jsx(
|
|
5588
|
+
NodeDescribeShell,
|
|
5589
|
+
{
|
|
5590
|
+
header: /* @__PURE__ */ jsx(NodeHeader, { title: node.label, kind: node.kind, description: node.description }),
|
|
5591
|
+
content: /* @__PURE__ */ jsx(Stack, { gap: 4, children: node.sourceId && /* @__PURE__ */ jsx(KeyField, { label: "Capability ID", value: node.sourceId }) }),
|
|
5592
|
+
relationships: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
5593
|
+
workflowEdge && /* @__PURE__ */ jsxs(Stack, { gap: 4, children: [
|
|
5594
|
+
/* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", fw: 500, children: "Workflow" }),
|
|
5595
|
+
/* @__PURE__ */ jsx(
|
|
5596
|
+
EdgeChip,
|
|
5597
|
+
{
|
|
5598
|
+
id: workflowEdge.targetId,
|
|
5599
|
+
onClick: onNavigateToNode ? () => onNavigateToNode(workflowEdge.targetId) : void 0
|
|
5600
|
+
}
|
|
5601
|
+
)
|
|
5602
|
+
] }),
|
|
5603
|
+
usedByStageIds.length > 0 && /* @__PURE__ */ jsx(
|
|
5604
|
+
EdgeGroup,
|
|
5605
|
+
{
|
|
5606
|
+
label: `Used by stages (${usedByStageIds.length})`,
|
|
5607
|
+
ids: usedByStageIds,
|
|
5608
|
+
onNavigateToNode
|
|
5609
|
+
}
|
|
5610
|
+
),
|
|
5611
|
+
/* @__PURE__ */ jsx(
|
|
5612
|
+
EdgeRelationshipGroup,
|
|
5613
|
+
{
|
|
5614
|
+
nodeId: node.id,
|
|
5615
|
+
graph,
|
|
5616
|
+
knowledgeNodes,
|
|
5617
|
+
onNavigateToNode
|
|
5618
|
+
}
|
|
5619
|
+
)
|
|
5620
|
+
] }),
|
|
5621
|
+
footer: /* @__PURE__ */ jsx(NodeMetadataFooter, { node })
|
|
5622
|
+
}
|
|
5623
|
+
);
|
|
5624
|
+
}
|
|
5547
5625
|
function ResourceDescribeView({ node, graph, knowledgeNodes, onNavigateToNode }) {
|
|
5548
5626
|
return /* @__PURE__ */ jsx(
|
|
5549
5627
|
NodeDescribeShell,
|
|
@@ -5570,6 +5648,45 @@ function ResourceDescribeView({ node, graph, knowledgeNodes, onNavigateToNode })
|
|
|
5570
5648
|
}
|
|
5571
5649
|
);
|
|
5572
5650
|
}
|
|
5651
|
+
function StageDescribeView({ node, graph, knowledgeNodes, onNavigateToNode }) {
|
|
5652
|
+
const capabilityIds = graph.edges.filter((e) => e.kind === "uses" && e.sourceId === node.id).map((e) => e.targetId).filter((id, i, arr) => arr.indexOf(id) === i);
|
|
5653
|
+
const dependsOnStageIds = graph.edges.filter((e) => e.kind === "references" && e.sourceId === node.id).map((e) => e.targetId).filter((id, i, arr) => arr.indexOf(id) === i);
|
|
5654
|
+
return /* @__PURE__ */ jsx(
|
|
5655
|
+
NodeDescribeShell,
|
|
5656
|
+
{
|
|
5657
|
+
header: /* @__PURE__ */ jsx(NodeHeader, { title: node.label, kind: node.kind, description: node.description }),
|
|
5658
|
+
content: /* @__PURE__ */ jsx(Stack, { gap: 4, children: node.sourceId && /* @__PURE__ */ jsx(KeyField, { label: "Stage Key", value: node.sourceId }) }),
|
|
5659
|
+
relationships: /* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
5660
|
+
capabilityIds.length > 0 && /* @__PURE__ */ jsx(
|
|
5661
|
+
EdgeGroup,
|
|
5662
|
+
{
|
|
5663
|
+
label: `Capabilities (${capabilityIds.length})`,
|
|
5664
|
+
ids: capabilityIds,
|
|
5665
|
+
onNavigateToNode
|
|
5666
|
+
}
|
|
5667
|
+
),
|
|
5668
|
+
dependsOnStageIds.length > 0 && /* @__PURE__ */ jsx(
|
|
5669
|
+
EdgeGroup,
|
|
5670
|
+
{
|
|
5671
|
+
label: `Depends on (${dependsOnStageIds.length})`,
|
|
5672
|
+
ids: dependsOnStageIds,
|
|
5673
|
+
onNavigateToNode
|
|
5674
|
+
}
|
|
5675
|
+
),
|
|
5676
|
+
/* @__PURE__ */ jsx(
|
|
5677
|
+
EdgeRelationshipGroup,
|
|
5678
|
+
{
|
|
5679
|
+
nodeId: node.id,
|
|
5680
|
+
graph,
|
|
5681
|
+
knowledgeNodes,
|
|
5682
|
+
onNavigateToNode
|
|
5683
|
+
}
|
|
5684
|
+
)
|
|
5685
|
+
] }),
|
|
5686
|
+
footer: /* @__PURE__ */ jsx(NodeMetadataFooter, { node })
|
|
5687
|
+
}
|
|
5688
|
+
);
|
|
5689
|
+
}
|
|
5573
5690
|
function resolveKnowledgeNode(graphNode, knowledgeNodes) {
|
|
5574
5691
|
const knowledgeId = graphNode.sourceId ?? graphNode.id.replace(/^knowledge:/, "");
|
|
5575
5692
|
return knowledgeNodes.find((knowledgeNode) => knowledgeNode.id === knowledgeId);
|
|
@@ -5635,6 +5752,26 @@ function DescribeNodeView({ node, graph, knowledgeNodes = [], onNavigateToNode }
|
|
|
5635
5752
|
onNavigateToNode
|
|
5636
5753
|
}
|
|
5637
5754
|
) });
|
|
5755
|
+
case "stage":
|
|
5756
|
+
return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
|
|
5757
|
+
StageDescribeView,
|
|
5758
|
+
{
|
|
5759
|
+
node,
|
|
5760
|
+
graph,
|
|
5761
|
+
knowledgeNodes,
|
|
5762
|
+
onNavigateToNode
|
|
5763
|
+
}
|
|
5764
|
+
) });
|
|
5765
|
+
case "capability":
|
|
5766
|
+
return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
|
|
5767
|
+
CapabilityDescribeView,
|
|
5768
|
+
{
|
|
5769
|
+
node,
|
|
5770
|
+
graph,
|
|
5771
|
+
knowledgeNodes,
|
|
5772
|
+
onNavigateToNode
|
|
5773
|
+
}
|
|
5774
|
+
) });
|
|
5638
5775
|
default:
|
|
5639
5776
|
return /* @__PURE__ */ jsx(GraphNodeFrame, { children: /* @__PURE__ */ jsx(
|
|
5640
5777
|
GenericDescribeView,
|
package/dist/profile/index.d.ts
CHANGED
|
@@ -74,7 +74,7 @@ type Database = {
|
|
|
74
74
|
name: string;
|
|
75
75
|
num_employees: number | null;
|
|
76
76
|
organization_id: string;
|
|
77
|
-
|
|
77
|
+
processing_state: Json;
|
|
78
78
|
qualification_rubric_key: string | null;
|
|
79
79
|
qualification_score: number | null;
|
|
80
80
|
qualification_signals: Json | null;
|
|
@@ -100,7 +100,7 @@ type Database = {
|
|
|
100
100
|
name: string;
|
|
101
101
|
num_employees?: number | null;
|
|
102
102
|
organization_id: string;
|
|
103
|
-
|
|
103
|
+
processing_state?: Json;
|
|
104
104
|
qualification_rubric_key?: string | null;
|
|
105
105
|
qualification_score?: number | null;
|
|
106
106
|
qualification_signals?: Json | null;
|
|
@@ -126,7 +126,7 @@ type Database = {
|
|
|
126
126
|
name?: string;
|
|
127
127
|
num_employees?: number | null;
|
|
128
128
|
organization_id?: string;
|
|
129
|
-
|
|
129
|
+
processing_state?: Json;
|
|
130
130
|
qualification_rubric_key?: string | null;
|
|
131
131
|
qualification_score?: number | null;
|
|
132
132
|
qualification_signals?: Json | null;
|
|
@@ -165,7 +165,7 @@ type Database = {
|
|
|
165
165
|
nurture: boolean;
|
|
166
166
|
opening_line: string | null;
|
|
167
167
|
organization_id: string;
|
|
168
|
-
|
|
168
|
+
processing_state: Json;
|
|
169
169
|
qualification_rubric_key: string | null;
|
|
170
170
|
qualification_score: number | null;
|
|
171
171
|
qualification_signals: Json | null;
|
|
@@ -193,7 +193,7 @@ type Database = {
|
|
|
193
193
|
nurture?: boolean;
|
|
194
194
|
opening_line?: string | null;
|
|
195
195
|
organization_id: string;
|
|
196
|
-
|
|
196
|
+
processing_state?: Json;
|
|
197
197
|
qualification_rubric_key?: string | null;
|
|
198
198
|
qualification_score?: number | null;
|
|
199
199
|
qualification_signals?: Json | null;
|
|
@@ -221,7 +221,7 @@ type Database = {
|
|
|
221
221
|
nurture?: boolean;
|
|
222
222
|
opening_line?: string | null;
|
|
223
223
|
organization_id?: string;
|
|
224
|
-
|
|
224
|
+
processing_state?: Json;
|
|
225
225
|
qualification_rubric_key?: string | null;
|
|
226
226
|
qualification_score?: number | null;
|
|
227
227
|
qualification_signals?: Json | null;
|
|
@@ -617,7 +617,6 @@ type Database = {
|
|
|
617
617
|
id: string;
|
|
618
618
|
list_id: string;
|
|
619
619
|
pipeline_key: string;
|
|
620
|
-
processing_state: Json;
|
|
621
620
|
source_execution_id: string | null;
|
|
622
621
|
source_input_hash: string | null;
|
|
623
622
|
source_resource_id: string | null;
|
|
@@ -632,7 +631,6 @@ type Database = {
|
|
|
632
631
|
id?: string;
|
|
633
632
|
list_id: string;
|
|
634
633
|
pipeline_key?: string;
|
|
635
|
-
processing_state?: Json;
|
|
636
634
|
source_execution_id?: string | null;
|
|
637
635
|
source_input_hash?: string | null;
|
|
638
636
|
source_resource_id?: string | null;
|
|
@@ -647,7 +645,6 @@ type Database = {
|
|
|
647
645
|
id?: string;
|
|
648
646
|
list_id?: string;
|
|
649
647
|
pipeline_key?: string;
|
|
650
|
-
processing_state?: Json;
|
|
651
648
|
source_execution_id?: string | null;
|
|
652
649
|
source_input_hash?: string | null;
|
|
653
650
|
source_resource_id?: string | null;
|
|
@@ -726,7 +723,6 @@ type Database = {
|
|
|
726
723
|
id: string;
|
|
727
724
|
list_id: string;
|
|
728
725
|
pipeline_key: string;
|
|
729
|
-
processing_state: Json;
|
|
730
726
|
source_execution_id: string | null;
|
|
731
727
|
source_input_hash: string | null;
|
|
732
728
|
source_resource_id: string | null;
|
|
@@ -741,7 +737,6 @@ type Database = {
|
|
|
741
737
|
id?: string;
|
|
742
738
|
list_id: string;
|
|
743
739
|
pipeline_key?: string;
|
|
744
|
-
processing_state?: Json;
|
|
745
740
|
source_execution_id?: string | null;
|
|
746
741
|
source_input_hash?: string | null;
|
|
747
742
|
source_resource_id?: string | null;
|
|
@@ -756,7 +751,6 @@ type Database = {
|
|
|
756
751
|
id?: string;
|
|
757
752
|
list_id?: string;
|
|
758
753
|
pipeline_key?: string;
|
|
759
|
-
processing_state?: Json;
|
|
760
754
|
source_execution_id?: string | null;
|
|
761
755
|
source_input_hash?: string | null;
|
|
762
756
|
source_resource_id?: string | null;
|