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

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 +24 -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 +39 -41
  23. package/src/components/badges-and-tags/PsChartLegend.vue +46 -51
  24. package/src/components/badges-and-tags/PsClimateZoneBadge.vue +13 -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 +19 -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 +98 -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 +52 -50
  43. package/src/components/data-graphics/PsBarChart.vue +18 -21
  44. package/src/components/datatable/PsDataTable.vue +56 -60
  45. package/src/components/datatable/PsDataTableItem.vue +13 -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 +154 -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 +25 -34
  52. package/src/components/notifications/PsDialog.vue +57 -56
  53. package/src/components/notifications/PsSimpleAlert.vue +27 -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 +41 -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,724 +0,0 @@
1
- import PsTableResults, { tableLayout } from '../components/table-results/PsTableResults.vue'
2
- import PsTableResultsHead from '../components/table-results/PsTableResultsHead.vue'
3
- import PsTableResultsHeadFlexible from '../components/table-results/PsTableResultsHeadFlexible.vue'
4
- import PsTableResultsHeadComparison from '../components/table-results/PsTableResultsHeadComparison.vue'
5
- import PsProgressBar from '../components/badges-and-tags/PsProgressBar.vue'
6
- import PsSwitch from '../components/controls/PsSwitch.vue'
7
-
8
- import { resultsDataHeader, resultsDataColumnGroup, resultsDataSummary } from '../contents/ResultsData'
9
- import { comparisonDataHeader, comparisonDataColumnGroup, comparisonDataSummary } from '../contents/ComparisonData'
10
- import { flexibleDataHeader, flexibleDataColumnGroup, flexibleDataSummary } from '../contents/FlexibleData'
11
-
12
- export default {
13
- title: 'Data Tables/TableResults',
14
- component: { PsTableResults, PsTableResultsHead, PsTableResultsHeadComparison, PsTableResultsHeadFlexible },
15
- argTypes: {
16
- layout: { control: { type: 'inline-radio', options: tableLayout } },
17
- onClick: { action: 'clicked' },
18
- onCollapse: { action: 'clicked' },
19
- },
20
- }
21
-
22
- const TableResults = (args, { argTypes }) => ({
23
- props: Object.keys(argTypes),
24
- components: { PsTableResults, PsTableResultsHead, PsTableResultsHeadComparison, PsTableResultsHeadFlexible },
25
- subcomponents: { PsProgressBar, PsSwitch },
26
- template: `
27
- <div style="width:100%;">
28
- <div
29
- :class="$props['layout'] == 'comparison' ? 'psui-bg-gray-20 psui-p-8' : 'psui-bg-white'"
30
- >
31
- <PsTableResults v-bind="$props">
32
- <template v-slot:header>
33
- <PsTableResultsHeadComparison
34
- v-if="$props['layout'] == 'comparison'"
35
- v-bind="$props"
36
- first-column-title="Comparing 4 Policies"
37
- first-column-description=""
38
- />
39
- <PsTableResultsHeadFlexible
40
- v-else-if="$props['layout'] == 'flexible'"
41
- v-bind="$props"
42
- first-column-title="Measure List"
43
- first-column-description="Measures"
44
- />
45
- <PsTableResultsHead
46
- v-else
47
- v-bind="$props"
48
- />
49
- </template>
50
- </PsTableResults>
51
- </div>
52
- </div>
53
- `
54
- })
55
-
56
- export const Results = TableResults.bind({})
57
- Results.args = {
58
- layout: 'results',
59
- header: resultsDataHeader,
60
- columnGroups: resultsDataColumnGroup,
61
- summaryData: resultsDataSummary,
62
- footer: [],
63
- showRowsCollapsed: true,
64
- }
65
-
66
- export const Comparison = TableResults.bind({})
67
- Comparison.args = {
68
- layout: 'comparison',
69
- header: comparisonDataHeader,
70
- columnGroups: comparisonDataColumnGroup,
71
- summaryData: comparisonDataSummary,
72
- footer: [],
73
- showRowsCollapsed: true,
74
- }
75
-
76
- export const Flexible = TableResults.bind({})
77
- Flexible.args = {
78
- layout: 'flexible',
79
- header: flexibleDataHeader,
80
- columnGroups: flexibleDataColumnGroup,
81
- summaryData: flexibleDataSummary,
82
- tableMaxHeight: 'auto',
83
- footer: [],
84
- showRowsCollapsed: false
85
- }
86
-
87
- // const TableSimple = (args, { argTypes }) => ({
88
- // props: Object.keys(argTypes),
89
- // components: { PsTableResults, PsTableResultsHead },
90
- // template: `
91
- // <div style="width:100%;">
92
- // <PsTableResults v-bind="$props">
93
- // <template v-slot:header>
94
- // <PsTableResultsHead v-bind="$props" />
95
- // </template>
96
- // </PsTableResults>
97
- // </div>
98
- // `
99
- // })
100
-
101
- // export const Simple = TableSimple.bind({})
102
- // Simple.args = {
103
- // layout: 'results',
104
- // header: [
105
- // {
106
- // 'order': 0,
107
- // 'key': 'fixed_columns',
108
- // 'title': 'Cost-Effectiveness',
109
- // 'columns': [
110
- // {
111
- // 'isActive': true,
112
- // 'key': 'tdv_benefit_to_cost_ratio',
113
- // 'title': 'TDV',
114
- // 'description': '≥ 1.0 is cost effective',
115
- // 'isChart': true,
116
- // 'hasHelper': {
117
- // 'type': 'helper',
118
- // 'id': 1
119
- // }
120
- // }
121
- // ],
122
- // 'hasHelper': {
123
- // 'type': 'helper',
124
- // 'id': 23
125
- // }
126
- // },
127
- // {
128
- // 'order': 2,
129
- // 'key': 'city_wide_impact',
130
- // 'title': 'Wide Impact',
131
- // 'columns': [
132
- // {
133
- // 'isActive': true,
134
- // 'key': 'forecast_units_affected',
135
- // 'title': 'Affected Units',
136
- // 'description': '(lifecycle)',
137
- // 'hasProjections': true,
138
- // 'hasHelper': {
139
- // 'type': 'helper',
140
- // 'id': 17
141
- // },
142
- // 'chartProjection': {
143
- // 'title': 'Number of Affected Units',
144
- // 'subtitle': ''
145
- // }
146
- // },
147
- // {
148
- // 'isActive': true,
149
- // 'key': 'forecast_initial_cost',
150
- // 'title': 'Compliance Cost',
151
- // 'description': '(lifecycle)',
152
- // 'hasProjections': true,
153
- // 'hasHelper': {
154
- // 'type': 'helper',
155
- // 'id': 20
156
- // },
157
- // 'chartProjection': {
158
- // 'title': 'Compliance Cost',
159
- // 'subtitle': ''
160
- // }
161
- // },
162
- // {
163
- // 'isActive': true,
164
- // 'key': 'forecast_emissions_savings',
165
- // 'title': 'Emissions Reductions',
166
- // 'description': '(lifecycle MTCO2e)',
167
- // 'hasProjections': true,
168
- // 'hasHelper': {
169
- // 'type': 'helper',
170
- // 'id': 18
171
- // },
172
- // 'chartProjection': {
173
- // 'title': 'Emissions Reductions',
174
- // 'subtitle': 'MTCO2e'
175
- // }
176
- // },
177
- // {
178
- // 'isActive': true,
179
- // 'key': 'forecast_lifecycle_savings',
180
- // 'title': 'Lifecycle Savings',
181
- // 'description': '(on-bill)',
182
- // 'hasProjections': true,
183
- // 'hasHelper': {
184
- // 'type': 'helper',
185
- // 'id': 19
186
- // },
187
- // 'chartProjection': {
188
- // 'title': 'Bill Savings',
189
- // 'subtitle': ''
190
- // }
191
- // },
192
- // {
193
- // 'isActive': true,
194
- // 'key': 'forecast_kwh_savings',
195
- // 'title': 'Electricity Savings',
196
- // 'description': '(lifecycle kWh)',
197
- // 'hasProjections': true,
198
- // 'hasHelper': {
199
- // 'type': 'helper',
200
- // 'id': 21
201
- // },
202
- // 'chartProjection': {
203
- // 'title': 'Electricity Savings',
204
- // 'subtitle': 'kWh'
205
- // }
206
- // },
207
- // {
208
- // 'isActive': true,
209
- // 'key': 'forecast_therms_savings',
210
- // 'title': 'Gas Savings',
211
- // 'description': '(lifecycle therms)',
212
- // 'hasProjections': true,
213
- // 'hasHelper': {
214
- // 'type': 'helper',
215
- // 'id': 22
216
- // },
217
- // 'chartProjection': {
218
- // 'title': 'Gas Savings',
219
- // 'subtitle': 'therms'
220
- // }
221
- // }
222
- // ],
223
- // 'hasHelper': {
224
- // 'type': 'helper',
225
- // 'id': 25
226
- // }
227
- // }
228
- // ],
229
- // columnGroups: [
230
- // {
231
- // 'order': 0,
232
- // 'key': 'fixed_columns',
233
- // 'title': 'Cost-Effectiveness',
234
- // 'columns': [
235
- // {
236
- // 'isActive': true,
237
- // 'key': 'tdv_benefit_to_cost_ratio',
238
- // 'title': 'TDV',
239
- // 'description': '≥ 1.0 is cost effective',
240
- // 'isChart': true,
241
- // 'hasHelper': {
242
- // 'type': 'helper',
243
- // 'id': 1
244
- // }
245
- // }
246
- // ],
247
- // 'hasHelper': {
248
- // 'type': 'helper',
249
- // 'id': 23
250
- // }
251
- // },
252
- // {
253
- // 'order': 2,
254
- // 'key': 'city_wide_impact',
255
- // 'title': 'Wide Impact',
256
- // 'columns': [
257
- // {
258
- // 'isActive': true,
259
- // 'key': 'forecast_units_affected',
260
- // 'title': 'Affected Units',
261
- // 'description': '(lifecycle)',
262
- // 'hasProjections': true,
263
- // 'hasHelper': {
264
- // 'type': 'helper',
265
- // 'id': 17
266
- // },
267
- // 'chartProjection': {
268
- // 'title': 'Number of Affected Units',
269
- // 'subtitle': ''
270
- // }
271
- // },
272
- // {
273
- // 'isActive': true,
274
- // 'key': 'forecast_initial_cost',
275
- // 'title': 'Compliance Cost',
276
- // 'description': '(lifecycle)',
277
- // 'hasProjections': true,
278
- // 'hasHelper': {
279
- // 'type': 'helper',
280
- // 'id': 20
281
- // },
282
- // 'chartProjection': {
283
- // 'title': 'Compliance Cost',
284
- // 'subtitle': ''
285
- // }
286
- // },
287
- // {
288
- // 'isActive': true,
289
- // 'key': 'forecast_emissions_savings',
290
- // 'title': 'Emissions Reductions',
291
- // 'description': '(lifecycle MTCO2e)',
292
- // 'hasProjections': true,
293
- // 'hasHelper': {
294
- // 'type': 'helper',
295
- // 'id': 18
296
- // },
297
- // 'chartProjection': {
298
- // 'title': 'Emissions Reductions',
299
- // 'subtitle': 'MTCO2e'
300
- // }
301
- // },
302
- // {
303
- // 'isActive': true,
304
- // 'key': 'forecast_lifecycle_savings',
305
- // 'title': 'Lifecycle Savings',
306
- // 'description': '(on-bill)',
307
- // 'hasProjections': true,
308
- // 'hasHelper': {
309
- // 'type': 'helper',
310
- // 'id': 19
311
- // },
312
- // 'chartProjection': {
313
- // 'title': 'Bill Savings',
314
- // 'subtitle': ''
315
- // }
316
- // },
317
- // {
318
- // 'isActive': true,
319
- // 'key': 'forecast_kwh_savings',
320
- // 'title': 'Electricity Savings',
321
- // 'description': '(lifecycle kWh)',
322
- // 'hasProjections': true,
323
- // 'hasHelper': {
324
- // 'type': 'helper',
325
- // 'id': 21
326
- // },
327
- // 'chartProjection': {
328
- // 'title': 'Electricity Savings',
329
- // 'subtitle': 'kWh'
330
- // }
331
- // },
332
- // {
333
- // 'isActive': true,
334
- // 'key': 'forecast_therms_savings',
335
- // 'title': 'Gas Savings',
336
- // 'description': '(lifecycle therms)',
337
- // 'hasProjections': true,
338
- // 'hasHelper': {
339
- // 'type': 'helper',
340
- // 'id': 22
341
- // },
342
- // 'chartProjection': {
343
- // 'title': 'Gas Savings',
344
- // 'subtitle': 'therms'
345
- // }
346
- // }
347
- // ],
348
- // 'hasHelper': {
349
- // 'type': 'helper',
350
- // 'id': 25
351
- // }
352
- // }
353
- // ],
354
- // summaryData: [
355
- // {
356
- // 'data': {
357
- // 'forecast_units_affected': 337.5,
358
- // 'forecast_emissions_savings': -1470.2228427746163,
359
- // 'forecast_therms_savings': -365783.4118312498,
360
- // 'forecast_kwh_savings': 5790873.440625001,
361
- // 'forecast_lifecycle_savings': 1384353.6577500012,
362
- // 'forecast_initial_cost': 840955.172375,
363
- // 'initial_cost': -744.7994892592594,
364
- // 'annual_bill_savings_avg': null,
365
- // 'annual_bill_savings': -229.11570370370367,
366
- // 'emissions_savings': 0.5992222222222222,
367
- // 'kwh_savings': -1596.6407407407407,
368
- // 'therms_savings': 134.17952962962963,
369
- // 'lifecycle_savings': -3470.4795667037033,
370
- // 'compliance_margin': 6.797037037037037,
371
- // 'baseline_fuel_type': 'Mixed-fuel',
372
- // 'energy_savings_combined': 7.96989981162963,
373
- // 'on_bill_cost_ratio': 0.9328797158714975,
374
- // 'tdv_benefit_to_cost_ratio': 1.327363515218667,
375
- // 'simple_payback': 4.842552503682514,
376
- // 'tdv2022_benefit_to_cost_ratio': 0
377
- // },
378
- // 'deep': 0,
379
- // 'id': 'policy',
380
- // 'title': 'Total Impact',
381
- // 'items': [
382
- // {
383
- // 'data': {
384
- // 'forecast_units_affected': 77.5,
385
- // 'forecast_emissions_savings': 1427.3145433224304,
386
- // 'forecast_therms_savings': 296624.89395,
387
- // 'forecast_kwh_savings': -2102697.449999999,
388
- // 'forecast_lifecycle_savings': 19620.35775000001,
389
- // 'forecast_initial_cost': 408160,
390
- // 'initial_cost': 2014,
391
- // 'annual_bill_savings_avg': null,
392
- // 'annual_bill_savings': -439.0199999999999,
393
- // 'emissions_savings': 2.045,
394
- // 'kwh_savings': -3999,
395
- // 'therms_savings': 400.1415,
396
- // 'lifecycle_savings': -4160.687805,
397
- // 'compliance_margin': 29.6,
398
- // 'baseline_fuel_type': 'Mixed-fuel',
399
- // 'energy_savings_combined': 26.36819047,
400
- // 'on_bill_cost_ratio': 1.460322707,
401
- // 'tdv_benefit_to_cost_ratio': 1.42,
402
- // 'simple_payback': 0,
403
- // 'tdv2022_benefit_to_cost_ratio': 0
404
- // },
405
- // 'deep': 1,
406
- // 'id': 'policy:container-2459',
407
- // 'title': 'New Single Family Units',
408
- // 'items': [
409
- // {
410
- // 'data': {
411
- // 'forecast_units_affected': 77.5,
412
- // 'forecast_emissions_savings': 1427.3145433224304,
413
- // 'forecast_therms_savings': 296624.89395,
414
- // 'forecast_kwh_savings': -2102697.449999999,
415
- // 'forecast_lifecycle_savings': 19620.35775000001,
416
- // 'forecast_initial_cost': 408160,
417
- // 'initial_cost': 2014,
418
- // 'annual_bill_savings_avg': null,
419
- // 'annual_bill_savings': -439.0199999999999,
420
- // 'emissions_savings': 2.045,
421
- // 'kwh_savings': -3999,
422
- // 'therms_savings': 400.1415,
423
- // 'lifecycle_savings': -4160.687805,
424
- // 'compliance_margin': 29.6,
425
- // 'baseline_fuel_type': 'Mixed-fuel',
426
- // 'energy_savings_combined': 26.36819047,
427
- // 'on_bill_cost_ratio': 1.460322707,
428
- // 'tdv_benefit_to_cost_ratio': 1.42,
429
- // 'simple_payback': 0,
430
- // 'tdv2022_benefit_to_cost_ratio': 0
431
- // },
432
- // 'deep': 2,
433
- // 'id': 'policy:container-2459:climateZone-1-PGE',
434
- // 'title': 'Climate Zone 1',
435
- // 'items': [
436
- // {
437
- // 'data': {
438
- // 'forecast_units_affected': 77.5,
439
- // 'forecast_emissions_savings': 1427.3145433224304,
440
- // 'forecast_therms_savings': 296624.89395,
441
- // 'forecast_kwh_savings': -2102697.449999999,
442
- // 'forecast_lifecycle_savings': 19620.35775000001,
443
- // 'forecast_initial_cost': 408160,
444
- // 'initial_cost': 2014,
445
- // 'annual_bill_savings': -439.02,
446
- // 'emissions_savings': 2.045,
447
- // 'kwh_savings': -3999,
448
- // 'therms_savings': 400.1415,
449
- // 'lifecycle_savings': -4160.687805,
450
- // 'compliance_margin': 29.6,
451
- // 'baseline_fuel_type': 'Mixed-fuel',
452
- // 'energy_savings_combined': 26.36819047,
453
- // 'on_bill_cost_ratio': 1.460322707,
454
- // 'tdv_benefit_to_cost_ratio': 1.42,
455
- // 'simple_payback': 0,
456
- // 'tdv2022_benefit_to_cost_ratio': null
457
- // },
458
- // 'deep': 3,
459
- // 'id': 'policy:container-2459:climateZone-1-PGE:fuel-all-electric',
460
- // 'title': 'All Electric',
461
- // 'items': null,
462
- // 'is_disabled': false,
463
- // 'is_last': false,
464
- // 'index': '0-0-0-0',
465
- // 'last_deep': true
466
- // },
467
- // {
468
- // 'data': {
469
- // 'initial_cost': 1806.25,
470
- // 'annual_bill_savings': 186.04,
471
- // 'emissions_savings': 0.42,
472
- // 'kwh_savings': 89.395,
473
- // 'therms_savings': 68.604,
474
- // 'lifecycle_savings': 5647.744375,
475
- // 'compliance_margin': 11.95,
476
- // 'baseline_fuel_type': 'Mixed-fuel',
477
- // 'energy_savings_combined': 7.16541574,
478
- // 'on_bill_cost_ratio': 2.784541829,
479
- // 'tdv_benefit_to_cost_ratio': 2.75,
480
- // 'simple_payback': 9.708831573,
481
- // 'tdv2022_benefit_to_cost_ratio': null
482
- // },
483
- // 'deep': 3,
484
- // 'id': 'policy:container-2459:climateZone-1-PGE:fuel-mixed-fuel',
485
- // 'title': 'Mixed-fuel',
486
- // 'items': null,
487
- // 'is_disabled': true,
488
- // 'is_last': true,
489
- // 'index': '0-0-0-1',
490
- // 'last_deep': true
491
- // }
492
- // ],
493
- // 'is_disabled': false,
494
- // 'is_last': false,
495
- // 'index': '0-0-0',
496
- // 'last_deep': false
497
- // },
498
- // {
499
- // 'data': {
500
- // 'forecast_units_affected': 77.5,
501
- // 'forecast_emissions_savings': 1427.3145433224304,
502
- // 'forecast_therms_savings': 296624.89395,
503
- // 'forecast_kwh_savings': -2102697.449999999,
504
- // 'forecast_lifecycle_savings': 19620.35775000001,
505
- // 'forecast_initial_cost': 408160,
506
- // 'initial_cost': 2014,
507
- // 'annual_bill_savings_avg': null,
508
- // 'annual_bill_savings': -439.0199999999999,
509
- // 'emissions_savings': 2.045,
510
- // 'kwh_savings': -3999,
511
- // 'therms_savings': 400.1415,
512
- // 'lifecycle_savings': -4160.687805,
513
- // 'compliance_margin': 29.6,
514
- // 'baseline_fuel_type': 'Mixed-fuel',
515
- // 'energy_savings_combined': 26.36819047,
516
- // 'on_bill_cost_ratio': 1.460322707,
517
- // 'tdv_benefit_to_cost_ratio': 1.42,
518
- // 'simple_payback': 0,
519
- // 'tdv2022_benefit_to_cost_ratio': 0
520
- // },
521
- // 'deep': 2,
522
- // 'id': 'policy:container-2459:climateZone-2-PGE',
523
- // 'title': 'Climate Zone 2',
524
- // 'items': [
525
- // {
526
- // 'data': {
527
- // 'forecast_units_affected': 77.5,
528
- // 'forecast_emissions_savings': 1427.3145433224304,
529
- // 'forecast_therms_savings': 296624.89395,
530
- // 'forecast_kwh_savings': -2102697.449999999,
531
- // 'forecast_lifecycle_savings': 19620.35775000001,
532
- // 'forecast_initial_cost': 408160,
533
- // 'initial_cost': 2014,
534
- // 'annual_bill_savings': -439.02,
535
- // 'emissions_savings': 2.045,
536
- // 'kwh_savings': -3999,
537
- // 'therms_savings': 400.1415,
538
- // 'lifecycle_savings': -4160.687805,
539
- // 'compliance_margin': 29.6,
540
- // 'baseline_fuel_type': 'Mixed-fuel',
541
- // 'energy_savings_combined': 26.36819047,
542
- // 'on_bill_cost_ratio': 1.460322707,
543
- // 'tdv_benefit_to_cost_ratio': 1.42,
544
- // 'simple_payback': 0,
545
- // 'tdv2022_benefit_to_cost_ratio': null
546
- // },
547
- // 'deep': 3,
548
- // 'id': 'policy:container-2459:climateZone-2-PGE:fuel-all-electric',
549
- // 'title': 'All Electric',
550
- // 'items': null,
551
- // 'is_disabled': false,
552
- // 'is_last': false,
553
- // 'index': '0-0-0-0',
554
- // 'last_deep': true
555
- // },
556
- // {
557
- // 'data': {
558
- // 'initial_cost': 1806.25,
559
- // 'annual_bill_savings': 186.04,
560
- // 'emissions_savings': 0.42,
561
- // 'kwh_savings': 89.395,
562
- // 'therms_savings': 68.604,
563
- // 'lifecycle_savings': 5647.744375,
564
- // 'compliance_margin': 11.95,
565
- // 'baseline_fuel_type': 'Mixed-fuel',
566
- // 'energy_savings_combined': 7.16541574,
567
- // 'on_bill_cost_ratio': 2.784541829,
568
- // 'tdv_benefit_to_cost_ratio': 2.75,
569
- // 'simple_payback': 9.708831573,
570
- // 'tdv2022_benefit_to_cost_ratio': null
571
- // },
572
- // 'deep': 3,
573
- // 'id': 'policy:container-2459:climateZone-2-PGE:fuel-mixed-fuel',
574
- // 'title': 'Mixed-fuel',
575
- // 'items': null,
576
- // 'is_disabled': true,
577
- // 'is_last': true,
578
- // 'index': '0-0-0-1',
579
- // 'last_deep': true
580
- // }
581
- // ],
582
- // 'is_disabled': true,
583
- // 'is_last': true,
584
- // 'index': '0-0-1',
585
- // 'last_deep': false
586
- // }
587
- // ],
588
- // 'is_disabled': false,
589
- // 'is_last': false,
590
- // 'index': '0-0',
591
- // 'last_deep': false
592
- // },
593
- // {
594
- // 'data': {
595
- // 'forecast_units_affected': 260,
596
- // 'forecast_emissions_savings': -2897.5373860970467,
597
- // 'forecast_therms_savings': -662408.3057812498,
598
- // 'forecast_kwh_savings': 7893570.890625,
599
- // 'forecast_lifecycle_savings': 1364733.3000000012,
600
- // 'forecast_initial_cost': 432795.17237499997,
601
- // 'initial_cost': -1567.1339524038463,
602
- // 'annual_bill_savings_avg': null,
603
- // 'annual_bill_savings': -166.54807692307693,
604
- // 'emissions_savings': 0.16826923076923078,
605
- // 'kwh_savings': -880.5528846153846,
606
- // 'therms_savings': 54.902403846153845,
607
- // 'lifecycle_savings': -3264.74441875,
608
- // 'compliance_margin': 0,
609
- // 'baseline_fuel_type': 'Mixed-fuel',
610
- // 'energy_savings_combined': 2.4857939423076925,
611
- // 'on_bill_cost_ratio': 0.435459354,
612
- // 'tdv_benefit_to_cost_ratio': 1.2400000000000002,
613
- // 'simple_payback': 9.409461647,
614
- // 'tdv2022_benefit_to_cost_ratio': 0
615
- // },
616
- // 'deep': 1,
617
- // 'id': 'policy:container-2539',
618
- // 'title': 'New ADUs',
619
- // 'items': [
620
- // {
621
- // 'data': {
622
- // 'forecast_units_affected': 260,
623
- // 'forecast_emissions_savings': -2897.5373860970467,
624
- // 'forecast_therms_savings': -662408.3057812498,
625
- // 'forecast_kwh_savings': 7893570.890625,
626
- // 'forecast_lifecycle_savings': 1364733.3000000012,
627
- // 'forecast_initial_cost': 432795.17237499997,
628
- // 'initial_cost': -1567.1339524038463,
629
- // 'annual_bill_savings_avg': null,
630
- // 'annual_bill_savings': -166.54807692307693,
631
- // 'emissions_savings': 0.16826923076923078,
632
- // 'kwh_savings': -880.5528846153846,
633
- // 'therms_savings': 54.902403846153845,
634
- // 'lifecycle_savings': -3264.74441875,
635
- // 'compliance_margin': 0,
636
- // 'baseline_fuel_type': 'Mixed-fuel',
637
- // 'energy_savings_combined': 2.4857939423076925,
638
- // 'on_bill_cost_ratio': 0.435459354,
639
- // 'tdv_benefit_to_cost_ratio': 1.2400000000000002,
640
- // 'simple_payback': 9.409461647,
641
- // 'tdv2022_benefit_to_cost_ratio': 0
642
- // },
643
- // 'deep': 2,
644
- // 'id': 'policy:container-2539:climateZone-1-PGE',
645
- // 'title': 'Climate Zone 1',
646
- // 'items': [
647
- // {
648
- // 'data': {
649
- // 'forecast_units_affected': 125,
650
- // 'forecast_emissions_savings': -2897.5373860970467,
651
- // 'forecast_therms_savings': -662408.3057812498,
652
- // 'forecast_kwh_savings': 7893570.890625,
653
- // 'forecast_lifecycle_savings': 1364733.3000000012,
654
- // 'forecast_initial_cost': 432795.17237499997,
655
- // 'initial_cost': -3259.638621,
656
- // 'annual_bill_savings': -346.42,
657
- // 'emissions_savings': 0.35,
658
- // 'kwh_savings': -1831.55,
659
- // 'therms_savings': 114.197,
660
- // 'lifecycle_savings': -6790.668391,
661
- // 'compliance_margin': 0,
662
- // 'baseline_fuel_type': 'Mixed-fuel',
663
- // 'energy_savings_combined': 5.1704514,
664
- // 'on_bill_cost_ratio': 0.435459354,
665
- // 'tdv_benefit_to_cost_ratio': 1.24,
666
- // 'simple_payback': 9.409461647,
667
- // 'tdv2022_benefit_to_cost_ratio': null
668
- // },
669
- // 'deep': 3,
670
- // 'id': 'policy:container-2539:climateZone-1-PGE:fuel-all-electric',
671
- // 'title': 'All Electric',
672
- // 'items': null,
673
- // 'is_disabled': false,
674
- // 'is_last': false,
675
- // 'index': '0-1-0-0',
676
- // 'last_deep': true
677
- // },
678
- // {
679
- // 'data': {
680
- // 'forecast_units_affected': 135,
681
- // 'initial_cost': 0,
682
- // 'annual_bill_savings': 0,
683
- // 'emissions_savings': 0,
684
- // 'kwh_savings': 0,
685
- // 'therms_savings': 0,
686
- // 'lifecycle_savings': 0,
687
- // 'compliance_margin': 0,
688
- // 'baseline_fuel_type': 'Mixed-fuel',
689
- // 'energy_savings_combined': 0,
690
- // 'on_bill_cost_ratio': 0,
691
- // 'tdv_benefit_to_cost_ratio': 0,
692
- // 'simple_payback': 0,
693
- // 'tdv2022_benefit_to_cost_ratio': null
694
- // },
695
- // 'deep': 3,
696
- // 'id': 'policy:container-2539:climateZone-1-PGE:fuel-mixed-fuel',
697
- // 'title': 'Mixed-fuel',
698
- // 'items': null,
699
- // 'is_disabled': false,
700
- // 'is_last': true,
701
- // 'index': '0-1-0-1',
702
- // 'last_deep': true
703
- // }
704
- // ],
705
- // 'is_disabled': false,
706
- // 'is_last': true,
707
- // 'index': '0-1-0',
708
- // 'last_deep': false
709
- // }
710
- // ],
711
- // 'is_disabled': false,
712
- // 'is_last': true,
713
- // 'index': '0-1',
714
- // 'last_deep': false
715
- // }
716
- // ],
717
- // 'is_disabled': false,
718
- // 'index': '0',
719
- // 'last_deep': false
720
- // }
721
- // ],
722
- // footer: [],
723
- // showRowsCollapsed: true,
724
- // }