@policystudio/policy-studio-ui-vue 1.1.90-beta.2 → 1.1.90-beta.20

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 (146) hide show
  1. package/.eslintrc.js +13 -8
  2. package/.github/workflows/deploy-storybook.yml +4 -4
  3. package/.nvmrc +1 -0
  4. package/dist/css/psui_styles_output.css +6986 -0
  5. package/dist/index.d.ts +50 -0
  6. package/dist/index.js +104 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/util/GeneralFunctions.d.ts +3 -0
  9. package/dist/util/GeneralFunctions.js +29 -0
  10. package/dist/util/GeneralFunctions.js.map +1 -0
  11. package/dist/util/directives.d.ts +1 -0
  12. package/dist/util/directives.js +22 -0
  13. package/dist/util/directives.js.map +1 -0
  14. package/dist/util/imageLoader.d.ts +6 -0
  15. package/dist/util/imageLoader.js +52 -0
  16. package/dist/util/imageLoader.js.map +1 -0
  17. package/package.json +25 -37
  18. package/src/App.vue +30 -0
  19. package/src/assets/scss/components/PsDataTable.scss +1 -1
  20. package/src/components/accordion/PsAccordionItem.vue +75 -75
  21. package/src/components/badges-and-tags/PsBadgeWithIcon.vue +31 -33
  22. package/src/components/badges-and-tags/PsCardInfos.vue +40 -41
  23. package/src/components/badges-and-tags/PsChartLegend.vue +47 -51
  24. package/src/components/badges-and-tags/PsClimateZoneBadge.vue +14 -19
  25. package/src/components/badges-and-tags/PsCostEffectBar.vue +24 -56
  26. package/src/components/badges-and-tags/PsDateCardInfo.vue +17 -18
  27. package/src/components/badges-and-tags/PsHighlightRippleDot.vue +3 -2
  28. package/src/components/badges-and-tags/PsMiniTag.vue +39 -41
  29. package/src/components/badges-and-tags/PsProgressBar.vue +72 -68
  30. package/src/components/badges-and-tags/PsTagScope.vue +17 -22
  31. package/src/components/badges-and-tags/PsTestimonialCard.vue +20 -26
  32. package/src/components/buttons/PsButton.vue +88 -111
  33. package/src/components/chips/PsChips.vue +98 -101
  34. package/src/components/controls/PsCheckbox.vue +84 -84
  35. package/src/components/controls/PsCheckboxSimple.vue +95 -95
  36. package/src/components/controls/PsDraggable.vue +53 -55
  37. package/src/components/controls/PsInlineSelector.vue +99 -99
  38. package/src/components/controls/PsRadioButton.vue +59 -58
  39. package/src/components/controls/PsRadioButtonSimple.vue +79 -75
  40. package/src/components/controls/PsSlider.vue +185 -176
  41. package/src/components/controls/PsSwitch.vue +51 -52
  42. package/src/components/controls/PsToggle.vue +53 -50
  43. package/src/components/data-graphics/PsBarChart.vue +19 -21
  44. package/src/components/datatable/PsDataTable.vue +56 -60
  45. package/src/components/datatable/PsDataTableItem.vue +14 -28
  46. package/src/components/forms/PsDropdown.vue +164 -162
  47. package/src/components/forms/PsDropdownList.vue +133 -130
  48. package/src/components/forms/PsInput.vue +155 -153
  49. package/src/components/forms/PsInputSelect.vue +91 -92
  50. package/src/components/forms/PsInputTextArea.vue +71 -71
  51. package/src/components/navigations/PsBreadcrumb.vue +26 -34
  52. package/src/components/notifications/PsDialog.vue +57 -56
  53. package/src/components/notifications/PsSimpleAlert.vue +28 -29
  54. package/src/components/notifications/PsToast.vue +40 -39
  55. package/src/components/table-results/PsTableResults.vue +449 -458
  56. package/src/components/table-results/PsTableResultsBody.vue +66 -67
  57. package/src/components/table-results/PsTableResultsHead.vue +62 -56
  58. package/src/components/table-results/PsTableResultsHeadComparison.vue +62 -56
  59. package/src/components/table-results/PsTableResultsHeadFlexible.vue +63 -56
  60. package/src/components/table-results/PsTableResultsRow.vue +55 -56
  61. package/src/components/tabs/PsTabHeader.vue +106 -100
  62. package/src/components/tooltip/PsDialogTooltip.vue +96 -101
  63. package/src/components/tooltip/PsRichTooltip.vue +42 -45
  64. package/src/components/tooltip/PsTooltip.vue +111 -116
  65. package/src/components/ui/PsDotLoader.vue +1 -5
  66. package/src/components/ui/PsIcon.vue +126 -129
  67. package/src/index.ts +156 -0
  68. package/src/tsconfig.json +12 -0
  69. package/src/types/index.d.ts +6 -0
  70. package/src/util/GeneralFunctions.js +4 -6
  71. package/src/util/directives.ts +24 -0
  72. package/src/util/imageLoader.js +14 -7
  73. package/tailwind.config.js +1 -1
  74. package/tsconfig.json +47 -0
  75. package/.storybook/PolicyStudio.js +0 -10
  76. package/.storybook/eventBus.js +0 -26
  77. package/.storybook/main.js +0 -21
  78. package/.storybook/manager.js +0 -6
  79. package/.storybook/preview.js +0 -17
  80. package/babel.config.js +0 -17
  81. package/dist/css/psui_styles.css +0 -4647
  82. package/postcss.config.js +0 -8
  83. package/src/assets/images/multifamily-units.svg +0 -10
  84. package/src/assets/images/policy-studio.svg +0 -15
  85. package/src/components/playground/PsScrollBar.vue +0 -320
  86. package/src/contents/ComparisonData.js +0 -378
  87. package/src/contents/FlexibleData.js +0 -502
  88. package/src/contents/ResultsData.js +0 -531
  89. package/src/index.js +0 -166
  90. package/src/stories/Accordion.stories.js +0 -59
  91. package/src/stories/BadgeWithIcon.stories.js +0 -31
  92. package/src/stories/BarChart.stories.js +0 -17
  93. package/src/stories/Breadcrumb.stories.js +0 -25
  94. package/src/stories/Button.stories.js +0 -48
  95. package/src/stories/Button.vue +0 -59
  96. package/src/stories/CardInfos.stories.js +0 -16
  97. package/src/stories/ChartLegend.stories.js +0 -16
  98. package/src/stories/Checkbox.stories.js +0 -45
  99. package/src/stories/CheckboxSimple.stories.js +0 -49
  100. package/src/stories/Chips.stories.js +0 -31
  101. package/src/stories/ClimateZoneBadge.stories.js +0 -17
  102. package/src/stories/Colors.mdx +0 -70
  103. package/src/stories/CostEffectBar.stories.js +0 -23
  104. package/src/stories/Datatable.stories.js +0 -50
  105. package/src/stories/DateCardInfo.stories.js +0 -24
  106. package/src/stories/Dialog.stories.js +0 -131
  107. package/src/stories/Draggable.stories.js +0 -22
  108. package/src/stories/Dropdown.stories.js +0 -99
  109. package/src/stories/DropdownList.stories.js +0 -211
  110. package/src/stories/ElevationSystem.mdx +0 -41
  111. package/src/stories/Header.stories.js +0 -41
  112. package/src/stories/Header.vue +0 -77
  113. package/src/stories/HighlightRippleDot.stories.js +0 -15
  114. package/src/stories/Icon.stories.js +0 -21
  115. package/src/stories/InlineSelector.stories.js +0 -18
  116. package/src/stories/Input.stories.js +0 -240
  117. package/src/stories/InputSelect.stories.js +0 -30
  118. package/src/stories/InputTextArea.stories.js +0 -25
  119. package/src/stories/Introduction.mdx +0 -211
  120. package/src/stories/MiniTag.stories.js +0 -52
  121. package/src/stories/Playground.stories.js +0 -16
  122. package/src/stories/ProgressBar.stories.js +0 -23
  123. package/src/stories/RadioButton.stories.js +0 -40
  124. package/src/stories/RadioButtonSimple.stories.js +0 -43
  125. package/src/stories/SimpleAlert.stories.js +0 -21
  126. package/src/stories/Slider.stories.js +0 -75
  127. package/src/stories/Switch.stories.js +0 -39
  128. package/src/stories/TabHeader.stories.js +0 -52
  129. package/src/stories/TableResults.stories.js +0 -724
  130. package/src/stories/TagScope.stories.js +0 -17
  131. package/src/stories/TestimonialCard.stories.js +0 -27
  132. package/src/stories/Toast.stories.js +0 -52
  133. package/src/stories/Toggle.stories.js +0 -45
  134. package/src/stories/Tooltip.stories.js +0 -114
  135. package/src/stories/Typography.mdx +0 -212
  136. package/src/stories/assets/code-brackets.svg +0 -1
  137. package/src/stories/assets/colors.svg +0 -1
  138. package/src/stories/assets/comments.svg +0 -1
  139. package/src/stories/assets/direction.svg +0 -1
  140. package/src/stories/assets/flow.svg +0 -1
  141. package/src/stories/assets/plugin.svg +0 -1
  142. package/src/stories/assets/repo.svg +0 -1
  143. package/src/stories/assets/stackalt.svg +0 -1
  144. package/src/stories/button.css +0 -30
  145. package/src/stories/header.css +0 -32
  146. package/webpack.config.js +0 -22
