orbcafe-ui 1.1.0 → 1.1.2
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/COrbCanvas-EGX5NO3Y.mjs +1 -0
- package/dist/chunk-74Z76O3S.mjs +183 -0
- package/dist/index.d.mts +244 -7
- package/dist/index.d.ts +244 -7
- package/dist/index.js +194 -11
- package/dist/index.mjs +12 -11
- package/package.json +3 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{b as COrbCanvas}from'./chunk-74Z76O3S.mjs';
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import {Renderer,Triangle,Program,Vec3,Mesh}from'ogl';import {useRef,useEffect}from'react';import {jsx}from'react/jsx-runtime';var U=Object.defineProperty;var B=(t,o,n)=>o in t?U(t,o,{enumerable:true,configurable:true,writable:true,value:n}):t[o]=n;var X=(t,o,n)=>B(t,typeof o!="symbol"?o+"":o,n);function J({hue:t=0,hoverIntensity:o=.2,rotateOnHover:n=true,forceHoverState:s=false,backgroundColor:a="transparent"}){let c=useRef(null),g=`
|
|
2
|
+
precision highp float;
|
|
3
|
+
attribute vec2 position;
|
|
4
|
+
attribute vec2 uv;
|
|
5
|
+
varying vec2 vUv;
|
|
6
|
+
void main() {
|
|
7
|
+
vUv = uv;
|
|
8
|
+
gl_Position = vec4(position, 0.0, 1.0);
|
|
9
|
+
}
|
|
10
|
+
`,h=`
|
|
11
|
+
precision highp float;
|
|
12
|
+
|
|
13
|
+
uniform float iTime;
|
|
14
|
+
uniform vec3 iResolution;
|
|
15
|
+
uniform float hue;
|
|
16
|
+
uniform float hover;
|
|
17
|
+
uniform float rot;
|
|
18
|
+
uniform float hoverIntensity;
|
|
19
|
+
uniform vec3 backgroundColor;
|
|
20
|
+
varying vec2 vUv;
|
|
21
|
+
|
|
22
|
+
vec3 rgb2yiq(vec3 c) {
|
|
23
|
+
float y = dot(c, vec3(0.299, 0.587, 0.114));
|
|
24
|
+
float i = dot(c, vec3(0.596, -0.274, -0.322));
|
|
25
|
+
float q = dot(c, vec3(0.211, -0.523, 0.312));
|
|
26
|
+
return vec3(y, i, q);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
vec3 yiq2rgb(vec3 c) {
|
|
30
|
+
float r = c.x + 0.956 * c.y + 0.621 * c.z;
|
|
31
|
+
float g = c.x - 0.272 * c.y - 0.647 * c.z;
|
|
32
|
+
float b = c.x - 1.106 * c.y + 1.703 * c.z;
|
|
33
|
+
return vec3(r, g, b);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
vec3 adjustHue(vec3 color, float hueDeg) {
|
|
37
|
+
float hueRad = hueDeg * 3.14159265 / 180.0;
|
|
38
|
+
vec3 yiq = rgb2yiq(color);
|
|
39
|
+
float cosA = cos(hueRad);
|
|
40
|
+
float sinA = sin(hueRad);
|
|
41
|
+
float i = yiq.y * cosA - yiq.z * sinA;
|
|
42
|
+
float q = yiq.y * sinA + yiq.z * cosA;
|
|
43
|
+
yiq.y = i;
|
|
44
|
+
yiq.z = q;
|
|
45
|
+
return yiq2rgb(yiq);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
vec3 hash33(vec3 p3) {
|
|
49
|
+
p3 = fract(p3 * vec3(0.1031, 0.11369, 0.13787));
|
|
50
|
+
p3 += dot(p3, p3.yxz + 19.19);
|
|
51
|
+
return -1.0 + 2.0 * fract(vec3(
|
|
52
|
+
p3.x + p3.y,
|
|
53
|
+
p3.x + p3.z,
|
|
54
|
+
p3.y + p3.z
|
|
55
|
+
) * p3.zyx);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
float snoise3(vec3 p) {
|
|
59
|
+
const float K1 = 0.333333333;
|
|
60
|
+
const float K2 = 0.166666667;
|
|
61
|
+
vec3 i = floor(p + (p.x + p.y + p.z) * K1);
|
|
62
|
+
vec3 d0 = p - (i - (i.x + i.y + i.z) * K2);
|
|
63
|
+
vec3 e = step(vec3(0.0), d0 - d0.yzx);
|
|
64
|
+
vec3 i1 = e * (1.0 - e.zxy);
|
|
65
|
+
vec3 i2 = 1.0 - e.zxy * (1.0 - e);
|
|
66
|
+
vec3 d1 = d0 - (i1 - K2);
|
|
67
|
+
vec3 d2 = d0 - (i2 - K1);
|
|
68
|
+
vec3 d3 = d0 - 0.5;
|
|
69
|
+
vec4 h = max(0.6 - vec4(
|
|
70
|
+
dot(d0, d0),
|
|
71
|
+
dot(d1, d1),
|
|
72
|
+
dot(d2, d2),
|
|
73
|
+
dot(d3, d3)
|
|
74
|
+
), 0.0);
|
|
75
|
+
vec4 n = h * h * h * h * vec4(
|
|
76
|
+
dot(d0, hash33(i)),
|
|
77
|
+
dot(d1, hash33(i + i1)),
|
|
78
|
+
dot(d2, hash33(i + i2)),
|
|
79
|
+
dot(d3, hash33(i + 1.0))
|
|
80
|
+
);
|
|
81
|
+
return dot(vec4(31.316), n);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
vec4 extractAlpha(vec3 colorIn) {
|
|
85
|
+
float a = max(max(colorIn.r, colorIn.g), colorIn.b);
|
|
86
|
+
return vec4(colorIn.rgb / (a + 1e-5), a);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const vec3 baseColor1 = vec3(0.611765, 0.262745, 0.996078);
|
|
90
|
+
const vec3 baseColor2 = vec3(0.298039, 0.760784, 0.913725);
|
|
91
|
+
const vec3 baseColor3 = vec3(0.062745, 0.078431, 0.600000);
|
|
92
|
+
// Make it solid by reducing inner radius to near zero
|
|
93
|
+
const float innerRadius = 0.0;
|
|
94
|
+
const float noiseScale = 1.0;
|
|
95
|
+
|
|
96
|
+
float light1(float intensity, float attenuation, float dist) {
|
|
97
|
+
return intensity / (1.0 + dist * attenuation);
|
|
98
|
+
}
|
|
99
|
+
float light2(float intensity, float attenuation, float dist) {
|
|
100
|
+
return intensity / (1.0 + dist * dist * attenuation);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
vec4 draw(vec2 uv) {
|
|
104
|
+
vec3 color1 = adjustHue(baseColor1, hue);
|
|
105
|
+
vec3 color2 = adjustHue(baseColor2, hue);
|
|
106
|
+
vec3 color3 = adjustHue(baseColor3, hue);
|
|
107
|
+
|
|
108
|
+
float ang = atan(uv.y, uv.x);
|
|
109
|
+
float len = length(uv);
|
|
110
|
+
float invLen = len > 0.0 ? 1.0 / len : 0.0;
|
|
111
|
+
|
|
112
|
+
float bgLuminance = dot(backgroundColor, vec3(0.299, 0.587, 0.114));
|
|
113
|
+
|
|
114
|
+
float n0 = snoise3(vec3(uv * noiseScale, iTime * 0.5)) * 0.5 + 0.5;
|
|
115
|
+
|
|
116
|
+
// Increased outer radius factor from 1.0 to 1.8 to make the orb larger
|
|
117
|
+
float r0 = mix(mix(innerRadius, 1.2, 0.4), mix(innerRadius, 1.8, 0.6), n0);
|
|
118
|
+
|
|
119
|
+
float d0 = distance(uv, (r0 * invLen) * uv);
|
|
120
|
+
float v0 = light1(1.0, 10.0, d0);
|
|
121
|
+
v0 *= smoothstep(r0 * 1.05, r0, len);
|
|
122
|
+
|
|
123
|
+
// Remove inner fade to keep the center solid
|
|
124
|
+
float innerFade = 1.0;
|
|
125
|
+
|
|
126
|
+
v0 *= mix(innerFade, 1.0, bgLuminance * 0.7);
|
|
127
|
+
float cl = cos(ang + iTime * 2.0) * 0.5 + 0.5;
|
|
128
|
+
|
|
129
|
+
float a = iTime * -1.0;
|
|
130
|
+
vec2 pos = vec2(cos(a), sin(a)) * r0;
|
|
131
|
+
float d = distance(uv, pos);
|
|
132
|
+
float v1 = light2(1.5, 5.0, d);
|
|
133
|
+
v1 *= light1(1.0, 50.0, d0);
|
|
134
|
+
|
|
135
|
+
float v2 = smoothstep(1.0, mix(innerRadius, 1.0, n0 * 0.5), len);
|
|
136
|
+
|
|
137
|
+
// Keep center solid instead of fading out
|
|
138
|
+
float v3 = 1.0;
|
|
139
|
+
|
|
140
|
+
vec3 colBase = mix(color1, color2, cl);
|
|
141
|
+
float fadeAmount = mix(1.0, 0.1, bgLuminance);
|
|
142
|
+
|
|
143
|
+
vec3 darkCol = mix(color3, colBase, v0);
|
|
144
|
+
darkCol = (darkCol + v1) * v2 * v3;
|
|
145
|
+
darkCol = clamp(darkCol, 0.0, 1.0);
|
|
146
|
+
|
|
147
|
+
vec3 lightCol = (colBase + v1) * mix(1.0, v2 * v3, fadeAmount);
|
|
148
|
+
lightCol = mix(backgroundColor, lightCol, v0);
|
|
149
|
+
lightCol = clamp(lightCol, 0.0, 1.0);
|
|
150
|
+
|
|
151
|
+
vec3 finalCol = mix(darkCol, lightCol, bgLuminance);
|
|
152
|
+
|
|
153
|
+
return extractAlpha(finalCol);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
vec4 mainImage(vec2 fragCoord) {
|
|
157
|
+
vec2 center = iResolution.xy * 0.5;
|
|
158
|
+
// Use max dimension to ensure the orb covers the area (creating an ambient effect)
|
|
159
|
+
// rather than fitting inside (which would be tiny in a header)
|
|
160
|
+
float size = max(iResolution.x, iResolution.y);
|
|
161
|
+
vec2 uv = (fragCoord - center) / size * 2.0;
|
|
162
|
+
|
|
163
|
+
// Add randomness/waviness to UV coordinates
|
|
164
|
+
uv.x += sin(uv.y * 3.0 + iTime * 0.5) * 0.1;
|
|
165
|
+
uv.y += cos(uv.x * 3.0 + iTime * 0.5) * 0.1;
|
|
166
|
+
|
|
167
|
+
float angle = rot;
|
|
168
|
+
float s = sin(angle);
|
|
169
|
+
float c = cos(angle);
|
|
170
|
+
uv = vec2(c * uv.x - s * uv.y, s * uv.x + c * uv.y);
|
|
171
|
+
|
|
172
|
+
uv.x += hover * hoverIntensity * 0.1 * sin(uv.y * 10.0 + iTime);
|
|
173
|
+
uv.y += hover * hoverIntensity * 0.1 * sin(uv.x * 10.0 + iTime);
|
|
174
|
+
|
|
175
|
+
return draw(uv);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
void main() {
|
|
179
|
+
vec2 fragCoord = vUv * iResolution.xy;
|
|
180
|
+
vec4 col = mainImage(fragCoord);
|
|
181
|
+
gl_FragColor = vec4(col.rgb * col.a, col.a);
|
|
182
|
+
}
|
|
183
|
+
`;return useEffect(()=>{let i=c.current;if(!i)return;let l=new Renderer({alpha:true,premultipliedAlpha:false}),e=l.gl;e.clearColor(0,0,0,0),i.appendChild(e.canvas);let r=new Triangle(e),v=new Program(e,{vertex:g,fragment:h,uniforms:{iTime:{value:0},iResolution:{value:new Vec3(e.canvas.width,e.canvas.height,e.canvas.width/e.canvas.height)},hue:{value:t},hover:{value:0},rot:{value:0},hoverIntensity:{value:o},backgroundColor:{value:k(a)}}}),E=new Mesh(e,{geometry:r,program:v});function y(){if(!i)return;let u=window.devicePixelRatio||1,d=i.clientWidth,f=i.clientHeight;l.setSize(d*u,f*u),e.canvas.style.width=d+"px",e.canvas.style.height=f+"px",v.uniforms.iResolution.value.set(e.canvas.width,e.canvas.height,e.canvas.width/e.canvas.height);}window.addEventListener("resize",y),y();let p=0,x=0,C=0,M=.3,w=u=>{let d=i.getBoundingClientRect(),f=u.clientX-d.left,H=u.clientY-d.top,R=d.width,q=d.height,A=Math.min(R,q),K=R/2,F=q/2,L=(f-K)/A*2,T=(H-F)/A*2;Math.sqrt(L*L+T*T)<.8?p=1:p=0;},z=()=>{p=0;};i.addEventListener("mousemove",w),i.addEventListener("mouseleave",z);let b,I=u=>{b=requestAnimationFrame(I);let d=(u-x)*.001;x=u,v.uniforms.iTime.value=u*.001,v.uniforms.hue.value=t,v.uniforms.hoverIntensity.value=o,v.uniforms.backgroundColor.value=k(a);let f=s?1:p;v.uniforms.hover.value+=(f-v.uniforms.hover.value)*.1,n&&f>.5&&(C+=d*M),v.uniforms.rot.value=C,l.render({scene:E});};return b=requestAnimationFrame(I),()=>{cancelAnimationFrame(b),window.removeEventListener("resize",y),i.removeEventListener("mousemove",w),i.removeEventListener("mouseleave",z),e.canvas.parentNode===i&&i.removeChild(e.canvas),e.getExtension("WEBGL_lose_context")?.loseContext();}},[t,o,n,s,a]),jsx("div",{ref:c,className:"w-full h-full"})}function V(t,o,n){let s,a,c;if(o===0)s=a=c=n;else {let g=(l,e,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<.16666666666666666?l+(e-l)*6*r:r<.5?e:r<.6666666666666666?l+(e-l)*(.6666666666666666-r)*6:l),h=n<.5?n*(1+o):n+o-n*o,i=2*n-h;s=g(i,h,t+1/3),a=g(i,h,t),c=g(i,h,t-1/3);}return new Vec3(s,a,c)}function k(t){if(t==="transparent")return new Vec3(0,0,0);if(t.startsWith("#")){let s=parseInt(t.slice(1,3),16)/255,a=parseInt(t.slice(3,5),16)/255,c=parseInt(t.slice(5,7),16)/255;return new Vec3(s,a,c)}let o=t.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);if(o)return new Vec3(parseInt(o[1])/255,parseInt(o[2])/255,parseInt(o[3])/255);let n=t.match(/hsla?\((\d+),\s*(\d+)%,\s*(\d+)%/);if(n){let s=parseInt(n[1])/360,a=parseInt(n[2])/100,c=parseInt(n[3])/100;return V(s,a,c)}return new Vec3(0,0,0)}export{X as a,J as b};
|
package/dist/index.d.mts
CHANGED
|
@@ -344,7 +344,7 @@ interface CTableQuickDeleteConfig {
|
|
|
344
344
|
onConfirm?: (rows: Record<string, any>[]) => void | Promise<void>;
|
|
345
345
|
}
|
|
346
346
|
interface CTableProps {
|
|
347
|
-
appId
|
|
347
|
+
appId: string;
|
|
348
348
|
title?: string;
|
|
349
349
|
showToolbar?: boolean;
|
|
350
350
|
columns: any[];
|
|
@@ -452,6 +452,7 @@ interface VariantMetadata {
|
|
|
452
452
|
createdAt?: string;
|
|
453
453
|
filters?: any;
|
|
454
454
|
layout?: any;
|
|
455
|
+
layoutId?: string;
|
|
455
456
|
layoutRefs?: any[];
|
|
456
457
|
scope?: string;
|
|
457
458
|
appId?: string;
|
|
@@ -483,10 +484,10 @@ declare const CVariantManagement: ({ variants, currentVariantId, onLoad, onSave,
|
|
|
483
484
|
*/
|
|
484
485
|
|
|
485
486
|
interface IVariantService {
|
|
486
|
-
getVariants: (appId: string) => Promise<VariantMetadata[]>;
|
|
487
|
-
saveVariant: (variant: VariantMetadata, appId: string) => Promise<void>;
|
|
487
|
+
getVariants: (appId: string, tableKey?: string) => Promise<VariantMetadata[]>;
|
|
488
|
+
saveVariant: (variant: VariantMetadata, appId: string, tableKey?: string) => Promise<void>;
|
|
488
489
|
deleteVariant: (id: string) => Promise<void>;
|
|
489
|
-
setDefaultVariant: (id: string, appId: string) => Promise<void>;
|
|
490
|
+
setDefaultVariant: (id: string, appId: string, tableKey?: string) => Promise<void>;
|
|
490
491
|
}
|
|
491
492
|
interface CVariantManagerProps {
|
|
492
493
|
appId: string;
|
|
@@ -542,7 +543,7 @@ interface CSmartFilterProps {
|
|
|
542
543
|
onVariantSetDefault?: (id: string) => void;
|
|
543
544
|
onSearch?: () => void;
|
|
544
545
|
loading?: boolean;
|
|
545
|
-
appId
|
|
546
|
+
appId: string;
|
|
546
547
|
tableKey?: string;
|
|
547
548
|
currentLayout?: any;
|
|
548
549
|
currentLayoutId?: string;
|
|
@@ -561,6 +562,12 @@ interface CSmartFilterProps {
|
|
|
561
562
|
declare const CSmartFilter: ({ fields, filters, onFilterChange, variants, currentVariantId, onVariantLoad, onVariantSave, onVariantDelete, onVariantSetDefault, onSearch, loading, appId, tableKey, currentLayout, currentLayoutId, layoutRefs, variantService, serviceUrl }: CSmartFilterProps) => react_jsx_runtime.JSX.Element;
|
|
562
563
|
|
|
563
564
|
interface CStandardPageProps {
|
|
565
|
+
/**
|
|
566
|
+
* Unique Identifier for the Page/Report.
|
|
567
|
+
* Used as the `appId` for Variant and Layout persistence.
|
|
568
|
+
* MUST be unique across the system to avoid configuration conflicts.
|
|
569
|
+
*/
|
|
570
|
+
id: string;
|
|
564
571
|
/** Page Title */
|
|
565
572
|
title: string;
|
|
566
573
|
/** Whether to hide the top breadcrumb/title header */
|
|
@@ -576,8 +583,16 @@ interface CStandardPageProps {
|
|
|
576
583
|
* Default: 1 (8px) - Much tighter than default CTable behavior
|
|
577
584
|
*/
|
|
578
585
|
spacing?: number;
|
|
586
|
+
/**
|
|
587
|
+
* Mode of operation:
|
|
588
|
+
* - 'separated': SmartFilter and CTable are rendered separately (default).
|
|
589
|
+
* Layout variants are applied via prop updates from parent.
|
|
590
|
+
* - 'integrated': SmartFilter is passed into CTable as filterConfig.
|
|
591
|
+
* CTable manages the connection between Filter and Table internally.
|
|
592
|
+
*/
|
|
593
|
+
mode?: 'separated' | 'integrated';
|
|
579
594
|
}
|
|
580
|
-
declare const CStandardPage: ({ title, hideHeader, filterConfig, tableProps, children, spacing }: CStandardPageProps) => react_jsx_runtime.JSX.Element;
|
|
595
|
+
declare const CStandardPage: ({ id, title, hideHeader, filterConfig, tableProps, children, spacing, mode }: CStandardPageProps) => react_jsx_runtime.JSX.Element;
|
|
581
596
|
|
|
582
597
|
/**
|
|
583
598
|
* @file 10_Frontend/components/sap/ui/Common/Structures/CTable.tsx
|
|
@@ -766,6 +781,34 @@ declare const useStandardReport: ({ metadata, fetchData, initialRowsPerPage, row
|
|
|
766
781
|
refresh: () => void;
|
|
767
782
|
};
|
|
768
783
|
|
|
784
|
+
/**
|
|
785
|
+
* @file 10_Frontend/components/sap/ui/Common/PageComponents/Utils/variantUtils.ts
|
|
786
|
+
* @summary Utility functions for handling Variant schemas and migrations.
|
|
787
|
+
* @author ORBAICODER
|
|
788
|
+
* @date 2026-02-27
|
|
789
|
+
*/
|
|
790
|
+
|
|
791
|
+
/**
|
|
792
|
+
* Resolves the filter configuration for a specific table/scope from a variant.
|
|
793
|
+
* Handles both legacy (direct object) and new (scoped array) schemas.
|
|
794
|
+
*
|
|
795
|
+
* @param variant The variant metadata object
|
|
796
|
+
* @param tableKey The key/scope of the table to find filters for
|
|
797
|
+
* @returns The filter configuration object or null if not found
|
|
798
|
+
*/
|
|
799
|
+
declare const resolveVariantFilters: (variant: VariantMetadata | null | undefined, tableKey: string) => any;
|
|
800
|
+
/**
|
|
801
|
+
* Resolves the layout configuration or ID for a specific table from a variant.
|
|
802
|
+
*
|
|
803
|
+
* @param variant The variant metadata object
|
|
804
|
+
* @param tableKey The key of the table
|
|
805
|
+
* @returns Object containing { layout: any, layoutId: string | null }
|
|
806
|
+
*/
|
|
807
|
+
declare const resolveVariantLayout: (variant: VariantMetadata | null | undefined, tableKey: string) => {
|
|
808
|
+
layout: any;
|
|
809
|
+
layoutId: string | null;
|
|
810
|
+
};
|
|
811
|
+
|
|
769
812
|
interface CGraphReportProps {
|
|
770
813
|
open: boolean;
|
|
771
814
|
onClose: () => void;
|
|
@@ -1117,6 +1160,48 @@ declare const en: {
|
|
|
1117
1160
|
readonly 'table.group.expandAll': "Expand All Groups";
|
|
1118
1161
|
readonly 'table.group.collapseAll': "Collapse All Groups";
|
|
1119
1162
|
readonly 'table.mobile.notImplemented': "Mobile View Not Implemented";
|
|
1163
|
+
readonly 'pivot.title.default': "Pivot Table Builder";
|
|
1164
|
+
readonly 'pivot.subtitle.default': "Drag fields to configure the pivot table.";
|
|
1165
|
+
readonly 'pivot.empty': "Drag at least one field into Values to render the pivot result.";
|
|
1166
|
+
readonly 'pivot.records': "Records";
|
|
1167
|
+
readonly 'pivot.afterFilter': "After filter";
|
|
1168
|
+
readonly 'pivot.grandTotal': "Grand Total";
|
|
1169
|
+
readonly 'pivot.resultLabel': "Result";
|
|
1170
|
+
readonly 'pivot.valueLabel': "Value";
|
|
1171
|
+
readonly 'pivot.table.dimensions': "Dimensions";
|
|
1172
|
+
readonly 'pivot.fieldList': "Field List";
|
|
1173
|
+
readonly 'pivot.availableDimensions': "Available dimensions";
|
|
1174
|
+
readonly 'pivot.allFieldsInUse': "All fields are in use.";
|
|
1175
|
+
readonly 'pivot.zone.rows': "Rows";
|
|
1176
|
+
readonly 'pivot.zone.columns': "Columns";
|
|
1177
|
+
readonly 'pivot.zone.filters': "Filters";
|
|
1178
|
+
readonly 'pivot.zone.values': "Values";
|
|
1179
|
+
readonly 'pivot.hint.rows': "Drag fields here to build row hierarchy";
|
|
1180
|
+
readonly 'pivot.hint.columns': "Drag fields here to build column hierarchy";
|
|
1181
|
+
readonly 'pivot.hint.filters': "Drag fields here for report filters";
|
|
1182
|
+
readonly 'pivot.hint.values': "Drag numeric fields here for aggregation";
|
|
1183
|
+
readonly 'pivot.clearArea': "Clear area";
|
|
1184
|
+
readonly 'pivot.filter.na': "N/A";
|
|
1185
|
+
readonly 'pivot.filter.noValues': "No values";
|
|
1186
|
+
readonly 'pivot.filter.noneSelected': "None selected";
|
|
1187
|
+
readonly 'pivot.filter.allValues': "All values";
|
|
1188
|
+
readonly 'pivot.filter.selectedCount': "{selected} / {total} selected";
|
|
1189
|
+
readonly 'pivot.filter.selectAll': "Select All";
|
|
1190
|
+
readonly 'pivot.filter.deselectAll': "Deselect All";
|
|
1191
|
+
readonly 'pivot.filter.noResults': "No results";
|
|
1192
|
+
readonly 'pivot.collapse.ariaExpand': "Expand configuration area";
|
|
1193
|
+
readonly 'pivot.collapse.ariaCollapse': "Collapse configuration area";
|
|
1194
|
+
readonly 'pivot.agg.sum': "Sum";
|
|
1195
|
+
readonly 'pivot.agg.count': "Count";
|
|
1196
|
+
readonly 'pivot.agg.avg': "Average";
|
|
1197
|
+
readonly 'pivot.agg.min': "Min";
|
|
1198
|
+
readonly 'pivot.agg.max': "Max";
|
|
1199
|
+
readonly 'pivot.preset.selectPlaceholder': "Select preset";
|
|
1200
|
+
readonly 'pivot.preset.save': "Save preset";
|
|
1201
|
+
readonly 'pivot.preset.delete': "Delete preset";
|
|
1202
|
+
readonly 'pivot.preset.saveDialogTitle': "Save current preset";
|
|
1203
|
+
readonly 'pivot.preset.nameLabel': "Preset name";
|
|
1204
|
+
readonly 'pivot.preset.defaultName': "Preset {index}";
|
|
1120
1205
|
readonly 'smartFilter.adaptFilters': "Adapt Filters";
|
|
1121
1206
|
readonly 'smartFilter.addFilters': "Add Filters";
|
|
1122
1207
|
readonly 'smartFilter.go': "Go";
|
|
@@ -1296,6 +1381,158 @@ declare const usePageLayout: ({ menuData, initialNavigationCollapsed, }?: UsePag
|
|
|
1296
1381
|
navigationMaxHeight: number;
|
|
1297
1382
|
};
|
|
1298
1383
|
|
|
1384
|
+
type PivotAggregation = 'sum' | 'count' | 'avg' | 'min' | 'max';
|
|
1385
|
+
type PivotFieldType = 'string' | 'number' | 'date' | 'boolean';
|
|
1386
|
+
interface PivotFieldDefinition {
|
|
1387
|
+
id: string;
|
|
1388
|
+
label: string;
|
|
1389
|
+
type?: PivotFieldType;
|
|
1390
|
+
aggregations?: PivotAggregation[];
|
|
1391
|
+
formatValue?: (value: number) => string;
|
|
1392
|
+
}
|
|
1393
|
+
interface PivotValueFieldConfig {
|
|
1394
|
+
fieldId: string;
|
|
1395
|
+
aggregation?: PivotAggregation;
|
|
1396
|
+
}
|
|
1397
|
+
interface PivotValueFieldState {
|
|
1398
|
+
tokenId: string;
|
|
1399
|
+
fieldId: string;
|
|
1400
|
+
aggregation: PivotAggregation;
|
|
1401
|
+
}
|
|
1402
|
+
interface PivotLayoutConfig {
|
|
1403
|
+
rows?: string[];
|
|
1404
|
+
columns?: string[];
|
|
1405
|
+
filters?: string[];
|
|
1406
|
+
values?: PivotValueFieldConfig[];
|
|
1407
|
+
}
|
|
1408
|
+
type PivotFilterSelections = Record<string, string[]>;
|
|
1409
|
+
interface PivotTablePreset {
|
|
1410
|
+
id: string;
|
|
1411
|
+
name: string;
|
|
1412
|
+
layout: PivotLayoutConfig;
|
|
1413
|
+
filterSelections?: PivotFilterSelections;
|
|
1414
|
+
showGrandTotal?: boolean;
|
|
1415
|
+
}
|
|
1416
|
+
interface PivotTableModel {
|
|
1417
|
+
rowFields: string[];
|
|
1418
|
+
setRowFields: React__default.Dispatch<React__default.SetStateAction<string[]>>;
|
|
1419
|
+
columnFields: string[];
|
|
1420
|
+
setColumnFields: React__default.Dispatch<React__default.SetStateAction<string[]>>;
|
|
1421
|
+
filterFields: string[];
|
|
1422
|
+
setFilterFields: React__default.Dispatch<React__default.SetStateAction<string[]>>;
|
|
1423
|
+
valueFields: PivotValueFieldState[];
|
|
1424
|
+
setValueFields: React__default.Dispatch<React__default.SetStateAction<PivotValueFieldState[]>>;
|
|
1425
|
+
filterSelections: PivotFilterSelections;
|
|
1426
|
+
setFilterSelections: React__default.Dispatch<React__default.SetStateAction<PivotFilterSelections>>;
|
|
1427
|
+
showGrandTotal: boolean;
|
|
1428
|
+
setShowGrandTotal: React__default.Dispatch<React__default.SetStateAction<boolean>>;
|
|
1429
|
+
isConfiguratorCollapsed: boolean;
|
|
1430
|
+
setIsConfiguratorCollapsed: React__default.Dispatch<React__default.SetStateAction<boolean>>;
|
|
1431
|
+
}
|
|
1432
|
+
interface CPivotTableProps {
|
|
1433
|
+
title?: string;
|
|
1434
|
+
rows: Record<string, unknown>[];
|
|
1435
|
+
fields: PivotFieldDefinition[];
|
|
1436
|
+
initialLayout?: PivotLayoutConfig;
|
|
1437
|
+
emptyText?: string;
|
|
1438
|
+
maxPreviewHeight?: number | string;
|
|
1439
|
+
model?: PivotTableModel;
|
|
1440
|
+
enablePresetManagement?: boolean;
|
|
1441
|
+
presets?: PivotTablePreset[];
|
|
1442
|
+
defaultPresets?: PivotTablePreset[];
|
|
1443
|
+
onPresetsChange?: (presets: PivotTablePreset[]) => void;
|
|
1444
|
+
initialPresetId?: string;
|
|
1445
|
+
onPresetApplied?: (preset: PivotTablePreset) => void;
|
|
1446
|
+
}
|
|
1447
|
+
|
|
1448
|
+
declare const CPivotTable: React__default.FC<CPivotTableProps>;
|
|
1449
|
+
|
|
1450
|
+
interface UsePivotTableOptions {
|
|
1451
|
+
fields: PivotFieldDefinition[];
|
|
1452
|
+
initialLayout?: PivotLayoutConfig;
|
|
1453
|
+
initialFilterSelections?: PivotFilterSelections;
|
|
1454
|
+
initialShowGrandTotal?: boolean;
|
|
1455
|
+
initialConfiguratorCollapsed?: boolean;
|
|
1456
|
+
}
|
|
1457
|
+
interface UsePivotTableActions {
|
|
1458
|
+
setRows: (rows: string[]) => void;
|
|
1459
|
+
setColumns: (columns: string[]) => void;
|
|
1460
|
+
setFilters: (filters: string[]) => void;
|
|
1461
|
+
setValues: (values: PivotValueFieldConfig[]) => void;
|
|
1462
|
+
setLayout: (layout: PivotLayoutConfig) => void;
|
|
1463
|
+
clearZone: (zone: 'rows' | 'columns' | 'filters' | 'values') => void;
|
|
1464
|
+
removeFieldFromZone: (zone: 'rows' | 'columns' | 'filters' | 'values', key: string) => void;
|
|
1465
|
+
setAggregationForValue: (tokenId: string, aggregation: PivotAggregation) => void;
|
|
1466
|
+
setFilterSelection: (fieldId: string, values: string[]) => void;
|
|
1467
|
+
resetFilterSelections: () => void;
|
|
1468
|
+
toggleGrandTotal: () => void;
|
|
1469
|
+
toggleConfigurator: () => void;
|
|
1470
|
+
}
|
|
1471
|
+
interface UsePivotTableResult {
|
|
1472
|
+
model: PivotTableModel;
|
|
1473
|
+
actions: UsePivotTableActions;
|
|
1474
|
+
}
|
|
1475
|
+
declare const usePivotTable: ({ fields, initialLayout, initialFilterSelections, initialShowGrandTotal, initialConfiguratorCollapsed, }: UsePivotTableOptions) => UsePivotTableResult;
|
|
1476
|
+
|
|
1477
|
+
interface UseVoiceInputOptions {
|
|
1478
|
+
onTextUpdate?: (text: string) => void;
|
|
1479
|
+
onComplete: (text: string) => void | Promise<void>;
|
|
1480
|
+
onError?: (error: string) => void;
|
|
1481
|
+
wsUrl?: string;
|
|
1482
|
+
silenceThresholdMs?: number;
|
|
1483
|
+
minVolumeRms?: number;
|
|
1484
|
+
}
|
|
1485
|
+
interface UseVoiceInputResult {
|
|
1486
|
+
isRecording: boolean;
|
|
1487
|
+
startRecording: () => Promise<void>;
|
|
1488
|
+
stopRecording: () => void;
|
|
1489
|
+
}
|
|
1490
|
+
interface CVoiceWaveOverlayProps {
|
|
1491
|
+
isRecording: boolean;
|
|
1492
|
+
}
|
|
1493
|
+
interface CAINavProviderProps {
|
|
1494
|
+
children: ReactNode;
|
|
1495
|
+
onVoiceSubmit: (text: string) => void | Promise<void>;
|
|
1496
|
+
onVoicePartial?: (text: string) => void;
|
|
1497
|
+
onVoiceError?: (error: string) => void;
|
|
1498
|
+
longPressMs?: number;
|
|
1499
|
+
disableSpaceTrigger?: boolean;
|
|
1500
|
+
ignoreWhenFocusedInput?: boolean;
|
|
1501
|
+
renderOverlay?: boolean;
|
|
1502
|
+
wsUrl?: string;
|
|
1503
|
+
silenceThresholdMs?: number;
|
|
1504
|
+
minVolumeRms?: number;
|
|
1505
|
+
}
|
|
1506
|
+
interface AINavContextValue {
|
|
1507
|
+
isRecording: boolean;
|
|
1508
|
+
isHotkeyRecording: boolean;
|
|
1509
|
+
isSubmitting: boolean;
|
|
1510
|
+
startRecording: () => Promise<void>;
|
|
1511
|
+
stopRecording: () => void;
|
|
1512
|
+
}
|
|
1513
|
+
type VoiceNavigatorProviderProps = CAINavProviderProps;
|
|
1514
|
+
type VoiceNavigatorContextValue = AINavContextValue;
|
|
1515
|
+
type VoiceWaveOverlayProps = CVoiceWaveOverlayProps;
|
|
1516
|
+
|
|
1517
|
+
declare function CAINavProvider({ children, onVoiceSubmit, onVoicePartial, onVoiceError, longPressMs, disableSpaceTrigger, ignoreWhenFocusedInput, renderOverlay, wsUrl, silenceThresholdMs, minVolumeRms }: CAINavProviderProps): react_jsx_runtime.JSX.Element;
|
|
1518
|
+
declare function useAINav(): AINavContextValue;
|
|
1519
|
+
declare const VoiceNavigatorProvider: typeof CAINavProvider;
|
|
1520
|
+
declare const useVoiceNavigator: typeof useAINav;
|
|
1521
|
+
|
|
1522
|
+
declare function useVoiceInput({ onTextUpdate, onComplete, onError, wsUrl, silenceThresholdMs, minVolumeRms }: UseVoiceInputOptions): UseVoiceInputResult;
|
|
1523
|
+
|
|
1524
|
+
declare function CVoiceWaveOverlay({ isRecording }: CVoiceWaveOverlayProps): react_jsx_runtime.JSX.Element;
|
|
1525
|
+
declare const VoiceWaveOverlay: typeof CVoiceWaveOverlay;
|
|
1526
|
+
|
|
1527
|
+
interface COrbCanvasProps {
|
|
1528
|
+
hue?: number;
|
|
1529
|
+
hoverIntensity?: number;
|
|
1530
|
+
rotateOnHover?: boolean;
|
|
1531
|
+
forceHoverState?: boolean;
|
|
1532
|
+
backgroundColor?: string;
|
|
1533
|
+
}
|
|
1534
|
+
declare function COrbCanvas({ hue, hoverIntensity, rotateOnHover, forceHoverState, backgroundColor }: COrbCanvasProps): react_jsx_runtime.JSX.Element;
|
|
1535
|
+
|
|
1299
1536
|
interface MarkdownRendererProps {
|
|
1300
1537
|
markdown?: string;
|
|
1301
1538
|
content?: string;
|
|
@@ -1390,4 +1627,4 @@ declare const PAGE_TRANSITION_PRESETS: {
|
|
|
1390
1627
|
};
|
|
1391
1628
|
};
|
|
1392
1629
|
|
|
1393
|
-
export { type AmapEmbedOptions, Button, type ButtonProps, CAmapChart, type CAmapChartProps, CAppHeader, type CAppHeaderProps, type CAppHeaderUser, type CAppHeaderUserMenuItem, CAppPageLayout, type CAppPageLayoutProps, CBarChart, type CBarChartProps, CChartCard, type CChartCardProps, CComboChart, type CComboChartProps, CCustomizeAgent, type CCustomizeAgentProps, CDetailInfoPage, type CDetailInfoPageProps, CDetailSearchAiBar, type CDetailSearchAiBarProps, CDetailSectionCard, type CDetailSectionCardProps, CFishboneChart, type CFishboneChartProps, CGoogleMapChart, type CGoogleMapChartProps, CGraphCharts, CGraphKpiCards, CGraphReport, type CGraphReportProps, CHeatmapChart, type CHeatmapChartProps, CLayoutManagement, type CLayoutManagementProps, CLayoutManager, type CLayoutManagerProps, CLineChart, type CLineChartProps, CMessageBox, type CMessageBoxProps, type CMessageBoxType, CPageLayout, type CPageLayoutProps, CPageTransition, type CPageTransitionProps, CPieChart, type CPieChartProps, CSmartFilter, type CSmartFilterProps, CSmartTable, CStandardPage, type CStandardPageProps, CTable, CTableBody, type CTableBodyProps, CTableCell, type CTableCellProps, CTableContainer, type CTableContainerProps, CTableHead, type CTableHeadProps, type CTableProps, type CTableQuickCreateConfig, type CTableQuickDeleteConfig, type CTableQuickEditConfig, CTableRow, type CTableRowProps, CVariantManagement, type CVariantManagementProps, CVariantManager, CWaterfallChart, type CWaterfallChartProps, CodeBlock, type CodeBlockProps, type CustomizeAgentSavePayload, type CustomizeAgentSettings, type CustomizeAgentTemplateOption, type DateOperator, type DetailInfoAiConfig, type DetailInfoField, type DetailInfoSearchHit, type DetailInfoSearchMode, type DetailInfoSection, type DetailInfoTab, type DetailInfoTableConfig, type FilterField, type FilterOperator, type FilterType, type FilterValue, GlobalMessage, type GoogleMapEmbedOptions, type GraphBarDatum, type GraphComboDatum, type GraphFishboneBranch, type GraphHeatmapDatum, type GraphLineDatum, type GraphMapLocation, type GraphPieDatum, type GraphReportConfig, type GraphReportFieldMapping, type GraphReportInteractionState, type GraphReportKpis, type GraphReportModel, type GraphRow, type GraphTableColumn, type GraphWaterfallDatum, type IVariantService, type LayoutMetadata, MarkdownRenderer, type MarkdownRendererProps, MathBlock, type MathBlockProps, MermaidBlock, type MermaidBlockProps, type MessageContent, type MessageEvent, type MessageOptions, NavigationIsland, type NavigationIslandProps, type NumberOperator, ORBCAFE_I18N_MESSAGES, type OrbcafeI18nContextValue, OrbcafeI18nProvider, type OrbcafeI18nProviderProps, type OrbcafeLocale, type OrbcafeLocaleMessages, type OrbcafeMessageKey, type OrbcafeMessageParams, PAGE_TRANSITION_PRESETS, type PageTransitionVariant, type ParsedMarkdownTable, type ReportColumn, type ReportFilter, type ReportMetadata, type SelectOperator, type TableAlign, TableBlock, type TableBlockProps, type TextOperator, ThinkBlock, type ThinkBlockProps, TreeMenu, type TreeMenuItem, type UseAmapEmbedUrlOptions, type UseDetailInfoOptions, type UseDetailInfoResult, type UseGoogleMapEmbedUrlOptions, type UseGraphChartDataOptions, type UseGraphChartDataResult, type UseGraphInteractionResult, type UseGraphReportOptions, type UseGraphReportResult, type UseNavigationIslandOptions, type UseNavigationIslandResult, type UsePageLayoutOptions, type UseStandardReportOptions, type VariantMetadata, buildAmapEmbedUrl, buildGoogleMapEmbedUrl, buildGoogleMapIframe, buttonVariants, message, messageManager, parseMarkdownTable, renderMarkdown, useAmapEmbedUrl, useDetailInfo, useGoogleMapEmbedUrl, useGraphChartData, useGraphInteraction, useGraphReport, useNavigationIsland, useOrbcafeI18n, usePageLayout, useStandardReport };
|
|
1630
|
+
export { type AINavContextValue, type AmapEmbedOptions, Button, type ButtonProps, CAINavProvider, type CAINavProviderProps, CAmapChart, type CAmapChartProps, CAppHeader, type CAppHeaderProps, type CAppHeaderUser, type CAppHeaderUserMenuItem, CAppPageLayout, type CAppPageLayoutProps, CBarChart, type CBarChartProps, CChartCard, type CChartCardProps, CComboChart, type CComboChartProps, CCustomizeAgent, type CCustomizeAgentProps, CDetailInfoPage, type CDetailInfoPageProps, CDetailSearchAiBar, type CDetailSearchAiBarProps, CDetailSectionCard, type CDetailSectionCardProps, CFishboneChart, type CFishboneChartProps, CGoogleMapChart, type CGoogleMapChartProps, CGraphCharts, CGraphKpiCards, CGraphReport, type CGraphReportProps, CHeatmapChart, type CHeatmapChartProps, CLayoutManagement, type CLayoutManagementProps, CLayoutManager, type CLayoutManagerProps, CLineChart, type CLineChartProps, CMessageBox, type CMessageBoxProps, type CMessageBoxType, COrbCanvas, type COrbCanvasProps, CPageLayout, type CPageLayoutProps, CPageTransition, type CPageTransitionProps, CPieChart, type CPieChartProps, CPivotTable, type CPivotTableProps, CSmartFilter, type CSmartFilterProps, CSmartTable, CStandardPage, type CStandardPageProps, CTable, CTableBody, type CTableBodyProps, CTableCell, type CTableCellProps, CTableContainer, type CTableContainerProps, CTableHead, type CTableHeadProps, type CTableProps, type CTableQuickCreateConfig, type CTableQuickDeleteConfig, type CTableQuickEditConfig, CTableRow, type CTableRowProps, CVariantManagement, type CVariantManagementProps, CVariantManager, CVoiceWaveOverlay, type CVoiceWaveOverlayProps, CWaterfallChart, type CWaterfallChartProps, CodeBlock, type CodeBlockProps, type CustomizeAgentSavePayload, type CustomizeAgentSettings, type CustomizeAgentTemplateOption, type DateOperator, type DetailInfoAiConfig, type DetailInfoField, type DetailInfoSearchHit, type DetailInfoSearchMode, type DetailInfoSection, type DetailInfoTab, type DetailInfoTableConfig, type FilterField, type FilterOperator, type FilterType, type FilterValue, GlobalMessage, type GoogleMapEmbedOptions, type GraphBarDatum, type GraphComboDatum, type GraphFishboneBranch, type GraphHeatmapDatum, type GraphLineDatum, type GraphMapLocation, type GraphPieDatum, type GraphReportConfig, type GraphReportFieldMapping, type GraphReportInteractionState, type GraphReportKpis, type GraphReportModel, type GraphRow, type GraphTableColumn, type GraphWaterfallDatum, type IVariantService, type LayoutMetadata, MarkdownRenderer, type MarkdownRendererProps, MathBlock, type MathBlockProps, MermaidBlock, type MermaidBlockProps, type MessageContent, type MessageEvent, type MessageOptions, NavigationIsland, type NavigationIslandProps, type NumberOperator, ORBCAFE_I18N_MESSAGES, type OrbcafeI18nContextValue, OrbcafeI18nProvider, type OrbcafeI18nProviderProps, type OrbcafeLocale, type OrbcafeLocaleMessages, type OrbcafeMessageKey, type OrbcafeMessageParams, PAGE_TRANSITION_PRESETS, type PageTransitionVariant, type ParsedMarkdownTable, type PivotAggregation, type PivotFieldDefinition, type PivotFieldType, type PivotFilterSelections, type PivotLayoutConfig, type PivotTableModel, type PivotTablePreset, type PivotValueFieldConfig, type PivotValueFieldState, type ReportColumn, type ReportFilter, type ReportMetadata, type SelectOperator, type TableAlign, TableBlock, type TableBlockProps, type TextOperator, ThinkBlock, type ThinkBlockProps, TreeMenu, type TreeMenuItem, type UseAmapEmbedUrlOptions, type UseDetailInfoOptions, type UseDetailInfoResult, type UseGoogleMapEmbedUrlOptions, type UseGraphChartDataOptions, type UseGraphChartDataResult, type UseGraphInteractionResult, type UseGraphReportOptions, type UseGraphReportResult, type UseNavigationIslandOptions, type UseNavigationIslandResult, type UsePageLayoutOptions, type UsePivotTableOptions, type UsePivotTableResult, type UseStandardReportOptions, type UseVoiceInputOptions, type UseVoiceInputResult, type VariantMetadata, type VoiceNavigatorContextValue, VoiceNavigatorProvider, type VoiceNavigatorProviderProps, VoiceWaveOverlay, type VoiceWaveOverlayProps, buildAmapEmbedUrl, buildGoogleMapEmbedUrl, buildGoogleMapIframe, buttonVariants, message, messageManager, parseMarkdownTable, renderMarkdown, resolveVariantFilters, resolveVariantLayout, useAINav, useAmapEmbedUrl, useDetailInfo, useGoogleMapEmbedUrl, useGraphChartData, useGraphInteraction, useGraphReport, useNavigationIsland, useOrbcafeI18n, usePageLayout, usePivotTable, useStandardReport, useVoiceInput, useVoiceNavigator };
|