@xyo-network/react-price-forecast-plugin 2.78.10 → 2.80.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/browser/index.d.ts +13 -3
- package/dist/browser/{index.js → index.mjs} +101 -54
- package/dist/browser/index.mjs.map +1 -0
- package/package.json +16 -32
- package/src/Plugin.ts +1 -1
- package/src/components/DetailsBox.stories.tsx +10 -7
- package/src/components/DetailsBox.tsx +6 -6
- package/src/components/index.ts +1 -1
- package/src/index.ts +2 -2
- package/src/lib/ForecastLineChartConfigBuilder.ts +5 -4
- package/src/lib/SourcePayloads.ts +1 -1
- package/src/lib/index.ts +3 -3
- package/xy.config.ts +12 -0
- package/dist/browser/Plugin.d.cts +0 -3
- package/dist/browser/Plugin.d.cts.map +0 -1
- package/dist/browser/Plugin.d.mts +0 -3
- package/dist/browser/Plugin.d.mts.map +0 -1
- package/dist/browser/Plugin.d.ts +0 -3
- package/dist/browser/Plugin.d.ts.map +0 -1
- package/dist/browser/components/DetailsBox.d.cts +0 -8
- package/dist/browser/components/DetailsBox.d.cts.map +0 -1
- package/dist/browser/components/DetailsBox.d.mts +0 -8
- package/dist/browser/components/DetailsBox.d.mts.map +0 -1
- package/dist/browser/components/DetailsBox.d.ts +0 -8
- package/dist/browser/components/DetailsBox.d.ts.map +0 -1
- package/dist/browser/components/index.d.cts +0 -2
- package/dist/browser/components/index.d.cts.map +0 -1
- package/dist/browser/components/index.d.mts +0 -2
- package/dist/browser/components/index.d.mts.map +0 -1
- package/dist/browser/components/index.d.ts +0 -2
- package/dist/browser/components/index.d.ts.map +0 -1
- package/dist/browser/index.cjs +0 -271
- package/dist/browser/index.cjs.map +0 -1
- package/dist/browser/index.d.cts +0 -3
- package/dist/browser/index.d.cts.map +0 -1
- package/dist/browser/index.d.mts +0 -3
- package/dist/browser/index.d.mts.map +0 -1
- package/dist/browser/index.d.ts.map +0 -1
- package/dist/browser/index.js.map +0 -1
- package/dist/browser/lib/DataLineStyles.d.cts +0 -5
- package/dist/browser/lib/DataLineStyles.d.cts.map +0 -1
- package/dist/browser/lib/DataLineStyles.d.mts +0 -5
- package/dist/browser/lib/DataLineStyles.d.mts.map +0 -1
- package/dist/browser/lib/DataLineStyles.d.ts +0 -5
- package/dist/browser/lib/DataLineStyles.d.ts.map +0 -1
- package/dist/browser/lib/DataPointStyles.d.cts +0 -8
- package/dist/browser/lib/DataPointStyles.d.cts.map +0 -1
- package/dist/browser/lib/DataPointStyles.d.mts +0 -8
- package/dist/browser/lib/DataPointStyles.d.mts.map +0 -1
- package/dist/browser/lib/DataPointStyles.d.ts +0 -8
- package/dist/browser/lib/DataPointStyles.d.ts.map +0 -1
- package/dist/browser/lib/ForecastLineChartConfigBuilder.d.cts +0 -44
- package/dist/browser/lib/ForecastLineChartConfigBuilder.d.cts.map +0 -1
- package/dist/browser/lib/ForecastLineChartConfigBuilder.d.mts +0 -44
- package/dist/browser/lib/ForecastLineChartConfigBuilder.d.mts.map +0 -1
- package/dist/browser/lib/ForecastLineChartConfigBuilder.d.ts +0 -44
- package/dist/browser/lib/ForecastLineChartConfigBuilder.d.ts.map +0 -1
- package/dist/browser/lib/MockSourcePayloads.d.cts +0 -18
- package/dist/browser/lib/MockSourcePayloads.d.cts.map +0 -1
- package/dist/browser/lib/MockSourcePayloads.d.mts +0 -18
- package/dist/browser/lib/MockSourcePayloads.d.mts.map +0 -1
- package/dist/browser/lib/MockSourcePayloads.d.ts +0 -18
- package/dist/browser/lib/MockSourcePayloads.d.ts.map +0 -1
- package/dist/browser/lib/SourcePayloads.d.cts +0 -30
- package/dist/browser/lib/SourcePayloads.d.cts.map +0 -1
- package/dist/browser/lib/SourcePayloads.d.mts +0 -30
- package/dist/browser/lib/SourcePayloads.d.mts.map +0 -1
- package/dist/browser/lib/SourcePayloads.d.ts +0 -30
- package/dist/browser/lib/SourcePayloads.d.ts.map +0 -1
- package/dist/browser/lib/index.d.cts +0 -4
- package/dist/browser/lib/index.d.cts.map +0 -1
- package/dist/browser/lib/index.d.mts +0 -4
- package/dist/browser/lib/index.d.mts.map +0 -1
- package/dist/browser/lib/index.d.ts +0 -4
- package/dist/browser/lib/index.d.ts.map +0 -1
- package/dist/neutral/Plugin.d.cts +0 -3
- package/dist/neutral/Plugin.d.cts.map +0 -1
- package/dist/neutral/Plugin.d.mts +0 -3
- package/dist/neutral/Plugin.d.mts.map +0 -1
- package/dist/neutral/Plugin.d.ts +0 -3
- package/dist/neutral/Plugin.d.ts.map +0 -1
- package/dist/neutral/components/DetailsBox.d.cts +0 -8
- package/dist/neutral/components/DetailsBox.d.cts.map +0 -1
- package/dist/neutral/components/DetailsBox.d.mts +0 -8
- package/dist/neutral/components/DetailsBox.d.mts.map +0 -1
- package/dist/neutral/components/DetailsBox.d.ts +0 -8
- package/dist/neutral/components/DetailsBox.d.ts.map +0 -1
- package/dist/neutral/components/index.d.cts +0 -2
- package/dist/neutral/components/index.d.cts.map +0 -1
- package/dist/neutral/components/index.d.mts +0 -2
- package/dist/neutral/components/index.d.mts.map +0 -1
- package/dist/neutral/components/index.d.ts +0 -2
- package/dist/neutral/components/index.d.ts.map +0 -1
- package/dist/neutral/index.cjs +0 -271
- package/dist/neutral/index.cjs.map +0 -1
- package/dist/neutral/index.d.cts +0 -3
- package/dist/neutral/index.d.cts.map +0 -1
- package/dist/neutral/index.d.mts +0 -3
- package/dist/neutral/index.d.mts.map +0 -1
- package/dist/neutral/index.d.ts +0 -3
- package/dist/neutral/index.d.ts.map +0 -1
- package/dist/neutral/index.js +0 -258
- package/dist/neutral/index.js.map +0 -1
- package/dist/neutral/lib/DataLineStyles.d.cts +0 -5
- package/dist/neutral/lib/DataLineStyles.d.cts.map +0 -1
- package/dist/neutral/lib/DataLineStyles.d.mts +0 -5
- package/dist/neutral/lib/DataLineStyles.d.mts.map +0 -1
- package/dist/neutral/lib/DataLineStyles.d.ts +0 -5
- package/dist/neutral/lib/DataLineStyles.d.ts.map +0 -1
- package/dist/neutral/lib/DataPointStyles.d.cts +0 -8
- package/dist/neutral/lib/DataPointStyles.d.cts.map +0 -1
- package/dist/neutral/lib/DataPointStyles.d.mts +0 -8
- package/dist/neutral/lib/DataPointStyles.d.mts.map +0 -1
- package/dist/neutral/lib/DataPointStyles.d.ts +0 -8
- package/dist/neutral/lib/DataPointStyles.d.ts.map +0 -1
- package/dist/neutral/lib/ForecastLineChartConfigBuilder.d.cts +0 -44
- package/dist/neutral/lib/ForecastLineChartConfigBuilder.d.cts.map +0 -1
- package/dist/neutral/lib/ForecastLineChartConfigBuilder.d.mts +0 -44
- package/dist/neutral/lib/ForecastLineChartConfigBuilder.d.mts.map +0 -1
- package/dist/neutral/lib/ForecastLineChartConfigBuilder.d.ts +0 -44
- package/dist/neutral/lib/ForecastLineChartConfigBuilder.d.ts.map +0 -1
- package/dist/neutral/lib/MockSourcePayloads.d.cts +0 -18
- package/dist/neutral/lib/MockSourcePayloads.d.cts.map +0 -1
- package/dist/neutral/lib/MockSourcePayloads.d.mts +0 -18
- package/dist/neutral/lib/MockSourcePayloads.d.mts.map +0 -1
- package/dist/neutral/lib/MockSourcePayloads.d.ts +0 -18
- package/dist/neutral/lib/MockSourcePayloads.d.ts.map +0 -1
- package/dist/neutral/lib/SourcePayloads.d.cts +0 -30
- package/dist/neutral/lib/SourcePayloads.d.cts.map +0 -1
- package/dist/neutral/lib/SourcePayloads.d.mts +0 -30
- package/dist/neutral/lib/SourcePayloads.d.mts.map +0 -1
- package/dist/neutral/lib/SourcePayloads.d.ts +0 -30
- package/dist/neutral/lib/SourcePayloads.d.ts.map +0 -1
- package/dist/neutral/lib/index.d.cts +0 -4
- package/dist/neutral/lib/index.d.cts.map +0 -1
- package/dist/neutral/lib/index.d.mts +0 -4
- package/dist/neutral/lib/index.d.mts.map +0 -1
- package/dist/neutral/lib/index.d.ts +0 -4
- package/dist/neutral/lib/index.d.ts.map +0 -1
- package/dist/node/Plugin.d.cts +0 -3
- package/dist/node/Plugin.d.cts.map +0 -1
- package/dist/node/Plugin.d.mts +0 -3
- package/dist/node/Plugin.d.mts.map +0 -1
- package/dist/node/Plugin.d.ts +0 -3
- package/dist/node/Plugin.d.ts.map +0 -1
- package/dist/node/components/DetailsBox.d.cts +0 -8
- package/dist/node/components/DetailsBox.d.cts.map +0 -1
- package/dist/node/components/DetailsBox.d.mts +0 -8
- package/dist/node/components/DetailsBox.d.mts.map +0 -1
- package/dist/node/components/DetailsBox.d.ts +0 -8
- package/dist/node/components/DetailsBox.d.ts.map +0 -1
- package/dist/node/components/index.d.cts +0 -2
- package/dist/node/components/index.d.cts.map +0 -1
- package/dist/node/components/index.d.mts +0 -2
- package/dist/node/components/index.d.mts.map +0 -1
- package/dist/node/components/index.d.ts +0 -2
- package/dist/node/components/index.d.ts.map +0 -1
- package/dist/node/index.cjs +0 -280
- package/dist/node/index.cjs.map +0 -1
- package/dist/node/index.d.cts +0 -3
- package/dist/node/index.d.cts.map +0 -1
- package/dist/node/index.d.mts +0 -3
- package/dist/node/index.d.mts.map +0 -1
- package/dist/node/index.d.ts +0 -3
- package/dist/node/index.d.ts.map +0 -1
- package/dist/node/index.js +0 -262
- package/dist/node/index.js.map +0 -1
- package/dist/node/lib/DataLineStyles.d.cts +0 -5
- package/dist/node/lib/DataLineStyles.d.cts.map +0 -1
- package/dist/node/lib/DataLineStyles.d.mts +0 -5
- package/dist/node/lib/DataLineStyles.d.mts.map +0 -1
- package/dist/node/lib/DataLineStyles.d.ts +0 -5
- package/dist/node/lib/DataLineStyles.d.ts.map +0 -1
- package/dist/node/lib/DataPointStyles.d.cts +0 -8
- package/dist/node/lib/DataPointStyles.d.cts.map +0 -1
- package/dist/node/lib/DataPointStyles.d.mts +0 -8
- package/dist/node/lib/DataPointStyles.d.mts.map +0 -1
- package/dist/node/lib/DataPointStyles.d.ts +0 -8
- package/dist/node/lib/DataPointStyles.d.ts.map +0 -1
- package/dist/node/lib/ForecastLineChartConfigBuilder.d.cts +0 -44
- package/dist/node/lib/ForecastLineChartConfigBuilder.d.cts.map +0 -1
- package/dist/node/lib/ForecastLineChartConfigBuilder.d.mts +0 -44
- package/dist/node/lib/ForecastLineChartConfigBuilder.d.mts.map +0 -1
- package/dist/node/lib/ForecastLineChartConfigBuilder.d.ts +0 -44
- package/dist/node/lib/ForecastLineChartConfigBuilder.d.ts.map +0 -1
- package/dist/node/lib/MockSourcePayloads.d.cts +0 -18
- package/dist/node/lib/MockSourcePayloads.d.cts.map +0 -1
- package/dist/node/lib/MockSourcePayloads.d.mts +0 -18
- package/dist/node/lib/MockSourcePayloads.d.mts.map +0 -1
- package/dist/node/lib/MockSourcePayloads.d.ts +0 -18
- package/dist/node/lib/MockSourcePayloads.d.ts.map +0 -1
- package/dist/node/lib/SourcePayloads.d.cts +0 -30
- package/dist/node/lib/SourcePayloads.d.cts.map +0 -1
- package/dist/node/lib/SourcePayloads.d.mts +0 -30
- package/dist/node/lib/SourcePayloads.d.mts.map +0 -1
- package/dist/node/lib/SourcePayloads.d.ts +0 -30
- package/dist/node/lib/SourcePayloads.d.ts.map +0 -1
- package/dist/node/lib/index.d.cts +0 -4
- package/dist/node/lib/index.d.cts.map +0 -1
- package/dist/node/lib/index.d.mts +0 -4
- package/dist/node/lib/index.d.mts.map +0 -1
- package/dist/node/lib/index.d.ts +0 -4
- package/dist/node/lib/index.d.ts.map +0 -1
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export declare const MockSourcePayloads: () => {
|
|
2
|
-
baseFee: number;
|
|
3
|
-
feePerGas: {
|
|
4
|
-
high: number;
|
|
5
|
-
low: number;
|
|
6
|
-
medium: number;
|
|
7
|
-
veryHigh: number;
|
|
8
|
-
};
|
|
9
|
-
priorityFeePerGas: {
|
|
10
|
-
high: number;
|
|
11
|
-
low: number;
|
|
12
|
-
medium: number;
|
|
13
|
-
veryHigh: number;
|
|
14
|
-
};
|
|
15
|
-
schema: string;
|
|
16
|
-
timestamp: number;
|
|
17
|
-
}[];
|
|
18
|
-
//# sourceMappingURL=MockSourcePayloads.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MockSourcePayloads.d.ts","sourceRoot":"","sources":["../../../src/lib/MockSourcePayloads.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;GAkB9B,CAAA"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
2
|
-
import { Point } from 'chart.js';
|
|
3
|
-
export declare class SourcePayloads {
|
|
4
|
-
sourcePayloads: Payload[];
|
|
5
|
-
sourcePrices: Point[];
|
|
6
|
-
constructor(sourcePayloads: Payload[]);
|
|
7
|
-
get payloads(): ({
|
|
8
|
-
schema: string;
|
|
9
|
-
} & import("@xyo-network/payload-model").PayloadFields)[];
|
|
10
|
-
static build(jsonPath: string): Promise<SourcePayloads>;
|
|
11
|
-
static fetchSourcePayloads(): Promise<{
|
|
12
|
-
baseFee: number;
|
|
13
|
-
feePerGas: {
|
|
14
|
-
high: number;
|
|
15
|
-
low: number;
|
|
16
|
-
medium: number;
|
|
17
|
-
veryHigh: number;
|
|
18
|
-
};
|
|
19
|
-
priorityFeePerGas: {
|
|
20
|
-
high: number;
|
|
21
|
-
low: number;
|
|
22
|
-
medium: number;
|
|
23
|
-
veryHigh: number;
|
|
24
|
-
};
|
|
25
|
-
schema: string;
|
|
26
|
-
timestamp: number;
|
|
27
|
-
}[]>;
|
|
28
|
-
jsonPathTraverser(obj: Payload, path: string[]): any;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=SourcePayloads.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SourcePayloads.d.ts","sourceRoot":"","sources":["../../../src/lib/SourcePayloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAIhC,qBAAa,cAAc;IAGN,cAAc,EAAE,OAAO,EAAE;IAF5C,YAAY,EAAE,KAAK,EAAE,CAAK;gBAEP,cAAc,EAAE,OAAO,EAAE;IAE5C,IAAI,QAAQ;;8DAEX;WAEY,KAAK,CAAC,QAAQ,EAAE,MAAM;WAYtB,mBAAmB;;;;;;;;;;;;;;;;;IAKhC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;CAe/C"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
2
|
-
import { Point } from 'chart.js';
|
|
3
|
-
export declare class SourcePayloads {
|
|
4
|
-
sourcePayloads: Payload[];
|
|
5
|
-
sourcePrices: Point[];
|
|
6
|
-
constructor(sourcePayloads: Payload[]);
|
|
7
|
-
get payloads(): ({
|
|
8
|
-
schema: string;
|
|
9
|
-
} & import("@xyo-network/payload-model").PayloadFields)[];
|
|
10
|
-
static build(jsonPath: string): Promise<SourcePayloads>;
|
|
11
|
-
static fetchSourcePayloads(): Promise<{
|
|
12
|
-
baseFee: number;
|
|
13
|
-
feePerGas: {
|
|
14
|
-
high: number;
|
|
15
|
-
low: number;
|
|
16
|
-
medium: number;
|
|
17
|
-
veryHigh: number;
|
|
18
|
-
};
|
|
19
|
-
priorityFeePerGas: {
|
|
20
|
-
high: number;
|
|
21
|
-
low: number;
|
|
22
|
-
medium: number;
|
|
23
|
-
veryHigh: number;
|
|
24
|
-
};
|
|
25
|
-
schema: string;
|
|
26
|
-
timestamp: number;
|
|
27
|
-
}[]>;
|
|
28
|
-
jsonPathTraverser(obj: Payload, path: string[]): any;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=SourcePayloads.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SourcePayloads.d.ts","sourceRoot":"","sources":["../../../src/lib/SourcePayloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAIhC,qBAAa,cAAc;IAGN,cAAc,EAAE,OAAO,EAAE;IAF5C,YAAY,EAAE,KAAK,EAAE,CAAK;gBAEP,cAAc,EAAE,OAAO,EAAE;IAE5C,IAAI,QAAQ;;8DAEX;WAEY,KAAK,CAAC,QAAQ,EAAE,MAAM;WAYtB,mBAAmB;;;;;;;;;;;;;;;;;IAKhC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;CAe/C"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
2
|
-
import { Point } from 'chart.js';
|
|
3
|
-
export declare class SourcePayloads {
|
|
4
|
-
sourcePayloads: Payload[];
|
|
5
|
-
sourcePrices: Point[];
|
|
6
|
-
constructor(sourcePayloads: Payload[]);
|
|
7
|
-
get payloads(): ({
|
|
8
|
-
schema: string;
|
|
9
|
-
} & import("@xyo-network/payload-model").PayloadFields)[];
|
|
10
|
-
static build(jsonPath: string): Promise<SourcePayloads>;
|
|
11
|
-
static fetchSourcePayloads(): Promise<{
|
|
12
|
-
baseFee: number;
|
|
13
|
-
feePerGas: {
|
|
14
|
-
high: number;
|
|
15
|
-
low: number;
|
|
16
|
-
medium: number;
|
|
17
|
-
veryHigh: number;
|
|
18
|
-
};
|
|
19
|
-
priorityFeePerGas: {
|
|
20
|
-
high: number;
|
|
21
|
-
low: number;
|
|
22
|
-
medium: number;
|
|
23
|
-
veryHigh: number;
|
|
24
|
-
};
|
|
25
|
-
schema: string;
|
|
26
|
-
timestamp: number;
|
|
27
|
-
}[]>;
|
|
28
|
-
jsonPathTraverser(obj: Payload, path: string[]): any;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=SourcePayloads.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SourcePayloads.d.ts","sourceRoot":"","sources":["../../../src/lib/SourcePayloads.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAIhC,qBAAa,cAAc;IAGN,cAAc,EAAE,OAAO,EAAE;IAF5C,YAAY,EAAE,KAAK,EAAE,CAAK;gBAEP,cAAc,EAAE,OAAO,EAAE;IAE5C,IAAI,QAAQ;;8DAEX;WAEY,KAAK,CAAC,QAAQ,EAAE,MAAM;WAYtB,mBAAmB;;;;;;;;;;;;;;;;;IAKhC,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE;CAe/C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAA;AACnD,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAIlG,eAAO,MAAM,yBAAyB,EAAE,mBAUvC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAIlG,eAAO,MAAM,yBAAyB,EAAE,mBAUvC,CAAA"}
|
package/dist/neutral/Plugin.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.d.ts","sourceRoot":"","sources":["../../src/Plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAIlG,eAAO,MAAM,yBAAyB,EAAE,mBAUvC,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import 'chartjs-adapter-luxon';
|
|
2
|
-
import { FlexBoxProps } from '@xylabs/react-flexbox';
|
|
3
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
4
|
-
export interface PriceForecastDetailsBoxProps extends FlexBoxProps {
|
|
5
|
-
payload?: Payload;
|
|
6
|
-
}
|
|
7
|
-
export declare const PriceForecastDetailsBox: React.FC<PriceForecastDetailsBoxProps>;
|
|
8
|
-
//# sourceMappingURL=DetailsBox.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsBox.d.ts","sourceRoot":"","sources":["../../../src/components/DetailsBox.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAA;AAI9B,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAqBpD,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAChE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAyB1E,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import 'chartjs-adapter-luxon';
|
|
2
|
-
import { FlexBoxProps } from '@xylabs/react-flexbox';
|
|
3
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
4
|
-
export interface PriceForecastDetailsBoxProps extends FlexBoxProps {
|
|
5
|
-
payload?: Payload;
|
|
6
|
-
}
|
|
7
|
-
export declare const PriceForecastDetailsBox: React.FC<PriceForecastDetailsBoxProps>;
|
|
8
|
-
//# sourceMappingURL=DetailsBox.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsBox.d.ts","sourceRoot":"","sources":["../../../src/components/DetailsBox.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAA;AAI9B,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAqBpD,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAChE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAyB1E,CAAA"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import 'chartjs-adapter-luxon';
|
|
2
|
-
import { FlexBoxProps } from '@xylabs/react-flexbox';
|
|
3
|
-
import { Payload } from '@xyo-network/payload-model';
|
|
4
|
-
export interface PriceForecastDetailsBoxProps extends FlexBoxProps {
|
|
5
|
-
payload?: Payload;
|
|
6
|
-
}
|
|
7
|
-
export declare const PriceForecastDetailsBox: React.FC<PriceForecastDetailsBoxProps>;
|
|
8
|
-
//# sourceMappingURL=DetailsBox.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsBox.d.ts","sourceRoot":"","sources":["../../../src/components/DetailsBox.tsx"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAA;AAI9B,OAAO,EAAE,YAAY,EAAW,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAqBpD,MAAM,WAAW,4BAA6B,SAAQ,YAAY;IAChE,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAyB1E,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
|
package/dist/neutral/index.cjs
DELETED
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/index.ts
|
|
21
|
-
var src_exports = {};
|
|
22
|
-
__export(src_exports, {
|
|
23
|
-
PriceForecastDetailsBox: () => PriceForecastDetailsBox,
|
|
24
|
-
PriceForecastRenderPlugin: () => PriceForecastRenderPlugin
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(src_exports);
|
|
27
|
-
|
|
28
|
-
// src/components/DetailsBox.tsx
|
|
29
|
-
var import_chartjs_adapter_luxon = require("chartjs-adapter-luxon");
|
|
30
|
-
var import_material2 = require("@mui/material");
|
|
31
|
-
var import_react_async_effect = require("@xylabs/react-async-effect");
|
|
32
|
-
var import_react_flexbox = require("@xylabs/react-flexbox");
|
|
33
|
-
var import_chart = require("chart.js");
|
|
34
|
-
var import_react = require("react");
|
|
35
|
-
var import_react_chartjs_2 = require("react-chartjs-2");
|
|
36
|
-
|
|
37
|
-
// src/lib/DataLineStyles.ts
|
|
38
|
-
var import_material = require("@mui/material");
|
|
39
|
-
var DataLineStyles = (color) => ({
|
|
40
|
-
backgroundColor: color ? (0, import_material.alpha)(color, 0.5) : void 0,
|
|
41
|
-
borderColor: color
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
// src/lib/DataPointStyles.ts
|
|
45
|
-
var DataPointStyles = (pointHoverBackgroundColor) => ({
|
|
46
|
-
pointHitRadius: 20,
|
|
47
|
-
pointHoverBackgroundColor,
|
|
48
|
-
pointHoverRadius: 10,
|
|
49
|
-
pointRadius: 5,
|
|
50
|
-
pointStyle: "circle"
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
// src/lib/MockSourcePayloads.ts
|
|
54
|
-
var MockSourcePayloads = () => {
|
|
55
|
-
const tenMin = 6e5;
|
|
56
|
-
return [
|
|
57
|
-
{
|
|
58
|
-
baseFee: 38.90155387825,
|
|
59
|
-
feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 39.306868093, veryHigh: 44.45384380525 },
|
|
60
|
-
priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
|
|
61
|
-
schema: "network.xyo.blockchain.ethereum.gas",
|
|
62
|
-
timestamp: Date.now() - tenMin
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
baseFee: 38.90155387825,
|
|
66
|
-
feePerGas: { high: 47.9945864396, low: 39.006868093, medium: 100, veryHigh: 44.45384380525 },
|
|
67
|
-
priorityFeePerGas: { high: 1.0266666666666666, low: -0.41000000000000003, medium: 0.38, veryHigh: 1.3900000000000001 },
|
|
68
|
-
schema: "network.xyo.blockchain.ethereum.gas",
|
|
69
|
-
timestamp: Date.now()
|
|
70
|
-
}
|
|
71
|
-
];
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
// src/lib/SourcePayloads.ts
|
|
75
|
-
var SourcePayloads = class {
|
|
76
|
-
constructor(sourcePayloads) {
|
|
77
|
-
this.sourcePayloads = sourcePayloads;
|
|
78
|
-
}
|
|
79
|
-
sourcePrices = [];
|
|
80
|
-
get payloads() {
|
|
81
|
-
return this.sourcePayloads;
|
|
82
|
-
}
|
|
83
|
-
static async build(jsonPath) {
|
|
84
|
-
const sourcePayloads = await this.fetchSourcePayloads();
|
|
85
|
-
const instance = new this(sourcePayloads);
|
|
86
|
-
const paths = jsonPath.split(".");
|
|
87
|
-
instance.sourcePrices = sourcePayloads.map((payload) => {
|
|
88
|
-
return { x: payload.timestamp, y: instance.jsonPathTraverser(payload, paths) };
|
|
89
|
-
});
|
|
90
|
-
return instance;
|
|
91
|
-
}
|
|
92
|
-
// TODO - fetch from archivist
|
|
93
|
-
static async fetchSourcePayloads() {
|
|
94
|
-
const payloads = await Promise.resolve(MockSourcePayloads());
|
|
95
|
-
return payloads;
|
|
96
|
-
}
|
|
97
|
-
jsonPathTraverser(obj, path) {
|
|
98
|
-
let result = obj;
|
|
99
|
-
for (const key of path) {
|
|
100
|
-
if (key in result) {
|
|
101
|
-
const foundKey = key;
|
|
102
|
-
result = result[foundKey];
|
|
103
|
-
} else {
|
|
104
|
-
result = void 0;
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return result;
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
// src/lib/ForecastLineChartConfigBuilder.ts
|
|
113
|
-
var defaultOptions = () => ({
|
|
114
|
-
plugins: {
|
|
115
|
-
legend: {
|
|
116
|
-
position: "top"
|
|
117
|
-
}
|
|
118
|
-
},
|
|
119
|
-
responsive: true
|
|
120
|
-
});
|
|
121
|
-
var ForecastLineChartConfigBuilder = class _ForecastLineChartConfigBuilder {
|
|
122
|
-
constructor(theme, payload) {
|
|
123
|
-
this.payload = payload;
|
|
124
|
-
this.themeColors = this.parseTheme(theme);
|
|
125
|
-
}
|
|
126
|
-
data = {
|
|
127
|
-
datasets: []
|
|
128
|
-
};
|
|
129
|
-
options = defaultOptions();
|
|
130
|
-
themeColors;
|
|
131
|
-
get forecastPayload() {
|
|
132
|
-
if (this.payload) {
|
|
133
|
-
return this.payload;
|
|
134
|
-
} else {
|
|
135
|
-
throw new Error("ForecastPayload was not defined");
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
static async create(theme, payload, sourcePayloadConfig) {
|
|
139
|
-
const instance = new _ForecastLineChartConfigBuilder(theme, payload);
|
|
140
|
-
await instance.build(sourcePayloadConfig?.fetch);
|
|
141
|
-
instance.refreshValues();
|
|
142
|
-
return instance;
|
|
143
|
-
}
|
|
144
|
-
async build(includeSources) {
|
|
145
|
-
this.buildOptions();
|
|
146
|
-
await this.buildData(includeSources);
|
|
147
|
-
return this;
|
|
148
|
-
}
|
|
149
|
-
async buildData(includeSources) {
|
|
150
|
-
const forecastData = this.generateDataSetForecastData();
|
|
151
|
-
const datasets = [forecastData];
|
|
152
|
-
if (includeSources) {
|
|
153
|
-
const sourceData = await this.generateDataSetSourcePayloads();
|
|
154
|
-
datasets.unshift(sourceData);
|
|
155
|
-
const lastSourceDataItem = sourceData.data.at(-1);
|
|
156
|
-
forecastData.data.unshift(lastSourceDataItem);
|
|
157
|
-
}
|
|
158
|
-
this.data = {
|
|
159
|
-
datasets
|
|
160
|
-
};
|
|
161
|
-
return this;
|
|
162
|
-
}
|
|
163
|
-
buildOptions() {
|
|
164
|
-
if (this.options.plugins) {
|
|
165
|
-
this.options.plugins.title = this.generateTitle();
|
|
166
|
-
this.options.plugins.legend = this.generateLegend();
|
|
167
|
-
}
|
|
168
|
-
this.options.scales = this.generateScales();
|
|
169
|
-
return this;
|
|
170
|
-
}
|
|
171
|
-
refreshValues() {
|
|
172
|
-
this.data = { ...this.data };
|
|
173
|
-
this.options = { ...this.options };
|
|
174
|
-
}
|
|
175
|
-
generateLegend() {
|
|
176
|
-
return {
|
|
177
|
-
labels: {
|
|
178
|
-
pointStyle: "circle",
|
|
179
|
-
usePointStyle: true
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
generateScales() {
|
|
184
|
-
return {
|
|
185
|
-
x: {
|
|
186
|
-
grid: {
|
|
187
|
-
color: this.themeColors?.gridColor
|
|
188
|
-
},
|
|
189
|
-
time: {
|
|
190
|
-
unit: "minute"
|
|
191
|
-
},
|
|
192
|
-
type: "time"
|
|
193
|
-
},
|
|
194
|
-
y: {
|
|
195
|
-
grid: {
|
|
196
|
-
color: this.themeColors?.gridColor
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
};
|
|
200
|
-
}
|
|
201
|
-
generateTitle() {
|
|
202
|
-
return {
|
|
203
|
-
display: true,
|
|
204
|
-
text: `Gas Price Forecaster (GWEI over time from ${this.forecastPayload?.values[0].timestamp ? new Date(this.forecastPayload.values[0].timestamp).toLocaleDateString() : ""})`
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
parseTheme(theme) {
|
|
208
|
-
const dark = theme.palette.mode === "dark";
|
|
209
|
-
return {
|
|
210
|
-
dataSetColorPrimary: theme.palette.primary.light,
|
|
211
|
-
dataSetColorSecondary: theme.palette.secondary.light,
|
|
212
|
-
gridColor: dark ? theme.palette.grey[800] : theme.palette.grey[300]
|
|
213
|
-
};
|
|
214
|
-
}
|
|
215
|
-
generateDataSetForecastData() {
|
|
216
|
-
return {
|
|
217
|
-
borderDash: [5],
|
|
218
|
-
borderDashOffset: 0.5,
|
|
219
|
-
data: this.forecastPayload.values.map((price) => ({ x: price.timestamp ?? 0, y: price.value })),
|
|
220
|
-
label: "Forecast Price",
|
|
221
|
-
...DataPointStyles(this.themeColors?.dataSetColorPrimary),
|
|
222
|
-
...DataLineStyles(this.themeColors?.dataSetColorPrimary)
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
async generateDataSetSourcePayloads() {
|
|
226
|
-
const { sourcePrices } = await SourcePayloads.build("feePerGas.medium");
|
|
227
|
-
return {
|
|
228
|
-
data: sourcePrices,
|
|
229
|
-
label: "Source Prices",
|
|
230
|
-
...DataLineStyles(this.themeColors?.dataSetColorSecondary),
|
|
231
|
-
...DataPointStyles(this.themeColors?.dataSetColorSecondary)
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
};
|
|
235
|
-
|
|
236
|
-
// src/components/DetailsBox.tsx
|
|
237
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
238
|
-
import_chart.Chart.register(import_chart.CategoryScale, import_chart.TimeScale, import_chart.PointElement, import_chart.LineElement, import_chart.LinearScale, import_chart.Title, import_chart.Tooltip, import_chart.Legend);
|
|
239
|
-
var PriceForecastDetailsBox = ({ payload, ...props }) => {
|
|
240
|
-
const priceForecastPayload = payload;
|
|
241
|
-
const theme = (0, import_material2.useTheme)();
|
|
242
|
-
const [data, setData] = (0, import_react.useState)({ datasets: [] });
|
|
243
|
-
const [options, setOptions] = (0, import_react.useState)({});
|
|
244
|
-
(0, import_react_async_effect.useAsyncEffect)(
|
|
245
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
246
|
-
async (mounted) => {
|
|
247
|
-
const { data: data2, options: options2 } = await ForecastLineChartConfigBuilder.create(theme, priceForecastPayload, { fetch: true });
|
|
248
|
-
if (mounted()) {
|
|
249
|
-
setData(data2);
|
|
250
|
-
setOptions(options2);
|
|
251
|
-
}
|
|
252
|
-
},
|
|
253
|
-
[priceForecastPayload, theme]
|
|
254
|
-
);
|
|
255
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_flexbox.FlexCol, { ...props, busy: priceForecastPayload === void 0, minHeight: "25vh", children: priceForecastPayload ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_chartjs_2.Line, { options, data }) : null });
|
|
256
|
-
};
|
|
257
|
-
|
|
258
|
-
// src/Plugin.ts
|
|
259
|
-
var import_react_payload_plugin = require("@xyo-network/react-payload-plugin");
|
|
260
|
-
var PriceForecastRenderPlugin = {
|
|
261
|
-
...(0, import_react_payload_plugin.createPayloadRenderPlugin)({
|
|
262
|
-
canRender: () => true,
|
|
263
|
-
components: {
|
|
264
|
-
box: {
|
|
265
|
-
detailsBox: PriceForecastDetailsBox
|
|
266
|
-
}
|
|
267
|
-
},
|
|
268
|
-
name: "PriceForecast"
|
|
269
|
-
})
|
|
270
|
-
};
|
|
271
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts","../../src/components/DetailsBox.tsx","../../src/lib/DataLineStyles.ts","../../src/lib/DataPointStyles.ts","../../src/lib/MockSourcePayloads.ts","../../src/lib/SourcePayloads.ts","../../src/lib/ForecastLineChartConfigBuilder.ts","../../src/Plugin.ts"],"sourcesContent":["export * from './components/index.js'\nexport * from './Plugin.js'\n","import 'chartjs-adapter-luxon'\n\nimport { useTheme } from '@mui/material'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { ForecastPayload } from '@xyo-network/diviner-forecasting-model'\nimport { Payload } from '@xyo-network/payload-model'\nimport {\n CategoryScale,\n Chart as ChartJS,\n ChartData,\n ChartOptions,\n Legend,\n LinearScale,\n LineElement,\n PointElement,\n TimeScale,\n Title,\n Tooltip,\n} from 'chart.js'\nimport { useState } from 'react'\nimport { Line } from 'react-chartjs-2'\n\nimport { ForecastLineChartConfigBuilder } from '../lib/index.js'\n\nChartJS.register(CategoryScale, TimeScale, PointElement, LineElement, LinearScale, Title, Tooltip, Legend)\n\nexport interface PriceForecastDetailsBoxProps extends FlexBoxProps {\n payload?: Payload\n}\n\nexport const PriceForecastDetailsBox: React.FC<PriceForecastDetailsBoxProps> = ({ payload, ...props }) => {\n const priceForecastPayload = payload as ForecastPayload | undefined\n const theme = useTheme()\n const [data, setData] = useState<ChartData<'line'>>({ datasets: [] })\n const [options, setOptions] = useState<ChartOptions<'line'>>({})\n\n useAsyncEffect(\n // eslint-disable-next-line react-hooks/exhaustive-deps\n async (mounted) => {\n const { data, options } = await ForecastLineChartConfigBuilder.create(theme, priceForecastPayload, { fetch: true })\n if (mounted()) {\n setData(data)\n setOptions(options)\n }\n },\n [priceForecastPayload, theme],\n )\n\n return (\n <FlexCol {...props} busy={priceForecastPayload === undefined} minHeight=\"25vh\">\n {priceForecastPayload ?\n <Line options={options} data={data} />\n : null}\n </FlexCol>\n )\n}\n","import { alpha } from '@mui/material'\n\nexport const DataLineStyles = (color?: string) => ({\n backgroundColor: color ? alpha(color, 0.5) : undefined,\n borderColor: color,\n})\n","export const DataPointStyles = (pointHoverBackgroundColor?: string) => ({\n pointHitRadius: 20,\n pointHoverBackgroundColor,\n pointHoverRadius: 10,\n pointRadius: 5,\n pointStyle: 'circle',\n})\n","export const MockSourcePayloads = () => {\n const tenMin = 600_000\n return [\n {\n baseFee: 38.901_553_878_25,\n feePerGas: { high: 47.994_586_439_6, low: 39.006_868_093, medium: 39.306_868_093, veryHigh: 44.453_843_805_25 },\n priorityFeePerGas: { high: 1.026_666_666_666_666_6, low: -0.410_000_000_000_000_03, medium: 0.38, veryHigh: 1.390_000_000_000_000_1 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now() - tenMin,\n },\n {\n baseFee: 38.901_553_878_25,\n feePerGas: { high: 47.994_586_439_6, low: 39.006_868_093, medium: 100, veryHigh: 44.453_843_805_25 },\n priorityFeePerGas: { high: 1.026_666_666_666_666_6, low: -0.410_000_000_000_000_03, medium: 0.38, veryHigh: 1.390_000_000_000_000_1 },\n schema: 'network.xyo.blockchain.ethereum.gas',\n timestamp: Date.now(),\n },\n ]\n}\n","import { Payload } from '@xyo-network/payload-model'\nimport { Point } from 'chart.js'\n\nimport { MockSourcePayloads } from './MockSourcePayloads.js'\n\nexport class SourcePayloads {\n sourcePrices: Point[] = []\n\n constructor(public sourcePayloads: Payload[]) {}\n\n get payloads() {\n return this.sourcePayloads\n }\n\n static async build(jsonPath: string) {\n const sourcePayloads = await this.fetchSourcePayloads()\n const instance = new this(sourcePayloads)\n\n const paths = jsonPath.split('.')\n instance.sourcePrices = sourcePayloads.map((payload) => {\n return { x: payload.timestamp, y: instance.jsonPathTraverser(payload, paths) }\n })\n return instance\n }\n\n // TODO - fetch from archivist\n static async fetchSourcePayloads() {\n const payloads = await Promise.resolve(MockSourcePayloads())\n return payloads\n }\n\n jsonPathTraverser(obj: Payload, path: string[]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let result: any = obj\n for (const key of path) {\n if (key in result) {\n const foundKey = key as keyof typeof result\n result = result[foundKey]\n } else {\n result = undefined\n break\n }\n }\n\n return result\n }\n}\n","import { Theme } from '@mui/material'\nimport { ForecastPayload } from '@xyo-network/diviner-forecasting-model'\nimport { ChartData, ChartDataset, ChartOptions, LegendOptions, Point, ScaleChartOptions } from 'chart.js'\n\nimport { DataLineStyles } from './DataLineStyles.js'\nimport { DataPointStyles } from './DataPointStyles.js'\nimport { SourcePayloads } from './SourcePayloads.js'\n\ninterface SourcePayloadConfig {\n fetch: boolean\n sampleSize?: number\n}\n\ninterface ThemeColors {\n dataSetColorPrimary: string\n dataSetColorSecondary: string\n gridColor: string\n}\n\nconst defaultOptions: () => ChartOptions<'line'> = () => ({\n plugins: {\n legend: {\n position: 'top' as const,\n },\n },\n responsive: true,\n})\n\nexport class ForecastLineChartConfigBuilder {\n data: ChartData<'line'> = {\n datasets: [],\n }\n options: ChartOptions<'line'> = defaultOptions()\n themeColors: ThemeColors | undefined\n\n constructor(\n theme: Theme,\n private payload?: ForecastPayload,\n ) {\n this.themeColors = this.parseTheme(theme)\n }\n\n get forecastPayload() {\n if (this.payload) {\n return this.payload\n } else {\n throw new Error('ForecastPayload was not defined')\n }\n }\n\n static async create(theme: Theme, payload?: ForecastPayload, sourcePayloadConfig?: SourcePayloadConfig) {\n const instance = new ForecastLineChartConfigBuilder(theme, payload)\n\n await instance.build(sourcePayloadConfig?.fetch)\n\n instance.refreshValues()\n\n return instance\n }\n\n async build(includeSources?: boolean) {\n this.buildOptions()\n await this.buildData(includeSources)\n return this\n }\n\n async buildData(includeSources?: boolean) {\n const forecastData = this.generateDataSetForecastData()\n\n const datasets: ChartDataset<'line'>[] = [forecastData]\n\n if (includeSources) {\n // build data from sources in forecastPayload\n const sourceData = await this.generateDataSetSourcePayloads()\n datasets.unshift(sourceData)\n\n // add last source point as first item in prediction to connect the lines\n const lastSourceDataItem = sourceData.data.at(-1) as Point\n forecastData.data.unshift(lastSourceDataItem)\n }\n\n this.data = {\n datasets,\n }\n\n return this\n }\n\n buildOptions() {\n if (this.options.plugins) {\n this.options.plugins.title = this.generateTitle()\n this.options.plugins.legend = this.generateLegend()\n }\n this.options.scales = this.generateScales()\n\n return this\n }\n\n refreshValues() {\n this.data = { ...this.data }\n this.options = { ...this.options }\n }\n\n protected generateLegend() {\n return {\n labels: {\n pointStyle: 'circle',\n usePointStyle: true,\n },\n } as LegendOptions<'line'>\n }\n\n protected generateScales() {\n return {\n x: {\n grid: {\n color: this.themeColors?.gridColor,\n },\n time: {\n unit: 'minute',\n },\n type: 'time',\n },\n y: {\n grid: {\n color: this.themeColors?.gridColor,\n },\n },\n } as unknown as ScaleChartOptions<'line'>['scales']\n }\n\n protected generateTitle() {\n return {\n display: true,\n text: `Gas Price Forecaster (GWEI over time from ${\n this.forecastPayload?.values[0].timestamp ? new Date(this.forecastPayload.values[0].timestamp).toLocaleDateString() : ''\n })`,\n }\n }\n\n protected parseTheme(theme: Theme) {\n const dark = theme.palette.mode === 'dark'\n return {\n dataSetColorPrimary: theme.palette.primary.light,\n dataSetColorSecondary: theme.palette.secondary.light,\n gridColor: dark ? theme.palette.grey[800] : theme.palette.grey[300],\n }\n }\n\n private generateDataSetForecastData(): ChartDataset<'line'> {\n return {\n borderDash: [5],\n borderDashOffset: 0.5,\n data: this.forecastPayload.values.map((price) => ({ x: price.timestamp ?? 0, y: price.value })),\n label: 'Forecast Price',\n ...DataPointStyles(this.themeColors?.dataSetColorPrimary),\n ...DataLineStyles(this.themeColors?.dataSetColorPrimary),\n }\n }\n\n private async generateDataSetSourcePayloads(): Promise<ChartDataset<'line'>> {\n const { sourcePrices } = await SourcePayloads.build('feePerGas.medium')\n return {\n data: sourcePrices,\n label: 'Source Prices',\n ...DataLineStyles(this.themeColors?.dataSetColorSecondary),\n ...DataPointStyles(this.themeColors?.dataSetColorSecondary),\n }\n }\n}\n","import { createPayloadRenderPlugin, PayloadRenderPlugin } from '@xyo-network/react-payload-plugin'\n\nimport { PriceForecastDetailsBox } from './components/index.js'\n\nexport const PriceForecastRenderPlugin: PayloadRenderPlugin = {\n ...createPayloadRenderPlugin({\n canRender: () => true,\n components: {\n box: {\n detailsBox: PriceForecastDetailsBox,\n },\n },\n name: 'PriceForecast',\n }),\n}\n"],"mappings":"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","names":["import_material","ChartJS","data","options"]}
|
package/dist/neutral/index.d.cts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA"}
|
package/dist/neutral/index.d.mts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA"}
|
package/dist/neutral/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA"}
|