blue-chestnut-solar-expert 0.0.17 → 0.0.19
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/components/polygon-buttons.d.ts +11 -0
- package/dist/components/polygon-information.d.ts +11 -0
- package/dist/components/undo-icon.d.ts +11 -0
- package/dist/stencil-library/{config-hh5GAFbi.js → config-BV_PiZGS.js} +5 -3
- package/dist/stencil-library/config-BV_PiZGS.js.map +1 -0
- package/dist/stencil-library/eraser-icon.entry.esm.js.map +1 -1
- package/dist/stencil-library/eraser-icon.entry.js +1 -1
- package/dist/stencil-library/eraser-icon.entry.js.map +1 -1
- package/dist/stencil-library/house-icon.entry.esm.js.map +1 -1
- package/dist/stencil-library/house-icon.entry.js +1 -1
- package/dist/stencil-library/house-icon.entry.js.map +1 -1
- package/dist/stencil-library/icon-selector.entry.esm.js.map +1 -1
- package/dist/stencil-library/icon-selector.entry.js +4 -1
- package/dist/stencil-library/icon-selector.entry.js.map +1 -1
- package/dist/stencil-library/loading-widget.entry.esm.js.map +1 -1
- package/dist/stencil-library/loading-widget.entry.js +2 -2
- package/dist/stencil-library/loading-widget.entry.js.map +1 -1
- package/dist/stencil-library/map-draw.entry.esm.js.map +1 -1
- package/dist/stencil-library/map-draw.entry.js +118 -170
- package/dist/stencil-library/map-draw.entry.js.map +1 -1
- package/dist/stencil-library/map-selector.entry.esm.js.map +1 -1
- package/dist/stencil-library/map-selector.entry.js +4 -4
- package/dist/stencil-library/map-selector.entry.js.map +1 -1
- package/dist/stencil-library/move-icon.entry.esm.js.map +1 -1
- package/dist/stencil-library/move-icon.entry.js +1 -1
- package/dist/stencil-library/move-icon.entry.js.map +1 -1
- package/dist/stencil-library/octagon-minus-icon.entry.esm.js.map +1 -1
- package/dist/stencil-library/octagon-minus-icon.entry.js +1 -1
- package/dist/stencil-library/octagon-minus-icon.entry.js.map +1 -1
- package/dist/stencil-library/polygon-buttons.entry.esm.js.map +1 -0
- package/dist/stencil-library/polygon-buttons.entry.js +28 -0
- package/dist/stencil-library/polygon-buttons.entry.js.map +1 -0
- package/dist/stencil-library/polygon-information.entry.esm.js.map +1 -0
- package/dist/stencil-library/polygon-information.entry.js +74 -0
- package/dist/stencil-library/polygon-information.entry.js.map +1 -0
- package/dist/stencil-library/search-icon.entry.esm.js.map +1 -1
- package/dist/stencil-library/search-icon.entry.js +1 -1
- package/dist/stencil-library/search-icon.entry.js.map +1 -1
- package/dist/stencil-library/settings-icon.entry.esm.js.map +1 -1
- package/dist/stencil-library/settings-icon.entry.js +1 -1
- package/dist/stencil-library/settings-icon.entry.js.map +1 -1
- package/dist/stencil-library/settings-modal.entry.esm.js.map +1 -1
- package/dist/stencil-library/settings-modal.entry.js +10 -10
- package/dist/stencil-library/settings-modal.entry.js.map +1 -1
- package/dist/stencil-library/solar-calculator.entry.esm.js.map +1 -1
- package/dist/stencil-library/solar-calculator.entry.js +2 -2
- package/dist/stencil-library/solar-calculator.entry.js.map +1 -1
- package/dist/stencil-library/solar-expert.entry.esm.js.map +1 -1
- package/dist/stencil-library/solar-expert.entry.js +3 -3
- package/dist/stencil-library/solar-expert.entry.js.map +1 -1
- package/dist/stencil-library/solar-system-form.entry.esm.js.map +1 -1
- package/dist/stencil-library/solar-system-form.entry.js +223 -184
- package/dist/stencil-library/solar-system-form.entry.js.map +1 -1
- package/dist/stencil-library/stencil-library.esm.js +1 -1
- package/dist/stencil-library/{store-CbFNgpiN.js → store-By_Yq2NT.js} +22 -4
- package/dist/stencil-library/store-By_Yq2NT.js.map +1 -0
- package/dist/stencil-library/{store-DsXeXraH.js → store-Dr69Zmu_.js} +27 -5
- package/dist/stencil-library/store-Dr69Zmu_.js.map +1 -0
- package/dist/stencil-library/tool-box.entry.esm.js.map +1 -1
- package/dist/stencil-library/tool-box.entry.js +11 -5
- package/dist/stencil-library/tool-box.entry.js.map +1 -1
- package/dist/stencil-library/{tools-DO8CG56H.js → tools-DU7Muwzb.js} +17 -3
- package/dist/stencil-library/tools-DU7Muwzb.js.map +1 -0
- package/dist/stencil-library/undo-icon.entry.esm.js.map +1 -0
- package/dist/stencil-library/undo-icon.entry.js +20 -0
- package/dist/stencil-library/undo-icon.entry.js.map +1 -0
- package/dist/stencil-library/utils-CTW6J-87.js +99 -0
- package/dist/stencil-library/utils-CTW6J-87.js.map +1 -0
- package/dist/types/components/icons/undo.d.ts +5 -0
- package/dist/types/components/map-draw/map-draw.d.ts +5 -0
- package/dist/types/components/map-draw/polygon-buttons.d.ts +6 -0
- package/dist/types/components/map-draw/polygon-information.d.ts +9 -0
- package/dist/types/components/map-draw/tool-box.d.ts +1 -0
- package/dist/types/components/solar-system-form/solar-system-form.d.ts +3 -2
- package/dist/types/components.d.ts +73 -10
- package/dist/types/config.d.ts +1 -0
- package/dist/types/constants.d.ts +2 -1
- package/dist/types/types/lang.d.ts +6 -0
- package/dist/types/utils/render/polygon.d.ts +6 -1
- package/dist/types/utils/render/tools.d.ts +3 -1
- package/dist/types/utils/simulation/simulation.d.ts +8 -0
- package/dist/types/utils/simulation/solarCurves.d.ts +3 -0
- package/dist/types/utils/simulation/types.d.ts +49 -0
- package/package.json +2 -2
- package/dist/stencil-library/config-hh5GAFbi.js.map +0 -1
- package/dist/stencil-library/store-B-oT8BM6.js +0 -579
- package/dist/stencil-library/store-B-oT8BM6.js.map +0 -1
- package/dist/stencil-library/store-B74GO7_R.js +0 -579
- package/dist/stencil-library/store-B74GO7_R.js.map +0 -1
- package/dist/stencil-library/store-CJCtVxJR.js +0 -546
- package/dist/stencil-library/store-CJCtVxJR.js.map +0 -1
- package/dist/stencil-library/store-CbFNgpiN.js.map +0 -1
- package/dist/stencil-library/store-CzUjX3ZS.js +0 -579
- package/dist/stencil-library/store-CzUjX3ZS.js.map +0 -1
- package/dist/stencil-library/store-D2T-tfKH.js +0 -573
- package/dist/stencil-library/store-D2T-tfKH.js.map +0 -1
- package/dist/stencil-library/store-DsXeXraH.js.map +0 -1
- package/dist/stencil-library/store-TjbCCrIW.js +0 -573
- package/dist/stencil-library/store-TjbCCrIW.js.map +0 -1
- package/dist/stencil-library/store-Y8q2XvVS.js +0 -579
- package/dist/stencil-library/store-Y8q2XvVS.js.map +0 -1
- package/dist/stencil-library/store-tzn2ldy2.js +0 -579
- package/dist/stencil-library/store-tzn2ldy2.js.map +0 -1
- package/dist/stencil-library/tools-DO8CG56H.js.map +0 -1
|
@@ -8,16 +8,18 @@ import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
|
|
|
8
8
|
import { SolarExpertConfig } from "./config";
|
|
9
9
|
import { SolarPanelType } from "./utils/solar";
|
|
10
10
|
import { Language } from "./types/lang";
|
|
11
|
+
import { unknown as Polygon, unknown as SolarPanelSystemPart } from "./components";
|
|
11
12
|
import { Settings } from "./store";
|
|
12
|
-
import { SolarPanelSystemPart } from "./utils/geometry/fitting";
|
|
13
|
-
import { Polygon } from "./types/shapes";
|
|
13
|
+
import { SolarPanelSystemPart as SolarPanelSystemPart1 } from "./utils/geometry/fitting";
|
|
14
|
+
import { Polygon as Polygon1 } from "./types/shapes";
|
|
14
15
|
import { Tool } from "./utils/render/tools";
|
|
15
16
|
export { SolarExpertConfig } from "./config";
|
|
16
17
|
export { SolarPanelType } from "./utils/solar";
|
|
17
18
|
export { Language } from "./types/lang";
|
|
19
|
+
export { unknown as Polygon, unknown as SolarPanelSystemPart } from "./components";
|
|
18
20
|
export { Settings } from "./store";
|
|
19
|
-
export { SolarPanelSystemPart } from "./utils/geometry/fitting";
|
|
20
|
-
export { Polygon } from "./types/shapes";
|
|
21
|
+
export { SolarPanelSystemPart as SolarPanelSystemPart1 } from "./utils/geometry/fitting";
|
|
22
|
+
export { Polygon as Polygon1 } from "./types/shapes";
|
|
21
23
|
export { Tool } from "./utils/render/tools";
|
|
22
24
|
export namespace Components {
|
|
23
25
|
interface EraserIcon {
|
|
@@ -52,6 +54,18 @@ export namespace Components {
|
|
|
52
54
|
"inline": boolean;
|
|
53
55
|
"size": number;
|
|
54
56
|
}
|
|
57
|
+
interface PolygonButtons {
|
|
58
|
+
"calculateSolarPanels": () => void;
|
|
59
|
+
"currentTool": string;
|
|
60
|
+
"selectEdgeTool": () => void;
|
|
61
|
+
}
|
|
62
|
+
interface PolygonInformation {
|
|
63
|
+
"calculateSolarPanels": () => void;
|
|
64
|
+
"currentPolygon": Polygon;
|
|
65
|
+
"handleAzimuthChange": (event: Event) => void;
|
|
66
|
+
"handlePitchChange": (event: Event) => void;
|
|
67
|
+
"positionedPanels": SolarPanelSystemPart[] | undefined;
|
|
68
|
+
}
|
|
55
69
|
interface SearchIcon {
|
|
56
70
|
"inline": boolean;
|
|
57
71
|
"size": number;
|
|
@@ -71,13 +85,18 @@ export namespace Components {
|
|
|
71
85
|
"language": Language;
|
|
72
86
|
}
|
|
73
87
|
interface SolarSystemForm {
|
|
74
|
-
"obstructionPolygons": { [id: string]:
|
|
75
|
-
"roofPolygons": { [id: string]:
|
|
76
|
-
"systemConfigs": { [id: string]:
|
|
88
|
+
"obstructionPolygons": { [id: string]: Polygon1 };
|
|
89
|
+
"roofPolygons": { [id: string]: Polygon1 };
|
|
90
|
+
"systemConfigs": { [id: string]: SolarPanelSystemPart1 };
|
|
77
91
|
}
|
|
78
92
|
interface ToolBox {
|
|
79
93
|
"currentTool": Tool;
|
|
80
94
|
"onToolSelect": (tool: Tool) => void;
|
|
95
|
+
"undoCallback": () => void;
|
|
96
|
+
}
|
|
97
|
+
interface UndoIcon {
|
|
98
|
+
"inline": boolean;
|
|
99
|
+
"size": number;
|
|
81
100
|
}
|
|
82
101
|
}
|
|
83
102
|
export interface SettingsModalCustomEvent<T> extends CustomEvent<T> {
|
|
@@ -133,6 +152,18 @@ declare global {
|
|
|
133
152
|
prototype: HTMLOctagonMinusIconElement;
|
|
134
153
|
new (): HTMLOctagonMinusIconElement;
|
|
135
154
|
};
|
|
155
|
+
interface HTMLPolygonButtonsElement extends Components.PolygonButtons, HTMLStencilElement {
|
|
156
|
+
}
|
|
157
|
+
var HTMLPolygonButtonsElement: {
|
|
158
|
+
prototype: HTMLPolygonButtonsElement;
|
|
159
|
+
new (): HTMLPolygonButtonsElement;
|
|
160
|
+
};
|
|
161
|
+
interface HTMLPolygonInformationElement extends Components.PolygonInformation, HTMLStencilElement {
|
|
162
|
+
}
|
|
163
|
+
var HTMLPolygonInformationElement: {
|
|
164
|
+
prototype: HTMLPolygonInformationElement;
|
|
165
|
+
new (): HTMLPolygonInformationElement;
|
|
166
|
+
};
|
|
136
167
|
interface HTMLSearchIconElement extends Components.SearchIcon, HTMLStencilElement {
|
|
137
168
|
}
|
|
138
169
|
var HTMLSearchIconElement: {
|
|
@@ -187,6 +218,12 @@ declare global {
|
|
|
187
218
|
prototype: HTMLToolBoxElement;
|
|
188
219
|
new (): HTMLToolBoxElement;
|
|
189
220
|
};
|
|
221
|
+
interface HTMLUndoIconElement extends Components.UndoIcon, HTMLStencilElement {
|
|
222
|
+
}
|
|
223
|
+
var HTMLUndoIconElement: {
|
|
224
|
+
prototype: HTMLUndoIconElement;
|
|
225
|
+
new (): HTMLUndoIconElement;
|
|
226
|
+
};
|
|
190
227
|
interface HTMLElementTagNameMap {
|
|
191
228
|
"eraser-icon": HTMLEraserIconElement;
|
|
192
229
|
"house-icon": HTMLHouseIconElement;
|
|
@@ -196,6 +233,8 @@ declare global {
|
|
|
196
233
|
"map-selector": HTMLMapSelectorElement;
|
|
197
234
|
"move-icon": HTMLMoveIconElement;
|
|
198
235
|
"octagon-minus-icon": HTMLOctagonMinusIconElement;
|
|
236
|
+
"polygon-buttons": HTMLPolygonButtonsElement;
|
|
237
|
+
"polygon-information": HTMLPolygonInformationElement;
|
|
199
238
|
"search-icon": HTMLSearchIconElement;
|
|
200
239
|
"settings-icon": HTMLSettingsIconElement;
|
|
201
240
|
"settings-modal": HTMLSettingsModalElement;
|
|
@@ -203,6 +242,7 @@ declare global {
|
|
|
203
242
|
"solar-expert": HTMLSolarExpertElement;
|
|
204
243
|
"solar-system-form": HTMLSolarSystemFormElement;
|
|
205
244
|
"tool-box": HTMLToolBoxElement;
|
|
245
|
+
"undo-icon": HTMLUndoIconElement;
|
|
206
246
|
}
|
|
207
247
|
}
|
|
208
248
|
declare namespace LocalJSX {
|
|
@@ -238,6 +278,18 @@ declare namespace LocalJSX {
|
|
|
238
278
|
"inline"?: boolean;
|
|
239
279
|
"size"?: number;
|
|
240
280
|
}
|
|
281
|
+
interface PolygonButtons {
|
|
282
|
+
"calculateSolarPanels"?: () => void;
|
|
283
|
+
"currentTool"?: string;
|
|
284
|
+
"selectEdgeTool"?: () => void;
|
|
285
|
+
}
|
|
286
|
+
interface PolygonInformation {
|
|
287
|
+
"calculateSolarPanels"?: () => void;
|
|
288
|
+
"currentPolygon"?: Polygon;
|
|
289
|
+
"handleAzimuthChange"?: (event: Event) => void;
|
|
290
|
+
"handlePitchChange"?: (event: Event) => void;
|
|
291
|
+
"positionedPanels"?: SolarPanelSystemPart[] | undefined;
|
|
292
|
+
}
|
|
241
293
|
interface SearchIcon {
|
|
242
294
|
"inline"?: boolean;
|
|
243
295
|
"size"?: number;
|
|
@@ -259,13 +311,18 @@ declare namespace LocalJSX {
|
|
|
259
311
|
"language"?: Language;
|
|
260
312
|
}
|
|
261
313
|
interface SolarSystemForm {
|
|
262
|
-
"obstructionPolygons"?: { [id: string]:
|
|
263
|
-
"roofPolygons"?: { [id: string]:
|
|
264
|
-
"systemConfigs"?: { [id: string]:
|
|
314
|
+
"obstructionPolygons"?: { [id: string]: Polygon1 };
|
|
315
|
+
"roofPolygons"?: { [id: string]: Polygon1 };
|
|
316
|
+
"systemConfigs"?: { [id: string]: SolarPanelSystemPart1 };
|
|
265
317
|
}
|
|
266
318
|
interface ToolBox {
|
|
267
319
|
"currentTool"?: Tool;
|
|
268
320
|
"onToolSelect"?: (tool: Tool) => void;
|
|
321
|
+
"undoCallback"?: () => void;
|
|
322
|
+
}
|
|
323
|
+
interface UndoIcon {
|
|
324
|
+
"inline"?: boolean;
|
|
325
|
+
"size"?: number;
|
|
269
326
|
}
|
|
270
327
|
interface IntrinsicElements {
|
|
271
328
|
"eraser-icon": EraserIcon;
|
|
@@ -276,6 +333,8 @@ declare namespace LocalJSX {
|
|
|
276
333
|
"map-selector": MapSelector;
|
|
277
334
|
"move-icon": MoveIcon;
|
|
278
335
|
"octagon-minus-icon": OctagonMinusIcon;
|
|
336
|
+
"polygon-buttons": PolygonButtons;
|
|
337
|
+
"polygon-information": PolygonInformation;
|
|
279
338
|
"search-icon": SearchIcon;
|
|
280
339
|
"settings-icon": SettingsIcon;
|
|
281
340
|
"settings-modal": SettingsModal;
|
|
@@ -283,6 +342,7 @@ declare namespace LocalJSX {
|
|
|
283
342
|
"solar-expert": SolarExpert;
|
|
284
343
|
"solar-system-form": SolarSystemForm;
|
|
285
344
|
"tool-box": ToolBox;
|
|
345
|
+
"undo-icon": UndoIcon;
|
|
286
346
|
}
|
|
287
347
|
}
|
|
288
348
|
export { LocalJSX as JSX };
|
|
@@ -297,6 +357,8 @@ declare module "@stencil/core" {
|
|
|
297
357
|
"map-selector": LocalJSX.MapSelector & JSXBase.HTMLAttributes<HTMLMapSelectorElement>;
|
|
298
358
|
"move-icon": LocalJSX.MoveIcon & JSXBase.HTMLAttributes<HTMLMoveIconElement>;
|
|
299
359
|
"octagon-minus-icon": LocalJSX.OctagonMinusIcon & JSXBase.HTMLAttributes<HTMLOctagonMinusIconElement>;
|
|
360
|
+
"polygon-buttons": LocalJSX.PolygonButtons & JSXBase.HTMLAttributes<HTMLPolygonButtonsElement>;
|
|
361
|
+
"polygon-information": LocalJSX.PolygonInformation & JSXBase.HTMLAttributes<HTMLPolygonInformationElement>;
|
|
300
362
|
"search-icon": LocalJSX.SearchIcon & JSXBase.HTMLAttributes<HTMLSearchIconElement>;
|
|
301
363
|
"settings-icon": LocalJSX.SettingsIcon & JSXBase.HTMLAttributes<HTMLSettingsIconElement>;
|
|
302
364
|
"settings-modal": LocalJSX.SettingsModal & JSXBase.HTMLAttributes<HTMLSettingsModalElement>;
|
|
@@ -304,6 +366,7 @@ declare module "@stencil/core" {
|
|
|
304
366
|
"solar-expert": LocalJSX.SolarExpert & JSXBase.HTMLAttributes<HTMLSolarExpertElement>;
|
|
305
367
|
"solar-system-form": LocalJSX.SolarSystemForm & JSXBase.HTMLAttributes<HTMLSolarSystemFormElement>;
|
|
306
368
|
"tool-box": LocalJSX.ToolBox & JSXBase.HTMLAttributes<HTMLToolBoxElement>;
|
|
369
|
+
"undo-icon": LocalJSX.UndoIcon & JSXBase.HTMLAttributes<HTMLUndoIconElement>;
|
|
307
370
|
}
|
|
308
371
|
}
|
|
309
372
|
}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export interface SolarExpertConfig {
|
|
|
10
10
|
obstructionPolygonHoverFillColor: string;
|
|
11
11
|
roofPolygonSelectedFillColor: string;
|
|
12
12
|
obstructionPolygonSelectedFillColor: string;
|
|
13
|
+
highlightColor: string;
|
|
13
14
|
}
|
|
14
15
|
export declare const DEFAULT_SOLAR_EXPERT_CONFIG: SolarExpertConfig;
|
|
15
16
|
export declare const DEFAULT_SOLAR_PANEL_TYPE: SolarPanelType;
|
|
@@ -5,9 +5,10 @@ declare const ROW_SPACING = 1;
|
|
|
5
5
|
declare const COLUMN_SPACING = 1;
|
|
6
6
|
declare const BORDER_INSET = 0;
|
|
7
7
|
declare const DEFAULT_SUNNINESS = 600;
|
|
8
|
+
declare const HEAT_PUMP_CONSUMPTION = 0.05;
|
|
8
9
|
declare const SOLAR_RADIATION: number[];
|
|
9
10
|
declare const CONSUMPTION_PROFILES: {
|
|
10
11
|
mostly_at_home: number[];
|
|
11
12
|
mostly_away: number[];
|
|
12
13
|
};
|
|
13
|
-
export { OPEN_POLYGON_COLOR, CLOSED_POLYGON_COLOR, DOTTED_LINE_COLOR, ROW_SPACING, COLUMN_SPACING, BORDER_INSET, DEFAULT_SUNNINESS, CONSUMPTION_PROFILES, SOLAR_RADIATION };
|
|
14
|
+
export { OPEN_POLYGON_COLOR, CLOSED_POLYGON_COLOR, DOTTED_LINE_COLOR, ROW_SPACING, COLUMN_SPACING, BORDER_INSET, DEFAULT_SUNNINESS, CONSUMPTION_PROFILES, SOLAR_RADIATION, HEAT_PUMP_CONSUMPTION };
|
|
@@ -79,6 +79,7 @@ export interface LanguageStrings {
|
|
|
79
79
|
noAddressSelected: string;
|
|
80
80
|
information: string;
|
|
81
81
|
calculateSolarPanels: string;
|
|
82
|
+
markRoofEdge: string;
|
|
82
83
|
panels: string;
|
|
83
84
|
area: string;
|
|
84
85
|
azimuth: string;
|
|
@@ -104,6 +105,11 @@ export interface LanguageStrings {
|
|
|
104
105
|
explanation: string;
|
|
105
106
|
ariaLabel: string;
|
|
106
107
|
};
|
|
108
|
+
undo: {
|
|
109
|
+
name: string;
|
|
110
|
+
explanation: string;
|
|
111
|
+
ariaLabel: string;
|
|
112
|
+
};
|
|
107
113
|
};
|
|
108
114
|
};
|
|
109
115
|
}
|
|
@@ -7,7 +7,12 @@ export interface DrawPolygonProps {
|
|
|
7
7
|
shiftKeyPressed: boolean;
|
|
8
8
|
mousePoint: Point | null;
|
|
9
9
|
strokeColor: string;
|
|
10
|
+
highlightColor: string;
|
|
10
11
|
fillColor?: string;
|
|
12
|
+
highlightedEdge?: {
|
|
13
|
+
pointA: Point;
|
|
14
|
+
pointB: Point;
|
|
15
|
+
} | null;
|
|
11
16
|
}
|
|
12
17
|
export interface Line {
|
|
13
18
|
start: Point;
|
|
@@ -21,7 +26,7 @@ export interface DrawCircleProps {
|
|
|
21
26
|
strokeStyle?: string;
|
|
22
27
|
lineWidth?: number;
|
|
23
28
|
}
|
|
24
|
-
export declare function drawPolygon({ polygonCtx, polygonCanvas, polygon, shiftKeyPressed, mousePoint, strokeColor, fillColor }: DrawPolygonProps): void;
|
|
29
|
+
export declare function drawPolygon({ polygonCtx, polygonCanvas, polygon, shiftKeyPressed, mousePoint, strokeColor, fillColor, highlightedEdge, highlightColor }: DrawPolygonProps): void;
|
|
25
30
|
export declare function drawCircle({ ctx, x, y, radius, strokeStyle, lineWidth }: DrawCircleProps): void;
|
|
26
31
|
export declare function drawPerpendicularDottedLine({ ctx, startPoint, endPoint, dashPattern, strokeStyle, lineWidth }: {
|
|
27
32
|
ctx: CanvasRenderingContext2D;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type ToolType = "move" | "roof" | "obstruction" | "delete";
|
|
1
|
+
export type ToolType = "move" | "roof" | "obstruction" | "delete" | "markRoofEdge" | "undo";
|
|
2
2
|
export interface KeyboardCombination {
|
|
3
3
|
key: string;
|
|
4
4
|
description: string;
|
|
@@ -16,4 +16,6 @@ export declare const moveTool: Tool;
|
|
|
16
16
|
export declare const roofTool: Tool;
|
|
17
17
|
export declare const obstructionTool: Tool;
|
|
18
18
|
export declare const deleteTool: Tool;
|
|
19
|
+
export declare const markRoofEdgeTool: Tool;
|
|
20
|
+
export declare const undoTool: Tool;
|
|
19
21
|
export declare const tools: Tool[];
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SimulationResult, SimulationConfig } from "./types";
|
|
2
|
+
export declare function generateElectricCarChargingHours(start: number, end: number): boolean[];
|
|
3
|
+
export declare function simulateDay(production: number[], consumption: number[], dailyConsumption: number, battery: number): {
|
|
4
|
+
autonomy: number;
|
|
5
|
+
soldEnergy: number;
|
|
6
|
+
energyUsageOfProduction: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function simulate(config: SimulationConfig): SimulationResult;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { SolarPanelType } from "../solar";
|
|
2
|
+
export interface SimulationResult {
|
|
3
|
+
autonomy: number;
|
|
4
|
+
byYearSavedCosts: number[];
|
|
5
|
+
compensationPerDay: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ElectricityPrice {
|
|
8
|
+
purchase: number;
|
|
9
|
+
sell: number;
|
|
10
|
+
increase: number;
|
|
11
|
+
}
|
|
12
|
+
export interface ElectricCarConfig {
|
|
13
|
+
batteryKWh: number;
|
|
14
|
+
chargingHours: boolean[];
|
|
15
|
+
averageKilometersPerDay: number;
|
|
16
|
+
consumptionkWhPer100km: number;
|
|
17
|
+
}
|
|
18
|
+
export interface HeatPumpConfig {
|
|
19
|
+
m2: number;
|
|
20
|
+
}
|
|
21
|
+
export interface SolarRadiation {
|
|
22
|
+
winterFactor: number;
|
|
23
|
+
summerFactor: number;
|
|
24
|
+
}
|
|
25
|
+
export interface SolarSystem {
|
|
26
|
+
numberOfPanels: number;
|
|
27
|
+
panelType: SolarPanelType;
|
|
28
|
+
pitch: number;
|
|
29
|
+
}
|
|
30
|
+
export interface HouseholdConsumption {
|
|
31
|
+
consumptionProfile: "mostly_at_home" | "mostly_away";
|
|
32
|
+
winterConsumptionFactor: number;
|
|
33
|
+
summerConsumptionFactor: number;
|
|
34
|
+
averageConsumption: number;
|
|
35
|
+
}
|
|
36
|
+
export interface GeneralSimulationConfig {
|
|
37
|
+
simulationYears: number;
|
|
38
|
+
}
|
|
39
|
+
export declare const DEFAULT_GENERAL_SIMULATION_CONFIG: GeneralSimulationConfig;
|
|
40
|
+
export interface SimulationConfig {
|
|
41
|
+
householdConsumption: HouseholdConsumption;
|
|
42
|
+
electricityPrice: ElectricityPrice;
|
|
43
|
+
solarSystem: SolarSystem;
|
|
44
|
+
batteryKWh: number;
|
|
45
|
+
electricCar?: ElectricCarConfig;
|
|
46
|
+
heatPump?: HeatPumpConfig;
|
|
47
|
+
solarRadiation: SolarRadiation;
|
|
48
|
+
general?: GeneralSimulationConfig;
|
|
49
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blue-chestnut-solar-expert",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"description": "Blue Chestnut Solar Expert",
|
|
5
5
|
"main": "dist/index.cjs.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"start": "stencil build --dev --watch --serve",
|
|
37
37
|
"test": "stencil test --spec --e2e",
|
|
38
38
|
"testspec": "stencil test --spec --watchAll",
|
|
39
|
-
"testspecfile": "jest src/utils/
|
|
39
|
+
"testspecfile": "jest src/utils/simulation/simulation.spec.ts --watch",
|
|
40
40
|
"test.watch": "stencil test --spec --e2e --watchAll",
|
|
41
41
|
"generate": "stencil generate"
|
|
42
42
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config-hh5GAFbi.js","sources":["src/constants.ts","src/config.ts"],"sourcesContent":["\r\nconst OPEN_POLYGON_COLOR = \"red\"; //\"#ffffff\";\r\nconst CLOSED_POLYGON_COLOR = \"#fcba03\";\r\nconst DOTTED_LINE_COLOR = \"rgba(0, 0, 0, 0.5)\";\r\n\r\nconst ROW_SPACING = 1;\r\nconst COLUMN_SPACING = 1;\r\n\r\nconst BORDER_INSET = 0;\r\nconst DEFAULT_SUNNINESS = 600;\r\n\r\nconst SOLAR_RADIATION = [\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0,\r\n 0, // 00:00 - 05:00 - 6\r\n 0,\r\n 0.1,\r\n 0.2, // 8\r\n 0.4, \r\n 0.8,\r\n 1, // 06:00 - 11:00 - 12\r\n 1,\r\n 1,\r\n 1,\r\n 0.7,\r\n 0.5,\r\n 0.3, // 12:00 - 17:00 - 18\r\n 0.16,\r\n 0.02,\r\n 0,\r\n 0,\r\n 0,\r\n 0, // 18:00 - 23:00 - 24\r\n];\r\nconst CONSUMPTION_PROFILES = {\r\n mostly_at_home: [\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.15, // 00:00 - 05:00 - 6\r\n 0.23,\r\n 0.26,\r\n 0.16,\r\n 0.16,\r\n 0.15,\r\n 0.19, // 06:00 - 11:00 - 12\r\n 0.23,\r\n 0.24,\r\n 0.35,\r\n 0.28,\r\n 0.275,\r\n 0.8, // 12:00 - 17:00 - 18\r\n 0.78,\r\n 0.74,\r\n 0.75,\r\n 0.73,\r\n 0.26,\r\n 0.1, // 18:00 - 23:00 - 24\r\n ],\r\n mostly_away: [\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.1,\r\n 0.15, // 00:00 - 05:00 - 6\r\n 0.29,\r\n 0.32,\r\n 0.25,\r\n 0.15,\r\n 0.12,\r\n 0.14, // 06:00 - 11:00 - 12\r\n 0.15,\r\n 0.12,\r\n 0.16,\r\n 0.21,\r\n 0.285,\r\n 1, // 12:00 - 17:00 - 18\r\n 0.81,\r\n 0.77,\r\n 0.79,\r\n 0.73,\r\n 0.26,\r\n 0.1, // 18:00 - 23:00 - 24\r\n ],\r\n};\r\n\r\nexport { OPEN_POLYGON_COLOR, CLOSED_POLYGON_COLOR, DOTTED_LINE_COLOR, ROW_SPACING, COLUMN_SPACING, BORDER_INSET, DEFAULT_SUNNINESS, CONSUMPTION_PROFILES, SOLAR_RADIATION };\r\n","import { SolarPanelType } from \"./utils/solar\";\r\n\r\nexport interface SolarExpertConfig {\r\n openRoofColor: string;\r\n closedRoofColor: string;\r\n openObstructionColor: string;\r\n closedObstructionColor: string;\r\n roofPolygonFillColor: string;\r\n obstructionPolygonFillColor: string;\r\n roofPolygonHoverFillColor: string;\r\n obstructionPolygonHoverFillColor: string;\r\n roofPolygonSelectedFillColor: string;\r\n obstructionPolygonSelectedFillColor: string;\r\n}\r\n\r\nexport const DEFAULT_SOLAR_EXPERT_CONFIG: SolarExpertConfig = {\r\n openRoofColor: \"#d6eeff\",\r\n closedRoofColor: \"#ffffff\",\r\n openObstructionColor: \"#f57242\",\r\n closedObstructionColor: \"rgba(255, 132, 107, 0.8)\",\r\n roofPolygonFillColor: \"rgba(92, 187, 255, 0.5)\",\r\n obstructionPolygonFillColor: \"rgba(255, 132, 107, 0.5)\",\r\n roofPolygonHoverFillColor: \"rgba(92, 187, 255, 0.8)\",\r\n obstructionPolygonHoverFillColor: \"rgba(255, 132, 107, 0.8)\",\r\n roofPolygonSelectedFillColor: \"rgba(92, 187, 255, 0.7)\",\r\n obstructionPolygonSelectedFillColor: \"rgba(255, 132, 107, 0.7)\",\r\n}\r\n\r\nexport const DEFAULT_SOLAR_PANEL_TYPE: SolarPanelType = {\r\n widthMeters: 1.134,\r\n heightMeters: 1.762,\r\n kWattPeak: 0.455,\r\n efficiency: 0.224,\r\n price: 77.68,\r\n}\r\n"],"names":[],"mappings":"AACA,MAAM,kBAAkB,GAAG,KAAK,CAAC;AACjC,MAAM,oBAAoB,GAAG,SAAS;AAChC,MAAA,iBAAiB,GAAG;AAEpB,MAAA,WAAW,GAAG;AACd,MAAA,cAAc,GAAG;AAEjB,MAAA,YAAY,GAAG;AACf,MAAA,iBAAiB,GAAG;AAE1B,MAAM,eAAe,GAAG;IACpB,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;AACD,IAAA,CAAC;IACD,CAAC;IACD,GAAG;AACH,IAAA,GAAG;IACH,GAAG;IACH,GAAG;AACH,IAAA,CAAC;IACD,CAAC;IACD,CAAC;IACD,CAAC;IACD,GAAG;IACH,GAAG;AACH,IAAA,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,CAAC;IACD,CAAC;IACD,CAAC;AACD,IAAA,CAAC;;AAEL,MAAM,oBAAoB,GAAG;AACzB,IAAA,cAAc,EAAE;QACZ,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;AACH,QAAA,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;AACJ,QAAA,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;AACL,QAAA,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;AACJ,QAAA,GAAG;AACN,KAAA;AACD,IAAA,WAAW,EAAE;QACT,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;QACH,GAAG;AACH,QAAA,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;AACJ,QAAA,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,KAAK;AACL,QAAA,CAAC;QACD,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;QACJ,IAAI;AACJ,QAAA,GAAG;AACN,KAAA;;;AC1EQ,MAAA,2BAA2B,GAAsB;AAC1D,IAAA,aAAa,EAAE,SAAS;AACxB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,oBAAoB,EAAE,SAAS;AAC/B,IAAA,sBAAsB,EAAE,0BAA0B;AAClD,IAAA,oBAAoB,EAAE,yBAAyB;AAC/C,IAAA,2BAA2B,EAAE,0BAA0B;AACvD,IAAA,yBAAyB,EAAE,yBAAyB;AACpD,IAAA,gCAAgC,EAAE,0BAA0B;AAC5D,IAAA,4BAA4B,EAAE,yBAAyB;AACvD,IAAA,mCAAmC,EAAE,0BAA0B;;AAGtD,MAAA,wBAAwB,GAAmB;AACpD,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,YAAY,EAAE,KAAK;AACnB,IAAA,SAAS,EAAE,KAAK;AAChB,IAAA,UAAU,EAAE,KAAK;AACjB,IAAA,KAAK,EAAE,KAAK;;;;;"}
|