@@ -1,502 +0,0 @@
1
- export const flexibleDataHeader = [
2
- {
3
- 'order': 0,
4
- 'key': 'measure_list',
5
- 'title': 'Measure List',
6
- 'columns': [
7
- {
8
- 'isActive': true,
9
- 'key': 'measures',
10
- 'title': 'Measures',
11
- 'description': null,
12
- 'isChart': true,
13
- 'hasHelper': {
14
- 'type': 'helper',
15
- 'id': 1
16
- }
17
- },
18
- {
19
- 'isActive': true,
20
- 'key': 'flexible_score',
21
- 'title': 'Flexible Score',
22
- 'description': 'annual energy savings',
23
- 'isChart': true,
24
- 'hasHelper': {
25
- 'type': 'helper',
26
- 'id': 1
27
- }
28
- },
29
- {
30
- 'isActive': true,
31
- 'key': 'mandatory',
32
- 'title': 'Mandatory',
33
- 'description': null,
34
- 'isChart': true,
35
- 'hasHelper': {
36
- 'type': 'helper',
37
- 'id': 1
38
- }
39
- }
40
- ],
41
- 'hasHelper': {
42
- 'type': 'helper',
43
- 'id': 23
44
- }
45
- },
46
- {
47
- 'order': 1,
48
- 'key': 'benefit_cost_ratios',
49
- 'title': 'Benefit/Cost Ratios',
50
- 'columns': [
51
- {
52
- 'isActive': true,
53
- 'key': 'onbill_benefit_to_cost_ratio',
54
- 'title': 'Onbill',
55
- 'description': '≥ 1.0 is cost effective',
56
- 'isChart': true,
57
- 'hasHelper': {
58
- 'type': 'helper',
59
- 'id': 1
60
- }
61
- },
62
- {
63
- 'isActive': true,
64
- 'key': 'tdv_benefit_to_cost_ratio',
65
- 'title': 'TDV',
66
- 'description': '≥ 1.0 is cost effective',
67
- 'isChart': true,
68
- 'hasHelper': {
69
- 'type': 'helper',
70
- 'id': 1
71
- }
72
- }
73
- ],
74
- 'hasHelper': {
75
- 'type': 'helper',
76
- 'id': 23
77
- }
78
- },
79
- {
80
- 'order': 2,
81
- 'key': 'per_home_results',
82
- 'title': 'Per Home Results',
83
- 'columns': [
84
- {
85
- 'isActive': true,
86
- 'key': 'forecast_initial_cost',
87
- 'title': 'Incremental Cost',
88
- 'description': null,
89
- 'hasProjections': true,
90
- 'hasHelper': {
91
- 'type': 'helper',
92
- 'id': 20
93
- },
94
- 'chartProjection': {
95
- 'title': 'Incremental Cost',
96
- 'subtitle': ''
97
- }
98
- },
99
- {
100
- 'isActive': true,
101
- 'key': 'annual_bill_savings',
102
- 'title': 'Annual Bill Savings',
103
- 'description': null,
104
- 'hasProjections': true,
105
- 'hasHelper': {
106
- 'type': 'helper',
107
- 'id': 18
108
- },
109
- 'chartProjection': {
110
- 'title': 'Annual Bill Savings',
111
- 'subtitle': 'MTCO2e'
112
- }
113
- },
114
- ],
115
- 'hasHelper': {
116
- 'type': 'helper',
117
- 'id': 25
118
- }
119
- }
120
- ]
121
-
122
- export const flexibleDataColumnGroup = [
123
- {
124
- 'order': 0,
125
- 'key': 'measure_list',
126
- 'title': 'Measure List',
127
- 'columns': [
128
- {
129
- 'isActive': true,
130
- 'key': 'flexible_score',
131
- 'title': 'Flexible Score',
132
- 'description': 'annual energy savings',
133
- 'isCenteredContent': true,
134
- 'isChart': false,
135
- 'hasScoreHelper': {
136
- 'type': 'tooltip',
137
- 'title': 'Packages don’t have a flexible score',
138
- 'description' : 'support text'
139
- },
140
- 'hasHelper': {
141
- 'type': 'helper',
142
- 'id': 1
143
- }
144
- },
145
- {
146
- 'isActive': true,
147
- 'key': 'mandatory',
148
- 'title': 'Mandatory',
149
- 'description': null,
150
- 'isCenteredContent': true,
151
- 'isSwitch': true,
152
- 'hasHelper': {
153
- 'type': 'helper',
154
- 'id': 1
155
- }
156
- }
157
- ],
158
- 'hasHelper': {
159
- 'type': 'helper',
160
- 'id': 23
161
- }
162
- },
163
- {
164
- 'order': 1,
165
- 'key': 'benefit_cost_ratios',
166
- 'title': 'Benefit/Cost Ratios',
167
- 'columns': [
168
- {
169
- 'isActive': true,
170
- 'key': 'onbill_benefit_to_cost_ratio',
171
- 'title': 'Onbill',
172
- 'description': '≥ 1.0 is cost effective',
173
- 'isChart': true,
174
- 'hasHelper': {
175
- 'type': 'helper',
176
- 'id': 1
177
- }
178
- },
179
- {
180
- 'isActive': true,
181
- 'key': 'tdv_benefit_to_cost_ratio',
182
- 'title': 'TDV',
183
- 'description': '≥ 1.0 is cost effective',
184
- 'isChart': true,
185
- 'hasHelper': {
186
- 'type': 'helper',
187
- 'id': 1
188
- }
189
- }
190
- ],
191
- 'hasHelper': {
192
- 'type': 'helper',
193
- 'id': 23
194
- }
195
- },
196
- {
197
- 'order': 2,
198
- 'key': 'per_home_results',
199
- 'title': 'Per Home Results',
200
- 'columns': [
201
- {
202
- 'isActive': true,
203
- 'key': 'forecast_initial_cost',
204
- 'title': 'Incremental Cost',
205
- 'description': null,
206
- 'hasProjections': true,
207
- 'hasHelper': {
208
- 'type': 'helper',
209
- 'id': 20
210
- },
211
- 'chartProjection': {
212
- 'title': 'Incremental Cost',
213
- 'subtitle': ''
214
- }
215
- },
216
- {
217
- 'isActive': true,
218
- 'key': 'annual_bill_savings',
219
- 'title': 'Annual Bill Savings',
220
- 'description': null,
221
- 'hasProjections': true,
222
- 'hasHelper': {
223
- 'type': 'helper',
224
- 'id': 18
225
- },
226
- 'chartProjection': {
227
- 'title': 'Annual Bill Savings',
228
- 'subtitle': 'MTCO2e'
229
- }
230
- },
231
- ],
232
- 'hasHelper': {
233
- 'type': 'helper',
234
- 'id': 25
235
- }
236
- }
237
- ]
238
-
239
- export const flexibleDataSummary = [
240
- {
241
- 'data': {
242
- 'onbill_benefit_to_cost_ratio': null,
243
- 'mandatory': null,
244
- },
245
- 'deep': 0,
246
- 'id': 'policy',
247
- 'title': 'Efficiency',
248
- 'items': [
249
- {
250
- 'data': {
251
- 'annual_bill_savings': 1427.3145433224304,
252
- 'forecast_initial_cost': 408160,
253
- 'initial_cost': 2014,
254
- 'emissions_savings': 2.045,
255
- 'kwh_savings': -3999,
256
- 'therms_savings': 400.1415,
257
- 'lifecycle_savings': -4160.687805,
258
- 'tdv_benefit_to_cost_ratio': 1.42,
259
- 'onbill_benefit_to_cost_ratio': 2.01,
260
- 'flexible_score': 2,
261
- 'mandatory': false,
262
- },
263
- 'deep': 1,
264
- 'id': 'policy:container-2459',
265
- 'title': 'LED + Exterior Photosensor',
266
- 'is_disabled': false,
267
- 'is_last': false,
268
- 'index': '0-0',
269
- 'last_deep': false
270
- },
271
- {
272
- 'data': {
273
- 'annual_bill_savings': -2897.5373860970467,
274
- 'forecast_initial_cost': 432795.17237499997,
275
- 'initial_cost': -1567.1339524038463,
276
- 'emissions_savings': 0.16826923076923078,
277
- 'kwh_savings': -880.5528846153846,
278
- 'therms_savings': 54.902403846153845,
279
- 'lifecycle_savings': -3264.74441875,
280
- 'tdv_benefit_to_cost_ratio': 1.24,
281
- 'onbill_benefit_to_cost_ratio': 2.01,
282
- 'flexible_score': 2,
283
- 'mandatory': false,
284
- },
285
- 'deep': 1,
286
- 'id': 'policy:container-2539',
287
- 'title': 'R-49 Attic Insulation',
288
- 'is_disabled': false,
289
- 'is_last': true,
290
- 'index': '0-1',
291
- 'last_deep': false
292
- },
293
- {
294
- 'data': {
295
- 'annual_bill_savings': -2897.5373860970467,
296
- 'forecast_initial_cost': 432795.17237499997,
297
- 'initial_cost': -1567.1339524038463,
298
- 'emissions_savings': 0.16826923076923078,
299
- 'kwh_savings': -880.5528846153846,
300
- 'therms_savings': 54.902403846153845,
301
- 'lifecycle_savings': -3264.74441875,
302
- 'tdv_benefit_to_cost_ratio': 1.24,
303
- 'onbill_benefit_to_cost_ratio': 2.01,
304
- 'flexible_score': 2,
305
- 'mandatory': false,
306
- },
307
- 'deep': 1,
308
- 'id': 'policy:container-2539',
309
- 'title': 'Duct Sealing',
310
- 'is_disabled': false,
311
- 'is_last': true,
312
- 'index': '0-1',
313
- 'last_deep': false
314
- },
315
- {
316
- 'data': {
317
- 'annual_bill_savings': -2897.5373860970467,
318
- 'forecast_initial_cost': 432795.17237499997,
319
- 'initial_cost': -1567.1339524038463,
320
- 'emissions_savings': 0.16826923076923078,
321
- 'kwh_savings': -880.5528846153846,
322
- 'therms_savings': 54.902403846153845,
323
- 'lifecycle_savings': -3264.74441875,
324
- 'tdv_benefit_to_cost_ratio': 1.24,
325
- 'onbill_benefit_to_cost_ratio': 2.01,
326
- 'flexible_score': 2,
327
- 'mandatory': false,
328
- },
329
- 'deep': 1,
330
- 'id': 'policy:container-2539',
331
- 'title': 'New Ducts + Duct Sealing',
332
- 'is_disabled': false,
333
- 'is_last': true,
334
- 'index': '0-1',
335
- 'last_deep': false
336
- }
337
- ],
338
- 'is_disabled': false,
339
- 'index': '0',
340
- 'last_deep': false
341
- },
342
- {
343
- 'data': {
344
- 'onbill_benefit_to_cost_ratio': null,
345
- 'mandatory': null,
346
- },
347
- 'deep': 0,
348
- 'id': 'policy',
349
- 'title': 'Electrification',
350
- 'items': [
351
- {
352
- 'data': {
353
- 'annual_bill_savings': 1427.3145433224304,
354
- 'forecast_initial_cost': 408160,
355
- 'initial_cost': 2014,
356
- 'emissions_savings': 2.045,
357
- 'kwh_savings': -3999,
358
- 'therms_savings': 400.1415,
359
- 'lifecycle_savings': -4160.687805,
360
- 'onbill_benefit_to_cost_ratio': 0.7,
361
- 'tdv_benefit_to_cost_ratio': 1.42,
362
- 'flexible_score': 3,
363
- 'mandatory': false,
364
- },
365
- 'deep': 1,
366
- 'id': 'policy:container-2459',
367
- 'title': 'HVAC Heat Pump',
368
- 'is_disabled': false,
369
- 'is_last': false,
370
- 'index': '0-0',
371
- 'last_deep': false
372
- },
373
- {
374
- 'data': {
375
- 'annual_bill_savings': -2897.5373860970467,
376
- 'forecast_initial_cost': 432795.17237499997,
377
- 'initial_cost': -1567.1339524038463,
378
- 'emissions_savings': 0.16826923076923078,
379
- 'kwh_savings': -880.5528846153846,
380
- 'therms_savings': 54.902403846153845,
381
- 'lifecycle_savings': -3264.74441875,
382
- 'tdv_benefit_to_cost_ratio': 1.24,
383
- 'onbill_benefit_to_cost_ratio': 0.9,
384
- 'flexible_score': 1,
385
- 'mandatory': false,
386
- },
387
- 'deep': 1,
388
- 'id': 'policy:container-2539',
389
- 'title': 'High Eff HVAC Heat Pump',
390
- 'is_disabled': false,
391
- 'is_last': true,
392
- 'index': '0-1',
393
- 'last_deep': false
394
- },
395
- {
396
- 'data': {
397
- 'annual_bill_savings': -2897.5373860970467,
398
- 'forecast_initial_cost': 432795.17237499997,
399
- 'initial_cost': -1567.1339524038463,
400
- 'emissions_savings': 0.16826923076923078,
401
- 'kwh_savings': -880.5528846153846,
402
- 'therms_savings': 54.902403846153845,
403
- 'lifecycle_savings': -3264.74441875,
404
- 'tdv_benefit_to_cost_ratio': 1.24,
405
- 'onbill_benefit_to_cost_ratio': 0.9,
406
- 'flexible_score': 1,
407
- 'mandatory': false,
408
- },
409
- 'deep': 1,
410
- 'id': 'policy:container-2539',
411
- 'title': 'HPWH',
412
- 'is_disabled': false,
413
- 'is_last': true,
414
- 'index': '0-1',
415
- 'last_deep': false
416
- }
417
- ],
418
- 'is_disabled': false,
419
- 'index': '0',
420
- 'last_deep': false
421
- },
422
- {
423
- 'data': {
424
- 'onbill_benefit_to_cost_ratio': null,
425
- 'mandatory': null,
426
- },
427
- 'deep': 0,
428
- 'id': 'policy',
429
- 'title': 'PV Measures',
430
- 'items': [
431
- {
432
- 'data': {
433
- 'annual_bill_savings': 1427.3145433224304,
434
- 'forecast_initial_cost': 408160,
435
- 'initial_cost': 2014,
436
- 'emissions_savings': 2.045,
437
- 'kwh_savings': -3999,
438
- 'therms_savings': 400.1415,
439
- 'lifecycle_savings': -4160.687805,
440
- 'onbill_benefit_to_cost_ratio': 0.7,
441
- 'tdv_benefit_to_cost_ratio': 1.42,
442
- 'flexible_score': 3,
443
- 'mandatory': false,
444
- },
445
- 'deep': 1,
446
- 'id': 'policy:container-2459',
447
- 'title': 'PV + Battery',
448
- 'is_disabled': false,
449
- 'is_last': false,
450
- 'index': '0-0',
451
- 'last_deep': false
452
- },
453
- {
454
- 'data': {
455
- 'annual_bill_savings': -2897.5373860970467,
456
- 'forecast_initial_cost': 432795.17237499997,
457
- 'initial_cost': -1567.1339524038463,
458
- 'emissions_savings': 0.16826923076923078,
459
- 'kwh_savings': -880.5528846153846,
460
- 'therms_savings': 54.902403846153845,
461
- 'lifecycle_savings': -3264.74441875,
462
- 'tdv_benefit_to_cost_ratio': 1.24,
463
- 'onbill_benefit_to_cost_ratio': 0.9,
464
- 'flexible_score': 0,
465
- 'mandatory': false,
466
- },
467
- 'deep': 1,
468
- 'id': 'policy:container-2539',
469
- 'title': 'PV',
470
- 'is_disabled': false,
471
- 'is_last': true,
472
- 'index': '0-1',
473
- 'last_deep': false
474
- },
475
- {
476
- 'data': {
477
- 'annual_bill_savings': -2897.5373860970467,
478
- 'forecast_initial_cost': 432795.17237499997,
479
- 'initial_cost': -1567.1339524038463,
480
- 'emissions_savings': 0.16826923076923078,
481
- 'kwh_savings': -880.5528846153846,
482
- 'therms_savings': 54.902403846153845,
483
- 'lifecycle_savings': -3264.74441875,
484
- 'tdv_benefit_to_cost_ratio': 1.24,
485
- 'onbill_benefit_to_cost_ratio': 0.9,
486
- 'flexible_score': 1,
487
- 'mandatory': false,
488
- },
489
- 'deep': 1,
490
- 'id': 'policy:container-2539',
491
- 'title': 'PV + Electric Ready Pre-Wire',
492
- 'is_disabled': false,
493
- 'is_last': true,
494
- 'index': '0-1',
495
- 'last_deep': false
496
- }
497
- ],
498
- 'is_disabled': false,
499
- 'index': '0',
500
- 'last_deep': false
501
- },
502
- ]