dotdata_widgets 0.1.10 → 0.2.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 (203) hide show
  1. package/README.md +71 -104
  2. package/css/widget.css +1 -1
  3. package/dist/index.js +5 -5
  4. package/dist/index.js.map +1 -1
  5. package/lib/components/ActionFooter.js +21 -0
  6. package/lib/components/WithLabel.js +20 -0
  7. package/lib/components/column-analytic-type-icons/analytic-type-category.js +13 -0
  8. package/lib/components/column-analytic-type-icons/analytic-type-datatime.js +13 -0
  9. package/lib/components/column-analytic-type-icons/analytic-type-geo-latitude.js +13 -0
  10. package/lib/components/column-analytic-type-icons/analytic-type-geo-longitude.js +13 -0
  11. package/lib/components/column-analytic-type-icons/analytic-type-numeric.js +13 -0
  12. package/lib/components/column-analytic-type-icons/index.js +22 -0
  13. package/lib/components/{input → column-source-type-icons}/index.js +1 -1
  14. package/lib/components/column-source-type-icons/source-type-int.js +16 -0
  15. package/lib/feature/feature-details/FeatureCorrelatedFeaturesTable.js +1 -1
  16. package/lib/feature/feature-likes/{feature-likes.js → FeatureLikes.js} +3 -6
  17. package/lib/feature/feature-likes/index.js +1 -1
  18. package/lib/feature/feature-user-explanation/FeatureUserExplanation.js +14 -0
  19. package/lib/feature/feature-user-explanation/FeatureUserExplanationDisplay.js +23 -0
  20. package/lib/feature/feature-user-explanation/explanation-to-user-explanation.js +58 -0
  21. package/lib/{feature-descriptor/domains-descriptors-tree/context → feature/feature-user-explanation}/index.js +3 -2
  22. package/lib/feature-descriptor/domains-descriptions-tree/index.js +1 -0
  23. package/lib/feature-descriptor/domains-descriptions-tree/models/domains-descriptions-tree.model.js +2 -2
  24. package/lib/feature-descriptor/feature-descriptor-editor/AggregationEditor.js +206 -109
  25. package/lib/feature-descriptor/feature-descriptor-editor/FeatureDescriptorEditor.js +32 -21
  26. package/lib/feature-descriptor/feature-descriptor-editor/FilterEditor.js +69 -61
  27. package/lib/feature-descriptor/feature-descriptor-editor/JoinEditor.js +50 -0
  28. package/lib/feature-descriptor/feature-descriptor-editor/components/EditorTemplateRenderer.js +14 -0
  29. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationTypeSelection.js +11 -11
  30. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/ColumnEditor.js +15 -0
  31. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/DistanceEditor.js +30 -13
  32. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/LastKEditor.js +17 -0
  33. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TemporalChangeEditor.js +19 -16
  34. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/TopicEditor.js +16 -0
  35. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/index.js +8 -7
  36. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/BooleanField.js +31 -0
  37. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ChipField.js +27 -0
  38. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ColumnField.js +47 -0
  39. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/NumberField.js +12 -20
  40. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringField.js +12 -20
  41. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/TableColumnField.js +30 -0
  42. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/TableField.js +17 -0
  43. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/_InlineEditorField.js +48 -0
  44. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/index.js +10 -7
  45. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/FilterTypeSelection.js +14 -11
  46. package/lib/feature-descriptor/feature-descriptor-editor/components/filter/index.js +3 -5
  47. package/lib/feature-descriptor/feature-descriptor-editor/components/index.js +7 -8
  48. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinConditionEditor.js +96 -0
  49. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinConditionTypeSelection.js +15 -0
  50. package/lib/feature-descriptor/feature-descriptor-editor/components/join/JoinTableColumnSelector.js +15 -0
  51. package/lib/feature-descriptor/{domains-descriptors-tree/components → feature-descriptor-editor/components/join}/index.js +2 -1
  52. package/lib/feature-descriptor/feature-descriptor-editor/context/feature-descriptor-editor-context.js +38 -0
  53. package/lib/feature-descriptor/feature-descriptor-editor/context/feature-descriptor-editor.js +46 -0
  54. package/lib/feature-descriptor/{domains-descriptors-tree/models → feature-descriptor-editor/context}/index.js +2 -1
  55. package/lib/feature-descriptor/feature-descriptor-editor/index.js +5 -5
  56. package/lib/feature-descriptor/feature-descriptor-editor/models/aggregation-draft.js +351 -0
  57. package/lib/feature-descriptor/feature-descriptor-editor/models/common-field-draft.js +13 -0
  58. package/lib/feature-descriptor/feature-descriptor-editor/models/feature-descriptor-editor.js +29 -0
  59. package/lib/feature-descriptor/feature-descriptor-editor/models/filter-draft.js +79 -0
  60. package/lib/feature-descriptor/{context → feature-descriptor-editor/models}/index.js +4 -1
  61. package/lib/feature-descriptor/feature-descriptor-editor/models/join-draft.js +78 -0
  62. package/lib/models/column/column.js +59 -0
  63. package/lib/models/column/field.js +2 -4
  64. package/lib/models/column/index.js +3 -0
  65. package/lib/models/column/table-columns.js +27 -0
  66. package/lib/models/column/table.js +2 -4
  67. package/lib/models/feature/feature.js +13 -0
  68. package/lib/models/feature-descriptor/fd_data/aggregation.js +86 -46
  69. package/lib/models/feature-descriptor/fd_data/filter.js +32 -20
  70. package/lib/models/feature-descriptor/fd_data/index.js +5 -7
  71. package/lib/models/feature-descriptor/fd_data/join.js +20 -4
  72. package/lib/models/feature-descriptor/fd_data/utils.js +25 -0
  73. package/lib/models/feature-descriptor/feature-descriptor.js +2 -4
  74. package/lib/models/feature-descriptor/index.js +4 -6
  75. package/lib/utils/crypto.js +28 -0
  76. package/lib/utils/index.js +2 -0
  77. package/lib/utils/redux/action.js +35 -0
  78. package/lib/utils/redux/index.js +10 -0
  79. package/lib/{feature-descriptor/feature-descriptor-editor/components/field-widgets/widget-interface.js → utils/redux/models.js} +1 -1
  80. package/lib/utils/redux/reducer.js +30 -0
  81. package/lib/{feature-descriptor/feature-descriptor-editor/components/widgets/widget-interface.js → utils/types.js} +1 -1
  82. package/lib/utils/widget-api.js +47 -0
  83. package/lib/widgets/FeatureLeaderboardWidget.js +12 -2
  84. package/lib/widgets/FeatureSpaceWidget.js +1 -0
  85. package/lib/widgets/feature-leaderboard/FeatureLeaderboardView.js +40 -8
  86. package/lib/widgets/feature-leaderboard/components/{leaderboard-feature-likes.js → LeaderboardFeatureLikes.js} +4 -4
  87. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryDrawer.js +88 -0
  88. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryFeatureEditor.js +31 -0
  89. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryHeader.js +15 -0
  90. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardUserExplanation.js +28 -0
  91. package/lib/widgets/feature-space/FeatureSpaceView.js +6 -6
  92. package/package.json +8 -10
  93. package/lib/components/input/input.js +0 -14
  94. package/lib/feature-descriptor/context/fd-domains-descriptions-selection.context.js +0 -37
  95. package/lib/feature-descriptor/domains-descriptors-tree/components/column-tree-item.js +0 -16
  96. package/lib/feature-descriptor/domains-descriptors-tree/components/descriptions-tree-item.js +0 -50
  97. package/lib/feature-descriptor/domains-descriptors-tree/components/tree-item-label.js +0 -56
  98. package/lib/feature-descriptor/domains-descriptors-tree/components/type-tree-item.js +0 -19
  99. package/lib/feature-descriptor/domains-descriptors-tree/config/index.js +0 -2
  100. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-config-context.js +0 -43
  101. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-context-provider.js +0 -53
  102. package/lib/feature-descriptor/domains-descriptors-tree/context/domains-descriptions-tree-item-selection-context.js +0 -56
  103. package/lib/feature-descriptor/domains-descriptors-tree/domains-descriptions-tree.js +0 -44
  104. package/lib/feature-descriptor/domains-descriptors-tree/index.js +0 -21
  105. package/lib/feature-descriptor/domains-descriptors-tree/models/domains-descriptions-tree.model.js +0 -37
  106. package/lib/feature-descriptor/domains-descriptors-tree/utils/create-domain-predicate.js +0 -16
  107. package/lib/feature-descriptor/domains-descriptors-tree/utils/filter-domains-descriptions-tree.js +0 -23
  108. package/lib/feature-descriptor/domains-descriptors-tree/utils/index.js +0 -19
  109. package/lib/feature-descriptor/feature-descriptor-editor/components/ItemSelection.js +0 -14
  110. package/lib/feature-descriptor/feature-descriptor-editor/components/StringAutocomplete.js +0 -13
  111. package/lib/feature-descriptor/feature-descriptor-editor/components/ValueInput.js +0 -2
  112. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/AggregationSelection.js +0 -15
  113. package/lib/feature-descriptor/feature-descriptor-editor/components/aggregations/aggregation-context.js +0 -37
  114. package/lib/feature-descriptor/feature-descriptor-editor/components/explainer.js +0 -15
  115. package/lib/feature-descriptor/feature-descriptor-editor/components/fd-operation-context.js +0 -19
  116. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/FieldLabel.js +0 -17
  117. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ItemSelection.js +0 -20
  118. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/StringSelectionField.js +0 -24
  119. package/lib/feature-descriptor/feature-descriptor-editor/components/field-widgets/ValueInput.js +0 -19
  120. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ItemSelection.js +0 -20
  121. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/Label.js +0 -2
  122. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/ValueInput.js +0 -19
  123. package/lib/feature-descriptor/feature-descriptor-editor/components/widgets/index.js +0 -19
  124. package/lib/feature-descriptor/feature-details/FeatureCorrelatedFeaturesTable.js +0 -22
  125. package/lib/feature-descriptor/feature-details/FeatureDistributionChart.js +0 -218
  126. package/lib/feature-descriptor/feature-details/FeatureStatisticsTable.js +0 -44
  127. package/lib/feature-descriptor/feature-details/index.js +0 -20
  128. package/lib/feature-descriptor/feature-explanation/FeatureExplanation.js +0 -48
  129. package/lib/feature-descriptor/feature-explanation/components/ColoredExplanationBlock.js +0 -36
  130. package/lib/feature-descriptor/feature-explanation/components/ColumnExplanationBlock.js +0 -12
  131. package/lib/feature-descriptor/feature-explanation/components/DataSlotExplanationBlock.js +0 -12
  132. package/lib/feature-descriptor/feature-explanation/components/PetExplanationBlock.js +0 -11
  133. package/lib/feature-descriptor/feature-explanation/components/TextExplanationBlock.js +0 -10
  134. package/lib/feature-descriptor/feature-explanation/components/TextWithDataSlotContextExplanationBlock.js +0 -10
  135. package/lib/feature-descriptor/feature-explanation/components/TopicExplanationBlock.js +0 -10
  136. package/lib/feature-descriptor/feature-explanation/components/UnknownExplanationBlock.js +0 -10
  137. package/lib/feature-descriptors-domain/context/feature-domain-descriptions-selection.context.js +0 -37
  138. package/lib/feature-descriptors-domain/context/feature-domain-selection.context.js +0 -37
  139. package/lib/feature-descriptors-domain/context/index.js +0 -19
  140. package/lib/feature-descriptors-domain/exploration-path/exploration-path-header.js +0 -21
  141. package/lib/feature-descriptors-domain/exploration-path/exploration-path-join-list.js +0 -16
  142. package/lib/feature-descriptors-domain/exploration-path/index.js +0 -19
  143. package/lib/feature-descriptors-domain/fd-grouped-domain-tree.js +0 -81
  144. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/column-tree-item.js +0 -17
  145. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/descriptions-tree-item.js +0 -49
  146. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/index.js +0 -18
  147. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/selection-indicator-with-label.js +0 -40
  148. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/components/type-tree-item.js +0 -16
  149. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-context.js +0 -43
  150. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/feature-descriptor-domain-descriptions-tree.js +0 -57
  151. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions/index.js +0 -18
  152. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/column-tree-item.js +0 -17
  153. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/description-tree-item.js +0 -2
  154. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/descriptions-tree-item.js +0 -49
  155. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/index.js +0 -18
  156. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/selection-indicator-with-label.js +0 -19
  157. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-item-label.js +0 -15
  158. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/tree-level-item.js +0 -54
  159. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/components/type-tree-item.js +0 -16
  160. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.js +0 -55
  161. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/feature-descriptor-domain-descriptions-tree.model.js +0 -2
  162. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/index.js +0 -18
  163. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/filter-domain-descriptions.js +0 -21
  164. package/lib/feature-descriptors-domain/feature-descriptor-domain-descriptions-tree/utils/index.js +0 -18
  165. package/lib/feature-descriptors-domain/feature-descriptor-grouped-domain-tree.js +0 -87
  166. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/column-tree-item.js +0 -16
  167. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/descriptions-tree-item.js +0 -50
  168. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/index.js +0 -18
  169. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/selection-indicator-with-label.js +0 -67
  170. package/lib/feature-descriptors-domain/feature-domain-descriptions/components/type-tree-item.js +0 -19
  171. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-context.js +0 -37
  172. package/lib/feature-descriptors-domain/feature-domain-descriptions/feature-domain-descriptions-tree.js +0 -51
  173. package/lib/feature-descriptors-domain/feature-domain-descriptions/index.js +0 -18
  174. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-header.js +0 -38
  175. package/lib/feature-descriptors-domain/feature-exploration-path/exploration-path-join-list.js +0 -36
  176. package/lib/feature-descriptors-domain/feature-exploration-path/index.js +0 -19
  177. package/lib/feature-descriptors-domain/grouped-domains-descriptions-list.js +0 -58
  178. package/lib/feature-descriptors-domain/selected-feature-domain-context.js +0 -2
  179. package/lib/feature-descriptors-domain/utils/filter-domain-descriptions.js +0 -23
  180. package/lib/feature-descriptors-domain/utils/filter-grouped-domain-descriptions.js +0 -23
  181. package/lib/feature-descriptors-domain/utils/index.js +0 -18
  182. package/lib/models/feature/feature-leaderboard.js +0 -3
  183. package/lib/models/feature-descriptor/feature-descriptors-domain.js +0 -3
  184. package/lib/models/feature-descriptors-domain/fd-domain-description.js +0 -9
  185. package/lib/models/feature-descriptors-domain/fd-grouped-domain-descriptions.js +0 -3
  186. package/lib/models/feature-descriptors-domain/index.js +0 -19
  187. package/lib/models/feature-space/feature-space-description.js +0 -3
  188. package/lib/models/index.js +0 -2
  189. package/lib/utils/model-transform-hook.js +0 -21
  190. package/lib/utils/set.js +0 -14
  191. package/lib/utils/widget/index.js +0 -19
  192. package/lib/utils/widget/widget-model-context.js +0 -38
  193. package/lib/utils/widget/widget-model.js +0 -30
  194. package/lib/widgets/feature-leaderboard/FeatureLeaderboardEntries.js +0 -18
  195. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryDetails.js +0 -23
  196. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryHeader.js +0 -35
  197. package/lib/widgets/feature-leaderboard/entry-item/FeatureLeaderboardEntryItem.js +0 -22
  198. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntry.js +0 -19
  199. package/lib/widgets/feature-leaderboard/leaderboard-entry/FeatureLeaderboardEntryRow.js +0 -23
  200. package/lib/widgets/feature-leaderboard/leaderboard-overview/overview-metric-slider.js +0 -2
  201. package/lib/widgets/feature-space/FeatureSpaceDomain.js +0 -75
  202. package/lib/widgets/feature-space/FeatureSpaceDomainDescriptions.js +0 -80
  203. package/lib/widgets/feature-space/FeatureSpaceDomainsDescriptions.js +0 -88
