@webviz/well-log-viewer 0.0.1-alpha.1 → 0.0.1-alpha.3

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 (77) hide show
  1. package/dist/SyncLogViewer.js +3 -4
  2. package/dist/SyncLogViewer.js.map +1 -1
  3. package/dist/components/WellLogView.js +5 -5
  4. package/dist/components/WellLogView.js.map +1 -1
  5. package/dist/demo/example-data/welllog_template_2.json +167 -167
  6. package/dist/demo/example-data/wellpick_colors.json +1 -1
  7. package/dist/demo/example-data/wellpicks.json +179 -179
  8. package/package.json +32 -5
  9. package/dist/Intro.stories.mdx +0 -59
  10. package/dist/package.json +0 -21
  11. package/src/Intro.stories.mdx +0 -59
  12. package/src/MapAndWellLogViewer.stories.jsx +0 -147
  13. package/src/MapAndWellLogViewer.test.tsx +0 -26
  14. package/src/MapAndWellLogViewer.tsx +0 -473
  15. package/src/SyncLogViewer.stories.jsx +0 -361
  16. package/src/SyncLogViewer.test.tsx +0 -41
  17. package/src/SyncLogViewer.tsx +0 -1188
  18. package/src/WellLogViewer.png +0 -0
  19. package/src/WellLogViewer.stories.jsx +0 -169
  20. package/src/WellLogViewer.test.tsx +0 -53
  21. package/src/WellLogViewer.tsx +0 -439
  22. package/src/WellLogViewer_performance.test.tsx +0 -78
  23. package/src/__snapshots__/MapAndWellLogViewer.test.tsx.snap +0 -365
  24. package/src/__snapshots__/SyncLogViewer.test.tsx.snap +0 -510
  25. package/src/__snapshots__/WellLogViewer.test.tsx.snap +0 -552
  26. package/src/components/AxisSelector.test.tsx +0 -50
  27. package/src/components/AxisSelector.tsx +0 -49
  28. package/src/components/ColorTableTypes.ts +0 -9
  29. package/src/components/InfoPanel.test.tsx +0 -58
  30. package/src/components/InfoPanel.tsx +0 -144
  31. package/src/components/InfoTypes.ts +0 -17
  32. package/src/components/LocalMenus.tsx +0 -336
  33. package/src/components/PlotDialog.tsx +0 -419
  34. package/src/components/Scroller.stories.jsx +0 -80
  35. package/src/components/Scroller.test.tsx +0 -22
  36. package/src/components/Scroller.tsx +0 -173
  37. package/src/components/TrackDialog.tsx +0 -217
  38. package/src/components/WellLogSpacer.tsx +0 -483
  39. package/src/components/WellLogTemplateTypes.ts +0 -65
  40. package/src/components/WellLogTypes.ts +0 -53
  41. package/src/components/WellLogView.stories.jsx +0 -84
  42. package/src/components/WellLogView.test.tsx +0 -52
  43. package/src/components/WellLogView.tsx +0 -2063
  44. package/src/components/WellLogViewWithScroller.stories.jsx +0 -69
  45. package/src/components/WellLogViewWithScroller.test.tsx +0 -47
  46. package/src/components/WellLogViewWithScroller.tsx +0 -179
  47. package/src/components/ZoomSlider.stories.jsx +0 -52
  48. package/src/components/ZoomSlider.test.tsx +0 -28
  49. package/src/components/ZoomSlider.tsx +0 -86
  50. package/src/components/__snapshots__/AxisSelector.test.tsx.snap +0 -28
  51. package/src/components/__snapshots__/InfoPanel.test.tsx.snap +0 -103
  52. package/src/components/__snapshots__/Scroller.test.tsx.snap +0 -13
  53. package/src/components/__snapshots__/WellLogView.test.tsx.snap +0 -54
  54. package/src/components/__snapshots__/WellLogViewWithScroller.test.tsx.snap +0 -270
  55. package/src/components/__snapshots__/ZoomSlider.test.tsx.snap +0 -50
  56. package/src/components/styles.scss +0 -106
  57. package/src/custom.d.ts +0 -13
  58. package/src/demo/example-data/volve_logs.json +0 -689617
  59. package/src/demo/example-data/welllog_template_2.json +0 -196
  60. package/src/demo/example-data/wellpick_colors.json +0 -156
  61. package/src/demo/example-data/wellpicks.json +0 -186
  62. package/src/index.ts +0 -8
  63. package/src/utils/axes.ts +0 -26
  64. package/src/utils/color-table.ts +0 -153
  65. package/src/utils/deepcopy.ts +0 -3
  66. package/src/utils/edit-track.tsx +0 -40
  67. package/src/utils/fill-info.ts +0 -224
  68. package/src/utils/gradientfill-plot-legend.ts +0 -177
  69. package/src/utils/gradientfill-plot.ts +0 -203
  70. package/src/utils/graph/factory.ts +0 -15
  71. package/src/utils/legend/common.ts +0 -153
  72. package/src/utils/log-viewer.ts +0 -209
  73. package/src/utils/minmax.ts +0 -126
  74. package/src/utils/pattern.tsx +0 -50
  75. package/src/utils/stack/stack-legend.ts +0 -100
  76. package/src/utils/tracks.ts +0 -1559
  77. package/tsconfig.json +0 -8
