fmu-pem 0.0.1__tar.gz → 0.0.2__tar.gz
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.
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/.github/workflows/build_test_deploy.yml +6 -5
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/.gitignore +5 -0
- fmu_pem-0.0.2/.pre-commit-config.yaml +23 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/PKG-INFO +17 -19
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/README.md +15 -13
- fmu_pem-0.0.2/documentation/docs/.vitepress/config.mts +30 -0
- fmu_pem-0.0.2/documentation/docs/ert-configuration.md +15 -0
- fmu_pem-0.0.2/documentation/docs/index.md +24 -0
- fmu_pem-0.0.2/documentation/docs/pem-configuration.md +134 -0
- fmu_pem-0.0.2/documentation/docs/public/fmu_logo_dark_mode.svg +18 -0
- fmu_pem-0.0.2/documentation/docs/public/fmu_logo_light_mode.svg +18 -0
- fmu_pem-0.0.1/user-interface-config/src/App.tsx → fmu_pem-0.0.2/documentation/docs/yaml-edit/YamlEdit.tsx +22 -32
- fmu_pem-0.0.2/documentation/package-lock.json +4443 -0
- fmu_pem-0.0.2/documentation/package.json +19 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/pyproject.toml +1 -5
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/density.py +2 -2
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/effective_pressure.py +7 -6
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/estimate_saturated_rock.py +3 -3
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/fluid_properties.py +13 -8
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/regression_models.py +3 -3
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/run_friable_model.py +2 -2
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/run_patchy_cement_model.py +2 -2
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/run_t_matrix_and_pressure.py +1 -1
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/enum_defs.py +17 -1
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/import_routines.py +2 -1
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/pem_config_validation.py +65 -32
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/rpm_models.py +47 -22
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/version.py +2 -2
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu_pem.egg-info/PKG-INFO +17 -19
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu_pem.egg-info/SOURCES.txt +30 -37
- fmu_pem-0.0.2/tests/conftest.py +28 -0
- fmu_pem-0.0.2/tests/data/ert/model/run_pem_condensate.ert +11 -0
- fmu_pem-0.0.2/tests/data/ert/model/run_pem_no_condensate.ert +11 -0
- fmu_pem-0.0.1/tests/data/test_pem_config_condensate.yml → fmu_pem-0.0.2/tests/data/sim2seis/model/pem_config_condensate.yml +25 -22
- fmu_pem-0.0.1/tests/yaml_files/new_pem_config.yml → fmu_pem-0.0.2/tests/data/sim2seis/model/pem_config_no_condensate.yml +18 -13
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/test_config_file_validation.py +6 -6
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/test_dry_rock.py +1 -1
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/test_ert_hooks.py +53 -57
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/test_ert_hooks_condensate.py +53 -58
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/test_friable.py +5 -5
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/test_patchy_cement.py +4 -2
- fmu_pem-0.0.2/tests/test_pem.py +18 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/test_regression.py +9 -9
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/test_t_matrix.py +3 -3
- fmu_pem-0.0.1/tests/conftest.py +0 -8
- fmu_pem-0.0.1/tests/data/run_pem_condensate.ert +0 -15
- fmu_pem-0.0.1/tests/data/run_pem_no_condensate.ert +0 -15
- fmu_pem-0.0.1/tests/data/test_pem_config_no_condensate.yml +0 -122
- fmu_pem-0.0.1/tests/test_pem.py +0 -25
- fmu_pem-0.0.1/user-interface-config/.prettierrc +0 -1
- fmu_pem-0.0.1/user-interface-config/eslint.config.js +0 -28
- fmu_pem-0.0.1/user-interface-config/index.html +0 -22
- fmu_pem-0.0.1/user-interface-config/package-lock.json +0 -7033
- fmu_pem-0.0.1/user-interface-config/package.json +0 -45
- fmu_pem-0.0.1/user-interface-config/postcss.config.js +0 -6
- fmu_pem-0.0.1/user-interface-config/src/fmu-pem-schema.json +0 -20
- fmu_pem-0.0.1/user-interface-config/src/index.css +0 -65
- fmu_pem-0.0.1/user-interface-config/src/main.tsx +0 -10
- fmu_pem-0.0.1/user-interface-config/src/vite-env.d.ts +0 -1
- fmu_pem-0.0.1/user-interface-config/tailwind.config.js +0 -8
- fmu_pem-0.0.1/user-interface-config/tsconfig.app.json +0 -26
- fmu_pem-0.0.1/user-interface-config/tsconfig.json +0 -7
- fmu_pem-0.0.1/user-interface-config/tsconfig.node.json +0 -24
- fmu_pem-0.0.1/user-interface-config/vite.config.ts +0 -7
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/ERT/run_pem.ert +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/LICENSE +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/SECURITY.md +0 -0
- {fmu_pem-0.0.1/user-interface-config/src → fmu_pem-0.0.2/documentation/docs/yaml-edit}/schema.tsx +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/setup.cfg +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/__init__.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/__init__.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/__main__.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/forward_models/__init__.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/forward_models/pem_model.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/hook_implementations/__init__.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/hook_implementations/jobs.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/__init__.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_functions/mineral_properties.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/__init__.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/cumsum_properties.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/delta_cumsum_time.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/export_routines.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/import_config.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/pem_class_definitions.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/update_grid.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/pem_utilities/utils.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu/pem/run_pem.py +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu_pem.egg-info/dependency_links.txt +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu_pem.egg-info/entry_points.txt +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu_pem.egg-info/requires.txt +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/src/fmu_pem.egg-info/top_level.txt +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/__init__.py +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/fmuconfig/output}/global_variables.yml +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/fmuconfig/output}/global_variables_pred.yml +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/input/pem}/ECLIPSE.EGRID +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/input/pem}/ECLIPSE.INIT +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/input/pem}/ECLIPSE.UNRST +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/input/pem}/export_grid.roff +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/input/pem}/export_prop.roff +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/input/pem}/simgrid--ntg_pem.roff +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/input/pem}/simgrid.roff +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/model}/carbonate_pressure_model_vp_exp.pkl +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/model}/carbonate_pressure_model_vs_exp.pkl +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/model}/t_mat_params_exp.pkl +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/model}/t_mat_params_petec.pkl +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/model}/vp_exp_model.pkl +0 -0
- {fmu_pem-0.0.1/tests/data → fmu_pem-0.0.2/tests/data/sim2seis/model}/vs_exp_model.pkl +0 -0
- {fmu_pem-0.0.1 → fmu_pem-0.0.2}/tests/test_utils.py +0 -0
|
@@ -14,7 +14,7 @@ jobs:
|
|
|
14
14
|
runs-on: "ubuntu-latest"
|
|
15
15
|
strategy:
|
|
16
16
|
matrix:
|
|
17
|
-
python-version: ["3.11"]
|
|
17
|
+
python-version: ["3.11", "3.12"]
|
|
18
18
|
steps:
|
|
19
19
|
- uses: actions/checkout@v4
|
|
20
20
|
|
|
@@ -46,25 +46,25 @@ jobs:
|
|
|
46
46
|
python -m build
|
|
47
47
|
|
|
48
48
|
- name: Upload artifact
|
|
49
|
-
if: github.event_name == 'release'
|
|
49
|
+
if: github.event_name == 'release' && matrix.python-version == '3.11'
|
|
50
50
|
uses: actions/upload-artifact@v4
|
|
51
51
|
with:
|
|
52
52
|
name: Python dist
|
|
53
53
|
path: dist/
|
|
54
54
|
|
|
55
55
|
- name: Build configuration file user interface
|
|
56
|
-
working-directory: ./
|
|
56
|
+
working-directory: ./documentation
|
|
57
57
|
run: |
|
|
58
58
|
npm ci
|
|
59
59
|
npm run create-json-schema
|
|
60
|
-
npm run build
|
|
60
|
+
npm run docs:build
|
|
61
61
|
|
|
62
62
|
- name: 📚 Update GitHub pages
|
|
63
63
|
# Update on merge to main
|
|
64
64
|
if: github.ref_name == 'main'
|
|
65
65
|
run: |
|
|
66
66
|
# Move the built documentation out of working directory, in order to delete everything else afterwards
|
|
67
|
-
cp -R ./
|
|
67
|
+
cp -R ./documentation/docs/.vitepress/dist ../dist
|
|
68
68
|
|
|
69
69
|
git config --local user.email "fmu-pem-github-action"
|
|
70
70
|
git config --local user.name "fmu-pem-github-action"
|
|
@@ -84,6 +84,7 @@ jobs:
|
|
|
84
84
|
git push "https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git" gh-pages
|
|
85
85
|
fi
|
|
86
86
|
|
|
87
|
+
|
|
87
88
|
deploy:
|
|
88
89
|
name: Upload release to PyPI
|
|
89
90
|
if: github.event_name == 'release'
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
default_stages: [pre-commit]
|
|
2
|
+
|
|
3
|
+
repos:
|
|
4
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
5
|
+
rev: v5.0.0
|
|
6
|
+
hooks:
|
|
7
|
+
- id: check-ast
|
|
8
|
+
language_version: python3.11
|
|
9
|
+
- id: debug-statements
|
|
10
|
+
- id: check-merge-conflict
|
|
11
|
+
- id: detect-private-key
|
|
12
|
+
- id: check-case-conflict
|
|
13
|
+
- id: check-toml
|
|
14
|
+
- id: check-json
|
|
15
|
+
- id: trailing-whitespace
|
|
16
|
+
- id: end-of-file-fixer
|
|
17
|
+
|
|
18
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
19
|
+
rev: v0.11.7
|
|
20
|
+
hooks:
|
|
21
|
+
- id: ruff
|
|
22
|
+
args: [--fix]
|
|
23
|
+
- id: ruff-format
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fmu-pem
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.2
|
|
4
4
|
Summary: pem
|
|
5
5
|
License: GNU GENERAL PUBLIC LICENSE
|
|
6
6
|
Version 3, 29 June 2007
|
|
@@ -686,12 +686,8 @@ Classifier: Topic :: Scientific/Engineering :: Physics
|
|
|
686
686
|
Classifier: Topic :: Software Development :: Libraries
|
|
687
687
|
Classifier: Topic :: Utilities
|
|
688
688
|
Classifier: Operating System :: POSIX :: Linux
|
|
689
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
690
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
691
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
692
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
693
689
|
Classifier: Natural Language :: English
|
|
694
|
-
Requires-Python: >=3.
|
|
690
|
+
Requires-Python: >=3.11
|
|
695
691
|
Description-Content-Type: text/markdown
|
|
696
692
|
License-File: LICENSE
|
|
697
693
|
Requires-Dist: numpy>=1.24.3
|
|
@@ -719,13 +715,19 @@ Requires-Dist: sphinx-togglebutton; extra == "docs"
|
|
|
719
715
|
Requires-Dist: sphinx_rtd_theme; extra == "docs"
|
|
720
716
|
Dynamic: license-file
|
|
721
717
|
|
|
722
|
-
|
|
718
|
+
> [!WARNING]
|
|
719
|
+
> `fmu-pem` is not yet qualified technology, and as of today only applicable for selected pilot test fields.
|
|
723
720
|
|
|
724
|
-
|
|
725
|
-
based on the [rock-physics-open](https://github.com/equinor/rock-physics-open)
|
|
726
|
-
library.
|
|
721
|
+
**[📚 User documentation](https://equinor.github.io/fmu-pem/)**
|
|
727
722
|
|
|
728
|
-
##
|
|
723
|
+
## What is fmu-pem?
|
|
724
|
+
|
|
725
|
+
Petro-elastic model (PEM) for use in e.g. [fmu-sim2seis](https://github.com/equinor/fmu-sim2seis)
|
|
726
|
+
based on the [rock-physics-open](https://github.com/equinor/rock-physics-open) library.
|
|
727
|
+
|
|
728
|
+
## How to use fmu-pem?
|
|
729
|
+
|
|
730
|
+
### Installation
|
|
729
731
|
|
|
730
732
|
To install `fmu-pem`, first activate a virtual environment, then type:
|
|
731
733
|
|
|
@@ -736,7 +738,7 @@ pip install fmu-pem
|
|
|
736
738
|
The PEM is controlled by parameter settings in a *yaml-file*, given as part of the
|
|
737
739
|
command line arguments, or by the workflow parameter if it is run as an ERT forward model.
|
|
738
740
|
|
|
739
|
-
|
|
741
|
+
### Calibration of rock physics models
|
|
740
742
|
|
|
741
743
|
Calibration of the rock physics models is normally carried out in
|
|
742
744
|
[RokDoc](https://www.ikonscience.com/rokdoc-geoprediction-software-platform/)
|
|
@@ -752,17 +754,13 @@ from LFP logs, if they are available.
|
|
|
752
754
|
> pip install "git+ssh://git@github.com/equinor/rock-physics"`
|
|
753
755
|
> ```
|
|
754
756
|
|
|
755
|
-
##
|
|
756
|
-
|
|
757
|
-
Users can visit https://equinor.github.io/fmu-pem/ in order to get help configuring the `fmu-pem` input data.
|
|
758
|
-
|
|
759
|
-
# How to develop fmu-pem
|
|
757
|
+
## How to develop fmu-pem?
|
|
760
758
|
|
|
761
759
|
Developing the user interface can be done by:
|
|
762
760
|
```bash
|
|
763
|
-
cd ./
|
|
761
|
+
cd ./documentation
|
|
764
762
|
npm ci # Install dependencies
|
|
765
763
|
npm run create-json-schema # Extract JSON schema from Python code
|
|
766
|
-
npm run dev # Start local development server
|
|
764
|
+
npm run docs:dev # Start local development server
|
|
767
765
|
```
|
|
768
766
|
The JSON schema itself (type, title, description etc.) comes from the corresponding Pydantic models in the Python code.
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
> [!WARNING]
|
|
2
|
+
> `fmu-pem` is not yet qualified technology, and as of today only applicable for selected pilot test fields.
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
based on the [rock-physics-open](https://github.com/equinor/rock-physics-open)
|
|
5
|
-
library.
|
|
4
|
+
**[📚 User documentation](https://equinor.github.io/fmu-pem/)**
|
|
6
5
|
|
|
7
|
-
##
|
|
6
|
+
## What is fmu-pem?
|
|
7
|
+
|
|
8
|
+
Petro-elastic model (PEM) for use in e.g. [fmu-sim2seis](https://github.com/equinor/fmu-sim2seis)
|
|
9
|
+
based on the [rock-physics-open](https://github.com/equinor/rock-physics-open) library.
|
|
10
|
+
|
|
11
|
+
## How to use fmu-pem?
|
|
12
|
+
|
|
13
|
+
### Installation
|
|
8
14
|
|
|
9
15
|
To install `fmu-pem`, first activate a virtual environment, then type:
|
|
10
16
|
|
|
@@ -15,7 +21,7 @@ pip install fmu-pem
|
|
|
15
21
|
The PEM is controlled by parameter settings in a *yaml-file*, given as part of the
|
|
16
22
|
command line arguments, or by the workflow parameter if it is run as an ERT forward model.
|
|
17
23
|
|
|
18
|
-
|
|
24
|
+
### Calibration of rock physics models
|
|
19
25
|
|
|
20
26
|
Calibration of the rock physics models is normally carried out in
|
|
21
27
|
[RokDoc](https://www.ikonscience.com/rokdoc-geoprediction-software-platform/)
|
|
@@ -31,17 +37,13 @@ from LFP logs, if they are available.
|
|
|
31
37
|
> pip install "git+ssh://git@github.com/equinor/rock-physics"`
|
|
32
38
|
> ```
|
|
33
39
|
|
|
34
|
-
##
|
|
35
|
-
|
|
36
|
-
Users can visit https://equinor.github.io/fmu-pem/ in order to get help configuring the `fmu-pem` input data.
|
|
37
|
-
|
|
38
|
-
# How to develop fmu-pem
|
|
40
|
+
## How to develop fmu-pem?
|
|
39
41
|
|
|
40
42
|
Developing the user interface can be done by:
|
|
41
43
|
```bash
|
|
42
|
-
cd ./
|
|
44
|
+
cd ./documentation
|
|
43
45
|
npm ci # Install dependencies
|
|
44
46
|
npm run create-json-schema # Extract JSON schema from Python code
|
|
45
|
-
npm run dev # Start local development server
|
|
47
|
+
npm run docs:dev # Start local development server
|
|
46
48
|
```
|
|
47
49
|
The JSON schema itself (type, title, description etc.) comes from the corresponding Pydantic models in the Python code.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { defineConfig } from 'vitepress'
|
|
2
|
+
|
|
3
|
+
// https://vitepress.dev/reference/site-config
|
|
4
|
+
export default defineConfig({
|
|
5
|
+
title: "FMU PEM",
|
|
6
|
+
description: "User documentation for using fmu-pem",
|
|
7
|
+
head: [
|
|
8
|
+
["link", { rel: "stylesheet", href: "https://unpkg.com/tailwindcss@^2/dist/tailwind.min.css"}]
|
|
9
|
+
],
|
|
10
|
+
themeConfig: {
|
|
11
|
+
// https://vitepress.dev/reference/default-theme-config
|
|
12
|
+
nav: [
|
|
13
|
+
{ text: 'Home', link: '/' },
|
|
14
|
+
],
|
|
15
|
+
logo: { light: "/fmu_logo_light_mode.svg", dark: "/fmu_logo_dark_mode.svg"},
|
|
16
|
+
sidebar: [
|
|
17
|
+
{
|
|
18
|
+
text: 'Setup',
|
|
19
|
+
items: [
|
|
20
|
+
{ text: 'ERT configuration', link: '/ert-configuration' },
|
|
21
|
+
{ text: 'PEM configuration', link: '/pem-configuration' }
|
|
22
|
+
]
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
|
|
26
|
+
socialLinks: [
|
|
27
|
+
{ icon: 'github', link: 'https://github.com/equinor/fmu-pem' }
|
|
28
|
+
]
|
|
29
|
+
}
|
|
30
|
+
})
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# ERT configuration file
|
|
2
|
+
|
|
3
|
+
You can include `fmu-pem` in your ERT setup by including the following snippet:
|
|
4
|
+
|
|
5
|
+
````ert
|
|
6
|
+
-- Define your variables:
|
|
7
|
+
DEFINE <JOB_STARTDIR> <RUNPATH>/rms/model
|
|
8
|
+
DEFINE <RELPATH_CONFIG_FILES> <RUNPATH>/sim2seis/model
|
|
9
|
+
DEFINE <PEM_CONFIG_FILE_NAME> pem_config.yml
|
|
10
|
+
|
|
11
|
+
-- Run the pre-installed ERT forward model:
|
|
12
|
+
FORWARD_MODEL PEM(<START_DIR>=<JOB_STARTDIR>, <CONFIG_DIR>=<RELPATH_CONFIG_FILES>, <CONFIG_FILE>=<PEM_CONFIG_FILE_NAME>)
|
|
13
|
+
````
|
|
14
|
+
|
|
15
|
+
On the next page you will get help setting up your `pem_config.yml`.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
# https://vitepress.dev/reference/default-theme-home-page
|
|
3
|
+
layout: home
|
|
4
|
+
|
|
5
|
+
hero:
|
|
6
|
+
name: FMU PEM
|
|
7
|
+
text: "User documentation"
|
|
8
|
+
tagline: Calculate seismic properties from rock physics models in a FMU context.
|
|
9
|
+
actions:
|
|
10
|
+
- theme: brand
|
|
11
|
+
text: ERT configuration
|
|
12
|
+
link: /ert-configuration
|
|
13
|
+
- theme: brand
|
|
14
|
+
text: PEM configuration
|
|
15
|
+
link: /pem-configuration
|
|
16
|
+
|
|
17
|
+
features:
|
|
18
|
+
- icon: 🛠️
|
|
19
|
+
title: Less maintenance
|
|
20
|
+
details: No need for custom scripts in your FMU or RMS project. PEM is maintained centrally by Equinor, and available as pre-installert ERT forward models.
|
|
21
|
+
- icon: 🤝
|
|
22
|
+
title: Shared rock physics library
|
|
23
|
+
details: FMU PEM uses the same underlying rock physics library as RokDoc plugins - ensuring consistent output across the software portfolio.
|
|
24
|
+
---
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
outline: deep
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# PEM configuration
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Create, update or change a **fmu-pem** configuration file. You can load an existing configuration file as starting point.
|
|
9
|
+
|
|
10
|
+
<div ref="el" />
|
|
11
|
+
|
|
12
|
+
<script setup>
|
|
13
|
+
import { createElement } from 'react'
|
|
14
|
+
import { createRoot } from 'react-dom/client'
|
|
15
|
+
import { ref, onMounted } from 'vue'
|
|
16
|
+
import { YamlEdit } from './yaml-edit/YamlEdit'
|
|
17
|
+
|
|
18
|
+
const el = ref()
|
|
19
|
+
onMounted(() => {
|
|
20
|
+
const root = createRoot(el.value)
|
|
21
|
+
root.render(createElement(YamlEdit, {}, null))
|
|
22
|
+
})
|
|
23
|
+
</script>
|
|
24
|
+
|
|
25
|
+
<style>
|
|
26
|
+
input.form-control, select.form-control {
|
|
27
|
+
background-color: rgb(245 245 245);
|
|
28
|
+
border-radius: 5px;
|
|
29
|
+
padding: 3px;
|
|
30
|
+
border: 1px solid;
|
|
31
|
+
border-color: #ccc;
|
|
32
|
+
box-shadow: 0 1+px 25px -5px rgb(0 0 0 / 0.05);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
input.form-control {
|
|
36
|
+
min-width: 400px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
select.form-control:hover {
|
|
40
|
+
cursor: pointer;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.dark input.form-control {
|
|
44
|
+
background-color: rgb(50 50 50);
|
|
45
|
+
border-color: #666;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.form-group {
|
|
49
|
+
margin-top: 20px;
|
|
50
|
+
margin-left: 15px;
|
|
51
|
+
padding-top: 5px;
|
|
52
|
+
padding-bottom: 5px;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.control-label {
|
|
56
|
+
font-weight: 500;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.field-description {
|
|
60
|
+
font-size: small;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
legend {
|
|
64
|
+
font-size: 20px;
|
|
65
|
+
font-weight: 700;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.btn-group {
|
|
69
|
+
max-width: 300px;
|
|
70
|
+
margin: auto;
|
|
71
|
+
margin-bottom: 20px;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.glyphicon {
|
|
75
|
+
position: relative;
|
|
76
|
+
top: 1px;
|
|
77
|
+
display: inline-block;
|
|
78
|
+
font-family: "Glyphicons Halflings";
|
|
79
|
+
font-style: normal;
|
|
80
|
+
font-weight: normal;
|
|
81
|
+
line-height: 1;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.glyphicon-plus:before {
|
|
85
|
+
content: "➕";
|
|
86
|
+
padding: 5px;
|
|
87
|
+
border-radius: 5px;
|
|
88
|
+
background-color: oklch(92.5% 0.084 155.995)
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.dark .glyphicon-plus:before {
|
|
92
|
+
background-color: oklch(39.3% 0.095 152.535)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.glyphicon-remove:before {
|
|
96
|
+
content: "🗑️";
|
|
97
|
+
padding: 5px;
|
|
98
|
+
border-radius: 5px;
|
|
99
|
+
background-color: oklch(93.6% 0.032 17.717);
|
|
100
|
+
border: 1px solid oklch(88.5% 0.062 18.334);
|
|
101
|
+
}
|
|
102
|
+
.glyphicon-arrow-up:before {
|
|
103
|
+
content: "🢁";
|
|
104
|
+
}
|
|
105
|
+
.glyphicon-arrow-down:before {
|
|
106
|
+
content: "🢃";
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.checkbox > label {
|
|
110
|
+
display: flex;
|
|
111
|
+
gap: 10px;
|
|
112
|
+
font-weight: 500;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
input[type='text']:read-only{
|
|
116
|
+
background: lightgrey;
|
|
117
|
+
cursor: not-allowed;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.text-danger {
|
|
121
|
+
color: oklch(57.7% 0.245 27.325);
|
|
122
|
+
background-color: oklch(93.6% 0.032 17.717);
|
|
123
|
+
padding: 2px;
|
|
124
|
+
padding-left: 6px;
|
|
125
|
+
padding-right: 6px;
|
|
126
|
+
border-radius: 5px;
|
|
127
|
+
width: fit-content;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
li.text-danger::marker {
|
|
131
|
+
content: "⚠";
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
</style>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg width="36" height="37" viewBox="0 0 36 37" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="FMU Logo Blue">
|
|
3
|
+
<g id="Group">
|
|
4
|
+
<path id="Vector" d="M13.8245 0.0746042C13.6503 -0.0849347 13.3694 0.0269694 13.3534 0.262875L13.0096 5.39383C12.999 5.54807 12.8665 5.66452 12.712 5.65544L6.70469 5.2978C6.4381 5.28192 6.30178 5.61083 6.50096 5.78776L17.2235 15.3246C17.4045 15.4856 17.6915 15.3578 17.6923 15.1159L17.7264 3.7818C17.7264 3.70317 17.7483 3.56631 17.69 3.51263L13.8245 0.0746042Z" fill="white"/>
|
|
5
|
+
<path id="Vector_2" d="M11.338 4.3874C11.9707 4.09286 12.2444 3.34202 11.9494 2.71037C11.6544 2.07872 10.9023 1.80543 10.2696 2.09998C9.63692 2.39452 9.36319 3.14536 9.65822 3.77701C9.95325 4.40867 10.7053 4.68195 11.338 4.3874Z" fill="white"/>
|
|
6
|
+
<path id="Vector_3" d="M15.1786 16.5906L5.36414 10.8941C5.29598 10.8548 5.18843 10.7671 5.1127 10.7913L0.19751 12.4146C-0.0281801 12.4849 -0.071349 12.7844 0.124804 12.9159L4.40382 15.7786C4.53257 15.8648 4.56741 16.0379 4.48183 16.1664L1.16843 21.1817C1.0215 21.404 1.23811 21.6868 1.49182 21.6029L15.1264 17.1002C15.3566 17.0239 15.3892 16.7123 15.1794 16.5906H15.1786Z" fill="white"/>
|
|
7
|
+
<path id="Vector_4" d="M2.7891 16.6507C2.82697 15.9543 2.29228 15.36 1.59476 15.3222C0.897243 15.2844 0.301968 15.8182 0.2641 16.5146C0.226233 17.211 0.760921 17.8053 1.45844 17.8431C2.15596 17.8809 2.75123 17.3471 2.7891 16.6507Z" fill="white"/>
|
|
8
|
+
<path id="Vector_5" d="M15.2164 19.5103L5.36783 25.1479C5.29967 25.1872 5.17017 25.2363 5.15275 25.3135L4.10306 30.3748C4.05156 30.6047 4.28937 30.7922 4.50143 30.6879L9.12428 28.4195C9.26288 28.3515 9.43101 28.4082 9.49993 28.5458L12.1938 33.9187C12.3135 34.1569 12.6664 34.1108 12.7209 33.8499L15.6329 19.8105C15.6822 19.5731 15.4277 19.3893 15.2171 19.5096L15.2164 19.5103Z" fill="white"/>
|
|
9
|
+
<path id="Vector_6" d="M9.04876 30.0958C8.46409 29.7155 7.68023 29.8803 7.29928 30.464C6.91834 31.0478 7.08344 31.8303 7.66811 32.2107C8.25279 32.591 9.03664 32.4262 9.41759 31.8424C9.79853 31.2587 9.63343 30.4761 9.04876 30.0958Z" fill="white"/>
|
|
10
|
+
<path id="Vector_7" d="M18.2376 20.6874C18.0566 20.5264 17.7696 20.6542 17.7688 20.8961L17.7348 32.2302C17.7348 32.3088 17.7128 32.4457 17.7711 32.4994L21.6366 35.9381C21.8108 36.0977 22.0918 35.9858 22.1077 35.7499L22.4515 30.6189C22.4621 30.4647 22.5947 30.3482 22.7492 30.3573L28.7565 30.715C29.023 30.7308 29.1594 30.4019 28.9602 30.225L18.2376 20.6882V20.6874Z" fill="white"/>
|
|
11
|
+
<path id="Vector_8" d="M25.1918 33.7463C25.8244 33.4517 26.0982 32.7009 25.8031 32.0693C25.5081 31.4376 24.7561 31.1643 24.1234 31.4589C23.4907 31.7534 23.217 32.5042 23.512 33.1359C23.807 33.7676 24.5591 34.0408 25.1918 33.7463Z" fill="white"/>
|
|
12
|
+
<path id="Vector_9" d="M35.3362 23.1371L31.0572 20.2745C30.9285 20.1883 30.8936 20.0151 30.9792 19.8866L34.2926 14.8713C34.4395 14.649 34.2229 14.3663 33.9692 14.4502L20.3347 18.9528C20.1044 19.0292 20.0719 19.3407 20.2817 19.4624L30.0961 25.1589C30.1643 25.1983 30.2718 25.286 30.3476 25.2618L35.2635 23.6384C35.4892 23.5681 35.5324 23.2687 35.3362 23.1371Z" fill="white"/>
|
|
13
|
+
<path id="Vector_10" d="M32.6711 19.5156C32.6332 20.2119 33.1679 20.8062 33.8654 20.844C34.5629 20.8819 35.1582 20.348 35.1961 19.6517C35.2339 18.9553 34.6993 18.361 34.0017 18.3232C33.3042 18.2854 32.709 18.8192 32.6711 19.5156Z" fill="white"/>
|
|
14
|
+
<path id="Vector_11" d="M20.2438 16.5451L30.0923 10.9075C30.1605 10.8682 30.29 10.819 30.3074 10.7419L31.3571 5.68053C31.4086 5.45067 31.1708 5.26316 30.9587 5.3675L26.3359 7.63583C26.1973 7.70387 26.0292 7.64717 25.9602 7.50955L23.2663 2.13665C23.1467 1.89847 22.7938 1.9446 22.7392 2.20545L19.8272 16.2449C19.778 16.4823 20.0325 16.666 20.243 16.5458L20.2438 16.5451Z" fill="white"/>
|
|
15
|
+
<path id="Vector_12" d="M28.1057 5.48115C28.5683 4.95916 28.5194 4.16163 27.9966 3.69982C27.4737 3.238 26.6749 3.28678 26.2123 3.80877C25.7497 4.33075 25.7986 5.12828 26.3214 5.5901C26.8443 6.05191 27.6431 6.00313 28.1057 5.48115Z" fill="white"/>
|
|
16
|
+
</g>
|
|
17
|
+
</g>
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg width="36" height="37" viewBox="0 0 36 37" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g id="FMU Logo Blue">
|
|
3
|
+
<g id="Group">
|
|
4
|
+
<path id="Vector" d="M13.8245 0.0746042C13.6503 -0.0849347 13.3694 0.0269694 13.3534 0.262875L13.0096 5.39383C12.999 5.54807 12.8665 5.66452 12.712 5.65544L6.70469 5.2978C6.4381 5.28192 6.30178 5.61083 6.50096 5.78776L17.2235 15.3246C17.4045 15.4856 17.6915 15.3578 17.6923 15.1159L17.7264 3.7818C17.7264 3.70317 17.7483 3.56631 17.69 3.51263L13.8245 0.0746042Z" fill="#3c3c43"/>
|
|
5
|
+
<path id="Vector_2" d="M11.338 4.3874C11.9707 4.09286 12.2444 3.34202 11.9494 2.71037C11.6544 2.07872 10.9023 1.80543 10.2696 2.09998C9.63692 2.39452 9.36319 3.14536 9.65822 3.77701C9.95325 4.40867 10.7053 4.68195 11.338 4.3874Z" fill="#3c3c43"/>
|
|
6
|
+
<path id="Vector_3" d="M15.1786 16.5906L5.36414 10.8941C5.29598 10.8548 5.18843 10.7671 5.1127 10.7913L0.19751 12.4146C-0.0281801 12.4849 -0.071349 12.7844 0.124804 12.9159L4.40382 15.7786C4.53257 15.8648 4.56741 16.0379 4.48183 16.1664L1.16843 21.1817C1.0215 21.404 1.23811 21.6868 1.49182 21.6029L15.1264 17.1002C15.3566 17.0239 15.3892 16.7123 15.1794 16.5906H15.1786Z" fill="#3c3c43"/>
|
|
7
|
+
<path id="Vector_4" d="M2.7891 16.6507C2.82697 15.9543 2.29228 15.36 1.59476 15.3222C0.897243 15.2844 0.301968 15.8182 0.2641 16.5146C0.226233 17.211 0.760921 17.8053 1.45844 17.8431C2.15596 17.8809 2.75123 17.3471 2.7891 16.6507Z" fill="#3c3c43"/>
|
|
8
|
+
<path id="Vector_5" d="M15.2164 19.5103L5.36783 25.1479C5.29967 25.1872 5.17017 25.2363 5.15275 25.3135L4.10306 30.3748C4.05156 30.6047 4.28937 30.7922 4.50143 30.6879L9.12428 28.4195C9.26288 28.3515 9.43101 28.4082 9.49993 28.5458L12.1938 33.9187C12.3135 34.1569 12.6664 34.1108 12.7209 33.8499L15.6329 19.8105C15.6822 19.5731 15.4277 19.3893 15.2171 19.5096L15.2164 19.5103Z" fill="#3c3c43"/>
|
|
9
|
+
<path id="Vector_6" d="M9.04876 30.0958C8.46409 29.7155 7.68023 29.8803 7.29928 30.464C6.91834 31.0478 7.08344 31.8303 7.66811 32.2107C8.25279 32.591 9.03664 32.4262 9.41759 31.8424C9.79853 31.2587 9.63343 30.4761 9.04876 30.0958Z" fill="#3c3c43"/>
|
|
10
|
+
<path id="Vector_7" d="M18.2376 20.6874C18.0566 20.5264 17.7696 20.6542 17.7688 20.8961L17.7348 32.2302C17.7348 32.3088 17.7128 32.4457 17.7711 32.4994L21.6366 35.9381C21.8108 36.0977 22.0918 35.9858 22.1077 35.7499L22.4515 30.6189C22.4621 30.4647 22.5947 30.3482 22.7492 30.3573L28.7565 30.715C29.023 30.7308 29.1594 30.4019 28.9602 30.225L18.2376 20.6882V20.6874Z" fill="#3c3c43"/>
|
|
11
|
+
<path id="Vector_8" d="M25.1918 33.7463C25.8244 33.4517 26.0982 32.7009 25.8031 32.0693C25.5081 31.4376 24.7561 31.1643 24.1234 31.4589C23.4907 31.7534 23.217 32.5042 23.512 33.1359C23.807 33.7676 24.5591 34.0408 25.1918 33.7463Z" fill="#3c3c43"/>
|
|
12
|
+
<path id="Vector_9" d="M35.3362 23.1371L31.0572 20.2745C30.9285 20.1883 30.8936 20.0151 30.9792 19.8866L34.2926 14.8713C34.4395 14.649 34.2229 14.3663 33.9692 14.4502L20.3347 18.9528C20.1044 19.0292 20.0719 19.3407 20.2817 19.4624L30.0961 25.1589C30.1643 25.1983 30.2718 25.286 30.3476 25.2618L35.2635 23.6384C35.4892 23.5681 35.5324 23.2687 35.3362 23.1371Z" fill="#3c3c43"/>
|
|
13
|
+
<path id="Vector_10" d="M32.6711 19.5156C32.6332 20.2119 33.1679 20.8062 33.8654 20.844C34.5629 20.8819 35.1582 20.348 35.1961 19.6517C35.2339 18.9553 34.6993 18.361 34.0017 18.3232C33.3042 18.2854 32.709 18.8192 32.6711 19.5156Z" fill="#3c3c43"/>
|
|
14
|
+
<path id="Vector_11" d="M20.2438 16.5451L30.0923 10.9075C30.1605 10.8682 30.29 10.819 30.3074 10.7419L31.3571 5.68053C31.4086 5.45067 31.1708 5.26316 30.9587 5.3675L26.3359 7.63583C26.1973 7.70387 26.0292 7.64717 25.9602 7.50955L23.2663 2.13665C23.1467 1.89847 22.7938 1.9446 22.7392 2.20545L19.8272 16.2449C19.778 16.4823 20.0325 16.666 20.243 16.5458L20.2438 16.5451Z" fill="#3c3c43"/>
|
|
15
|
+
<path id="Vector_12" d="M28.1057 5.48115C28.5683 4.95916 28.5194 4.16163 27.9966 3.69982C27.4737 3.238 26.6749 3.28678 26.2123 3.80877C25.7497 4.33075 25.7986 5.12828 26.3214 5.5901C26.8443 6.05191 27.6431 6.00313 28.1057 5.48115Z" fill="#3c3c43"/>
|
|
16
|
+
</g>
|
|
17
|
+
</g>
|
|
18
|
+
</svg>
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import Form from "@rjsf/core";
|
|
2
|
-
|
|
3
3
|
import YAML from "yaml";
|
|
4
4
|
import validator from "@rjsf/validator-ajv8";
|
|
5
5
|
|
|
6
|
+
import { pemSchema } from "./schema";
|
|
7
|
+
|
|
6
8
|
import {
|
|
7
9
|
Button,
|
|
8
10
|
Icon,
|
|
@@ -11,16 +13,15 @@ import {
|
|
|
11
13
|
Snackbar,
|
|
12
14
|
Switch
|
|
13
15
|
} from "@equinor/eds-core-react";
|
|
14
|
-
import { upload, file_description, copy } from "@equinor/eds-icons";
|
|
15
16
|
|
|
16
|
-
import {
|
|
17
|
-
import React from "react";
|
|
17
|
+
import { copy } from "@equinor/eds-icons";
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
|
|
20
|
+
export const YamlEdit = () => {
|
|
20
21
|
const [validInput, setValidInput] = React.useState(false);
|
|
21
22
|
const [dialogOpen, setDialogOpen] = React.useState(false);
|
|
22
23
|
const [snackbarOpen, setSnackbarOpen] = React.useState(false);
|
|
23
|
-
const [populateDefault, setPopulateDefault] = React.useState(
|
|
24
|
+
const [populateDefault, setPopulateDefault] = React.useState(true);
|
|
24
25
|
|
|
25
26
|
const [initialConfig, setInitialConfig] = React.useState({});
|
|
26
27
|
|
|
@@ -31,18 +32,10 @@ function App() {
|
|
|
31
32
|
YAML.stringify(userInputRef.current);
|
|
32
33
|
|
|
33
34
|
return (
|
|
34
|
-
<div
|
|
35
|
-
<div className="bg-slate-700 p-4 flex gap-20 items-center shadow-md">
|
|
36
|
-
<div className="text-white">
|
|
37
|
-
Create, update or change a <span className="font-bold">fmu-pem</span>{" "}
|
|
38
|
-
configuration file. You can load an existing configuration file as
|
|
39
|
-
starting point.
|
|
40
|
-
</div>
|
|
41
|
-
</div>
|
|
35
|
+
<div>
|
|
42
36
|
<div className="flex w-full justify-center my-10 gap-10">
|
|
43
|
-
<
|
|
44
|
-
|
|
45
|
-
color="secondary"
|
|
37
|
+
<button
|
|
38
|
+
className="flex gap-2 font-bold items-center shadow p-1 rounded-lg bg-gray-100 hover:bg-gray-50 dark:bg-gray-800"
|
|
46
39
|
onClick={() => {
|
|
47
40
|
const input = document.createElement("input");
|
|
48
41
|
input.type = "file";
|
|
@@ -68,13 +61,12 @@ function App() {
|
|
|
68
61
|
input.click();
|
|
69
62
|
}}
|
|
70
63
|
>
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
</Button>
|
|
64
|
+
Load config (YAML)
|
|
65
|
+
</button>
|
|
66
|
+
<button
|
|
67
|
+
className="flex gap-2 font-bold items-center shadow p-1 rounded-lg bg-gray-100 hover:bg-gray-50" onClick={() => setDialogOpen(true)}>
|
|
68
|
+
Config output (YAML)
|
|
69
|
+
</button>
|
|
78
70
|
<Dialog
|
|
79
71
|
open={dialogOpen}
|
|
80
72
|
onClose={() => {
|
|
@@ -82,17 +74,17 @@ function App() {
|
|
|
82
74
|
setSnackbarOpen(false);
|
|
83
75
|
}}
|
|
84
76
|
isDismissable={true}
|
|
85
|
-
|
|
77
|
+
style={{width: 1000, maxHeight: "90vh"}}
|
|
86
78
|
>
|
|
87
79
|
<Dialog.Header>
|
|
88
80
|
<Dialog.Title>YAML output</Dialog.Title>
|
|
89
81
|
</Dialog.Header>
|
|
90
|
-
<Dialog.CustomContent
|
|
82
|
+
<Dialog.CustomContent>
|
|
91
83
|
<TextField
|
|
92
84
|
id="yaml-content"
|
|
93
85
|
multiline={true}
|
|
94
86
|
placeholder={yamlOutput}
|
|
95
|
-
rowsMax={
|
|
87
|
+
rowsMax={35}
|
|
96
88
|
readOnly={true}
|
|
97
89
|
/>
|
|
98
90
|
<Button
|
|
@@ -114,11 +106,11 @@ function App() {
|
|
|
114
106
|
</Snackbar>
|
|
115
107
|
</Dialog.CustomContent>
|
|
116
108
|
</Dialog>
|
|
117
|
-
<Switch label="Populate with default values" onChange={(e) => setPopulateDefault(e.target.checked)} />
|
|
109
|
+
<Switch label="Populate with default values" checked={populateDefault} onChange={(e) => setPopulateDefault(e.target.checked)} />
|
|
118
110
|
|
|
119
|
-
</div>
|
|
111
|
+
</div>
|
|
120
112
|
<div className="flex justify-center my-20">
|
|
121
|
-
<div className="p-10 shadow-lg rounded bg-slate-50
|
|
113
|
+
<div className="p-10 shadow-lg rounded bg-slate-50 border-2 border-slate-50" style={{minWidth: 800}}>
|
|
122
114
|
<Form
|
|
123
115
|
schema={pemSchema}
|
|
124
116
|
validator={validator}
|
|
@@ -149,5 +141,3 @@ function App() {
|
|
|
149
141
|
</div>
|
|
150
142
|
);
|
|
151
143
|
}
|
|
152
|
-
|
|
153
|
-
export default App;
|