package/README.md CHANGED
@@ -1,119 +1,86 @@
1
- # Dotdata widgets
1
+ # Dotdata Widgets
2
2
 
3
- A dotdata widget
3
+ Dotdata widgets consist of a NodeJS library and a python module.
4
4
 
5
- ### Prerequisites
5
+ ## Building the `nodejs` part
6
6
 
7
- 1. nodejs >= 18
8
- 2. yarn (npm install yarn -g)
9
- 3. python 3
10
-
11
- ## Installation
12
-
13
- You can install using `pip`:
14
-
15
- ```bash
16
- pip install dotdata_widgets
17
- ```
18
-
19
- If you are using Jupyter Notebook 5.2 or earlier, you may also need to enable
20
- the nbextension:
7
+ In order to build the nodejs part of dotdata widgets - follow the `make` targets
8
+ defined in the `Makefile` in this directory.
21
9
 
22
10
  ```bash
23
- jupyter nbextension enable --py [--sys-prefix|--user|--system] dotdata_widgets
11
+ make build_js
24
12
  ```
25
-
26
- ## Development Installation
27
-
28
- Create a dev environment:
29
-
30
- ```bash
31
- python -m venv venv/
32
- ```
33
-
34
- Install the python. This will also build the TS package.
35
-
13
+ There is an alias for this command in the root-level `Makefile`:
36
14
  ```bash
37
- pip install -e ".[test, examples]"
38
- ```
39
-
40
- When developing your extensions, you need to manually enable your extensions with the
41
- notebook / lab frontend. For lab, this is done by the command:
42
-
43
- ```
44
- jupyter labextension develop --overwrite .
45
- yarn run build
15
+ make -C ../../ build_widgets_js_for_iff
46
16
  ```