Binary file
@@ -1,169 +0,0 @@
1
- /* eslint-disable react-hooks/exhaustive-deps */ // remove when ready to fix these.
2
-
3
- import React from "react";
4
- import WellLogViewer from "./WellLogViewer";
5
- import { argTypesWellLogViewerProp } from "./WellLogViewer";
6
- import { colorTables } from "@emerson-eps/color-tables";
7
-
8
- const ComponentCode =
9
- '<WellLogViewer id="WellLogViewer" \r\n' +
10
- " horizontal=false \r\n" +
11
- ' welllog={require("../../../../example-data/L898MUD.json")[0]} \r\n' +
12
- ' template={require("../../../../example-data/welllog_template_1.json")} \r\n' +
13
- " colorTables={colorTables} \r\n" +
14
- "/>";
15
-
16
- import { axisTitles, axisMnemos } from "./utils/axes";
17
-
18
- export default {
19
- component: WellLogViewer,
20
- title: "WellLogViewer/Demo/WellLogViewer",
21
- parameters: {
22
- docs: {
23
- description: {
24
- component:
25
- "A demo component to deal with WellLogView component.",
26
- },
27
- },
28
- componentSource: {
29
- code: ComponentCode,
30
- language: "javascript",
31
- },
32
- },
33
- argTypes: {
34
- ...argTypesWellLogViewerProp,
35
- id: {
36
- description:
37
- "The ID of this component, used to identify dash components in callbacks. The ID needs to be unique across all of the components in an app.",
38
- },
39
- },
40
- };
41
-
42
- function fillInfo(controller) {
43
- if (!controller) return "-";
44
- const baseDomain = controller.getContentBaseDomain();
45
- const domain = controller.getContentDomain();
46
- const selection = controller.getContentSelection();
47
- return (
48
- "total: [" +
49
- baseDomain[0].toFixed(0) +
50
- ", " +
51
- baseDomain[1].toFixed(0) +
52
- "], " +
53
- "visible: [" +
54
- domain[0].toFixed(0) +
55
- ", " +
56
- domain[1].toFixed(0) +
57
- "]" +
58
- (selection[0] !== undefined
59
- ? ", selected: [" +
60
- selection[0].toFixed(0) +
61
- (selection[1] !== undefined
62
- ? ", " + selection[1].toFixed(0)
63
- : "") +
64
- "]"
65
- : "")
66
- );
67
- }
68
-
69
- const Template = (args) => {
70
- const infoRef = React.useRef();
71
- const setInfo = function (info) {
72
- if (infoRef.current) infoRef.current.innerHTML = info;
73
- };
74
- const [controller, setController] = React.useState(null);
75
- const onCreateController = React.useCallback(
76
- (controller) => {
77
- setController(controller);
78
- },
79
- [controller]
80
- );
81
- const onContentRescale = React.useCallback(() => {
82
- setInfo(fillInfo(controller));
83
- }, [controller]);
84
- const onContentSelection = React.useCallback(() => {
85
- setInfo(fillInfo(controller));
86
- }, [controller]);
87
-
88
- return (
89
- <div
90
- style={{ height: "92vh", display: "flex", flexDirection: "column" }}
91
- >
92
- <div style={{ width: "100%", height: "100%", flex: 1 }}>
93
- <WellLogViewer
94
- id="WellLogViewer"
95
- {...args}
96
- onCreateController={onCreateController}
97
- onContentRescale={onContentRescale}
98
- onContentSelection={onContentSelection}
99
- />
100
- </div>
101
- <div ref={infoRef} style={{ width: "100%", flex: 0 }}></div>
102
- </div>
103
- );
104
- };
105
-
106
- const wellpick = {
107
- wellpick: require("../../../../example-data/wellpicks.json")[0],
108
- name: "HORIZON",
109
- colorTables: colorTables,
110
- color: "Stratigraphy",
111
- };
112
-
113
- export const Default = Template.bind({});
114
- Default.args = {
115
- id: "Well-Log-Viewer",
116
- horizontal: false,
117
- welllog: require("../../../../example-data/L898MUD.json")[0],
118
- template: require("../../../../example-data/welllog_template_1.json"),
119
- colorTables: colorTables,
120
- wellpick: wellpick,
121
- axisTitles: axisTitles,
122
- axisMnemos: axisMnemos,
123
- viewTitle: true, // show default welllog view title (a wellname from the welllog)
124
- options: {
125
- hideTrackTitle: false,
126
- hideTrackLegend: false,
127
- },
128
- };
129
-
130
- export const Horizontal = Template.bind({});
131
- Horizontal.args = {
132
- id: "Well-Log-Viewer-Horizontal",
133
- horizontal: true,
134
- welllog:
135
- require("../../../../example-data/WL_RAW_AAC-BHPR-CAL-DEN-GR-MECH-NEU-NMR-REMP_MWD_3.json")[0],
136
- template: require("../../../../example-data/welllog_template_2.json"),
137
- colorTables: colorTables,
138
- wellpick: wellpick,
139
- axisTitles: axisTitles,
140
- axisMnemos: axisMnemos,
141
- viewTitle: true, // show default welllog view title (a wellname from the welllog)
142
- };
143
- Horizontal.parameters = {
144
- docs: {
145
- description: {
146
- story: "An example showing horizontal orientation of the tracks.",
147
- },
148
- },
149
- };
150
-
151
- export const Discrete = Template.bind({});
152
- Discrete.args = {
153
- id: "Well-Log-Viewer-Discrete",
154
- horizontal: false,
155
- welllog: require("../../../../example-data/volve_logs.json")[0],
156
- template: require("../../../../example-data/welllog_template_2.json"),
157
- colorTables: colorTables,
158
- wellpick: wellpick,
159
- axisTitles: axisTitles,
160
- axisMnemos: axisMnemos,
161
- viewTitle: true, // show default welllog view title (a wellname from the welllog)
162
- };
163
- Discrete.parameters = {
164
- docs: {
165
- description: {
166
- story: "An example showing the tracks with discrete logs.",
167
- },
168
- },
169
- };
@@ -1,53 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-var-requires */
2
- import "@testing-library/jest-dom/extend-expect";
3
- import { render } from "@testing-library/react";
4
- import "jest-styled-components";
5
- import React from "react";
6
- import WellLogViewer from "./WellLogViewer";
7
- import { WellLogController } from "./components/WellLogView";
8
- import { axisTitles, axisMnemos } from "./utils/axes";
9
- import { colorTables } from "@emerson-eps/color-tables";
10
-
11
- const exampleTemplate = require("../../../../example-data/welllog_template_1.json");
12
- const exampleWellLog = require("../../../../example-data/L898MUD.json")[0];
13
- const exampleColorTable = colorTables;
14
-
15
- window.ResizeObserver =
16
- window.ResizeObserver ||
17
- jest.fn().mockImplementation(() => ({
18
- disconnect: jest.fn(),
19
- observe: jest.fn(),
20
- unobserve: jest.fn(),
21
- }));
22
-
23
- describe("Test Well Log Viewer Component", () => {
24
- it("snapshot test", () => {
25
- const { container } = render(
26
- <WellLogViewer
27
- id="Well-Log-Viewer"
28
- options={{
29
- hideTrackTitle: true,
30
- hideTrackLegend: true,
31
- }}
32
- welllog={exampleWellLog}
33
- template={exampleTemplate}
34
- colorTables={exampleColorTable}
35
- horizontal={true}
36
- primaryAxis={"md"}
37
- axisTitles={axisTitles}
38
- axisMnemos={axisMnemos}
39
- readoutOptions={{
40
- allTracks: false,
41
- grouping: "by_track",
42
- }}
43
- onCreateController={(controller: WellLogController) =>
44
- controller
45
- }
46
- onContentRescale={function (): void {
47
- throw new Error("Function not implemented.");
48
- }}
49
- />
50
- );
51
- expect(container.firstChild).toMatchSnapshot();
52
- });
53
- });
@@ -1,439 +0,0 @@
1
- import React, { Component } from "react";
2
-
3
- import PropTypes from "prop-types";
4
-
5
- import WellLogViewWithScroller from "./components/WellLogViewWithScroller";
6
- import { WellLogViewWithScrollerProps } from "./components/WellLogViewWithScroller";
7
- import { argTypesWellLogViewScrollerProp } from "./components/WellLogViewWithScroller";
8
- //import { _propTypesWellLogView } from "./components/WellLogView";
9
-
10
- import { shouldUpdateWellLogView } from "./components/WellLogView";
11
-
12
- import InfoPanel from "./components/InfoPanel";
13
- import AxisSelector from "./components/AxisSelector";
14
-
15
- import ZoomSlider from "./components/ZoomSlider";
16
-
17
- import { WellLogController } from "./components/WellLogView";
18
-
19
- import { getAvailableAxes } from "./utils/tracks";
20
-
21
- import { onTrackMouseEvent } from "./utils/edit-track";
22
- import { fillInfos } from "./utils/fill-info";
23
- import { LogViewer } from "@equinor/videx-wellog";
24
-
25
- import { Info, InfoOptions } from "./components/InfoTypes";
26
-
27
- export interface WellLogViewerProps extends WellLogViewWithScrollerProps {
28
- readoutOptions?: InfoOptions; // options for readout
29
-
30
- // callbacks
31
- onContentRescale?: () => void;
32
- onContentSelection?: () => void;
33
- onTemplateChanged?: () => void;
34
-
35
- onCreateController?: (controller: WellLogController) => void;
36
- }
37
-
38
- export const argTypesWellLogViewerProp = {
39
- ...argTypesWellLogViewScrollerProp,
40
- readoutOptions: {
41
- description:
42
- "Options for readout panel.<br/>" +
43
- "allTracks: boolean — Show not only visible tracks,<br/>" +
44
- "grouping: string — How group values.",
45
- /*
46
- defaultValue: {
47
- allTracks: false,
48
- grouping: "by_track",
49
- }
50
- */
51
- },
52
- // callbacks...
53
- };
54
-
55
- interface State {
56
- axes: string[]; // axes available in welllog
57
- primaryAxis: string;
58
- infos: Info[];
59
-
60
- sliderValue: number; // value for zoom slider
61
- }
62
-
63
- class WellLogViewer extends Component<WellLogViewerProps, State> {
64
- public static propTypes: Record<string, unknown>;
65
-
66
- controller: WellLogController | null;
67
-
68
- collapsedTrackIds: (string | number)[];
69
-
70
- constructor(props: WellLogViewerProps) {
71
- super(props);
72
-
73
- const axes = getAvailableAxes(
74
- this.props.welllog,
75
- this.props.axisMnemos
76
- );
77
- let primaryAxis = axes[0];
78
- if (this.props.template && this.props.template.scale.primary) {
79
- if (axes.indexOf(this.props.template.scale.primary) >= 0)
80
- primaryAxis = this.props.template.scale.primary;
81
- }
82
- if (this.props.primaryAxis) primaryAxis = this.props.primaryAxis;
83
- this.state = {
84
- primaryAxis: primaryAxis, //"md"
85
- axes: axes, //["md", "tvd"]
86
- infos: [],
87
-
88
- sliderValue: 4.0,
89
- };
90
-
91
- this.controller = null;
92
-
93
- this.collapsedTrackIds = [];
94
-
95
- this.collapsedTrackIds = [];
96
-
97
- this.onCreateController = this.onCreateController.bind(this);
98
-
99
- this.onInfo = this.onInfo.bind(this);
100
-
101
- this.onChangePrimaryAxis = this.onChangePrimaryAxis.bind(this);
102
-
103
- this.onContentRescale = this.onContentRescale.bind(this);
104
- this.onContentSelection = this.onContentSelection.bind(this);
105
- this.onTemplateChanged = this.onTemplateChanged.bind(this);
106
-
107
- this.onZoomSliderChange = this.onZoomSliderChange.bind(this);
108
-
109
- this.onInfoGroupClick = this.onInfoGroupClick.bind(this);
110
- }
111
-
112
- componentDidMount(): void {
113
- this.setSliderValue();
114
- }
115
-
116
- shouldComponentUpdate(
117
- nextProps: WellLogViewerProps,
118
- nextState: State
119
- ): boolean {
120
- if (shouldUpdateWellLogView(this.props, nextProps)) return true;
121
-
122
- return (
123
- !Object.is(this.props, nextProps) ||
124
- !Object.is(this.state, nextState)
125
- );
126
- }
127
-
128
- componentDidUpdate(
129
- prevProps: WellLogViewerProps /*, prevState: State*/
130
- ): void {
131
- if (
132
- this.props.welllog !== prevProps.welllog ||
133
- this.props.template !== prevProps.template ||
134
- this.props.axisMnemos !== prevProps.axisMnemos ||
135
- this.props.primaryAxis !== prevProps.primaryAxis /*||
136
- this.props.colorTables !== prevProps.colorTables*/
137
- ) {
138
- const axes = getAvailableAxes(
139
- this.props.welllog,
140
- this.props.axisMnemos
141
- );
142
- let primaryAxis = axes[0];
143
- if (this.props.template && this.props.template.scale.primary) {
144
- if (axes.indexOf(this.props.template.scale.primary) >= 0) {
145
- primaryAxis = this.props.template.scale.primary;
146
- } else if (this.props.welllog === prevProps.welllog) return; // nothing to update
147
- }
148
- if (this.props.primaryAxis) primaryAxis = this.props.primaryAxis;
149
- this.setState({
150
- primaryAxis: primaryAxis,
151
- axes: axes,
152
- // will be changed by callback! infos: [],
153
- });
154
- }
155
-
156
- if (
157
- this.props.readoutOptions &&
158
- (!prevProps.readoutOptions ||
159
- this.props.readoutOptions.allTracks !==
160
- prevProps.readoutOptions.allTracks ||
161
- this.props.readoutOptions.grouping !==
162
- prevProps.readoutOptions.grouping)
163
- ) {
164
- this.updateReadoutPanel();
165
- }
166
- }
167
-
168
- updateReadoutPanel(): void {
169
- const controller = this.controller;
170
- if (controller)
171
- controller.selectContent(controller.getContentSelection()); // force to update readout panel
172
- }
173
-
174
- // callback function from WellLogView
175
- onInfo(
176
- x: number,
177
- logController: LogViewer,
178
- iFrom: number,
179
- iTo: number
180
- ): void {
181
- const infos = fillInfos(
182
- x,
183
- logController,
184
- iFrom,
185
- iTo,
186
- this.collapsedTrackIds,
187
- this.props.readoutOptions
188
- );
189
-
190
- this.setState({
191
- infos: infos,
192
- });
193
- }
194
- // callback function from WellLogView
195
- onCreateController(controller: WellLogController): void {
196
- this.controller = controller;
197
- if (this.props.onCreateController)
198
- // set callback to component's caller
199
- this.props.onCreateController(controller);
200
- }
201
- // callback function from WellLogView
202
- onContentRescale(): void {
203
- this.setSliderValue();
204
- if (this.props.onContentRescale) this.props.onContentRescale();
205
- }
206
- // callback function from WellLogView
207
- onContentSelection(): void {
208
- this.setSliderValue();
209
- if (this.props.onContentSelection) this.props.onContentSelection();
210
- }
211
- onTemplateChanged(): void {
212
- if (this.props.onTemplateChanged) {
213
- if (this.props.onTemplateChanged) this.props.onTemplateChanged();
214
- }
215
- }
216
-
217
- // callback function from Axis selector
218
- onChangePrimaryAxis(value: string): void {
219
- this.setState({ primaryAxis: value });
220
- }
221
- // callback function from Zoom slider
222
- onZoomSliderChange(value: number): void {
223
- const controller = this.controller;
224
- if (controller) {
225
- controller.zoomContent(value);
226
- }
227
- }
228
-
229
- // set zoom value to slider
230
- setSliderValue(): void {
231
- this.setState((state: Readonly<State>) => {
232
- if (!this.controller) return null;
233
- const zoom = this.controller.getContentZoom();
234
- if (Math.abs(Math.log(state.sliderValue / zoom)) < 0.01)
235
- return null;
236
- return { sliderValue: zoom };
237
- });
238
- }
239
-
240
- onInfoGroupClick(trackId: string | number): void {
241
- const i = this.collapsedTrackIds.indexOf(trackId);
242
- if (i < 0) this.collapsedTrackIds.push(trackId);
243
- else delete this.collapsedTrackIds[i];
244
-
245
- this.updateReadoutPanel();
246
-
247
- if (this.controller)
248
- this.controller.selectContent(
249
- this.controller.getContentSelection()
250
- ); // force to update readout panel
251
- }
252
-
253
- render(): JSX.Element {
254
- const maxContentZoom = 256;
255
- return (
256
- <div style={{ height: "100%", width: "100%", display: "flex" }}>
257
- <WellLogViewWithScroller
258
- welllog={this.props.welllog}
259
- template={this.props.template}
260
- colorTables={this.props.colorTables}
261
- wellpick={this.props.wellpick}
262
- horizontal={this.props.horizontal}
263
- maxContentZoom={maxContentZoom}
264
- primaryAxis={this.state.primaryAxis}
265
- axisTitles={this.props.axisTitles}
266
- axisMnemos={this.props.axisMnemos}
267
- options={this.props.options}
268
- onInfo={this.onInfo}
269
- onCreateController={this.onCreateController}
270
- onTrackMouseEvent={onTrackMouseEvent}
271
- onContentRescale={this.onContentRescale}
272
- onContentSelection={this.onContentSelection}
273
- onTemplateChanged={this.onTemplateChanged}
274
- />
275
- <div
276
- style={{
277
- flex: "0, 0",
278
- display: "flex",
279
- flexDirection: "column",
280
- height: "100%",
281
- width: "255px",
282
- minWidth: "255px",
283
- maxWidth: "255px",
284
- }}
285
- >
286
- <AxisSelector
287
- header="Primary scale"
288
- axes={this.state.axes}
289
- axisLabels={this.props.axisTitles}
290
- value={this.state.primaryAxis}
291
- onChange={this.onChangePrimaryAxis}
292
- />
293
- <InfoPanel
294
- header="Readout"
295
- onGroupClick={this.onInfoGroupClick}
296
- infos={this.state.infos}
297
- />
298
- <br />
299
- <div style={{ paddingLeft: "10px", display: "flex" }}>
300
- <span>Zoom:</span>
301
- <span
302
- style={{
303
- flex: "1 1 100px",
304
- padding: "0 20px 0 10px",
305
- }}
306
- >
307
- <ZoomSlider
308
- value={this.state.sliderValue}
309
- max={maxContentZoom}
310
- onChange={this.onZoomSliderChange}
311
- />
312
- </span>
313
- </div>
314
- </div>
315
- </div>
316
- );
317
- }
318
- }
319
-
320
- ///
321
- const WellLogViewOptions_propTypes = PropTypes.shape({
322
- /**
323
- * The maximum zoom value
324
- */
325
- maxContentZoom: PropTypes.number,
326
- /**
327
- * The maximum number of visible tracks
328
- */
329
- maxVisibleTrackNum: PropTypes.number,
330
- /**
331
- * Validate JSON datafile against schema
332
- */
333
- checkDatafileSchema: PropTypes.bool,
334
- /**
335
- * Hide titles of the track. Default is false
336
- */
337
- hideTrackTitle: PropTypes.bool,
338
- /**
339
- * Hide legends of the track. Default is false
340
- */
341
- hideTrackLegend: PropTypes.bool,
342
- });
343
-
344
- const InfoOptions_propTypes = PropTypes.shape({
345
- /**
346
- * Show not only visible tracks
347
- */
348
- allTracks: PropTypes.bool,
349
- /**
350
- * how group values. "" | "track"
351
- */
352
- grouping: PropTypes.string,
353
- });
354
-
355
- WellLogViewer.propTypes = {
356
- //do not work with python dash! ..._propTypesWellLogView(), // ...WellLogViewWithScroller.propTypes,
357
- /**
358
- * The ID of this component, used to identify dash components
359
- * in callbacks. The ID needs to be unique across all of the
360
- * components in an app.
361
- */
362
- id: PropTypes.string.isRequired,
363
-
364
- /**
365
- * An object from JSON file describing well log data
366
- */
367
- welllog: PropTypes.object.isRequired,
368
-
369
- /**
370
- * Prop containing track template data
371
- */
372
- template: PropTypes.object.isRequired,
373
-
374
- /**
375
- * Prop containing color table data
376
- */
377
- colorTables: PropTypes.array.isRequired,
378
-
379
- /**
380
- * Orientation of the track plots on the screen. Default is false
381
- */
382
- horizontal: PropTypes.bool,
383
-
384
- /**
385
- * Initial visible interval of the log data
386
- */
387
- domain: PropTypes.arrayOf(PropTypes.number),
388
-
389
- /**
390
- * Initial selected interval of the log data
391
- */
392
- selection: PropTypes.arrayOf(PropTypes.number),
393
-
394
- /**
395
- * Well picks data
396
- */
397
- wellpick: PropTypes.object,
398
-
399
- /**
400
- * Primary axis id: " md", "tvd", "time"...
401
- */
402
- primaryAxis: PropTypes.string,
403
-
404
- /**
405
- * Log mnemonics for axes
406
- */
407
- axisTitles: PropTypes.object,
408
-
409
- /**
410
- * Names for axes
411
- */
412
- axisMnemos: PropTypes.object,
413
-
414
- /**
415
- * The maximum zoom value
416
- */
417
- maxContentZoom: PropTypes.number,
418
-
419
- /**
420
- * Set to true for default titles or to array of individial welllog titles
421
- */
422
- viewTitle: PropTypes.oneOfType([
423
- PropTypes.bool,
424
- PropTypes.string,
425
- PropTypes.object /* react element */,
426
- ]),
427
-
428
- /**
429
- * WellLogView additional options
430
- */
431
- options: WellLogViewOptions_propTypes /*PropTypes.object,*/,
432
-
433
- /**
434
- * Options for readout panel
435
- */
436
- readoutOptions: InfoOptions_propTypes /*PropTypes.object,*/,
437
- };
438
-
439
- export default WellLogViewer;