@mwater/visualization 5.5.0 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (222) hide show
  1. package/lib/MWaterContextComponent.d.ts +1 -1
  2. package/lib/MWaterGlobalFiltersComponent.d.ts +2 -2
  3. package/lib/MWaterGlobalFiltersComponent.js +11 -20
  4. package/lib/MWaterLoaderComponent.d.ts +4 -13
  5. package/lib/MWaterLoaderComponent.js +2 -11
  6. package/lib/UndoStack.d.ts +2 -1
  7. package/lib/UndoStack.js +12 -6
  8. package/lib/dashboards/DashboardComponent.js +5 -4
  9. package/lib/dashboards/DashboardDesign.d.ts +1 -1
  10. package/lib/dashboards/ServerDashboardDataSource.js +0 -10
  11. package/lib/dashboards/SettingsModalComponent.js +1 -1
  12. package/lib/datagrids/DatagridComponent.js +22 -2
  13. package/lib/datagrids/DatagridDesignerComponent.d.ts +2 -3
  14. package/lib/datagrids/DatagridDesignerComponent.js +108 -120
  15. package/lib/datagrids/DatagridViewComponent.js +3 -2
  16. package/lib/datagrids/OrderBysDesignerComponent.d.ts +7 -7
  17. package/lib/datagrids/OrderBysDesignerComponent.js +19 -28
  18. package/lib/index.css +45 -2
  19. package/lib/index.d.ts +5 -5
  20. package/lib/index.js +2 -3
  21. package/lib/layouts/blocks/BlocksDisplayComponent.d.ts +8 -1
  22. package/lib/layouts/blocks/BlocksDisplayComponent.js +46 -4
  23. package/lib/maps/BufferLayer.js +12 -0
  24. package/lib/maps/BufferLayerDesign.d.ts +1 -1
  25. package/lib/maps/BufferLayerDesignerComponent.js +2 -2
  26. package/lib/maps/ChoroplethLayer.js +12 -0
  27. package/lib/maps/ChoroplethLayerDesign.d.ts +5 -2
  28. package/lib/maps/ChoroplethLayerDesigner.d.ts +10 -32
  29. package/lib/maps/ChoroplethLayerDesigner.js +58 -89
  30. package/lib/maps/DirectMapDataSource.js +0 -10
  31. package/lib/maps/EditHoverOver.d.ts +4 -3
  32. package/lib/maps/EditHoverOver.js +3 -3
  33. package/lib/maps/HoverContent.js +1 -1
  34. package/lib/maps/LeafletMapComponent.js +10 -19
  35. package/lib/maps/MapComponent.js +0 -1
  36. package/lib/maps/MapUtils.js +10 -1
  37. package/lib/maps/MarkersLayer.js +18 -2
  38. package/lib/maps/MarkersLayerDesign.d.ts +1 -1
  39. package/lib/maps/MarkersLayerDesignerComponent.d.ts +12 -41
  40. package/lib/maps/MarkersLayerDesignerComponent.js +81 -111
  41. package/lib/maps/ServerMapDataSource.js +0 -10
  42. package/lib/maps/VectorMapViewComponent.js +1 -9
  43. package/lib/maps/symbols/font-awesome/asterisk.png +0 -0
  44. package/lib/maps/symbols/font-awesome/ban.png +0 -0
  45. package/lib/maps/symbols/font-awesome/beer.png +0 -0
  46. package/lib/maps/symbols/font-awesome/bell.png +0 -0
  47. package/lib/maps/symbols/font-awesome/bolt.png +0 -0
  48. package/lib/maps/symbols/font-awesome/building.png +0 -0
  49. package/lib/maps/symbols/font-awesome/bullseye.png +0 -0
  50. package/lib/maps/symbols/font-awesome/bus.png +0 -0
  51. package/lib/maps/symbols/font-awesome/caret-up.png +0 -0
  52. package/lib/maps/symbols/font-awesome/certificate.png +0 -0
  53. package/lib/maps/symbols/font-awesome/check-circle.png +0 -0
  54. package/lib/maps/symbols/font-awesome/check.png +0 -0
  55. package/lib/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
  56. package/lib/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
  57. package/lib/maps/symbols/font-awesome/cloud-rain.png +0 -0
  58. package/lib/maps/symbols/font-awesome/cloud.png +0 -0
  59. package/lib/maps/symbols/font-awesome/comment.png +0 -0
  60. package/lib/maps/symbols/font-awesome/crosshairs.png +0 -0
  61. package/lib/maps/symbols/font-awesome/dot-circle-o.png +0 -0
  62. package/lib/maps/symbols/font-awesome/exclamation-circle.png +0 -0
  63. package/lib/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
  64. package/lib/maps/symbols/font-awesome/female.png +0 -0
  65. package/lib/maps/symbols/font-awesome/file.png +0 -0
  66. package/lib/maps/symbols/font-awesome/flag.png +0 -0
  67. package/lib/maps/symbols/font-awesome/flask.png +0 -0
  68. package/lib/maps/symbols/font-awesome/h-square.png +0 -0
  69. package/lib/maps/symbols/font-awesome/home.png +0 -0
  70. package/lib/maps/symbols/font-awesome/info-circle.png +0 -0
  71. package/lib/maps/symbols/font-awesome/male.png +0 -0
  72. package/lib/maps/symbols/font-awesome/medkit.png +0 -0
  73. package/lib/maps/symbols/font-awesome/mobile.png +0 -0
  74. package/lib/maps/symbols/font-awesome/plus-circle.png +0 -0
  75. package/lib/maps/symbols/font-awesome/plus-square.png +0 -0
  76. package/lib/maps/symbols/font-awesome/plus.png +0 -0
  77. package/lib/maps/symbols/font-awesome/square.png +0 -0
  78. package/lib/maps/symbols/font-awesome/star.png +0 -0
  79. package/lib/maps/symbols/font-awesome/thumbs-down.png +0 -0
  80. package/lib/maps/symbols/font-awesome/thumbs-up.png +0 -0
  81. package/lib/maps/symbols/font-awesome/ticket.png +0 -0
  82. package/lib/maps/symbols/font-awesome/times-circle.png +0 -0
  83. package/lib/maps/symbols/font-awesome/times.png +0 -0
  84. package/lib/maps/symbols/font-awesome/tint.png +0 -0
  85. package/lib/maps/symbols/font-awesome/tree.png +0 -0
  86. package/lib/maps/symbols/font-awesome/university.png +0 -0
  87. package/lib/maps/symbols/font-awesome/usd.png +0 -0
  88. package/lib/maps/symbols/font-awesome/user.png +0 -0
  89. package/lib/maps/symbols/font-awesome/users.png +0 -0
  90. package/lib/maps/symbols/font-awesome/wheelchair.png +0 -0
  91. package/lib/maps/symbols/sdf-ize.sh +93 -0
  92. package/lib/maps/vectorMaps.d.ts +1 -0
  93. package/lib/maps/vectorMaps.js +20 -36
  94. package/lib/mwater_table_selection/IndicatorsListComponent.d.ts +4 -2
  95. package/lib/mwater_table_selection/IndicatorsListComponent.js +103 -34
  96. package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.d.ts +18 -0
  97. package/lib/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.js +80 -0
  98. package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.d.ts +26 -0
  99. package/lib/mwater_table_selection/MWaterCompleteTableSelectComponent.js +237 -51
  100. package/lib/mwater_table_selection/MWaterTableSelectComponent.d.ts +2 -2
  101. package/lib/mwater_table_selection/MWaterTableSelectComponent.js +9 -4
  102. package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.d.ts +19 -0
  103. package/lib/mwater_table_selection/MWaterWorkflowsSelectComponent.js +111 -0
  104. package/lib/quickfilter/QuickfiltersComponent.d.ts +3 -102
  105. package/lib/quickfilter/QuickfiltersComponent.js +53 -110
  106. package/lib/quickfilter/TextLiteralComponent.d.ts +23 -47
  107. package/lib/quickfilter/TextLiteralComponent.js +85 -82
  108. package/lib/widgets/MapWidget.js +4 -2
  109. package/lib/widgets/text/ExprItemEditorComponent.d.ts +3 -8
  110. package/lib/widgets/text/ExprItemEditorComponent.js +36 -33
  111. package/lib/widgets/text/ExprUpdateModalComponent.d.ts +1 -0
  112. package/package.json +2 -3
  113. package/src/MWaterContextComponent.tsx +1 -1
  114. package/src/{MWaterGlobalFiltersComponent.ts → MWaterGlobalFiltersComponent.tsx} +32 -33
  115. package/src/{MWaterLoaderComponent.ts → MWaterLoaderComponent.tsx} +17 -18
  116. package/src/UndoStack.ts +14 -6
  117. package/src/dashboards/DashboardComponent.tsx +5 -4
  118. package/src/dashboards/DashboardDesign.ts +1 -1
  119. package/src/dashboards/ServerDashboardDataSource.ts +0 -12
  120. package/src/dashboards/SettingsModalComponent.tsx +1 -1
  121. package/src/datagrids/DatagridComponent.tsx +30 -2
  122. package/src/datagrids/DatagridDesignerComponent.tsx +241 -229
  123. package/src/datagrids/DatagridViewComponent.tsx +3 -2
  124. package/src/datagrids/OrderBysDesignerComponent.tsx +61 -70
  125. package/src/index.css +45 -2
  126. package/src/index.ts +5 -11
  127. package/src/layouts/blocks/BlocksDisplayComponent.tsx +60 -5
  128. package/src/maps/BufferLayer.ts +14 -1
  129. package/src/maps/BufferLayerDesign.ts +1 -1
  130. package/src/maps/BufferLayerDesignerComponent.tsx +2 -1
  131. package/src/maps/ChoroplethLayer.ts +20 -7
  132. package/src/maps/ChoroplethLayerDesign.ts +5 -2
  133. package/src/maps/ChoroplethLayerDesigner.tsx +169 -165
  134. package/src/maps/DirectMapDataSource.ts +0 -12
  135. package/src/maps/EditHoverOver.tsx +9 -5
  136. package/src/maps/HoverContent.tsx +1 -1
  137. package/src/maps/LeafletMapComponent.tsx +10 -19
  138. package/src/maps/MapComponent.ts +0 -1
  139. package/src/maps/MapUtils.ts +13 -1
  140. package/src/maps/MarkersLayer.ts +22 -5
  141. package/src/maps/MarkersLayerDesign.ts +1 -1
  142. package/src/maps/MarkersLayerDesignerComponent.tsx +360 -0
  143. package/src/maps/ServerMapDataSource.ts +0 -12
  144. package/src/maps/VectorMapViewComponent.tsx +2 -13
  145. package/src/maps/symbols/font-awesome/asterisk.png +0 -0
  146. package/src/maps/symbols/font-awesome/ban.png +0 -0
  147. package/src/maps/symbols/font-awesome/beer.png +0 -0
  148. package/src/maps/symbols/font-awesome/bell.png +0 -0
  149. package/src/maps/symbols/font-awesome/bolt.png +0 -0
  150. package/src/maps/symbols/font-awesome/building.png +0 -0
  151. package/src/maps/symbols/font-awesome/bullseye.png +0 -0
  152. package/src/maps/symbols/font-awesome/bus.png +0 -0
  153. package/src/maps/symbols/font-awesome/caret-up.png +0 -0
  154. package/src/maps/symbols/font-awesome/certificate.png +0 -0
  155. package/src/maps/symbols/font-awesome/check-circle.png +0 -0
  156. package/src/maps/symbols/font-awesome/check.png +0 -0
  157. package/src/maps/symbols/font-awesome/chevron-circle-down.png +0 -0
  158. package/src/maps/symbols/font-awesome/chevron-circle-up.png +0 -0
  159. package/src/maps/symbols/font-awesome/cloud-rain.png +0 -0
  160. package/src/maps/symbols/font-awesome/cloud.png +0 -0
  161. package/src/maps/symbols/font-awesome/comment.png +0 -0
  162. package/src/maps/symbols/font-awesome/crosshairs.png +0 -0
  163. package/src/maps/symbols/font-awesome/dot-circle-o.png +0 -0
  164. package/src/maps/symbols/font-awesome/exclamation-circle.png +0 -0
  165. package/src/maps/symbols/font-awesome/exclamation-triangle.png +0 -0
  166. package/src/maps/symbols/font-awesome/female.png +0 -0
  167. package/src/maps/symbols/font-awesome/file.png +0 -0
  168. package/src/maps/symbols/font-awesome/flag.png +0 -0
  169. package/src/maps/symbols/font-awesome/flask.png +0 -0
  170. package/src/maps/symbols/font-awesome/h-square.png +0 -0
  171. package/src/maps/symbols/font-awesome/home.png +0 -0
  172. package/src/maps/symbols/font-awesome/info-circle.png +0 -0
  173. package/src/maps/symbols/font-awesome/male.png +0 -0
  174. package/src/maps/symbols/font-awesome/medkit.png +0 -0
  175. package/src/maps/symbols/font-awesome/mobile.png +0 -0
  176. package/src/maps/symbols/font-awesome/plus-circle.png +0 -0
  177. package/src/maps/symbols/font-awesome/plus-square.png +0 -0
  178. package/src/maps/symbols/font-awesome/plus.png +0 -0
  179. package/src/maps/symbols/font-awesome/square.png +0 -0
  180. package/src/maps/symbols/font-awesome/star.png +0 -0
  181. package/src/maps/symbols/font-awesome/thumbs-down.png +0 -0
  182. package/src/maps/symbols/font-awesome/thumbs-up.png +0 -0
  183. package/src/maps/symbols/font-awesome/ticket.png +0 -0
  184. package/src/maps/symbols/font-awesome/times-circle.png +0 -0
  185. package/src/maps/symbols/font-awesome/times.png +0 -0
  186. package/src/maps/symbols/font-awesome/tint.png +0 -0
  187. package/src/maps/symbols/font-awesome/tree.png +0 -0
  188. package/src/maps/symbols/font-awesome/university.png +0 -0
  189. package/src/maps/symbols/font-awesome/usd.png +0 -0
  190. package/src/maps/symbols/font-awesome/user.png +0 -0
  191. package/src/maps/symbols/font-awesome/users.png +0 -0
  192. package/src/maps/symbols/font-awesome/wheelchair.png +0 -0
  193. package/src/maps/symbols/sdf-ize.sh +93 -0
  194. package/src/maps/vectorMaps.tsx +20 -44
  195. package/src/mwater_table_selection/IndicatorsListComponent.tsx +165 -37
  196. package/src/mwater_table_selection/MWaterCalculatedDataSourcesListComponent.tsx +111 -0
  197. package/src/mwater_table_selection/MWaterCompleteTableSelectComponent.tsx +373 -37
  198. package/src/mwater_table_selection/MWaterTableSelectComponent.tsx +12 -8
  199. package/src/mwater_table_selection/MWaterWorkflowsSelectComponent.tsx +159 -0
  200. package/src/quickfilter/{QuickfiltersComponent.ts → QuickfiltersComponent.tsx} +165 -158
  201. package/src/quickfilter/TextLiteralComponent.tsx +197 -0
  202. package/src/widgets/MapWidget.tsx +9 -1
  203. package/src/widgets/text/ExprItemEditorComponent.tsx +83 -77
  204. package/src/widgets/text/ExprUpdateModalComponent.tsx +1 -0
  205. package/test/UndoStackTests.ts +52 -1
  206. package/.storybook/config.js +0 -7
  207. package/.storybook/head.html +0 -3
  208. package/.storybook/webpack.config.js +0 -15
  209. package/src/maps/BingLayer.ts +0 -146
  210. package/src/maps/MarkersLayerDesignerComponent.ts +0 -374
  211. package/src/quickfilter/TextLiteralComponent.ts +0 -165
  212. package/stories/UpdateableComponent.js +0 -29
  213. package/stories/consoles.js +0 -202
  214. package/stories/dashboards.js +0 -217
  215. package/stories/datagridDesign.js +0 -114
  216. package/stories/datagrids.js +0 -69
  217. package/stories/dates.js +0 -80
  218. package/stories/exprcomponent.js +0 -43
  219. package/stories/index.js +0 -18
  220. package/stories/leaflet.js +0 -59
  221. package/stories/maps.js +0 -24
  222. package/stories/pivotChart.js +0 -235