47
17
 
48
- For classic notebook, you need to run:
49
-
50
- ```
51
- jupyter nbextension install --sys-prefix --symlink --overwrite --py dotdata_widgets
52
- jupyter nbextension enable --sys-prefix --py dotdata_widgets
53
- ```
18
+ NOTE: this command might not work if on platforms other than linux.
19
+ The docker container in which the commands are executed is based on `node:18.15` container,
20
+ which assumes that the working user has `UID=1000`.
21
+ Calling it on MacOS may produce artifacts with invalid ownership.
54
22
 
55
- Note that the `--symlink` flag doesn't work on Windows, so you will here have to run
56
- the `install` command every time that you rebuild your extension. For certain installations
57
- you might also need another flag instead of `--sys-prefix`, but we won't cover the meaning
58
- of those flags here.
23
+ In order to build the nodejs package without the docker, make sure you've provisioned your local environment
24
+ as described in the `docker/npm/Dockerfile`. Especially make sure that you have:
59
25
 
60
- ### Watch Mode
26
+ * node in version >=18
27
+ * yarn (`npm install yarn -g`)
28
+ * python >=3.8
29
+ * jupyterlab
61
30
 
31
+ Then you may call:
62
32
  ```bash
63
- yarn run watch
33
+ make -C ../../ build_js_without_docker
64
34
  ```
