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.
Files changed (104) hide show
  1. package/dist/components/polygon-buttons.d.ts +11 -0
  2. package/dist/components/polygon-information.d.ts +11 -0
  3. package/dist/components/undo-icon.d.ts +11 -0
  4. package/dist/stencil-library/{config-hh5GAFbi.js → config-BV_PiZGS.js} +5 -3
  5. package/dist/stencil-library/config-BV_PiZGS.js.map +1 -0
  6. package/dist/stencil-library/eraser-icon.entry.esm.js.map +1 -1
  7. package/dist/stencil-library/eraser-icon.entry.js +1 -1
  8. package/dist/stencil-library/eraser-icon.entry.js.map +1 -1
  9. package/dist/stencil-library/house-icon.entry.esm.js.map +1 -1
  10. package/dist/stencil-library/house-icon.entry.js +1 -1
  11. package/dist/stencil-library/house-icon.entry.js.map +1 -1
  12. package/dist/stencil-library/icon-selector.entry.esm.js.map +1 -1
  13. package/dist/stencil-library/icon-selector.entry.js +4 -1
  14. package/dist/stencil-library/icon-selector.entry.js.map +1 -1
  15. package/dist/stencil-library/loading-widget.entry.esm.js.map +1 -1
  16. package/dist/stencil-library/loading-widget.entry.js +2 -2
  17. package/dist/stencil-library/loading-widget.entry.js.map +1 -1
  18. package/dist/stencil-library/map-draw.entry.esm.js.map +1 -1
  19. package/dist/stencil-library/map-draw.entry.js +118 -170
  20. package/dist/stencil-library/map-draw.entry.js.map +1 -1
  21. package/dist/stencil-library/map-selector.entry.esm.js.map +1 -1
  22. package/dist/stencil-library/map-selector.entry.js +4 -4
  23. package/dist/stencil-library/map-selector.entry.js.map +1 -1
  24. package/dist/stencil-library/move-icon.entry.esm.js.map +1 -1
  25. package/dist/stencil-library/move-icon.entry.js +1 -1
  26. package/dist/stencil-library/move-icon.entry.js.map +1 -1
  27. package/dist/stencil-library/octagon-minus-icon.entry.esm.js.map +1 -1
  28. package/dist/stencil-library/octagon-minus-icon.entry.js +1 -1
  29. package/dist/stencil-library/octagon-minus-icon.entry.js.map +1 -1
  30. package/dist/stencil-library/polygon-buttons.entry.esm.js.map +1 -0
  31. package/dist/stencil-library/polygon-buttons.entry.js +28 -0
  32. package/dist/stencil-library/polygon-buttons.entry.js.map +1 -0
  33. package/dist/stencil-library/polygon-information.entry.esm.js.map +1 -0
  34. package/dist/stencil-library/polygon-information.entry.js +74 -0
  35. package/dist/stencil-library/polygon-information.entry.js.map +1 -0
  36. package/dist/stencil-library/search-icon.entry.esm.js.map +1 -1
  37. package/dist/stencil-library/search-icon.entry.js +1 -1
  38. package/dist/stencil-library/search-icon.entry.js.map +1 -1
  39. package/dist/stencil-library/settings-icon.entry.esm.js.map +1 -1
  40. package/dist/stencil-library/settings-icon.entry.js +1 -1
  41. package/dist/stencil-library/settings-icon.entry.js.map +1 -1
  42. package/dist/stencil-library/settings-modal.entry.esm.js.map +1 -1
  43. package/dist/stencil-library/settings-modal.entry.js +10 -10
  44. package/dist/stencil-library/settings-modal.entry.js.map +1 -1
  45. package/dist/stencil-library/solar-calculator.entry.esm.js.map +1 -1
  46. package/dist/stencil-library/solar-calculator.entry.js +2 -2
  47. package/dist/stencil-library/solar-calculator.entry.js.map +1 -1
  48. package/dist/stencil-library/solar-expert.entry.esm.js.map +1 -1
  49. package/dist/stencil-library/solar-expert.entry.js +3 -3
  50. package/dist/stencil-library/solar-expert.entry.js.map +1 -1
  51. package/dist/stencil-library/solar-system-form.entry.esm.js.map +1 -1
  52. package/dist/stencil-library/solar-system-form.entry.js +223 -184
  53. package/dist/stencil-library/solar-system-form.entry.js.map +1 -1
  54. package/dist/stencil-library/stencil-library.esm.js +1 -1
  55. package/dist/stencil-library/{store-CbFNgpiN.js → store-By_Yq2NT.js} +22 -4
  56. package/dist/stencil-library/store-By_Yq2NT.js.map +1 -0
  57. package/dist/stencil-library/{store-DsXeXraH.js → store-Dr69Zmu_.js} +27 -5
  58. package/dist/stencil-library/store-Dr69Zmu_.js.map +1 -0
  59. package/dist/stencil-library/tool-box.entry.esm.js.map +1 -1
  60. package/dist/stencil-library/tool-box.entry.js +11 -5
  61. package/dist/stencil-library/tool-box.entry.js.map +1 -1
  62. package/dist/stencil-library/{tools-DO8CG56H.js → tools-DU7Muwzb.js} +17 -3
  63. package/dist/stencil-library/tools-DU7Muwzb.js.map +1 -0
  64. package/dist/stencil-library/undo-icon.entry.esm.js.map +1 -0
  65. package/dist/stencil-library/undo-icon.entry.js +20 -0
  66. package/dist/stencil-library/undo-icon.entry.js.map +1 -0
  67. package/dist/stencil-library/utils-CTW6J-87.js +99 -0
  68. package/dist/stencil-library/utils-CTW6J-87.js.map +1 -0
  69. package/dist/types/components/icons/undo.d.ts +5 -0
  70. package/dist/types/components/map-draw/map-draw.d.ts +5 -0
  71. package/dist/types/components/map-draw/polygon-buttons.d.ts +6 -0
  72. package/dist/types/components/map-draw/polygon-information.d.ts +9 -0
  73. package/dist/types/components/map-draw/tool-box.d.ts +1 -0
  74. package/dist/types/components/solar-system-form/solar-system-form.d.ts +3 -2
  75. package/dist/types/components.d.ts +73 -10
  76. package/dist/types/config.d.ts +1 -0
  77. package/dist/types/constants.d.ts +2 -1
  78. package/dist/types/types/lang.d.ts +6 -0
  79. package/dist/types/utils/render/polygon.d.ts +6 -1
  80. package/dist/types/utils/render/tools.d.ts +3 -1
  81. package/dist/types/utils/simulation/simulation.d.ts +8 -0
  82. package/dist/types/utils/simulation/solarCurves.d.ts +3 -0
  83. package/dist/types/utils/simulation/types.d.ts +49 -0
  84. package/package.json +2 -2
  85. package/dist/stencil-library/config-hh5GAFbi.js.map +0 -1
  86. package/dist/stencil-library/store-B-oT8BM6.js +0 -579
  87. package/dist/stencil-library/store-B-oT8BM6.js.map +0 -1
  88. package/dist/stencil-library/store-B74GO7_R.js +0 -579
  89. package/dist/stencil-library/store-B74GO7_R.js.map +0 -1
  90. package/dist/stencil-library/store-CJCtVxJR.js +0 -546
  91. package/dist/stencil-library/store-CJCtVxJR.js.map +0 -1
  92. package/dist/stencil-library/store-CbFNgpiN.js.map +0 -1
  93. package/dist/stencil-library/store-CzUjX3ZS.js +0 -579
  94. package/dist/stencil-library/store-CzUjX3ZS.js.map +0 -1
  95. package/dist/stencil-library/store-D2T-tfKH.js +0 -573
  96. package/dist/stencil-library/store-D2T-tfKH.js.map +0 -1
  97. package/dist/stencil-library/store-DsXeXraH.js.map +0 -1
  98. package/dist/stencil-library/store-TjbCCrIW.js +0 -573
  99. package/dist/stencil-library/store-TjbCCrIW.js.map +0 -1
  100. package/dist/stencil-library/store-Y8q2XvVS.js +0 -579
  101. package/dist/stencil-library/store-Y8q2XvVS.js.map +0 -1
  102. package/dist/stencil-library/store-tzn2ldy2.js +0 -579
  103. package/dist/stencil-library/store-tzn2ldy2.js.map +0 -1
  104. 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]: Polygon };
75
- "roofPolygons": { [id: string]: Polygon };
76
- "systemConfigs": { [id: string]: SolarPanelSystemPart };
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]: Polygon };
263
- "roofPolygons"?: { [id: string]: Polygon };
264
- "systemConfigs"?: { [id: string]: SolarPanelSystemPart };
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
  }
@@ -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,3 @@
1
+ declare const SOLAR_RADIATION: number[];
2
+ export { SOLAR_RADIATION };
3
+ export declare function getSolarRadiation(discountFactor: number): number[];
@@ -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.17",
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/geometry/gridMatching.spec.ts --watch",
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;;;;;"}