@@ -1,202 +0,0 @@
1
- // TODO: This file was created by bulk-decaffeinate.
2
- // Sanity-check the conversion and remove this comment.
3
- import PropTypes from 'prop-types';
4
- import _ from 'lodash';
5
- import React from 'react';
6
- const H = React.DOM;
7
- const R = React.createElement;
8
-
9
- import uuid from 'uuid';
10
- import { storiesOf } from '@kadira/storybook';
11
- import ConsoleComponent from '../src/consoles/ConsoleComponent';
12
- import DirectConsoleDataSource from '../src/consoles/DirectConsoleDataSource';
13
- import MWaterLoaderComponent from '../src/MWaterLoaderComponent';
14
- import UpdateableComponent from './UpdateableComponent';
15
-
16
- storiesOf('console', module)
17
- .add('simple console', () => {
18
- return R(ConsoleTest);
19
- });
20
-
21
- // .add 'table dashboard', =>
22
- // R DashboardTest, design: tableDashboardDesign
23
-
24
- // .add 'popup', =>
25
- // R DashboardPopupTest
26
-
27
-
28
- class ConsoleTest extends React.Component {
29
- static initClass() {
30
- this.propTypes =
31
- {design: PropTypes.object};
32
- }
33
-
34
- render() {
35
- return R(UpdateableComponent,
36
- {design: this.props.design || { tabs: [{ id: uuid(), type: "blank", name: "New Tab" }], popups: [] }},
37
- (state, update) => {
38
- const apiUrl = "https://api.mwater.co/v3/";
39
- return R(MWaterLoaderComponent, {
40
- apiUrl,
41
- client: null,
42
- user: null
43
- // onExtraTablesChange: (extraTables) => @setState(extraTables: extraTables)
44
- // extraTables: @state.extraTables
45
- }, (error, config) => {
46
- if (error) {
47
- alert("Error: " + error.message);
48
- return null;
49
- }
50
-
51
- const consoleDataSource = new DirectConsoleDataSource({
52
- apiUrl,
53
- client: null,
54
- schema: config.schema,
55
- dataSource: config.dataSource,
56
- design: state.design
57
- });
58
-
59
- return H.div({style: { height: 800 }},
60
- React.createElement(ConsoleComponent, {
61
- schema: config.schema,
62
- dataSource: config.dataSource,
63
- consoleDataSource,
64
- design: state.design,
65
- onDesignChange: update("design"),
66
- activeTabId: state.activeTabId,
67
- onActiveTabIdChange: update("activeTabId"),
68
- titleElem: "Sample"
69
- })
70
- );
71
- });
72
- });
73
- }
74
- }
75
- ConsoleTest.initClass();
76
-
77
-
78
- // class DashboardPopupTest extends React.Component
79
- // render: ->
80
- // R UpdateableComponent,
81
- // popup: { name: "Untitled", design: { items: { id: "root", type: "root", blocks: [] }, layout: "blocks" } }
82
- // (state, update) =>
83
- // apiUrl = "https://api.mwater.co/v3/"
84
- // R MWaterLoaderComponent, {
85
- // apiUrl: apiUrl
86
- // client: null
87
- // user: null
88
- // # onExtraTablesChange: (extraTables) => @setState(extraTables: extraTables)
89
- // # extraTables: @state.extraTables
90
- // }, (error, config) =>
91
- // if error
92
- // alert("Error: " + error.message)
93
- // return null
94
-
95
- // dashboardDataSource = new DirectDashboardDataSource({
96
- // apiUrl: apiUrl
97
- // client: null
98
- // design: state.popup.design
99
- // schema: config.schema
100
- // dataSource: config.dataSource
101
- // })
102
-
103
- // return H.div null,
104
- // R DashboardPopupComponent,
105
- // ref: (comp) => @popupComponent = comp
106
- // schema: config.schema
107
- // dataSource: config.dataSource
108
- // dashboardDataSource: dashboardDataSource
109
- // popup: state.popup
110
- // onPopupChange: update("popup")
111
-
112
- // H.button
113
- // type: "button"
114
- // onClick: => @popupComponent.show()
115
- // className: "btn btn-default",
116
- // "Show"
117
-
118
-
119
- // ModalWindowComponent = require 'react-library/lib/ModalWindowComponent'
120
- // ui = require 'react-library/lib/bootstrap'
121
- // update = require 'react-library/lib/update'
122
-
123
- // class DashboardPopupComponent extends React.Component
124
- // @propTypes:
125
- // popup: PropTypes.object.isRequired
126
- // onPopupChange: PropTypes.func # If not set, readonly
127
- // schema: PropTypes.object.isRequired
128
- // dataSource: PropTypes.object.isRequired
129
- // dashboardDataSource: PropTypes.object.isRequired # dashboard data source
130
-
131
- // onRowClick: PropTypes.func # Called with (tableId, rowId) when item is clicked
132
- // namedStrings: PropTypes.object # Optional lookup of string name to value. Used for {{branding}} and other replacement strings in text widget
133
-
134
- // # Filters to add to the dashboard
135
- // filters: PropTypes.arrayOf(PropTypes.shape({
136
- // table: PropTypes.string.isRequired # id table to filter
137
- // jsonql: PropTypes.object.isRequired # jsonql filter with {alias} for tableAlias
138
- // }))
139
-
140
- // constructor: ->
141
- // super
142
-
143
- // @state = {
144
- // open: false
145
- // }
146
-
147
- // # Updates with the specified changes
148
- // update: => update(@props.popup, @props.onPopupChange, arguments)
149
-
150
- // show: ->
151
- // @setState(open: true)
152
-
153
- // render: ->
154
- // R ModalWindowComponent,
155
- // onRequestClose: => @setState(open: false)
156
- // isOpen: @state.open,
157
- // R DashboardComponent, {
158
- // schema: @props.schema
159
- // dataSource: @props.dataSource
160
- // dashboardDataSource: @props.dashboardDataSource
161
- // design: @props.popup.design
162
- // onDesignChange: @update("design")
163
- // # titleElem: H.span style: { fontSize: 20, cursor: "pointer" },
164
- // # H.span className: "text-muted", onClick: (=> @setState(open: false)),
165
- // # R ui.Icon, id: "fa-arrow-left"
166
- // }
167
-
168
-
169
- // tableDashboardDesign = {
170
- // "items": {
171
- // "id": "root",
172
- // "type": "root",
173
- // "blocks": [
174
- // {
175
- // "type": "widget",
176
- // "aspectRatio": 1.4,
177
- // "widgetType": "TableChart",
178
- // "design": {
179
- // "version": 1,
180
- // "columns": [
181
- // {
182
- // "id": "f1532afb-c0ea-48de-8e4e-931b147eeb6f",
183
- // "textAxis": {
184
- // "expr": {
185
- // "type": "field",
186
- // "table": "entities.place_of_worship",
187
- // "column": "name"
188
- // }
189
- // }
190
- // }
191
- // ],
192
- // "orderings": [],
193
- // "table": "entities.place_of_worship"
194
- // },
195
- // "id": "193bbc40-9177-4547-8b83-c2b5441f72c3"
196
- // }
197
- // ]
198
- // },
199
- // "layout": "blocks"
200
- // }
201
-
202
-
@@ -1,217 +0,0 @@
1
- // TODO: This file was created by bulk-decaffeinate.
2
- // Sanity-check the conversion and remove this comment.
3
- import PropTypes from 'prop-types';
4
- import _ from 'lodash';
5
- import React from 'react';
6
- const H = React.DOM;
7
- const R = React.createElement;
8
-
9
- import { storiesOf } from '@kadira/storybook';
10
- import DashboardComponent from '../src/dashboards/DashboardComponent';
11
- import DirectDashboardDataSource from '../src/dashboards/DirectDashboardDataSource';
12
- import MWaterLoaderComponent from '../src/MWaterLoaderComponent';
13
- import UpdateableComponent from './UpdateableComponent';
14
-
15
- storiesOf('dashboard', module)
16
- .add('empty dashboard', () => {
17
- return R(DashboardTest);
18
- }).add('table dashboard', () => {
19
- return R(DashboardTest, {design: tableDashboardDesign});
20
- }).add('popup', () => {
21
- return R(DashboardPopupTest);
22
- });
23
-
24
-
25
- var tableDashboardDesign = {
26
- "items": {
27
- "id": "root",
28
- "type": "root",
29
- "blocks": [
30
- {
31
- "type": "widget",
32
- "aspectRatio": 1.4,
33
- "widgetType": "TableChart",
34
- "design": {
35
- "version": 1,
36
- "columns": [
37
- {
38
- "id": "f1532afb-c0ea-48de-8e4e-931b147eeb6f",
39
- "textAxis": {
40
- "expr": {
41
- "type": "field",
42
- "table": "entities.place_of_worship",
43
- "column": "name"
44
- }
45
- }
46
- }
47
- ],
48
- "orderings": [],
49
- "table": "entities.place_of_worship"
50
- },
51
- "id": "193bbc40-9177-4547-8b83-c2b5441f72c3"
52
- }
53
- ]
54
- },
55
- "layout": "blocks"
56
- };
57
-
58
-
59
- class DashboardTest extends React.Component {
60
- static initClass() {
61
- this.propTypes =
62
- {design: PropTypes.object};
63
- }
64
-
65
- render() {
66
- return R(UpdateableComponent,
67
- {design: this.props.design || { items: { id: "root", type: "root", blocks: [] }, layout: "blocks" }},
68
- (state, update) => {
69
- const apiUrl = "https://api.mwater.co/v3/";
70
- return R(MWaterLoaderComponent, {
71
- apiUrl,
72
- client: null,
73
- user: null,
74
- onExtraTablesChange: update("extraTables"),
75
- extraTables: state.extraTables
76
- }, (error, config) => {
77
- if (error) {
78
- alert("Error: " + error.message);
79
- return null;
80
- }
81
-
82
- const dashboardDataSource = new DirectDashboardDataSource({
83
- apiUrl,
84
- client: null,
85
- design: state.design,
86
- schema: config.schema,
87
- dataSource: config.dataSource
88
- });
89
-
90
- return H.div({style: { height: 800 }},
91
- React.createElement(DashboardComponent, {
92
- schema: config.schema,
93
- dataSource: config.dataSource,
94
- dashboardDataSource,
95
- design: state.design,
96
- onDesignChange: update("design"),
97
- titleElem: "Sample"
98
- // quickfilterLocks: [{ expr: { type: "field", table: "entities.water_point", column: "type" }, value: "Protected dug well" }]
99
- })
100
- );
101
- });
102
- });
103
- }
104
- }
105
- DashboardTest.initClass();
106
-
107
-
108
- class DashboardPopupTest extends React.Component {
109
- render() {
110
- return R(UpdateableComponent,
111
- {popup: { name: "Untitled", design: { items: { id: "root", type: "root", blocks: [] }, layout: "blocks" } }},
112
- (state, update) => {
113
- const apiUrl = "https://api.mwater.co/v3/";
114
- return R(MWaterLoaderComponent, {
115
- apiUrl,
116
- client: null,
117
- user: null
118
- // onExtraTablesChange: (extraTables) => @setState(extraTables: extraTables)
119
- // extraTables: @state.extraTables
120
- }, (error, config) => {
121
- if (error) {
122
- alert("Error: " + error.message);
123
- return null;
124
- }
125
-
126
- const dashboardDataSource = new DirectDashboardDataSource({
127
- apiUrl,
128
- client: null,
129
- design: state.popup.design,
130
- schema: config.schema,
131
- dataSource: config.dataSource
132
- });
133
-
134
- return H.div(null,
135
- R(DashboardPopupComponent, {
136
- ref: comp => { return this.popupComponent = comp; },
137
- schema: config.schema,
138
- dataSource: config.dataSource,
139
- dashboardDataSource,
140
- popup: state.popup,
141
- onPopupChange: update("popup")
142
- }
143
- ),
144
-
145
- H.button({
146
- type: "button",
147
- onClick: () => this.popupComponent.show(),
148
- className: "btn btn-default"
149
- },
150
- "Show")
151
- );
152
- });
153
- });
154
- }
155
- }
156
-
157
-
158
- const ModalWindowComponent = require("@mwater/react-library/lib/ModalWindowComponent");
159
- const ui = require("@mwater/react-library/lib/bootstrap");
160
- const update = require("@mwater/react-library/lib/update");
161
-
162
- class DashboardPopupComponent extends React.Component {
163
- static initClass() {
164
- this.propTypes = {
165
- popup: PropTypes.object.isRequired,
166
- onPopupChange: PropTypes.func, // If not set, readonly
167
- schema: PropTypes.object.isRequired,
168
- dataSource: PropTypes.object.isRequired,
169
- dashboardDataSource: PropTypes.object.isRequired, // dashboard data source
170
-
171
- onRowClick: PropTypes.func, // Called with (tableId, rowId) when item is clicked
172
- namedStrings: PropTypes.object, // Optional lookup of string name to value. Used for {{branding}} and other replacement strings in text widget
173
-
174
- // Filters to add to the dashboard
175
- filters: PropTypes.arrayOf(PropTypes.shape({
176
- table: PropTypes.string.isRequired, // id table to filter
177
- jsonql: PropTypes.object.isRequired // jsonql filter with {alias} for tableAlias
178
- }))
179
- };
180
- }
181
-
182
- constructor(props) {
183
- this.update = this.update.bind(this);
184
- super(props);
185
-
186
- this.state = {
187
- open: false
188
- };
189
- }
190
-
191
- // Updates with the specified changes
192
- update() { return update(this.props.popup, this.props.onPopupChange, arguments); }
193
-
194
- show() {
195
- return this.setState({open: true});
196
- }
197
-
198
- render() {
199
- return R(ModalWindowComponent, {
200
- onRequestClose: () => this.setState({open: false}),
201
- isOpen: this.state.open
202
- },
203
- R(DashboardComponent, {
204
- schema: this.props.schema,
205
- dataSource: this.props.dataSource,
206
- dashboardDataSource: this.props.dashboardDataSource,
207
- design: this.props.popup.design,
208
- onDesignChange: this.update("design")
209
- // titleElem: H.span style: { fontSize: 20, cursor: "pointer" },
210
- // H.span className: "text-muted", onClick: (=> @setState(open: false)),
211
- // R ui.Icon, id: "fa-arrow-left"
212
- }));
213
- }
214
- }
215
- DashboardPopupComponent.initClass();
216
-
217
-
@@ -1,114 +0,0 @@
1
- // TODO: This file was created by bulk-decaffeinate.
2
- // Sanity-check the conversion and remove this comment.
3
- export default {
4
- "table": "entities.water_point",
5
- "showRowNumbers": true,
6
- "columns": [
7
- {
8
- "id": "31e3afda-35bd-488a-902d-34a301873d52",
9
- "expr": {
10
- "type": "field",
11
- "table": "entities.water_point",
12
- "column": "type"
13
- },
14
- "type": "expr",
15
- "label": null,
16
- "width": 150
17
- },
18
- {
19
- "id": "bc3ad4cc-65d6-4a44-a4e5-2d6cf7b37711",
20
- "expr": {
21
- "expr": {
22
- "type": "field",
23
- "table": "admin_regions",
24
- "column": "full_name"
25
- },
26
- "type": "scalar",
27
- "joins": [
28
- "admin_region"
29
- ],
30
- "table": "entities.water_point"
31
- },
32
- "type": "expr",
33
- "label": null,
34
- "width": 150
35
- },
36
- {
37
- "id": "3fb0f1c0-ca4c-4704-90d8-a7044daf6d1c",
38
- "expr": {
39
- "type": "field",
40
- "table": "entities.water_point",
41
- "column": "code"
42
- },
43
- "type": "expr",
44
- "label": null,
45
- "width": 150
46
- },
47
- {
48
- "id": "7b5d157a-c44a-4031-abe8-2b43acae000a",
49
- "expr": {
50
- "type": "field",
51
- "table": "entities.water_point",
52
- "column": "about"
53
- },
54
- "type": "expr",
55
- "label": null,
56
- "width": 150
57
- },
58
- {
59
- "id": "8a4a3d23-65fa-4e7e-9c8a-077954ce26c9",
60
- "expr": {
61
- "type": "field",
62
- "table": "entities.water_point",
63
- "column": "alt_id"
64
- },
65
- "type": "expr",
66
- "label": null,
67
- "width": 150
68
- },
69
- {
70
- "id": "31ac2483-a903-4c81-ace4-7b72353d6338",
71
- "expr": {
72
- "type": "field",
73
- "table": "entities.water_point",
74
- "column": "drilling_method"
75
- },
76
- "type": "expr",
77
- "label": null,
78
- "width": 150
79
- },
80
- {
81
- "id": "ed46bac2-2afc-42c3-8cdc-9a392bd70fda",
82
- "expr": {
83
- "type": "field",
84
- "table": "entities.water_point",
85
- "column": "drilling_method_other"
86
- },
87
- "type": "expr",
88
- "label": null,
89
- "width": 150
90
- },
91
- {
92
- "id": "da0d823a-6efb-4513-b8a3-a3cf1f9f4b0f",
93
- "expr": {
94
- "type": "field",
95
- "table": "entities.water_point",
96
- "column": "installation_date"
97
- },
98
- "type": "expr",
99
- "label": null,
100
- "width": 150
101
- },
102
- {
103
- "id": "8368be53-48d8-4e85-a507-beea2a68bf35",
104
- "expr": {
105
- "type": "field",
106
- "table": "entities.water_point",
107
- "column": "tz_wpms_id"
108
- },
109
- "type": "expr",
110
- "label": null,
111
- "width": 150
112
- }
113
- ]
114
- };
@@ -1,69 +0,0 @@
1
- // TODO: This file was created by bulk-decaffeinate.
2
- // Sanity-check the conversion and remove this comment.
3
- import PropTypes from 'prop-types';
4
- import _ from 'lodash';
5
- import React from 'react';
6
- const H = React.DOM;
7
- const R = React.createElement;
8
-
9
- import datagridDesign from './datagridDesign';
10
- import { storiesOf } from '@kadira/storybook';
11
- import DatagridComponent from '../src/datagrids/DatagridComponent';
12
- import DirectDatagridDataSource from '../src/datagrids/DirectDatagridDataSource';
13
- import MWaterLoaderComponent from '../src/MWaterLoaderComponent';
14
- import UpdateableComponent from './UpdateableComponent';
15
-
16
- storiesOf('Datagrid', module)
17
- .add('datagrid with serial number', () => {
18
- return R(SerialNumberDatagrid, {design: datagridDesign});
19
- });
20
-
21
-
22
- class SerialNumberDatagrid extends React.Component {
23
- static initClass() {
24
- this.propTypes =
25
- {design: PropTypes.object.isRequired};
26
- }
27
-
28
- render() {
29
- return R(UpdateableComponent,
30
- {design: this.props.design},
31
- (state, update) => {
32
- const apiUrl = "https://api.mwater.co/v3/";
33
- return R(MWaterLoaderComponent, {
34
- apiUrl,
35
- client: null,
36
- user: null
37
- // onExtraTablesChange: (extraTables) => @setState(extraTables: extraTables)
38
- // extraTables: @state.extraTables
39
- }, (error, config) => {
40
- if (error) {
41
- alert("Error: " + error.message);
42
- return null;
43
- }
44
-
45
- const datagridDataSource = new DirectDatagridDataSource({
46
- // apiUrl: apiUrl
47
- // client: null
48
- // design: state.design
49
- schema: config.schema,
50
- dataSource: config.dataSource
51
- });
52
-
53
- return H.div({style: { height: 800 }},
54
- React.createElement(DatagridComponent, {
55
- schema: config.schema,
56
- dataSource: config.dataSource,
57
- datagridDataSource,
58
- design: state.design,
59
- onDesignChange: update("design"),
60
- titleElem: "Sample",
61
- height: 400
62
- // quickfilterLocks: [{ expr: { type: "field", table: "entities.water_point", column: "type" }, value: "Protected dug well" }]
63
- })
64
- );
65
- });
66
- });
67
- }
68
- }
69
- SerialNumberDatagrid.initClass();
package/stories/dates.js DELETED
@@ -1,80 +0,0 @@
1
- // TODO: This file was created by bulk-decaffeinate.
2
- // Sanity-check the conversion and remove this comment.
3
- import PropTypes from 'prop-types';
4
- import _ from 'lodash';
5
- import React from 'react';
6
- const H = React.DOM;
7
- const R = React.createElement;
8
-
9
- import DateExprComponent from '../src/quickfilter/DateExprComponent';
10
- import DateRangeComponent from '../src/DateRangeComponent';
11
- import { storiesOf } from '@kadira/storybook';
12
- import UpdateableComponent from './UpdateableComponent';
13
-
14
- storiesOf('DateExprComponent', module)
15
- .add('date (blank)', () => {
16
- return R(UpdateableComponent,
17
- {value: null},
18
- (state, update) => {
19
- return R(DateExprComponent, {
20
- value: state.value,
21
- onChange: update("value")
22
- }
23
- );
24
- });
25
- }).add('date (today)', () => {
26
- return R(UpdateableComponent,
27
- {value: { type: "op", op: "today", exprs: [] }},
28
- (state, update) => {
29
- return R(DateExprComponent, {
30
- value: state.value,
31
- onChange: update("value")
32
- }
33
- );
34
- });
35
- }).add('datetime (blank)', () => {
36
- return R(UpdateableComponent,
37
- {value: null},
38
- (state, update) => {
39
- return R(DateExprComponent, {
40
- datetime: true,
41
- value: state.value,
42
- onChange: update("value")
43
- }
44
- );
45
- });
46
- });
47
-
48
- storiesOf('DateRangeComponent', module)
49
- .add('date (blank)', () => {
50
- return R(UpdateableComponent,
51
- {value: null},
52
- (state, update) => {
53
- return R(DateRangeComponent, {
54
- value: state.value,
55
- onChange: update("value")
56
- }
57
- );
58
- });
59
- }).add('date (today)', () => {
60
- return R(UpdateableComponent,
61
- {value: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")]},
62
- (state, update) => {
63
- return R(DateRangeComponent, {
64
- value: state.value,
65
- onChange: update("value")
66
- }
67
- );
68
- });
69
- }).add('datetime (blank)', () => {
70
- return R(UpdateableComponent,
71
- {value: null},
72
- (state, update) => {
73
- return R(DateRangeComponent, {
74
- datetime: true,
75
- value: state.value,
76
- onChange: update("value")
77
- }
78
- );
79
- });
80
- });