65
35
 
66
- ### Docker
67
-
68
- ```bash
69
- git clone ...
70
-
71
- docker run -it --name dotdata_widget -v $(pwd)/dotdata_widgets:/dotdata_widgets -p 8889:8888 jupyter/scipy-notebook
72
- ```
73
-
74
- ### How to see your changes
75
-
76
- #### Typescript:
77
-
78
- If you use JupyterLab to develop then you can watch the source directory and run JupyterLab at the same time in
79
- different
80
- terminals to watch for changes in the extension's source and automatically rebuild the widget.
81
-
82
- ```bash
83
- # Watch the source directory in one terminal, automatically rebuilding when needed
84
- yarn run watch
85
- # Run JupyterLab in another terminal
86
- jupyter lab
87
- ```
88
-
89
- After a change wait for the build to finish and then refresh your browser and the changes should take effect.
90
-
91
- #### Python:
92
-
93
- If you make a change to the python code then you will need to restart the notebook kernel to have it take effect.
94
-
95
- ## Updating the version
96
-
97
- To update the version, install tbump and use it to bump the version.
98
- By default it will also create a tag.
99
-
100
- ```bash
101
- pip install tbump
102
- tbump <new-version>
103
- ```
104
-
105
- ## Build with docker
106
-
107
- ```bash
108
- # Only for the first run
109
- docker build -t dotdata_widgets_builder .
110
-
111
- # bump version before run
112
- docker run -it --rm --env VERSION=0.1.2 -v $(pwd):/dotdata_widgets dotdata_widgets_builder
113
- ```
114
-
115
- ## Publish npm package
116
-
117
- ```bash
118
- npm publish
119
- ```
36
+ ## Publishing the js part of Dotdata Widgets
37
+
38
+ **DO NOT publish the nodejs package unless you're sure what you're doing!**
39
+
40
+ Dotdata Widgets are published in a public npm repository.
41
+ You can browse the published packages at https://www.npmjs.com/package/dotdata_widgets
42
+
43
+ Dotdata widgets are published together with the dotdata wheel by the jenkins job,
44
+ which calls `make publish_iff` from the root-level `Makefile`.
45
+ This command refers to the npm `publish` command, which utilises credentials to npm registry
46
+ defined in `.npmrc`
47
+
48
+
49
+ ## Interactive development and testing
50
+
51
+ **WARNING: THERE ARE NO AUTOMATED TESTS OF DOTDATA WIDGETS (neither JS nor python part).**
52
+
53
+ Dotdata widgets can be tested manually in a jupyter notebook.
54
+
55
+ In order to do so do the following:
56
+ * Prune local virtual env:
57
+ ```bash
58
+ make -C ../../ prune_iff_test_env
59
+ ```
60
+ This command cleans the venv directory and deletes pre-existing artifacts.
61
+ * Install `dotdata` in dev mode in the local virtual env:
62
+ ```bash
63
+ make -C ../../ prepare_iff_interactive_dev_env
64
+ ```
65
+ This command installs `jupyterlab`, installs `dotdata` in `--editable` mode, and calls `jupyter labextension develop --overwrite ${PATH_TO_DOTDAT_WIDGETS}`.
66
+ Although it make take up to 20 minutes, it has to be called only once.
67
+ * Launch widgets compilation server:
68
+ ```bash
69
+ make -C ../../ _run_yarn_watch_compilation_of_dotdata_widgets
70
+ ```
71
+ * NOTE: this command requires `node` and `yarn` to be installed in your environment.
72
+ * Also, it fails if `prepare_iff_interactive_dev_env` wasn't called before.
73
+ * This command spawns a server that watches for changes in the ts files and recompiles them on the fly.
74
+ * Run it in separate terminal.
75
+ * A single recompilation may take up to a minute, so be patient.
76
+ * Launch jupyter lab:
77
+ ```bash
78
+ make -C ../../ _start_jupyterlab
79
+ ```
80
+ * This command spawns a jupyter-lab server. Run it in separate terminal.
81
+ * It also opens a browser window with a jupyter lab workspace.
82
+ * Open a notebook (e.g. `examples/introduction.ipynb`) and work with your widgets.
83
+
84
+ When developing widgets in interactive mode, keep in mind that:
85
+ * you have to reload browser caches in order to force it to load re-compiled `*.js` files.
86
+ * you have to restart notebook's kernel in order to load modified python modules.
package/css/widget.css CHANGED
@@ -3,7 +3,7 @@
3
3
  @import url('colors.css');
4
4
  @import url('typography.css');
5
5
 
6
- @import url('../src/feature-descriptor/feature-descriptors-domain.css');
6
+ @import url('../src/feature-descriptor/feature-descriptors.css');
7
7
  @import url('../src/components/accordion/accordion.css');
8
8
  @import url('../src/widgets/feature-space/feature-space.css');
9
9
  @import url('../src/widgets/feature-leaderboard/feature-leaderboard.css');