@lafougere/pie-chart-3d 1.0.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/PieChart3d.d.ts +62 -0
- package/dist/PieSlice.d.ts +50 -0
- package/dist/pie-chart-3d.d.ts +6 -0
- package/dist/pie-chart-3d.js +24336 -0
- package/dist/vite.svg +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { LitElement, PropertyValues } from 'lit';
|
|
2
|
+
import { DirectionalLight } from 'three';
|
|
3
|
+
export interface ChartProps {
|
|
4
|
+
slices: {
|
|
5
|
+
[key: string]: number;
|
|
6
|
+
};
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
colors?: number[];
|
|
10
|
+
innerWidth?: number;
|
|
11
|
+
outerWidth?: number;
|
|
12
|
+
animationDuration?: number;
|
|
13
|
+
material?: 'lambert' | 'basic';
|
|
14
|
+
thickness?: number;
|
|
15
|
+
lightIntensity?: number;
|
|
16
|
+
hideLabels?: boolean;
|
|
17
|
+
hidePercents?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare class PieChart3d extends LitElement {
|
|
20
|
+
static styles: import('lit').CSSResult;
|
|
21
|
+
slices: any;
|
|
22
|
+
colors: number[];
|
|
23
|
+
innerWidth: number;
|
|
24
|
+
outerWidth: number;
|
|
25
|
+
labelMargin: number;
|
|
26
|
+
thickness: number;
|
|
27
|
+
highlightDistance: number;
|
|
28
|
+
outlineColor: number;
|
|
29
|
+
width: number;
|
|
30
|
+
height: number;
|
|
31
|
+
lightIntensity: number;
|
|
32
|
+
ambientLightIntensity: number;
|
|
33
|
+
toneMappingExposure: number;
|
|
34
|
+
animationDuration: number;
|
|
35
|
+
hideLabels: boolean;
|
|
36
|
+
hidePercents: boolean;
|
|
37
|
+
material: 'lambert' | 'basic';
|
|
38
|
+
private renderer;
|
|
39
|
+
private scene;
|
|
40
|
+
private camera;
|
|
41
|
+
private sliceContainer;
|
|
42
|
+
private pointer;
|
|
43
|
+
private raycaster;
|
|
44
|
+
private intersected;
|
|
45
|
+
private invisibleSlices;
|
|
46
|
+
private labelRenderer;
|
|
47
|
+
private composer;
|
|
48
|
+
private outlinePass;
|
|
49
|
+
light: DirectionalLight;
|
|
50
|
+
private initialAnimation;
|
|
51
|
+
firstUpdated(): void;
|
|
52
|
+
private setupSlices;
|
|
53
|
+
protected updated(_changedProperties: PropertyValues): void;
|
|
54
|
+
private updateColors;
|
|
55
|
+
private onPointerMove;
|
|
56
|
+
private onPointerClick;
|
|
57
|
+
private moveSliceOut;
|
|
58
|
+
private resetSlice;
|
|
59
|
+
private renderScene;
|
|
60
|
+
private _animate;
|
|
61
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
62
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Mesh, MeshBasicMaterial, MeshLambertMaterial, Object3D } from 'three';
|
|
2
|
+
export declare class PieSlice extends Object3D {
|
|
3
|
+
set innerWidth(value: number);
|
|
4
|
+
get innerWidth(): number;
|
|
5
|
+
set outerWidth(value: number);
|
|
6
|
+
get outerWidth(): number;
|
|
7
|
+
set sizeInRadians(value: number);
|
|
8
|
+
get sizeInRadians(): number;
|
|
9
|
+
set thickness(value: number);
|
|
10
|
+
get thickness(): number;
|
|
11
|
+
set labelMargin(value: number);
|
|
12
|
+
get labelMargin(): number;
|
|
13
|
+
set needsUpdate(value: boolean);
|
|
14
|
+
get needsUpdate(): boolean;
|
|
15
|
+
private _sizeInRadians;
|
|
16
|
+
private _innerWidth;
|
|
17
|
+
private _outerWidth;
|
|
18
|
+
private _thickness;
|
|
19
|
+
private _labelMargin;
|
|
20
|
+
private _needsUpdate;
|
|
21
|
+
private _timeout;
|
|
22
|
+
mesh: Mesh;
|
|
23
|
+
invisibleMesh: Mesh;
|
|
24
|
+
private labelDiv;
|
|
25
|
+
labelSpan: HTMLSpanElement;
|
|
26
|
+
private label;
|
|
27
|
+
private percentDiv;
|
|
28
|
+
private percentIndicator;
|
|
29
|
+
material: MeshBasicMaterial | MeshLambertMaterial;
|
|
30
|
+
constructor(color: number, materialType?: 'basic' | 'lambert');
|
|
31
|
+
update(): void;
|
|
32
|
+
setLabelText(txt: string): void;
|
|
33
|
+
setPercentText(txt: string): void;
|
|
34
|
+
hideLabel(): void;
|
|
35
|
+
showLabel(): void;
|
|
36
|
+
hidePercent(): void;
|
|
37
|
+
showPercent(): void;
|
|
38
|
+
private setupLabel;
|
|
39
|
+
private setupPercentIndicator;
|
|
40
|
+
private getArcShape;
|
|
41
|
+
private updateGeometry;
|
|
42
|
+
private updateLabels;
|
|
43
|
+
hideLabels(): void;
|
|
44
|
+
getMovePoint(dist: number): {
|
|
45
|
+
x: number;
|
|
46
|
+
y: number;
|
|
47
|
+
};
|
|
48
|
+
private getLabelPoint;
|
|
49
|
+
private getPercentPoint;
|
|
50
|
+
}
|