diff --git a/.github/workflows/build_release.yml b/.github/workflows/build_release.yml index 7c1c5f2b7..96cbed3eb 100644 --- a/.github/workflows/build_release.yml +++ b/.github/workflows/build_release.yml @@ -56,13 +56,14 @@ jobs: run: | echo "SHORT_SHA=$(echo ${{ github.sha }} | cut -c1-7)" >> $GITHUB_ENV + # Keep in sync with the release used to test local builds - name: Set up MATLAB - uses: matlab-actions/setup-matlab@v2 + uses: matlab-actions/setup-matlab@v3 with: - release: R2024a + release: R2025b - name: Build Toolbox - uses: matlab-actions/run-command@v2 + uses: matlab-actions/run-command@v3 with: command: addpath('scripts'); build_release @@ -101,7 +102,7 @@ jobs: if-no-files-found: error - name: Create Release - uses: softprops/action-gh-release@v1 + uses: softprops/action-gh-release@v2 if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/develop' with: files: | diff --git a/.github/workflows/code_compatibility_report.yml b/.github/workflows/code_compatibility_report.yml index 0fecf63ff..523113252 100644 --- a/.github/workflows/code_compatibility_report.yml +++ b/.github/workflows/code_compatibility_report.yml @@ -14,7 +14,7 @@ jobs: matrix: # os: [macos-13, ubuntu-latest, windows-latest] os: ["ubuntu-22.04"] - matlab-version: [R2022b, R2023a, R2023b, R2024a, R2024b, R2025a, latest] + matlab-version: [R2023b, R2024a, R2024b, R2025a, R2025b, R2026a, R2026b] runs-on: ${{ matrix.os }} diff --git a/.github/workflows/matlab_only_examples.yml b/.github/workflows/matlab_only_examples.yml new file mode 100644 index 000000000..ce569a61d --- /dev/null +++ b/.github/workflows/matlab_only_examples.yml @@ -0,0 +1,59 @@ +name: MHKiT-MATLAB Native Examples + +# Execute example live scripts (examples/*.mlx) that run native MATLAB code only + +on: + workflow_dispatch: {} + push: + branches: [ master, develop ] + paths: + - 'mhkit/**/*.m' + - 'examples/**' + - '.github/workflows/matlab_only_examples.yml' + pull_request: + branches: [ master, develop ] + paths: + - 'mhkit/**/*.m' + - 'examples/**' + - '.github/workflows/matlab_only_examples.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + examples: + name: ${{ matrix.matlab-version }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + # Examples are slower than unit tests, so only the oldest and newest + # supported releases are exercised per OS. + include: + - os: macos-15 + matlab-version: R2023b + - os: macos-15 + matlab-version: R2026b + - os: windows-2025 + matlab-version: R2023b + - os: windows-2025 + matlab-version: R2026b + + steps: + - name: Check out MHKiT-MATLAB + uses: actions/checkout@v7 + + - name: Set up MATLAB + uses: matlab-actions/setup-matlab@v3 + with: + release: ${{ matrix.matlab-version }} + + - name: Run MATLAB only examples + uses: matlab-actions/run-command@v3 + with: + command: | + addpath(fullfile("mhkit", "tests")); + results = runMatlabOnlyExamples(); + assertSuccess(results); + startup-options: -noFigureWindows diff --git a/.github/workflows/matlab_only_unit_tests.yml b/.github/workflows/matlab_only_unit_tests.yml new file mode 100644 index 000000000..38f366919 --- /dev/null +++ b/.github/workflows/matlab_only_unit_tests.yml @@ -0,0 +1,56 @@ +name: MHKiT-MATLAB MATLAB Only Modules Unit Tests + +# Runs the unit tests for modules that are implemented in MATLAB only +# +# The list of test files is in mhkit/tests/runMatlabOnlyTests.m +# Run locally with: +# - MacOS: scripts/run_matlab_only_tests_macos.sh +# - Windows: scripts\run_matlab_only_tests_windows.ps1 + +on: + workflow_dispatch: {} + push: + branches: [ master, develop ] + paths: + - 'mhkit/**/*.m' + - 'examples/data/**' + - '.github/workflows/matlab_only_unit_tests.yml' + pull_request: + branches: [ master, develop ] + paths: + - 'mhkit/**/*.m' + - 'examples/data/**' + - '.github/workflows/matlab_only_unit_tests.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + unit_tests: + name: ${{ matrix.matlab-version }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + # Linux is intentionally omitted, may be added back in the future. + os: [macos-15, windows-2025] + matlab-version: [R2023b, R2024a, R2024b, R2025a, R2025b, R2026a, R2026b] + + steps: + - name: Check out MHKiT-MATLAB + uses: actions/checkout@v7 + + - name: Set up MATLAB + uses: matlab-actions/setup-matlab@v3 + with: + release: ${{ matrix.matlab-version }} + + - name: Run MATLAB only unit tests + uses: matlab-actions/run-command@v3 + with: + command: | + addpath(fullfile("mhkit", "tests")); + results = runMatlabOnlyTests(); + assertSuccess(results); + startup-options: -noFigureWindows diff --git a/.github/workflows/unix_unit_tests.yml b/.github/workflows/unix_unit_tests.yml index 403adacb2..96db2ba7e 100644 --- a/.github/workflows/unix_unit_tests.yml +++ b/.github/workflows/unix_unit_tests.yml @@ -1,336 +1,96 @@ name: MHKiT-MATLAB Unix Unit Tests -# Only run tests when MATLAB files or this workflow file changes +# Runs the full unit test suite, including tests that call MHKiT-Python +# +# Run locally with: +# - MacOS: scripts/run_python_tests_macos.sh /path/to/python +# +# Linux is intentionally omitted. Recent MATLAB installers require a newer +# libstdc++ than ubuntu-22.04 provides, and MATLAB's bundled libraries conflict +# with the conda environment. It may be added back in the future. + on: + workflow_dispatch: {} push: branches: [ master, develop ] paths: - 'mhkit/**/*.m' - - 'examples/**/*.m' + - 'mhkit_python_utils/**' + - 'examples/data/**' + - 'pyproject.toml' - '.github/workflows/unix_unit_tests.yml' pull_request: branches: [ master, develop ] paths: - 'mhkit/**/*.m' - - 'examples/**/*.m' + - 'mhkit_python_utils/**' + - 'examples/data/**' + - 'pyproject.toml' - '.github/workflows/unix_unit_tests.yml' -jobs: - cache_population: - strategy: - fail-fast: false - - matrix: - os: ["ubuntu-22.04"] - python-version: ["3.11"] - matlab-version: [R2023b] +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true +jobs: + unit_tests: + name: ${{ matrix.matlab-version }}, Python ${{ matrix.python-version }}, MHKiT-Python ${{ matrix.mhkit-python-version }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} - - env: - mhkit-python-dir: "MHKiT-Python" - MHKIT_PYTHON_VERSION: '0.9.0' - steps: - - name: Install & Setup Miniconda - uses: conda-incubator/setup-miniconda@v3 - with: - miniconda-version: latest - auto-update-conda: true - python-version: ${{ matrix.python-version }} - activate-environment: mhkit_conda_env - channels: conda-forge,defaults - - - name: "Conda install netcdf4, hdf5" - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - conda install numpy cython pip pytest hdf5 libnetcdf cftime netcdf4 - - - name: Fix libstdc++ compatibility - if: matrix.os == 'ubuntu-22.04' - run: | - # Force MATLAB to use system libstdc++ - echo "LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/lib/x86_64-linux-gnu/libstdc++.so.6" >> "$GITHUB_ENV" - - - name: Check out MHKiT-MATLAB - uses: actions/checkout@v4 - - - name: pip install mhkit from pypi - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - pip install mhkit==$MHKIT_PYTHON_VERSION - - - name: pip install mhkit-python-utils module from source - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - pip install -e . - - - name: Pin scipy version - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - pip uninstall -y scipy - pip install scipy==1.12.0 - - - name: List installed pip modules - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - pip freeze - - # Create the cache and add a dummy file - # The dummy file ensures that the artifact download - - name: Setup mhkit_webread_cache - shell: bash -l {0} - run: | - mkdir mhkit_webread_cache - touch mhkit_webread_cache/test.txt - echo "Hello World" > mhkit_webread_cache/test.txt - - - name: Set up MATLAB - uses: matlab-actions/setup-matlab@v2 - with: - release: ${{ matrix.matlab-version }} - - # OutOfProcess is required to properly call netcdf/hdf5 and works reliably on macos and ubuntu - - name: Configure MATLAB Python Environment - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - printf 'pyenv(Version="%s", ExecutionMode="OutOfProcess")\n' $(python -c "import sys; print(sys.executable)") > run.m - - - name: Add MATLAB test commands - shell: bash - run: echo "version, - addpath(genpath('mhkit')), - import matlab.unittest.TestSuite, - import matlab.unittest.TestRunner, - testFolder = ['mhkit' filesep 'tests'], - suite = TestSuite.fromFolder(testFolder), - runner = TestRunner.withTextOutput, - results = runner.run(suite), - assertSuccess(results)" >> run.m - - - name: Output run.m - shell: bash - run: cat run.m - - - name: Run MATLAB Unit Tests - uses: matlab-actions/run-command@v2 - with: - command: run - startup-options: -noFigureWindows - - - name: Save mhkit_webread_cache directory as an artifact - uses: actions/upload-artifact@v4 - with: - # GitHub Action "Name" of artifact - name: mhkit_webread_cache - # Filesystem path of directory - path: mhkit_webread_cache - - main: - needs: cache_population strategy: fail-fast: false - matrix: - os: [macos-13, "ubuntu-22.04"] - python-version: ["3.10", 3.11, 3.12] - # Note: It is preferred to use an actual release name as opposed to 'latest' - matlab-version: [R2022b, R2023a, R2023b, R2024a, R2024b] - mhkit-python-version: ["0.9.0"] - exclude: - - python-version: "3.10" # cache_population job - matlab-version: R2022b - os: "ubuntu-22.04" - # Python 3.12 + MATLAB incompatability - - matlab-version: R2024a - python-version: 3.12 - - matlab-version: R2023b - python-version: 3.12 - - matlab-version: R2023a - python-version: 3.12 - - matlab-version: R2022b - python-version: 3.12 - # Python 3.11 + MATLAB incompatability - - matlab-version: R2023a - python-version: 3.11 - - matlab-version: R2022b - python-version: 3.11 - # Specific MATLAB/Python/OS Errors - # Error using _cythonized_array_utils>init - # scipy.linalg._cythonized_array_utils (line 1) - # Python Error: ValueError: numpy.dtype size changed, may indicate binary - # incompatibility. Expected 96 from C header, got 88 from PyObject - - matlab-version: R2024b - python-version: 3.12 - os: macos-13 - # Unable to resolve the name 'py.mhkit.wave.resource.jonswap_spectrum' - - matlab-version: R2023a - python-version: 3.10 - os: "ubuntu-22.04" - - runs-on: ${{ matrix.os }} + os: [macos-15] + matlab-version: [R2025b, R2026b] + python-version: ["3.12"] + mhkit-python-version: ["1.1.2"] - env: - mhkit-python-dir: "MHKiT-Python" - MHKIT_PYTHON_VERSION: ${{ matrix.mhkit-python-version }} steps: - name: Check out MHKiT-MATLAB - uses: actions/checkout@v4 + uses: actions/checkout@v7 - - name: Install & Setup Miniconda + # conda-forge provides netcdf4, hdf5, and BLAS builds that are consistent + # with each other, which avoids native library conflicts with MATLAB + - name: Set up conda environment uses: conda-incubator/setup-miniconda@v3 with: - miniconda-version: latest - auto-update-conda: true + miniforge-version: latest python-version: ${{ matrix.python-version }} activate-environment: mhkit_conda_env - channels: conda-forge,defaults - - # This is necessary to fix any issues with netcdf4 and hdf5 headers - - name: "Conda install netcdf4, hdf5" - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - conda install numpy cython pip pytest hdf5 libnetcdf cftime netcdf4 - - - name: Fix libstdc++ compatibility - if: matrix.os == 'ubuntu-22.04' - run: | - # Force MATLAB to use system libstdc++ - echo "LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6:/lib/x86_64-linux-gnu/libstdc++.so.6" >> "$GITHUB_ENV" - - # - name: Setup MATLAB Path on Ubuntu - # if: ${{ matrix.os == '"ubuntu-22.04"' }} - # run: echo "LD_PRELOAD=/lib/x86_64-linux-gnu/libstdc++.so.6" >> "$GITHUB_ENV" - - - name: Print Python executable - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - python -c "import sys; print(sys.executable)" + channels: conda-forge + conda-remove-defaults: true - - name: Print Python Version + - name: Install MHKiT-Python and mhkit_python_utils shell: bash -l {0} run: | - conda activate mhkit_conda_env - python --version - - - name: pip install mhkit from pypi - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - export PATH="${CONDA_PREFIX}/bin:${CONDA_PREFIX}/Library/bin:$PATH" # so setup.py finds nc-config - pip install mhkit==$MHKIT_PYTHON_VERSION - - - name: pip upgrade netcdf4 - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - export PATH="${CONDA_PREFIX}/bin:${CONDA_PREFIX}/Library/bin:$PATH" # so setup.py finds nc-config - pip install --upgrade netcdf4 - - - name: pip install mhkit-python-utils module from source - shell: bash -l {0} - run: | - conda activate mhkit_conda_env + conda install -y "numpy>=2" pip netcdf4 hdf5 + # pecos 1.0.0 (used by the qc module) check_delta fails with pandas 3 + pip install "mhkit[all]==${{ matrix.mhkit-python-version }}" "pandas<3" pip install -e . - - - name: Pin scipy version - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - pip uninstall -y scipy - pip install scipy==1.12.0 - - - name: List installed pip modules - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - pip freeze - - - name: Print MHKiT-Python Version - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - python -c "import mhkit; print(mhkit.__version__)" - - - name: Verify MHKiT-Python Operation - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - python -c "import mhkit; [ED, AP] = mhkit.river.performance.circular(30); print(ED); print(AP);" - - - name: Download mhkit_webread_cache artifact - uses: actions/download-artifact@v4 - with: - name: mhkit_webread_cache - path: mhkit_webread_cache - - - name: Display structure mhkit_webread_cache - run: ls -R - working-directory: . + pip list + python -c "import mhkit, mhkit_python_utils; print('MHKiT-Python', mhkit.__version__)" + echo "MHKIT_PYTHON_EXE=$(python -c 'import sys; print(sys.executable)')" >> "$GITHUB_ENV" - name: Set up MATLAB - uses: matlab-actions/setup-matlab@v2 + uses: matlab-actions/setup-matlab@v3 with: release: ${{ matrix.matlab-version }} - - name: Configure OpenSSL for MacOS/MATLAB - if: matrix.os == 'macos-13' - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - conda install openssl=="3.0.*" - CONDA_LIB_PATH=$(python -c "import sys; import os; print(os.path.join(os.path.dirname(sys.executable), 'lib'))") - export DYLD_LIBRARY_PATH="$CONDA_LIB_PATH:$DYLD_LIBRARY_PATH" - echo "export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH" >> $GITHUB_ENV - - - name: Add Python Dir to Path - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - printf "getenv('path')\nsetenv('path', ['%s;', getenv('path')])\ngetenv('path')\n" $(python -c "import sys; import os; print(os.path.dirname(sys.executable))") >> run.m - - # OutOfProcess is required to properly call netcdf/hdf5 and works reliably on macos and ubuntu - - name: Configure MATLAB Python Environment - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - printf 'pyenv(Version="%s", ExecutionMode="OutOfProcess")\n' $(python -c "import sys; print(sys.executable)") >> run.m - # Pass dynamic library paths to MATLAB only on macOS - if [[ $OSTYPE == "darwin"* ]]; then - echo "setenv('DYLD_LIBRARY_PATH', getenv('DYLD_LIBRARY_PATH'));" >> run.m - fi - - - name: Add MATLAB test commands - shell: bash - run: echo "version, - addpath(genpath('mhkit')), - import matlab.unittest.TestSuite, - import matlab.unittest.TestRunner, - testFolder = ['mhkit' filesep 'tests'], - suite = TestSuite.fromFolder(testFolder), - runner = TestRunner.withTextOutput, - results = runner.run(suite), - assertSuccess(results)" >> run.m - - - name: Output run.m - shell: bash - run: cat run.m - - # This is a good idea but does not work because you cannot explicitly set the python execution mode - # - name: Run MHKiT-MATLAB Unit Tests - # uses: matlab-actions/run-tests@v1 - # with: - # select-by-folder: mhkit/tests + # Fails fast with a readable summary if MATLAB cannot import the Python + # modules, usually from native library conflicts between MATLAB and Python + - name: Check Python imports from MATLAB + uses: matlab-actions/run-command@v3 + with: + command: | + addpath(fullfile("mhkit", "tests")); + runPythonTests(getenv("MHKIT_PYTHON_EXE"), ImportCheckOnly=true); + startup-options: -noFigureWindows - - name: Run MATLAB Unit Tests - uses: matlab-actions/run-command@v2 + - name: Run MATLAB unit tests + uses: matlab-actions/run-command@v3 with: - command: run + command: | + addpath(fullfile("mhkit", "tests")); + results = runPythonTests(getenv("MHKIT_PYTHON_EXE")); + disp(table(results)); + assertSuccess(results); startup-options: -noFigureWindows diff --git a/.github/workflows/windows_unit_tests.yml b/.github/workflows/windows_unit_tests.yml index 5890e2323..12f69c4de 100644 --- a/.github/workflows/windows_unit_tests.yml +++ b/.github/workflows/windows_unit_tests.yml @@ -1,312 +1,95 @@ name: MHKiT-MATLAB Windows Unit Tests -# Only run tests when MATLAB files or this workflow file changes +# Runs the full unit test suite, including tests that call MHKiT-Python +# +# Run locally with: +# - Windows: scripts\run_python_tests_windows.ps1 C:\path\to\python.exe +# +# The script and this workflow both call mhkit/tests/runPythonTests.m. This +# workflow runs MATLAB with run-command instead of the script because public +# project MATLAB licensing on GitHub Actions requires the MATLAB actions. + on: + workflow_dispatch: {} push: branches: [ master, develop ] paths: - 'mhkit/**/*.m' - - 'examples/**/*.m' + - 'mhkit_python_utils/**' + - 'examples/data/**' + - 'pyproject.toml' - '.github/workflows/windows_unit_tests.yml' pull_request: branches: [ master, develop ] paths: - 'mhkit/**/*.m' - - 'examples/**/*.m' + - 'mhkit_python_utils/**' + - 'examples/data/**' + - 'pyproject.toml' - '.github/workflows/windows_unit_tests.yml' +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + jobs: - cache_population: + unit_tests: + name: ${{ matrix.matlab-version }}, Python ${{ matrix.python-version }}, MHKiT-Python ${{ matrix.mhkit-python-version }} on ${{ matrix.os }} + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [windows-latest] - python-version: ["3.11"] - matlab-version: [R2023b] - runs-on: ${{ matrix.os }} + os: [windows-2025] + matlab-version: [R2025b, R2026b] + python-version: ["3.12"] + mhkit-python-version: ["1.1.2"] - env: - mhkit-python-dir: "MHKiT-Python" - MHKIT_PYTHON_VERSION: '0.9.0' steps: - - name: Install/Setup Miniconda - uses: conda-incubator/setup-miniconda@v3 + - name: Check out MHKiT-MATLAB + uses: actions/checkout@v7 + + # Use python.org Python and PyPI wheels, not conda. python.org builds + # compile expat into pyexpat, and the PyPI netCDF4 and h5py wheels bundle + # renamed copies of their DLLs. conda-forge links these to shared DLLs + # (libexpat.dll, hdf5.dll) that clash with the versions MATLAB loads, + # causing "DLL load failed while importing pyexpat" + - name: Set up Python + uses: actions/setup-python@v5 with: - miniconda-version: latest - auto-update-conda: true python-version: ${{ matrix.python-version }} - activate-environment: mhkit_conda_env - channels: conda-forge,defaults - # This is necessary to fix any issues with netcdf4 and hdf5 headers - - name: Conda install mhkit - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - conda install mhkit==$MHKIT_PYTHON_VERSION - - name: Check out MHKiT-MATLAB - uses: actions/checkout@v4 - - - name: pip install mhkit-python-utils module from source - shell: bash -l {0} + - name: Install MHKiT-Python and mhkit_python_utils + shell: bash run: | - conda activate mhkit_conda_env + python -m pip install --upgrade pip + # pecos 1.0.0 (used by the qc module) check_delta fails with pandas 3 + pip install "mhkit[all]==${{ matrix.mhkit-python-version }}" "pandas<3" pip install -e . - - - name: List Installed Python Packages using Conda - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - conda list - - - name: List Installed Python Packages using pip - shell: bash -l {0} - run: | - conda activate mhkit_conda_env pip list - - - name: Check out MHKiT-MATLAB - uses: actions/checkout@v4 - - # - name: Pin scipy version - # shell: bash -l {0} - # run: | - # conda activate mhkit_conda_env - # pip uninstall -y scipy - # pip install scipy==1.10.1 - - # Create the cache and add a dummy file - # The dummy file ensures that the artifact download - - name: Setup mhkit_webread_cache - shell: bash -l {0} - run: | - mkdir mhkit_webread_cache - touch mhkit_webread_cache/test.txt - echo "Hello World" > mhkit_webread_cache/test.txt + python -c "import mhkit, mhkit_python_utils; print('MHKiT-Python', mhkit.__version__)" + echo "MHKIT_PYTHON_EXE=$(python -c 'import sys; print(sys.executable)')" >> "$GITHUB_ENV" - name: Set up MATLAB - uses: matlab-actions/setup-matlab@v2 + uses: matlab-actions/setup-matlab@v3 with: release: ${{ matrix.matlab-version }} - - name: Set PYBIND11 GIL workaround - # if: ${{ matrix.matlab-version == 'R2025a' }} - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - export PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF=1 - echo "PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF=1" >> $GITHUB_ENV - - - name: Configure MATLAB pyenv Version and ExecutionMode - if: ${{ matrix.os == 'windows-latest' }} - shell: pwsh - run: > - "pyenv(Version='{0}', ExecutionMode='OutOfProcess')" -f (python -c "import sys; print(sys.executable)") | Out-File -FilePath run.m - - - name: Check Python System Path - shell: bash -l {0} - run: | - echo "py.sys.path" >> run.m - - - name: Add MATLAB test commands - shell: bash - run: echo "version, - addpath(genpath('mhkit')), - import matlab.unittest.TestSuite, - import matlab.unittest.TestRunner, - testFolder = ['mhkit' filesep 'tests'], - suite = TestSuite.fromFolder(testFolder), - runner = TestRunner.withTextOutput, - results = runner.run(suite), - assertSuccess(results)" >> run.m - - - name: Output Run.m - shell: bash - run: cat run.m - - - name: Run MHKiT-MATLAB Unit Tests - uses: matlab-actions/run-command@v2 + # Fails fast with a readable summary if MATLAB cannot import the Python + # modules, usually from native library conflicts between MATLAB and Python + - name: Check Python imports from MATLAB + uses: matlab-actions/run-command@v3 with: - command: run + command: | + addpath(fullfile("mhkit", "tests")); + runPythonTests(getenv("MHKIT_PYTHON_EXE"), ImportCheckOnly=true); startup-options: -noFigureWindows - - name: Save mhkit_webread_cache directory as an artifact - uses: actions/upload-artifact@v4 - with: - # GitHub Action "Name" of artifact - name: mhkit_webread_cache - # Filesystem path of directory - path: mhkit_webread_cache - - main: - needs: cache_population - strategy: - fail-fast: false - matrix: - os: [windows-latest] - python-version: ["3.10", 3.11, 3.12] - # matlab-version: [R2022b, R2023a, R2023b, R2024a, R2024b] - matlab-version: [R2023a, R2023b, R2024a, R2024b] - mhkit-python-version: ["0.9.0"] - exclude: - # Cache population job - - matlab-version: R2023b - python-version: "3.10" - # - matlab-version: R2023b - # python-version: 3.8 - # Python 3.12 + MATLAB incompatability - - matlab-version: R2024a - python-version: 3.12 - - matlab-version: R2023b - python-version: 3.12 - - matlab-version: R2023a - python-version: 3.12 - - matlab-version: R2022b - python-version: 3.12 - # Python 3.11 + MATLAB incompatability - - matlab-version: R2023a - python-version: 3.11 - - matlab-version: R2022b - python-version: 3.11 - # Failing Job - # Python Error: ImportError: DLL load failed while importing pyexpat: The operating system cannot run %1 - - matlab-version: R2023a - python-version: "3.10" - - runs-on: ${{ matrix.os }} - - env: - mhkit-python-dir: "MHKiT-Python" - MHKIT_PYTHON_VERSION: ${{ matrix.mhkit-python-version }} - steps: - - name: Install/Setup Miniconda - uses: conda-incubator/setup-miniconda@v3 - with: - miniconda-version: latest - auto-update-conda: true - python-version: ${{ matrix.python-version }} - activate-environment: mhkit_conda_env - channels: conda-forge,defaults - - # This is necessary to fix any issues with netcdf4 and hdf5 headers - - name: Conda install mhkit - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - conda install mhkit==$MHKIT_PYTHON_VERSION - - name: Output python executable - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - python -c "import sys; print(sys.executable)" - - name: Print Python Version - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - python --version - - name: Check out MHKiT-MATLAB - uses: actions/checkout@v4 - - - name: pip install mhkit-python-utils module from source - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - pip3 install -e . - - # - name: Pin scipy version - # shell: bash -l {0} - # run: | - # conda activate mhkit_conda_env - # pip uninstall -y scipy - # pip install scipy==1.10.1 - # - - # Some tests fail with: - # Python Error: ImportError: DLL load failed while importing pyexpat: The operating system cannot run %1. - # One potential fix is to install expat and lxml - - name: Install Windows XML dependencies - if: ${{ matrix.os == 'windows-latest' }} - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - # Simple single package install to avoid solver issues - conda install expat -y - # Alternative: use pip for XML parsing - pip install lxml - - - - name: List installed pip modules - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - pip3 freeze - - name: Print MHKiT-Python Version - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - python -c "import mhkit; print(mhkit.__version__)" - - name: Verify MHKiT-Python Operation - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - python -c "import mhkit; [ED, AP] = mhkit.river.performance.circular(30); print(ED); print(AP);" - - name: Download mhkit_webread_cache artifact - uses: actions/download-artifact@v4 - with: - name: mhkit_webread_cache - path: mhkit_webread_cache - - - name: Display structure mhkit_webread_cache - run: ls -R - working-directory: . - - - name: Set up MATLAB - uses: matlab-actions/setup-matlab@v2 - with: - release: ${{ matrix.matlab-version }} - - - name: Set PYBIND11 GIL workaround - # if: ${{ matrix.matlab-version == 'R2025a' }} - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - export PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF=1 - echo "PYBIND11_NO_ASSERT_GIL_HELD_INCREF_DECREF=1" >> $GITHUB_ENV - - - name: Add Python Dir to Path - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - printf "getenv('path')\nsetenv('path', ['%s;', getenv('path')])\ngetenv('path')\n" $(python -c "import sys; import os; print(os.path.dirname(sys.executable))") >> run.m - # OutOfProcess works reliably on linux, macos, and windows - - name: Configure MATLAB pyenv Version and ExecutionMode - shell: bash -l {0} - run: | - conda activate mhkit_conda_env - printf "pyenv(Version='%s', ExecutionMode='OutOfProcess')\n" $(python -c "import sys; print(sys.executable)") >> run.m - - name: Check Python System Path - shell: bash -l {0} - run: | - echo "py.sys.path" >> run.m - - name: Add MATLAB test commands - shell: bash - run: echo "version, - pyenv, - addpath(genpath('mhkit')), - import matlab.unittest.TestSuite, - import matlab.unittest.TestRunner, - testFolder = ['mhkit' filesep 'tests'], - suite = TestSuite.fromFolder(testFolder), - runner = TestRunner.withTextOutput, - results = runner.run(suite), - assertSuccess(results)" >> run.m - - - name: Output Run.m - shell: bash - run: cat run.m - - - name: Run MHKiT-MATLAB Unit Tests - uses: matlab-actions/run-command@v2 + - name: Run MATLAB unit tests + uses: matlab-actions/run-command@v3 with: - command: run + command: | + addpath(fullfile("mhkit", "tests")); + results = runPythonTests(getenv("MHKIT_PYTHON_EXE")); + disp(table(results)); + assertSuccess(results); startup-options: -noFigureWindows diff --git a/.gitignore b/.gitignore index 6fc2860a0..9079355a2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ # MHKiT-MATLAB Specific Files # Test results mhkit/tests/test_results/* +mhkit/tests/coverage_report/ # Hindcast data cache mhkit_webread_cache @@ -18,7 +19,12 @@ mhkit_webread_cache # Packaged app and toolbox files *.mlappinstall -# *.mltbx +*.mltbx + +# scripts/build_release.m outputs +mhkit_examples_v*.zip +mhkit_python_utils_v*.zip +temp_python_utils/ # Generated helpsearch folders helpsearch*/ diff --git a/README.md b/README.md index cede40717..c00a5a4cd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # MHKiT-MATLAB -[![Linux and macOS Unit Tests](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/unix_unit_tests.yml/badge.svg)](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/unix_unit_tests.yml) [![Windows Unit Tests](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/windows_unit_tests.yml/badge.svg)](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/windows_unit_tests.yml) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3928405.svg)](https://doi.org/10.5281/zenodo.3928405) +[![MATLAB Modules](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/matlab_only_unit_tests.yml/badge.svg)](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/matlab_only_unit_tests.yml) [![MATLAB Examples](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/matlab_only_examples.yml/badge.svg)](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/matlab_only_examples.yml) [![macOS Unit Tests](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/unix_unit_tests.yml/badge.svg)](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/unix_unit_tests.yml) [![Windows Unit Tests](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/windows_unit_tests.yml/badge.svg)](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions/workflows/windows_unit_tests.yml) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3928405.svg)](https://doi.org/10.5281/zenodo.3928405) MHKiT-MATLAB is a MATLAB package designed for marine renewable energy applications to assist in data processing and visualization. The software package include functionality for: @@ -16,25 +16,50 @@ See the [documentation](https://mhkit-software.github.io/MHKiT/) for more inform ## Installation -See the [MHKiT MATLAB Installation Instructions](https://mhkit-software.github.io/MHKiT/matlab_installation.html). +### Quick Install + +1. Download the MHKiT toolbox, `mhkit_v.mltbx`, from the + [latest release](https://github.com/MHKiT-Software/MHKiT-MATLAB/releases/latest). +2. Open the downloaded file in MATLAB (double-click it or drag it into the Command Window), or run: + + ```matlab + matlab.addons.install("mhkit_v1.1.0.mltbx"); + ``` + +3. Verify the install: + + ```matlab + matlab.addons.installedAddons + ``` + +The acoustics, dolfyn, mooring, power, river, tidal, and most wave functions are native MATLAB and work after +this step. The loads, qc, river Delft3D, and some wave and utils functions call MHKiT-Python, which also requires +Python and MHKiT-Python, see [Software Requirements](#software-requirements) and the +[MHKiT MATLAB Installation Instructions](https://mhkit-software.github.io/MHKiT/matlab_installation.html). + +To upgrade, install the new `.mltbx` over the existing one. To uninstall, go to +Home > Add-Ons > Manage Add-Ons, right-click on "Marine and Hydrokinetic Toolkit (MHKiT)", and select "Uninstall". ### Software Requirements -MHKiT-MATLAB utilizes Python functions from MHKiT-Python and requires the user to have +Some MHKiT-MATLAB modules utilize Python functions from MHKiT-Python and require the user to have compatible versions of Python and MHKiT-Python installed. MHKiT-MATLAB supports the following combinations of MATLAB and Python versions.[^1] -| | R2022b | R2023a | R2023b | R2024a | R2024b | -| ---- | ------ | ------ | ------ | ------ | ------ | -| 3.13 | - | - | - | - | - | -| 3.12 | - | - | - | - | ✓ | -| 3.11 | - | - | ✓ | ✓ | ✓ | -| 3.10 | ✓ | ✓ | ✓ | ✓ | ✓ | +| Python | R2023b | R2024a | R2024b | R2025a | R2025b | R2026a | R2026b | +| ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | +| 3.13 | - | - | - | - | - | ✓ | ✓ | +| 3.12 | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | +| 3.11 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| 3.10 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - ✓: MATLAB/Python versions compatible - `-`: MATLAB/Python versions not compatible +The minimum supported MATLAB release is R2023b. MHKiT-Python 1.1 requires Python 3.10 or newer. R2026b also +supports Python 3.14, which has not yet been tested with MHKiT-Python and MHKiT-MATLAB. + Before installing MHKiT-MATLAB, please ensure your system has compatible versions of Python and MATLAB installed per the table above. ### Installation Guide @@ -43,41 +68,43 @@ For complete installation instructions, please visit the [installation guide](ht ## Unit Tests -To ensure software reliability and stability. MHKiT-MATLAB software [runs a suite of unit tests](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions) using the above MATLAB/Python compatibility matrix on Linux (`ubuntu-latest`), MacOS (`macos-latest`) and Windows (`windows-latest`). These tests simulate a user's machine, but they are not perfect. Unit test failures on GitHub Actions may not necessarily indicate actual issues but could be artifacts of the build environment. Users should consider using a tested version if issues arise. +To ensure software reliability and stability, MHKiT-MATLAB [runs a suite of unit tests](https://github.com/MHKiT-Software/MHKiT-MATLAB/actions) +on GitHub Actions. These tests simulate a user's machine, but they are not perfect. Unit test failures on +GitHub Actions may not necessarily indicate actual issues but could be artifacts of the build environment. +Users should consider using a tested configuration if issues arise. ### Test Matrices -The test matrices below detail the current state of unit testing. An "X" indicates a OS/MATLAB/Python version with a failing MHKiT-MATLAB unit test on GitHub Action that is due to Actions environment. +#### MATLAB-only modules (no Python) + +Tests for the native MATLAB modules (acoustics, dolfyn, mooring, power, river, tidal, and most wave functions) +run without Python. -#### Linux (`ubuntu-latest`) +| OS | R2023b | R2024a | R2024b | R2025a | R2025b | R2026a | R2026b | +| ------------------------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | +| macOS (`macos-15`) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | +| Windows (`windows-2025`) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | -| | R2022b | R2023a | R2023b | R2024a | R2024b | -| ---- | ------ | ------ | ------ | ------ | ------ | -| 3.12 | - | - | - | - | ✓ | -| 3.11 | - | - | ✓ | ✓ | ✓ | -| 3.10 | ✓ | ✓ | ✓ | ✓ | ✓ | +The MATLAB examples are additionally run on the oldest and newest supported releases, R2023b and R2026b, on +both operating systems. -#### macOS (`macos-latest`) +#### Full test suite with MHKiT-Python -| | R2022b | R2023a | R2023b | R2024a | R2024b | -| ---- | ------ | ------ | ------ | ------ | ------ | -| 3.12 | - | - | - | - | ✓ | -| 3.11 | - | - | ✓ | ✓ | ✓ | -| 3.10 | ✓ | ✓ | ✓ | ✓ | ✓ | +The complete test suite, including modules that call MHKiT-Python, runs on the latest release, R2026b, and on R2025b on each OS. -#### Windows (`windows-latest`) +| OS | MATLAB | Python | MHKiT-Python | +| ------------------------ | ------ | ------ | ------------ | +| macOS (`macos-15`) | R2025b | 3.12 | 1.1.2 | +| macOS (`macos-15`) | R2026b | 3.12 | 1.1.2 | +| Windows (`windows-2025`) | R2025b | 3.12 | 1.1.2 | +| Windows (`windows-2025`) | R2026b | 3.12 | 1.1.2 | -| | R2022b | R2023a | R2023b | R2024a | R2024b | -| ---- | ------ | ------ | ------ | ------ | ------ | -| 3.12 | - | - | - | - | ✓ | -| 3.11 | - | - | ✓ | ✓ | ✓ | -| 3.10 | ✓ | ✓ | ✓ | ✓ | ✓ | +Linux is not currently tested. Other MATLAB/Python combinations listed in +[Software Requirements](#software-requirements) are expected to work but are not exercised in CI. ### Legend -- ✓: GitHub Actions unit test passed. -- X: GitHub Actions unit test failed; consider using a tested version if issues arise. -- `-`: MATLAB/Python version not compatible. +- ✓: Tested on GitHub Actions. ## Development Notes @@ -91,15 +118,15 @@ We encourage contributions through pull requests. Please submit your contributio 1. Uninstall the MHKiT toolbox if already installed: - - Navigate to Home > Add-Ons > Manage Add-Ons > right-click on "mhkit" > "Uninstall" + - Navigate to Home > Add-Ons > Manage Add-Ons > right-click on "Marine and Hydrokinetic Toolkit (MHKiT)" > "Uninstall" 2. Clone or download the MHKiT-MATLAB source code. If contributing code, fork the repository and submit a pull request. GitHub provides details on the forking and pull request process [here](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests). 3. Install the latest Python versions of `mhkit` and `mhkit_python_utils`. - Navigate to the `MHKiT-MATLAB` directory: - - Install `mhkit-python`: - - `pip install mhkit` + - Install `mhkit-python` with all module dependencies: + - `pip install "mhkit[all]" "pandas<3"` (pecos, used by the qc module, does not yet support pandas 3) - Install `mhkit-python-utils`: - `pip install -e .` @@ -111,9 +138,18 @@ Ensure code integrity by running unit tests locally before pushing changes to Gi To execute all unit tests, run `mhkit/tests/runTests.m`. Unit test results will display in the command window. +The same test runs used by GitHub Actions can be run from a terminal in the repository root: + +- Native MATLAB modules only (no Python required): + - macOS: `scripts/run_matlab_only_tests_macos.sh` + - Windows: `scripts\run_matlab_only_tests_windows.ps1` +- Full test suite, including modules that call MHKiT-Python: + - macOS: `scripts/run_python_tests_macos.sh /path/to/python` + - Windows: `scripts\run_python_tests_windows.ps1 C:\path\to\python.exe` + ### Code Coverage -Code coverage reports are automatically generated during unit testing (refer to [Local Unit Testing](#local-unit-testing) for execution instructions). `mhkit/tests/coverage_report` contains results from the most recent code coverage report. +Code coverage reports are automatically generated when running `mhkit/tests/runTests.m` (refer to [Local Unit Testing](#local-unit-testing)). The HTML report is written to `mhkit/tests/coverage_report`, which is not tracked in the repository. ## Copyright and License diff --git a/changelog.md b/changelog.md index 29c73a47c..a760d7e49 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,38 @@ +# Version 1.1.0 + +## Release Highlights + +- Modules converted to native MATLAB, no Python required: + - Power + - River (except Delft3D) + - Wave (most functions) +- Acoustics updates for parity with MHKiT-Python +- Supports MATLAB R2023b through R2026b and MHKiT-Python 1.1.2 +- DOLfYN binary readers are deprecated and will be removed in v1.2 + +## Additions + +- Power: native MATLAB ([#164](https://github.com/MHKiT-Software/MHKiT-MATLAB/pull/164), @simmsa) +- Wave: native MATLAB part 1, capture width, and DOE reference models ([#196](https://github.com/MHKiT-Software/MHKiT-MATLAB/pull/196), @simmsa) +- River: native MATLAB ([#200](https://github.com/MHKiT-Software/MHKiT-MATLAB/pull/200), @hivanov-nrel) +- Acoustics: WISPR support and band conversions ([#198](https://github.com/MHKiT-Software/MHKiT-MATLAB/pull/198), @hivanov-nrel) + +## Improvements + +- WPTO hindcast uses `developer.nlr.gov` and handles differences between hindcast files +- Compatible with MHKiT-Python 1.1.2, numpy 2, and pandas 3 +- Tests run on MATLAB R2023b through R2026b on macOS and Windows ([#199](https://github.com/MHKiT-Software/MHKiT-MATLAB/pull/199)) + +## Breaking Changes and Deprecations + +- Minimum MATLAB release is now R2023b +- Converted functions no longer accept pandas inputs, and some signatures changed, see the pull requests +- DOLfYN binary readers are deprecated, convert files with the [MHKiT-DOLfYN GUI](https://github.com/MHKiT-Software/mhkit-dolfyn-gui) or MHKiT-Python and load them with `read_netcdf` + +## Contributors + +@simmsa, @hivanov-nrel, @akeeste, @rpauly18 + # Version 1.0.1 ## Release Highlights diff --git a/examples/WPTO_hindcast_example.html b/examples/WPTO_hindcast_example.html index 09d84aa99..cd26d0c63 100644 --- a/examples/WPTO_hindcast_example.html +++ b/examples/WPTO_hindcast_example.html @@ -1,14 +1,14 @@ -MHKiT WPTO Hindcast Example

MHKiT WPTO Hindcast Example

This example demonstrates how to load and analyze data from the WPTO hindcast dataset hosted on AWS.

Dataset Description

The dataset consists of two main components:
High-spatial-resolution dataset ('3-hour'):
Virtual buoy dataset ('1-hour'):

Available Variables

3-hour Dataset Variables:
Variables are indexed by latitude, longitude, and time:
1-hour Dataset Variables:
Includes all variables from 3-hour dataset plus:

Data Access Configuration

To access the WPTO hindcast data:
  1. Obtain API key from https://developer.nrel.gov/signup/

Example 1: Request Single Location Data

Location: PacWave South
Request 3-hour significant wave height data for 1995 at PacWave South This example demonstrates basic data retrieval for a single parameter at one location
% Set parameters for data request
data_type = '3-hour';
year = 1995;
lat_lon = [44.624076, -124.280097]; % PacWave South
parameter = ["significant_wave_height"]; % Requested parameter
api_key = '3K3JQbjZmWctY0xmIfSYvYgtIcM3CN0cb1Y2w9bf'; % Demo API key (rate-limited)
 
% Request data for the specified location and time period
wave_data = request_wpto(data_type, parameter, lat_lon, year, api_key);
Reading from cache: https://developer.nrel.gov/api/hsds/?...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/g...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5
Plot significant wave height (Hm0) time-series
figure('Position', [100, 100, 1000, 400]);
plot(wave_data.time, wave_data.significant_wave_height, 'LineWidth', 1.5);
title(['Significant Wave Height (Hm0) at ' num2str(wave_data.metadata.latitude) '°N, ' ...
num2str(-1 * wave_data.metadata.longitude) '°W']);
xlabel('Time');
ylabel('Hm0 (m)');
grid on;
xtickformat('MMM-yy');

Example 2: Request Multiple Locations and Parameters

Locations:
Request 3-hour energy period and significant wave height at two locations This example shows how to handle multiple parameters and locations simultaneously
% Define multiple parameters and locations
parameter = ["energy_period", "significant_wave_height"];
lat_lon = [44.624076, -124.280097; % PacWave South
43.489171, -125.152137]; % PacWave North
 
% Request data for both locations
wave_measurements = request_wpto(data_type, parameter, lat_lon, year, api_key);
Reading from cache: https://developer.nrel.gov/api/hsds/?...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/g...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...FWest_Coast%2FWest_Coast_wave_1995.h5
Create subplots for energy period and Hm0 at both locations
figure('Position', [100, 100, 1200, 800]);
 
% Plot Energy Period
subplot(2,1,1);
plot(wave_measurements(1).time, wave_measurements(1).energy_period, '-', 'LineWidth', 1.5);
hold on;
plot(wave_measurements(2).time, wave_measurements(2).energy_period, '--', 'LineWidth', 1.5);
hold off;
title('Energy Period at Two Locations');
xlabel('Time');
ylabel('Energy Period (s)');
grid on;
legend(['Location 1 (' num2str(wave_measurements(1).metadata.latitude) '°N, ' ...
num2str(-1 * wave_measurements(1).metadata.longitude) '°W)'], ...
['Location 2 (' num2str(wave_measurements(2).metadata.latitude) '°N, ' ...
num2str(-1 * wave_measurements(2).metadata.longitude) '°W)']);
xtickformat('MMM-yy');
 
% Plot Significant Wave Height
subplot(2,1,2);
plot(wave_measurements(1).time, wave_measurements(1).significant_wave_height, '-', 'LineWidth', 1.5);
hold on;
plot(wave_measurements(2).time, wave_measurements(2).significant_wave_height, '--', 'LineWidth', 1.5);
hold off;
title('Significant Wave Height (Hm0) at Two Locations');
xlabel('Time');
ylabel('Hm0 (m)');
grid on;
legend(['Location 1 (' num2str(wave_measurements(1).metadata.latitude) '°N, ' ...
num2str(-1 * wave_measurements(1).metadata.longitude) '°W)'], ...
['Location 2 (' num2str(wave_measurements(2).metadata.latitude) '°N, ' ...
num2str(-1 * wave_measurements(2).metadata.longitude) '°W)']);
xtickformat('MMM-yy');

Example 3: Request High-Resolution 1-Hour Data

Location: PacWave South
Request 1-hour temporal resolution data including directional wave spectrum This example demonstrates working with high-resolution temporal data and spectral information
% Set parameters for 1-hour data request
data_type = '1-hour'; % Using 1-hour dataset
parameter = ["peak_period", "omni-directional_wave_power"];
lat_lon = [44.624076, -124.280097]; % PacWave South
 
% Request high-resolution data
hourly_wave_data = request_wpto(data_type, parameter, lat_lon, year, api_key);
Reading from cache: https://developer.nrel.gov/api/hsds/?...ast%2FWest_Coast_virtual_buoy_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/g...ast%2FWest_Coast_virtual_buoy_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...ast%2FWest_Coast_virtual_buoy_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...ast%2FWest_Coast_virtual_buoy_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...ast%2FWest_Coast_virtual_buoy_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...ast%2FWest_Coast_virtual_buoy_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...ast%2FWest_Coast_virtual_buoy_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...ast%2FWest_Coast_virtual_buoy_1995.h5 -Reading from cache: https://developer.nrel.gov/api/hsds/d...ast%2FWest_Coast_virtual_buoy_1995.h5
Plot peak period and omnidirectional wave power
% Peak Period Plot
figure('Position', [100, 100, 1000, 400]);
plot(hourly_wave_data.time, hourly_wave_data.peak_period, 'LineWidth', 1.5);
title(['Peak Period at ' num2str(hourly_wave_data.metadata.latitude) '°N, ' ...
num2str(-1 * hourly_wave_data.metadata.longitude) '°W']);
xlabel('Time');
ylabel('Peak Period (s)');
grid on;
xtickformat('MMM-yy');
 
% Omnidirectional Wave Power Plot
figure('Position', [100, 100, 1000, 400]);
plot(hourly_wave_data.time, hourly_wave_data.omni_directional_wave_power, 'LineWidth', 1.5);
title(['Omnidirectional Wave Power at ' num2str(hourly_wave_data.metadata.latitude) '°N, ' ...
num2str(-1 * hourly_wave_data.metadata.longitude) '°W']);
xlabel('Time');
ylabel('Wave Power (kW/m)');
grid on;
xtickformat('MMM-yy');
+.S9 { margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; } +.S10 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }

MHKiT WPTO Hindcast Example

This example demonstrates how to load and analyze data from the WPTO hindcast dataset hosted on AWS.

Dataset Description

The dataset consists of two main components:
High-spatial-resolution dataset ('3-hour'):
  • Covers U.S. Exclusive Economic Zone (EEZ) along West coast and Hawaii
  • Uses unstructured grid with ~200m resolution in shallow water
  • 3-hour time step resolution
  • Spans 32 years (01/01/1979 - 12/31/2010)
Virtual buoy dataset ('1-hour'):
  • Available at specific locations within the spatial domain
  • Spans same 32-year period
  • 1-hour time resolution

Available Variables

3-hour Dataset Variables:
Variables are indexed by latitude, longitude, and time:
  • significant_wave_height: significant wave height, [m]
  • energy_period: energy period, [s]
  • peak_period: peak period, [s]
  • mean_absolute_period: mean absolute period, [s]
  • mean_zero-crossing_period: mean zero-crossing period, [s]
  • omni-directional_wave_power: omnidirectional wave power, J [W/m]
  • spectral_width: spectral width, [-]
  • directionality_coefficient: directionality coefficient, d [-]
  • maximum_energy_direction: direction of maximum wave energy, [deg]
  • mean_wave_direction: mean wave direction, [deg]
  • water_depth: water depth, h [m]
1-hour Dataset Variables:
Includes all variables from 3-hour dataset plus:
  • directional_wave_spectrum: directional wave spectrum,
  • frequency_bin_edges: frequency bin edges, f [Hz]

Data Access Configuration

To access the WPTO hindcast data:
  1. Obtain API key from https://developer.nlr.gov/signup/

Example 1: Request Single Location Data

Location: PacWave South
Request 3-hour significant wave height, [m], data for 1995 at PacWave South This example demonstrates basic data retrieval for a single parameter at one location
% Set parameters for data request
data_type = '3-hour';
year = 1995;
lat_lon = [44.624076, -124.280097]; % PacWave South
parameter = ["significant_wave_height"]; % Requested parameter
api_key = '3K3JQbjZmWctY0xmIfSYvYgtIcM3CN0cb1Y2w9bf'; % Demo API key (rate-limited)
 
% Request data for the specified location and time period
wave_data = request_wpto(data_type, parameter, lat_lon, year, api_key);
Reading from cache: https://developer.nlr.gov/api/hsds/?a...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/gr...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5
Warning: Site metadata is unavailable from the hindcast for site 413890, distance_to_shore, timezone, and jurisdiction are not returned
Plot the significant wave height, [m], time series
figure('Position', [100, 100, 1000, 400]);
plot(wave_data.time, wave_data.significant_wave_height, 'LineWidth', 1.5);
title(['Significant Wave Height, H_{m_0}, at ' num2str(wave_data.metadata.latitude) '°N, ' ...
num2str(-1 * wave_data.metadata.longitude) '°W']);
xlabel('Time [UTC]');
ylabel('Significant Wave Height, H_{m_0} [m]');
grid on;
xtickformat('MMM-yy');

Example 2: Request Multiple Locations and Parameters

Locations:
Request 3-hour energy period, [s], and significant wave height, [m], at two locations This example shows how to handle multiple parameters and locations simultaneously
% Define multiple parameters and locations
parameter = ["energy_period", "significant_wave_height"];
lat_lon = [44.624076, -124.280097; % PacWave South
43.489171, -125.152137]; % PacWave North
 
% Request data for both locations
wave_measurements = request_wpto(data_type, parameter, lat_lon, year, api_key);
Reading from cache: https://developer.nlr.gov/api/hsds/?a...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/gr...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5
Warning: Site metadata is unavailable from the hindcast for site 413890, distance_to_shore, timezone, and jurisdiction are not returned
Warning: Site metadata is unavailable from the hindcast for site 296247, distance_to_shore, timezone, and jurisdiction are not returned
Create subplots for energy period, , and significant wave height, , at both locations
figure('Position', [100, 100, 1200, 800]);
 
% Plot Energy Period
subplot(2,1,1);
plot(wave_measurements(1).time, wave_measurements(1).energy_period, '-', 'LineWidth', 1.5);
hold on;
plot(wave_measurements(2).time, wave_measurements(2).energy_period, '--', 'LineWidth', 1.5);
hold off;
title('Energy Period, T_e, at Two Locations');
xlabel('Time [UTC]');
ylabel('Energy Period, T_e [s]');
grid on;
legend(['Location 1 (' num2str(wave_measurements(1).metadata.latitude) '°N, ' ...
num2str(-1 * wave_measurements(1).metadata.longitude) '°W)'], ...
['Location 2 (' num2str(wave_measurements(2).metadata.latitude) '°N, ' ...
num2str(-1 * wave_measurements(2).metadata.longitude) '°W)']);
xtickformat('MMM-yy');
 
% Plot Significant Wave Height
subplot(2,1,2);
plot(wave_measurements(1).time, wave_measurements(1).significant_wave_height, '-', 'LineWidth', 1.5);
hold on;
plot(wave_measurements(2).time, wave_measurements(2).significant_wave_height, '--', 'LineWidth', 1.5);
hold off;
title('Significant Wave Height, H_{m_0}, at Two Locations');
xlabel('Time [UTC]');
ylabel('Significant Wave Height, H_{m_0} [m]');
grid on;
legend(['Location 1 (' num2str(wave_measurements(1).metadata.latitude) '°N, ' ...
num2str(-1 * wave_measurements(1).metadata.longitude) '°W)'], ...
['Location 2 (' num2str(wave_measurements(2).metadata.latitude) '°N, ' ...
num2str(-1 * wave_measurements(2).metadata.longitude) '°W)']);
xtickformat('MMM-yy');

Example 3: Request Peak Period and Wave Power

Location: PacWave South
Request 3-hour peak period, [s], and omnidirectional wave power, J [W/m], data This example shows the wave resource quantities used to characterize a site
% Set parameters for the data request
data_type = '3-hour';
parameter = ["peak_period", "omni-directional_wave_power"];
lat_lon = [44.624076, -124.280097]; % PacWave South
 
% Request data
resource_data = request_wpto(data_type, parameter, lat_lon, year, api_key);
Reading from cache: https://developer.nlr.gov/api/hsds/?a...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/gr...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5 +Reading from cache: https://developer.nlr.gov/api/hsds/da...FWest_Coast%2FWest_Coast_wave_1995.h5
Warning: Site metadata is unavailable from the hindcast for site 413890, distance_to_shore, timezone, and jurisdiction are not returned
Plot the peak period, [s], and omnidirectional wave power, J. The hindcast stores J in [W/m], it is plotted in [kW/m]
% Peak Period Plot
figure('Position', [100, 100, 1000, 400]);
plot(resource_data.time, resource_data.peak_period, 'LineWidth', 1.5);
title(['Peak Period, T_p, at ' num2str(resource_data.metadata.latitude) '°N, ' ...
num2str(-1 * resource_data.metadata.longitude) '°W']);
xlabel('Time [UTC]');
ylabel('Peak Period, T_p [s]');
grid on;
xtickformat('MMM-yy');
 
% Omnidirectional Wave Power Plot
figure('Position', [100, 100, 1000, 400]);
plot(resource_data.time, resource_data.omni_directional_wave_power / 1000, 'LineWidth', 1.5);
title(['Omnidirectional Wave Power, J, at ' num2str(resource_data.metadata.latitude) '°N, ' ...
num2str(-1 * resource_data.metadata.longitude) '°W']);
xlabel('Time [UTC]');
ylabel('Omnidirectional Wave Power, J [kW/m]');
grid on;
xtickformat('MMM-yy');

diff --git a/examples/power_example.m b/examples/power_example.m index 8d566e8ae..d4b807865 100644 --- a/examples/power_example.m +++ b/examples/power_example.m @@ -5,14 +5,18 @@ % and harmonics from time series of voltage and current. %% Load Power Data -% We will begin by reading in time-series data of measured three phase (a,b,and,c) -% voltage and current. The IEC TS 62600-30 requires that you perform power quality -% assessments on a minimum of 10-min time-series data, but for this example we -% will only look at a fraction of that. +% We will begin by reading in time-series data of measured three-phase (A, B, +% and C) voltage and current. IEC TS 62600-30 requires power quality assessments +% to use time series of at least 10 minutes, but for this example we will only +% look at a fraction of a second of data. % Read in time-series data of voltage (V) and current (I) -power_table = readtable('./examples/data/power/2020224_181521_PowRaw.csv'); +power_table = readtable('./data/power/2020224_181521_PowRaw.csv'); + +% Display without scientific notation, then restore the default format +format shortG power_table +format short %% % To use the MHKiT-MATLAB power module we need to create structures of current @@ -25,6 +29,42 @@ current.current = T3.Var3; voltage.voltage = T3.Var2; +%% +% IEC TS 62600-30 clause 6.1 requires the generator sign convention: power +% flowing from the marine energy converter to the grid is positive. In this +% dataset every sample of the instantaneous power (the sum of voltage times +% current over the three phases) is negative, which indicates the current +% transformers were connected with the opposite orientation. We therefore +% flip the sign of the measured currents so that the exported power is positive. + +current.current = -current.current; + +%% +% Before computing anything, let's look at the first 0.1 s of the three-phase +% voltage and current signals. + +% Time since the start of the record [s] +elapsed_time = voltage.time - voltage.time(1); +first_tenth = elapsed_time <= 0.1; + +figure('Position', [100, 100, 1600, 600]); +plot(elapsed_time(first_tenth), voltage.voltage(first_tenth, :)); +title('Three-Phase Voltage'); +xlabel('Time [s]'); +ylabel('Voltage [V]'); +ax = gca; +ax.YAxis.Exponent = 0; % show plain volts instead of scientific notation +legend('Phase A', 'Phase B', 'Phase C'); +grid on; + +figure('Position', [100, 100, 1600, 600]); +plot(elapsed_time(first_tenth), current.current(first_tenth, :)); +title('Three-Phase Current'); +xlabel('Time [s]'); +ylabel('Current [A]'); +legend('Phase A', 'Phase B', 'Phase C'); +grid on; + %% Power Characteristics % % The MHKiT |power/characteristics| submodule can be used to compute basic quantities @@ -32,8 +72,15 @@ % active AC power and fundamental frequency, using the loaded voltage and current % time-series. % -% To compute the active AC power, we will need the power factor. Power factor -% describes the efficiency of the energy device. +% To compute the active AC power, we will need the power factor, the ratio of +% active (real) power to apparent power ($PF = P/S$, between 0 and 1). It +% describes how effectively the voltage and current at the connection deliver +% real power; it is not the device's conversion efficiency ($P_{out}/P_{in}$). +% For a grid-connected marine energy converter, the power factor at the grid +% connection is largely set by the power electronics' reactive power control +% (for example constant power factor, constant reactive power, or voltage +% control modes; IEC TS 62600-30 clause 6.7 and Table A.5). Here we assume a +% constant value of 0.96. % Set the power factor for the system power_factor = 0.96; @@ -41,36 +88,42 @@ % Compute the instantaneous AC power in watts ac_power = ac_power_three_phase(voltage, current, power_factor); -% Display the result +% Display the result in kilowatts figure('Position', [100, 100, 1600, 600]); -plot(datetime(ac_power.time, "ConvertFrom", "posixtime"), ac_power.power); +plot(datetime(ac_power.time, "ConvertFrom", "posixtime"), ac_power.power / 1000); title('AC Power'); -ylabel('Power [W]'); +ylabel('Power [kW]'); xlabel('Time'); +ax = gca; +ax.YAxis.Exponent = 0; % show plain kilowatts instead of scientific notation %% % *Fundamental Frequency* % % Using the 3 phase voltage measurements we can compute the fundamental frequency -% of the voltage time-series. The time-varying fundamental frequency is a required +% of the voltage time series. The time-varying fundamental frequency is a required % metric for power quality assessments. The function |calc_fundamental_freq()| -% provides two options of calculating the fundamental frequency: -% 1. Short-Time Fourier Transform (STFT) -% 2. Zero-Crossing Detection (ZCD) -% Here we illustrate the steps in both ways. +% provides two methods for calculating the fundamental frequency: +% +% # Short-Time Fourier Transform (STFT) +% # Zero-Crossing Detection (ZCD) +% +% Here we illustrate both. % -% First, let's look at the STFT method. Note that, to obtain an accurate result, -% window settings for STFT is crucial, the user might need some exploratory analysis -% and try different sets of parameters. +% First, let's look at the STFT method. To obtain an accurate result the STFT +% window settings are crucial, so some exploratory analysis with different sets +% of parameters may be needed. % -% Note: The STFT method requires the Signal Processing Toolbox +% Note: The STFT method requires the Signal Processing Toolbox. % Hilbert method: instantaneous_frequency % inst_freq = instantaneous_frequency(voltage) % STFT method: -% Check for Signal Processing Toolbox -if license('test', 'Signal_Toolbox') +% Check that the Signal Processing Toolbox functions are installed. license('test') +% only checks that a license exists, not that the toolbox is installed. +has_signal_toolbox = exist('stft', 'file') ~= 0 && exist('rectwin', 'file') ~= 0; +if has_signal_toolbox % Set up method options methodopts = { 'Window', int32(5000), ... @@ -94,7 +147,6 @@ fund_freq % Display the result - hold off; figure('Position', [100, 100, 1600, 600]); plot(datetime(fund_freq.time, "ConvertFrom", "posixtime"), fund_freq.data); title('Fundamental Frequency: STFT'); @@ -106,9 +158,9 @@ end %% -% Now, let's look at the ZCD method. Note that, ZCD method may not work for -% conditions of distorted voltage with multiple zero-crossings, like the one stated -% in IEC TS 61400-21-1 B.3.3. As stated above, exploratory analysis is needed. +% Now, let's look at the ZCD method. Note that the ZCD method may not work for +% distorted voltage with multiple zero crossings, such as the case described in +% IEC 61400-21-1:2019 Annex B.3.3. As stated above, exploratory analysis is needed. % ZCD method: % Prep input and output @@ -128,8 +180,6 @@ end fund_freq -hold off; - figure('Position', [100, 100, 1600, 600]); plot(datetime(fund_freq.time, "ConvertFrom", "posixtime"), fund_freq.data); title('Fundamental Frequency: ZCD'); @@ -139,13 +189,11 @@ %% Power Quality % -% The power quality submodule can be used to compute voltage fluctuations, harmonics -% of current and voltage and current distortions following IEC TS 62600-30 and -% IEC 61000-4-7. Harmonics and harmonic distortion are required as part of a power -% quality assessment and characterize the stability of the power being produced. -% Specifically, we focus on the flicker coefficient for continuous operation (MV -% connected systems), which is a normalized measure of the flicker emission during -% continuous operation of the MEC unit. +% The power quality submodule can be used to compute voltage fluctuations +% (flicker), and harmonics and harmonic distortion of current and voltage, +% following IEC TS 62600-30 and IEC 61000-4-7. Harmonics and harmonic distortion +% are required as part of a power quality assessment and characterize the +% quality of the power being produced. We start with the current harmonics. % Set the sampling frequency of the dataset sample_freq = 50000; % [Hz] @@ -154,7 +202,7 @@ grid_freq = 60; % [Hz] % Set the rated current of the device -rated_current = 18.8; % [Amps] +rated_current = 18.8; % [A] % Calculate the current harmonics h = harmonics(current, sample_freq, grid_freq); @@ -164,27 +212,36 @@ plot(h.harmonic, h.amplitude); title('Current Harmonics'); xlabel('Frequency [Hz]'); -ylabel('Harmonic Amplitude'); +ylabel('Harmonic Amplitude [A]'); +legend('Phase A', 'Phase B', 'Phase C'); xlim([0, 900]); %% % *Harmonic Subgroups* % -% The harmonic subgroups calculations are based on IEC TS 62600-30. We can calculate -% them using our grid frequency and harmonics. +% IEC TS 62600-30 clause 7.3 requires the harmonic currents up to 50 times the +% grid frequency to be reported as harmonic subgroups. We calculate them from +% the harmonics and the grid frequency. -% Calculate Harmonic Subgroups +% Calculate harmonic subgroups h_s = harmonic_subgroups(h, grid_freq); +% Display the first ten harmonic orders (row 1 is DC, row 2 is the fundamental) +harmonic_order = (0:9)'; +array2table([harmonic_order, h_s.harmonic(1:10), h_s.amplitude(1:10, :)], ... + 'VariableNames', {'Order', 'Frequency [Hz]', 'Phase A [A]', 'Phase B [A]', 'Phase C [A]'}) + %% % *Total Harmonic Current Distortion (THCD)* % -% Compute the THCD from harmonic subgroups and rated current for the device. - -% Finally we can compute the total harmonic current distortion as a percentage -% for each channel +% Finally we compute the total harmonic current distortion as a percentage. +% Matching MHKiT-Python, the subgrouped harmonics of order 2 to 49 are summed +% and normalized by the fundamental subgroup, and the result is for the first +% column (Phase A) only. The rated current is accepted but not yet used; the +% IEC TS 62600-30 formula (7) normalization by rated current and per-phase +% output are under review. -THCD = total_harmonic_current_distortion(h_s, rated_current); +THCD = total_harmonic_current_distortion(h_s, rated_current) %% % *Flicker Assessment* @@ -192,15 +249,15 @@ % Calculate the flicker coefficient following the steps in IEC TS 62600-30 section % 7.2.1: MV connected marine energy converters. % -% 1. Calculate the simulated voltage of the fictitious grid (u_fic). -% There are two options for calculation of u_fic. +% The first step is to calculate the simulated voltage of the fictitious grid +% (u_fic). There are two options for calculating u_fic. % -% First, the user can use |flicker_ufic_workflow()|, which wrapped up all steps -% needed to the calculation of u_fic from measured voltage (u_m) and current (i_m). -% All intermediate values can also be outputted for the user to debug. +% First, the user can use |flicker_ufic_workflow()|, which wraps up all the steps +% needed to calculate u_fic from the measured voltage (u_m) and current (i_m). +% All intermediate values are also returned to help with debugging. % -% Or, the user can call the corresponding functions sequentially. For illustration -% purpose, we show both ways. +% Alternatively, the user can call the corresponding functions sequentially. For +% illustration, we show both ways. % % Firstly, let's use |flicker_ufic_workflow()|. @@ -212,10 +269,10 @@ i_m.time = current.time; i_m.data = current.current(:,1); -Sr = 4.2e5; % rated power -Un = 14e3; % RMS value of the nominal voltage +Sr = 4.2e5; % rated apparent power [VA] +Un = 14e3; % RMS value of the nominal voltage [V] SCR = 20; % short-circuit ratio -fg = 60; % nominal grid frequency +fg = 60; % nominal grid frequency [Hz] % Method settings for calculation of fundamental frequency % of u_m, see above @@ -228,24 +285,25 @@ out %% -% Calculating u_fic can be tricky due to the part of calculating the ideal voltage -% source (u0), as mentioned in the IEC TS 62600-30, u0 should fulfill the following -% two requirements: +% Calculating u_fic can be tricky because of the ideal voltage source (u0). As +% stated in IEC TS 62600-30 clause 7.2.2, u0 should fulfill the following two +% requirements: % % (1) be without any fluctuations % (2) have the same electrical angle as the fundamental of u_m % -% Therefore, here we compare u0 and u_m to check if our output fulfills these +% Therefore, we compare u0 and u_m to check that our output fulfills these % requirements. % Check u0 -hold off; figure('Position', [100, 100, 1600, 600]); plot(datetime(u_m.time, "ConvertFrom", "posixtime"), u_m.data); hold on; -figure('Position', [100, 100, 1600, 600]); plot(datetime(u_m.time, "ConvertFrom", "posixtime"), u0); +hold off; legend('u_m', 'u_0'); +xlabel('Time'); +ylabel('Voltage [V]'); %% % Secondly, we can also calculate u_fic step by step. The calculation of u_fic @@ -263,7 +321,7 @@ % -opt2: method STFT: method = 'stft'; methodopts = {'Window',rectwin(M),... % 'OverlapLength',L,'FFTLength',128,'FrequencyRange','onesided'} -if license('test', 'Signal_Toolbox') +if has_signal_toolbox method = 'stft'; methodopts = { 'Window', rectwin(5000), ... @@ -294,32 +352,41 @@ % Step 5. Calculate u_fic using |calc_simulated_voltage()|. u_fic = calc_simulated_voltage(u0, i_m, Rfic, Lfic); -disp(size(u_fic)); %% % Again, we check our derived u0 to see if it fulfills the requirements. % Check u0 -hold off; figure('Position', [100, 100, 1600, 600]); plot(datetime(u_m.time, "ConvertFrom", "posixtime"), u_m.data); hold on; -figure('Position', [100, 100, 1600, 600]); plot(datetime(u_m.time, "ConvertFrom", "posixtime"), u0); +hold off; legend('u_m', 'u_0'); +xlabel('Time'); +ylabel('Voltage [V]'); %% % *Calculate the flicker emission value (P_stfic) from u_fic* % -% Input u_fic into an appropriate digital flickermeter to get the P_stfic. +% Input u_fic into an appropriate digital flickermeter to get P_stfic. % -% According to the standard, the evaluation time is 10 min, therefore, to fulfill -% this requirement, we need data length >= 10min. And note that we may need to -% discard the first 20s depending on the performance of the flickermeter we choose. +% According to the standard, the evaluation time is 10 min, so the data must be +% at least 10 min long. Depending on the performance of the chosen flickermeter, +% the first 20 s may need to be discarded. +% +% u_fic has one column for each fictitious grid impedance phase angle, psi_k = +% 30, 50, 70, and 85 degrees (see |calc_Rfic_Lfic()|). IEC TS 62600-30 requires +% the flicker coefficient to be reported for all four angles (Annex A, Table +% A.6); here we illustrate a single angle, psi_k = 50 degrees. + +% Select the fictitious grid impedance phase angle +psi_k = [30, 50, 70, 85]; % [degrees], column order of u_fic, Rfic, and Lfic +psi_idx = find(psi_k == 50); % Prep input for the digital flickermeter time = u_m.time - u_m.time(1); -u_fic_in = timeseries(u_fic(:,2), time); +u_fic_in = timeseries(u_fic(:, psi_idx), time); u_fic_in %% @@ -346,15 +413,14 @@ %% % *Calculate the flicker coefficient* % -% Provide a flickermeter output (P_stfic). -% In this example, data duration is < 1s, -% so we fake a number here for P_stfic +% Provide the flickermeter output (P_stfic) for the selected impedance phase +% angle. In this example the data duration is less than 1 s, so we use a +% placeholder value for P_stfic. P_stfic = 0.10016; Xfic = 2*pi*fg*Lfic; -S_kfic = (Un^2)./sqrt(Rfic.^2 + Xfic.^2); -coef_flicker = calc_flicker_coefficient(P_stfic, S_kfic(1), Sr); -coef_flicker +S_kfic = (Un^2)./sqrt(Rfic.^2 + Xfic.^2); % IEC TS 62600-30 formula (5) +coef_flicker = calc_flicker_coefficient(P_stfic, S_kfic(psi_idx), Sr) %% % *Test the performance of the flicker assessment process* @@ -362,45 +428,46 @@ % This part of the example illustrates how to test the performance of the user's % flicker assessment process, including methods to generate simulated voltage % of the fictitious grid and the performance of the (digital) flickermeter, following -% the guidance provided in the IEC TS 61400-21-1 Annex B.3: Verification test of +% the guidance provided in IEC 61400-21-1:2019 Annex B.3: Verification test of % the measurement procedure for flicker. % -% The verification is straightforward, we generate testing data with predetermined +% The verification is straightforward: we generate test data with predetermined % flicker coefficients and verify the flicker assessment process by comparing -% the derived flicker coefficient with the predetermined ones. The testing data -% generated will be measured voltage and current time series (|u_m| and |i_m|), -% and the user can use |gen_test_data()| to generate test data for five different -% scenarios: (1) pure sine wave (coef=0) and scenarios (2)-(5) as stated Annex -% B.3.2 - B.3.5, and test them one by one. Here we illustrate the usage of gen_test_data -% by generating distorted u_m(t) with multiple zero crossings (see Annex B.3.3 -% for details). +% the derived flicker coefficients with the predetermined ones. The generated +% test data are measured voltage and current time series (|u_m| and |i_m|). The +% user can use |gen_test_data()| to generate test data for five scenarios: (1) a +% pure sine wave (coefficient = 0) and (2)-(5) the scenarios in Annex B.3.2 to +% B.3.5, and test them one by one. Here we illustrate |gen_test_data()| by +% generating a distorted u_m(t) with multiple zero crossings (Annex B.3.3). % Set up proper input parameters: % scenario 3 with duration of 10s opt = 3; T=10; -% rated parameters: +% rated parameters: voltage [V], current [A], sample rate [Hz], apparent power [VA] Un=12e3; In=144; fs=50e3; Sr = 3e6; % other parameters for generating distorted data fg=60; SCR=20; fm=25; fv=0.5; % fv only needed for scenario B.3.4 -% According to IEC TS 61400-21-1 Table B.2: +% According to IEC 61400-21-1:2019 Table B.2: DeltaI_I = [4.763 5.726 7.640 9.488]; [i_m,u_m]=gen_test_data(Un,In,fg,fs,fm,fv,DeltaI_I,opt,T) %% -% The generated i_m(ntime, nphi_k) has 4 time-series, corresponding to phi_k -% = 30, 50, 70, 85. While u_m is always the same, thus has only one time series. +% The generated i_m has four time series (columns), one for each impedance +% phase angle psi_k = 30, 50, 70, and 85 degrees. u_m is the same for all four +% angles, so it has a single time series. figure('Position', [100, 100, 1600, 600]); -hold off; plot(i_m.time, i_m.data(:,1)); xlim([0 1]); -xlabel("Time"); -ylabel("i_m"); +xlabel("Time [s]"); +ylabel("i_m [A]"); +title("Generated current, \psi_k = 30 degrees"); figure('Position', [100, 100, 1600, 600]); plot(u_m.time, u_m.data); xlim([0 0.1]); -xlabel("Time"); -ylabel("u_m"); +xlabel("Time [s]"); +ylabel("u_m [V]"); +title("Generated voltage with multiple zero crossings"); grid on; diff --git a/examples/power_example.mlx b/examples/power_example.mlx index 44f0e1517..e6d68eaee 100644 Binary files a/examples/power_example.mlx and b/examples/power_example.mlx differ diff --git a/examples/river_example.html b/examples/river_example.html index ec69a8c7f..86717b4ff 100644 --- a/examples/river_example.html +++ b/examples/river_example.html @@ -1,11 +1,11 @@ -Example: MHKiT-MATLAB River Module

Example: MHKiT-MATLAB River Module

The following example will familiarize the user with the MHKiT River Module by stepping through the calculation of annual energy produced for one turbine in the Tanana river near Nenana, Alaska. The data file used in this example is retrieved from the USGS website, additional data is stored in the /mhkit/examples/data/river directory.

Importing Data from USGS

We will start by requesting daily discharge data from USGS for the Tanana River near Nenana Alaska. The function request_usgs_data in the MHKiT river IO module returns a MATLAB structure. To use the request_usgs_data function we will need a station number, parameter number, time frame and type of data.
The station ID can be found on the USGS website though this is more difficult than searching the web for "USGS Tanana near Nenana" which should return a link to https://waterdata.usgs.gov/nwis/inventory/?site_no=15515500. This page contains an overview of the available data of most interest in the daily discharge data.
The IEC standard recommends 10 years of daily discharge data for calculations of annual energy produced (AEP). The timeframe shows that at least 10 years of data is available. Clicking on the "Daily Data" will bring up a page that would allow the user to request data from the site. Each of the "Available Parameters" has a 5-digit code in front of it which will depend on the data type and reported units. The user at this point could use the website to download the data, however, here the MHKiT request function will be used.
% Use the request method to obtain 10 years of daily discharge data
data=request_usgs_data("15515500",'00060','2009-08-01','2019-08-01',"data_type",'Daily');
Data request URL: https://waterservices.usgs.gov/nwis/dv/?format=json&sites=15515500&startDT=2009-08-01&endDT=2019-08-01&statCd=00003&parameterCd=00060&siteStatus=all
disp(data) % data is a structure with Discharge data
Discharge: [3653×1 double] +.S6 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; } +.S7 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; } +.S8 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; } +.S9 { margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; }

Example: MHKiT-MATLAB River Module

The following example will familiarize the user with the MHKiT River Module by stepping through the calculation of annual energy produced for one turbine in the Tanana river near Nenana, Alaska. The data file used in this example is retrieved from the USGS website, additional data is stored in the /mhkit/examples/data/river directory.

Importing Data from USGS

We will start by requesting daily discharge data from USGS for the Tanana River near Nenana Alaska. The function request_usgs_data in the MHKiT river IO module returns a MATLAB structure. To use the request_usgs_data function we will need a station number, parameter number, time frame and type of data.
The station ID can be found on the USGS website though this is more difficult than searching the web for "USGS Tanana near Nenana" which should return a link to https://waterdata.usgs.gov/nwis/inventory/?site_no=15515500. This page contains an overview of the available data of most interest in the daily discharge data.
The IEC standard recommends 10 years of daily discharge data for calculations of annual energy produced (AEP). The timeframe shows that at least 10 years of data is available. Clicking on the "Daily Data" will bring up a page that would allow the user to request data from the site. Each of the "Available Parameters" has a 5-digit code in front of it which will depend on the data type and reported units. The user at this point could use the website to download the data, however, here the MHKiT request function will be used.
% Use the request method to obtain 10 years of daily discharge data
data=request_usgs_data("15515500",'00060','2009-08-01','2019-08-01',"data_type",'Daily');
Data request URL: https://waterservices.usgs.gov/nwis/dv/?format=json&sites=15515500&startDT=2009-08-01&endDT=2019-08-01&statCd=00003&parameterCd=00060&siteStatus=all
disp(data) % data is a structure with Discharge data
Discharge: [3653×1 double] units: [1×1 struct] - time: [1.2491e+09 1.2492e+09 1.2493e+09 1.2493e+09 1.2494e+09 1.2495e+09 1.2496e+09 1.2497e+09 1.2498e+09 1.2499e+09 1.2499e+09 1.2500e+09 1.2501e+09 1.2502e+09 1.2503e+09 1.2504e+09 1.2505e+09 1.2506e+09 1.2506e+09 1.2507e+09 … ] (1×3653 double)
A MATLAB structure was returned with 10 years of daily discharge data. MHKiT expects all units to be in SI, so the discharge units should be converted to m^3/s. We can then plot the discharge time series.
% converting units to m^3/s
data.Discharge = data.Discharge./ (3.28084^3);
 
data.units = "meters cubed per second"
data = struct with fields:
Discharge: [3653×1 double] + time: [1.2491e+09 1.2492e+09 1.2493e+09 1.2493e+09 1.2494e+09 1.2495e+09 1.2496e+09 1.2497e+09 1.2498e+09 1.2499e+09 1.2499e+09 1.2500e+09 1.2501e+09 1.2502e+09 1.2503e+09 1.2504e+09 1.2505e+09 1.2506e+09 1.2506e+09 1.2507e+09 … ] (1×3653 double)
A MATLAB structure was returned with 10 years of daily discharge data. MHKiT expects all units to be in SI, so the discharge units should be converted to m^3/s. We can then plot the discharge time series.
% converting units to m^3/s
data.Discharge = data.Discharge./ (3.28084^3);
 
data.units = "meters cubed per second"
data = struct with fields:
Discharge: [3653×1 double] units: "meters cubed per second" time: [1.2491e+09 1.2492e+09 1.2493e+09 1.2493e+09 1.2494e+09 1.2495e+09 1.2496e+09 1.2497e+09 1.2498e+09 1.2499e+09 1.2499e+09 1.2500e+09 1.2501e+09 1.2502e+09 1.2503e+09 1.2504e+09 1.2505e+09 1.2506e+09 1.2506e+09 1.2507e+09 … ] (1×3653 double) -
% plot the daily discharge
plot_discharge_timeseries(data);

Flow Duration Curve

The flow duration curve (FDC) quantifies the percentage of time that the discharge in a river exceeds a particular magnitude typically compiled on a monthly or annual basis. The FDC is a plot of discharge versus exceedance probability.
The exceedance probability for the highest discharge is close to 0%, rarely being exceeded. Conversely, the lowest flowrates are found closer to 100% as they are most often exceeded.
% Calculating the exceedance probability structure (F) from the Discharge data structure
F = exceedance_probability(data);
 
% plotting the flow duration curve from Discharge and Exceedance Probability vectors
plot_flow_duration_curve(data.Discharge,F.F);

Velocity Duration Curve

At each river energy converter location, we must provide a curve that relates the velocity at the turbine location to the river discharge levels. IEC 301 recommends using at least 15 different discharges and that only velocities within the turbine operating conditions need to be included.
Here we only provide 6 different discharges to velocities created using a hydrological model. The data is read into a table from the .csv file.
% Import file with discharge to velocity curve at turbine location
relative_file_name = 'data/river/tanana_DV_curve.csv';
current_dir = fileparts(matlab.desktop.editor.getActiveFilename);
full_file_name = fullfile(current_dir, relative_file_name);
DV_curve = readtable(full_file_name);
 
 
% Create a polynomial fit of order 3 from the DV_curve.
% The polynomial fit function will return a structure with polynomial fit and R^2 value
p = polynomial_fit(DV_curve.D,DV_curve.V,2); % Input of discharge, velocity, order of fit
 
 
% Plot the polynomial curve
plt=plot_discharge_vs_velocity(DV_curve.D,DV_curve.V,"polynomial_coeff",p.coef); % Input of Discharge vector, velocity vector, and polynomial coefficients
The IEC standard recommends a polynomial fit of order 3. By changing the order above and replotting the polynomial fit to the curve data it can be seen this is not a good fit for the provided data. Therefore, the order was set to 2.
Next, we can calculate velocity for each discharge in the 10 years of data using the polynomial and plot the VDC.
% Use polynomial fit from DV curve to calculate velocity('V') from
% discharge at turbine location
V = discharge_to_velocity(data, p.coef); % Input of discharge structure and polynomial coefficients
 
% Plot the velocity duration curve (VDC)
p2 = plot_velocity_duration_curve(V.V, F.F); % Input velocity vector and exceedance probability vector

Power Duration Curve

The power duration curve is created in a nearly identical manner to the VDC. Here a velocity to power curve will be used to create a polynomial fit. The polynomial fit will be used to calculate the power produced between the turbine cut-in and cut-out velocities. The velocity to power cure data is loaded into a table from a .csv file.
% We are importing velocity to power data
relative_file_name = 'data/river/tanana_VP_curve.csv';
current_dir = fileparts(matlab.desktop.editor.getActiveFilename);
full_file_name = fullfile(current_dir, relative_file_name);
VP_curve = readtable(full_file_name);
 
% Calculate the polynomial fit for the VP curve
p_VP = polynomial_fit(VP_curve.V, VP_curve.P,2); % Input is velocity vector, Power vector, and polynomial order
 
% Plot the VP polynomial curve
p3 = plot_velocity_vs_power(VP_curve.V, VP_curve.P,"polynomial_coeff", p_VP.coef,"title","Velocity vs. Power"); % Input is Velocity vector, Power vector, poly-coef, and Title
% Calculate power from velocity at the turbine location
P = velocity_to_power(V,p_VP.coef,min(VP_curve.V), max(VP_curve.V)); % Input is velocity structure, poly-coef, min and max of VP curve
 
% Plot the power duration curve
p4 = plot_power_duration_curve(P.P, F.F); % Input of power vector and exceedance probability vector

Annual Energy Produced

Finally, annual energy produced is computed, as shown below.
s = 365. * 24 * 3600; % Seconds in a year
 
% Calculate the Annual Energy produced
AEP = energy_produced(P, s); % Input is exceedance probability structure, Power structure, and number of sec in time period of interest
 
AEPMW = AEP/1000000; % MW unit conversion
 
disp('Annual Energy Produced = '+ string(AEPMW) + ' MW')
Annual Energy Produced = 19.0685 MW
+
% plot the daily discharge
plot_discharge_timeseries(data);

Flow Duration Curve

The flow duration curve (FDC) quantifies the percentage of time that the discharge in a river exceeds a particular magnitude typically compiled on a monthly or annual basis. The FDC is a plot of discharge versus exceedance probability.
The exceedance probability for the highest discharge is close to 0%, rarely being exceeded. Conversely, the lowest flowrates are found closer to 100% as they are most often exceeded.
% Calculating the exceedance probability structure (F) from the Discharge data structure
F = exceedance_probability(data);
 
% plotting the flow duration curve from Discharge and Exceedance Probability vectors
plot_flow_duration_curve(data.Discharge,F.F);

Velocity Duration Curve

At each river energy converter location, we must provide a curve that relates the velocity at the turbine location to the river discharge levels. IEC 301 recommends using at least 15 different discharges and that only velocities within the turbine operating conditions need to be included.
Here we only provide 6 different discharges to velocities created using a hydrological model. The data is read into a table from the .csv file.
% Import file with discharge to velocity curve at turbine location
DV_curve = readtable("./data/river/tanana_DV_curve.csv");
 
 
% Create a polynomial fit of order 3 from the DV_curve.
% The polynomial fit function will return a structure with polynomial fit and R^2 value
p = polynomial_fit(DV_curve.D,DV_curve.V,2); % Input of discharge, velocity, order of fit
 
 
% Plot the polynomial curve
plt=plot_discharge_vs_velocity(DV_curve.D,DV_curve.V,"polynomial_coeff",p.coef); % Input of Discharge vector, velocity vector, and polynomial coefficients
The IEC standard recommends a polynomial fit of order 3. By changing the order above and replotting the polynomial fit to the curve data it can be seen this is not a good fit for the provided data. Therefore, the order was set to 2.
Next, we can calculate velocity for each discharge in the 10 years of data using the polynomial and plot the VDC.
% Use polynomial fit from DV curve to calculate velocity('V') from
% discharge at turbine location
V = discharge_to_velocity(data, p.coef); % Input of discharge structure and polynomial coefficients
 
% Plot the velocity duration curve (VDC)
p2 = plot_velocity_duration_curve(V.V, F.F); % Input velocity vector and exceedance probability vector

Power Duration Curve

The power duration curve is created in a nearly identical manner to the VDC. Here a velocity to power curve will be used to create a polynomial fit. The polynomial fit will be used to calculate the power produced between the turbine cut-in and cut-out velocities. The velocity to power cure data is loaded into a table from a .csv file.
% We are importing velocity to power data
VP_curve = readtable("./data/river/tanana_VP_curve.csv");
 
% Calculate the polynomial fit for the VP curve
p_VP = polynomial_fit(VP_curve.V, VP_curve.P,2); % Input is velocity vector, Power vector, and polynomial order
 
% Plot the VP polynomial curve
p3 = plot_velocity_vs_power(VP_curve.V, VP_curve.P,"polynomial_coeff", p_VP.coef,"title","Velocity vs. Power"); % Input is Velocity vector, Power vector, poly-coef, and Title
% Calculate power from velocity at the turbine location
P = velocity_to_power(V,p_VP.coef,min(VP_curve.V), max(VP_curve.V)); % Input is velocity structure, poly-coef, min and max of VP curve
 
% Plot the power duration curve
p4 = plot_power_duration_curve(P.P, F.F); % Input of power vector and exceedance probability vector

Annual Energy Produced

Finally, annual energy produced is computed, as shown below.
s = 365. * 24 * 3600; % Seconds in a year
 
% Calculate the Annual Energy produced
AEP = energy_produced(P, s); % Input is exceedance probability structure, Power structure, and number of sec in time period of interest
 
AEPMW = AEP/1000000; % MW unit conversion
 
disp('Annual Energy Produced = '+ string(AEPMW) + ' MW')
Annual Energy Produced = 19.0685 MW

\ No newline at end of file diff --git a/examples/strain_measurement_example.m b/examples/strain_measurement_example.m index f59d11d3f..e6bd8d197 100644 --- a/examples/strain_measurement_example.m +++ b/examples/strain_measurement_example.m @@ -170,23 +170,11 @@ % force and moment are calculated using rosette pairs to eliminate the % effect of the bending moment on axial strain when calculating the normal % force, and vice versa. - -% Define helper functions -function normal = calculate_normal(axial_strain_1, axial_strain_2, elastic_modulus, shear_modulus, width, height, radius) - normal = 0.5 * (axial_strain_1 + axial_strain_2) * elastic_modulus * ... - (width * height - pi * radius^2); -end - -function moment = calculate_moment(axial_strain_1, axial_strain_2, elastic_modulus, shear_modulus, width, height, radius) - moment = (axial_strain_1 - axial_strain_2) / height * elastic_modulus * ... - (width * height^3 / 12 - pi * radius^4 / 4); -end - -function torsion = calculate_torsion(shear_strain, shear_modulus, width, height, radius) - polar_moment_of_inertia = (width^3 * height + width * height^3) / 12 - ... - pi * radius^4 / 2; - torsion = shear_strain * shear_modulus * polar_moment_of_inertia / (height / 2); -end +% +% MATLAB requires local functions in a script to be defined at the end of +% the file, so |calculate_normal|, |calculate_moment| and |calculate_torsion| +% are defined in the *Helper Functions* section at the bottom of this +% example. %% Calculate Normal Force and Bending Moments % @@ -306,3 +294,24 @@ % GitHub Repository (ca9709f), July 17, 2024. % https://github.com/MHKiT-Software/MHKiT-Python/commit/ca9709f1df066b32305ebf85acae3886b15003bd % + +%% Helper Functions +% +% Functions used to calculate the normal force, moment, and torsion from +% strain and the geometry of the cuboid. + +function normal = calculate_normal(axial_strain_1, axial_strain_2, elastic_modulus, shear_modulus, width, height, radius) + normal = 0.5 * (axial_strain_1 + axial_strain_2) * elastic_modulus * ... + (width * height - pi * radius^2); +end + +function moment = calculate_moment(axial_strain_1, axial_strain_2, elastic_modulus, shear_modulus, width, height, radius) + moment = (axial_strain_1 - axial_strain_2) / height * elastic_modulus * ... + (width * height^3 / 12 - pi * radius^4 / 4); +end + +function torsion = calculate_torsion(shear_strain, shear_modulus, width, height, radius) + polar_moment_of_inertia = (width^3 * height + width * height^3) / 12 - ... + pi * radius^4 / 2; + torsion = shear_strain * shear_modulus * polar_moment_of_inertia / (height / 2); +end diff --git a/examples/strain_measurement_example.mlx b/examples/strain_measurement_example.mlx index 3d54e494f..58d4573bd 100644 Binary files a/examples/strain_measurement_example.mlx and b/examples/strain_measurement_example.mlx differ diff --git a/examples/tidal_example.html b/examples/tidal_example.html index fa5d75c22..375c91fbb 100644 --- a/examples/tidal_example.html +++ b/examples/tidal_example.html @@ -1,13 +1,12 @@ -Example: MHKiT-MATLAB Tidal Module

Example: MHKiT-MATLAB Tidal Module

The following example will familiarize the user with the MHKiT tidal module by stepping through the calculation of the velocity duration curve. The data file used in this example is stored in the /mhkit/examples/data/river directory.

Load Data from NOAA-Currents

This example uses 1 year of data from the NOAA-Currents sites. A map of available currents stations is available at <https://tidesandcurrents.noaa.gov/map>. The tidal io module includes two functions to import data: request_noaa_data which pulls data from the website, and read_noaa_json which loads a json file. The request function can save the json file for later use.
For simplicity, this example loads data from a json file into a MATLAB Series. This data contains 1 year of 6-minute averaged data from the Southampton Shoal Channel LB 6 (Station Number: s08010) in San Francisco Bay. The data includes 6-minute averaged direction [degrees] and speed [cm/s] indexed by time. The structure names returned by NOAA are 'd' for direction and 's' for speed. Since MHKiT uses SI units, speed is converted to m/s.
% Create a file name to save the requested data to
relative_file_name = "data/tidal/s08010.json"; % South Hampton Shoal LB
current_dir = fileparts(matlab.desktop.editor.getActiveFilename);
full_file_name = fullfile(current_dir, relative_file_name);
 
data = read_noaa_json(full_file_name)
data = struct with fields:
id: "s08010" +.S6 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 6px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; } +.S7 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; } +.S8 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; } +.S9 { margin: 3px 10px 5px 4px; padding: 0px; line-height: 25px; min-height: 0px; white-space: pre-wrap; color: rgb(33, 33, 33); font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif; font-style: normal; font-size: 20px; font-weight: 700; text-align: left; }

Example: MHKiT-MATLAB Tidal Module

The following example will familiarize the user with the MHKiT tidal module by stepping through the calculation of the velocity duration curve. The data file used in this example is stored in the /mhkit/examples/data/river directory.

Load Data from NOAA-Currents

This example uses 1 year of data from the NOAA-Currents sites. A map of available currents stations is available at <https://tidesandcurrents.noaa.gov/map/ https://tidesandcurrents.noaa.gov/map>. The tidal io module includes two functions to import data: request_noaa_data which pulls data from the website, and read_noaa_json which loads a json file. The request function can save the json file for later use.
For simplicity, this example loads data from a json file into a MATLAB Series. This data contains 1 year of 6-minute averaged data from the Southampton Shoal Channel LB 6 (Station Number: s08010) in San Francisco Bay. The data includes 6-minute averaged direction [degrees] and speed [cm/s] indexed by time. The structure names returned by NOAA are 'd' for direction and 's' for speed. Since MHKiT uses SI units, speed is converted to m/s.
% Read the saved NOAA data
data = read_noaa_json("./data/tidal/s08010.json") % South Hampton Shoal LB
data = struct with fields:
id: "s08010" name: "Southampton Shoal Channel LB 6" lat: "37.9162" lon: "-122.4223" @@ -49,7 +49,7 @@ d: [18890×1 double] b: [18890×1 double] time: [1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 1.4786e+09 … ] (1×18890 double) -
% Example of how you could request NOAA-Currents data
%data = request_noaa_data("s08010","currents","20161101","20180401","write_json",currents_file);
 
 
% Convert discharge data from cm/s to m/s
data.s = data.s/100.;
The request_noaa_data has returned a MATLAB Structure of time series data between November of 2016 and March of 2018. The time series data points are 6-minute averaged direction [degrees] and speed [cm/s] data indexed by time. The structure key names returned by NOAA are 'd' for direction and 's' for speed. The speed returned from NOAA is in cm/s so we converted this to m/s.

Principal Flow Directions

An initial data check may look at the time series data to identify data gaps. To consider the velocity in one of the principal flow directions we apply the principal_flow_directions function. This function returns 2 directions (in degrees) corresponding to the flood and ebb directions of the tidal site. Principal flow directions are calculated based on the highest frequency directions. These directions are often close to 180 degrees apart, but are not required to be.
The plot_current_timeseries function plots velocity in either direction using the speed timeseries.
% We need to specify a histogram bin width for the directions to calculate
% the principal flow direction
width_direction = 1; % [degrees]
 
% Two principal directions are calculated based on the highest frequency
% direction
% One direction is the flood, the other is tide or ebb.
% they are 180 degrees apart, but not required to be
[direction1, direction2] = principal_flow_directions(data.d,width_direction);
 
% Set the flood and ebb directions based on site knowledge
flood = direction1 ; %flow into
ebb = direction2 ; % flow out
 
 
%plot the time series of current data using the flood direction
figure('Position', [100, 100, 1600, 600]);
plot_current_timeseries(data,flood);
The plot above shows that the NOAA site request did not return data for most of early and mid-2017. The IEC standard recommends a minimum of 1 year of 10-minute averaged data (See IEC 201 for full description). For the purposes of demonstration this dataset is sufficient. To look at a specific month we can slice the dataset before passing to the plotting function.
% Slice December of 2017 out of the full dataset
start = posixtime(datetime('2017-12-01','InputFormat','yyyy-MM-dd'));
stop = posixtime(datetime('2017-12-31','InputFormat','yyyy-MM-dd'));
index = data.time > start & data.time < stop ;
datadec.time = data.time(index);
datadec.s = data.s(index);
datadec.d = data.d(index);
 
figure('Position', [100, 100, 1600, 600]);
plot_current_timeseries(datadec,flood);

Joint Probability Distribution

Direction and velocity can be viewed as a joint probability distribution on a polar plot. This plot helps visually show the flood and ebb directions and the frequency of particular directional velocities.
% Set the joint probability bit widths
width_direction = 1 ; %[degrees]
width_velocity = 0.1 ; %[m/s]
 
% Plot the joint probability distribution
figure;
plot_joint_probability_distribution(data,width_direction,width_velocity);

Rose Plot

A rose plot shows the same information as the joint probability distribution, but the probability is now the r-axis, and the velocity is the contour value. As compared to a joint probability distribution plot, a rose plot can be more readable when using larger bins sizes.
% A rose plot is more readable using larger bin sizes than the jpd plot
width_direction = 10; % [degrees]
width_velocity = 0.25; %[m/s]
 
%plot the rose plot
%f2= figure;
figure;
plot_rose(data,width_direction,width_velocity,"flood_ebb",[flood,ebb]);

Velocity Duration Curve

The velocity duration curve shows the probability of achieving a particular velocity value. After computing the exceedance probability, the rank order of velocity values can be plotted as follows.
% Calculate the exceedance probability of the data
data.Discharge = data.s; % need to change structure name for exceedance probability function
F = exceedance_probability(data);
 
% Plot the VDC
 
figure('Position', [100, 100, 1600, 600]);
plot_velocity_duration_curve(data.s,F.F);
+
% Example of how you could request NOAA-Currents data
%data = request_noaa_data("s08010","currents","20161101","20180401","write_json","./data/tidal/s08010.json");
 
 
% Convert discharge data from cm/s to m/s
data.s = data.s/100.;
The request_noaa_data has returned a MATLAB Structure of time series data between November of 2016 and March of 2018. The time series data points are 6-minute averaged direction [degrees] and speed [cm/s] data indexed by time. The structure key names returned by NOAA are 'd' for direction and 's' for speed. The speed returned from NOAA is in cm/s so we converted this to m/s.

Principal Flow Directions

An initial data check may look at the time series data to identify data gaps. To consider the velocity in one of the principal flow directions we apply the principal_flow_directions function. This function returns 2 directions (in degrees) corresponding to the flood and ebb directions of the tidal site. Principal flow directions are calculated based on the highest frequency directions. These directions are often close to 180 degrees apart, but are not required to be.
The plot_current_timeseries function plots velocity in either direction using the speed timeseries.
% We need to specify a histogram bin width for the directions to calculate
% the principal flow direction
width_direction = 1; % [degrees]
 
% Two principal directions are calculated based on the highest frequency
% direction
% One direction is the flood, the other is tide or ebb.
% they are 180 degrees apart, but not required to be
[direction1, direction2] = principal_flow_directions(data.d,width_direction);
 
% Set the flood and ebb directions based on site knowledge
flood = direction1 ; %flow into
ebb = direction2 ; % flow out
 
 
%plot the time series of current data using the flood direction
figure('Position', [100, 100, 1600, 600]);
plot_current_timeseries(data,flood);
The plot above shows that the NOAA site request did not return data for most of early and mid-2017. The IEC standard recommends a minimum of 1 year of 10-minute averaged data (See IEC 201 for full description). For the purposes of demonstration this dataset is sufficient. To look at a specific month we can slice the dataset before passing to the plotting function.
% Slice December of 2017 out of the full dataset
start = posixtime(datetime('2017-12-01','InputFormat','yyyy-MM-dd'));
stop = posixtime(datetime('2017-12-31','InputFormat','yyyy-MM-dd'));
index = data.time > start & data.time < stop ;
datadec.time = data.time(index);
datadec.s = data.s(index);
datadec.d = data.d(index);
 
figure('Position', [100, 100, 1600, 600]);
plot_current_timeseries(datadec,flood);

Joint Probability Distribution

Direction and velocity can be viewed as a joint probability distribution on a polar plot. This plot helps visually show the flood and ebb directions and the frequency of particular directional velocities.
% Set the joint probability bit widths
width_direction = 1 ; %[degrees]
width_velocity = 0.1 ; %[m/s]
 
% Plot the joint probability distribution
figure;
plot_joint_probability_distribution(data,width_direction,width_velocity);

Rose Plot

A rose plot shows the same information as the joint probability distribution, but the probability is now the r-axis, and the velocity is the contour value. As compared to a joint probability distribution plot, a rose plot can be more readable when using larger bins sizes.
% A rose plot is more readable using larger bin sizes than the jpd plot
width_direction = 10; % [degrees]
width_velocity = 0.25; %[m/s]
 
%plot the rose plot
%f2= figure;
figure;
plot_rose(data,width_direction,width_velocity,"flood_ebb",[flood,ebb]);

Velocity Duration Curve

The velocity duration curve shows the probability of achieving a particular velocity value. After computing the exceedance probability, the rank order of velocity values can be plotted as follows.
% Calculate the exceedance probability of the data
data.Discharge = data.s; % need to change structure name for exceedance probability function
F = exceedance_probability(data);
 
% Plot the VDC
 
figure('Position', [100, 100, 1600, 600]);
plot_velocity_duration_curve(data.s,F.F);

\ No newline at end of file diff --git a/examples/wave_example.m b/examples/wave_example.m index 3921da543..2bde1c373 100644 --- a/examples/wave_example.m +++ b/examples/wave_example.m @@ -1,108 +1,193 @@ %% Example: MHKiT-MATLAB Wave Module % The following example runs an application of the to 1) generate a capture length matrix, 2) calculate MAEP, +% MHKiT wave module> to 1) generate a capture width matrix, 2) calculate MAEP, % and 3) plot the scatter diagrams. -%% Load NDBC Data -% We can use MHKiT to load data downloaded from . - -relative_file_name = './data/wave/data.txt'; -current_dir = fileparts(matlab.desktop.editor.getActiveFilename); -full_file_name = fullfile(current_dir, relative_file_name); -ndbc_data = read_NDBC_file(full_file_name); -disp(ndbc_data) - +%% Load CDIP Wave Measurement Data PacWave North, CDIP 277 +% This example uses one year (2025) of wave spectra from the PacWave +% North buoy off Newport, Oregon, published by CDIP as +% . The spectra are +% requested from the CDIP THREDDS server with |cdip_request_parse_workflow|. +% +% A saved copy of that request is shipped with the examples so this script +% runs without network access. A working request is shown commented out +% below. + +station_number = '277'; + +% cdip = cdip_request_parse_workflow('station_number', station_number, ... +% 'data_type', 'historic', ... +% 'start_date', '2025-01-01', 'end_date', '2025-12-31', ... +% 'parameters', {'waveEnergyDensity', 'metaWaterDepth'}); +% % waveEnergyDensity is stored [time x frequency]; MHKiT uses frequency +% % down the rows and one spectrum per column +% S.frequency = double(cdip.metadata.wave.waveFrequency(:)); +% S.spectrum = double(cdip.data.wave2D.waveEnergyDensity'); +% S.time = cdip.data.wave.waveTime(:); +% S.time.TimeZone = 'UTC'; +% % Water depth at the buoy [m], a scalar metadata variable in the NetCDF +% h = double(cdip.metadata.meta.metaWaterDepth); + +% Saved copy of the request above +saved = load('./data/wave/cdip_277_2025.mat'); +S.frequency = saved.cdip_277.frequency; +S.spectrum = double(saved.cdip_277.spectrum); % stored as single, as CDIP publishes it +S.time = saved.cdip_277.time; +h = saved.cdip_277.water_depth; % [m], from metaWaterDepth +fprintf('Using saved CDIP 277 data downloaded %s UTC\n', saved.cdip_277.downloaded); +disp(S) +time = S.time; + +% Shared plot title suffix +title_suffix = sprintf('CDIP %s, %s', station_number, datetime(time(1), 'Format', 'yyyy')); %% Compute Wave Metrics % We will now use MHKiT to compute the significant wave height, energy period, -% and energy flux. - -% Compute the energy periods from the NDBC spectra data -Te = energy_period(ndbc_data); -disp(Te) -% Compute the significant wave height from the NDBC spectra data -Hm0 = significant_wave_height(ndbc_data); -disp(Hm0) -% Set water depth to 60 m -h = 60; - -% Compute the energy flux from the NDBC spectra data and water depth -J = energy_flux(ndbc_data,h); -disp(J) -%% Generate Random Power Data -% For demonstration purposes, this example uses synthetic power data generated -% from statistical distributions. In a real application, the user would provide -% power values from a WEC. - -% generating 1,000,000 random power values -Power = randi([40,200], 743,1); -disp(Power) -%% Capture Length Matrices -% The following operations create capture length matrices, as specified by the -% IEC/TS 62600-100. But first, we need to calculate capture length and define -% bin centers. The mean capture length matrix is printed below. Keep in mind that -% this data has been artificially generated, so it may not be representative of -% what a real-world scatter diagram would look like. - -% calculating capture length with power and wave flux in vectors -L = capture_length(Power,J) - -% Need to set our Hm0 and Te bins for the capture length matrix -Hm0_bins = -0.5:0.5:max(fix(Hm0))+0.5; % Input is min, max, and n indices for vector -Hm0_bins = Hm0_bins+0.25 ; -Te_bins = 0:1:max(fix(Te)); -Te_bins = Te_bins+0.5; - -% Calculate the necessary capture length matrices for each statistic based +% and energy flux from each wave spectrum. + +Hm0 = significant_wave_height(S); % [m] +Te = energy_period(S); % [s] +J = energy_flux(S, h); % [W/m], uses the water depth + +figure('Position', [100 100 900 700]); +tiledlayout(3, 1, 'TileSpacing', 'compact'); +sgtitle(sprintf('Wave Metrics | %s', title_suffix)) +nexttile; plot(time, Hm0); ylabel('H_{m0} [m]'); title('Significant Wave Height'); grid on +nexttile; plot(time, Te); ylabel('T_e [sec]'); title('Energy Period'); grid on +nexttile; plot(time, J / 1000); ylabel('J [kW/m]'); title('Wave Energy Flux'); grid on; xlabel('Time [UTC]') +%% Joint Probability Distribution +% The joint probability distribution (JPD) is the fraction of records that +% fall in each Hm0 and Te bin, and it depends only on the wave resource. +% |plot_wave_joint_probability_distribution| bins the sea states on the +% IEC/TS 62600-100 grid (0.5 m Hm0 and 1 s Te bins with edges on 0, 0.5, 1, +% ... m and 0, 1, 2, ... s), plots the JPD as a percentage with the empty bins +% left blank, and returns the JPD matrix struct. + +figure('Position', [100 100 1000 800]); +[~, jpd] = plot_wave_joint_probability_distribution(Hm0, Te, ... + 'title', sprintf('Joint Probability Distribution | %s', title_suffix)); + +% The same bins are used for the capture width and power matrices below +Hm0_bins = jpd.y_bins; +Te_bins = jpd.x_bins; +%% Model Device Power Using DOE Reference Models +% In a real application, the user would provide power values measured from a +% WEC. This example instead looks up each sea state in the power matrix of a +% device from the , a U.S. Department of Energy effort that developed +% open-source marine energy point designs to benchmark technology performance +% and costs. MHKiT ships the matrices for Reference Model 3 (wave point +% absorber), 5 (oscillating surge flap), and 6 (oscillating water column) from +% the ; change |device| to switch. The devices are +% described in Neary et al. (2014), , +% SAND2014-9040, Sandia National Laboratories. + +device = "RM3"; % "RM3", "RM5", or "RM6" +reference_model = reference_model_power_matrix(device); +disp(reference_model.description) +disp(reference_model.data_source) + +reference_model_kW = reference_model; +reference_model_kW.values = reference_model.values / 1000; +figure('Position', [100 100 1000 800]); +ax_device = mhkit_plot_matrix(reference_model_kW, ... + 'xlabel', 'Energy Period, T_e [sec]', 'ylabel', 'Significant Wave Height, H_{m0} [m]', ... + 'zlabel', 'Power [kW]', 'trim_to_data', true, 'value_format', '%.0f', 'font_size', 8); +title(ax_device, sprintf('%s Power Matrix | Neary et al. (2014)', device)); + +% Interpolate between bin centers; sea states outside the matrix produce no power +Power = interp2(reference_model.x_bins, reference_model.y_bins, reference_model.values, ... + Te, Hm0, 'linear', 0); % [W] + +figure('Position', [100 100 900 350]); +plot(time, Power / 1000); ylabel('Modeled Power [kW]'); xlabel('Time [UTC]'); grid on +title(sprintf('Modeled %s Power | %s', device, title_suffix)) +%% Capture Width +% The following operations create capture width matrices, as specified by the +% IEC/TS 62600-100, on the same Hm0 and Te bins as the JPD. But first, we need +% to calculate capture width. Keep in mind that the power comes from a modeled +% power matrix, not measurements, so the capture width varies smoothly with +% the sea state. + +% calculating capture width with power and wave flux in vectors +CW = capture_width(Power, J); + +% Calculate the necessary capture width matrices for each statistic based % on IEC/TS 62600-100 -clmat.mean = capture_length_matrix(Hm0,Te,L,"mean",Hm0_bins,Te_bins); -clmat.std = capture_length_matrix(Hm0,Te,L,"std",Hm0_bins,Te_bins); -clmat.count = capture_length_matrix(Hm0,Te,L,"count",Hm0_bins,Te_bins); -clmat.min = capture_length_matrix(Hm0,Te,L,"min",Hm0_bins,Te_bins); -clmat.max = capture_length_matrix(Hm0,Te,L,"max",Hm0_bins,Te_bins); - -% Calculate the frequency matrix for convenience -clmat.freq = capture_length_matrix(Hm0,Te,L,"frequency",Hm0_bins,Te_bins); +cwmat.mean = capture_width_matrix(Hm0, Te, CW, "mean", Hm0_bins, Te_bins); +cwmat.std = capture_width_matrix(Hm0, Te, CW, "std", Hm0_bins, Te_bins); +cwmat.count = capture_width_matrix(Hm0, Te, CW, "count", Hm0_bins, Te_bins); +cwmat.min = capture_width_matrix(Hm0, Te, CW, "min", Hm0_bins, Te_bins); +cwmat.max = capture_width_matrix(Hm0, Te, CW, "max", Hm0_bins, Te_bins); %% -% Let's see what the data in the mean matrix looks like. Keep in mind that this -% data has been artificially generated, so it may not be representative of what -% a real-world scatter diagram would look like. - -disp(clmat.mean.values) -%% Power Matrices +% The graphics function |plot_matrix| visualizes a matrix struct. Each bin is +% drawn between its edges with the tick marks at the bin edges, and +% |trim_to_data| limits the axes to the bins that hold data plus one empty +% bin around them. + +figure('Position', [100 100 1000 800]); +ax_cw = plot_matrix(cwmat.mean, "Capture Width", "zlabel", "Capture Width [m]", ... + "trim_to_data", true, "font_size", 8); +title(ax_cw, sprintf('Modeled %s Mean Capture Width Matrix | %s', device, title_suffix)); +%% Power Matrix % As specified in IEC/TS 62600-100, the power matrix is generated from the capture -% length matrix and wave energy flux matrix, as shown below +% width matrix and wave energy flux matrix, as shown below % Create wave energy flux matrix using mean -jmat = wave_energy_flux_matrix(Hm0,Te,J,"mean",Hm0_bins,Te_bins); +jmat = wave_energy_flux_matrix(Hm0, Te, J, "mean", Hm0_bins, Te_bins); % Create power matrix using mean -avg_power_mat = power_matrix(clmat.mean, jmat); +avg_power_mat = power_matrix(cwmat.mean, jmat); % Create power matrix using standard deviation -std_power_mat = power_matrix(clmat.std, jmat); +std_power_mat = power_matrix(cwmat.std, jmat); %% -% The |capture_length_matrix| function can also be used as an arbitrary scatter +% The |capture_width_matrix| function can also be used as an arbitrary scatter % plot generator. To do this, simply pass a different array in the place of capture -% length (L). For example, while not specified by the IEC standards, if the user +% width (CW). For example, while not specified by the IEC standards, if the user % doesn't have the omnidirectional wave flux, the average power matrix could hypothetically % be generated in the following manner: -avgpowmat_not_standard = capture_length_matrix(Hm0,Te,Power,'mean',Hm0_bins,Te_bins); -%% MAEP +avgpowmat_not_standard = capture_width_matrix(Hm0, Te, Power, 'mean', Hm0_bins, Te_bins); +%% +% The underlying |mhkit_plot_matrix| function accepts any matrix struct and +% custom axis labels. Here the mean power matrix is plotted in kW. + +avg_power_mat_kW = avg_power_mat; +avg_power_mat_kW.values = avg_power_mat.values / 1000; +figure('Position', [100 100 1000 800]); +ax_power = mhkit_plot_matrix(avg_power_mat_kW, 'xlabel', 'Energy Period, T_e [sec]', 'ylabel', 'Significant Wave Height, H_{m0} [m]', ... + 'zlabel', 'Mean Power [kW]', 'trim_to_data', true, 'value_format', '%.1f kW', 'font_size', 8); +title(ax_power, sprintf('Modeled %s Mean Power Matrix | %s', device, title_suffix)); +%% Energy Production +% The modeled power series gives the energy production of the device at this +% site, first month by month and then as the mean annual energy production +% (MAEP) defined by IEC/TS 62600-100. +%% Monthly Energy Production +% Each record is a 30 minute average, so the energy per record is the power +% times that duration. Summing the records by month shows how the energy +% production is distributed through the year. + +record_hours = hours(median(diff(time))); +energy_MWh = Power * record_hours / 1e6; % [MWh] per record +monthly_MWh = accumarray(month(time), energy_MWh, [12 1]); + +figure('Position', [100 100 900 400]); +bar(1:12, monthly_MWh); +xticks(1:12); xticklabels(month(datetime(2025, 1:12, 1), 'shortname')); +ylabel('Energy [MWh]'); grid on +yline(mean(monthly_MWh), '--', 'Monthly mean', 'LabelHorizontalAlignment', 'left'); +title(sprintf('Modeled %s Monthly Energy Production | %s', device, title_suffix)) +%% Mean Annual Energy Production % There are two ways to calculate mean annual energy production (MAEP). One -% is from capture length and wave energy flux matrices, the other is from time +% is from capture width and wave energy flux matrices, the other is from time % series data, as shown below. -% -% % Calculate maep from timeseries -maep_timeseries = mean_annual_energy_production_timeseries(L,J) +maep_timeseries = mean_annual_energy_production_timeseries(CW, J); % [W*h] % Calculate maep from matrix -maep_matrix = mean_annual_energy_production_matrix(clmat.mean, jmat , clmat.freq) -%% Graphics -% The graphics function |plot_matrix| can be used to visualize results. It is -% important to note that the plotting function assumes the step size between bins -% to be linear. - -% Plot the capture length matrix -p1 = plot_matrix(clmat.mean,"Capture Length", "annotate", false); +maep_matrix = mean_annual_energy_production_matrix(cwmat.mean, jmat, jpd); % [W*h] + +% MHKiT returns energy in W*h; report in MWh +fprintf('Modeled %s MAEP from time series: %.0f MWh\n', device, maep_timeseries / 1e6); +fprintf('Modeled %s MAEP from matrices: %.0f MWh\n', device, maep_matrix / 1e6); diff --git a/examples/wave_example.mlx b/examples/wave_example.mlx index 1020bbc25..d73197373 100644 Binary files a/examples/wave_example.mlx and b/examples/wave_example.mlx differ diff --git a/examples/wecsim_power_performance_example.html b/examples/wecsim_power_performance_example.html index 1ef065882..169374bc6 100644 --- a/examples/wecsim_power_performance_example.html +++ b/examples/wecsim_power_performance_example.html @@ -1,11 +1,11 @@ -MHKiT WEC-Sim Power Performance Example

MHKiT WEC-Sim Power Performance Example

This notebook demonstrates using the MHKiT wave module and WEC-Sim together to perform a resource characterization study in MHKiT, simulate representative cases with WEC-Sim, and visualize the results in MHKiT to estimate MAEP (Mean Annual Energy Production).
1. Characterize the available resource at a location
- See the PacWave example notebook
2. Write a WEC-Sim batch file for the given clusters
3. Simulate the device in WEC-Sim.
- Ensure that the spectra used in WEC-Sim is identical to the one used in MHKiT.
4. Load WEC-Sim batch results
5. Assess results and visualize quantities of interest
This example uses WEC-Sim to simulate the [Oscillating Surge Wave Energy Converter (OSWEC)](https://wec-sim.github.io/WEC-Sim/main/user/tutorials.html#oscillating-surge-wec-oswec), a flap-type device.

1. Characterize the available resource at a location

This example will use an abbreviated version of `PacWave_resource_characterization_example.ipynb`.
For full details on downloading, calculating, and visualizing the k-means clusters representation of the site's wave resouce, see that example.
We select the N=32 cluster as it's total energy flux is closet to the total energy flux of the site considering all wave conditions. We will load the PacWave example output, which can be easily saved after running the example with the command `results[32].to_csv("pacwave_cluster_32.csv")`. We will start this example by reading in that csv output and formatting it for WEC-Sim.
% Relative location and filename of simulated WEC-Sim data (run with mooring)
filename = './data/wave/pacwave_cluster_32.csv'
filename = './data/wave/pacwave_cluster_32.csv'
results = readtable(filename)
results = 32×6 table
 Var1TeHm0weightsTpJ
107.97451.25400.05899.29436.0311e+03
2110.79452.64140.035212.58103.7004e+04
326.90201.95310.05208.04431.2516e+04
4312.66767.31010.005114.76413.6745e+05
5412.89372.26230.016015.02763.6455e+04
6510.55764.75430.017312.30491.1678e+05
768.76672.73940.043610.21763.1826e+04
876.53741.30560.05077.61945.2724e+03
989.66631.34070.037111.26618.4436e+03
10912.78733.92040.016514.90361.0768e+05
111011.60591.82100.022313.52671.9446e+04
12117.58411.87870.05468.83931.2827e+04
131210.17546.13390.008811.85951.8819e+05
14139.31944.58740.018810.86179.5155e+04
15147.22901.25670.05778.42545.4490e+03
16155.64701.33910.03216.58154.7508e+03
17167.61602.63460.03658.87642.5340e+04
18179.46043.38110.033811.02615.2509e+04
191816.00043.04420.004318.64858.7447e+04
201910.55031.56360.030312.29641.2622e+04
212011.81742.98290.021713.77325.3748e+04
222112.10115.30570.014514.10391.7731e+05
232210.40003.58830.032312.12136.5405e+04
24239.13252.01160.048110.64401.7913e+04
25249.88032.46290.050611.51552.9157e+04
26258.32182.00310.05429.69911.6105e+04
27266.13141.79440.03547.14619.2960e+03
282711.43073.97990.025313.32259.0735e+04
292814.26382.78170.009416.62456.6183e+04
302913.74425.46520.007516.01882.4048e+05
31308.73531.27060.047110.18096.8213e+03
32318.30173.67680.02219.67575.4123e+04

2. Write a WEC-Sim batch file for the given clusters

WEC-Sim MCR (multiple condition run) files should contain a structure `mcr` that contains two variables: `header` and `cases`. Each column of `header` and `cases` denotes a variable and it's value respectively. Each row is distinct simulation. WEC-Sim defines waves using the significant wave height and peak period. We will isolate these values from the results of the cluster analysis and create a dictionary that is written to the `.mat` file.
mcr = struct();
mcr.header = {'waves.height','waves.period'};
mcr.cases = [results.Hm0 results.Tp]
mcr = struct with fields:
header: {'waves.height' 'waves.period'} +.S8 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 0px none rgb(33, 33, 33); border-radius: 0px; padding: 0px 45px 0px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; } +.S9 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 1px solid rgb(217, 217, 217); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px 0px 4px 4px; padding: 6px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; } +.S10 { border-left: 1px solid rgb(217, 217, 217); border-right: 1px solid rgb(217, 217, 217); border-top: 0px none rgb(33, 33, 33); border-bottom: 1px solid rgb(217, 217, 217); border-radius: 0px 0px 4px 4px; padding: 0px 45px 4px 13px; line-height: 18.004px; min-height: 0px; white-space: nowrap; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, "Courier New", monospace, Menlo, Monaco, Consolas, "Courier New", monospace; font-size: 14px; }

MHKiT WEC-Sim Power Performance Example

This notebook demonstrates using the MHKiT wave module and WEC-Sim together to perform a resource characterization study in MHKiT, simulate representative cases with WEC-Sim, and visualize the results in MHKiT to estimate MAEP (Mean Annual Energy Production).
1. Characterize the available resource at a location
- See the PacWave example notebook
2. Write a WEC-Sim batch file for the given clusters
3. Simulate the device in WEC-Sim.
- Ensure that the spectra used in WEC-Sim is identical to the one used in MHKiT.
4. Load WEC-Sim batch results
5. Assess results and visualize quantities of interest
This example uses WEC-Sim to simulate the Oscillating Surge Wave Energy Converter (OSWEC), a flap-type device.

1. Characterize the available resource at a location

This example will use an abbreviated version of PacWave_resource_characterization_example.ipynb.
For full details on downloading, calculating, and visualizing the k-means clusters representation of the site's wave resouce, see that example.
We select the N=32 cluster as it's total energy flux is closet to the total energy flux of the site considering all wave conditions. We will load the PacWave example output, which can be easily saved after running the example with the command results[32].to_csv("pacwave_cluster_32.csv"). We will start this example by reading in that csv output and formatting it for WEC-Sim.
% Relative location and filename of simulated WEC-Sim data (run with mooring)
filename = './data/wave/pacwave_cluster_32.csv'
filename = './data/wave/pacwave_cluster_32.csv'
results = readtable(filename)
results = 32×6 table
Var1TeHm0weightsTpJ
107.97451.25400.05899.29436.0311e+03
2110.79452.64140.035212.58103.7004e+04
326.90201.95310.05208.04431.2516e+04
4312.66767.31010.005114.76413.6745e+05
5412.89372.26230.016015.02763.6455e+04
6510.55764.75430.017312.30491.1678e+05
768.76672.73940.043610.21763.1826e+04
876.53741.30560.05077.61945.2724e+03
989.66631.34070.037111.26618.4436e+03
10912.78733.92040.016514.90361.0768e+05
111011.60591.82100.022313.52671.9446e+04
12117.58411.87870.05468.83931.2827e+04
131210.17546.13390.008811.85951.8819e+05
14139.31944.58740.018810.86179.5155e+04
⋮

2. Write a WEC-Sim batch file for the given clusters

WEC-Sim MCR (multiple condition run) files should contain a structure mcr that contains two variables: header and cases. Each column of header and cases denotes a variable and it's value respectively. Each row is distinct simulation. WEC-Sim defines waves using the significant wave height and peak period. We will isolate these values from the results of the cluster analysis and create a dictionary that is written to the .mat file.
mcr = struct();
mcr.header = {'waves.height','waves.period'};
mcr.cases = [results.Hm0 results.Tp]
mcr = struct with fields:
header: {'waves.height' 'waves.period'} cases: [32×2 double] -
save('mcr_mhkit.mat', 'mcr');

3. Simulate the device in WEC-Sim

Now that the MCR file is created, we need to go simulate WEC performance in these wave conditions using WEC-Sim. To recreate the data used in the next step, use the created MCR file with WEC-Sim's OSWEC example. For an accurate comparison to the power calculated in the resource characterization, we should ensure that the WEC-Sim cases use irregular JONSWAP wave spectra as in the PacWave example.
For convenience in this demonstration, we enforce OSWEC model stability in the extreme wave conditions by arbitrarily applying a large PTO stiffness and damping in the wecSimInputFile.m:
% pto(1).stiffness = 1e5;
% pto(1).damping = 5e7;
To reduce the amount of extranenous data saved for this example, we limit the WEC-Sim output to the PTO's power output in the `userDefinedFunctions.m` script:
% if exist('imcr','var')
% if imcr == 1
% nmcr = size(mcr.cases,1);
% power = nan(1, nmcr);
% end
%
% iRampEnd = simu.rampTime./simu.dtOut + 1;
% power(imcr) = -mean(output.ptos(1).powerInternalMechanics(iRampEnd:end,5));
%
% if imcr == nmcr
% % % Save output
% save('mcr_mhkit_power.mat', 'power');
% end
% end
% bodies = output.bodies;

4. Load WEC-Sim batch results

Note that in this example we do not save the entire WEC-Sim `output` structure for each case. See the `wecsim_example.ipynb` for information on loading the WEC-Sim responseClass. Here, the output is one array of average power output that we will load and compare to the resource characterization.
Note that the power output [W] is significantly larger than the energy flux [W/m] due to the large width of the OSWEC.
% Relative location and filename of simulated WEC-Sim data (run with mooring)
filename = './data/wave/mcr_mhkit_power.mat';
% Load the WEC-Sim output data which contains the variable `power`.
load(filename)
results.Power = power'
results = 32×7 table
 Var1TeHm0weightsTpJPower
107.97451.25400.05899.29436.0311e+036.8613e+04
2110.79452.64140.035212.58103.7004e+043.8735e+05
326.90201.95310.05208.04431.2516e+041.9234e+05
4312.66767.31010.005114.76413.6745e+051.9512e+06
5412.89372.26230.016015.02763.6455e+043.1159e+05
6510.55764.75430.017312.30491.1678e+058.4103e+05
768.76672.73940.043610.21763.1826e+043.3986e+05
876.53741.30560.05077.61945.2724e+038.3326e+04
989.66631.34070.037111.26618.4436e+036.9516e+04
10912.78733.92040.016514.90361.0768e+055.0688e+05
111011.60591.82100.022313.52671.9446e+041.6020e+05
12117.58411.87870.05468.83931.2827e+042.1125e+05
131210.17546.13390.008811.85951.8819e+052.4020e+06
14139.31944.58740.018810.86179.5155e+041.0677e+06
15147.22901.25670.05778.42545.4490e+036.4143e+04
16155.64701.33910.03216.58154.7508e+037.3289e+04
17167.61602.63460.03658.87642.5340e+043.6720e+05
18179.46043.38110.033811.02615.2509e+044.0202e+05
191816.00043.04420.004318.64858.7447e+042.4145e+05
201910.55031.56360.030312.29641.2622e+041.3351e+05
212011.81742.98290.021713.77325.3748e+043.5522e+05
222112.10115.30570.014514.10391.7731e+051.3432e+06
232210.40003.58830.032312.12136.5405e+047.3683e+05
24239.13252.01160.048110.64401.7913e+041.9988e+05
25249.88032.46290.050611.51552.9157e+042.7157e+05
26258.32182.00310.05429.69911.6105e+042.3197e+05
27266.13141.79440.03547.14619.2960e+031.4780e+05
282711.43073.97990.025313.32259.0735e+049.3911e+05
292814.26382.78170.009416.62456.6183e+042.0003e+05
302913.74425.46520.007516.01882.4048e+058.6862e+05
31308.73531.27060.047110.18096.8213e+038.5504e+04
32318.30173.67680.02219.67575.4123e+047.5789e+05

5. Assess results and visualize quantities of interest

Now that we have loaded the OSWEC's modeled power, we can assess it's performance relative to the incoming wave and calculate the mean annual energy production (MAEP) using MHKiT.
results.CW = capture_length(results.Power, results.J)';
 
oswec_width = 18;
results.CWR = results.CW / oswec_width
results = 32×9 table
 Var1TeHm0weightsTpJPowerCWCWR
107.97451.25400.05899.29436.0311e+036.8613e+0411.37650.6320
2110.79452.64140.035212.58103.7004e+043.8735e+0510.46770.5815
326.90201.95310.05208.04431.2516e+041.9234e+0515.36730.8537
4312.66767.31010.005114.76413.6745e+051.9512e+065.31000.2950
5412.89372.26230.016015.02763.6455e+043.1159e+058.54710.4748
6510.55764.75430.017312.30491.1678e+058.4103e+057.20150.4001
768.76672.73940.043610.21763.1826e+043.3986e+0510.67870.5933
876.53741.30560.05077.61945.2724e+038.3326e+0415.80410.8780
989.66631.34070.037111.26618.4436e+036.9516e+048.23290.4574
10912.78733.92040.016514.90361.0768e+055.0688e+054.70730.2615
111011.60591.82100.022313.52671.9446e+041.6020e+058.23800.4577
12117.58411.87870.05468.83931.2827e+042.1125e+0516.46880.9149
131210.17546.13390.008811.85951.8819e+052.4020e+0612.76380.7091
14139.31944.58740.018810.86179.5155e+041.0677e+0611.22080.6234
15147.22901.25670.05778.42545.4490e+036.4143e+0411.77140.6540
16155.64701.33910.03216.58154.7508e+037.3289e+0415.42660.8570
17167.61602.63460.03658.87642.5340e+043.6720e+0514.49100.8051
18179.46043.38110.033811.02615.2509e+044.0202e+057.65630.4253
191816.00043.04420.004318.64858.7447e+042.4145e+052.76110.1534
201910.55031.56360.030312.29641.2622e+041.3351e+0510.57700.5876
212011.81742.98290.021713.77325.3748e+043.5522e+056.60900.3672
222112.10115.30570.014514.10391.7731e+051.3432e+067.57580.4209
232210.40003.58830.032312.12136.5405e+047.3683e+0511.26560.6259
24239.13252.01160.048110.64401.7913e+041.9988e+0511.15810.6199
25249.88032.46290.050611.51552.9157e+042.7157e+059.31410.5174
26258.32182.00310.05429.69911.6105e+042.3197e+0514.40370.8002
27266.13141.79440.03547.14619.2960e+031.4780e+0515.89990.8833
282711.43073.97990.025313.32259.0735e+049.3911e+0510.35010.5750
292814.26382.78170.009416.62456.6183e+042.0003e+053.02240.1679
302913.74425.46520.007516.01882.4048e+058.6862e+053.61210.2007
31308.73531.27060.047110.18096.8213e+038.5504e+0412.53480.6964
32318.30173.67680.02219.67575.4123e+047.5789e+0514.00310.7779
Calculate and display the mean annual energy production.
CW.values = results.CW;
J.values = results.J;
weights.values = results.weights;
MAEP = mean_annual_energy_production_matrix(CW, J, weights) / 1000 % kWh
MAEP = 2.8651e+06
+
save('mcr_mhkit.mat', 'mcr');

3. Simulate the device in WEC-Sim

Now that the MCR file is created, we need to go simulate WEC performance in these wave conditions using WEC-Sim. To recreate the data used in the next step, use the created MCR file with WEC-Sim's OSWEC example. For an accurate comparison to the power calculated in the resource characterization, we should ensure that the WEC-Sim cases use irregular JONSWAP wave spectra as in the PacWave example.
For convenience in this demonstration, we enforce OSWEC model stability in the extreme wave conditions by arbitrarily applying a large PTO stiffness and damping in the wecSimInputFile.m:
% pto(1).stiffness = 1e5;
% pto(1).damping = 5e7;
To reduce the amount of extranenous data saved for this example, we limit the WEC-Sim output to the PTO's power output in the userDefinedFunctions.m script:
% if exist('imcr','var')
% if imcr == 1
% nmcr = size(mcr.cases,1);
% power = nan(1, nmcr);
% end
%
% iRampEnd = simu.rampTime./simu.dtOut + 1;
% power(imcr) = -mean(output.ptos(1).powerInternalMechanics(iRampEnd:end,5));
%
% if imcr == nmcr
% % % Save output
% save('mcr_mhkit_power.mat', 'power');
% end
% end
% bodies = output.bodies;

4. Load WEC-Sim batch results

Note that in this example we do not save the entire WEC-Sim output structure for each case. See the wecsim_example.ipynb for information on loading the WEC-Sim responseClass. Here, the output is one array of average power output that we will load and compare to the resource characterization.
Note that the power output [W] is significantly larger than the energy flux [W/m] due to the large width of the OSWEC.
% Relative location and filename of simulated WEC-Sim data (run with mooring)
filename = './data/wave/mcr_mhkit_power.mat';
% Load the WEC-Sim output data which contains the variable |power|.
load(filename)
results.Power = power'
results = 32×7 table
Var1TeHm0weightsTpJPower
107.97451.25400.05899.29436.0311e+036.8613e+04
2110.79452.64140.035212.58103.7004e+043.8735e+05
326.90201.95310.05208.04431.2516e+041.9234e+05
4312.66767.31010.005114.76413.6745e+051.9512e+06
5412.89372.26230.016015.02763.6455e+043.1159e+05
6510.55764.75430.017312.30491.1678e+058.4103e+05
768.76672.73940.043610.21763.1826e+043.3986e+05
876.53741.30560.05077.61945.2724e+038.3326e+04
989.66631.34070.037111.26618.4436e+036.9516e+04
10912.78733.92040.016514.90361.0768e+055.0688e+05
111011.60591.82100.022313.52671.9446e+041.6020e+05
12117.58411.87870.05468.83931.2827e+042.1125e+05
131210.17546.13390.008811.85951.8819e+052.4020e+06
14139.31944.58740.018810.86179.5155e+041.0677e+06
⋮

5. Assess results and visualize quantities of interest

Now that we have loaded the OSWEC's modeled power, we can assess it's performance relative to the incoming wave and calculate the mean annual energy production (MAEP) using MHKiT.
results.CW = capture_width(results.Power, results.J);
 
oswec_width = 18;
results.CWR = results.CW / oswec_width
results = 32×9 table
Var1TeHm0weightsTpJPowerCWCWR
107.97451.25400.05899.29436.0311e+036.8613e+0411.37650.6320
2110.79452.64140.035212.58103.7004e+043.8735e+0510.46770.5815
326.90201.95310.05208.04431.2516e+041.9234e+0515.36730.8537
4312.66767.31010.005114.76413.6745e+051.9512e+065.31000.2950
5412.89372.26230.016015.02763.6455e+043.1159e+058.54710.4748
6510.55764.75430.017312.30491.1678e+058.4103e+057.20150.4001
768.76672.73940.043610.21763.1826e+043.3986e+0510.67870.5933
876.53741.30560.05077.61945.2724e+038.3326e+0415.80410.8780
989.66631.34070.037111.26618.4436e+036.9516e+048.23290.4574
10912.78733.92040.016514.90361.0768e+055.0688e+054.70730.2615
111011.60591.82100.022313.52671.9446e+041.6020e+058.23800.4577
12117.58411.87870.05468.83931.2827e+042.1125e+0516.46880.9149
131210.17546.13390.008811.85951.8819e+052.4020e+0612.76380.7091
14139.31944.58740.018810.86179.5155e+041.0677e+0611.22080.6234
⋮
Calculate and display the mean annual energy production.
CW.values = results.CW;
J.values = results.J;
weights.values = results.weights;
MAEP = mean_annual_energy_production_matrix(CW, J, weights) / 1000 % kWh
MAEP = 2.8651e+06

- - - - - - - - - -
-

-

- -

-

-
-
-
-
-
-
-
-
-
-
-
-
- -

-

-
-
-
-
-
-
-
- -

-

-
-
-
- - - - diff --git a/mhkit/tests/coverage_report/release/bundle.index.js b/mhkit/tests/coverage_report/release/bundle.index.js deleted file mode 100644 index 68f76762e..000000000 --- a/mhkit/tests/coverage_report/release/bundle.index.js +++ /dev/null @@ -1,209 +0,0 @@ -(function(C){function x(e){for(var t=e[0],r=e[1],i,a,s=0,c=[];s=0;--Y)J=z[Y].prototype,J.hasOwnProperty("declaredClass")||(J.declaredClass="uniqName_"+r++),q=J.declaredClass,K.hasOwnProperty(q)||(K[q]={count:0,refs:[],cls:z[Y]},++V),$=K[q],X&&X!==$&&($.refs.push(X),++X.count),X=$;++X.count,W[0].refs.push(X)}for(;W.length;){for(X=W.pop(),k.push(X.cls),--V;te=X.refs,te.length==1;){if(X=te[0],!X||--X.count){X=0;break}k.push(X.cls),--V}if(X)for(j=0,G=te.length;j=0;--G)V=P[G],j=V._meta,V=j?j.ctor:V,V&&V.apply(this,z?z[G]:k);V=this.postscript,V&&V.apply(this,W)}}function R(P,L){return function(){var k=arguments,W=k,K=k[0],V;if(!(this instanceof k.callee))return I(k);L&&(K&&(V=K.preamble,V&&(W=V.apply(this,W)||W)),V=this.preamble,V&&V.apply(this,W)),P&&P.apply(this,k),V=this.postscript,V&&V.apply(this,k)}}function O(P){return function(){var L=arguments,k=0,W,K;if(!(this instanceof L.callee))return I(L);for(;W=P[k];++k)if(K=W._meta,W=K?K.ctor:W,W){W.apply(this,L);break}W=this.postscript,W&&W.apply(this,L)}}function F(P,L,k){return function(){var W,K,V,G=0,j=1;for(k&&(G=L.length-1,j=-1);W=L[G];G+=j)K=W._meta,V=(K?K.hidden:W.prototype)[P],V&&V.apply(this,arguments)}}function b(P){t.prototype=P.prototype;var L=new t;return t.prototype=null,L}function I(P){var L=P.callee,k=b(L);return L.apply(k,P),k}function N(P,L,k){typeof P!="string"&&(k=L,L=P,P=""),k=k||{};var W,K,V,G,j,Y,z,Q=1,X=L;if(e.call(L)=="[object Array]"?(Y=s(L,P),V=Y[0],Q=Y.length-V,L=Y[Q]):(Y=[0],L?e.call(L)=="[object Function]"?(V=L._meta,Y=Y.concat(V?V.bases:L)):a("base class is not a callable constructor.",P):L!==null&&a("unknown base class. Did you use dojo.require to pull it in?",P)),L)for(K=Q-1;W=b(L),!!K;--K)V=Y[K],(V._meta?g:l)(W,V.prototype),_("csp-restrictions")?G=function(){}:G=new Function,G.superclass=L,G.prototype=W,L=W.constructor=G;else W={};for(N.safeMixin(W,k),V=k.constructor,V!==n.constructor&&(V.nom=i,W.constructor=V),K=Q-1;K;--K)V=Y[K]._meta,V&&V.chains&&(z=l(z||{},V.chains));if(W["-chains-"]&&(z=l(z||{},W["-chains-"])),L&&L.prototype&&L.prototype["-chains-"]&&(z=l(z||{},L.prototype["-chains-"])),V=!z||!z.hasOwnProperty(i),Y[0]=G=z&&z.constructor==="manual"?O(Y):Y.length==1?R(k.constructor,V):w(Y,V),G._meta={bases:Y,hidden:k,chains:z,parents:X,ctor:k.constructor},G.superclass=L&&L.prototype,G.extend=S,G.createSubclass=T,G.prototype=W,W.constructor=G,W.getInherited=o,W.isInstanceOf=h,W.inherited=f,W.__inherited=c,P&&(W.declaredClass=P,v.setObject(P,G)),z)for(j in z)W[j]&&typeof z[j]=="string"&&j!=i&&(V=W[j]=F(j,Y,z[j]==="after"),V.nom=j);return G}return D.safeMixin=N.safeMixin=m,D.declare=N,N},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(8),u(19)],E=u.dj.d(A,function(D,_){_.add("bug-for-in-skips-shadowed",function(){for(var a in{toString:1})return 0;return 1});var v=_("bug-for-in-skips-shadowed")?"hasOwnProperty.valueOf.isPrototypeOf.propertyIsEnumerable.toLocaleString.toString.constructor".split("."):[],l=v.length,n=function(a,s,c){c||(a[0]&&D.scopeMap[a[0]]?c=D.scopeMap[a.shift()][1]:c=D.global);try{for(var o=0;o2)return i._hitchArgs.apply(D,arguments);if(s||(s=a,a=null),i.isString(s)){if(a=a||D.global,!a[s])throw['lang.hitch: scope["',s,'"] is null (scope="',a,'")'].join("");return function(){return a[s].apply(a,arguments||[])}}return a?function(){return s.apply(a,arguments||[])}:s},delegate:function(){function a(){}return function(s,c){a.prototype=s;var o=new a;return a.prototype=null,c&&i._mixin(o,c),o}}(),_toArray:_("ie")?function(){function a(s,c,o){for(var d=o||[],f=c||0;f>>1,ut=ue[ot];if(0>>1;oth(kt,We))Ath(ne,kt)?(ue[ot]=ne,ue[At]=We,ot=At):(ue[ot]=kt,ue[Lt]=We,ot=Lt);else if(Ath(ne,We))ue[ot]=ne,ue[At]=We,ot=At;else break e}}return Ie}function h(ue,Ie){var We=ue.sortIndex-Ie.sortIndex;return We!==0?We:ue.id-Ie.id}function g(ue){for(var Ie=d(ee);Ie!==null;){if(Ie.callback===null)f(ee);else if(Ie.startTime<=ue)f(ee),Ie.sortIndex=Ie.expirationTime,o(ie,Ie);else break;Ie=d(ee)}}function m(ue){if(nt=!1,g(ue),!Ye)if(d(ie)!==null)Ye=!0,w(S);else{var Ie=d(ee);Ie!==null&&R(m,Ie.startTime-ue)}}function S(ue,Ie){Ye=!1,nt&&(nt=!1,wt(zt),zt=-1),Oe=!0;var We=ve;try{for(g(Ie),ce=d(ie);ce!==null&&(!(ce.expirationTime>Ie)||ue&&!T());){var ot=ce.callback;if(typeof ot=="function"){ce.callback=null,ve=ce.priorityLevel;var ut=ot(ce.expirationTime<=Ie);Ie=De(),typeof ut=="function"?ce.callback=ut:ce===d(ie)&&f(ie),g(Ie)}else f(ie);ce=d(ie)}if(ce!==null)var bt=!0;else{var Lt=d(ee);Lt!==null&&R(m,Lt.startTime-Ie),bt=!1}return bt}finally{ce=null,ve=We,Oe=!1}}function T(){return!(De()-Gtot?(ue.sortIndex=We,o(ee,ue),d(ie)===null&&ue===d(ee)&&(nt?(wt(zt),zt=-1):nt=!0,R(m,We-ot))):(ue.sortIndex=ut,o(ie,ue),Ye||Oe||(Ye=!0,w(S))),ue},unstable_cancelCallback:function(ue){ue.callback=null},unstable_wrapCallback:function(ue){var Ie=ve;return function(){var We=ve;ve=Ie;try{return ue.apply(this,arguments)}finally{ve=We}}},unstable_getCurrentPriorityLevel:function(){return ve},unstable_shouldYield:T,unstable_requestPaint:function(){},unstable_continueExecution:function(){Ye||Oe||(Ye=!0,w(S))},unstable_pauseExecution:function(){},unstable_getFirstCallbackNode:function(){return d(ie)},get unstable_now(){return De},unstable_forceFrameRate:function(ue){0>ue||1250},l=function(s,c){if(!v(s))throw new Error("Invalid start value set");if(!v(c)&&(s!==0||c!==-1))throw new Error("Invalid end value set");var o={};return Object.defineProperty(o,"start",{value:s,enumerable:!0}),Object.defineProperty(o,"end",{value:c,enumerable:!0}),Object.defineProperty(o,"count",{value:c-s+1,enumerable:!0}),o},n=function(s,c){return c.start<=s.end&&c.end>=s.start},e=function(s,c,o,d){return new r(o,d,s,c)},t=function(s,c,o,d){return new r(s,c,o,d)},r=function(){function a(s,c,o,d){_(this,a),Object.defineProperties(this,{rows:{value:l(s,c),enumerable:!0},columns:{value:l(o,d),enumerable:!0}})}return D(a,[{key:"setEntireColumns",value:function(c,o){return o===void 0&&(o=c),new a(0,1/0,c,o)}},{key:"setEntireRows",value:function(c,o){return o===void 0&&(o=c),new a(c,o,0,1/0)}},{key:"setColumns",value:function(c,o){return new a(this.rows.start,this.rows.end,c,o)}},{key:"setRows",value:function(c,o){return new a(c,o,this.columns.start,this.columns.end)}},{key:"column",get:function(){return this.columns.start===this.columns.end&&this.rows.start===0&&this.rows.end===1/0?this.columns.start:null}},{key:"row",get:function(){return this.rows.start===this.rows.end&&this.columns.start===0&&this.columns.end===1/0?this.rows.start:null}}]),a}();Object.defineProperty(r.prototype,"row",{enumerable:!0}),Object.defineProperty(r.prototype,"column",{enumerable:!0});var i=function(){function a(){_(this,a)}return D(a,null,[{key:"range",value:function(){return new r(0,-1,0,-1)}},{key:"doesRangeListIntersect",value:function(c,o){for(var d=0;d=o.columns.start&&c.rows.start<=o.rows.end&&c.rows.end>=o.rows.start}},{key:"isRangeEqual",value:function(c,o){return c===o||c.columns.start===o.columns.start&&c.columns.end===o.columns.end&&c.rows.start===o.rows.start&&c.rows.end===o.rows.end}},{key:"isRangeInside",value:function(c,o){return c===o||c.columns.start<=o.columns.start&&c.columns.end>=o.columns.end&&c.rows.start<=o.rows.start&&c.rows.end>=o.rows.end}},{key:"isRowRange",value:function(c){return c.columns.start===0&&c.columns.end===1/0}},{key:"isColumnRange",value:function(c){return c.rows.start===0&&c.rows.end===1/0}},{key:"groupRangeListByRow",value:function(c){return a._groupRangeList(c,"rows")}},{key:"groupRangeListByColumn",value:function(c){return a._groupRangeList(c,"columns")}},{key:"removeRowsFromRangeList",value:function(c,o){return a._removeIntervalFromRank("rows",c,o,t)}},{key:"removeColumnsFromRangeList",value:function(c,o){return a._removeIntervalFromRank("columns",c,o,e)}},{key:"removeRangeFromRangeList",value:function(c,o){for(var d=[],f=0;f0;f+=1){var h=o[f];d=a.removeRangeFromRangeList(d,h)}return d.length===0}},{key:"_removeIntersection",value:function(c,o){var d=[{rank:"columns",secondaryRank:"rows",makeRange:e},{rank:"rows",secondaryRank:"columns",makeRange:t}],f=c,h=[];return a.doesRangeIntersect(c,o)?d.forEach(function(g){var m=g.rank,S=g.secondaryRank,T=g.makeRange,w=f[m],R=o[m],O=[f[S].start,f[S].end];w.start=d.start||(S[c].start>=d.start?g.push(f.apply(void 0,[d.end+1,R].concat(O))):S[c].end<=d.end?g.push(f.apply(void 0,[w,d.start-1].concat(O))):(g.push(f.apply(void 0,[w,d.start-1].concat(O))),g.push(f.apply(void 0,[d.end+1,R].concat(O))))):g.push(S)}return g}},{key:"_groupRangeList",value:function(c,o){var d=[],f={};return c.forEach(function(h){var g=a._hashRankFromRange(h,o),m=f[g];m>=0?d[m].push(h):(m=d.length,f[g]=m,d[m]=[h])}),d}},{key:"_hashRankFromRange",value:function(c,o){var d=c[o].start,f=c[o].end,h=c[o].count;return h===0?-1:f*f+f+d}}]),a}();return i},C,x),C.exports=E},function(C,x,u){var A,E;A=[u.dj.h("dom-addeventlistener?:20"),u(7),u(19)],E=u.dj.d(A,function(D,_,v){"use strict";if(v("dom")){var l=window.ScriptEngineMajorVersion;v.add("jscript",l&&l()+ScriptEngineMinorVersion()/10),v.add("event-orientationchange",v("touch")&&!v("android")),v.add("event-stopimmediatepropagation",window.Event&&!!window.Event.prototype&&!!window.Event.prototype.stopImmediatePropagation),v.add("event-focusin",function(b,I,N){return"onfocusin"in N}),v("touch")&&v.add("touch-can-modify-event-delegate",function(){var b=function(){};b.prototype=document.createEvent("MouseEvents");try{var I=new b;return I.target=null,I.target===null}catch(N){return!1}})}var n=function(b,I,N,P){return typeof b.on=="function"&&typeof I!="function"&&!b.nodeType?b.on(I,N):n.parse(b,I,N,t,P,this)};n.pausable=function(b,I,N,P){var L,k=n(b,I,function(){if(!L)return N.apply(this,arguments)},P);return k.pause=function(){L=!0},k.resume=function(){L=!1},k},n.once=function(b,I,N,P){var L=n(b,I,function(){return L.remove(),N.apply(this,arguments)});return L},n.parse=function(b,I,N,P,L,k){var W;if(I.call)return I.call(k,b,N);if(I instanceof Array?W=I:I.indexOf(",")>-1&&(W=I.split(/\s*,\s*/)),W){for(var K=[],V=0,G;G=W[V++];)K.push(n.parse(b,G,N,P,L,k));return K.remove=function(){for(var j=0;j0||window.navigator.msMaxTouchPoints),l.add("touch-events","ontouchstart"in document),l.add("pointer-events","pointerEnabled"in window.navigator?window.navigator.pointerEnabled:"PointerEvent"in window),l.add("MSPointer",window.navigator.msPointerEnabled),l.add("touch-action",l("touch")&&l("pointer-events")),l.add("device-width",screen.availWidth||innerWidth);var i=document.createElement("form");l.add("dom-attributes-explicit",i.attributes.length==0),l.add("dom-attributes-specified-flag",i.attributes.length>0&&i.attributes.length<40)}return l.clearElement=function(a){return a.innerHTML="",a},l.normalize=function(a,s){var c=a.match(/[\?:]|[^:\?]*/g),o=0,d=function(f){var h=c[o++];return h==":"?0:c[o++]=="?"?!f&&l(h)?d():(d(!0),d(f)):h||0};return a=d(),a&&s(a)},l.load=function(a,s,c){a?s([a],c):c()},l},C,x),C.exports=E},function(C,x,u){var A,E;function D(_,v){if(!(_ instanceof v))throw new TypeError("Cannot call a class as a function")}A=[u(68),u(0)],E=u.dj.d(A,function(_,v){var l=v([_],{}),n=function e(){D(this,e);var t=new l;this.emit=t.emit.bind(t),this.on=t.on.bind(t)};return n},C,x),C.exports=E},function(C,x,u){var A,E,D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},_=function(){function n(e,t){for(var r=0;r=r.length?r.apply(null,a):function(){var s=[];return Array.prototype.push.apply(s,a),Array.prototype.push.apply(s,arguments),i.apply(null,s)}}}},{key:"find",value:function(r,i){for(var a=0;a0)return r[0].map(function(i,a){return r.map(function(s){return s[a]})})}},{key:"values",value:function(r){var i=[];for(var a in r)r.hasOwnProperty(a)&&i.push(r[a]);return i}},{key:"range",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return[].concat(v(Array(r).keys())).map(function(a){return a+i})}},{key:"rangeArray",value:function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(r>=0&&i>=0){var a=i-r+1;return e.range(a,r)}}},{key:"arrayMerge",value:function(r,i){return[].concat(v(r),v(i))}},{key:"toPromise",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return new Promise(function(i,a){return setTimeout(i,r)})}},{key:"convertSyncFunctionToPromise",value:function(r){var i=arguments;return new Promise(function(a,s){try{var c=r?r.apply(null,i):void 0;return a(c)}catch(o){return s(o)}})}},{key:"deepEqual",value:function(r,i){var a=Object.keys(r),s=Object.keys(i);if(a.length!==s.length)return!1;var c=!0,o=!1,d=void 0;try{for(var f=a[Symbol.iterator](),h;!(c=(h=f.next()).done);c=!0){var g=h.value,m=r[g],S=i[g],T=e.isObject(m)&&e.isObject(S);if(T&&!e.deepEqual(m,S)||!T&&m!==S)return!1}}catch(w){o=!0,d=w}finally{try{!c&&f.return&&f.return()}finally{if(o)throw d}}return!0}},{key:"isObject",value:function(r){return r!=null&&(typeof r=="undefined"?"undefined":D(r))==="object"}},{key:"classNameArrayEqual",value:function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],a=r.length;if(a!==i.length)return!1;for(var s=a-1;s>=0;s--)if(r[s]!==i[s])return!1;return!0}},{key:"isPromise",value:function(r){return!!r&&typeof r.then=="function"}},{key:"asyncWrapper",value:function(r,i){var a=new Promise(function(s,c){if(!r)s(!0);else{var o=r(i);typeof o=="boolean"?s(o):o.then(function(d){return s(d)})}});return a}},{key:"alt",get:function(){return e.curry(function(r,i,a){return r(a)||i(a)})}}]),e}();return n},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){"use strict";var D=Object.freeze({BACKSPACE:8,NUM_START:48,NUM_END:57,SPACE:32,ENTER:13,ALPHA_START:65,ALPHA_END:91,NUMPAD_START:95,NUMPAD_END:112,SYM1_START:185,SYM1_END:193,SYM2_START:219,SYM2_END:222,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,ARROW_LEFT:37,ARROW_UP:38,ARROW_RIGHT:39,ARROW_DOWN:40,F2:113,CTRL:17,SHIFT:16,META:91,ALT:18,ESCAPE:27,DELETE:46,A:65,C:67,V:86,X:88});return D},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(188),u(312),u(313),u(314),u(189)],E=u.dj.d(A,function(D,_,v,l,n){const e="DEFAULT",t=100,r=l.create(t),i={debug:4,log:3,dir:3,table:3,trace:3,time:3,timeEnd:3,group:3,groupCollapsed:3,groupEnd:3,info:2,warn:1,assert:0,error:0},a={};let s=0,c=_.DEBUG,o=D.DEVELOPMENT;const d=[],f={};let h=null;class g{constructor(S){if(f[S]!=null)return;n.makeReadOnlyProperty(this,"name",S),f[this.name]=this,this._timers={},this._threshold=_.DEBUG,this._showTimestamp=!0,n.makeReadOnlyProperty(this,"modes",D),n.makeReadOnlyProperty(this,"levels",_);const T=this;typeof window=="object"&&(window.$mwLog={get filter(){return T.filter},set filter(w){T.filter=w},get mode(){return T.mode},set mode(w){T.mode=w}})}static _sanitizeLevel(S){return typeof S=="number"?S:_.DEBUG}static _sanitizeMode(S){return n.objectValues(D).indexOf(S)>-1?S:D.DEVELOPMENT}get threshold(){return this._threshold}set threshold(S){this._threshold=g._sanitizeLevel(S)}get showTimestamp(){return this._showTimestamp}set showTimestamp(S){this._showTimestamp=!!S}get globalThreshold(){return c}set globalThreshold(S){c=g._sanitizeLevel(S)}get mode(){return o}set mode(S){S&&(o=g._sanitizeMode(S))}get filter(){return h}set filter(S){(typeof S=="function"||S===null)&&(h=S)}_shouldLog(S,T){if(h&&o===D.DEVELOPMENT){const w={name:this.name,type:T};return Boolean(h(w))}return c>S&&this._threshold>S}_nameAndTime(){const S=[];return this.name!==e&&S.push(this.name),this._showTimestamp&&S.push(n.currentTimeString()),S}table(S){if(this._shouldLog(i.table,v.TABLE)){const T={namespace:this.name,type:v.TABLE,message:[S],time:new Date};r.add(T),n.printToConsole(v.LOG,this._nameAndTime(),o),n.printToConsole(v.TABLE,[S],o),n.execCallbacks(a,T)}}trace(){if(this._shouldLog(i.trace,v.TRACE)){const S={namespace:this.name,type:v.TRACE,message:null,time:new Date};let w=new Error().stack.split(` -`);for(w[0]==="Error"&&w.shift();w[0].includes("Log.js")||w[0].includes("logger.trace")||w[0]==="trace";)w.shift();w=w.join(` -`),S.message=[w],r.add(S),n.printToConsole(v.LOG,this._nameAndTime(),o),n.printToConsole(v.TRACE,[],o),n.execCallbacks(a,S)}}time(S){this._shouldLog(i.time)&&(this._timers[S]==null?this._timers[S]=new Date().getTime():this.warn('timer "'+S+'" already exists.'))}timeEnd(S){if(this._shouldLog(i.timeEnd,v.TIME_END)){const T={namespace:this.name,type:v.TIME_END,message:null,time:new Date};if(this._timers[S]!=null){const w=new Date().getTime()-this._timers[S];T.message=[S+": "+w+"ms - timer ended"],r.add(T),n.printToConsole(v.LOG,this._nameAndTime().concat(T.message),o),n.execCallbacks(a,T),this._timers[S]=null}else this.warn('timer "'+S+`" doesn't exist.`)}}_group(S,T){if(this._shouldLog(i.group,T?v.GROUP_COLLAPSED:v.GROUP)){const w=T?v.GROUP_COLLAPSED:v.GROUP,R={namespace:this.name,type:w,message:[S],time:new Date};d.push(S),r.add(R),n.printToConsole(w,[S],o),n.execCallbacks(a,R)}}groupCollapsed(S){this._group(S,!0)}group(S){this._group(S,!1)}groupEnd(){if(this._shouldLog(i.groupEnd,v.GROUP_END)){const S=d.pop(),T={namespace:this.name,type:v.GROUP_END,message:[S],time:new Date};r.add(T),n.printToConsole(v.GROUP_END,[],o),n.execCallbacks(a,T)}}assert(S,T){if(this._shouldLog(i.assert,v.ASSERT)&&!S){const w={namespace:this.name,type:v.ASSERT,message:["Assertion failed:",T],time:new Date};r.add(w),w.message.shift();const R=[!1].concat(this._nameAndTime().concat(w.message));n.printToConsole(v.ASSERT,R,o),n.execCallbacks(a,w)}}_basicLogMethod(S,T,w){if(this._shouldLog(T,S)){const R={namespace:this.name,type:S,message:w,time:new Date};w=this._nameAndTime().concat(w),r.add(R),n.printToConsole(S,w,o),n.execCallbacks(a,R)}}debug(S){const T=Array.prototype.slice.call(arguments);this._basicLogMethod(v.DEBUG,i.debug,T)}log(S){const T=Array.prototype.slice.call(arguments);this._basicLogMethod(v.LOG,i.log,T)}dir(S){const T=Array.prototype.slice.call(arguments);this._basicLogMethod(v.DIR,i.dir,T)}info(S){const T=Array.prototype.slice.call(arguments);this._basicLogMethod(v.INFO,i.info,T)}warn(S){const T=Array.prototype.slice.call(arguments);this._basicLogMethod(v.WARN,i.warn,T)}error(S){const T=Array.prototype.slice.call(arguments);this._basicLogMethod(v.ERROR,i.error,T)}addCallback(S,T){a[s]=S,T&&r.applyCallback(S);const w={},R=s;return w.remove=()=>{delete a[R]},s++,w}createLogger(S){const T=new g(S);return T.name?T:f[S]}}return new g(e)},C,x),C.exports=E},function(C,x,u){var A,E,D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(l){return typeof l}:function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},_=function(){function l(n,e){for(var t=0;t0&&c.rangeList[0]){var h=c.rangeList[0],g=h.rows.start,m=h.columns.start,S=[g,m].join(",");if(c.value?(f=c.value,S=[f,m].join(",")):g<=s.rangeList[0].rows.end&&g>=s.rangeList[0].rows.start&&(f=s.rowMetaData[0](g).value.id,S=[f,m].join(","),i._updateActiveStateWhenFocusCellPageIntoView(f,c.rangeList,o)),g<=s.rangeList[0].rows.end&&g>=s.rangeList[0].rows.start){var T=s.rowMetaData[0](g).value.groupRow;i.isGroupedRow(T)&&(S=f)}d[S]="mw-table-cell-focused"}return[f,d]}},{key:"_areRangeListsEqual",value:function(s,c){if(!s&&!c&&s===c)return!0;if(!s||!c||s.length!==c.length)return!1;for(var o=0;o0?new Set(s).size!==s.length:!1}},{key:"isArrayEmpty",value:function(s){return!!(s&&Array.isArray(s)&&s.length<=0)}},{key:"isArrayMatching",value:function(s,c){if(Array.isArray(s)&&Array.isArray(c)){var o=Object.assign([],s),d=Object.assign([],c);if(o.sort(function(h,g){return h-g}),d.sort(function(h,g){return h-g}),o.length!==d.length)return!1;for(var f=0;f=f&&R<=h&&O>=m&&O<=g}},{key:"isDragTargetDisclosureIcon",value:function(s,c){var o=s.querySelector(".disclosureIcon");return o?i._isMouseOnTopOfTarget(o,s,c):!1}},{key:"isTargetOnScrollBar",value:function(s,c){return s.clientWidth<=c.xOffset||s.clientHeight<=c.yOffset}},{key:"isDragTargetCheckboxTree",value:function(s,c){var o=s.querySelector(".mw-checkbox-tree");return o?i._isMouseOnTopOfTarget(o,s,c):!1}},{key:"isNextSiblingItsChild",value:function(s){var c=s.level,o=s.nextSibling;return o.level===c+1}}]),i}();return r},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(196),u(4)],E=u.dj.d(A,function(D,_){var v=D.mergeEnums({internal:{TREE_DISCLOSURE_CLICK:"treeDisclosureClick",TREE_CELL_DOUBLE_CLICK:"treeCellDoubleClick",EMIT_SELECTION_EVENT:"emitSelectionEvent",EMIT_CONTEXT_MENU:"emitContextMenu",TABLE_RIGHT_CLICK:"tableRightClick",INTERACTIVE_CELL_CLICK:"interactiveCellClick",CHECKBOX_CLICKED:"checkBoxClicked",CHECKBOX_STATUS_CHANGE_REQUESTED:"checkboxStatusChangeRequested"},exposed:{SELECTION_CHANGED:"selectionChanged",CONTEXT_MENU:"contextMenu",HEADER_MENU:"headerMenuRequested",ICON_ACTION:"iconAction",CHECK_CHANGED:"checkChanged",SCROLL_VIEW_CHANGED:"scrollViewChanged"},protected:{COL_HEADER_MOUNT:"colHeaderDidMount",COL_RESIZE:"colResize"}},_);return Object.freeze(v)},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(8),u(1)],E=u.dj.d(A,function(D,_,v){var l={},n,e;_("csp-restrictions")||(e=function(a){return l[a]=new Function("item","index","array",a)});function t(a){var s=!a;return function(c,o,d){var f=0,h=c&&c.length||0,g;if(h&&typeof c=="string"&&(c=c.split("")),typeof o=="string"){if(_("csp-restrictions"))throw new TypeError("callback must be a function");o=l[o]||e(o)}if(d){for(;f0)return i.lastIndexOf(d,f,h);var m=d&&d.length||0,S=a?m+o:c,T;for(h===n?T=a?c:m+o:h<0?(T=m+h,T<0&&(T=c)):T=h>=m?m+o:h,m&&typeof d=="string"&&(d=d.split(""));T!=S;T+=s)if(d[T]==f)return T;return-1}}var i={every:t(!1),some:t(!0),indexOf:r(!0),lastIndexOf:r(!1),forEach:function(a,s,c){var o=0,d=a&&a.length||0;if(d&&typeof a=="string"&&(a=a.split("")),typeof s=="string"){if(_("csp-restrictions"))throw new TypeError("callback must be a function");s=l[s]||e(s)}if(c)for(;o=i.columns.start&&s<=i.columns.end&&a>=i.rows.start&&a<=i.rows.end},t=function(){function r(){_(this,r)}return D(r,null,[{key:"getFocusedCell",value:function(a){var s={},c=void 0;if(a&&a.rangeList&&a.rangeList[0]&&(c=a.rangeList[0]),c&&c.rows&&c.columns){var o=c.rows.start,d=c.columns.start,f=[o,d].join(",");s[f]="mw-table-cell-focused"}return s}},{key:"getContentFor",value:function(a,s,c){for(var o=a.rangeList||[],d=0;d0&&arguments[0]!==void 0?arguments[0]:{},s=arguments[1],c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:v.dimensions.COL_WIDTH,o=arguments[3],d={},f=a.width,h=a.unit,g=a.fillContainerWidth;switch(isNaN(f)&&(f=c,h="px"),h===""&&(h="px"),h){case"percent":case"%":s?d={maxWidth:"none",minWidth:c,width:Math.min(100,Math.abs(f))+"%"}:d={minWidth:c,maxWidth:c};break;case"px":o&&(c=v.dimensions.COLLAPSE_COLUMN_ABSOLUTE_MIN),Number.isInteger(f)||(f=c),f=Math.max(c,f),g?d={maxWidth:"none",minWidth:f,width:g}:d={maxWidth:f,minWidth:f};break;default:break}return d}},{key:"computeTableHeight",value:function(a,s){var c=Math.max(a*s,1)||1;return c+"px"}},{key:"renderUpdate",value:function(a,s){s=s||a.viewPortList[0].getBufferedViewPort(),a.viewBuffer={size:null,rangeList:[s]}}},{key:"getState",value:function(a,s){return s.getStateByKey(a)}},{key:"getViewAndDataRange",value:function(a,s,c){var o=n.range().setRows(a,a).setColumns(s,s),d=r.viewRangeToDataRange(o,c);return{viewRange:o,dataRange:d}}},{key:"viewRangeToDataRange",value:function(a,s){var c=s.viewRangeListToDataRangeList([a]);if(c.length>1)throw new Error("Single viewRange cell mapped to multiple ranges");return c[0]}},{key:"isFocusedRange",value:function(a,s){var c=r.getState(l.protected.FOCUSED,s)||!1,o=c.rangeList,d=o===void 0?[{}]:o;return n.isRangeEqual(d[0],a)}},{key:"getValidationInfo",value:function(a){return{isValid:a.success,validationMessage:a.message,type:"ERROR"}}},{key:"setOriginalValuePromise",value:function(a,s){var c=s.getData([a]).then(function(o){return o[0][a.rows.start][a.columns.start]});return c}},{key:"getViewIndex",value:function(a){var s=a&&a.rangeList[0],c=s&&s.columns.start,o=s&&s.rows.start;return{viewRange:s,viewColIndex:c,viewRowIndex:o}}},{key:"getColumnConfig",value:function(a,s){var c=a.getColumnHeaders()[Number(s)]||{dataIndex:s};return c}},{key:"getColumnId",value:function(a,s){var c=a&&a.find(function(o){return o._index===s});return c?c.columnId:""}},{key:"isReadOnly",value:function(a){return a&&a.readonly===!0||!1}},{key:"isInteractive",value:function(a){return a&&a.interactiveRenderer===!0||!1}},{key:"isColumnHeaderHidden",value:function(a){var s=a.getStateByKey(l.HIDE_COLUMN_HEADER);return s?s.value:!1}},{key:"isTableFocused",value:function(a){for(var s=!1,c=a;c&&/mw-table.*/.test(c.className)!==!1;)s=c.contains(document.activeElement),c=c.parentElement;return s}}]),r}();return t},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({COL_WIDTH:82,ROW_HEIGHT:22,MIN_ROW_HEADER_WIDTH:40,MIN_LEFT_HEADER_WIDTH:27,TOOLTIP_MIN_WIDTH:300,ABSOLUTE_MIN:10,COLLAPSE_COLUMN_ABSOLUTE_MIN:1,COLLAPSE_COLUMN_AFFORDANCE_MIN:10,MAX_ROW_HEADER_WIDTH:250}),_=Object.freeze({ROW_OVERSCAN:4,COL_OVERSCAN:3,UNPAGED_COL_LIMIT:12}),v=Object.freeze({EDITABLE_TABLE_CELL:"EditableTableCell",EDITABLE_TREE_CELL:"EditableTreeCell",INTERACTIVE_TABLE_CELL:"InteractiveTableCell"}),l=Object.freeze({ROW:"row",COLUMN:"column",CELL:"cell"}),n=Object.freeze({dimensions:D,buffers:_,cellType:v,rangeType:l,ZERO_HEIGHT_ROWS:12,ZERO_WIDTH_COLS:12});return n},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(19),u(23),u(7)],E=u.dj.d(A,function(D,_,v){if(D("ie")<=7)try{document.execCommand("BackgroundImageCache",!1,!0)}catch(t){}var l={};D("ie")?l.byId=function(t,r){if(typeof t!="string")return t||null;var i=r||_.doc,a=t&&i.getElementById(t);if(a&&(a.attributes.id.value==t||a.id==t))return a;var s=i.all[t];(!s||s.nodeName)&&(s=[s]);for(var c=0;a=s[c++];)if(a.attributes&&a.attributes.id&&a.attributes.id.value==t||a.id==t)return a;return null}:l.byId=function(t,r){return(typeof t=="string"?(r||_.doc).getElementById(t):t)||null};var n=v.global.document||null;D.add("dom-contains",!!(n&&n.contains)),l.isDescendant=function(t,r){try{for(t=l.byId(t),r=l.byId(r);t;){if(t==r)return!0;t=t.parentNode}}catch(i){}return!1},D.add("css-user-select",function(t,r,i){if(!i)return!1;var a=i.style,s=["Khtml","O","Moz","Webkit"],c=s.length,o="userSelect",d;do if(typeof a[o]!="undefined")return o;while(c--&&(o=s[c]+"UserSelect"));return!1});var e=D("css-user-select");return l.setSelectable=e?function(t,r){l.byId(t).style[e]=r?"":"none"}:function(t,r){t=l.byId(t);var i=t.getElementsByTagName("*"),a=i.length;if(r)for(t.removeAttribute("unselectable");a--;)i[a].removeAttribute("unselectable");else for(t.setAttribute("unselectable","on");a--;)i[a].setAttribute("unselectable","on")},l},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(8)],E=u.dj.d(A,function(D){if(D("host-browser")){var _=navigator,v=_.userAgent,l=_.appVersion,n=parseFloat(l);if(D.add("air",v.indexOf("AdobeAIR")>=0),D.add("wp",parseFloat(v.split("Windows Phone")[1])||void 0),D.add("msapp",parseFloat(v.split("MSAppHost/")[1])||void 0),D.add("khtml",l.indexOf("Konqueror")>=0?n:void 0),D.add("edge",parseFloat(v.split("Edge/")[1])||void 0),D.add("opr",parseFloat(v.split("OPR/")[1])||void 0),D.add("webkit",!D("wp")&&!D("edge")&&parseFloat(v.split("WebKit/")[1])||void 0),D.add("chrome",!D("edge")&&!D("opr")&&parseFloat(v.split("Chrome/")[1])||void 0),D.add("android",!D("wp")&&parseFloat(v.split("Android ")[1])||void 0),D.add("safari",l.indexOf("Safari")>=0&&!D("wp")&&!D("chrome")&&!D("android")&&!D("edge")&&!D("opr")?parseFloat(l.split("Version/")[1]):void 0),D.add("mac",l.indexOf("Macintosh")>=0),D.add("quirks",document.compatMode=="BackCompat"),!D("wp")&&v.match(/(iPhone|iPod|iPad)/)){var e=RegExp.$1.replace(/P/,"p"),t=v.match(/OS ([\d_]+)/)?RegExp.$1:"1",r=parseFloat(t.replace(/_/,".").replace(/_/g,""));D.add(e,r),D.add("ios",r)}if(D.add("bb",(v.indexOf("BlackBerry")>=0||v.indexOf("BB10")>=0)&&parseFloat(v.split("Version/")[1])||void 0),D.add("trident",parseFloat(l.split("Trident/")[1])||void 0),D.add("svg",typeof SVGAngle!="undefined"),!D("webkit")){if(v.indexOf("Opera")>=0&&D.add("opera",n>=9.8&&parseFloat(v.split("Version/")[1])||n),v.indexOf("Gecko")>=0&&!D("wp")&&!D("khtml")&&!D("trident")&&!D("edge")&&D.add("mozilla",n),D("mozilla")&&D.add("ff",parseFloat(v.split("Firefox/")[1]||v.split("Minefield/")[1])||void 0),document.all&&!D("opera")){var i=parseFloat(l.split("MSIE ")[1])||void 0,a=document.documentMode;a&&a!=5&&Math.floor(i)!=a&&(i=a),D.add("ie",i)}D.add("wii",typeof opera!="undefined"&&opera.wiiremote)}}return D},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){"use strict";var D;function _(t,r,i,a){var s=t[r],c=r=="around",o;if(c){var d=i(function(){return s.advice(this,arguments)});o={remove:function(){d&&(d=t=i=null)},advice:function(f,h){return d?d.apply(f,h):s.advice(f,h)}}}else o={remove:function(){if(o.advice){var f=o.previous,h=o.next;!h&&!f?delete t[r]:(f?f.next=h:t[r]=h,h&&(h.previous=f)),t=i=o.advice=null}},id:t.nextId++,advice:i,receiveArguments:a};if(s&&!c)if(r=="after"){for(;s.next&&(s=s.next););s.next=o,o.previous=s}else r=="before"&&(t[r]=o,o.next=s,s.previous=o);else t[r]=o;return o}function v(t){return function(r,i,a,s){var c=r[i],o;(!c||c.target!=r)&&(r[i]=o=function(){for(var f=o.nextId,h=arguments,g=o.before;g;)g.advice&&(h=g.advice.apply(this,h)||h),g=g.next;if(o.around)var m=o.around.advice(this,h);for(var S=o.after;S&&S.id=0?w:-1,I=R>=0?R:-1,N=g.isWhiteSpace;N===void 0&&(N=o.isWhiteSpace(f.target,f.clientX,f.clientY));var P={type:T,isWhiteSpace:N,isEditable:F},L={left:m,top:S,row:b,col:I,target:P,colEnd:O};return h(l.internal.TABLE_RIGHT_CLICK,L)}},{key:"getCellInfo",value:function(f){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"mw-table-cell",g=void 0,m=f.path||f.composedPath&&f.composedPath();if(m&&m.length>0){var S=!0,T=!1,w=void 0;try{for(var R=m[Symbol.iterator](),O;!(S=(O=R.next()).done);S=!0){var F=O.value;if(c(F)&&F.classList.contains(h)){g=s(F);break}else if(c(F)&&F.classList.contains("mw-table-component"))break}}catch(P){T=!0,w=P}finally{try{!S&&R.return&&R.return()}finally{if(T)throw w}}}else if(document.elementsFromPoint){var b=document.elementsFromPoint(f.clientX,f.clientY),I=b.find(function(P){return c(P)&&P.classList.contains(h)});I&&(g=s(I))}else for(var N=document.elementFromPoint(f.clientX,f.clientY);c(N)&&!N.classList.contains("mw-table-component")&&N!==document.body;){if(N.classList.contains(h)){g=s(N);break}N=N.parentNode}return g}},{key:"_isPointInsideRect",value:function(f,h,g){return f>=g.left&&h>=g.top&&f<=g.right&&h<=g.bottom}},{key:"setFocusCache",value:function(f){f(l.protected.CELL_DOM_FOCUS_CACHE)}},{key:"_isNodeTypeText",value:function(f){if(f){if(f.nodeType===3)return!0;if(f.nodeType===1&&f.innerText)return!0}else return!1;return!1}},{key:"_isPointInTextNode",value:function(f,h,g){if(!this._isNodeTypeText(g))return!1;var m=document.createRange();m.selectNodeContents(g);var S=m.getBoundingClientRect();return!!this._isPointInsideRect(f,h,S)}},{key:"_isClassInClassList",value:function(f,h){if(f&&typeof f=="string"){for(var g=0;g':"<"+o.join("><")+">",o.post=""}var d;v("ie")<=8&&(d=function(w){w.__dojo_html5_tested="yes";var R=g("div",{innerHTML:"",style:{visibility:"hidden"}},w.body);R.childNodes.length!==1&&"abbr article aside audio canvas details figcaption figure footer header hgroup mark meter nav output progress section summary time video".replace(/\b\w+\b/g,function(O){w.createElement(O)}),T(R)});function f(w,R){var O=R.parentNode;O&&O.insertBefore(w,R)}function h(w,R){var O=R.parentNode;O&&(O.lastChild==R?O.appendChild(w):O.insertBefore(w,R.nextSibling))}D.toDom=function(R,O){O=O||l.doc;var F=O[s];F||(O[s]=F=++a+"",i[F]=O.createElement("div")),v("ie")<=8&&!O.__dojo_html5_tested&&O.body&&d(O),R+="";var b=R.match(r),I=b?b[1].toLowerCase():"",N=i[F],P,L,k,W;if(b&&t[I])for(P=t[I],N.innerHTML=P.pre+R+P.post,L=P.length;L;--L)N=N.firstChild;else N.innerHTML=R;if(N.childNodes.length==1)return N.removeChild(N.firstChild);for(W=O.createDocumentFragment();k=N.firstChild;)W.appendChild(k);return W},D.place=function(R,O,F){if(O=n.byId(O),typeof R=="string"&&(R=/^\s*e===0),l!==-1?(n=_.findIndex(e=>e>0),n!==-1?v="partialHitClassLineBackground":v="unhitClassLineBackground"):v="hitClassLineBackground"):_===0?v="unhitClassLineBackground":v="hitClassLineBackground",v},getLineBackgroundColorForConditionalStatements:function(_,v){let l,n,e,t,r;return n=_.findIndex(i=>i===0),e=v.findIndex(i=>i===0),n!==-1||e!==-1?(t=_.findIndex(i=>i>0),r=v.findIndex(i=>i>0),t!==-1||r!==-1?l="partialHitClassLineBackground":l="unhitClassLineBackground"):l="hitClassLineBackground",l},updateDisplay:function(_,v){const l=_.firstElementChild;l===null?_.appendChild(v):_.replaceChild(v,l)},loadAsArray:function(_){const v=[];return Array.isArray(_)?v.push(..._):v.push(_),v},makeInvisible:function(_){_.classList.contains("visibleMetric")&&_.classList.remove("visibleMetric"),_.classList.add("invisibleMetric")},makeVisible:function(_){_.classList.contains("invisibleMetric")&&_.classList.remove("invisibleMetric"),_.classList.add("visibleMetric")},startupTable:function(_){_.startup(),window.addEventListener("resize",_.resizeHandler)}})},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;ec?1:0},r=function(s,c){var o=t(s.rows.start,c.rows.start);return o===0?t(s.rows.end,c.rows.end):o},i=function(){function a(){_(this,a)}return D(a,null,[{key:"fitRangeToBounds",value:function(c,o,d){var f={rows:{},columns:{}};return d.rows.start>c||d.columns.start>o||d.rows.end<0||d.columns.end<0?null:(f.rows.start=Math.max(Math.min(d.rows.start,c),0),f.columns.start=Math.max(Math.min(d.columns.start,o),0),f.rows.end=d.rows.end===1/0?1/0:Math.max(Math.min(d.rows.end,c),f.rows.start),f.columns.end=d.columns.end===1/0?1/0:Math.max(Math.min(d.columns.end,o),f.columns.start),v.range().setRows(f.rows.start,f.rows.end).setColumns(f.columns.start,f.columns.end))}},{key:"getActiveCell",value:function(c){var o=c.getStateByKey(n.protected.ACTIVE_CELL);if(!o){var d=[v.range().setRows(0,0).setColumns(0,0)];o={value:null,rangeList:d}}return o}},{key:"getActiveCellRange",value:function(c){var o=c.getStateByKey(n.protected.ACTIVE_CELL);return o?o.rangeList[0]:[]}},{key:"getFocusedCell",value:function(c){var o=c.getStateByKey(n.protected.FOCUSED);return o?o.rangeList[0]:null}},{key:"isActiveCellEmpty",value:function(c){return!!(c==null||Array.isArray(c)&&c.length===0)}},{key:"getValidStartPoint",value:function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return c<0?0:c}},{key:"isCellInRanges",value:function(c,o,d){if(Array.isArray(c)){if(c.length===0)return!1;var f=v.range().setRows(o,o).setColumns(d,d);return v.isRangeInsideRangeList(f,c)}else return Object.keys(c).indexOf(o)>-1}},{key:"isRangeVisible",value:function(c,o){return!o||!c?!1:v.isRangeInside(o,c)}},{key:"isIdInSelections",value:function(c,o){return c in o}},{key:"getSelectionCountByRanges",value:function(c){var o=void 0,d=function(g,m){return m?v.isRowRange(m)?(o=l.rangeType.ROW,g+m.rows.count):v.isColumnRange(m)?(o=l.rangeType.COLUMN,g+m.columns.count):(o=l.rangeType.CELL,g+m.rows.count*m.columns.count):g},f=c.reduce(d,0);return{count:f,type:o}}},{key:"getSelectionCountByIDs",value:function(c){var o="rows",d=Object.keys(c).length;return{count:d,type:o}}},{key:"areSelectionRangesDifferent",value:function(c,o){var d=!0;return o.length===c.length&&(o.sort(r),c.sort(r),d=c.reduce(function(f,h,g){return f||!v.isRangeEqual(h,o[g])},!1)),d}},{key:"areSelectionIdsDifferent",value:function(c,o){return!e.deepEqual(c,o)}},{key:"isDataTransferValid",value:function(c){if(!c)return!1;var o=c.types;if(!Array.isArray(o)||o.length===0)return!1;var d=o[0];if(!d)return!1;var f=c.getData(d);return!!f}},{key:"getDataTransferString",value:function(c){if(!c)return"dataTransfer is null";var o=c.types;if(!o||o.length===0||!o[0])return"dataTransfer has no mime types";for(var d="",f=0;f0){f=Number(S);break}}return f}}]),a}();return i},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({SOURCE_SELECTOR:"mw-table-dnd-source",TARGET_SELECTOR_TABLE_BODY:".mw-table-cell",TARGET_SELECTOR_TABLE_HEADER:".mw-table-header-column",TARGET_SELECTOR_TABLE_ROW:".mw-table-row",ROW_VALID_HOVER:"mw-table-dnd-valid-hover",ROW_INVALID_HOVER:"mw-table-dnd-invalid-hover",CONTAINER:"mw-scrolling-div",INSERTION_LINE_CLASS:"mw-table-insertion-line",WHITESPACE:"WHITESPACE",AUTO_EXPAND_TIME:1e3,MARGIN_LEFT_FOR_ROOT:18,ROW_REGIONS:{ROWS:"5 auto 5",CONTAINER:"0 auto 0",INSERT_AS_ROW:"50% 50%"},COLUMN_REGIONS:"50% 50%",dataType:{JSON:"json",TEXT:"text"},targetLifeCycle:{ENTER:"enter",HOVER:"hover",LEAVE:"leave"},modes:["columns","rowSelection"],REORDER:{INSERT_ABOVE:0,INSERT_BELOW:2,INSERT_AS_CHILD:1,ROWS:"reorderRows",VALID_LINE:"mw-table-horizontal-line",INVALID_LINE:"mw-table-horizontal-line-invalid"},REPARENT:{ROWS:"reparentRows"},DROP_TARGET:{TABLE_CELL:"tableCell",CONTAINER:"scrollComponent",INSERTION_LINE:"insertionLine"},TABLE_DEFAULT_TYPE:"mw-table-default-type",TABLE_SOURCE_COLUMN:"TABLE_COLUMN",TREETABLE_SOURCE_COLUMN:"TREETABLE_COLUMN",TABLE_SOURCE_ROW:"TABLE_ROW",TREETABLE_DEFAULT_TYPE:"mw-treetable-default-type",getDragSourceType:_});return D;function _(v,l){if(v===D.modes[0]&&l===D.TABLE_DEFAULT_TYPE)return D.TABLE_SOURCE_COLUMN;if(v===D.modes[0]&&l===D.TREETABLE_DEFAULT_TYPE)return D.TREETABLE_SOURCE_COLUMN}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(19),u(18),u(23)],E=u.dj.d(A,function(D,_,v){var l,n={};D("webkit")?l=function(f){var h;if(f.nodeType==1){var g=f.ownerDocument.defaultView;h=g.getComputedStyle(f,null),!h&&f.style&&(f.style.display="",h=g.getComputedStyle(f,null))}return h||{}}:D("ie")&&(D("ie")<9||D("quirks"))?l=function(f){return f.nodeType==1&&f.currentStyle?f.currentStyle:{}}:l=function(f){if(f.nodeType===1){var h=f.ownerDocument.defaultView,g=h.opener?h:v.global.window;return g.getComputedStyle(f,null)||{}}return{}},n.getComputedStyle=l;var e;D("ie")?e=function(f,h){if(!h)return 0;if(h=="medium")return 4;if(h.slice&&h.slice(-2)=="px")return parseFloat(h);var g=f.style,m=f.runtimeStyle,S=f.currentStyle,T=g.left,w=m.left;m.left=S.left;try{g.left=h,h=g.pixelLeft}catch(R){h=0}return g.left=T,m.left=w,h}:e=function(f,h){return parseFloat(h)||0},n.toPixelValue=e;var t="DXImageTransform.Microsoft.Alpha",r=function(f,h){try{return f.filters.item(t)}catch(g){return h?{}:null}},i=D("ie")<9||D("ie")<10&&D("quirks")?function(f){try{return r(f).Opacity/100}catch(h){return 1}}:function(f){return l(f).opacity},a=D("ie")<9||D("ie")<10&&D("quirks")?function(f,h){h===""&&(h=1);var g=h*100,m=h===1;if(m?(f.style.zoom="",r(f)&&(f.style.filter=f.style.filter.replace(new RegExp("\\s*progid:"+t+"\\([^\\)]+?\\)","i"),""))):(f.style.zoom=1,r(f)?r(f,1).Opacity=g:f.style.filter+=" progid:"+t+"(Opacity="+g+")",r(f,1).Enabled=!0),f.tagName.toLowerCase()=="tr")for(var S=f.firstChild;S;S=S.nextSibling)S.tagName.toLowerCase()=="td"&&a(S,h);return h}:function(f,h){return f.style.opacity=h},s={left:!0,top:!0},c=/margin|padding|width|height|max|min|offset/;function o(f,h,g){if(h=h.toLowerCase(),g=="auto"){if(h=="height")return f.offsetHeight;if(h=="width")return f.offsetWidth}if(h=="fontweight")switch(g){case 700:return"bold";case 400:default:return"normal"}return h in s||(s[h]=c.test(h)),s[h]?e(f,g):g}var d={cssFloat:1,styleFloat:1,float:1};return n.get=function(h,g){var m=_.byId(h),S=arguments.length,T=g=="opacity";if(S==2&&T)return i(m);g=d[g]?"cssFloat"in m.style?"cssFloat":"styleFloat":g;var w=n.getComputedStyle(m);return S==1?w:o(m,g,w[g]||m.style[g])},n.set=function(h,g,m){var S=_.byId(h),T=arguments.length,w=g=="opacity";if(g=d[g]?"cssFloat"in S.style?"cssFloat":"styleFloat":g,T==3)return w?a(S,m):S.style[g]=m;for(var R in g)n.set(h,R,g[R]);return n.getComputedStyle(S)},n},C,x),C.exports=E},function(C,x,u){var A,E,D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(l){return typeof l}:function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},_=function(){function l(n,e){for(var t=0;t2&&arguments[2]!==void 0?arguments[2]:0;if(i===a)return!0;if(s=s+1,(typeof i=="undefined"?"undefined":D(i))!=="object"||(typeof a=="undefined"?"undefined":D(a))!=="object"||i===null||a===null)return!1;var c=Object.keys(i),o=Object.keys(a);if(c.length!==o.length)return!1;var d=!0,f=!1,h=void 0;try{for(var g=c[Symbol.iterator](),m;!(d=(m=g.next()).done);d=!0){var S=m.value;if(!o.includes(S)||(typeof i[S]=="function"||typeof a[S]=="function")&&i[S].toString()!==a[S].toString()||s>=5||!t.isDeepEqual(i[S],a[S],s))return!1}}catch(T){f=!0,h=T}finally{try{!d&&g.return&&g.return()}finally{if(f)throw h}}return!0}},{key:"getSelectionIdList",value:function(i,a,s){var c={},o=void 0,d=void 0;if(a){if(o=a.value,o&&o.length!==0)for(var f=0;f=0&&a!=="zh"){l.locale=a;return}if(s=a.split("-")[0],s==="zh"){l.locale=o.toLocaleLowerCase();return}for(var d=0;d=0},this.isCanceled=S.isCanceled=function(){return d},this.resolve=this.callback=function(O){this.fired=f=0,this.results=[O,null],T(O)},this.reject=this.errback=function(O){h=!0,this.fired=f=1,n("config-useDeferredInstrumentation")&&_.instrumentRejected&&_.instrumentRejected(O,!!m),T(O),this.results=[null,O]},this.progress=function(O){for(var F=m;F;){var b=F.progress;b&&b(O),F=F.next}},this.addCallbacks=function(O,F){return this.then(O,F,r),this},S.then=this.then=function(O,F,b){var I=b==r?this:new a(S.cancel),N={resolved:O,error:F,progress:b,deferred:I};return m?g=g.next=N:m=g=N,o&&w(),I.promise};var R=this;S.cancel=this.cancel=function(){if(!o){var O=s&&s(R);o||(O instanceof Error||(O=new l(O)),O.log=!1,R.reject(O))}d=!0},i(S)};return e.extend(a,{addCallback:function(s){return this.addCallbacks(e.hitch.apply(D,arguments))},addErrback:function(s){return this.addCallbacks(null,e.hitch.apply(D,arguments))},addBoth:function(s){var c=e.hitch.apply(D,arguments);return this.addCallbacks(c,c)},fired:-1}),a.when=D.when=t,a},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(324)],E=u.dj.d(A,function(D){var _=null,v=function(){return _===null&&(_=new D),_};return v()},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(72),u(376),u(217),u(377),u(378)],E=u.dj.d(A,function(D,_,v,l,n){return{StatusEnum:D,TypeMetaDataEnum:_,MIME_TYPES:v,ACTIONS:l,EventsEnum:n}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(58),u(395),u(139),u(47),u(12)],E=u.dj.d(A,function(D,_,v,l,n){class e{constructor(){D.isDataTransferConstructor()?this._dataTransfer=new window.DataTransfer:this._dataTransfer=new _}getData(...r){return this._dataTransfer.getData(...r)}setData(r,i){return i=String(i),this._dataTransfer.setData(r,i)}get types(){return this._dataTransfer.types}get files(){return this._dataTransfer.files}get items(){return this._dataTransfer.items}static createInstance(r){return r}static isDataTransferValid(r){return D.isDataTransferValid(r)}static getDataTransferString(r){return D.getDataTransferString(r)}static convertBase64ToBlob(r,i){return v.convert(r,i)}setUrls(r){if(!Array.isArray(r)){n.warn("DataTransfer setUrls accepts array format");return}this._urlList=r;let i="";r.length>0&&(i=r.reduce((a,s)=>"".concat(a,`\r -`).concat(s))),this.setData(l.MIME_TYPES.TEXT_URI_LIST,i)}getUrls(){let r=this.getData(l.MIME_TYPES.TEXT_URI_LIST),i=[];return r?(r.includes(`\r -`)?i=r.split(`\r -`):r.includes(` -`)?i=r.split(` -`):i=[r],i.filter(a=>a.trim().charAt("0")!=="#")):i}setAction(r){r=r.toLowerCase(),Object.values(l.ACTIONS.DataTransfer).includes(r)||n.warn("Pass move or copy actions to dataTransfer.setAction"),this.setData(l.MIME_TYPES.ACTION,r)}getAction(){return this.getData(l.MIME_TYPES.ACTION)||l.ACTIONS.DataTransfer.UNINITIALIZED}static printDataTransfer(r,i){n.debug("From ",i),n.debug("All types",r.types);for(let a=0;a=0&&(m.width=f+g),h>=0&&(m.height=h+g)}function r(c){return c.tagName.toLowerCase()=="button"||c.tagName.toLowerCase()=="input"&&(c.getAttribute("type")||"").toLowerCase()=="button"}function i(c){return n.boxModel=="border-box"||c.tagName.toLowerCase()=="table"||r(c)}function a(c){var o={x:0,y:0,width:0,height:0,top:0,right:0,bottom:0,left:0},d;try{d=c.getBoundingClientRect()}catch(f){return o}return typeof d.left=="undefined"?o:d}n.setContentSize=function(o,d,f){o=v.byId(o);var h=d.w,g=d.h;if(i(o)){var m=n.getPadBorderExtents(o,f);h>=0&&(h+=m.w),g>=0&&(g+=m.h)}t(o,NaN,NaN,h,g)};var s={l:0,t:0,w:0,h:0};return n.setMarginBox=function(o,d,f){o=v.byId(o);var h=f||l.getComputedStyle(o),g=d.w,m=d.h,S=i(o)?s:n.getPadBorderExtents(o,h),T=n.getMarginExtents(o,h);if(D("webkit")&&r(o)){var w=o.style;g>=0&&!w.width&&(w.width="4px"),m>=0&&!w.height&&(w.height="4px")}g>=0&&(g=Math.max(g-S.w-T.w,0)),m>=0&&(m=Math.max(m-S.h-T.h,0)),t(o,d.l,d.t,g,m)},n.isBodyLtr=function(o){return o=o||_.doc,(_.body(o).dir||o.documentElement.dir||"ltr").toLowerCase()=="ltr"},n.docScroll=function(o){o=o||_.doc;var d=o.parentWindow||o.defaultView;return"pageXOffset"in d?{x:d.pageXOffset,y:d.pageYOffset}:(d=D("quirks")?_.body(o):o.documentElement)&&{x:n.fixIeBiDiScrollLeft(d.scrollLeft||0,o),y:d.scrollTop||0}},n.getIeDocumentElementOffset=function(c){return{x:0,y:0}},n.fixIeBiDiScrollLeft=function(o,d){d=d||_.doc;var f=D("ie");if(f&&!n.isBodyLtr(d)){var h=D("quirks"),g=h?_.body(d):d.documentElement,m=_.global;return f==6&&!h&&m.frameElement&&g.scrollHeight>g.clientHeight&&(o+=g.clientLeft),f<8||h?o+g.clientWidth-g.scrollWidth:-o}return o},n.position=function(c,o){c=v.byId(c);var d=_.body(c.ownerDocument),f=a(c);if(f={x:f.left,y:f.top,w:f.right-f.left,h:f.bottom-f.top},D("ie")<9&&(f.x-=D("quirks")?d.clientLeft+d.offsetLeft:0,f.y-=D("quirks")?d.clientTop+d.offsetTop:0),o){var h=n.docScroll(c.ownerDocument);f.x+=h.x,f.y+=h.y}return f},n.getMarginSize=function(o,d){o=v.byId(o);var f=n.getMarginExtents(o,d||l.getComputedStyle(o)),h=a(o);return{w:h.right-h.left+f.w,h:h.bottom-h.top+f.h}},n.normalizeEvent=function(c){if("layerX"in c||(c.layerX=c.offsetX,c.layerY=c.offsetY),!("pageX"in c)){var o=c.target,d=o&&o.ownerDocument||document,f=D("quirks")?d.body:d.documentElement;c.pageX=c.clientX+n.fixIeBiDiScrollLeft(f.scrollLeft||0,d),c.pageY=c.clientY+(f.scrollTop||0)}},n},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(6),u(8),u(18),u(23)],E=u.dj.d(A,function(D,_,v,l,n){v.add("dom-quirks",n.doc&&n.doc.compatMode=="BackCompat"),v.add("events-mouseenter",n.doc&&"onmouseenter"in n.doc.createElement("div")),v.add("events-mousewheel",n.doc&&"onmousewheel"in n.doc);var e;v("dom-quirks")&&v("ie")||!v("dom-addeventlistener")?e={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(i,a){return i.button&a},isLeft:function(i){return i.button&1},isMiddle:function(i){return i.button&4},isRight:function(i){return i.button&2}}:e={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(i,a){return i.button==a},isLeft:function(i){return i.button==0},isMiddle:function(i){return i.button==1},isRight:function(i){return i.button==2}},D.mouseButtons=e;function t(i,a){var s=function(c,o){return _(c,i,function(d){if(a)return a(d,o);if(!l.isDescendant(d.relatedTarget,c))return o.call(this,d)})};return s.bubble=function(c){return t(i,function(o,d){var f=c(o.target),h=o.relatedTarget;if(f&&f!=(h&&h.nodeType==1&&c(h)))return d.call(f,o)})},s}var r;return v("events-mousewheel")?r="mousewheel":r=function(i,a){return _(i,"DOMMouseScroll",function(s){s.wheelDelta=-s.detail,a.call(this,s)})},{_eventHandler:t,enter:t("mouseover"),leave:t("mouseout"),wheel:r,isLeft:e.isLeft,isMiddle:e.isMiddle,isRight:e.isRight}},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){function D(_,v,l,n){var e=l.style.display;l.style.display="none",_.insertBefore(v,n),setTimeout(function(){l.parentNode&&(l.parentNode.removeChild(l),l.style.display==="none"&&(l.style.display=e))},0)}return{shouldCellUpdate:function(v,l,n,e){if(v.editState!==l.editState||v.focusClass!==l.focusClass||v.renderer!==l.renderer||v.interactiveRenderer!==l.interactiveRenderer||v.editor!==l.editor)return!0;var t=v.cellData.isEqual(l.cellData);return!t},replaceFirstNode:function(v,l,n){D(v,l,n,v.firstChild)},replaceLastNode:function(v,l,n){D(v,l,n,null)},getCellType:function(v){return v.type&&v.type.cellType?v.type.cellType:"TableCell"},determineCellBaseStyle:function(v,l){var n=v;return l&&l.type&&l.type.baseStyle&&(n=l.type.baseStyle),l&&l.readOnlyVisualDesign===!1&&n.indexOf("mw-table-cell-background-input")===-1&&(n=n.replace("mw-table-cell-background","mw-table-cell-background-input")),n},getBaseStyle:function(v){var l="mw-table-cell mw-table-cell-background";return this.determineCellBaseStyle(l,v)}}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function l(n,e){var t=[],r=!0,i=!1,a=void 0;try{for(var s=n[Symbol.iterator](),c;!(r=(c=s.next()).done)&&(t.push(c.value),!(e&&t.length===e));r=!0);}catch(o){i=!0,a=o}finally{try{!r&&s.return&&s.return()}finally{if(i)throw a}}return t}return function(n,e){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return l(n,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_=function(){function l(n,e){for(var t=0;t0},f=function(T){return T.dataIndex>=0},h=function(T){return T.width.unit==="px"||T.width.unit==="%"&&!T.parentId||T.width.unit===""||!T.width.value&&!T.width.unit},g=function(){function S(){v(this,S)}return _(S,null,[{key:"getLevelsOfHeaders",value:function(){return s()}},{key:"parseViewModelWithConfig",value:function(w){var R=w.columnModel,O=R===void 0?{}:R,F=w.viewModel,b=F===void 0?{}:F,I=w.attributes,N=I===void 0?{}:I,P=l.alt(S.initializeConfiguredHeaders,function(){return{columns:[]}},{columnConfig:O.columnConfig}),L=P.spanning,k=P.columns,W=k||[],K=S.validateColPct(W),V=D(K,2),G=V[0],j=V[1],Y=S.initialColumnHeaderConfig(O.columnHeaderConfig);return m(W,j,G),b.setColumnHeaderConfig(Y),b.setColumnHeaders(W),b.setSpanningHeaders(L),S.setAttributes(b,N),b}},{key:"isEditorConfigured",value:function(w){var R=!1;if(w&&w.length){for(var O=0;O=e.buffers.UNPAGED_COL_LIMIT}},{key:"notEnoughColumnsToPage",value:function(w){return!S.enoughColumnsToPage(w)}},{key:"parseHeaderConfig",value:function(w,R){var O=w.label,F=O===void 0?null:O,b=w.dataIndex,I=b===void 0?-1:b,N=w.width,P=N===void 0?{}:N,L=w.renderer,k=L===void 0?null:L,W=w.editor,K=W===void 0?null:W,V=w.interactiveRenderer,G=V===void 0?null:V,j=w.sortType,Y=j===void 0?"":j,z=w.sortFirst,Q=z===void 0?void 0:z,X=w.hidden,J=X===void 0?!1:X,$=w.hideable,q=$===void 0?!0:$,te=w.readonly,oe=te===void 0?!1:te,le=w.columnId,de=le===void 0?null:le,De=w.headerMenu,Se=De===void 0?!1:De,pe=w.headerRenderer,ie=pe===void 0?null:pe,ee=w.headerEditor,me=ee===void 0?null:ee,ce=w.parentId,ve=ce===void 0?void 0:ce,Oe=w.colStartIndex,Ye=Oe===void 0?-1:Oe,nt=w.colEndIndex,Dt=nt===void 0?-1:nt,wt=w.reorder,Ft=wt===void 0?!0:wt,St=w.columnHeaderIndex,xt=St===void 0?-1:St,zt=w.resizable,tn=zt===void 0?void 0:zt;G&&(K=null,k=null);var Gt={label:F,dataIndex:I,width:P,renderer:k,editor:K,interactiveRenderer:G,sortType:Y,sortFirst:Q,hidden:J,hideable:q,readonly:oe,columnId:de!==null?de.toString():R.toString(),headerMenu:Se,headerRenderer:ie,headerEditor:me,colStartIndex:Ye,colEndIndex:Dt,parentId:ve,reorder:Ft,columnHeaderIndex:xt,resizable:tn};return n.fromType(f,Gt).filter(h).orElse(null)}},{key:"initializeConfiguredHeaders",value:function(w){var R=w.columnConfig,O=R===void 0?[]:R,F=c({children:O}),b=o(F.spanningConfig),I=n.fromType(d,F.columns).chain(function(N){return N.map(S.parseHeaderConfig)}).chain(function(N){return N.filter(function(P){return P})});return{spanning:b,columns:I.orElse(null)}}},{key:"validateColPct",value:function(w){var R=0,O=0,F=-1;w.forEach(function(I,N){if(I.width&&S.validateGeoVal(I.width,"%")){var P=Math.abs(I.width.value);R+=P,P>O&&(F=N,O=P)}});var b=100-R;return b<1&&(F=-1),[b,F]}},{key:"getTbodyHeaderClass",value:function(w){return w?"mw-tbody-all-columns":"mw-tbody-paged-columns"}},{key:"getTableHeaderClass",value:function(w){return w?"":"mw-table-paged-columns"}},{key:"getPercentColumnPageWidth",value:function(w){var R=w.headers,O=R===void 0?[]:R,F=w.allColumnsRendered,b=F===void 0?!1:F;function I(N){if(N.width)return N.width.unit==="%"}return b&&l.find(O,I)?"100%":null}},{key:"validateGeoVal",value:function(){var w=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},R=w.value,O=w.unit,F=arguments[1];return!isNaN(parseFloat(R))&&R!==1/0&&(!F||O===F)}},{key:"validateForNaturalNumber",value:function(w){var R=function(){return!(w!==void 0&&(typeof w!="number"||!Number.isInteger(w)||w<=0))}();if(!R)throw new Error("Error: Invalid numberOfGutters option, numberOfGutters should be a natural number")}},{key:"setAttributes",value:function(w,R){function O(j,Y){Y=Math.max(e.dimensions.ABSOLUTE_MIN,Y),S.validateGeoVal({value:Y})&&w.setState(j,Y)}function F(j,Y){r.hasOwnProperty(Y)&&w.setState(j,Y)}function b(j,Y){w.setState(j,Y)}function I(j,Y){w.setState(j,Y)}function N(j,Y){w.setState(j,Y)}function P(j,Y){w.setState(j,Y)}function L(j,Y){S.validateForNaturalNumber(Y),w.setState(j,Y)}for(var k=function(Y){switch(Y){case"minColWidth":return O.bind(this,t.COL_WIDTH);case"minRowHeight":return O.bind(this,t.ROW_HEIGHT);case"gridStyle":return F.bind(this,t.protected.GRID_STYLE);case"groupedColumns":return P.bind(this,t.protected.GROUPED_COLUMN_HEADERS);case"numberOfGutters":return L.bind(this,"numberOfGutters");case"useEditorRendererDataFields":return b.bind(this,t.protected.USE_DATA_FIELDS);case"resizeSelection":return I.bind(this,t.protected.RESIZE_SELECTION);case"readOnlyVisualDesign":return N.bind(this,t.protected.READONLY_VISUALDESIGN);default:return function(z){return z}}},W=Object.keys(R),K=W.length,V=void 0,G=0;G1&&arguments[1]!==void 0?arguments[1]:-1,w=arguments[2];return T>-1&&(S[T].width.value+=w),S}},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){"use strict";return Object.freeze({internal:{ALL:"all"},exposed:{WINDOWS:"windows",MAC:"mac",LINUX:"linux"}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({COL_WIDTH:82,ROW_HEIGHT:22,TOOLTIP_MIN_WIDTH:300}),_=Object.freeze({TREE_COLUMN_INDEX:0,TREE_NODE_INDENTATION:18,dimensions:D,KEY_HANDLER_NAME:"keyHandlerName",KEY_CODE:"keyCode",KEY_HANDLER:"keyHandler",PLATFORMS:"platforms",MODIFIER_KEY_LIST:"modifierKeyList",ALT_KEY:"altKey",CTRL_KEY:"ctrlKey",META:"meta",SHIFT_KEY:"shiftKey"});return _},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(138),u(140),u(139),u(216),u(47)],E=u.dj.d(A,function(D,_,v,l,n){let{MIME_TYPES:e,TypeMetaDataEnum:t}=n;const r={setEventClipboardData(i,a){let s={[e.KIND_FILE]:c=>{let o=c.getAsFile();i.add(o)},[e.KIND_STRING]:c=>{i.add(a.getData(c.type),c.type)}};for(let c=0;cD.checkImageType(a.type))},getMimeMetaData(i,a,s){return s?t.useNavigatorClipboard:a&&_.isCopyEvent(a)&&_.isEventRunningNow(a)?t.FROM_COPY_EVENT:r.hasOnlyTextMimeType(i)?t.ONLY_TEXT:r.hasImageMimeType(i)?t.CONTAINS_IMAGE:t.OTHERS},isDataTransferConstructor(){try{new window.DataTransfer}catch(i){return!1}return!0},isDataTransferValid(i){if(!i)return!1;let a=i.types;return!(!a||(!Array.isArray(a)||a.length===0)&&i.items&&i.items.length===0)},getDataTransferString(i){if(!i)return"dataTransfer is null";let a=i.types;if(!a||a.length===0||!a[0])return"dataTransfer has no mime types";let s="";for(let c=0;cD.checkImageType(c.type)?r.readBase64FromImage(c.getAsFile(),c.type):Promise.resolve(null),[e.KIND_STRING]:c=>{let o=i.getData(c.type);return c.type===e.TEXT_URI_LIST?a[e.TEXT_URI_LIST](c):Promise.resolve({flavor:c.type,content:o})},[e.TEXT_URI_LIST]:c=>Promise.resolve({flavor:c.type,content:i.getUrls(),mode:i.getAction()})},s=[];for(let c=0;c({contents:c.filter(d=>!!d)}))},convertServerFormatToDataTransfer(i,a){let s=i.contents||[],c=Object.keys(s),o={[e.IMAGE]:(d,f)=>{if(typeof f!="object")return;let h;if(f.__value__&&(h=f.__value__),f instanceof Image&&(h=f.src),!h)return;let g=h.split(",");if(g.length<2)return;let m=g[1],S=v.convert(m),T=l.convert(d);a.items.add(new File([S],T,{type:"image/png"}))},[e.TEXT_URI_LIST]:(d,f)=>{a.setUrls(f)}};return c.forEach(d=>{let f=s[d];if(D.checkImageType(d)){o[e.IMAGE](d,f);return}if(o[d]){o[d](d,f);return}a.items.add(f,d)}),a},compareStringData(i,a){let s=Array.from(i.types),c=Array.from(a.types);if(s.length!==c.length||!s.every(o=>c.includes(o)))return!1;if(i.files.length===0&&a.files.length===0)return s.every(o=>i.getData(o)===a.getData(o))},compare(i,a){const s=r.compareStringData(i,a);return typeof s=="boolean"?Promise.resolve(s):r.compareFiles(i.files,a.files)},compareFiles(i,a){const s=[];for(let c=0;cc.every(o=>o))},_compareFile(i,a){return i.size!==a.size?Promise.resolve(!1):Promise.all([r._readFileAsDataURL(i),r._readFileAsDataURL(a)]).then(s=>{let c=s[0],o=s[1];return c===o})},_readFileAsDataURL(i){return new Promise(a=>{const s=new FileReader;s.onload=function(){a(s.result)},s.readAsDataURL(i)})}};return r},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({HEADER_LABEL:"mw-header-label",HEADER_INDEX:"mw-header-index",ROW_HEADER_LABEL:"mw-row-header-label",RESIZE_AFFORDANCE:"mw-table-resize-affordance",RESIZE_SELECTION_AFFORDANCE:"mw-table-resize-selection",RESIZE_AFFORDANCE_PLACEHOLDER:"mwTableHeaderAffordancePlaceholder"});return D},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;eMath.abs(w)?S=T<0?n:v:S=w<0?_:l),S};return{arePointsWithinRadius:function(g,m,S){var T=void 0,w=void 0,R=void 0;return!g||!m?!1:(T=g.x-m.x,w=g.y-m.y,R=Math.sqrt(T*T+w*w),R1?g-1:0),S=1;S2&&arguments[2]!==void 0?arguments[2]:!1,S=["."+r.INSERTION_LINE_CLASS,"."+r.CONTAINER],T={allowGlobal:m,dropTarget:r.TARGET_SELECTOR_TABLE_ROW,rowRegions:g,lifecycle:h},w=S.map(function(R){return{allowGlobal:m,dropTarget:R,lifecycle:h}});return w.concat(T)}},{key:"debounceCheckForDragOut",value:function(h,g,m){return function(){h.currentDndLifeCycle=g,h.checktimer&&clearTimeout(h.checktimer),h.checktimer=setTimeout(function(){return d.removeInsertionLineOnLastTarget(h,m)},a)}}},{key:"removeInsertionLineOnLastTarget",value:function(h,g){h.currentDndLifeCycle===r.targetLifeCycle.LEAVE&&d.removeInsertionLine(g)}},{key:"clearDnDContext",value:function(h,g){return document.removeEventListener("mouseup",h._mouseupFn,{capture:!0}),h._mouseupFn=null,g(e.internal.DRAG_END),h.destroy()}},{key:"setAvatar",value:function(h,g,m,S){var T=d.getAvatarNode(h,g,m,S),w=T.avatarNode,R=T.count;m.setAvatar(w,R)}},{key:"getAvatarNode",value:function(h,g,m,S){var T=void 0,w=o(g);if(S){var R=S({dataTransferItem:m});R&&R.node&&(T=R.node)}return T=T||document.createTextNode(h.textContent),{avatarNode:T,count:w}}},{key:"startAction",value:function(h,g){g(e.internal.DRAG_STARTED,h)}},{key:"endAction",value:function(h){d.removeInsertionLine(h),h(e.internal.DRAG_END)}}]),d}();return s;function c(d,f,h,g){var m=h.allowGlobal,S=m===void 0?!1:m,T=h.lifecycle;return s.sourceLifecycleDecorator(T,d,g),d.createDragSource({dragSource:f,allowGlobal:S,lifecycle:T}),d}function o(d){var f=d.dndSourceDataToDropOutside,h=d.internalRowDndSourceData,g=d.columnDnDSourceData,m=1;return g?m=g.count:(f&&(m=f.count),h&&(m=h.count)),m}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(83),u(8)],E=u.dj.d(A,function(D,_){var v=document,l={loaded:1,complete:1},n=typeof v.readyState!="string",e=!!l[v.readyState],t=[],r;function i(h){t.push(h),e&&a()}i.load=function(h,g,m){i(m)},i._Q=t,i._onQEmpty=function(){},n&&(v.readyState="loading");function a(){if(!r){for(r=!0;t.length;)try{t.shift()(v)}catch(h){console.error(h,"in domReady callback",h.stack)}r=!1,i._onQEmpty()}}if(!e){var s=[],c=function(h){h=h||D.event,!(e||h.type=="readystatechange"&&!l[v.readyState])&&(n&&(v.readyState="complete"),e=1,a())},o=function(h,g){h.addEventListener(g,c,!1),t.push(function(){h.removeEventListener(g,c,!1)})};if(!_("dom-addeventlistener")){o=function(h,g){g="on"+g,h.attachEvent(g,c),t.push(function(){h.detachEvent(g,c)})};var d=v.createElement("div");try{d.doScroll&&D.frameElement===null&&s.push(function(){try{return d.doScroll("left"),1}catch(h){}})}catch(h){}}if(o(v,"DOMContentLoaded"),o(D,"load"),"onreadystatechange"in v?o(v,"readystatechange"):n||s.push(function(){return l[v.readyState]}),s.length){var f=function(){if(!e){for(var h=s.length;h--;)if(s[h]()){c("poller");return}setTimeout(f,30)}};f()}}return i},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7)],E=u.dj.d(A,function(D){return D.dijit},C,x),C.exports=E},function(C,x,u){var A,E;A=[u.dj.c(C.i),u(15),u(20),u(41),u(90),u(0),u(18),u(70),u(71),u(24),u(52),u(32),u(8),u(7),u(1),u(6),u(275),u(276),u(127),u(23),u(536),u.dj.h("dojo-bidi?537"),u(66)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i,a,s,c,o,d,f,h,g,m,S,T,w,R,O){o.add("dijit-legacy-requires",!d.isAsync),o.add("dojo-bidi",!1),o("dijit-legacy-requires")&&g(0,function(){var L=["dijit/_base/manager"];D(L)});var F={};function b(L){var k={};for(var W in L)k[W.toLowerCase()]=!0;return k}function I(L){return function(k){r[k?"set":"remove"](this.domNode,L,k),this._set(L,k)}}function N(L,k){return L===k||L!==L&&k!==k}var P=e("dijit._WidgetBase",[m,w],{id:"",_setIdAttr:"domNode",lang:"",_setLangAttr:I("lang"),dir:"",_setDirAttr:I("dir"),class:"",_setClassAttr:{node:"domNode",type:"class"},_setTypeAttr:null,style:"",title:"",tooltip:"",baseClass:"",srcNodeRef:null,domNode:null,containerNode:null,ownerDocument:null,_setOwnerDocumentAttr:function(L){this._set("ownerDocument",L)},attributeMap:{},_blankGif:l.blankGif||D.toUrl("dojo/resources/blank.gif"),textDir:"",_introspect:function(){var L=this.constructor;if(!L._setterAttrs){var k=L.prototype,W=L._setterAttrs=[],K=L._onMap={};for(var V in k.attributeMap)W.push(V);for(V in k)/^on/.test(V)&&(K[V.substring(2).toLowerCase()]=V),/^_set[A-Z](.*)Attr$/.test(V)&&(V=V.charAt(4).toLowerCase()+V.substr(5,V.length-9),(!k.attributeMap||!(V in k.attributeMap))&&W.push(V))}},postscript:function(L,k){this.create(L,k)},create:function(L,k){this._introspect(),this.srcNodeRef=t.byId(k),this._connects=[],this._supportingWidgets=[],this.srcNodeRef&&this.srcNodeRef.id&&typeof this.srcNodeRef.id=="string"&&(this.id=this.srcNodeRef.id),L&&(this.params=L,f.mixin(this,L)),this.postMixInProperties(),this.id||(this.id=O.getUniqueId(this.declaredClass.replace(/\./g,"_")),this.params&&delete this.params.id),this.ownerDocument=this.ownerDocument||(this.srcNodeRef?this.srcNodeRef.ownerDocument:document),this.ownerDocumentBody=T.body(this.ownerDocument),O.add(this),this.buildRendering();var W;if(this.domNode){this._applyAttributes();var K=this.srcNodeRef;K&&K.parentNode&&this.domNode!==K&&(K.parentNode.replaceChild(this.domNode,K),W=!0),this.domNode.setAttribute("widgetId",this.id)}this.postCreate(),W&&delete this.srcNodeRef,this._created=!0},_applyAttributes:function(){var L={};for(var k in this.params||{})L[k]=this._get(k);_.forEach(this.constructor._setterAttrs,function(W){if(!(W in L)){var K=this._get(W);K&&this.set(W,K)}},this);for(k in L)this.set(k,L[k])},postMixInProperties:function(){},buildRendering:function(){if(this.domNode||(this.domNode=this.srcNodeRef||this.ownerDocument.createElement("div")),this.baseClass){var L=this.baseClass.split(" ");this.isLeftToRight()||(L=L.concat(_.map(L,function(k){return k+"Rtl"}))),i.add(this.domNode,L)}},postCreate:function(){},startup:function(){this._started||(this._started=!0,_.forEach(this.getChildren(),function(L){!L._started&&!L._destroyed&&f.isFunction(L.startup)&&(L.startup(),L._started=!0)}))},destroyRecursive:function(L){this._beingDestroyed=!0,this.destroyDescendants(L),this.destroy(L)},destroy:function(L){this._beingDestroyed=!0,this.uninitialize();function k(W){W.destroyRecursive?W.destroyRecursive(L):W.destroy&&W.destroy(L)}_.forEach(this._connects,f.hitch(this,"disconnect")),_.forEach(this._supportingWidgets,k),this.domNode&&_.forEach(O.findWidgets(this.domNode,this.containerNode),k),this.destroyRendering(L),O.remove(this.id),this._destroyed=!0},destroyRendering:function(L){this.bgIframe&&(this.bgIframe.destroy(L),delete this.bgIframe),this.domNode&&(L?r.remove(this.domNode,"widgetId"):a.destroy(this.domNode),delete this.domNode),this.srcNodeRef&&(L||a.destroy(this.srcNodeRef),delete this.srcNodeRef)},destroyDescendants:function(L){_.forEach(this.getChildren(),function(k){k.destroyRecursive&&k.destroyRecursive(L)})},uninitialize:function(){return!1},_setStyleAttr:function(L){var k=this.domNode;f.isObject(L)?c.set(k,L):k.style.cssText?k.style.cssText+="; "+L:k.style.cssText=L,this._set("style",L)},_attrToDom:function(L,k,W){W=arguments.length>=3?W:this.attributeMap[L],_.forEach(f.isArray(W)?W:[W],function(K){var V=this[K.node||K||"domNode"],G=K.type||"attribute";switch(G){case"attribute":f.isFunction(k)&&(k=f.hitch(this,k));var j=K.attribute?K.attribute:/^on[A-Z][a-zA-Z]*$/.test(L)?L.toLowerCase():L;V.tagName?r.set(V,j,k):V.set(j,k);break;case"innerText":V.innerHTML="",V.appendChild(this.ownerDocument.createTextNode(k));break;case"textContent":V.textContent=k;break;case"innerHTML":V.innerHTML=k;break;case"class":i.replace(V,k,this[L]);break;case"toggleClass":i.toggle(V,K.className||L,k);break}},this)},get:function(L){var k=this._getAttrNames(L);return this[k.g]?this[k.g]():this._get(L)},set:function(L,k){if(typeof L=="object"){for(var W in L)this.set(W,L[W]);return this}var K=this._getAttrNames(L),V=this[K.s];if(f.isFunction(V))var G=V.apply(this,Array.prototype.slice.call(arguments,1));else{var j=this.focusNode&&!f.isFunction(this.focusNode)?"focusNode":"domNode",Y=this[j]&&this[j].tagName,z=Y&&(F[Y]||(F[Y]=b(this[j]))),Q=L in this.attributeMap?this.attributeMap[L]:K.s in this?this[K.s]:z&&K.l in z&&typeof k!="function"||/^aria-|^data-|^role$/.test(L)?j:null;Q!=null&&this._attrToDom(L,k,Q),this._set(L,k)}return G||this},_attrPairNames:{},_getAttrNames:function(L){var k=this._attrPairNames;if(k[L])return k[L];var W=L.replace(/^[a-z]|-[a-zA-Z]/g,function(K){return K.charAt(K.length-1).toUpperCase()});return k[L]={n:L+"Node",s:"_set"+W+"Attr",g:"_get"+W+"Attr",l:W.toLowerCase()}},_set:function(L,k){var W=this[L];this[L]=k,this._created&&!N(W,k)&&(this._watchCallbacks&&this._watchCallbacks(L,W,k),this.emit("attrmodified-"+L,{detail:{prevValue:W,newValue:k}}))},_get:function(L){return this[L]},emit:function(L,k,W){k=k||{},k.bubbles===void 0&&(k.bubbles=!0),k.cancelable===void 0&&(k.cancelable=!0),k.detail||(k.detail={}),k.detail.widget=this;var K,V=this["on"+L];return V&&(K=V.apply(this,W||[k])),this._started&&!this._beingDestroyed&&h.emit(this.domNode,L.toLowerCase(),k),K},on:function(L,k){var W=this._onMap(L);return W?v.after(this,W,k,!0):this.own(h(this.domNode,L,k))[0]},_onMap:function(L){var k=this.constructor,W=k._onMap;if(!W){W=k._onMap={};for(var K in k.prototype)/^on/.test(K)&&(W[K.replace(/^on/,"").toLowerCase()]=K)}return W[typeof L=="string"&&L.toLowerCase()]},toString:function(){return"[Widget "+this.declaredClass+", "+(this.id||"NO ID")+"]"},getChildren:function(){return this.containerNode?O.findWidgets(this.containerNode):[]},getParent:function(){return O.getEnclosingWidget(this.domNode.parentNode)},connect:function(L,k,W){return this.own(n.connect(L,k,this,W))[0]},disconnect:function(L){L.remove()},subscribe:function(L,k){return this.own(S.subscribe(L,f.hitch(this,k)))[0]},unsubscribe:function(L){L.remove()},isLeftToRight:function(){return this.dir?this.dir.toLowerCase()=="ltr":s.isBodyLtr(this.ownerDocument)},isFocusable:function(){return this.focus&&c.get(this.domNode,"display")!="none"},placeAt:function(L,k){var W=!L.tagName&&O.byId(L);if(W&&W.addChild&&(!k||typeof k=="number"))W.addChild(this,k);else{var K=W&&"domNode"in W?W.containerNode&&!/after|before|replace/.test(k||"")?W.containerNode:W.domNode:t.byId(L,this.ownerDocument);a.place(this.domNode,K,k),!this._started&&(this.getParent()||{})._started&&this.startup()}return this},defer:function(L,k){var W=setTimeout(f.hitch(this,function(){!W||(W=null,this._destroyed||f.hitch(this,L)())}),k||0);return{remove:function(){return W&&(clearTimeout(W),W=null),null}}}});return o("dojo-bidi")&&P.extend(R),P},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(15),u(23),u(64)],E=u.dj.d(A,function(D,_,v){var l={},n={},e={length:0,add:function(t){if(n[t.id])throw new Error("Tried to register widget with id=="+t.id+" but that id is already registered");n[t.id]=t,this.length++},remove:function(t){n[t]&&(delete n[t],this.length--)},byId:function(t){return typeof t=="string"?n[t]:t},byNode:function(t){return n[t.getAttribute("widgetId")]},toArray:function(){var t=[];for(var r in n)t.push(n[r]);return t},getUniqueId:function(t){var r;do r=t+"_"+(t in l?++l[t]:l[t]=0);while(n[r]);return v._scopeName=="dijit"?r:v._scopeName+"_"+r},findWidgets:function(t,r){var i=[];function a(s){for(var c=s.firstChild;c;c=c.nextSibling)if(c.nodeType==1){var o=c.getAttribute("widgetId");if(o){var d=n[o];d&&i.push(d)}else c!==r&&a(c)}}return a(t),i},_destroyAll:function(){v._curFocus=null,v._prevFocus=null,v._activeStack=[],D.forEach(e.findWidgets(_.body()),function(t){t._destroyed||(t.destroyRecursive?t.destroyRecursive():t.destroy&&t.destroy())})},getEnclosingWidget:function(t){for(;t;){var r=t.nodeType==1&&t.getAttribute("widgetId");if(r)return n[r];t=t.parentNode}return null},_hash:n};return v.registry=e,e},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0),u(1)],E=u.dj.d(A,function(D,_){return D(null,{_triggerChangeEvent:function(v,l,n){this.emit("change",{mwEventData:{propertyName:v,oldValue:l,newValue:n}})},_qeTypeOverWithEnter:function(v){var l=this.get("value");this.set("value",v),this._triggerChangeEvent("value",l,v)},postCreate:function(){this.inherited(arguments),this.own(this.on("change",_.hitch(this,function(v){v.preventDefault(),v.mwEventData||(v.stopPropagation(),this._triggerChangeEvent("checked",!this.get("checked"),this.get("checked")))})))}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(20),u(6)],E=u.dj.d(A,function(D,_){"use strict";var v=D.after;function l(){}return l.prototype={on:function(n,e){return _.parse(this,n,e,function(t,r){return v(t,"on"+r,e,!0)})},emit:function(n,e){var t=[this];return t.push.apply(t,arguments),_.emit.apply(_,t)}},l},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e=0},add:function(s,c){s=v.byId(s),c=r(c);var o=s[l],d;o=o?" "+o+" ":" ",d=o.length;for(var f=0,h=c.length,g;f2&&arguments[2]!==void 0?arguments[2]:"",h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},g=arguments[4];o=v.getTargetNode(d,o,g,h);var m=h.showTooltip||v.isTruncated(o);if(g=g||o,m){if(h.getTooltip){var S=h.getTooltip(f);S&&S.text&&(f=S.text)}return r(g,d,f)}};return l.useLayoutEffect(function(){return function(){return s()}},[]),{setTooltip:r,setTooltipWhenOverflow:i,handleMouseOverWithRenderer:a};function s(){t(D.protected.NODE_NOTIFY,{publisherFn:function(){return!0},publisherId:_.publisher.TOOLTIP_DISMISS,noRender:!0})}};return n},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(3)],E=u.dj.d(A,function(D){var _=D.createContext({});return _},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return function(D,_){var v=null,l=function(){n(),v=window.setTimeout(D,_)},n=function(){v&&window.clearTimeout(v),v=null};return{start:l,clear:n}}},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){return Object.freeze({LIGHT:"light",DARK:"dark"})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){var D=function(e,t){for(var r=e.length,i=0;i0){var s=r(D.range(),0,1/0);s=t(s,e[0],e[0]);for(var c=0;c=0||typeof v=="number"&&v>0))throw new Error(" Property should either be 'auto' or a positive integer")},_setSize:function(v,l){if(this._validateSizeInput(l),this._set(v,l),!!this._started){var n="";this._allowedValues.indexOf(l)>=0?n=l:n=this._getAdjustedSize(v,l,this.domNode),this.domNode.style[v]=n}},_getAdjustedSize:function(v,l,n){return l+"px"}})},C,x),C.exports=E},function(C,x,u){var A;A=function(){return typeof global!="undefined"&&typeof global!="function"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:this}.call(null,u,x,C),A!==void 0&&(C.exports=A)},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({EDITOR:"editorValue",RENDERER:"rendererValue"});return D},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(304)],E=u.dj.d(A,function(D){"use strict";const _=function(){};class v extends D{createRenderRoot(){return window.ShadowRoot&&this._experimentalUseShadowDom?super.createRenderRoot():this}emit(n,e,t={}){let r=t.bubbles||!1,i=t.cancelable||!1,a=new CustomEvent(n,{detail:e||{},bubbles:r,cancelable:i});this.dispatchEvent(a)}on(n,e,t={}){this.addEventListener(n,e,t);let r=this.removeEventListener.bind(this,n,e,t);return{remove:function(){r(),r=_}}}}return v},C,x),C.exports=E},function(C,x,u){var A,E;A=[x,u(305),u(308)],E=u.dj.d(A,function(D,_,v){"use strict";/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var l,n;const e=_.ReactiveElement,t=_.ReactiveElement;class r extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var s,c;const o=super.createRenderRoot();return(s=(c=this.renderOptions).renderBefore)!==null&&s!==void 0||(c.renderBefore=o.firstChild),o}update(s){const c=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(s),this._$Dt=v.render(c,this.renderRoot,this.renderOptions)}connectedCallback(){var s;super.connectedCallback(),(s=this._$Dt)===null||s===void 0||s.setConnected(!0)}disconnectedCallback(){var s;super.disconnectedCallback(),(s=this._$Dt)===null||s===void 0||s.setConnected(!1)}render(){return v.noChange}}r.finalized=!0,r._$litElement$=!0,(l=globalThis.litElementHydrateSupport)===null||l===void 0||l.call(globalThis,{LitElement:r});const i=globalThis.litElementPolyfillSupport;i==null||i({LitElement:r}),((n=globalThis.litElementVersions)!==null&&n!==void 0?n:globalThis.litElementVersions=[]).push("3.0.1"),D.LitElement=r,D.UpdatingElement=e,D.t={_$AK:(a,s,c)=>{a._$AK(s,c)},_$AL:a=>a._$AL},Object.keys(_).forEach(function(a){a==="default"||D.hasOwnProperty(a)||Object.defineProperty(D,a,{enumerable:!0,get:function(){return _[a]}})}),Object.keys(v).forEach(function(a){a==="default"||D.hasOwnProperty(a)||Object.defineProperty(D,a,{enumerable:!0,get:function(){return v[a]}})}),Object.defineProperty(D,"i",{value:!0})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){"use strict";return function(_){if(!_.widgetClass)throw new Error("The widgetClass object must have a widget widgetClass property");if(!_.name)throw new Error("The widgetDefinition object must have a name property");if(_.name.length<3||_.name.substring(0,3)!=="mw-")throw new Error("The widgetDefinition object must have a nameproperty starting with 'mw-'");let v=_.widgetClass;if(v._observedAttributes){let l=v._observedAttributes.slice(0);Object.defineProperty(v,"observedAttributes",{enumerable:!1,get:function(){return l}})}return customElements.define(_.name,v),function l(n){if(this instanceof l)throw new Error("Do not use 'w = new Widget()' to create a widget instance. Just use 'w = Widget()'");let e=new v;for(let t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t]);return e}}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(124)],E=u.dj.d(A,function(D){return D("CancelError",null,null,{dojoType:"cancel",log:!1})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(1)],E=u.dj.d(A,function(D){"use strict";function _(){throw new TypeError("abstract")}return D.extend(function(){},{then:function(v,l,n){_()},cancel:function(v,l){_()},isResolved:function(){_()},isRejected:function(){_()},isFulfilled:function(){_()},isCanceled:function(){_()},finally:function(v){return this.then(function(l){var n=v();return n&&typeof n.then=="function"?n.then(function(){return l}):l},function(l){var n=v();if(n&&typeof n.then=="function")return n.then(function(){throw l});throw l})},always:function(v){return this.then(v,v)},catch:function(v){return this.then(null,v)},otherwise:function(v){return this.then(null,v)},trace:function(){return this},traceRejected:function(){return this},toString:function(){return"[object Promise]"}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(6),u(127),u(20),u(317),u(53),u(128),u(1),u(38)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r){t.add("events-keypress-typed",function(){var g={charCode:0};try{g=document.createEvent("KeyboardEvent"),(g.initKeyboardEvent||g.initKeyEvent).call(g,"keypress",!0,!0,null,!1,!1,!1,!1,9,3)}catch(m){}return g.charCode==0&&!t("opera")});function i(g,m,S,T,w){if(T=r.hitch(S,T),!g||!(g.addEventListener||g.attachEvent))return l.after(g||D.global,m,T,!0);if(typeof m=="string"&&m.substring(0,2)=="on"&&(m=m.substring(2)),g||(g=D.global),!w)switch(m){case"keypress":m=d;break;case"mouseenter":m=e.enter;break;case"mouseleave":m=e.leave;break}return _(g,m,T,w)}var a={106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39,229:113},s=t("mac")?"metaKey":"ctrlKey",c=function(g,m){var S=r.mixin({},g,m);return o(S),S.preventDefault=function(){g.preventDefault()},S.stopPropagation=function(){g.stopPropagation()},S};function o(g){g.keyChar=g.charCode?String.fromCharCode(g.charCode):"",g.charOrCode=g.keyChar||g.keyCode}var d;if(t("events-keypress-typed")){var f=function(g,m){try{return g.keyCode=m}catch(S){return 0}};d=function(g,m){var S=_(g,"keydown",function(w){var R=w.keyCode,O=R!=13&&R!=32&&(R!=27||!t("ie"))&&(R<48||R>90)&&(R<96||R>111)&&(R<186||R>192)&&(R<219||R>222)&&R!=229;if(O||w.ctrlKey){var F=O?0:R;if(w.ctrlKey){if(R==3||R==13)return m.call(w.currentTarget,w);F>95&&F<106?F-=48:!w.shiftKey&&F>=65&&F<=90?F+=32:F=a[F]||F}var b=c(w,{type:"keypress",faux:!0,charCode:F});m.call(w.currentTarget,b),t("ie")&&f(w,b.keyCode)}}),T=_(g,"keypress",function(w){var R=w.charCode;return R=R>=32?R:0,w=c(w,{charCode:R,faux:!0}),m.call(this,w)});return{remove:function(){S.remove(),T.remove()}}}}else t("opera")?d=function(g,m){return _(g,"keypress",function(S){var T=S.which;return T==3&&(T=99),T=T<32&&!S.shiftKey?0:T,S.ctrlKey&&!S.shiftKey&&T>=65&&T<=90&&(T+=32),m.call(this,c(S,{charCode:T}))})}:d=function(g,m){return _(g,"keypress",function(S){return o(S),m.call(this,S)})};var h={_keypress:d,connect:function(g,m,S,T,w){var R=arguments,O=[],F=0;O.push(typeof R[0]=="string"?null:R[F++],R[F++]);var b=R[F+1];O.push(typeof b=="string"||typeof b=="function"?R[F++]:null,R[F++]);for(var I=R.length;F=200&&m<300||m===304||m===1223||!m}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(1)],E=u.dj.d(A,function(D){var _={};return{objectToQuery:function(l){var n=encodeURIComponent,e=[];for(var t in l){var r=l[t];if(r!=_[t]){var i=n(t)+"=";if(D.isArray(r))for(var a=0,s=r.length;a0&&(S.row=g.rangeList[0].rows.start),S}},{key:"_emitSelectedActionEvent",value:function(){this._emit(t.protected.TABLE_SELECTED_ACTION,{selection:this.getSelectionState()})}},{key:"_handleDoubleClick",value:function(){this._emit(t.protected.TABLE_SELECTED_ACTION,{selection:this.getSelectionState()})}},{key:"_getSelectedItemsList",value:function(){var g=this.viewModel.getStateByKey(i.protected.SELECTED);return g?g.value:[]}},{key:"getRowIdForIndex",value:function(g){if(isNaN(g)||g<0)return Promise.resolve(void 0);var m=[a.range().setRows(g,g)];return this.dataStore.getRowIds(m).then(function(S){return S[0]})}},{key:"setIndividualRow",value:function(g){this._currentContinuousSelectionIdList=null;var m=g?[g]:null;this._setPivot(g),this._doesDataStoreSupportSelection?Array.isArray(m)?this.dataStore.setSelectionByIds(m):this.dataStore.setSelectionByIds([]):this.setSelectionState(m)}},{key:"_setPivot",value:function(g){g&&(this.viewModel.setState(i.protected.PIVOT,g),this.viewModel.deleteState(i.treetable.POTENTIAL_PIVOT))}},{key:"isRowSelected",value:function(g){return this.getSelectedIdIndex(g)}},{key:"getSelectedIdIndex",value:function(g){return this._getSelectedIdList().indexOf(g)}},{key:"_getSelectedIdList",value:function(){var g=this.viewModel.getStateByKey(i.protected.SELECTED);return g?g.value:[]}},{key:"setSelectionState",value:function(g){Array.isArray(g)?(g.length===0?this.viewModel.setState(i.treetable.SELECTION_CLEARED,!0):this.viewModel.setState(i.treetable.SELECTION_CLEARED,!1),this.viewModel.setState(i.protected.SELECTED,g)):(this.viewModel.setState(i.protected.SELECTED,[]),this.viewModel.deleteState(i.treetable.SELECTION_CLEARED))}},{key:"setSelection",value:function(g){this._doesDataStoreSupportSelection?this.dataStore.setSelectionByIds(g):this.setSelectionState(g)}},{key:"setAllRows",value:function(){this._setRangeSelection(0,1/0)}},{key:"setContiguousRows",value:function(g){var m=this;return this._getPivotInView().then(function(S){if(S){m._setPivot(S.id);var T=Math.min(S.index,g.rows.start),w=Math.max(S.index,g.rows.start);return m._setRangeSelection(T,w)}else return m._getPivotId(m.viewModel.dataSize.rows.start).then(function(R){m._setPivot(R),m._setRangeSelection(m.viewModel.dataSize.rows.start,m.viewModel.dataSize.rows.start)})})}},{key:"setDragSelection",value:function(g){var m=this;return this._getPivotInView().then(function(S){if(S){m._setPivot(S.id);var T=Math.min(S.index,g.rows.start),w=Math.max(S.index,g.rows.start),R=[],O=m._getSelectedIdList(),F=m._getRangeListforRowIndices(T,w);m.dataStore.getRowIds(F).then(function(b){if(!s.isIdListIdentical(b,O)){var I=s.findIntersection(O,b);R=s.removeIntersection(O,I),m._currentContinuousSelectionIdList&&(I=s.findIntersection(R,m._currentContinuousSelectionIdList),R=s.removeIntersection(R,I)),m._currentContinuousSelectionIdList=b,R=R.concat(b),m.setSelection(R)}})}else return m._getPivotId(m.viewModel.dataSize.rows.start).then(function(b){m._setPivot(b),m._setRangeSelection(m.viewModel.dataSize.rows.start,m.viewModel.dataSize.rows.start)})})}},{key:"setDiscontiguousRowByRange",value:function(g){var m=this;return this.dataStore.getRowIds([g]).then(function(S){if(S.length>0){var T=[S[0]];m.setDiscontiguousRow(T)}})}},{key:"setDiscontiguousRow",value:function(g){this._setPivot(g),this._currentContinuousSelectionIdList=null;var m=this._getSelectedIdList(),S=this.isRowSelected(g);S>-1?(m.splice(S,1),this._doesDataStoreSupportSelection&&this.dataStore.removeSelectionById([g])):m.push(g),this._doesDataStoreSupportSelection?this.dataStore.setSelectionByIds(m,!0):this.setSelectionState(m)}},{key:"_getRangeListforRowIndices",value:function(g,m){var S=Math.max(g,this.viewModel.dataSize.rows.start),T=Math.min(m,this.viewModel.dataSize.rows.end);return[a.range().setRows(S,T)]}},{key:"_setRangeSelection",value:function(g,m){if(this._doesDataStoreSupportSelection)this.dataStore.setSelection(this._getRangeListforRowIndices(g,m));else{var S=this.viewModel.viewBuffer.rangeList[0].rows,T=S.start,w=S.end,R=g>=T&&m<=w,O=this.viewModel._rowMetaData._dataMetaData[0];return R?this._setRangeSelectionStateInViewBuffer(O,g,m):(this._setRangeSelectionStateWithInViewBuffer(O,g,m,T,w),this._setRangeSelectionStateForWholeView(g,m))}}},{key:"_setRangeSelectionStateWithInViewBuffer",value:function(g,m,S,T,w){var R=m>=T?m:T,O=S<=w?S:w,F=this._getSelectionIdsInViewBuffer(g,R,O);this.setSelectionState(F)}},{key:"_setRangeSelectionStateInViewBuffer",value:function(g,m,S){var T=this._getSelectionIdsInViewBuffer(g,m,S);this.setSelectionState(T)}},{key:"_getSelectionIdsInViewBuffer",value:function(g,m,S){for(var T=[],w=m;w<=S;w++)T.push(g(w).value.id);return T}},{key:"_setRangeSelectionStateForWholeView",value:function(g,m){var S=this,T=this._getRangeListforRowIndices(g,m);return this.dataStore.getRowIds(T).then(function(w){S.setSelectionState(w)})}},{key:"_getPotentialPivot",value:function(){var g=this;return new Promise(function(m){var S=g.viewModel.getStateByKey(i.treetable.POTENTIAL_PIVOT),T=void 0,w=void 0;S?(T=S.rangeList[0].rows.start,w=S.value,m({potentialPivotRowIndex:T,potentialPivotId:w})):(T=g.viewModel.dataSize.rows.start,g._getPivotId(T).then(function(R){w=R,m({potentialPivotRowIndex:T,potentialPivotId:w})}))})}},{key:"_getPivotId",value:function(g){var m=this;return new Promise(function(S){var T=void 0,w=m.dataStore.getLocalRowMetaData(g);if(w&&w.id)T=w.id,S(T);else{var R=[a.range().setRows(g,g)];m.dataStore.getRowIds(R).then(function(O){T=O[0],S(T)})}})}}]),f}(e);return o},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e=f.next}},{key:"isNextItem",value:function(d,f){return d.next>f.prev&&d.next<=f.next}},{key:"isPreviousItem",value:function(d,f){return d.prev>f.prev&&d.prev<=f.next}},{key:"getRowPosition",value:function(d,f,h,g){var m=f[h]||{},S=t.map(m,[["top","prev"],["bottom","next"]]),T=t.map(d,[["top","prev"],["bottom","next"]]);return this.isNextItem(T,S)?this.getScrollBottomPosition(g,h,f):this.isPreviousItem(T,S)?this.getScrollTopPosition(h,f):this.isInRange(T,S)?null:this.getScrollTopPosition(h,f)}},{key:"getColPosition",value:function(d,f,h,g){var m=g[d]||{},S=t.map(m,[["left","prev"],["right","next"]]),T=t.map(f,[["left","prev"],["right","next"]]);return this.isNextItem(T,S)?this.getScrollRightPosition(h,d,g):this.isPreviousItem(T,S)?this.getScrollLeftPosition(d,g):this.isInRange(T,S)?null:this.getScrollLeftPosition(d,g)}}]),c}();return s},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e2&&arguments[2]!==void 0?arguments[2]:{},a=i.colEndIndex,s=i.colStartIndex,c=a?a-s:0;return t>r?r:r-c}},{key:"getColRangeIndicesForView",value:function(t,r,i,a){if(!r)return{startIndex:t,endIndex:t};var s=t,c=i,o=r.colEndIndex,d=r.colStartIndex,f=o-d||0;return c=c||t+f,i-t0&&arguments[0]!==void 0?arguments[0]:{},r=t.colEndIndex,i=t.colStartIndex;return r&&r-i>0||!1}},{key:"getGroupCellAttribute",value:function(t,r){var i=t.parentId,a=t.colIndex,s=t.startCol,c=t.endCol,o=t.headerIndex;if(!!i){if(a===s)return"group-"+i+"-start";if(a===c)return"group-"+i+"-end";var d=r[o-1],f=r[o+1];return d&&d.parentId!==i?"group-"+i+"-start":f&&f.parentId!==i?"group-"+i+"-end":"group-"+i}}},{key:"cellInsideGroup",value:function(t){if(!(typeof t!="string"||t.length<=0)){var r=t.split("-");return Array.isArray(r)&&r.length===2?"middle":r[2]}}},{key:"headerInsideGroup",value:function(t,r){var i=t.getAttribute("data-col-index");if(!!i){var a=r&&r.column===1;return a?"end":"start"}}},{key:"columnDropValidation",value:function(t,r,i,a,s,c,o,d){t=Number(t);var f=r.targetIndex,h=r.rightTargetIndex,g=r.rightTargetIndex||r.targetIndex,m=(h||f)-t;if(g===d||td||t>d&&g=0){var S=n.getColRangeIndicesForView(t,i),T=S.endIndex;if(m>0&&f<=T||(h||f)-T===1)return!1}return a?l(r,a):!0}}]),n}();return v;function l(n,e){var t=n.rightTargetIndex;return!!(e==="start"&&!t||e==="end"&&t)}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;ea.clientWidth;return s}},{key:"getRowMetaDataFn",value:function(){return this._viewModel.getStateByKey(l.protected.ROW_METADATA).value}},{key:"getCurrentRowMetaData",value:function(a){var s={};if(a===null)return s.path=[],s;var c=this.getRowMetaDataFn();return c[0](a)._dataMetaData.metaData}},{key:"getNodeValue",value:function(a){var s=this.getRowMetaDataFn();return s[0](a).value}},{key:"getNodeInfo",value:function(a,s){if(a&&s===v.TREETABLE_ROW){var c=parseInt(a.getAttribute("data-row"));return this.getNodeValue(c)}return{id:null}}},{key:"isInternalDrag",value:function(){var a=this._viewModel.getStateByKey(l.dragInProgress).value,s=a?a.dragItem:null;return!!(s&&s.getDataByType(this._defaultType))}},{key:"getDropTarget",value:function(a){var s=void 0,c=void 0;return a&&a.length>1?(s=a[a.length-2],c={proxyNode:{id:s},type:v.TREETABLE_ROW}):c={proxyNode:{id:null},type:v.TREETABLE},c}},{key:"getOptions",value:function(a,s){var c={};return a===n.REORDER.INSERT_BELOW?c.place="after":a===n.REORDER.INSERT_ABOVE?c.place="before":c.place=s.type==="TREETABLE"?"last":"first",c.node={id:s.proxyNode.id},c}},{key:"handleDataMove",value:function(a,s,c,o){var d=this.getOptions(c,s),f=s;return o&&(f=this.getDropTarget(o)),this.moveData(a,f,d)}},{key:"putData",value:function(a){var s=a.proxyNodes,c=a.currentNodeInfo,o=c.path,d=c.nextSibling,f=c.target,h=c.insertionPosition;switch(h){case n.REORDER.INSERT_AS_CHILD:return this.handleDataMove(s,f,h);case n.REORDER.INSERT_ABOVE:return this.handleDataMove(s,f,h,o);case n.REORDER.INSERT_BELOW:if(e.isNextSiblingItsChild(c)){var g=d.rowNode,m=this.getNodeInfo(g.firstElementChild,f.type),S=this.getCurrentRowMetaData(g.firstElementChild.getAttribute("data-row")).path||[];return f={proxyNode:{id:m.id},type:f.type},this.handleDataMove(s,f,n.REORDER.INSERT_ABOVE,S)}return this.handleDataMove(s,f,h,o)}}},{key:"_isNodeInDragList",value:function(a,s){var c=a.some(function(o){return o===s.id});return c}},{key:"_addReferenceRowInfo",value:function(a,s){var c=["before","after"];return s&&c.includes(s.place)&&(a.referenceRow=s.node,a.insertionPosition=s.place),a}},{key:"_finishDataUpdate",value:function(a){var s=a.resolve,c=a.movedNodeIds,o=a.failedReasons,d=a.target,f=a.referenceRow,h=[],g={type:d.type};d.proxyNode.id!==null&&(g.proxyNode=d.proxyNode),d=this._addReferenceRowInfo(g,f),o.forEach(function(S){var T=e.createProxyNodesWithIds(S.ids);h.push({source:{proxyNodes:T,type:v.TREETABLE_ROW},target:d,error:S.error})});var m=void 0;c.length!==0&&(m={source:{proxyNodes:e.createProxyNodesWithIds(c),type:v.TREETABLE_ROW},target:d}),s({dropSuccessInfo:m,dropFailInfo:h})}},{key:"_saveNodeInfo",value:function(a,s){var c=a.movedNodeIds,o=a.failedReasons,d=a.nodeId,f=a.isSuccess;if(f)c.push(d);else{var h=o.find(function(g){return g.error.reason===s.reason});h||(h={ids:[],error:{reason:s.reason,message:s.message}},o.push(h)),h.ids.push(d)}}},{key:"moveData",value:function(a,s,c){var o=this,d=[],f=[],h=[],g=[],m=e.getIdsFromProxyNodes(a);return new Promise(function(S,T){m.forEach(function(w){var R=o._dataStore.getParentNode({id:w}).then(function(O){var F=O?O.node:{id:null},b=F!==null&&o._isNodeInDragList(m,F);if(!b){var I=o._dataStore.move({id:w},{id:s.proxyNode.id},c).then(o._saveNodeInfo.bind(o,{nodeId:w,isSuccess:!0,movedNodeIds:h,failedReasons:g}),o._saveNodeInfo.bind(o,{nodeId:w,isSuccess:!1,movedNodeIds:h,failedReasons:g}));f.push(I)}});d.push(R)}),Promise.all(d).then(function(){Promise.all(f).then(function(){o._finishDataUpdate({resolve:S,movedNodeIds:h,failedReasons:g,target:s,referenceRow:c})})})})}}]),r}();return new t},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0)],E=u.dj.d(A,function(D){return D([],{constructor:function(v){this.name="",this.context={},this.triggerHandler=v.triggerHandler||function(){},D.safeMixin(this,v)},enable:function(){},disable:function(){}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(58)],E=u.dj.d(A,function(D){"use strict";let _={argumentsLimit:(l,n,e)=>"Expected : ".concat(l," expects ").concat(e," arguments, but ").concat(n.length," arguments were passed"),dataTransfer:()=>"Expected: clipboard.write API should have dataTransfer with at least a mime-type set",emptyDataTransfer:()=>"Expected: clipboard.write API should have dataTransfer with DataTransfer object",clipboardConfig:l=>"Expected: clipboard.".concat(l," expects object")};return{validateArguments(l,n,e){if(l.length0){h.length=g;for(var m=d;m<=f;m++){var S=o[0](m);if(S&&S.value&&S.value.label!==void 0){var T=S.value.label||"";h[m-d]={label:T,rowIndex:m}}}}return h}},{key:"getHeaderPaddingSize",value:function(){return r}},{key:"getRowHeaderMaxWidth",value:function(){return n.dimensions.MAX_ROW_HEADER_WIDTH}},{key:"getSelectedRows",value:function(o,d,f){for(var h=Math.max(o.rows.start,d.rows.start),g=Math.min(o.rows.end,d.rows.end),m=h;m<=g;m+=1)f.mapping[m]=l.selection.SELECTED}},{key:"getSelectionMap",value:function(o){var d=o.metadata,f=d===void 0?{selections:[]}:d,h=o.viewBuffer,g=f.selections,m=f.selectionById,S={count:0,mapping:[]};if(m)Object.keys(g).forEach(function(w){return S.mapping[w]=l.selection.SELECTED});else for(var T=0;T=h.rows.start&&s.getSelectedRows(g[T],h,S);return function(w){return S.mapping[w]||0}}}]),s}();return a},C,x),C.exports=E},function(C,x,u){var A,E,D=Object.assign||function(_){for(var v=1;v=0)&&d(G,L)},F=function(P){var L=P.newValue,k=L===void 0?"":L,W=P.oldValue,K=void 0;if(m){var V=m.value;K={newValue:k,row:s,column:c,oldValue:W,node:V,columnId:T}}else K={newValue:k,row:s,column:c,oldValue:W};var G=_.getEditEventByType(h,"processEditEvent");d&&o&&d(G,K)},b=function(P){var L=void 0,k={row:s,column:c};if(P){var W=l.getCellInfo(P);L=W.isDisclosureTarget,k=W.cellInfo}if(!L){var K=void 0;return(!o||o.rowIndex!==s&&o.colIndex!==c)&&!f&&(K=w),v.emitDoubleClickEvent(d,k,K)}},I=function(P){var L=_.getEditEventByType(h,"editValidationEvent");d&&d(L,P)};return n.createElement(r,D({},a,{onDoubleClick:b,enterEditMode:w,handleEditComplete:R,handleEditCanceled:O,handleEditValidation:I,handleProcessEdit:F,type:i}))}};return e},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(49)],E=u.dj.d(A,function(D){return{isActiveState:function(v){return v===D.RECOGNIZED||v===D.CANCELLED||v===D.BEGAN||v===D.PROGRESS},isEndedState:function(v){return v===D.RECOGNIZED||v===D.CANCELLED},isWaitingState:function(v){return v===D.WAITING},isInactiveState:function(v){return v===D.INACTIVE},isPossibleState:function(v){return v===D.POSSIBLE},hasBegun:function(v){return v===D.BEGAN||v===D.PROGRESS},isDisabledState:function(v){return v===D.DISABLED}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return{isWithinTimeout:function(_,v,l){return Math.abs(_-v){this._settingsValueHandler(t.value)}),_.listenTo(["matlab","appearance"],"MATLABTheme",t=>{this._settingsValueHandler(t.newValue)}))}_settingsValueHandler(e){let t;switch(e){case"System":this.useSystemMode=!0;break;case"Light":this.useSystemMode=!1,t=this.getTheme(),this.setTheme(D.LIGHT),this._emitEvent(t,D.LIGHT);break;case"Dark":this.useSystemMode=!1,t=this.getTheme(),this.setTheme(D.DARK),this._emitEvent(t,D.DARK);break}}_setThemeBySystemMode(){let e=this.getTheme();this.windowMediaQuery.matches?(this.setTheme(D.DARK),this._emitEvent(e,D.DARK)):(this.setTheme(D.LIGHT),this._emitEvent(e,D.LIGHT)),this.windowMediaQuery&&this.windowMediaQuery.addEventListener("change",this._mediaQueryEventHandler)}_removeSystemMode(){this.windowMediaQuery.removeEventListener("change",this._mediaQueryEventHandler)}_mediaQueryEventHandler(e){let t=this.getTheme();e.matches?(this.setTheme(D.DARK),this._emitEvent(t,D.DARK)):(this.setTheme(D.LIGHT),this._emitEvent(t,D.LIGHT))}_emitEvent(e,t){let r={oldTheme:e,newTheme:t},i=new CustomEvent("themechanged",{detail:r});if(document.body.dispatchEvent(i),_){const a=t.charAt(0).toUpperCase()+t.slice(1);_.setSetting(["matlab","appearance"],"CurrentTheme",a)}}setTheme(e,t){if(Object.keys(this.themeClass).includes(e)){let r=t||document.getElementsByTagName("body")[0];if(this._isHTMLElement(r)){for(let i in this.themeClass)r.classList.contains(this.themeClass[i])&&r.classList.remove(this.themeClass[i]);r.style.colorScheme=e,r.classList.add(this.themeClass[e])}}else throw new Error("The requested theme is not supported")}_isHTMLElement(e){return!!(e&&(e instanceof HTMLElement||e.ownerDocument&&e.ownerDocument.defaultView&&e.ownerDocument.defaultView.Element&&e instanceof e.ownerDocument.defaultView.Element))}getTheme(e){let t=e||document.getElementsByTagName("body")[0];return window.getComputedStyle(t).getPropertyValue("--mw-themeName").trim()}}var l=new v;return Object.freeze(l),l},C,x),C.exports=E},function(C,x,u){"use strict";var A,E,D=function(){function v(l,n){for(var e=0;e2&&arguments[2]!==void 0?arguments[2]:"tableCellClick",h=Number(d.rowIndex),g=Number(d.colIndex);o.button===t.MOUSE_LEFT_BUTTON&&this.props.eventCallback&&this.props.eventCallback(f,{row:h,column:g,meta:o.metaKey,ctrlKey:o.ctrlKey,shiftKey:o.shiftKey,altKey:o.altKey})}},{key:"_handleEditCanceled",value:function(){!this._content||(this._handleLeaveEdit(),this.props.eventCallback&&this.props.eventCallback("leaveColEditMode",{}))}},{key:"_handleLeaveEdit",value:function(){if(this.renderNode){var o=this.renderNode.contains(document.activeElement)||document.activeElement===this._previousActiveElement;this._dismount(),o&&this._previousActiveElement.focus()}}},{key:"_dismount",value:function(){this._listeners.forEach(function(o){o.remove()}),this._listeners=[],this._content.destroy(),this._content=void 0}},{key:"_mountContent",value:function(){var o=this,d=this.renderNode,f=this.props,h=f.headerEditor,g=f.name,m=f.colEditState,S=this.state.headerRenderer,T=void 0,w=[];if(m){d.removeAttribute("data-title");try{T=new h(g,{}),this._content=T,this._previousActiveElement=document.activeElement}catch(R){return S}return w.push(T.on("editComplete",function(R){o._handleEditComplete(R.newValue)})),w.push(T.on("editCanceled",this._handleEditCanceled.bind(this))),this._listeners=w,T}else return S}},{key:"_focusMe",value:function(o){this.renderNode.setAttribute("data-edit",this.props.colEditState||!1),this.props.colEditState&&(this._previousActiveElement=document.activeElement,o.setFocus())}},{key:"componentWillUnmount",value:function(){this.props.colEditState&&this.props.focusClass&&this._handleEditCanceled()}},{key:"componentDidMount",value:function(){var o=this.props,d=o.name,f=o.displayColumnIndexOnly;if(!f){var h=this._mountContent();this.renderNode.appendChild(h.getDomNode(d)),this._focusMe(h)}}},{key:"componentDidUpdate",value:function(o){var d=this.props.name===o.name;if((o.colEditState!==this.props.colEditState||!this.props.colEditState&&!d)&&!this.props.displayColumnIndexOnly){var f=this.props.name,h=this._mountContent(),g=!1;this.renderNode&&(g=this.renderNode.contains(document.activeElement)||document.activeElement===this._previousActiveElement),r.replaceFirstNode(this.renderNode,h.getDomNode(f),this.renderNode.firstChild),g&&this._previousActiveElement&&this._previousActiveElement.focus(),this._focusMe(h)}}},{key:"cellType",get:function(){return"EditableColumnHeader"}},{key:"baseStyle",get:function(){return"mw-table-cell"}}]),s}(e);return i},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(5),u(51)],E=u.dj.d(A,function(D,_){var v=[D.range().setRows(0,1/0).setColumns(0,1/0)],l=function(){return!0},n=function(a){if(isNaN(a)||a<=0)throw new Error("'value' for Nth-type dataSelectorsmust be numeric and a positive number.")},e={node:"node",rangeList:"rangeList",nthRow:"nthRow",nthColumn:"nthColumn",hierarchy:"hierarchy",all:"all"},t=[];t[_.TREE]=[e.node,e.rangeList,e.nthRow,e.nthColumn,e.hierarchy,e.all],t[_.TREETABLE]=[e.rangeList,e.nthRow,e.nthColumn],t[_.TABLE]=[e.rangeList,e.nthRow,e.nthColumn];var r={node:{validator:function(a,s){if(!a.node)throw new Error("Metadata property should contain nodeproperty to set metadata on Tree Nodes")},getRangeList:function(a){return v},makeApplyMetaDataFunction:function(a){return l}},rangeList:{validator:function(a,s){var c=s.value;if(!Array.isArray(c))throw new Error("'rangeList' must be an array");if(a.row&&!c.every(D.isRowRange))throw new Error("Cannot set row meta data on 'non-row' ranges");if(a.column&&!c.every(D.isColumnRange))throw new Error("Cannot set column meta data on 'non-column' ranges")},getRangeList:function(a){var s=a.value;return s},makeApplyMetaDataFunction:function(a){return l}},nthRow:{validator:function(a,s){var c=s.value;if(a.column)throw new Error("Cannot set column meta data on 'non-column' dataSelectors");n(c)},getRangeList:function(a){return v},makeApplyMetaDataFunction:function(a){var s=a.value;return function(c,o){return c%s===0}}},nthColumn:{validator:function(a,s){var c=s.value;if(a.row)throw new Error("Cannot set row meta data on 'non-row' dataSelectors");n(c)},getRangeList:function(a){return v},makeApplyMetaDataFunction:function(a){var s=a.value;return function(c,o){return o%s===0}}},hierarchy:{validator:function(a,s){if(a.column)throw new Error("Error in hierarchy: Cannot set column meta data on hierarchy dataSelector");if(!(typeof s.value=="string"||Array.isArray(s.value)))throw new Error("Error in hierarchy: Node id must be either a string or an array")},getRangeList:function(a){return v},makeApplyMetaDataFunction:function(a){return function(s){return!s.dynamic||typeof s.dynamic.path=="undefined"?!1:Array.isArray(a.value)?s.dynamic.path.some(function(c){return a.value.includes(c)}):s.dynamic.path.includes(a.value)}}},all:{validator:function(a,s){var c=s.value;if(c!==void 0)throw new Error("all dataselector does not take a value")},getRangeList:function(a){return v},makeApplyMetaDataFunction:function(a){return l}}};return{create:function(a,s,c){if(t[c].indexOf(s.type)===-1)throw new Error("The dataSelector type "+s.type+" is not valid for "+c+" DataStore");var o=r[s.type];if(!o)throw new Error("dataSelector type is unknown: "+s.type);o.validator(a,s);var d=!1;(typeof a.cell=="function"||typeof a.row=="function"||typeof a.column=="function")&&(d=!0);var f=o.getRangeList(s),h=o.makeApplyMetaDataFunction(s);return{getDataSelector:function(){return s},getMetaData:function(){return a},isDynamic:d,_getRangeList:function(){return f.slice(0)},_applyMetaDataFunction:h,dataSelector:s}},dataSelectorTypes:e}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(20),u(18),u(71),u(1),u(6),u(8),u(53),u(63),u(23)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i,a){var s=t("ios")<5,c=t("pointer-events")||t("MSPointer"),o=function(){var k={};for(var W in{down:1,move:1,up:1,cancel:1,over:1,out:1})k[W]=t("MSPointer")?"MSPointer"+W.charAt(0).toUpperCase()+W.slice(1):"pointer"+W;return k}(),d=t("touch-events"),f,h,g=!1,m,S,T,w,R,O,F;function b(k,W,K){return c&&K?function(V,G){return e(V,K,G)}:d?function(V,G){var j=e(V,W,function(z){G.call(this,z),F=new Date().getTime()}),Y=e(V,k,function(z){(!F||new Date().getTime()>F+1e3)&&G.call(this,z)});return{remove:function(){j.remove(),Y.remove()}}}:function(V,G){return e(V,k,G)}}function I(k){do if(k.dojoClick!==void 0)return k;while(k=k.parentNode)}function N(k,W,K){if(!r.isRight(k)){var V=I(k.target);if(h=!k.target.disabled&&V&&V.dojoClick,h&&(g=h=="useTarget",m=g?V:k.target,g&&k.preventDefault(),S=k.changedTouches?k.changedTouches[0].pageX-a.global.pageXOffset:k.clientX,T=k.changedTouches?k.changedTouches[0].pageY-a.global.pageYOffset:k.clientY,w=(typeof h=="object"?h.x:typeof h=="number"?h:0)||4,R=(typeof h=="object"?h.y:typeof h=="number"?h:0)||4,!f)){f=!0;var G=function(z){g?h=v.isDescendant(a.doc.elementFromPoint(z.changedTouches?z.changedTouches[0].pageX-a.global.pageXOffset:z.clientX,z.changedTouches?z.changedTouches[0].pageY-a.global.pageYOffset:z.clientY),m):h=h&&(z.changedTouches?z.changedTouches[0].target:z.target)==m&&Math.abs((z.changedTouches?z.changedTouches[0].pageX-a.global.pageXOffset:z.clientX)-S)<=w&&Math.abs((z.changedTouches?z.changedTouches[0].pageY-a.global.pageYOffset:z.clientY)-T)<=R};a.doc.addEventListener(W,function(Y){r.isRight(Y)||(G(Y),g&&Y.preventDefault())},!0),a.doc.addEventListener(K,function(Y){if(!r.isRight(Y)&&(G(Y),h)){O=new Date().getTime();var z=g?m:Y.target;z.tagName==="LABEL"&&(z=v.byId(z.getAttribute("for"))||z);var Q=Y.changedTouches?Y.changedTouches[0]:Y,X=function(oe){var le=document.createEvent("MouseEvents");return le._dojo_click=!0,le.initMouseEvent(oe,!0,!0,Y.view,Y.detail,Q.screenX,Q.screenY,Q.clientX,Q.clientY,Y.ctrlKey,Y.altKey,Y.shiftKey,Y.metaKey,0,null),le},J=X("mousedown"),$=X("mouseup"),q=X("click");setTimeout(function(){e.emit(z,"mousedown",J),e.emit(z,"mouseup",$),e.emit(z,"click",q),O=new Date().getTime()},0)}},!0);var j=function(z){a.doc.addEventListener(z,function(Q){var X=Q.target;h&&!Q._dojo_click&&new Date().getTime()<=O+1e3&&!(X.tagName=="INPUT"&&l.contains(X,"dijitOffScreen"))&&(Q.stopPropagation(),Q.stopImmediatePropagation&&Q.stopImmediatePropagation(),z=="click"&&(X.tagName!="INPUT"||X.type=="radio"&&(l.contains(X,"dijitCheckBoxInput")||l.contains(X,"mblRadioButton"))||X.type=="checkbox"&&(l.contains(X,"dijitCheckBoxInput")||l.contains(X,"mblCheckBox")))&&X.tagName!="TEXTAREA"&&X.tagName!="AUDIO"&&X.tagName!="VIDEO"&&Q.preventDefault())},!0)};j("click"),j("mousedown"),j("mouseup")}}}var P;t("touch")&&i(c?function(){a.doc.addEventListener(o.down,function(k){N(k,o.move,o.up)},!0)}:function(){P=a.body(),a.doc.addEventListener("touchstart",function(W){F=new Date().getTime();var K=P;P=W.target,e.emit(K,"dojotouchout",{relatedTarget:P,bubbles:!0}),e.emit(P,"dojotouchover",{relatedTarget:K,bubbles:!0}),N(W,"touchmove","touchend")},!0);function k(W){var K=n.delegate(W,{bubbles:!0});return t("ios")>=6&&(K.touches=W.touches,K.altKey=W.altKey,K.changedTouches=W.changedTouches,K.ctrlKey=W.ctrlKey,K.metaKey=W.metaKey,K.shiftKey=W.shiftKey,K.targetTouches=W.targetTouches),K}e(a.doc,"touchmove",function(W){F=new Date().getTime();var K=a.doc.elementFromPoint(W.pageX-(s?0:a.global.pageXOffset),W.pageY-(s?0:a.global.pageYOffset));K&&(P!==K&&(e.emit(P,"dojotouchout",{relatedTarget:K,bubbles:!0}),e.emit(K,"dojotouchover",{relatedTarget:P,bubbles:!0}),P=K),e.emit(K,"dojotouchmove",k(W))||W.preventDefault())}),e(a.doc,"touchend",function(W){F=new Date().getTime();var K=a.doc.elementFromPoint(W.pageX-(s?0:a.global.pageXOffset),W.pageY-(s?0:a.global.pageYOffset))||a.body();e.emit(K,"dojotouchend",k(W))})});var L={press:b("mousedown","touchstart",o.down),move:b("mousemove","dojotouchmove",o.move),release:b("mouseup","dojotouchend",o.up),cancel:b(r.leave,"touchcancel",c?o.cancel:null),over:b("mouseover","dojotouchover",o.over),out:b("mouseout","dojotouchout",o.out),enter:r._eventHandler(b("mouseover","dojotouchover",o.over)),leave:r._eventHandler(b("mouseout","dojotouchout",o.out))};return t("extend-dojo")&&(D.touch=L),L},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(118),u(65),u(0),u(1)],E=u.dj.d(A,function(D,_,v,l){return l.extend(_,{focused:!1,onFocus:function(){},onBlur:function(){},_onFocus:function(){this.onFocus()},_onBlur:function(){this.onBlur()}}),v("dijit._FocusMixin",null,{_focusManager:D})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(20),u(0),u(18),u(70),u(71),u(24),u(68),u(1),u(6),u(63),u(19),u(276),u(23),u(274),u(539),u(66),u(64)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i,a,s,c,o,d,f,h,g){var m,S,T=_([c,t],{curNode:null,activeStack:[],constructor:function(){var O=r.hitch(this,function(F){v.isDescendant(this.curNode,F)&&this.set("curNode",null),v.isDescendant(this.prevNode,F)&&this.set("prevNode",null)});D.before(e,"empty",O),D.before(e,"destroy",O)},registerIframe:function(O){return this.registerWin(O.contentWindow,O)},registerWin:function(O,F){var b=this,I=O.document&&O.document.body;if(I){var N=s("pointer-events")?"pointerdown":s("MSPointer")?"MSPointerDown":s("touch-events")?"mousedown, touchstart":"mousedown",P=i(O.document,N,function(W){W&&W.target&&W.target.parentNode==null||b._onTouchNode(F||W.target,"mouse")}),L=i(I,"focusin",function(W){if(!!W.target.tagName){var K=W.target.tagName.toLowerCase();K=="#document"||K=="body"||(f.isFocusable(W.target)?b._onFocusNode(F||W.target):b._onTouchNode(F||W.target))}}),k=i(I,"focusout",function(W){b._onBlurNode(F||W.target)});return{remove:function(){P.remove(),L.remove(),k.remove(),P=L=k=null,I=null}}}},_onBlurNode:function(O){var F=new Date().getTime();F=0&&b[L]!=O[L];L--)P=h.byId(b[L]),P&&(P._hasBeenBlurred=!0,P.set("focused",!1),P._focusManager==this&&P._onBlur(F),this.emit("widget-blur",P,F));for(L++;L<=N;L++)P=h.byId(O[L]),P&&(P.set("focused",!0),P._focusManager==this&&P._onFocus(F),this.emit("widget-focus",P,F))}},focus:function(O){if(O)try{O.focus()}catch(F){}}}),w=new T;a(function(){var O=w.registerWin(d.get(document));s("ie")&&i(window,"unload",function(){O&&(O.remove(),O=null)})}),g.focus=function(O){w.focus(O)};for(var R in w)/^_/.test(R)||(g.focus[R]=typeof w[R]=="function"?r.hitch(w,R):w[R]);return w.watch(function(O,F,b){g.focus[O]=b}),w},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(540),u(0),u(24),u(1),u(6),u(19),u(277),u(543)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r){var i=_("dijit._TemplatedMixin",r,{templateString:null,templatePath:null,_skipNodeCache:!1,searchContainerNode:!0,_stringRepl:function(a){var s=this.declaredClass,c=this;return t.substitute(a,this,function(o,d){if(d.charAt(0)=="!"&&(o=l.getObject(d.substr(1),!1,c)),typeof o=="undefined")throw new Error(s+" template:"+d);return o==null?"":d.charAt(0)=="!"?o:this._escapeValue(""+o)},this)},_escapeValue:function(a){return a.replace(/["'<>&]/g,function(s){return{"&":"&","<":"<",">":">",'"':""","'":"'"}[s]})},buildRendering:function(){if(!this._rendered){this.templateString||(this.templateString=D(this.templatePath,{sanitize:!0}));var a=i.getCachedTemplate(this.templateString,this._skipNodeCache,this.ownerDocument),s;if(l.isString(a)){if(s=v.toDom(this._stringRepl(a),this.ownerDocument),s.nodeType!=1)throw new Error("Invalid template: "+a)}else s=a.cloneNode(!0);this.domNode=s}this.inherited(arguments),this._rendered||this._fillContent(this.srcNodeRef),this._rendered=!0},_fillContent:function(a){var s=this.containerNode;if(a&&s)for(;a.hasChildNodes();)s.appendChild(a.firstChild)}});return i._templateCache={},i.getCachedTemplate=function(a,s,c){var o=i._templateCache,d=a,f=o[d];if(f){try{if(!f.ownerDocument||f.ownerDocument==(c||document))return f}catch(g){}v.destroy(f)}if(a=t.trim(a),s||a.match(/\$\{([^\}]+)\}/g))return o[d]=a;var h=v.toDom(a,c);if(h.nodeType!=1)throw new Error("Invalid template: "+a);return o[d]=h},e("ie")&&n(window,"unload",function(){var a=i._templateCache;for(var s in a){var c=a[s];typeof c=="object"&&v.destroy(c),delete a[s]}}),i},C,x),C.exports=E},function(C,x,u){var A,E,D=Object.assign||function(r){for(var i=1;i0&&arguments[0]!==void 0?arguments[0]:!1,W=this.props,K=W.colIndex,V=W.cellData,G=W.renderer,j=W.eventCallback,Y=W.useEditorRendererDataFields,z=W.treeNodeRendererClassName,Q=z===void 0?"":z,X=W.treeCellContentClassName,J=X===void 0?"":X,$=W.renderMetaData;return G&&G.constructor===O?F.createElement(f,{value:V.value,key:"render-"+K,treeNodeRendererClassName:Q,treeCellContentClassName:J,useEditorRendererDataFields:Y,noToolTip:!0,metaData:$,typeOfCell:"mw-treetable",showEditIndicator:k}):F.createElement(d,{value:V.value,key:"render-"+K,eventCallback:j,renderer:G,treeNodeRendererClassName:Q,treeCellContentClassName:J,useEditorRendererDataFields:Y,noToolTip:!0,metaData:$})}},{key:"_getEditorComponent",value:function(){var k=this.props,W=k.colIndex,K=k.cellData,V=k.handleEditComplete,G=k.handleEditCanceled,j=k.editor,Y=k.eventCallback,z=k.focusClass,Q=k.editProcessing,X=k.useEditorRendererDataFields,J=k.handleEditValidation,$=k.handleProcessEdit,q=k.editorMetaData,te=k.isTreeCell,oe=this.props.cellMetaData&&this.props.cellMetaData.value&&this.props.cellMetaData.value.rowHeight&&this.props.cellMetaData.value.rowHeight==="auto";return F.createElement(h,{value:K.value,key:"edit-"+W,cellRef:this.cell.current,isTreeCell:te,isCustomHeight:oe,CustomEditor:j,eventCallback:Y,handleEditCanceled:G,handleEditComplete:V,handleEditValidation:J,handleProcessEdit:$,editProcessing:Q,focusClass:z,useEditorRendererDataFields:X,metaData:q})}},{key:"_handleTreeCellAndTableCell",value:function(k,W){var K=this,V=this.props,G=V.isTreeCell,j=G===void 0?!1:G,Y=V.disclosureIcon,z=Y===void 0?"":Y,Q=V.classAndStyling,X=Q===void 0?"":Q,J=V.triStateCheckbox,$=J===void 0?"":J;return j?F.createElement("div",{className:X.classes},F.createElement("div",{className:"treeNodeData","data-test-id":"nodeContentHandle",style:X.style},z,$,F.createElement("span",{className:"rendererEditorContainer","data-container":"true",ref:function(te){K.rendererEditorContainer=te}},this._handleEditorRendererComponent(k)))):this._handleEditorRendererComponent(k,W)}},{key:"_handleEditorRendererComponent",value:function(k,W){return k?this._getEditorComponent():this._getRendererComponent(W)}},{key:"_handleMouseOverFunction",value:function(k,W){if(!W){var K=this.props,V=K.handleMouseOverWithRenderer,G=K.isTreeCell,j=G===void 0?!1:G,Y=K.editType,z=K.cellData,Q=K.renderer,X=j?this.rendererEditorContainer:k.target,J=Y,$=z&&z.metaData&&z.metaData.floatingContent;return $?null:V(X,J,z.value,Q,this.cell.current)}}},{key:"_handleMouseEnterFunction",value:function(k,W){if(!W){var K=this.props,V=K.handleSetFloatingContent,G=K.cellData,j=K.renderer,Y=K.row,z=K.column,Q=K.editType,X=Q,J=G&&G.metaData&&G.metaData.floatingContent;if(J){var $={row:Y,col:z,value:G.value,metadata:G.metaData};V(X,this.cell.current,j,$,o.TRIGGER.MOUSE_ENTER,this.rendererEditorContainer)}}}},{key:"componentDidUpdate",value:function(k){var W=this.props,K=W.rowIndex,V=W.colIndex,G=W.focusClass,j=W.focusCached,Y=W.editState,z=W.cellData,Q=W.handleRemoveFloatingContent,X=W.handleSetFloatingContent,J=W.renderer,$=W.editType,q=G&&(!k.focusClass||j),te=z&&z.metaData&&z.metaData.floatingContent,oe=Y&&Y.rowIndex===K&&Y.colIndex===V,le=!oe&&k.editState&&k.editState.rowIndex===K&&k.editState.colIndex===V;q&&this.cell.current.focus();var de=k.cellData&&k.cellData.metaData&&k.cellData.metaData.floatingContent;if((te&&oe||de&&!te)&&Q(this.cell.current),te&&le){var De=$,Se={row:K,col:V,value:z.value,metadata:z.metaData};X(De,this.cell.current,J,Se,o.TRIGGER.MOUSE_ENTER,this.rendererEditorContainer)}}},{key:"componentWillUnmount",value:function(){this.props.focusClass&&this.cell.current.contains(document.activeElement)&&T.setFocusCache(this.props.eventCallback)}},{key:"render",value:function(){var k=this,W=this.props,K=W.rowIndex,V=W.colIndex,G=W.cellData,j=W.cellMetaData,Y=W.styleData,z=W.editIndicator,Q=z===void 0?{}:z,X=W.ariaTreeNode,J=X===void 0?{}:X,$=W.renderer,q=W.focusClass,te=W.additionalClass,oe=te===void 0?[]:te,le=W.columnId,de=W.editState,De=W.onClick,Se=De===void 0?b:De,pe=W.isTreeCell,ie=pe===void 0?!1:pe,ee=W.gutterInfo,me=W.ariaLabel,ce=W.renderMetaData;if((typeof Y=="undefined"?"undefined":_(Y))!=="object"&&(Y={}),(typeof G=="undefined"?"undefined":_(G))!=="object"||!G.hasOwnProperty("isEqual"))throw new Error("cellData property requires an isEqual function.");if((typeof j=="undefined"?"undefined":_(j))!=="object"||!j.hasOwnProperty("value"))throw new Error("cellMetaData property requires a value property.");var ve=this.cellType,Oe=[this.baseStyle,q].concat(l(oe));this._cellMetaData=j.value;var Ye=!1;de&&de.rowIndex===K&&de.colIndex===V&&(Ye=!0);var nt=!1;this.props.type&&(this.props.type.cellType==="EditableTreeCell"||this.props.type.cellType==="EditableTableCell")&&(nt=!0);var Dt=null;q&&q.length>0&&(Dt="-1"),me=$.getAriaLabel?$.getAriaLabel(G.value):me,m.isStrikeThrough(G)&&Oe.push("mw-table-cell-strike-through"),w.isInteractive(ce)&&w.isReadOnly(ce)&&Oe.push("mw-table-cell-interactive-readonly");var wt=Y&&Y.minWidth?Y.minWidth:c.dimensions.COL_WIDTH;return wtar&&(cr=i(kn[1])?Ce.replace(kn[0],kn[1]):kn[1])}),cr?ye(cr,0,Ve,Je,lt,mt,dn,Ot,bn):(vn=Je[Ce],vn?bn?fe(vn.pid,vn.mid,vn.pack,vn.url):Je[Ce]:(fn=zn(Ce,dn),fn?yn=fn[1]+Ce.substring(fn[3]):Sn?yn=(Fn.location.slice(-1)==="/"?Fn.location.slice(0,-1):Fn.location)+"/"+rr:yn=Ce,/(^\/)|(\:)/.test(yn)||(yn=lt+yn),yn+=".js",fe(Sn,Ce,Fn,nr(yn))))},Re=function(Ce,Be,Ve){return ye(Ce,Be,ce,Ye,g.baseUrl,Oe,me,ie,void 0,Ve)};if(!1)var ke,qe,Ge;var $e=g.toAbsMid=function(Ce,Be){return Re(Ce,Be).mid},ht=g.toUrl=function(Ce,Be){var Ve=Re(Ce+"/x",Be),Je=Ve.url;return ae(Ve.pid===0?Ce:Je.substring(0,Je.length-5))};if(!1)var pt,Ct,Pt,hn,an,sn,Bt,Mt,Rt,it,Yt,cn,Ee,Nt,ct,mn;var ae=typeof v.fixupUrl=="function"?v.fixupUrl:function(Ce){return Ce+="",Ce+(nt?(/\?/.test(Ce)?"&":"?")+nt:"")};if(!1)var re,ge,Me,Pe,Ue,Xe,je,at;var gt=0,Qe=e,Jt=e;if(!1)var Ie,I,We,$t,Wt;if(g.log=e,0)var Ht;else g.trace=e;if(!1)var Zt;else var Zt=e;if(o(o(g,l.loaderPatch),v.loaderPatch),pe(De,function(Ce){try{if(console.error(Ce),Ce instanceof Error){for(var Be in Ce)console.log(Be+":",Ce[Be]);console.log(".")}}catch(Ve){}}),o(g,{uid:h,cache:Dt,packs:ce}),!m.define){if(m.define=Zt,m.require=g,!1)var Kt,Xt;if(!1)var nn,rn}}.call(this,A,E)}},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0&&arguments[0]!==void 0?arguments[0]:"",c=void 0;return s&&s.label&&(c={text:s.label}),c}},{key:"getDomNode",value:function(){var s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",c=arguments[1],o=document.createDocumentFragment(),d=document.createElement("span");d.className="mw-icon-label-renderer";var f=s&&s.hasOwnProperty("label"),h=void 0,g=s&&s.iconId,m={height:e,width:e};if(s&&s.iconUri?h=s.iconUri:h=s,h&&h.length>0||g){var S=Boolean(!f&&this._alignment!==l.DEFAULT),T=void 0;if(g){T=document.createElement("span"),S&&(m.height=t(s,"height"),m.width=t(s,"width"));var w=n.getIconByIdDom(g,m);T.appendChild(w)}else T=document.createElement("img"),s&&s.a11y&&s.a11y.iconDescription&&T.setAttribute("alt",s.a11y.iconDescription),T.setAttribute("src",encodeURI(h));T.className="mw-data-icon-renderer",!f&&this._alignment!==l.DEFAULT&&(this._alignment===l.CENTER?T.className="mw-data-icon-renderer-center":this._alignment===l.LEFT?T.className="mw-data-icon-renderer-left":this._alignment===l.RIGHT&&(T.className="mw-data-icon-renderer-right")),T.setAttribute("data-test-id","icon1"),d.appendChild(T)}if(f){var R=this._getlabelNode(s.label,c);R&&d.appendChild(R)}return o.appendChild(d),o}},{key:"handleAction",value:function(s){return!0}},{key:"_createLabelElement",value:function(){var s=document.createElement("span");return s}},{key:"_getlabelNode",value:function(s,c){var o=void 0;if(s){var d=s.toString();o=this._createLabelElement(),o.setAttribute("data-region",!0),v.metaHasHighlightMatches(c)?(o.setAttribute("data-test-id","highlightLabel"),v.appendHighlightDom(o,d,c)):(o.textContent=d.trim(),o.setAttribute("data-test-id","label1"))}return o}}]),i}();return r.ALIGNMENT=l,r},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(1),u(45),u(20),u(126),u(322),u(323),u(326),u(131),u(327),u(46),u(133),u(333),u(12),u(336),u(337)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i,a,s,c,o,d,f){var h;return h={reset:function(){var m=[],S=new n,T=new t({faultManager:S}),w=new e({responseManager:T});h.faultManager=S,h.responseManager=T,h.requestManager=w,h._serviceRegistryLookup=f,h._uploadParameters={};var R=h.proxyClient=new l;h.createUploadIframeTarget=D.hitch(R,R.createUploadIframeTarget),h.cancelUpload=D.hitch(R,R.cancelUpload),a.setIframeProxyClientForEndPoint(a.getEndPointNames().ROUTER_LEAF_SECURE_ENDPOINT,R),a.setIframeProxyClientForEndPoint(a.getEndPointNames().ROUTER_LEAF_INSECURE_ENDPOINT,R),r.construct=function(O){return O=O||{},a.getRoutingHost(a.getEndPointNames().ROUTER_LEAF_INSECURE_ENDPOINT)||h.setEndpoint(),O.allowedMessages=m,O.sendMessage=h.sendMessage,O.computeSessionId=h.getComputeSessionId,new i(O)},h.registerEndpointLevelFaultHandler=D.hitch(S,S.registerEndpointLevelFaultHandler),h.sendMessage=D.hitch(w,w.sendMessage),h.sendPayload=s.sendPayload,h.registerDefaultMessageFactory=D.hitch(w,w.registerDefaultMessageFactory),h.deregisterDefaultMessageFactory=D.hitch(w,w.deregisterDefaultMessageFactory),h.registerResponseHandler=D.hitch(T,T.registerResponseHandler),h.deregisterResponseHandler=D.hitch(T,T.deregisterResponseHandler),h.registerFaultHandler=D.hitch(S,S.registerFaultHandler),h.deregisterFaultHandler=D.hitch(S,S.deregisterFaultHandler),h.registerTopLevelFaultHandler=D.hitch(S,S.registerTopLevelFaultHandler),h.deregisterTopLevelFaultHandler=D.hitch(S,S.deregisterTopLevelFaultHandler),h.setServiceEndPoint=function(O,F,b){a.setRoutingHostAndRoutingKey(O,F,b)},h.setServicePathSuffixForEndPoint=function(O,F){a.setPathSuffixForEndPoint(O,F)},h.ignoreTopLevelFault=h.registerTopLevelFaultHandler,h.setComputeToken=function(O){h._uploadParameters.computeToken=O.computeSessionId,w.computeToken=O},h.setWorkerEndpoint=function(O,F){h._uploadParameters.routingKey=F,a.setRoutingHostAndRoutingKey(a.getEndPointNames().WORKER_ENDPOINT,O,F)},h.setEndpoint=function(O){if(!O){var F=h._serviceRegistryLookup.getServiceRegistryEndpoint("primary");F?O=F:(o.info("ServiceRegistryLookup is empty, falling back to localhost"),O="/")}if(!O||O==="/"){var b=(document.getElementsByTagName("base")[0]||{}).href;if(b!==void 0){var I=document.createElement("a");I.display="none",I.href=b,O=I.protocol+"//"+I.hostname+(I.port?":"+I.port:"")+"/"}else O=window.location.protocol+"//"+window.location.host+"/"}a.setRoutingHostAndRoutingKey(a.getEndPointNames().ROUTER_LEAF_SECURE_ENDPOINT,O),a.setRoutingHostAndRoutingKey(a.getEndPointNames().ROUTER_LEAF_INSECURE_ENDPOINT,O),R.setRemotePageHost(O,void 0,void 0,void 0,{withCredentials:a.endPointsCollection[a.getEndPointNames().ROUTER_LEAF_SECURE_ENDPOINT].withCredentials})},h.setAllowedMessages=function(O){m=O},h.allowAllMessages=function(){m=[]},h.getEndPoint=function(){return a.getRoutingHost(a.getEndPointNames().ROUTER_LEAF_SECURE_ENDPOINT)},h.getComputeSessionId=function(){return w.computeToken?w.computeToken.computeSessionId:null},h.getWorkerRoutingHost=function(){var O=a.getRoutingHost(a.getEndPointNames().WORKER_ENDPOINT);if(O)return O;if(O=h._serviceRegistryLookup.getServiceRegistryEndpoint("primary"),!O||O==="/"){var F=(document.getElementsByTagName("base")[0]||{}).href;if(F!==void 0){var b=document.createElement("a");b.display="none",b.href=F,O=b.protocol+"//"+b.hostname+(b.port?":"+b.port:"")+"/"}else O=window.location.protocol+"//"+window.location.host+"/"}return O},h.getWorkerRoutingKey=function(){return a.getRoutingKey(a.getEndPointNames().WORKER_ENDPOINT)},h.getDownloadUrlForFile=function(O){if(!O)throw new Error("Invalid input arguments provided!");var F=new _,b=new URL(h.getWorkerRoutingHost()+"download"+O),I=s.sendPayload(JSON.stringify({messages:{CreateCsrfToken:[{}]}}),a.getEndPointNames().WORKER_ENDPOINT);return I.then(function(N){N.messages.CreateCsrfTokenResponse.forEach(function(P){P.messageFaults&&P.messageFaults.length>0||(b.searchParams.set("csrfToken",P.csrfToken),F.resolve(b))})}),F},h.upload=function(O,F){return new c().upload(O,F,{endpoint:h.getWorkerRoutingHost(),uploadParams:h._uploadParameters})},h.createWorkerRoutingHostUrl=function(O){return d.createWorkerRoutingHostUrl(O,{host:h.getWorkerRoutingHost(),sessionId:h.getComputeSessionId(),routingKey:h.getWorkerRoutingKey()})},h.getServiceRegistryEndpoint=function(O){return h._serviceRegistryLookup.getServiceRegistryEndpoint(O)},h.enableServerOnWorkerAsync=function(){a.enableEndPoint(a.getEndPointNames().WORKER_ASYNC_ENDPOINT)},h.disableServerOnWorkerAsync=function(){a.disableEndPoint(a.getEndPointNames().WORKER_ASYNC_ENDPOINT)},h.isServerOnWorkerAsyncEnabled=function(){return a.isEndPointEnabled(a.getEndPointNames().WORKER_ASYNC_ENDPOINT)},h.enableServerOnWorker=function(){a.enableEndPoint(a.getEndPointNames().WORKER_ENDPOINT)},h.disableServerOnWorker=function(){a.disableEndPoint(a.getEndPointNames().WORKER_ENDPOINT)},h.isWorkerEndpointEnabled=function(){return a.isEndPointEnabled(a.getEndPointNames().WORKER_ENDPOINT)},h.setWorkerOnlyMessageTypes=function(O){a.setMessageTypesToEndPoint(a.getEndPointNames().WORKER_ENDPOINT,O)},v.after(R,"onError",function(O){O&&S.handleNonTransactionFault(O)},!0),h.createNewEndPoint=function(O,F,b,I,N){var P=this.getEndPointByName(O);P||a.setUpNewEndPoint(O,F,b,I,N)},h.getUrlForEndPoint=function(O){return a.getRemoteUrlForEndPoint(O)},h.getEndPointByName=function(O){return a.getEndPointNames()[O]}}},h.reset(),h},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(1)],E=u.dj.d(A,function(D){return function(_,v,l,n){l=l||Error;var e=function(t){if(l===Error){Error.captureStackTrace&&Error.captureStackTrace(this,e);var r=Error.call(this,t),i;for(i in r)r.hasOwnProperty(i)&&(this[i]=r[i]);this.message=t,this.stack=r.stack}else l.apply(this,arguments);v&&v.apply(this,arguments)};return e.prototype=D.delegate(l.prototype,n),e.prototype.name=_,e.prototype.constructor=e,e}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(26),u(89)],E=u.dj.d(A,function(D,_){"use strict";return function(l,n,e,t){var r=l&&typeof l.then=="function",i=r&&l instanceof _;if(r){if(!i){var a=new D(l.cancel);l.then(a.resolve,a.reject,a.progress),l=a.promise}}else return arguments.length>1?n?n(l):l:new D().resolve(l);return n||e||t?l.then(n,e,t):l}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(90),u(0),u(45),u(1),u(20),u(24),u(12),u(319)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r){var i=_([],{constructor:function(){this._messageId=0,this._loaded=!1,this._pendingQueue=[],this._transactions={},this._uploadTargetCallbacks={},this._checkUrl=null,this._loadTimeoutHandle=null,this._checkUrlTimeout=null,this._errorRate=0,this._inFlightTransactions={},this._webSocket=null},setRemotePageHost:function(s,c,o,d){var f=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{};s=this._combineUriPaths(s||"","/"),c=c||"",d=d||"",this.computeToken=o,this._withCredentials=this._withCredentials||!1,typeof f.withCredentials=="undefined"||f.withCredentials===null||(this._withCredentials=!!f.withCredentials),!(s===this._host&&c===this._key&&d===this._proxyUrl)&&(this._errorLoading=!1,this._host=s,this._key=c,this._proxyUrl=d,this._cleanupFailureChecks(),this._loaded=!0,this._flushPending())},setLatency:function(s){this._latency=s},setErrorRate:function(s){this._errorRate=s},sendMessage:function(s,c,o){var d=this,f,h,g;this.computeToken&&(o=o||{},o.headers=o.headers||{},o.headers.computeToken=this.computeToken);var m=o||{};f=this._getNewMessageId(),h={action:"sendMessage",id:f,endpoint:c,options:m,message:s};function S(){h={action:"abort",id:f},d._postMessage(h)}return g={deferred:new v(S),id:f},this._errorLoading?g.deferred.reject("Error loading: "+this._url):(this._transactions[f]=g,this._postMessage(h)),g.deferred},_postMessage:function(s){this._loaded?this._postMessageNow(s):this._pendingQueue.push(s)},_handleMessage:function(s){var c,o,d,f,h;if(c=s.data.action,!c)throw new Error("Client unable to parse message, no action specified: "+JSON.stringify(s.data));switch(c){case"ready":this._cleanupFailureChecks(),this._loaded=!0,this._flushPending();break;case"sendMessageResponse":this._sendMessageResponse(s);break;case"uploadIframeMessage":o=s.data.id,d=s.data.message,this._uploadTargetCallbacks[o](d);break;case"websocketOpened":this.onWebsocketOpen();break;case"websocketClosed":f=s.data.message,this.onWebsocketClose(f);break;case"websocketMsg":h=s.data.message,this.onWebsocketMsg(h);break;case"websocketError":this.onWebsocketError();break;default:throw new Error("Unknown action: "+c+", data: "+JSON.stringify(s.data))}},_sendMessageResponse:function(s){var c,o,d=s.data.id,f=s.data.responseType,h=s.data.message;if(!d||!f)throw new Error("Invalid message: "+JSON.stringify(s.data));if(c=this._transactions[d],!c)throw new Error("Unknown transaction id: "+d+": "+JSON.stringify(s.data));if(delete this._transactions[d],!c.deferred.isCanceled()){if(f==="success"){try{o=h&&JSON.parse(h)}catch(g){o=h}o=o===""?{}:o,c.deferred.resolve(o);return}this.onError(h),c.deferred.reject(h)}},_cleanupFailureChecks:function(){this._checkUrlTimeout&&clearTimeout(this._checkUrlTimeout),this._loadTimeoutHandle&&clearTimeout(this._loadTimeoutHandle),this._checkUrl&&!this._checkUrl.isFulfilled()&&this._checkUrl.cancel("Timeout Occurred",!1),this._checkUrlTimeout=null,this._loadTimeoutHandle=null,this._checkUrl=null},_handleLoadTimeout:function(){var s,c,o;if(!this._loaded){s={code:"IframeLoadTimeout",description:"Iframe proxy loading failed due to an HTTP error",message:""},o=this._transactions,this._transactions={},this._pendingQueue=[];for(c in o)o.hasOwnProperty(c)&&o[c].deferred.reject("Timeout: "+this._url+" at "+new Date);this._errorLoading=!0,this.onError(s)}},_handleXhrResponse:function(s,c){var o={action:"sendMessageResponse",id:s,responseType:"success",message:c};this._handleMessage({data:o})},_handleXhrFault:function(s,c){var o={action:"sendMessageResponse",id:s,responseType:"fault",message:c};this._handleMessage({data:o})},_sendXHRNow:function(s){var c=this,o,d,f,h,g,m,S,T=s.data.action;if(!T)throw new Error("Unable to parse message, no action specified: "+JSON.stringify(s.data));switch(T){case"sendMessage":if(o=s.data.id,d=s.data.endpoint,h=s.data.options,f=s.data.message,o&&d&&f)try{if(g=new XMLHttpRequest,this._inFlightTransactions[o]={xhr:g},m=!1,g.onreadystatechange=function(){var R;g.readyState===0?(m=!0,c.handleXhrFault(o,"XHR readyState 0")):g.readyState===4&&!m&&(m=!0,R=g.status||0,R>=200&&R<300||R===304?c._handleXhrResponse(o,g.responseText):c._handleXhrFault(o,g.responseText)),m&&g&&(g.onreadystatechange=c._noop,g=null,delete c._inFlightTransactions[o].xhr,delete c._inFlightTransactions[o])},g.open("POST",d,!0),g.withCredentials=this._withCredentials,g.setRequestHeader("Content-Type",h.contentType?h.contentType:"application/json"),g.setRequestHeader("X-Requested-With","XMLHttpRequest"),h.headers)for(S in h.headers)Object.prototype.hasOwnProperty.call(h.headers,S)&&g.setRequestHeader(S,h.headers[S]);g.send(f)}catch(R){this.handleXhrFault(o,"Unable to send data: "+R.toString())}else throw new Error("Invalid message to send: "+JSON.stringify(s.data));break;case"abort":o=s.data.id,this._inFlightTransactions[o]&&this._inFlightTransactions[o].xhr.abort();break;case"connectWebsocket":var w=s.data.url;this._webSocket=new WebSocket(w),this._webSocket.onopen=function(){c.onWebsocketOpen()},this._webSocket.onmessage=function(R){c.onWebsocketMsg(R)},this._webSocket.onclose=function(R){var O={code:R.code,reason:R.reason,wasClean:R.wasClean};c.onWebsocketClose(O)},this._webSocket.onerror=function(){c.onWebsocketError()};break;case"websocketSend":this._webSocket.send(s.data.data);break;case"closeWebsocket":this._webSocket.close();break;default:throw new Error("Unknown action: "+T)}},_postMessageNow:function(s){var c=this,o,d;function f(){if(c._errorRate>0&&Math.random()0&&(d[0]==="/"&&o.lastIndexOf("/")===o.length-1?d=d.substring(1):d[0]!=="/"&&o.lastIndexOf("/")!==o.length-1&&(o+="/")),o+d)});return c}});return i.WebSocket=_([],{constructor:function(s){var c=this;this.proxyClient=i.WebSocket.proxyClient,this.proxyClient.computeToken&&s.indexOf("?")>=0&&(s=s+"&computeToken="+this.proxyClient.computeToken);var o={action:"connectWebsocket",url:s};this.proxyClient._postMessage(o),n.after(this.proxyClient,"onWebsocketOpen",function(){c.onopen.apply(c,arguments)},!0),n.after(this.proxyClient,"onWebsocketMsg",function(){c.onmessage.apply(c,arguments)},!0),n.after(this.proxyClient,"onWebsocketClose",function(){c.onclose.apply(c,arguments)},!0),n.after(this.proxyClient,"onWebsocketError",function(){c.onerror.apply(c,arguments),c.proxyClient.onError.apply(c.proxyClient,arguments)},!0)},onopen:function(){},onmessage:function(){},onclose:function(){},onerror:function(){},send:function(s){var c={action:"websocketSend",data:s};this.proxyClient._postMessage(c)},close:function(){var s={action:"closeWebsocket"};this.proxyClient._postMessage(s)}}),i},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(68)],E=u.dj.d(A,function(D){var _=new D;return{publish:function(v,l){return _.emit.apply(_,arguments)},subscribe:function(v,l){return _.on.apply(_,arguments)}}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(1),u(19)],E=u.dj.d(A,function(D,_,v){return v("host-browser")&&(D._name="browser",_.mixin(D,{isBrowser:!0,isFF:v("ff"),isIE:v("ie"),isKhtml:v("khtml"),isWebKit:v("webkit"),isMozilla:v("mozilla"),isMoz:v("mozilla"),isOpera:v("opera"),isSafari:v("safari"),isChrome:v("chrome"),isMac:v("mac"),isIos:v("ios"),isAndroid:v("android"),isWii:v("wii"),isQuirks:v("quirks"),isAir:v("air")})),v},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(91),u(321),u(88),u(15),u(23),u.dj.h("dom-addeventlistener?:6")],E=u.dj.d(A,function(D,_,v,l,n,e){var t=null,r=[];function i(){for(var s=+new Date,c=0,o;c=0)&&(r[i]=t[i])},this),r},getResponseMessageTypes:function(){var t,r=[];for(t in this.responseMessages)this.responseMessages.hasOwnProperty(t)&&r.push(t);return r},getRequestMessageTypes:function(){var t,r=[];for(t in this.requestMessages)this.requestMessages.hasOwnProperty(t)&&r.push(t);return r},getMessageClassifier:function(t){return t&&t.uuid&&this.uuidClassifierMap.hasOwnProperty(t.uuid)?this.uuidClassifierMap[t.uuid]:""},send:function(){this._removeEmptyMessages(),this._isEmpty(this.requestMessages)?(this.deferred=new _,this.deferred.callback()):(this.startTime=new Date().getTime(),this.deferred=this._doSend(this._getRequest(this.requestMessages)),this.deferred.addCallback(this,this._processResponse),this.deferred.addErrback(this,this._processFault))},addIgnoreMessageType:function(t,r){if(this.getRequestMessageTypes().indexOf(t)>-1)if(r){var i;for(i in this.uuidClassifierMap)this.uuidClassifierMap.hasOwnProperty(i)&&r&&this.uuidClassifierMap[i]===r&&this.ignoreMessageTypes.push(t+":"+r)}else this.ignoreMessageTypes.push(t)},_removeEmptyMessages:function(){if(!this._isEmpty(this.requestMessages)){var t;for(t in this.requestMessages)this.requestMessages.hasOwnProperty(t)&&v.isArray(this.requestMessages[t])&&n.getArrayLength(this.requestMessages[t])===0&&delete this.requestMessages[t]}},_isEmpty:function(t){var r;for(r in t)if(t.hasOwnProperty(r))return!1;return!0},_generateUuid:function(){return n.generateUuid()}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(130),u(129),u(332),u(91),u(8)],E=u.dj.d(A,function(D,_,v,l,n){n.add("native-xhr",function(){return typeof XMLHttpRequest!="undefined"}),n.add("dojo-force-activex-xhr",function(){return n("activex")&&window.location.protocol==="file:"}),n.add("native-xhr2",function(){if(!(!n("native-xhr")||n("dojo-force-activex-xhr"))){var h=new XMLHttpRequest;return typeof h.addEventListener!="undefined"&&(typeof opera=="undefined"||typeof h.upload!="undefined")}}),n.add("native-formdata",function(){return typeof FormData!="undefined"}),n.add("native-blob",function(){return typeof Blob!="undefined"}),n.add("native-arraybuffer",function(){return typeof ArrayBuffer!="undefined"}),n.add("native-response-type",function(){return n("native-xhr")&&typeof new XMLHttpRequest().responseType!="undefined"}),n.add("native-xhr2-blob",function(){if(!!n("native-response-type"))return!0});var e={blob:n("native-xhr2-blob")?"blob":"arraybuffer",document:"document",arraybuffer:"arraybuffer"};function t(h,g){var m=h.xhr;h.status=h.xhr.status;try{h.text=m.responseText}catch(T){}h.options.handleAs==="xml"&&(h.data=m.responseXML);var S;if(g)this.reject(g);else{try{v(h)}catch(T){S=T}l.checkStatus(m.status)?S?this.reject(S):this.resolve(h):S?(g=new D("Unable to load "+h.url+" status: "+m.status+" and an error in handleAs: transformation of response",h),this.reject(g)):(g=new D("Unable to load "+h.url+" status: "+m.status,h),this.reject(g))}}var r,i,a,s;n("native-xhr2")?(r=function(h){return!this.isFulfilled()},s=function(h,g){g.xhr.abort()},a=function(h,g,m,S){function T(b){g.handleResponse(m)}function w(b){var I=b.target,N=new D("Unable to load "+m.url+" status: "+I.status,m);g.handleResponse(m,N)}function R(b,I){m.transferType=b,I.lengthComputable?(m.loaded=I.loaded,m.total=I.total,g.progress(m)):m.xhr.readyState===3&&(m.loaded="loaded"in I?I.loaded:I.position,g.progress(m))}function O(b){return R("download",b)}function F(b){return R("upload",b)}return h.addEventListener("load",T,!1),h.addEventListener("error",w,!1),h.addEventListener("progress",O,!1),S&&h.upload&&h.upload.addEventListener("progress",F,!1),function(){h.removeEventListener("load",T,!1),h.removeEventListener("error",w,!1),h.removeEventListener("progress",O,!1),h.upload.removeEventListener("progress",F,!1),h=null}}):(r=function(h){return h.xhr.readyState},i=function(h){return h.xhr.readyState===4},s=function(h,g){var m=g.xhr,S=typeof m.abort;(S==="function"||S==="object"||S==="unknown")&&m.abort()});function c(h){return this.xhr.getResponseHeader(h)}var o,d={data:null,query:null,sync:!1,method:"GET"};function f(h,g,m){var S=n("native-formdata")&&g&&g.data&&g.data instanceof FormData,T=l.parseArgs(h,l.deepCreate(d,g),S);h=T.url,g=T.options;var w=!g.data&&g.method!=="POST"&&g.method!=="PUT";n("ie")<=10&&(h=h.split("#")[0]);var R,O=function(){R&&R()},F=l.deferred(T,s,r,i,t,O),b=T.xhr=f._create();if(!b)return F.cancel(new D("XHR was not created")),m?F:F.promise;T.getHeader=c,a&&(R=a(b,F,T,g.uploadProgress));var I=typeof g.data=="undefined"?null:g.data,N=!g.sync,P=g.method;try{b.open(P,h,N,g.user||o,g.password||o),g.withCredentials&&(b.withCredentials=g.withCredentials),n("native-response-type")&&g.handleAs in e&&(b.responseType=e[g.handleAs]);var L=g.headers,k=S||w?!1:"application/x-www-form-urlencoded";if(L)for(var W in L)W.toLowerCase()==="content-type"?k=L[W]:L[W]&&b.setRequestHeader(W,L[W]);k&&k!==!1&&b.setRequestHeader("Content-Type",k),(!L||!("X-Requested-With"in L))&&b.setRequestHeader("X-Requested-With","XMLHttpRequest"),l.notify&&l.notify.emit("send",T,F.promise.cancel),b.send(I)}catch(K){F.reject(K)}return _(F),b=null,m?F:F.promise}if(f._create=function(){throw new Error("XMLHTTP not available")},n("native-xhr")&&!n("dojo-force-activex-xhr"))f._create=function(){return new XMLHttpRequest};else if(n("activex"))try{new ActiveXObject("Msxml2.XMLHTTP"),f._create=function(){return new ActiveXObject("Msxml2.XMLHTTP")}}catch(h){try{new ActiveXObject("Microsoft.XMLHTTP"),f._create=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}catch(g){}}return l.addCommonMethods(f),f},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(46),u(45)],E=u.dj.d(A,function(D,_){var v=function(n,e,t){var r=D.getIframeProxyClientForEndPoint(e);return r.sendMessage(n,D.getRemoteUrlForEndPoint(e),t)};return{sendPayload:function(n,e,t){var r=new _,i=v(n,e,t);return i.then(function(a){r.resolve(a)}),r}}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function l(n,e){var t=[],r=!0,i=!1,a=void 0;try{for(var s=n[Symbol.iterator](),c;!(r=(c=s.next()).done)&&(t.push(c.value),!(e&&t.length===e));r=!0);}catch(o){i=!0,a=o}finally{try{!r&&s.return&&s.return()}finally{if(i)throw a}}return t}return function(n,e){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return l(n,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_=function(){function l(n,e){for(var t=0;t0?(g.colIndexs=S,g.sourceParent=w,O=d.moveByParentColumnId(g,R)):O=d.moveColumn(g,R),!O)throw new Error("The move failed for column "+f+".");var F=this._determineNextSortColumnIndex(d);this._setColumnConfig(d,F)}},{key:"_determineNextSortColumnIndex",value:function(o){var d={},f=this._getExistingSortColumn();if(f.value&&f.column!==-1){var h=this._computeNewSortColumn(f.column,this._orderedColumnConfig.indexOf(o._moves[0].item),o._moves[0].toIndex);d.value=f.value,d.rangeList=[i.range().setRows(0,1/0).setColumns(h,h)]}return d}},{key:"_computeNewSortColumn",value:function(o,d,f){if(o===d)return f;if(df?o:o-1;if(d>f)return o>d||o1&&(o.splice(d,1),d-=1)}return this._autoFillMissingPercentageWidth(o),this._updateColumnHeaderIndex(o),o}},{key:"_updateColumnHeaderIndex",value:function(o){for(var d=!1,f=0,h=0;h-1){var m=Object.create(o[g]);Object.keys(o[g]).forEach(function(S){m[S]=o[g][S]}),m.width={value:m.width.value+h,unit:"%"},o[g]=m}}},{key:"_mergeBaseItem",value:function(o,d){return Object.assign(o,d)}},{key:"_moveColumns",value:function(o){var d=this;o.forEach(function(f){var h=d._orderedColumnConfig.indexOf(f.item);d._orderedColumnConfig.splice(h,1),d._orderedColumnConfig.splice(f.toIndex,0,f.item)})}},{key:"_getMapping",value:function(){var o=[],d=Object.create(o);return this._baseColumnConfig.forEach(function(f,h){var g=h.toString();o.push(h),g!==f.columnId&&(d[f.columnId]=h)}),d}},{key:"getColumnConfig",value:function(){return r(this._baseColumnConfig,this._customMapping)}},{key:"setColumnConfig",value:function(o){return this._setColumnConfig(o)}},{key:"_setColumnConfig",value:function(o){var d=this,f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Object.keys(o).forEach(function(h){var g=d._customMapping[h],m=d._mergeBaseItem(d._baseColumnConfig[h],o[h]);if(!t.parseHeaderConfig(m,g))throw new Error("Column Configuration is not valid for column with id: "+h+", label: "+(m||{}).label)}),this._moveColumns(o._moves),this._customMapping=this._getMapping(),this._viewModel.setColumnHeaders(this._removeHiddenColumns()),this._viewModel._setPreviousSortState(f.value,f.rangeList),this._viewModel.setState(l.protected.COLUMN_CONFIG,!0)}},{key:"getColumnHeaderConfig",value:function(){return Object.assign({},this._viewModel.getColumnHeaderConfig())}},{key:"setColumnHeaderConfig",value:function(o){var d=["hideColumnHeader"];Object.keys(o).forEach(function(h){if(d.includes(h)&&o[h]&&typeof o[h]!="boolean")throw new Error("Invalid value '"+o[h]+"' set for '"+h+"' field.")});var f=this.getColumnHeaderConfig();f.hideColumnHeader!==o.hideColumnHeader&&this._viewModel.setColumnHeaderConfig(o)}},{key:"treeTableEmits",get:function(){return[]}},{key:"emits",get:function(){return[]}}]),s}();return a},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function l(n,e){for(var t=0;t-1;S-=1)if(f[g]>h[m[S]][g])return Number(m[S]);return Number(m[m.length-1])},c=function(f,h,g){for(var m=Object.getOwnPropertyNames(h),S=0;S0)P=Math.min(P+a,m.dataSize.columns.end),L=L.setColumns(P,P);else if(b<0){var k=Math.max(0,T-a);L=L.setColumns(k,k)}else{var W=d.getColumnIndexFromPointer(I,w);W=e.getValidStartPoint(W),L=L.setColumns(W,W)}if(!h.event.colsOnly)if(F>0)N=Math.min(N+a,m.dataSize.rows.end),L=L.setRows(N,N);else if(F<0){var K=Math.max(0,S-a);L=L.setRows(K,K)}else{var V=d.getRowIndexFromPointer(I,R);V=e.getValidStartPoint(V),L=L.setRows(V,V)}return L}},{key:"computeScrollPosition",value:function(h,g,m,S){var T=h.event,w=T.yDelta,R=T.xDelta,O=g.getScrollTop(),F=g.getScrollLeft(),b=g.getFirstVisibleColumn(),I=m[b].width/S,N=Math.max(0,F+R/I),P=Math.max(0,O+w);return{leftPosition:N,topPosition:P}}},{key:"splitRange",value:function(h,g){var m=void 0,S=void 0,T=[];return h.rows.start===h.rows.end?[]:h.rows.start===g.rows.start?(m=g.rows.start+1,S=h.rows.end,T.push(r.range().setEntireRows(m,S)),T):h.rows.end===g.rows.start?(S=g.rows.end-1,m=h.rows.start,T.push(r.range().setEntireRows(m,S)),T):(T.push(r.range().setEntireRows(h.rows.start,g.rows.start-1)),T.push(r.range().setEntireRows(g.rows.end+1,h.rows.end)),T)}},{key:"getRowIndexFromPointer",value:function(h,g){var m=Object.getOwnPropertyNames(g);if(m.length===0)return-1;if(h.y>=g[m[m.length-1]].bottom)return Number(m[m.length-1]);for(var S=0;S=g[T].top&&h.y=g[m[m.length-1]].right)return Number(m[m.length-1]);for(var S=0;S=g[T].left&&h.x0){var b=s(O,m,"right");F=F.setColumns(b,b)}else if(R<0){var I=c(O,m,"left");F=F.setColumns(I,I)}if(w>0){var N=s(O,S,"bottom");F=F.setRows(N,N)}else if(w<0){var P=c(O,S,"top");F=F.setRows(P,P)}return F}},{key:"triggerCallbacks",value:function(h){var g=h.event,m=g.yDelta,S=g.xDelta,T=g.callback,w={shiftKey:!0};m>0&&(w.keyCode=n.ARROW_DOWN,T(l.internal.TABLE_KEY_PRESS,w)),m<0&&(w.keyCode=n.ARROW_UP,T(l.internal.TABLE_KEY_PRESS,w)),S>0&&(w.keyCode=n.ARROW_RIGHT,T(l.internal.TABLE_KEY_PRESS,w)),S<0&&(w.keyCode=n.ARROW_LEFT,T(l.internal.TABLE_KEY_PRESS,w))}},{key:"computeFocusActiveCellWhenDrag",value:function(h,g,m){var S=m.rows.start,T=m.columns.start,w=r.range().setRows(S,S).setColumns(T,T);return g>-1&&(w=w.setColumns(g,g)),h>-1&&(w=w.setRows(h,h)),{nextRange:w}}},{key:"setHeaderRects",value:function(h){this._headerRects=h.event.children}},{key:"setRowRects",value:function(h){this._rowRects=h.event.children}},{key:"setRowCellRects",value:function(h){this._rowCellRects=h.event.children}},{key:"isIdListIdentical",value:function(h,g){if(h.length!==g.length)return!1;for(var m=new Set(h),S=0;S{let i=n.getData(r);if(v.checkImageType(r)){let a=D.convert(i,r);e[r]=a}}),new ClipboardItem(e)},checkImageType:function(n){return!!new RegExp("^image{1}/","i").exec(n)},clipboardItemsToDataTransfer:function(n,e){let t=[];for(let r of n)t.push(v.clipboardItemToDataTransfer(r,e));return Promise.all(t).then(()=>Promise.resolve(e))},clipboardItemToDataTransfer:function(n,e){return v.clipboardItemToPromises(n).then(t=>v.clipboardItemPromisesToBlob(t)).then(t=>v.blobsToDataTransfer(t,e))},clipboardItemToPromises:function(n){return new Promise(e=>{let t=[];for(const r of n.types)t.push(n.getType(r));e(t)})},clipboardItemPromisesToBlob:function(n){return Promise.allSettled(n).then(e=>e.filter(t=>t.status==="fulfilled"&&t.value))},blobsToDataTransfer:function(n,e){let t=[],r=[];for(let i of n){let a=i.value.type;r.push(a),v.checkImageType(a)?e.items.add(new File([i.value],_.convert(a),{type:a})):t.push(v.blobToText(i.value))}return Promise.all(t).then(i=>(i.forEach((a,s)=>{e.items.add(a,r[s])}),e))},blobToText:function(n){return new Promise(e=>{let t=new FileReader;t.onload=function(r){e(r.target.result)},t.readAsText(n)})},blobToBase64:function(n){return new Promise(e=>{let t=new FileReader;t.onload=function(r){e(r.target.result)},t.readAsDataURL(n)})}};return v},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){const D=8;function _(e){return atob(e)}function v(e,t){return Math.min(e+D,t)}function l(e,t){for(let r=0,i=0;r{let e=this._events[v].indexOf(l);this._events[v].splice(e,1),n.remove=()=>null},n}emit(v,l={}){let n=this._events[v],e=Object.getOwnPropertyNames(l),t={};e.forEach(i=>{t[i]=l[i]}),(i=>{i&&i.forEach(a=>{a(t)})})(n)}hasListeners(v){return this._events[v]?this._events[v].length>0:!1}}return D},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(48),u(58),u(217)],E=u.dj.d(A,function(D,_,v){class l{constructor(){this._cacheDataTransfer=new D}set(e){e&&(this._cacheDataTransfer=e)}clear(){this._cacheDataTransfer=new D}static clone(e){let t=new D;if(e.types.forEach(function(r){r!==v.FILES&&t.setData(r,e.getData(r))}),!e.items)return t;for(let r=0;rc.type),i=Array.from(t.items).map(c=>c.type);return!r.every(c=>i.includes(c))||e.files.length>0&&t.files.length>0?!1:r.every(c=>{let o=e.getData(c),d=t.getData(c);return c===v.TEXT_HTML?this._validateHTML(o,d):e.getData(c)===t.getData(c)})}_validateHTML(e,t){const r=new DOMParser;let i=r.parseFromString(t,v.TEXT_HTML).body,a=this._getChildNodes(i),s=r.parseFromString(e,v.TEXT_HTML).body,c=this._getChildNodes(s);return a.length!==c.length?!1:a.every((d,f)=>{let h=c[f];return h.tagName!==d.tagName?!1:d.childNodes.length>0?!0:h.textContent===d.textContent})}_getChildNodes(e){let t=[];e instanceof window.Text&&e.textContent.trim()===""||t.push(e);for(let r=0;r<(e.childNodes&&e.childNodes.length);r++){let i=e.childNodes[r];t=t.concat(this._getChildNodes(i))}return t}mix(e){let t=new D,r=this.get(),i=new Map;for(let a=0;a1&&arguments[1]!==void 0?arguments[1]:{maintainPositionIfInView:!0},S=this;function T(){if(!(g&&Object.keys(g).length))return new Promise(function(O,F){return F(new Error("The usage of Cell Range argument - "+g+" is not correct in scrollTo API. Please check JSDoc to see the correct usage."))});var w=!1,R=!1;return g.rows&&(g.rows&&g.rows.count>0&&(R=S._scrollToRow(g,m.maintainPositionIfInView)),g.columns&&g.columns.count>0&&(w=S._scrollToColumn(g,m.maintainPositionIfInView))),w===!1&&R===!1?new Promise(function(O){O()}):new Promise(function(O){S._viewModel.on("viewDataChanged",O)})}return T()}},{key:"_scrollToColumn",value:function(g,m){var S=Math.min(this._viewModel.dataSize.columns.count-1,g.columns.start),T=Math.min(this._viewModel.dataSize.rows.count-1,g.rows.start),w=this._rowCellRectsHeaderFallback({row:T}),R=this._logicalViewPort.getWidth(),O=this._getScrollRect(),F=!0,b=this.cellNav.getColPosition(S,O,R,w);if(m)if(g.columns.start!==g.columns.end){var I=this.cellNav.getColPosition(Math.min(this._viewModel.dataSize.columns.count-1,g.columns.end),O,R,w);F=!(b==null&&I==null)}else F=b!=null;if(F){var N=this.cellNav.getScrollLeftPosition(S,w);F=this._logicalViewPort.setScrollLeftPx(N)}return F}},{key:"_scrollToRow",value:function(g,m){var S=Math.min(this._viewModel.dataSize.rows.count-1,g.rows.start),T=this._logicalViewPort.getHeight(),w=this._rowRects(),R=this._getScrollRect(),O=!0,F=this.cellNav.getRowPosition(R,w,S,T);if(m)if(g.rows.start!==g.rows.end){var b=this.cellNav.getRowPosition(R,w,g.rows.end,T);O=!(F==null&&b==null)}else O=F!=null;if(O){var I=this.cellNav.getScrollTopPosition(S,w);O=this._logicalViewPort.setScrollTopPx(I)}return O}},{key:"_setRowRects",value:function(g){this._rowRects=g.event.children}},{key:"_setHeaderRects",value:function(g){this._headerRects=g.event.children}},{key:"_setRowCellRects",value:function(g){this._rowCellRects=g.event.children}},{key:"_hasModifier",value:function(g){return!1}},{key:"_getActiveState",value:function(){var g=this._viewModel.getStateByKey(i.protected.ACTIVE_CELL);return g||void 0}},{key:"_processAndEmitKeyPress",value:function(g){var m=g.event,S={keyCode:m.keyCode};S.modifiers=m,S.dataSize={},S.viewPort={},S.dataSize=g.dataSize,S.viewPort=g.viewPort.rangeList[0],S.viewModel=this._viewModel,S.headerRects=this._headerRects,S.rowCellRects=this._rowCellRects,S.currentState=this._getActiveState(),this._keyPressed(S)}},{key:"_rowClicked",value:function(g){var m=v.getRangeForCell(g.row,g.column),S=null;this._selectionById&&(S={id:g.rowId}),this._viewModel.setState(i.protected.ACTIVE_CELL,S,[m])}},{key:"_getPreviousViewCount",value:function(g){var m=this.cellNav.getCurrent(g,"rows"),S=this._rowRects();return this._logicalViewPort.getPreviousViewPortCount(S,m)}},{key:"_getNextViewPortCount",value:function(g){var m=this.cellNav.getCurrent(g,"rows"),S=this._rowRects();return this._logicalViewPort.getNextViewPortCount(S,m)}},{key:"_getLastRowPositionForHeight",value:function(){var g=this._logicalViewPort.getHeight();return l.curry(this.cellNav.getScrollBottomPosition)(g)}},{key:"_getRightColPositionForWidth",value:function(){var g=this._logicalViewPort.getWidth();return l.curry(this.cellNav.getScrollRightPosition)(g)}},{key:"_getScrollRect",value:function(){var g=this._logicalViewPort.getBoundingRect(),m=g.height-this._logicalViewPort.getHeight(),S=g.width-this._logicalViewPort.getWidth();return{top:g.top,left:g.left,bottom:g.bottom-m,right:g.right-S}}},{key:"_handleVertical",value:function(g,m,S){var T=this.cellNav.getCurrent(g,"rows"),w=Math.max(0,this.cellNav.getCurrent(g,"columns")),R=m(T),O=this._getScrollRect(),F=this._logicalViewPort.getWidth(),b=null,I=this.cellNav.getColPosition(w,O,F,this._rowCellRectsHeaderFallback({row:T})),N=this._rowRects(),P=N[R]||{},L=t.map(P,[["top","prev"],["bottom","next"]]),k=t.map(O,[["top","prev"],["bottom","next"]]);this.cellNav.isInRange(k,L)||(b=S(R,N));var W=this.cellNav.setCellMeta(b,I,R,w);return W.scrollInPixels.scrollFn=l.curry(S)(R),W}},{key:"_handlePageUp",value:function(g){var m=l.curry(this.cellNav.decrement)(g.dataSize.rows.start,this._getPreviousViewCount(g)),S=this._handleVertical(g,m,this.cellNav.getScrollTopPosition);return S.topScrollFn=this._logicalViewPort.setScrollTopPx,S}},{key:"_handlePageDown",value:function(g){var m=l.curry(this.cellNav.increment)(g.dataSize.rows.end,this._getNextViewPortCount(g)),S=this._handleVertical(g,m,this._getLastRowPositionForHeight());return S.topScrollFn=this._logicalViewPort.setScrollBottomPx,S}},{key:"_handleArrowUp",value:function(g){var m=l.curry(this.cellNav.decrement)(g.dataSize.rows.start,1);return this._handleVertical(g,m,this.cellNav.getScrollTopPosition)}},{key:"_handleArrowDown",value:function(g){var m=l.curry(this.cellNav.increment)(g.dataSize.rows.end,1);return this._handleVertical(g,m,this._getLastRowPositionForHeight())}},{key:"_hasCtrlModifier",value:function(g){return g.modifiers?g.modifiers.ctrlKey:!1}},{key:"_hasCmdModifier",value:function(g){if(g.modifiers)return g.modifiers.meta||g.modifiers.metaKey}},{key:"_handleHome",value:function(g){if(this._hasCtrlModifier(g))return this._handleCtrlHomeEnd(g,!1);if(!this._hasCmdModifier(g)){var m=function(){return 0};return this._handleHorizontal(g,m,this.cellNav.getScrollLeftPosition)}}},{key:"_handleEnd",value:function(g){if(this._hasCtrlModifier(g))return this._handleCtrlHomeEnd(g,!0);if(!this._hasCmdModifier(g)){var m=function(){return g.dataSize.columns.end},S=this._handleHorizontal(g,m,this._getRightColPositionForWidth());return S.leftScrollFn=this._logicalViewPort.setScrollRightPx,S}}},{key:"_handleCtrlHomeEnd",value:function(g,m){var S=Math.max(0,this.cellNav.getCurrent(g,"rows")),T=g.dataSize.columns.start,w=g.dataSize.rows.start;m===!0&&(T=g.dataSize.columns.end,w=g.dataSize.rows.end);var R=this._rowCellRectsHeaderFallback({row:S}),O=R[T]||{},F=this._rowRects(),b=F[w]||{},I=this._getScrollRect(),N=this._logicalViewPort.getWidth(),P=t.map(O,[["left","prev"],["right","next"]]),L=t.map(b,[["top","prev"],["bottom","next"]]),k=t.map(I,[["left","prev"],["right","next"]]),W=null,K=null;this.cellNav.isInRange(k,P)||(W=this.cellNav.getScrollRightPosition(N,T,R)),this.cellNav.isInRange(k,L)||(K=this.cellNav.getScrollTopPosition(w,F));var V=this.cellNav.setCellMeta(K,W,w,T);return V.scrollInPixels.scrollFn=l.curry(this._getRightColPositionForWidth())(T),V.leftScrollFn=this._logicalViewPort.setScrollRightPx,V}},{key:"_handleHorizontal",value:function(g,m,S){var T=Math.max(0,this.cellNav.getCurrent(g,"rows")),w=this.cellNav.getCurrent(g,"columns"),R=m(w),O=this._rowCellRectsHeaderFallback({row:T}),F=O[R]||{},b=this._getScrollRect();F.width===s.dimensions.COLLAPSE_COLUMN_ABSOLUTE_MIN&&(R=this._getCollapseColumnFocus(w,R,O,g.dataSize),R===-1&&(R=w));var I=t.map(F,[["left","prev"],["right","next"]]),N=t.map(b,[["left","prev"],["right","next"]]),P=null,L=this._rowRects(),k=this.cellNav.getRowPosition(b,L,T,this._logicalViewPort.getHeight());this.cellNav.isInRange(N,I)||(P=S(R,O));var W=this.cellNav.setCellMeta(k,P,T,R);return W.scrollInPixels.scrollFn=l.curry(S)(R),W}},{key:"_getCollapseColumnFocus",value:function(g,m,S,T){var w=-1,R=m>g,O=T&&T.columns?T.columns.end:0,F=T&&T.columns?T.columns.start:0;if(R)for(var b=m;b<=O;b++){var I=S[b]||{};if(I.width>s.dimensions.COLLAPSE_COLUMN_ABSOLUTE_MIN){w=b;break}}else for(var N=m;N>=F;N--){var P=S[N]||{};if(P.width>s.dimensions.COLLAPSE_COLUMN_ABSOLUTE_MIN){w=N;break}}return w}},{key:"_handleArrowLeft",value:function(g){var m=l.curry(this.cellNav.decrement)(g.dataSize.columns.start,1),S=this._handleHorizontal(g,m,this.cellNav.getScrollLeftPosition);return S.leftScrollFn=this._logicalViewPort.setScrollLeftPx,S}},{key:"_handleArrowRight",value:function(g){var m=l.curry(this.cellNav.increment)(g.dataSize.columns.end,1),S=this._getRightColPositionForWidth(),T=this._handleHorizontal(g,m,S);return T.leftScrollFn=this._logicalViewPort.setScrollRightPx,T}},{key:"_keyPressed",value:function(g){if(!this._hasModifier(g)){var m=this._handler[g.keyCode];if(m){var S=m(g);S.leftScrollFn=S.leftScrollFn||this._logicalViewPort.setScrollLeftPx,S.topScrollFn=S.topScrollFn||this._logicalViewPort.setScrollTopPx,this._activeCell.setActiveCell(S)}}}}]),f}();return d},C,x),C.exports=E},function(C,x,u){var A,E,D=Object.assign||function(t){for(var r=1;rf.offsetWidth}},{key:"getTreeCellTargetNode",value:function(f){return f.firstElementChild.firstChild}},{key:"getTreetableIconLabelTargetNode",value:function(f,h){return f&&f.querySelector(a)?f.querySelector(a):h}},{key:"getTableRendererTargetNode",value:function(f){return f.firstElementChild}},{key:"isHeaderCell",value:function(f){return f===v.COLUMN_HEADER||f===v.TOPLEFT_HEADER}},{key:"isIconLabelOrCheckboxRenderer",value:function(f){return f instanceof e||f instanceof n}},{key:"getTargetNode",value:function(f,h,g,m){return f==="treeCell"&&(h=this.getTreeCellTargetNode(h)),this.isHeaderCell(f)&&Object.keys(m).length!==0&&(h=g.firstChild),this.isIconLabelOrCheckboxRenderer(m)&&(h=this.getTableRendererTargetNode(g)),this.isHeaderCell(f)&&this.isIconLabelOrCheckboxRenderer(m)&&(h=g),m instanceof i&&(h=this.getTreetableIconLabelTargetNode(g,h)),h}},{key:"getNodeForTruncationCheck",value:function(f,h,g){var m=h;if(f==="treeCell"&&(m=h.firstElementChild),g instanceof i){var S=m.querySelector(a);S&&(m=S)}else g instanceof l?m=m.querySelector(s):g instanceof n||g instanceof e?m=m.firstElementChild:g instanceof t||g instanceof r?m=m.firstElementChild.firstElementChild:m=m.firstElementChild;return m}}]),o}();return c},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(13)],E=u.dj.d(A,function(D){var _=[],v=window.requestAnimationFrame,l=!1;function n(e,t,r,i){var a=r.style.display;r.style.display="none",e.insertBefore(t,i),_.push({node:r,display:a}),l||(l=!0,v(function(){l=!1;for(var s=0;s<_.length;s+=1){var c=_[s],o=c.node,d=c.display;o.parentNode&&(o.parentNode.removeChild(o),o.style.display==="none"&&(o.style.display=d))}_=[]}))}return{shouldCellUpdate:function(t,r,i,a){if(JSON.stringify(t.editState)!==JSON.stringify(r.editState)||t.focusClass!==r.focusClass||JSON.stringify(t.additionalClass)!==JSON.stringify(r.additionalClass)||t.renderer!==r.renderer||t.interactiveRenderer!==r.interactiveRenderer||t.editor!==r.editor||JSON.stringify(t.editValidation)!==JSON.stringify(r.editValidation)||t.editProcessing!==r.editProcessing)return!0;var s=t.cellData.isEqual(r.cellData),c=t.styleData!==r.styleData;t.styleData instanceof Object&&r.styleData instanceof Object&&(c=!D.shallowEqual(t.styleData,r.styleData));var o=t.cellMetaData&&t.cellMetaData.isEqual(r.cellMetaData);return!s||!o||c},replaceFirstNode:function(t,r,i){n(t,r,i,t.firstChild)},replaceLastNode:function(t,r,i){n(t,r,i,null)}}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){var e=[],t=!0,r=!1,i=void 0;try{for(var a=l[Symbol.iterator](),s;!(t=(s=a.next()).done)&&(e.push(s.value),!(n&&e.length===n));t=!0);}catch(c){r=!0,i=c}finally{try{!t&&a.return&&a.return()}finally{if(r)throw i}}return e}return function(l,n){if(Array.isArray(l))return l;if(Symbol.iterator in Object(l))return v(l,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(v){return typeof v}:function(v){return v&&typeof Symbol=="function"&&v.constructor===Symbol&&v!==Symbol.prototype?"symbol":typeof v};A=[u(415),u(22),u(84),u(44),u(10),u(416),u(3)],E=u.dj.d(A,function(v,l,n,e,t,r,i){"use strict";var a=null,s=function(T,w){var R=w||v,O=new R(T,{});return O},c=function(T,w){var R=void 0;return _(T.editProcessing)==="object"&&_(w.editProcessing)==="object"?R=Object.entries(T.editProcessing).toString()===Object.entries(w.editProcessing).toString():R=T.editProcessing===w.editProcessing,T.value===w.value&&R},o=function(T){var w=T.CustomEditor,R=T.editProcessing,O=T.editTrigger,F=T.handleEditComplete,b=T.handleEditCanceled,I=T.handleEditValidation,N=T.handleProcessEdit,P=T.eventCallback,L=T.useEditorRendererDataFields,k=T.isTreeCell,W=T.isCustomHeight,K=T.cellRef,V=T.metaData,G=V===void 0?{}:V,j=T.value,Y=i.useRef(),z=8,Q=12,X=4,J=22,$=e().getDisplayValue(j,n.EDITOR,L),q=W&&K?K.offsetHeight:null;q&&(K.style.height=q+"px");var te=q?{height:q-X+"px"}:null,oe=k?z:Q,le=i.useState($),de=D(le,1),De=de[0],Se=i.useState(!1),pe=D(Se,2),ie=pe[0],ee=pe[1],me=[],ce=function(nt,Dt){if(!a){a=s(nt,w),Y.current.appendChild(a.getDomNode(nt,Dt)),me.push(a.on("editComplete",function(St){return d(St,ve,Y.current,Oe)})),me.push(a.on("editCanceled",function(St){return d(St,b,Y.current,Oe)})),me.push(a.on("editValidation",function(St){return I(St)})),me.push(a.on("processEdit",function(St){return N(St)})),a.setFocus();var wt=a._domNode&&a._domNode.querySelector("input");if(q&&wt&&q-oe>J&&(wt.style.height=q-oe+"px"),O){var Ft=a.getDomNode(nt,Dt).getElementsByClassName("mwTableTextEditor")[0];Ft&&m(O,Ft)}}},ve=function(nt){var Dt=e().getValueToSave(j,nt.newValue,n.EDITOR,L),wt=Dt.oldValue,Ft=Dt.valueToSave;return nt.oldValue=wt,nt.newValue=Ft,F(nt)},Oe=function(){q&&(K.style.height="auto"),me&&me.forEach(function(nt){return nt.remove()}),Y.current&&Y.current.contains(document.activeElement)&&(K?K.focus():l.setFocusCache(P)),a&&a.destroy&&a.destroy(),a=null};return i.useLayoutEffect(function(){return ce($,G),function(){Oe()}},[]),i.useLayoutEffect(function(){De!==$&&b&&b()},[$]),i.useLayoutEffect(function(){var Ye=a&&a.update,nt=R&&R.validationResult,Dt=R&&!R.validationResult;ee(!!Dt),Ye&&nt&&f(R,a)},[R]),i.createElement(i.Fragment,null,i.createElement(r,{loading:ie,style:te}),i.createElement("span",{className:ie?"mw-table-indicator-hide":"",ref:Y,onMouseDown:h}))};return i.memo(o,c);function d(S,T,w,R){if(R(),g(w)){T(S);return}t.toPromise().then(function(){return T(S)})}function f(S,T){var w=S.validationResult,R=S.newValue;w.validatedData=R,T.update(S.oldValue,{validationResult:w})}function h(S){S.stopPropagation()}function g(S){return S&&S.contains(document.activeElement)||!1}function m(S,T){var w=!1;function R(){w=!0}T.addEventListener("keypress",R),setTimeout(function(){w||(T.value===S.value&&(T.value=""),T.value=S.value),T.removeEventListener("keypress",R)},0)}},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){"use strict";return Object.freeze({XSMALL:"xsmall",SMALL:"small",MEDIUM:"medium",LARGE:"large",XLARGE:"xlarge"})},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){"use strict";return Object.freeze({SPINNER:"spinner"})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return function(){var D=[];return{own:function(v,l){var n=v;l&&(n={remove:function(){v[l].call(v)}}),D.push(n)},remove:function(){D.forEach(function(v){v.remove()}),D=[]}}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return{DIRECTION_UP:"up",DIRECTION_RIGHT:"right",DIRECTION_DOWN:"down",DIRECTION_LEFT:"left",DIRECTION_NONE:"none"}},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){return function(D,_){var v=!1,l=0,n=void 0,e=-1;function t(a){v=!0,e=window.setTimeout(function(){D.apply(null,n),l=Date.now(),v=!1},a)}function r(){clearTimeout(e),v=!1,n=void 0,e=-1}function i(){n=arguments;var a=_-(Date.now()-l);a<=0||a>_?(D.apply(null,arguments),l=Date.now(),window.clearTimeout(e),v=!1):v||t(a)}return i.cancel=r,i}},C,x),C.exports=E},function(C,x,u){var A,E,D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_=function(){function e(t,r){for(var i=0;i1&&arguments[1]!==void 0?arguments[1]:a.COLUMN_HEADER,X=this.props,J=X.colIndex,$=X.name,q=X.id,te=S.getTargetNode(a.COLUMN_HEADER,Y.target,this.renderNode,this.state.headerRenderer);if(!this.state.dragInProgress&&this.state.headerRenderer.getTooltip&&(this.state.headerRenderer.showTooltip||S.isTruncated(te))){var oe=Q===a.COLUMN_HEADER?J:q;this.props.eventCallback(e.protected.NODE_NOTIFY,{publisherFn:function(){return{node:Y.target,id:Q+oe,content:z.state.headerRenderer.getTooltip($).text,className:"mw-table-header-column"}},publisherId:t.protected.publisher.CELL_HOVER,noRender:!0})}}},{key:"_handleContextmenu",value:function(Y){var z=this.props,Q=z.eventCallback,X=z.rowIndex,J=z.colIndex,$=z.colIndexEnd,q={type:a.COLUMN_HEADER,rowIndex:X,colIndex:J,colEnd:$};return m.eventCallbackForContextMenu(Y,Q,q)}},{key:"_handleDoubleClick",value:function(){}},{key:"_handleMouseDown",value:function(Y){if(!m.isSyntheticRightClick(Y)){var z=this.props,Q=z.colIndex,X=z.headerMeta,J=z.colIndexEnd,$=z.range,q=$===void 0?{}:$;if(!(Q<0)&&!F(Y.target)){var te=w.isGroupColumn(X),oe=w.getColRangeIndicesForView(Q,X,J,q.start);this.props.eventCallback(e.protected.COL_HEADER_CLICK,{column:oe.startIndex,columnEnd:oe.endIndex,groupedSelection:te,meta:Y.metaKey,ctrlKey:Y.ctrlKey,shiftKey:Y.shiftKey,altKey:Y.altKey})}}}},{key:"handleDragState",value:function(Y){this.setState({dragInProgress:Y}),this.props.eventCallback(e.internal.DRAG_STARTED,{columnDragStarted:Y})}},{key:"_isWidthCollapsed",value:function(Y,z){var Q=Y.styleData,X=Y.collapseColumn,J=Y.logicalColWidth;if(!X)return!1;var $=Q&&Q.minWidth?Q.minWidth:J,q=z||$;return q1?(b--,m.set(F,b)):(m.delete(F),h.emit(i.dragLeave,{type:i.dragLeave,xCoord:d.pageX,yCoord:d.pageY,dropEffect:d.dataTransfer.dropEffect,dropTarget:O,target:F,getNativeDataByType:e.createNativeDataByType(d),getNativeDataTypes:function(){return l.getNativeDataTypes(d.dataTransfer,O.allowGlobal)},nativeTypes:s.TYPES,getDropOperation:function(){return e.getDropOperationFromDropEffect(d.dataTransfer.dropEffect)}}))}}},{key:"_handleDrop",value:function(o){var d=o.event,f=o.domNode,h=o.on,g=o.getDropTargets,m=o.dragEnterLeaveCounterMap,S=o.isDragStartedInContext,T=o.getDropStatus,w=o.getDragOperations,R=e.validateDrag({getDropTargets:g,event:d,isDragStartedInContext:S,contextDOM:f});if(!!R){d.preventDefault();var O=R.matchedDragElement,F=R.matchedParentDOM;d.dataTransfer.dropEffect=e.getDropEffect(d,T,w),m.delete(F),h.emit(i.drop,{type:i.drop,xCoord:d.pageX,yCoord:d.pageY,dropEffect:d.dataTransfer.dropEffect,dropTarget:O,target:F,getNativeDataByType:e.createNativeDataByType(d),getNativeDataTypes:function(){return l.getNativeDataTypes(d.dataTransfer,O.allowGlobal)},nativeTypes:s.TYPES,getDropOperation:function(){return e.getDropOperationFromDropEffect(d.dataTransfer.dropEffect)}})}}},{key:"_handleDragOver",value:function(o){var d=new r(o);d.handleDragOver()}},{key:"_handleDragStart",value:function(o){var d=o.event,f=o.on,h=o.getDragSources,g=o.handleDragEndListener,m=h(),S=e.matchDragSourceFromEvent(d,m);if(!!S){var T=S.matchedDragElement,w=S.matchedParentDOM;d.dataTransfer.setData(l.dndDefaultTypeEnum,""),g.attachDragEndEvent(w,f,m),f.emit(i.dragStart,{type:i.dragStart,dragSource:T,target:w,xCoord:d.pageX,yCoord:d.pageY,setNativeDataByType:function(O,F){switch(O){case s.TYPES.TEXT:{l.setNativeTextData(d.dataTransfer,F);break}default:T.allowGlobal&&l.setNativeDataByType(d.dataTransfer,O,F);break}},getNativeDataTypes:function(){return l.getNativeDataTypes(d.dataTransfer,T.allowGlobal)},getNativeDataByType:e.createNativeDataByType(d),setValidDragItem:function(O){O?d.dataTransfer.effectAllowed="all":(d.dataTransfer.effectAllowed="none",d.preventDefault())},canSetNativeAvatar:!!d.dataTransfer.setDragImage,setEmptyNativeAvatar:function(){var O=document.createElement("div");O.classList.add("mw-dnd-empty-avatar"),O.appendChild(document.createTextNode("\xA0")),document.body.appendChild(O),d.dataTransfer.setDragImage(O,0,0),setTimeout(function(){document.body.removeChild(O)},0)},nativeTypes:s.TYPES,getDropOperation:function(){return e.getDropOperationFromDropEffect(d.dataTransfer.dropEffect)}}),e.stopPropagationforDojoDnDParent(d)}}},{key:"_handleDragEnd",value:function(o){var d=o.event,f=o.on,h=o.getDragSources,g=o.handleDragEndListener,m=h(),S=e.matchDragSourceFromEvent(d,m);if(!!S){var T=S.matchedDragElement,w=S.matchedParentDOM;T&&(g.removeDragEndEvent(),f.emit(i.dragEnd,{type:i.dragEnd,dragSource:T,xCoord:d.pageX,yCoord:d.pageY,target:w,getNativeDataByType:e.createNativeDataByType(d),nativeTypes:s.TYPES,getNativeDataTypes:function(){return l.getNativeDataTypes(d.dataTransfer,T.allowGlobal)},getDropOperation:function(){return e.getDropOperationFromDropEffect(d.dataTransfer.dropEffect)}}))}}},{key:"handleDynamicDragSources",value:function(){this._getDragSources().length>0&&this._getDragSources().forEach(this.setDraggableAttribute,this)}},{key:"setDraggableAttribute",value:function(o){switch(o.type){case"SELECTOR":this._setDraggableAttribute(o.selector);break;case"DOM":o.domNode.setAttribute("draggable",!0),this._setDraggableAttrChildren(o.domNode);break;default:break}}},{key:"removeDraggableAttribute",value:function(o){switch(o.type){case"SELECTOR":this._removeDraggableAttribute(o.selector);break;case"DOM":o.domNode.removeAttribute("draggable"),this._removeDraggableAttrChildren(o.domNode);break;default:break}}},{key:"_setDraggableAttributeToNodeList",value:function(o){for(var d=0;d -
-
-
-
-
-
-
`,n=function(){D(e,null,[{key:"StatusEnum",get:function(){return{VALID:"VALID",INVALID:"INVALID"}}}]);function e(t,r,i,a){_(this,e),this._singleSelect=!1,this._validate(t,a),this._avatarContainer=this._decorateAvatar(t,a),this._updatePosition(r,i),document.body.appendChild(this._avatarContainer)}return D(e,[{key:"_validate",value:function(r,i){if(r instanceof Node){if(i&&isNaN(i))throw new Error("Expected: count should be of type Number");return!0}else throw new Error("Expected: avatar should be of type Node")}},{key:"_decorateAvatar",value:function(r,i){var a=document.createElement("div");a.classList.add("mw-dnd-avatar"),v.showsNotAllowedPointerOnInvalidDnD&&a.classList.add("mw-dnd-pointer-not-allowed-support"),a.setAttribute("data-test-id","avatarElement");var s=new DOMParser().parseFromString(l,"text/html");return a.appendChild(s.querySelector(".mw-dnd-avatar-container-1")),!i||i<=1?(a.classList.add("mw-dnd-single-select","mw-dnd-invalid-target"),this._singleSelect=!0):(a.classList.add("mw-dnd-multi-select","mw-dnd-invalid-target"),a.setAttribute("data-multi-select-count",i),this._singleSelect=!1),a.querySelector(".mw-dnd-avatar-child-content").appendChild(r),a}},{key:"enterValidDropTarget",value:function(){this._avatarContainer.classList.remove("mw-dnd-invalid-target"),this._avatarContainer.classList.add("mw-dnd-valid-target")}},{key:"leaveValidDropTarget",value:function(){this._avatarContainer.classList.remove("mw-dnd-valid-target"),this._avatarContainer.classList.add("mw-dnd-invalid-target")}},{key:"updatePosition",value:function(r,i){window.requestAnimationFrame(function(){this._updatePosition(r,i)}.bind(this))}},{key:"_updatePosition",value:function(r,i){var a=void 0;this._singleSelect?a=15:a=25,this._avatarContainer.style.transform="translate("+(r+a)+"px, "+(i-5)+"px)"}},{key:"remove",value:function(){document.body.removeChild(this._avatarContainer)}},{key:"avatarContainer",get:function(){return this._avatarContainer}}]),e}();return n},C,x),C.exports=E},function(C,x,u){"use strict";var A,E,D=function(){function v(l,n){for(var e=0;e1&&arguments[1]!==void 0?arguments[1]:{};return r(o,d)}}]),s}();return a},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){"use strict";return{validate:function(_){if(_){if(!_.hasOwnProperty("id"))throw new Error("id is required for proxyNode. Path property not implimented yet.")}else throw new Error("proxyNode is required")},normalize:function(_){return this.validate(_),_}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){"use strict";return{ERROR_CIRCULAR_REF:"ERROR_CIRCULAR_REF",ERROR_SAVE_FAILED:"ERROR_SAVE_FAILED",ERROR_VALIDATION:"ERROR_VALIDATION",ERROR_UNKNOWN:"ERROR_UNKNOWN",ERROR_NODE_NON_EXISTENT:"ERROR_NODE_NON_EXISTENT"}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E,D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(v){return typeof v}:function(v){return v&&typeof Symbol=="function"&&v.constructor===Symbol&&v!==Symbol.prototype?"symbol":typeof v};function _(v){if(Array.isArray(v)){for(var l=0,n=Array(v.length);lee;break;case v.type.GREATER_THAN_EQUAL_TO:ce=ie>=ee;break;case v.type.LESS_THAN:ce=ie2&&arguments[2]!==void 0?arguments[2]:!1;return ee.length===0&&me?!1:G(ie,ee,!0)},K=function(ie,ee){return G(ie,ee,!1)},V=function(ie,ee){var me=!1;return ee.and?me=K(ie,ee.and):ee.or&&(me=W(ie,ee.or)),ee.exclude&&(me=k(ie,ee,me)),me},G=function(ie,ee,me){for(var ce=!0,ve=0;ve0){var n=document.createElement("span");n.classList.add("mwTextLine"),n.textContent=l,v.appendChild(n),v.classList.remove("mwEmptyNode")}else v.classList.add("mwEmptyNode")},_getTextForDOM:function(_){return _}})},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;et||i.columns.start>r||i.rows.end<0||i.columns.end<0?null:(a.rows.start=Math.max(Math.min(i.rows.start,t),0),a.columns.start=Math.max(Math.min(i.columns.start,r),0),a.rows.end=i.rows.end===1/0?1/0:Math.max(Math.min(i.rows.end,t),a.rows.start),a.columns.end=i.columns.end===1/0?1/0:Math.max(Math.min(i.columns.end,r),a.columns.start),v.range().setRows(a.rows.start,a.rows.end).setColumns(a.columns.start,a.columns.end))}}]),n}();return l},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e1&&arguments[1]!==void 0?arguments[1]:{};_(this,V),this._events=[],this._eventMap={},this.resizeHandler=this.resizeHandler.bind(this);var Y=!1,z=this._viewModel=P.setViewModel(b,I,G,O);typeof j.keepSorted!="boolean"&&(j.keepSorted=!1),j.selectionConfig&&typeof j.selectionConfig.selectionById=="boolean"&&(Y=j.selectionConfig.selectionById);var Q=N.getRowHeaderConfig(j);z.setState(f.protected.testId,"__MW_TABLE__"+j.dataTestId),z.setState(f.protected.SORT_BEHAVIOUR,j.keepSorted),Y&&(z.setState(f.protected.TABLE_SELECTION_BY_ID,!0),z.setState(f.protected.INIT_CUSTOM_PROPS_FUNC,k.initTableColumnProps),z.setState(f.protected.UPDATE_CUSTOM_PROPS_FUNC,k.updateTableColumnProps)),z.setRowHeaderConfig(Q),P.setupRegistration(this,z);var X=this._tableView=P.initializeTableView(z,G,W,h,j),J=X.registry;P.mixinFacade(this,J),P.facadeListeners(this,J)}return D(V,[{key:"registerRenderer",value:function(j,Y){P.registerRenderer(this,this._viewModel,j,Y)}},{key:"registerEditor",value:function(j,Y){P.registerEditor(this,this._viewModel,j,Y)}},{key:"startup",value:function(){var j=m.SYNC;this._tableView.renderTable(),this._viewModel.setRenderType(j)}},{key:"destroy",value:function(){this._events.forEach(function(j){j.remove()}),this._tableView.removeTable(this._container),this._eventMap=null,this._viewModel=null,this._tableView=null}},{key:"on",value:function(j,Y){var z=v(this._eventMap[j],j,Y);return this._events.push(z),z}},{key:"getRangeFromId",value:function(j){}},{key:"resizeHandler",value:function(){this._tableView.throttledResize()}},{key:"focus",value:function(){this._tableView.focus()}},{key:"editCell",value:function(){this.focus();var j=this._tableView.domNode;this._editCell({container:j})}},{key:"emits",value:function(){}},{key:"domNode",get:function(){return this._tableView.domNode}}],[{key:"range",value:function(){return O.range()}},{key:"FEATURE",get:function(){return h.AVAILABLE}},{key:"gridStyle",get:function(){return g.public_enum}},{key:"compare",get:function(){return F.compare}},{key:"REORDER",get:function(){return S.AVAILABLE}},{key:"TOOLTIP",get:function(){return T.PUBLIC}},{key:"DRAGTOSELECT",get:function(){return L}},{key:"PLATFORMS",get:function(){return R.exposed}},{key:"KEYS",get:function(){return w}}]),V}();return K},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function l(n,e){for(var t=0;t=0&&(g=h[m],f+=o[g].height,!(f>d));m-=1);g=Math.max(g,0);var S=(f-d)/o[g].height,T=g,w=Math.floor(this._size.ROW_HEIGHT*(S+T));return[w+d,w]}},{key:"_calcMaxWidth",value:function(o,d){for(var f=this._viewPortList[0].getWidth(),h=0,g=Object.keys(o).sort(function(O,F){return O-F}),m=void 0,S=g.length-1;S>=0&&(m=g[S],h+=o[m].width,!(h>f));S-=1);m=Math.max(m,0);var T=(h-f)/o[m].width,w=m,R=Math.floor(this._size.COL_WIDTH*(T+w));return[R+f,R]}},{key:"_allColumnsInView",value:function(o){var d=this.viewModel.viewBuffer.rangeList[0],f=this.viewModel.getColumnCount();if(d.columns.count===f)return this._geomObjectX.translateX=0,o.result=this._geomObjectX,this._geomObjectX.translateX}},{key:"_isBufferCountZero",value:function(){var o=this.viewModel.viewBuffer.rangeList[0],d=o.rows.count;return d===0}},{key:"_allRowsInView",value:function(){var o=this.viewModel.viewBuffer.rangeList[0],d=this.viewModel.dataSize.rows.end,f=this.viewModel.dataSize.rows.start,h=o.rows.end,g=o.rows.start;return g===f&&d<=h}},{key:"_scrollExceedsTableWidth",value:function(o){this._updateGeomObjectForCols(o);var d=this._geomObjectX,f=d.maxScroll,h=d.physicalWidth,g=d.childClientWidth;if(!l.isColumnHeaderHidden(this.viewModel)&&this._scrollLeft>=f)return this._geomObjectX.translateX=h-g,this._geomObjectX.translateX}},{key:"_setPostUpdateX",value:function(o){var d=this,f=this.viewModel.getStateByKey("LastScrollColumnFn").value,h=this._viewPortList[0].getFirstBufferedRow(),g=f(this._rowCellRectsHeaderFallback({row:h}));g!==o?setTimeout(function(){d.viewModel.deleteState("LastScrollColumn"),d.viewModel.deleteState("LastScrollColumnFn"),d._viewPortList[0].setScrollLeftPx(g,!0)},0):(this.viewModel.deleteState("LastScrollColumn"),this.viewModel.deleteState("LastScrollColumnFn"))}},{key:"_setPostUpdateY",value:function(o){var d=this,f=this.viewModel.getStateByKey("LastScrollRowFn").value,h=f(this._rowRects());h!==o?window.requestAnimationFrame(function(){d.viewModel.deleteState("LastScrollRow"),d.viewModel.deleteState("LastScrollRowFn"),d._viewPortList[0].setScrollTopPx(h,!0)}):(this.viewModel.deleteState("LastScrollRow"),this.viewModel.deleteState("LastScrollRowFn"))}},{key:"_keyboardScrollTranslateY",value:function(o){var d=this._viewPortList[0].getHeight(),f=this._viewPortList[0].getScrollTop(),h=0,g=this.viewModel.getStateByKey("LastScrollRow");if(g)for(var m=g.value,S=this._rowRects(),T=Object.keys(S),w=0;w=h){for(var S=Object.keys(d).length,T=0;T0){for(var Q=j[Y[0]].left,X=j[Y[0]].right,J=0;JX&&(X=j[$].right)}z=X-Q}this._geomObjectX.physicalWidth=z}o.result=this._geomObjectX}},{key:"_updateGeomObjectForRows",value:function(o,d){var f=!1,h=this.viewModel.viewBuffer.rangeList,g=h[0].rows.start,m=this._size.ROW_HEIGHT*g,S=this._viewPortList[0].getLastBufferedRow(),T=this.viewModel.dataSize.rows.count-1,w=Math.min(T,n.calculateFirstVisible(this._size.ROW_HEIGHT,this._scrollTop)),R=T*this._size.ROW_HEIGHT,O=this._viewPortList[0].getHeight();if(!this._allRowsInView()&&!this._isBufferCountZero()){var F=Math.min(Math.max(0,w-g),S),b=1/0,I=0,N=Math.floor((R-O)/this._size.ROW_HEIGHT);if(N-r.buffers.ROW_OVERSCAN<=g&&S===T){var P=this._calcMaxHeight(d,g),L=D(P,2),k=L[0],W=L[1];b=W,I=Math.floor(k)}this._geomObjectY={maxScroll:b,physicalHeight:I,scrollYPos:m,bufferedRowCount:F,scrollHeight:(d[w]?d[w]:d[g]).height,physScrollY:this._scrollTop,translateY:this._geomObjectY.translateY}}else{var K=Object.keys(d),V=0;if(K.length>0)for(var G=0;G0&&arguments[0]!==void 0?arguments[0]:"",c="";return this._alignment===n.LEFT&&(c={text:this._getLabel(s)}),c}},{key:"getDomNode",value:function(s,c){var o=document.createElement("span"),d=document.createElement("span"),f=document.createElement("div"),h=document.createElement("div"),g=this._isChecked(s);if(g?d.className=this._checkboxDefaultClasses.concat(this._checkboxCheckedClasses).join(" "):d.className=this._checkboxDefaultClasses.join(" "),s&&s.a11y&&s.a11y.checkboxDescription)f.setAttribute("aria-label",s.a11y.checkboxDescription);else if(this._getA11yProperties){var m=this._getA11yProperties(s);m&&m.checkboxDescription&&f.setAttribute("aria-label",m.checkboxDescription)}var S=t.isInteractive(c)&&!t.isReadOnly(c);if(f.setAttribute("role","checkbox"),f.setAttribute("data-clickable",S),h.setAttribute("data-clickable",S),f.setAttribute("aria-checked",g),f.classList.add("mwCheckBoxRadioIconNode"),h.classList.add("mwCheckBoxRadioIconInner"),f.appendChild(h),d.appendChild(f),this._alignment===n.LEFT){var T=this._getlabelNode(s,c);d.classList.add("mwLabeledCheckbox"),f.classList.add("mwLabeledCheckboxIcon"),d.appendChild(T)}else this._alignment===n.RIGHT&&d.classList.add("mwRightAlignCheckbox");return o.appendChild(d),o.className="mw-table-cell-content mwRenderer",o}},{key:"_getlabelNode",value:function(s,c){var o=document.createElement("span"),d=this._getLabel(s);return o.setAttribute("checkbox-label",!0),e.metaHasHighlightMatches(c)?(o.setAttribute("data-test-id","highlightLabel"),e.appendHighlightDom(o,d,c)):(o.textContent=d,o.setAttribute("data-test-id","label2")),o}},{key:"getAriaLabel",value:function(s){var c=this._isChecked(s)?"checked":"unchecked",o="checkbox "+c;if(s&&s.a11y&&s.a11y.checkboxDescription)return s.a11y.checkboxDescription+" "+o;if(this._getA11yProperties){var d=this._getA11yProperties(s);if(d&&d.checkboxDescription)return d.checkboxDescription+" "+o}return o}},{key:"getValueForAction",value:function(s){var c=l().shallowCopy(s);return(typeof c=="undefined"?"undefined":D(c))==="object"&&c.hasOwnProperty("checked")&&(c.checked=!c.checked),{oldValue:s,newValue:c}}},{key:"handleAction",value:function(s){s=s||{};var c=s,o=c.value,d=c.shouldUpdate,f=c.target;return d===!0||f&&f.getAttribute("data-clickable")?this.getValueForAction(o):null}}]),i}();return r.ALIGNMENT=n,r},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({DROPDOWN:"dropdown"}),_=Object.freeze({TYPE:D,isValid:v});return _;function v(l){return Object.values(D).includes(l)}},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({LEFT:"left",RIGHT:"right",CENTER:"center",DEFAULT:"default"});return D},C,x),C.exports=E},function(C,x,u){var A,E,D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(l){return typeof l}:function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},_=function(){function l(n,e){for(var t=0;t1&&arguments[1]!==void 0?arguments[1]:{height:n,width:n},s=document.createElement("mw-icon");return s.setAttribute("icon-id",i),s.setAttribute("icon-width",a.width),s.setAttribute("icon-height",a.height),s}}]),t}();return e},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(86)],E=u.dj.d(A,function(D){"use strict";return D.css},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(310),u(315),u(316),u(12)],E=u.dj.d(A,function(D,_,v,l){class n{static getInstance(t){let r,i,a;if(t){switch(a=t.iconFactoryConfig,a){case _.MATLAB:r=v.MATLAB;break;case _.MAVEN:r=v.MAVEN;break;case _.OTHER:r=t.config;break;default:r=v.MATLAB}r.id=t.id||n._DEFAULT_ID,i=n.createInstance(r)}else n._instances[n._DEFAULT_ID]?i=n._instances[n._DEFAULT_ID]:(r=v.MATLAB,r.id=n._DEFAULT_ID,i=n.createInstance(r));return i}static createInstance(t){const r=t.id?t.id:n._DEFAULT_ID;return n._instances[r]=new D(t),n._instances[r]}static destroyInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:n._DEFAULT_ID;n._instances.hasOwnProperty(t)&&delete n._instances[t]}static _logOnce(t,r){n._logOnceCache.hasOwnProperty(t)||(l.log(r),n._logOnceCache[t]=!0)}}return n._logOnceCache={},n._instances={},n._DEFAULT_ID="mw-icons/default",n},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){const D={DEVELOPMENT:"DEVELOPMENT",PRODUCTION:"PRODUCTION"};return Object.freeze(D),D},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(188)],E=u.dj.d(A,function(D){const _={};return _.objectValues=function(v){const l=[];for(const n in v)v.hasOwnProperty(n)&&l.push(v[n]);return l},_.makeReadOnlyProperty=function(v,l,n){Object.defineProperty(v,l,{value:n,writable:!1})},_.execCallbacks=function(v,l){const n=_.objectValues(v);for(const e in n)n[e](l)},_.currentTimeString=function(){const v=new Date;return v.toLocaleTimeString("en-US",{hour12:!1,hour:"numeric",minute:"numeric",second:"numeric"})+"."+v.getTime()%1e3},_.printToConsole=function(v,l,n){(n!==D.PRODUCTION||v==="error")&&console[v].apply(console,l)},_},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(1),u(23),u(191)],E=u.dj.d(A,function(D,_,v){return{generateUuid:function(){const n="xxxxxxxx";return this._uuidFromTemplate(n).toUpperCase()},generateUUIDv4:function(){const n="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";return this._uuidFromTemplate(n)},_uuidFromTemplate:function(n){return n.replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})},isImageData:function(n){return!!n&&(_.global.ImageData&&n instanceof _.global.ImageData||Object.prototype.hasOwnProperty.call(n,"width")&&Object.prototype.hasOwnProperty.call(n,"height")&&Object.prototype.hasOwnProperty.call(n,"data"))},isArray:function(n){return v.deprecated({deprecated:{module:"mw-utils/Utils",method:"isArray"},geckNumber:1444368}),Array.isArray(n)},getArrayLength:function(n){let e=0;return D.isArray(n)?(n.forEach(function(t){t&&(e+=1)}),e):!1},isWhitespace:function(n){return/^\s+$/.test(n)},removeSurroundingNewLines:function(n){for(;n.charAt(0)===` -`;)n=n.substring(1);for(;n.charAt(n.length-1)===` -`;)n=n.substring(0,n.length-1);return n},getFirstUniqueElement:function(n,e){let t=null;return e.some(function(r){return n.indexOf(r)===-1?(t=r,!0):!1}),t},unionOfWordSets:function(n,e,t){n=this._stringToArray(n),e=this._stringToArray(e);const r=this.unionOfArrays(n,e);return t?r.join(" "):r},intersectionOfWordSets:function(n,e,t){n=this._stringToArray(n),e=this._stringToArray(e);const r=this.intersectionOfArrays(n,e);return t?r.join(" "):r},differenceOfWordSets:function(n,e,t){n=this._stringToArray(n),e=this._stringToArray(e);const r=this.unique(this.differenceOfArrays(n,e));return t?r.join(" "):r},unionOfArrays:function(n,e){return this.unique(n.concat(e))},intersectionOfArrays:function(n,e){return this.nonunique(n.concat(e))},differenceOfArrays:function(n,e){if(window.Map===void 0)return this._legacyDifferenceOfArrays(n,e);let t,r,i;const a=new Map,s=[];for(i=0;i]*>[\s\S]*?<\/a>/g,HYPERLINK_WITH_PARENTHESIS_ESCAPE_REGEXP:/]*)>([\s\S]*?)<\/a>/g,STRONG_ESCAPE_REGEXP:/|<\/strong>/g,BOLD_LINK_ATTRIBUTE_REGEX:/\bstyle\s*=\s*"[^"]*\bfont-weight\s*:\s*bold\b[^"]*"/,parseQueryString:function(){var n=window.location.search.substr(1,window.location.search.length);return this._parseQueryString(n)},_parseQueryString:function(n){return D.queryToObject(n)},parseUrl:function(n){var e=document.createElement("a");e.display="none",e.href=n||window.location.href,e.href=e.href;var t={protocol:e.protocol,hostname:e.hostname,port:e.port,pathname:e.pathname,search:e.search,hash:e.hash};return(t.protocol==="https:"||t.protocol==="http:")&&t.pathname.indexOf("/")!==0&&(t.pathname="/"+t.pathname),t.protocol==="https:"&&t.port==="443"&&n.indexOf("https://"+t.hostname+":443")!==0&&(t.port=""),t},escapeHtml:function(n){var e=document.createElement("div");e.textContent=n;var t=e.innerHTML;return t},escapeLinksAndHtml:function(n,e){v.deprecated({deprecated:{module:"mw-html-utils/HtmlUtils",method:"escapeLinksAndHtml"},replacement:{module:"mw-html-utils/HtmlUtils",method:"treatHtmlLikeCommandWindow"}});var t="",r=n.split(this.HYPERLINK_ESCAPE_REGEXP),i=n.match(this.HYPERLINK_ESCAPE_REGEXP),a="",s=this,c=0,o=function(f,h,g,m){var S=s.parseUrl(h).protocol;S!=="http:"&&S!=="https:"&&S!=="matlab:"&&(h="#"),h=s.escapeHtml(h),m=s._strongNotEscaped(m,!0),a=''+m+""};if(e)t=this.escapeHtml(n),t=this.escapeWhitespace(t);else if(r[0]!==""&&(t=this._strongNotEscaped(r[0],!0)),i!==null&&i.length!==0)for(c=0;c"+S+""};if(e)r=this.escapeHtml(n);else if(i[0]!==""&&(r=this._strongNotEscaped(i[0],!1)),a!==null&&a.length!==0)for(o=0;o"),r},_strongNotEscaped:function(n,e){var t="",r=n.match(this.STRONG_ESCAPE_REGEXP),i=n.split(this.STRONG_ESCAPE_REGEXP),a=function(o){return o};e&&(a=this.escapeWhitespace);var s=0;if(r!==null&&r.length!==0)for(t=a(this.escapeHtml(i[0])),s=0;s...'}}),n=n||"",n.replace(/\n/g,"
").replace(/ {2}/g,"  ")},handleAnchors:function(n,e){if(e&&e.target&&e.target.href){e.preventDefault(),e.stopPropagation();var t=e.target.href;if(t.indexOf("matlab:")!==-1){var r=t.substring(0,7);if(r==="matlab:"){var i=e.target.href.substring(7);n(window.decodeURIComponent(i))}}else window.open(e.target.href)}},isElementOverflown:function(n){return n.scrollHeight>n.clientHeight||n.scrollWidth>n.clientWidth},sanitizeHtmlFromJava:_.sanitizeHtmlFromJava,sanitizeHtml:_.sanitizeHtml}},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){return function(D,_,v,l){var n,e,t;if(D.load(_,v,function(r){e=r,t=!0,n&&n(r)},{isBuild:!0}),t)return e;if(!l)throw new Error(_+" unavailable");return e=new Promise(function(r){n=r}),e.__DOJO_WEBPACK_DEFINE_PROMISE__=!0,e}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r0&&(h=h.filter(function(g){return g[i.KEY_HANDLER_NAME]!==f}),this._setKeyHandlerList(h))}},{key:"addCustomKeyHandler",value:function(f,h,g){if(!f||typeof f!="string")throw new Error("Invalid KeyHandlerName, "+f+" should be a String.");var m=this._getKeyHandlerList();if(n.isPropertyInTheObject(m,i.KEY_HANDLER_NAME,f))throw new Error("Invalid KeyHandlerName, "+f+" should be Unique, "+f+" is already bound to addCustomKeyHandler API.");if(typeof g!="function")throw new Error("Invalid KeyHandler callback, "+g+" should be a function.");this._generateKeyHandlerList(f,h,g,m)}},{key:"_generateKeyHandlerList",value:function(f,h,g,m){var S=arguments.length>4&&arguments[4]!==void 0?arguments[4]:t.internal.ALL;if(h&&Array.isArray(h)){if(e.validatingKeyBindingLength(h),n.hasDuplicates(h))throw new Error("Invalid KeyBinding, Duplicate keycode found.");var T=!0,w=!1,R=void 0;try{for(var O=h[Symbol.iterator](),F;!(T=(F=O.next()).done);T=!0){var b=F.value;this._validatingIndividualKeyCombination(b,S,m);var I=l.isKeyBindingInHandlerList(b,f,m);if(I){var N=l.findPropertyInTheObject(b,f,m);N&&N[i.PLATFORMS]&&this._updateKeyHandlerObjectWithPlatform(N[i.PLATFORMS],S)}if(b&&!I){var P=l.getModifierLookupList();Array.isArray(b)&&(P=l.getModifierKeyCodeList(b));var L={};L[i.KEY_CODE]=b,L[i.KEY_HANDLER_NAME]=f,L[i.KEY_HANDLER]=g,L[i.PLATFORMS]=[S],L[i.MODIFIER_KEY_LIST]=P,m.push(L)}}}catch(W){w=!0,R=W}finally{try{!T&&O.return&&O.return()}finally{if(w)throw R}}}else if(h&&(typeof h=="undefined"?"undefined":D(h))==="object"){e.validatingKeyBindingLength(Object.keys(h)),e.validatingPlatformInKeyBinding(h);for(var k in h)h.hasOwnProperty(k)&&this._generateKeyHandlerList(f,h[k],g,m,k)}else throw new Error("Invalid KeyBinding, it should be an Array or Object")}},{key:"_validatingIndividualKeyCombination",value:function(f,h,g){if(!f)throw new Error("Invalid KeyBinding, Please refer to valid keycode in JSDoc.");if(Array.isArray(f)){if(f.length<=1)throw new Error("Invalid KeyBinding, Key Combination should have one regular key and multiple modifier keys");e.validateSequenceOfKeyCombination(f),e.validateKeyCombinations(f,h,g)}else{if(!l.keyCodeLookUpArray().includes(f))throw new Error("Invalid KeyBinding, Please refer to valid keycode in jsDoc");var m=l.findKeyCodeInTheList(f,h,g);if(m&&m[i.KEY_HANDLER_NAME])throw new Error("Invalid KeyBinding, "+n.getKeyByValue(s,f)+" is already bound to "+m[i.KEY_HANDLER_NAME]+" KeyHandler")}}},{key:"_updateKeyHandlerObjectWithPlatform",value:function(f,h){var g=l.isPlatformInTheList(f,h);!g&&Array.isArray(f)&&f.push(h)}},{key:"_getTableSelectionState",value:function(){var f=this._viewModel.getStateByKey(a.protected.SELECTED);return f&&f.rangeList?f.rangeList:null}},{key:"_getTreeTableSelectionState",value:function(){var f=this._viewModel.getStateByKey(a.protected.SELECTED);return f&&f.value?f.value:[]}},{key:"_getSelection",value:function(){if(this._widget==="Table"){var f=this._getTableSelectionState();return f}else if(this._widget==="TreeTable"){var h=this._getTreeTableSelectionState(),g=h.map(function(m){return{id:m}});return g}}},{key:"_getFocusedState",value:function(){return this._viewModel.getStateByKey(a.protected.FOCUSED)||null}},{key:"_getFocused",value:function(){var f={},h=this._getFocusedState();if(this._widget==="Table")return h;if(this._widget==="TreeTable")return h&&h.rangeList[0]&&h.value&&(f.column=h.rangeList[0].columns.start,f.id=h.value),f}},{key:"_handleTableKeyPress",value:function(f){var h=this;this._defaultPrevented=!1;var g=Object.assign([],this._getKeyHandlerList()),m=f.event,S={};if(S.preventDefault=this._preventDefault,S.selectedRows=this._getSelection(),S.focusedCell=this._getFocused(),g){var T=g.filter(function(N){return h._isKeyHandlerObjInTheList(m,N)}),w=!0,R=!1,O=void 0;try{for(var F=T[Symbol.iterator](),b;!(w=(b=F.next()).done);w=!0){var I=b.value;if(I[i.KEY_HANDLER](S),this._defaultPrevented)break}}catch(N){R=!0,O=N}finally{try{!w&&F.return&&F.return()}finally{if(R)throw O}}}!this._defaultPrevented&&m.eventCallback&&this._emitExistingEvents(m)}},{key:"_isKeyHandlerObjInTheList",value:function(f,h){var g=n.getUsersPlaform(),m=h[i.KEY_CODE],S=h.modifierKeyList;Array.isArray(m)&&(m=l.getKeyCodeArray(m)[0]);var T=l.isPlatformInTheList(h[i.PLATFORMS],g),w=T;return!T&&h[i.PLATFORMS][0]===t.internal.ALL&&(w=!0),f[i.KEY_CODE]===m&&f[i.ALT_KEY]===S[i.ALT_KEY]&&f[i.CTRL_KEY]===S[i.CTRL_KEY]&&f[i.META]===S[i.META]&&f[i.SHIFT_KEY]===S[i.SHIFT_KEY]&&w}},{key:"_preventDefault",value:function(){this._defaultPrevented=!0}},{key:"_emitExistingEvents",value:function(f){var h=f.nativeEvent,g=f.keyCode,m=f.meta,S=f.ctrlKey,T=f.shiftKey,w=f.altKey,R=r.internal.TABLE_KEY_PRESS;f.eventCallback&&f.eventCallback(R,{nativeEvent:h,keyCode:g,meta:m,ctrlKey:S,shiftKey:T,altKey:w})}}]),o}();return c},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0?t=parseFloat(e.split("rv:")[1]):e&&e.indexOf("Edge")>0?t="Edge "+parseFloat(e.split("Edge/")[1]):t="",t},_getBrowserInfo:function(e){var t,r={BROWSER:"OTHER",BROWSER_VER:"OTHER"},i,a={IE:"Microsoft Internet Explorer",FF:"Mozilla Firefox",Chrome:"Google Chrome",Safari:"Apple Safari"};if(t=this._hasNewIE(e),t)r.BROWSER=a.IE,r.BROWSER_VER=t.toString();else for(i in a)if(a.hasOwnProperty(i)&&_(i.toLowerCase())){t=_(i.toLowerCase()),r.BROWSER=a[i],r.BROWSER_VER=t.toString(),(i==="Chrome"||i==="Safari")&&(r.WEBKIT_VER=_("webkit").toString());break}return r},getSystemInfo:function(){var e={},t={};try{e.DEVICE="",e.LOCALE=l.navigator.language,e.OS=l.navigator.platform,e.PLATFORM=l.navigator.platform,e.SCREEN_RESOLUTION=l.screen.width+"x"+l.screen.height,e.WINDOW_RESOLUTION=l.innerWidth+"x"+l.innerHeight,e.USER_AGENT=l.navigator.userAgent,t=this._getBrowserInfo(l.navigator.appVersion),e=D.mixin(e,t)}catch(r){}return e},setClassName:function(e,t){if(v.add(e,"mw_type_"+(t.type||"unknownType")),v.add(e,"mw_type_Component"),t.name){var r="mw_name_"+(t.name.trim().replace(/[^a-zA-Z0-9]/g,"_")||"NO_NAME");v.contains(e,r)||(e.className=e.className.replace(/mw_name_[^ ]*/,""),v.add(e,r))}},isInFocus:function(e){return typeof l.document.activeElement!="unknown"?e===l.document.activeElement:!1},getScrollbarWidth:function(){if(n===null){var e=document.createElement("div");e.className="scrollbar-measure",e.style.width="100px",e.style.height="100px",e.style.overflow="scroll",e.style.position="absolute",e.style.top="-9999px",document.body.appendChild(e);var t=e.offsetWidth-e.clientWidth;document.body.removeChild(e),t+=2,n=t}return n}}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function e(t,r){for(var i=0;i=1?this.adaptor.setIndividualRow(S[0]):this.adaptor.setIndividualRow(null):this.adaptor.setSelectionState(S)}this._handleSelectionChangedEvent(h,m,g)}},{key:"_isSelectionChanged",value:function(f){return this.adaptor.getSelectedIdIndex(f)<0}},{key:"_handleSelectAndDeselectEvent",value:function(f,h){h?this._doesDataStoreSupportSelection?this.adaptor.setIndividualRow(f):this.adaptor.setSelectionState([f]):this._doesDataStoreSupportSelection?this.adaptor.setIndividualRow(null):this.adaptor.setSelectionState([])}},{key:"_keyPressed",value:function(f){if(f.rowId=f.rowId&&f.rowId.id,a(f)&&f.keyCode!==r.SPACE){f.keyCode===r.A&&f.nativeEvent.preventDefault();return}switch(f.keyCode){case r.ARROW_DOWN:case r.ARROW_UP:case r.ARROW_LEFT:case r.ARROW_RIGHT:case r.PAGE_DOWN:case r.PAGE_UP:case r.HOME:case r.END:case r.SPACE:this._handleSelection(f);break}}},{key:"_handleSelectionChangedEvent",value:function(f,h,g){(f!==void 0&&h||f!==void 0&&g)&&this._emitSelectionEvt()}},{key:"_emitSelectionEvt",value:function(){var f=this.adaptor.getSelectionState(),h=f.map(function(g){return{id:g}});this.emit(t.exposed.SELECTION_CHANGED,{selection:h})}},{key:"setSelection",value:function(f){if(f===null&&(f=[]),Array.isArray(f)){var h=f.map(function(g){if(g.id)return g.id;throw new Error(g+" should be a proxyNode containing an id property")});this.adaptor.setSelection(h)}else throw new Error("Expected: proxyNode array or empty array to signify no selection. Usage: setSelection([{id: 'a'}]), setSelection([])")}},{key:"getSelection",value:function(){var f=_(o.prototype.__proto__||Object.getPrototypeOf(o.prototype),"getSelection",this).call(this);return f.map(function(h){return{id:h}})}}],[{key:"adaptor",get:function(){return e}}]),o}(i);return s},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e1&&arguments[1]!==void 0?arguments[1]:!1,T=this.viewModel.getStateByKey(i.protected.PIVOT),w=this.viewModel.getStateByKey(i.protected.FOCUSED),R=void 0;T?R=T.rangeList[0]:w?R=w.rangeList[0]:R=a.range().setRows(0,0).setColumns(0,0);var O=Math.min(R.rows.start,m.rows.start),F=Math.max(R.rows.start,m.rows.start),b=a.range().setEntireRows(O,F),I=[];if(S===!0){for(var N=this.getSelectionState(),P=!0,L=0;L=T});return O?R:-1}},{key:"setDiscontiguousRow",value:function(m){this._setPivot(m),this._currentContinuousSelection=null;var S=a.range().setEntireRows(m.rows.start,m.rows.start),T=this._getSelectedRangeList().concat(),w=this.isRowSelected(S);if(w>-1){var R=c.splitRange(T[w],S);T.splice(w,1),T=T.concat(R)}else T.push(S);this.setSelectionState(T)}},{key:"_emitSelectedActionEvent",value:function(){this._emit(t.protected.TABLE_SELECTED_ACTION,{selectedRange:this.getSelectionState()})}},{key:"getSelectionState",value:function(){var m=_(h.prototype.__proto__||Object.getPrototypeOf(h.prototype),"getSelectionState",this).call(this,i.protected.SELECTED);return m?m.rangeList:null}},{key:"_handleDoubleClick",value:function(m){this._emit(t.protected.TABLE_SELECTED_ACTION,{selectedRange:this.getSelectionState()})}},{key:"setSelectionState",value:function(m){this.viewModel.setState(i.protected.SELECTED,null,this._getFittedRange(m))}},{key:"setIndividualRow",value:function(m){var S=a.range().setEntireRows(m.rows.start,m.rows.start);this._setPivot(m),this._currentContinuousSelection=null,this.setSelectionState([S])}}]),h}(e);return d},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0&&arguments[0]!==void 0?arguments[0]:{},o=c.order,d=c.column,f=c.type;o!==void 0&&d>=0&&f&&this.adaptor.sortColumn({columnIndex:d,order:o,compare:f})}},{key:"setSortIndicator",value:function(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.adaptor.setSortIndicator(c)}},{key:"emits",get:function(){return[]}}],[{key:"config",value:function(c){var o=function(d){l(f,d);function f(h){return _(this,f),v(this,(f.__proto__||Object.getPrototypeOf(f)).call(this,h,c))}return f}(a);return o}},{key:"adaptor",get:function(){return e}}]),a}(n);return r},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r0&&arguments[0]!==void 0?arguments[0]:null;return this.adaptor.copy(s)}},{key:"paste",value:function(){return this.adaptor.paste()}},{key:"exposedAPI",value:function(){return{cut:this.cut.bind(this),copy:this.copy.bind(this),paste:this.paste.bind(this)}}},{key:"exposedTreeTableAPIs",value:function(){return{cut:this.cut.bind(this),copy:this.copy.bind(this),paste:this.paste.bind(this)}}}],[{key:"adaptor",get:function(){return e}}]),i}(n);return t},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){const D={"application/atom+xml":{extensions:["atom"]},"application/java-archive":{extensions:["jar","war","ear"]},"application/javascript":{extensions:["js"]},"application/json":{extensions:["json"]},"application/mac-binhex40":{extensions:["hqx"]},"application/msword":{extensions:["doc"]},"application/octet-stream":{extensions:["bin","exe","dll","deb","dmg","iso","img","msi","msp","msm"]},"application/pdf":{extensions:["pdf"]},"application/postscript":{extensions:["ps","eps","ai"]},"application/rss+xml":{extensions:["rss"]},"application/rtf":{extensions:["rtf"]},"application/vnd.apple.mpegurl":{extensions:["m3u8"]},"application/vnd.google-earth.kml+xml":{extensions:["kml"]},"application/vnd.google-earth.kmz":{extensions:["kmz"]},"application/vnd.ms-excel":{extensions:["xls"]},"application/vnd.ms-fontobject":{extensions:["eot"]},"application/vnd.ms-powerpoint":{extensions:["ppt"]},"application/vnd.oasis.opendocument.graphics":{extensions:["odg"]},"application/vnd.oasis.opendocument.presentation":{extensions:["odp"]},"application/vnd.oasis.opendocument.spreadsheet":{extensions:["ods"]},"application/vnd.oasis.opendocument.text":{extensions:["odt"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{extensions:["pptx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{extensions:["xlsx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{extensions:["docx"]},"application/vnd.wap.wmlc":{extensions:["wmlc"]},"application/wasm":{extensions:["wasm"]},"application/x-7z-compressed":{extensions:["7z"]},"application/x-cocoa":{extensions:["cco"]},"application/x-java-archive-diff":{extensions:["jardiff"]},"application/x-java-jnlp-file":{extensions:["jnlp"]},"application/x-makeself":{extensions:["run"]},"application/x-perl":{extensions:["pl","pm"]},"application/x-pilot":{extensions:["prc","pdb"]},"application/x-rar-compressed":{extensions:["rar"]},"application/x-redhat-package-manager":{extensions:["rpm"]},"application/x-sea":{extensions:["sea"]},"application/x-shockwave-flash":{extensions:["swf"]},"application/x-stuffit":{extensions:["sit"]},"application/x-tcl":{extensions:["tcl","tk"]},"application/x-x509-ca-cert":{extensions:["der","pem","crt"]},"application/x-xpinstall":{extensions:["xpi"]},"application/xhtml+xml":{extensions:["xhtml"]},"application/xspf+xml":{extensions:["xspf"]},"application/zip":{extensions:["zip"]},"audio/midi":{extensions:["mid","midi","kar"]},"audio/mpeg":{extensions:["mp3"]},"audio/ogg":{extensions:["ogg"]},"audio/x-m4a":{extensions:["m4a"]},"audio/x-realaudio":{extensions:["ra"]},"font/woff":{extensions:["woff"]},"font/woff2":{extensions:["woff2"]},"image/gif":{extensions:["gif"]},"image/jpeg":{extensions:["jpeg","jpg"]},"image/png":{extensions:["png"]},"image/*":{extensions:["png"]},"image/svg+xml":{extensions:["svg","svgz"]},"image/tiff":{extensions:["tif","tiff"]},"image/vnd.wap.wbmp":{extensions:["wbmp"]},"image/webp":{extensions:["webp"]},"image/x-icon":{extensions:["ico"]},"image/x-jng":{extensions:["jng"]},"image/x-ms-bmp":{extensions:["bmp"]},"text/css":{extensions:["css"]},"text/html":{extensions:["html","htm","shtml"]},"text/mathml":{extensions:["mml"]},"text/plain":{extensions:["txt"]},"text/vnd.sun.j2me.app-descriptor":{extensions:["jad"]},"text/vnd.wap.wml":{extensions:["wml"]},"text/x-component":{extensions:["htc"]},"text/xml":{extensions:["xml"]},"video/3gpp":{extensions:["3gpp","3gp"]},"video/mp2t":{extensions:["ts"]},"video/mp4":{extensions:["mp4"]},"video/mpeg":{extensions:["mpeg","mpg"]},"video/quicktime":{extensions:["mov"]},"video/webm":{extensions:["webm"]},"video/x-flv":{extensions:["flv"]},"video/x-m4v":{extensions:["m4v"]},"video/x-mng":{extensions:["mng"]},"video/x-ms-asf":{extensions:["asx","asf"]},"video/x-ms-wmv":{extensions:["wmv"]},"video/x-msvideo":{extensions:["avi"]}};return{convert(_){if(D[_]){const v=D[_].extensions;if(v.length>0)return"file.".concat(v[0])}return"file"}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return Object.freeze({TEXT_HTML:"text/html",TEXT_PLAIN:"text/plain",TEXT_URI_LIST:"text/uri-list",IMAGE:"image/*",INDETERMINATE_TYPE:"INDETERMINATE_TYPE",FILES:"Files",KIND_FILE:"file",KIND_STRING:"string",ACTION:"application/mw-clipboard-action"})},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){return{UNKNOWN:"unknown",LONG_POLLING:"long-polling",WEBSOCKET:"websocket"}},C,x),C.exports=E},function(C,x,u){var A;A=function(){window.org=window.org||{};var E=window.org;return E.cometd={},E.cometd.JSON={},E.cometd.JSON.toJSON=E.cometd.JSON.fromJSON=function(D){throw"Abstract"},E.cometd.Utils={},E.cometd.Utils.isString=function(D){return D==null?!1:typeof D=="string"||D instanceof String},E.cometd.Utils.isArray=function(D){return D==null?!1:D instanceof Array},E.cometd.Utils.inArray=function(D,_){for(var v=0;v<_.length;++v)if(D===_[v])return v;return-1},E.cometd.Utils.setTimeout=function(D,_,v){return window.setTimeout(function(){try{_()}catch(l){D._debug("Exception invoking timed function",_,l)}},v)},E.cometd.Utils.clearTimeout=function(D){window.clearTimeout(D)},E.cometd.TransportRegistry=function(){var D=[],_={};this.getTransportTypes=function(){return D.slice(0)},this.findTransportTypes=function(v,l,n){for(var e=[],t=0;t0;){var d=e[0],f=d[0],h=d[1];if(f.url===o.url&&f.sync===o.sync){e.shift(),o.messages=o.messages.concat(f.messages),this._debug("Coalesced",f.messages.length,"messages from request",h.id);continue}break}}function r(o,d){if(this.transportSend(o,d),d.expired=!1,!o.sync){var f=this.getConfiguration().maxNetworkDelay,h=f;d.metaConnect===!0&&(h+=this.getAdvice().timeout),this._debug("Transport",this.getType(),"waiting at most",h,"ms for the response, maxNetworkDelay",f);var g=this;d.timeout=this.setTimeout(function(){d.expired=!0,d.xhr&&d.xhr.abort();var m="Request "+d.id+" of transport "+g.getType()+" exceeded "+h+" ms max network delay";g._debug(m),g.complete(d,!1,d.metaConnect),o.onFailure(d.xhr,o.messages,"timeout",m)},h)}}function i(o){var d=++v,f={id:d,metaConnect:!1};n.length=0&&n.splice(f,1),e.length>0){var h=e.shift(),g=h[0],m=h[1];if(this._debug("Transport dequeued request",m.id),d)this.getConfiguration().autoBatch&&t.call(this,g),i.call(this,g),this._debug("Transport completed request",o.id,g);else{var S=this;this.setTimeout(function(){S.complete(m,!1,m.metaConnect),g.onFailure(m.xhr,g.messages,"error","Previous request failed")},0)}}}_.complete=function(o,d,f){f?a.call(this,o):s.call(this,o,d)},_.transportSend=function(o,d){throw"Abstract"},_.transportSuccess=function(o,d,f){d.expired||(this.clearTimeout(d.timeout),this.complete(d,!0,d.metaConnect),f&&f.length>0?o.onSuccess(f):o.onFailure(d.xhr,o.messages,"Empty HTTP response"))},_.transportFailure=function(o,d,f,h){d.expired||(this.clearTimeout(d.timeout),this.complete(d,!1,d.metaConnect),o.onFailure(d.xhr,o.messages,f,h))};function c(o){if(l!==null)throw"Concurrent metaConnect requests not allowed, request id="+l.id+" not yet completed";var d=++v;this._debug("Transport",this.getType(),"metaConnect send, request",d,"envelope",o);var f={id:d,metaConnect:!0};r.call(this,o,f),l=f}return _.send=function(o,d){d?c.call(this,o):i.call(this,o)},_.abort=function(){D.abort();for(var o=0;o0;){var a=E.cometd.JSON.toJSON(l.messages.slice(t,t+r)),s=l.url.length+encodeURI(a).length;if(s>v){if(r===1){var c="Bayeux message too big ("+s+" bytes, max is "+v+") for transport "+this.getType();this.setTimeout(function(){e.transportFailure(l,n,"error",c)},0);return}--r;continue}i.push(r),t+=r,r=l.messages.length-t}var o=l;if(i.length>1){var d=0,f=i[0];this._debug("Transport",this.getType(),"split",l.messages.length,"messages into",i.join(" + ")),o=this._mixin(!1,{},l),o.messages=l.messages.slice(d,f),o.onSuccess=l.onSuccess,o.onFailure=l.onFailure;for(var h=1;h0&&(g=this.setTimeout(function(){g=null,i||(h._debug("Transport",h.getType(),"timed out while connecting to URL",f,":",m,"ms"),h.onClose(1002,"Connect Timeout"))},m));var S=new E.cometd.WebSocket(f),T=function(){if(h._debug("WebSocket opened",S),g&&(h.clearTimeout(g),g=null),S!==r){h._debug("Ignoring open event, WebSocket",r);return}h.onOpen()},w=function(O){var F=O?O.code:1e3,b=O?O.reason:void 0;if(h._debug("WebSocket closed",F,"/",b,S),g&&(h.clearTimeout(g),g=null),S!==r){h._debug("Ignoring close event, WebSocket",r);return}h.onClose(F,b)},R=function(O){if(h._debug("WebSocket message",O,S),S!==r){h._debug("Ignoring message event, WebSocket",r);return}h.onMessage(O)};S.onopen=T,S.onclose=w,S.onerror=function(){w({code:1002})},S.onmessage=R,r=S,this._debug("Transport",this.getType(),"configured callbacks on",S)}function o(f,h){var g=E.cometd.JSON.toJSON(f.messages);r.send(g),this._debug("Transport",this.getType(),"sent",f,"metaConnect =",h);var m=this.getConfiguration().maxNetworkDelay,S=m;h&&(S+=this.getAdvice().timeout,a=!0);for(var T=[],w=0;w=0){R=!0,I.splice(N,1);var P=e[b][0],L=e[b][1];delete e[b],I.length>0&&(e[I.join(",")]=[P,L]);break}}}R&&this._debug("Transport",this.getType(),"removed envelope, envelopes",e),s.call(this,g),h&&r.close(1e3,"Disconnect")},_.onClose=function(f,h){this._debug("Transport",this.getType(),"closed",f,h,r),l=n;for(var g in t)this.clearTimeout(t[g]);t={};for(var m in e)if(e[m]){const S=e[m][0];e[m][1]&&(a=!1),S.onFailure(r,S.messages,"closed "+f+"/"+h)}e={},r!==null&&i&&r.close(1e3,"Close"),i=!1,r=null},_.registered=function(f,h){D.registered(f,h),v=h},_.accept=function(f,h,g){return l&&!!E.cometd.WebSocket&&v.websocketEnabled!==!1},_.send=function(f,h){this._debug("Transport",this.getType(),"sending",f,"metaConnect =",h);for(var g=[],m=0;m0)_._info("Appending message type to URI "+ze+rt+" is not supported, disabling 'appendMessageTypeToURL' configuration"),R.appendMessageTypeToURL=!1;else{var et=ze.split("/"),It=et.length-1;ze.match(/\/$/)&&(It-=1),et[It].indexOf(".")>=0&&(_._info("Appending message type to URI "+ze+" is not supported, disabling 'appendMessageTypeToURL' configuration"),R.appendMessageTypeToURL=!1)}}function N(){for(var ne in o)for(var Te=o[ne],xe=Te.length-1;xe>=0;--xe){var ze=Te[xe];ze&&!ze.listener&&(Te.splice(xe,1),_._debug("Removed subscription",ze,"for channel",ne))}}function P(ne){t!==ne&&(_._debug("Status",t,"->",ne),t=ne)}function L(){return t==="disconnecting"||t==="disconnected"}function k(){return++r}function W(ne,Te,xe,ze,rt){try{return Te.call(ne,ze)}catch(It){_._debug("Exception during execution of extension",xe,It);var et=_.onExtensionException;if(F(et)){_._debug("Invoking extension exception callback",xe,It);try{et.call(_,It,xe,rt,ze)}catch(Vt){_._info("Exception during execution of exception callback in extension",xe,Vt)}}return ze}}function K(ne){for(var Te=0;Te0)for(var ze=xe.length-1;ze>=0;--ze){var rt=xe[ze];try{rt.callback.call(rt.scope,Te)}catch(It){_._debug("Exception during notification",rt,Te,It);var et=_.onListenerException;if(F(et)){_._debug("Invoking listener exception callback",rt,It);try{et.call(_,It,rt.handle,rt.listener,Te)}catch(Vt){_._info("Exception during execution of listener callback",rt,Vt)}}}}}function j(ne,Te){G(ne,Te);for(var xe=ne.split("/"),ze=xe.length-1,rt=ze;rt>0;--rt){var et=xe.slice(0,rt).join("/")+"/*";rt===ze&&G(et,Te),et+="*",G(et,Te)}}function Y(){f!==null&&E.cometd.Utils.clearTimeout(f),f=null}function z(ne){Y();var Te=g.interval+d;_._debug("Function scheduled in",Te,"ms, interval =",g.interval,"backoff =",d,ne),f=E.cometd.Utils.setTimeout(_,ne,Te)}var Q,X;function J(ne,Te,xe,ze){for(var rt=0;rt0||c===!0?s.push(ne):J(!1,[ne],!1)}this.send=$;function q(){d=0}function te(){d0&&J(!1,ne,!1)}function de(){if(--a,a<0)throw"Calls to startBatch() and endBatch() are not paired";a===0&&!L()&&!c&&le()}function De(){if(!L()){var ne={channel:"/meta/connect",connectionType:e.getType()};w||(ne.advice={timeout:0}),P("connecting"),_._debug("Connect sent",ne),J(!1,[ne],!0,"connect"),P("connected")}}function Se(){P("connecting"),z(function(){De()})}function pe(ne){ne&&(g=_._mixin(!1,{},R.advice,ne),_._debug("New advice",g))}function ie(ne){Y(),ne&&e.abort(),i=null,P("disconnected"),a=0,q(),s.length>0&&(X.call(_,void 0,s,"error","Disconnected"),s=[])}function ee(ne){i=null,N(),L()?(n.reset(),pe(R.advice)):pe(_._mixin(!1,g,{reconnect:"retry"})),a=0,c=!0,m=ne;var Te="1.0",xe=n.findTransportTypes(Te,l,R.url),ze={version:Te,minimumVersion:"0.9",channel:"/meta/handshake",supportedConnectionTypes:xe,advice:{timeout:g.timeout,interval:g.interval}},rt=_._mixin(!1,{},m,ze);e=n.negotiateTransport(xe,Te,l,R.url),_._debug("Initial transport is",e.getType()),P("handshaking"),_._debug("Handshake sent",rt),J(!1,[rt],!1,"handshake")}function me(){P("handshaking"),c=!0,z(function(){ee(m)})}function ce(ne){j("/meta/handshake",ne),j("/meta/unsuccessful",ne);var Te=!L()&&g.reconnect!=="none";Te?(te(),me()):ie(!1)}function ve(ne){if(ne.successful){i=ne.clientId;var Te=n.negotiateTransport(ne.supportedConnectionTypes,ne.version,l,R.url);if(Te===null)throw"Could not negotiate transport with server; client "+n.findTransportTypes(ne.version,l,R.url)+", server "+ne.supportedConnectionTypes;e!==Te&&(_._debug("Transport",e,"->",Te),e=Te),c=!1,le(),ne.reestablish=T,T=!0,j("/meta/handshake",ne);var xe=L()?"none":g.reconnect;switch(xe){case"retry":q(),Se();break;case"none":ie(!1);break;default:throw"Unrecognized advice action "+xe}}else ce(ne)}function Oe(ne,Te){ce({successful:!1,failure:!0,channel:"/meta/handshake",request:Te,xhr:ne,advice:{reconnect:"retry",interval:d}})}function Ye(ne){j("/meta/connect",ne),j("/meta/unsuccessful",ne);var Te=L()?"none":g.reconnect;switch(Te){case"retry":Se(),te();break;case"handshake":n.reset(),q(),me();break;case"none":ie(!1);break;default:throw"Unrecognized advice action"+Te}}function nt(ne){if(w=ne.successful,w){j("/meta/connect",ne);var Te=L()?"none":g.reconnect;switch(Te){case"retry":q(),Se();break;case"none":ie(!1);break;default:throw"Unrecognized advice action "+Te}}else Ye(ne)}function Dt(ne,Te){w=!1,Ye({successful:!1,failure:!0,channel:"/meta/connect",request:Te,xhr:ne,advice:{reconnect:"retry",interval:d}})}function wt(ne){ie(!0),j("/meta/disconnect",ne),j("/meta/unsuccessful",ne)}function Ft(ne){ne.successful?(ie(!1),j("/meta/disconnect",ne)):wt(ne)}function St(ne,Te){wt({successful:!1,failure:!0,channel:"/meta/disconnect",request:Te,xhr:ne,advice:{reconnect:"none",interval:0}})}function xt(ne){j("/meta/subscribe",ne),j("/meta/unsuccessful",ne)}function zt(ne){ne.successful?j("/meta/subscribe",ne):xt(ne)}function tn(ne,Te){xt({successful:!1,failure:!0,channel:"/meta/subscribe",request:Te,xhr:ne,advice:{reconnect:"none",interval:0}})}function Gt(ne){j("/meta/unsubscribe",ne),j("/meta/unsuccessful",ne)}function un(ne){ne.successful?j("/meta/unsubscribe",ne):Gt(ne)}function pn(ne,Te){Gt({successful:!1,failure:!0,channel:"/meta/unsubscribe",request:Te,xhr:ne,advice:{reconnect:"none",interval:0}})}function Ln(ne){var Te=ne.id;!Te&&ne.request&&(Te=ne.request.id);var xe=S[Te];F(xe)&&(delete S[Te],xe.call(_,ne))}function ue(ne){Ln(ne),j("/meta/publish",ne),j("/meta/unsuccessful",ne)}function Ie(ne){ne.successful===void 0?ne.data!==void 0&&ne.data!==null?j(ne.channel,ne):_._debug("Unknown message",ne):ne.successful?(Ln(ne),j("/meta/publish",ne)):ue(ne)}function We(ne,Te){ue({successful:!1,failure:!0,channel:Te.channel,request:Te,xhr:ne,advice:{reconnect:"none",interval:0}})}function ot(ne){if(ne=K(ne),ne!=null){pe(ne.advice);var Te=ne.channel;switch(Te){case"/meta/handshake":ve(ne);break;case"/meta/connect":nt(ne);break;case"/meta/disconnect":Ft(ne);break;case"/meta/subscribe":zt(ne);break;case"/meta/unsubscribe":un(ne);break;default:Ie(ne);break}}}this.receive=ot,Q=function(ne){_._debug("Received",ne);for(var Te=0;Te{_.removeEventListener(v,l,n)}},copy:function(_){const v=document.activeElement;_.select(),_.focus(),_.setSelectionRange(0,_.value.length);let l=document.execCommand("copy");return v&&v.focus(),l},destroy:function(_){_.remove()}}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r0?f=f.concat(g):f=f.concat([{}])}),f}},{key:"_convertDSCriteriaToViewCriteria",value:function(o){var d=this._columnDataMapper.getMappedViewIndicesForDataIndex(o.columnIndex);return Object.assign({},o,{columnIndex:d})}},{key:"_filterSortStateAgainstSortConfig",value:function(o){var d=this,f=[];return o.forEach(function(h){if(!Array.isArray(h.columnIndex)){f.push({});return}var g=[];h.columnIndex.forEach(function(m){d._doesSortTypeMatchWithConfiguration(Object.assign({},h,{columnIndex:m}))&&g.push(m)}),f.push(Object.assign({},h,{columnIndex:g}))}),f}},{key:"_determineOneColumnForEachSortCriteria",value:function(o){var d=[],f=this._getViewSortArrowColumn();return o.forEach(function(h){if(!Array.isArray(h.columnIndex)){d.push({});return}var g=h.columnIndex[0];h.columnIndex.indexOf(f)>=0&&(g=f),d.push(Object.assign({},h,{columnIndex:g}))}),d}},{key:"_getViewSortArrowColumn",value:function(){var o=this._getPreviousSortState();return o&&o.value?o.rangeList[0].columns.start:-1}},{key:"_doesSortTypeMatchWithConfiguration",value:function(o){return o.compare===this._getSortOrderConfiguredForColumnIndex(o.columnIndex)}},{key:"_getSortOrderConfiguredForColumnIndex",value:function(o){if(!Number.isInteger(o))return i;var d=this._columnMetaData.getHeaderMetaData()[o],f=d.parentId,h=this.getStateByKey(e.protected.GROUPED_COLUMN_HEADERS);return f===void 0||h&&h.value===!1?d.sortType:this._getSortTypeForParentId(f)}},{key:"_getSortTypeForParentId",value:function(o){var d=i;return this._columnSpanningMetaData.forEach(function(f){f.forEach(function(h){h.forEach(function(g){g&&g.value&&g.value[o]&&(d=g.value[o].sortType)})})}),d}},{key:"clearSortState",value:function(o){this._sortState=null,this.deleteState(e.protected.SORTED),this.deleteColumnMetaData(e.protected.SORTED,o.columns.start)}},{key:"clearCurrentSortState",value:function(){var o=this.getStateByKey(e.protected.SORTED);o&&this.clearSortState(o.rangeList[0])}},{key:"_didSortStateChange",value:function(o){if(!Array.isArray(this._sortState)||this._sortState.length!==o.length)return!0;var d=!1;return this._sortState.forEach(function(f,h){d||(f.columnIndex!==o[h].columnIndex||f.order!==o[h].order||f.compare!==o[h].compare)&&(d=!0)}),d}},{key:"_emitViewDataChanged",value:function(){var o=this,d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},f=this.getStateByKey("viewBuffer");if(f){var h=this._columnMetaData.getUnifiedMetaData(),g=this._rowMetaData.getUnifiedMetaData(),m=this._columnMetaData.getMetaDataRangeList(),S=this._rowMetaData.getMetaDataRangeList();if(this._viewData&&this._viewData.length===m.length&&this._viewData.length===S.length){for(var T=0;Tthis.dataSize.columns.end)throw new Error("columnIndex is out of bounds");var g={columnIndex:this._columnDataMapper.viewToDataIndex(h.columnIndex),order:h.order,compare:h.compare};d.push(g)}this._dataModel.sort(d,this._getSortOptions())}},{key:"_getSortOptions",value:function(){var o=!1,d=this.getStateByKey(e.protected.SORT_BEHAVIOUR);return d&&d.value===!0&&(o=!0),{keepSorted:o}}},{key:"setColumnHeaders",value:function(o){if(!o||o.length===0){if(this._columnDataMapper.viewColumnIndexToDataIndex=[],this._viewColumnRange=this._dataModel,this._dataModel.setHeaders)this._dataModel.setHeaders(o);else{var d=[t.range().setColumns(0,-1).setRows(0,1/0)];this.setState("columnHeaders",[],d)}this._columnMetaData.setViewHeaders([]),this._emitDataSizeChanged();return}var f=[t.range().setColumns(0,o.length-1).setRows(0,1/0)];this._viewColumnRange={dataSize:f[0]},this._columnDataMapper.viewColumnIndexToDataIndex=o.map(function(h){return h.dataIndex}),this._columnMetaData.setViewHeaders(o),this._dataModel.setHeaders?this._dataModel.setHeaders(o):this.setState("columnHeaders",o,f)}},{key:"setColumnHeaderConfig",value:function(o){this._columnHeaderConfig=Object.assign({},o);var d=!!(o&&o.displayIndices);this.setState(e.DISPLAY_COLUMN_INDEX,d);var f=!!(o&&o.displayColumnLabel);this.setState(e.DISPLAY_COLUMN_LABEL,f);var h=!!(o&&o.hideColumnHeader);this.setState(e.HIDE_COLUMN_HEADER,h)}},{key:"getColumnHeaderConfig",value:function(){return this._columnHeaderConfig}},{key:"setRowHeaderConfig",value:function(o){this._rowHeaderConfig=o;var d=!!(o&&o.displayIndices),f=!!(o&&o.displayRowLabel);this.setState(e.DISPLAY_ROW_HEADER_INDICES,d),this.setState(e.displayRowHeader,f);var h=o&&o.rowHeaderWidth||0;this.setState(e.rowHeaderWidth,h)}},{key:"getRowHeaderConfig",value:function(){return this._rowHeaderConfig}},{key:"setSpanningHeaders",value:function(o){this._dataModel.setSpanningHeaders&&this._dataModel.setSpanningHeaders(o)}},{key:"getSpanningHeaders",value:function(){return this._dataModel.getSpanningHeaders?this._dataModel.getSpanningHeaders():{}}},{key:"updateHeader",value:function(o){return this._dataModel.updateHeader(o)}},{key:"updateRowHeader",value:function(o,d){return this._dataModel.updateRowHeader(o,d)}},{key:"getColumnHeaders",value:function(){return this._dataModel.getHeaders?this._dataModel.getHeaders()||[]:this.getStateByKey("columnHeaders").value}},{key:"getColumnCount",value:function(){var o=this.getColumnHeaders();return o.length||this.dataSize.columns.count}},{key:"getRowCount",value:function(){return this.dataSize.rows.count}},{key:"setState",value:function(o,d){var f=this,h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];if(["all","keys"].indexOf(o)>=0)throw new Error("The key '"+o+"' is reserved, and cannot be used to setState");var g=h.slice(),m={value:d,rangeList:g,pointerList:[]};this._deleteState(o),this._stateCategoryIndex[o]=m,o===e.protected.SORTED&&this._setPreviousSortState(d,h),g.forEach(function(S){var T=f._stateRangeIndex.insert(S,o);m.pointerList.push(T)}),this._emit(o,this.getStateByKey(o))}},{key:"_setPreviousSortState",value:function(o,d){this._previousSortState=Object.create({value:o,rangeList:d})}},{key:"_getPreviousSortState",value:function(){return this._previousSortState}},{key:"deleteState",value:function(o){this._deleteState(o),this._emit(o)}},{key:"_deleteState",value:function(o){var d=this;if(!!this._stateCategoryIndex[o]){var f=this._stateCategoryIndex[o];delete this._stateCategoryIndex[o],f.pointerList.forEach(function(h){d._stateRangeIndex.remove(h)})}}},{key:"getStateByKey",value:function(o){var d=this._stateCategoryIndex[o];return d?{value:d.value,rangeList:d.rangeList.slice()}:null}},{key:"getStateByRangeList",value:function(o){var d=this,f={};return f.keys=[],o.forEach(function(h){d._stateRangeIndex.forEach(function(g){var m=g.key,S=g.value;f[S]||t.doesRangeIntersect(h,m)&&(f[S]=d.getStateByKey(S),f[S].firstMatch=m,f.keys.push(S))})}),f}},{key:"on",value:function(o,d){var f=this;this._events[o]||(this._events[o]=[]),this._events[o].push(d);var h={};return h.remove=function(){var g=f._events[o].indexOf(d);f._events[o].splice(g,1),h.remove=function(){return null}},h}},{key:"_addOwnListeners",value:function(o){this._ownedListeners.push(o)}},{key:"_removeOwnListeners",value:function(){this._ownedListeners.forEach(function(o){return o.remove()})}},{key:"destroy",value:function(){this._removeOwnListeners(),this._dataModel=null,this._events={},this._sortState=null,this._previousSortState={},this._stateCategoryIndex={}}},{key:"_emit",value:function(o){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},f=this._events.all,h=this._events[o],g=Object.getOwnPropertyNames(d),m={};g.forEach(function(T){m[T]=d[T]}),m.eventName=o;var S=function(w){w&&w.forEach(function(R){R(m)})};S(h),S(f)}},{key:"_viewColumnRange",set:function(o){this._viewColumnObject=o},get:function(){return this._viewColumnObject.dataSize.columns}},{key:"viewBuffer",set:function(o){var d=o.size,f=o.rangeList,h=f.slice(),g=this._columnDataMapper.viewToModelRangeMapping(h);this.setState("viewBuffer",d,h),this._manageDataModelPaging(g)},get:function(){var o=this.getStateByKey("viewBuffer");return{size:o.value,rangeList:o.rangeList}}},{key:"viewPort",set:function(o){var d=o.size,f=o.rangeList;this.setState("viewPort",d,f)},get:function(){var o=this.getStateByKey("viewPort");return{size:o.value,rangeList:o.rangeList}}},{key:"dataSize",get:function(){var o=t.range();return o=o.setColumns(this._viewColumnRange.start,this._viewColumnRange.end),o=o.setRows(this._dataModel.dataSize.rows.start,this._dataModel.dataSize.rows.end),o}}]),s}();return a},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e4&&arguments[4]!==void 0?arguments[4]:{},R=new g(S),O=new m(R);O.setState("lookAheadRowBuffer",3),O.viewPort={size:{left:0,top:0,width:0,height:0},rangeList:[T.range().setRows(0,11).setColumns(0,5)]};var F=w.CellComponent,b=w.RowComponent,I=w.TBodyComponent,N=w.TooltipComponent,P=w.widgetType;return O.setState(i.protected.component.CELL,F||v),O.setState(i.protected.component.ROW,b||l),O.setState(i.protected.component.TBODY,I||n),O.setState(i.protected.WIDGET_TYPE,P||"Table"),O.setState(i.protected.component.TOOLTIP,N||e),O.setState(i.protected.component.FLOATING_CONTENT,t),O}},{key:"initializeTableView",value:function(g,m,S,T,w){var R=new s(g),O=[new c({viewPortItem:g.viewPort.rangeList[0],viewModel:g,dataSize:R})],F={viewModel:g,dataStore:m,viewPortList:O,dataSize:R,options:w};a.parseViewModelWithConfig({viewModel:g,dataSize:R,columnModel:w.columnModel,attributes:w.attributes});var b=g.getStateByKey(i.protected.READONLY_VISUALDESIGN),I=b&&b.value?b.value:void 0;I===void 0&&(a.isEditorConfigured(g.getColumnHeaders())||g.setState(i.protected.READONLY_VISUALDESIGN,!1));var N=Object.keys(S).map(function(L){return new S[L](F)}),P=new r({viewModel:g,options:w,viewPortList:O,dataStore:m,controllers:N,pluginEnum:T});return P.initializeTable(),P}},{key:"mixinFacade",value:function(g,m,S){S=S||"exposedAPI",m.forEach(function(T){if(T[0][S]){var w=T[0][S]();for(var R in w){g[R]=w[R];var O=Object.getOwnPropertyDescriptor(w,R);(O.set||O.get)&&Object.defineProperty(g,R,Object.getOwnPropertyDescriptor(w,R))}}})}},{key:"facadeListeners",value:function(g,m,S){S=S||"emits",m.forEach(function(T){T[0][S]&&T[0][S].forEach(function(w){g._eventMap[w]=T[0]})})}},{key:"registerRenderer",value:function(g,m,S,T){return o.curry(f._updateRegistration)("renderer")(g,m,S,T)}},{key:"registerEditor",value:function(g,m,S,T){return o.curry(f._updateRegistration)("editor")(g,m,S,T)}},{key:"setupRegistration",value:function(g,m){g._registrationMap={renderer:{},editor:{}},m.setState(i.REGISTRATION,g._registrationMap)}},{key:"_updateRegistration",value:function(g){return function(m,S,T,w){m._registrationMap[g][T]=w,S.setState(i.REGISTRATION,m._registrationMap)}}}]),f}();return d},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(229),u(33),u(3)],E=u.dj.d(A,function(D,_,v){var l=function(e,t){var r=_.isDeepEqual(e.value,t.value),i=_.isDeepEqual(e.metaData,t.metaData),a=e.useEditorRendererDataFields===t.useEditorRendererDataFields,s=e.renderer===t.renderer;return r&&i&&a&&s};return v.memo(D,l)},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(76),u(148),u(84),u(44),u(3)],E=u.dj.d(A,function(D,_,v,l,n){var e=function(i,a,s,c){if(i){var o=i.getDomNode(s,c);return a&&(o.className=a),o}return null},t=function(i){var a=n.useRef(),s=i.renderer,c=i.eventCallback,o=i.metaData,d=i.treeNodeRendererClassName,f=d===void 0?"":d,h=i.noToolTip,g=h===void 0?!1:h,m=i.treeCellContentClassName,S=m===void 0?"":m,T=i.useEditorRendererDataFields,w=i.value,R=D(c),O=R.handleMouseOverWithRenderer,F=l().getDisplayValue(w,v.RENDERER,T),b=g?function(){}:function(N){return O(N.target,"customRender",F,s)};n.useLayoutEffect(function(){var N=e(s,S,F,o);N&&a.current&&!a.current.firstChild?a.current.appendChild(N):N&&a.current&&a.current.firstChild&&_.replaceFirstNode(a.current,N,a.current.firstChild)},[F,s,o]);var I=[f,"mw-table-cell-span"];return n.createElement("span",{className:I.join(" "),ref:a,onMouseOver:b})};return t},C,x),C.exports=E},function(C,x,u){var A,E,D=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(l){return typeof l}:function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},_=function(){function l(n,e){for(var t=0;t8&&arguments[8]!==void 0?arguments[8]:_.internal.INTERACTIVE_CELL_CLICK,m={},S=c.handleAction({value:a.value,target:i.target});if(l.isReadOnly(h))return!1;if(f){var T=v.hasModifierKey(i);if(T)return;var w=f.value;S=c.handleAction(a.value,{actionName:"click",target:i.target}),m={node:w,row:o||0,column:d||0,oldValue:S.oldValue,newValue:S.newValue,metaData:a.metaData},S.hasChanged&&s(g,m)}else S&&(m={row:o,column:d,oldValue:S.oldValue,newValue:S.newValue},s(g,m))}function r(i){i.target.hasAttribute("data-clickable")&&i.stopPropagation()}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(4),u(2),u(147),u(3)],E=u.dj.d(A,function(D,_,v,l){"use strict";var n=function(t){var r=function(c,o,d,f,h){var g=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},m=a(c,o,d,f,g);!m||(m.trigger=h,t(D.protected.NODE_NOTIFY,{publisherFn:function(){return m},publisherId:_.protected.publisher.CELL_ENTER,noRender:!0}))},i=function(c){t(D.protected.NODE_NOTIFY,{publisherFn:function(){return{refNode:c}},publisherId:_.publisher.FLOATING_CONTENT_DISMISS,noRender:!0})},a=function(c,o,d,f){var h=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{},g=f.metadata.floatingContent,m=g.component,S=g.config,T=g.displayCriteria;if(!!S){var w=c==="treeCell"?h:o,R=v.getNodeForTruncationCheck(c,w,d),O=v.isTruncated(R),F=S(f,O);if(!(!F||Object.keys(F).length===0))return{refNode:o,component:m,configObj:F,displayCriteria:T,isTruncated:O}}};return l.useLayoutEffect(function(){return function(){return i(null)}},[]),{setFloatingContent:r,removeFloatingContent:i}};return n},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(31),u(77),u(99),u(3)],E=u.dj.d(A,function(D,_,v,l){"use strict";var n={0:"",1:"mw-table-row-selected"},e="mw-table-row",t=function(s){var c=l.useContext(_),o=c.dndEnabled,d=s.selectionMap,f=d===void 0?{rows:function(){return 0}}:d,h=s.rowIndex,g=s.className,m=s.customProps,S=s.tableSelectionById,T=s.rowMetaData,w={value:{}};if(S){var R=m||{},O=R.rowMetaData,F=R.viewDataRowRange;O&&h<=F.end&&h>=F.start&&(w=O(h)),m.cellMetaData=w}var b=[];o&&f.rows(h)&&b.push(D.SOURCE_SELECTOR);var I=T&&T[0](h),N=I&&I.value&&I.value.rowHeight,P=r(f,h,g);if(N&&s.customProps){var L=N==="auto";L&&P.push("mw-table-fit-content-row"),s.customProps.customHeight=N==="auto"?N:N+"px"}var k=i(s,b);return l.createElement("tr",{role:"row","aria-rowindex":h,"data-test-id":h,"data-row-index":h,"data-row-id":w.value.id,customProps:m,className:P.join(" ")},k)};return t;function r(a,s,c){var o=[e];return o.push(n[a.rows(s)]),c&&o.push(c),o}function i(a,s){var c=a.rowIndex,o=a.data,d=a.focused,f=d===void 0?{}:d,h=a.getEditor,g=a.getRenderer,m=a.getInteractiveRenderer,S=a.setInteractiveRenderer,T=a.customProps,w=a.eventCallback,R=a.headers,O=a.startCol,F=a.endCol,b=a.logicalRowHeight,I=a.focusCached,N=a.component,P=a.editTrigger,L=a.editState,k=a.selectionMap,W=a.resizeSelection,K=a.editValidation,V=a.editProcessing,G=a.readOnlyVisualDesign,j=a.registration,Y=a.displaySearch,z=a.numberOfGutters,Q=a.checkboxTreetable,X=a.useEditorRendererDataFields,J=a.tableSelectionById,$=void 0;J&&($=T.cellMetaData.value);for(var q=[],te=O;te<=F;te++){var oe=te-O,le=R[oe]?R[oe]:{},de=le?le.styleData:{},De=void 0;if(le.parentId){var Se={parentId:le.parentId,colIndex:te,startCol:O,endCol:F,headerIndex:oe};De=v.getGroupCellAttribute(Se,R)}var pe={minWidth:de.minWidth,maxWidth:de.maxWidth,width:de.width,height:T.customHeight?T.customHeight:b+"px",minHeight:b+"px"},ie=le?le.readonly:!1;q.push(l.createElement(N.cell,{key:te,styleData:pe,rowIndex:c,colIndex:te,rowId:$&&$.id,additionalClass:s,data:o,focused:f,focusCached:I,getEditor:h,getRenderer:g,displaySearch:Y,getInteractiveRenderer:m,setInteractiveRenderer:S,editValidation:K,editProcessing:V,customProps:T,eventCallback:w,editTrigger:P,editState:L,groupAttr:De,selectionMap:k,registration:j,numberOfGutters:z,checkboxTreetable:Q,tableSelectionById:J,useEditorRendererDataFields:X,resizeSelection:W,readOnlyVisualDesign:G,readonly:ie}))}return q}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r0&&arguments[0]!==void 0?arguments[0]:0;return V+a.selection.ACTIVE_RIGHT_BORDER},W=I;W<=N;W+=1)L[W]=k(L[W]);b[P]=L},m=function(O,F,b){for(var I=arguments.length>3&&arguments[3]!==void 0?arguments[3]:a.selection.SELECTED,N=Math.max(O.rows.start,F.rows.start),P=Math.min(O.rows.end,F.rows.end),L=Math.max(O.columns.start,F.columns.start),k=Math.min(O.columns.end,F.columns.end),W=function(){var Y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return Y+I},K=k;K>=L;K-=1){for(var V=b[K]||[],G=N;G<=P;G+=1)V[G]=W(V[G]);b[K]=V}},S=function(O){var F=O.metadata,b=F===void 0?{selections:[],activeRange:null}:F,I=O.viewBuffer,N=O.tableSelectionById,P=b.selections,L=b.selectionType,k=b.activeRange||e.range(),W=[],K=[],V=void 0;if(N)L===r.SELECT_CELLS?m(P,I,W):V=h(P,O);else for(var G=0;G0&&arguments[0]!==void 0?arguments[0]:0,I=b+"px",N="translateX("+I+")";this.tbodyRef.style.transform=N,this.tbodyRef.style.webkitTransform=N,this.tbodyRef.style.width="calc(100% + "+-b+"px)"}},{key:"_setTranslateY",value:function(b){var I=b.translateY||0,N=I+"px";this.tbodyRef.style.top=N,this.tbodyRef.style.height="calc(100% + "+-I+"px)"}},{key:"_getTranslateYAndHeight",value:function(){return this._getGeomObject(t.internal.COMPUTE_TRANSLATEY_AND_HEIGHT),{height:this._geomObjectY.physicalHeight,translateY:this._geomObjectY.translateY}}},{key:"_getRowRects",value:function(){for(var b=this.tbodyRef.childNodes,I={},N=0;N2&&arguments[2]!==void 0?arguments[2]:t.protected.TABLE_CELL_CLICK,P=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,L=Number(I.rowIndex),k=Number(I.colIndex);b.button===i.MOUSE_LEFT_BUTTON&&this.props.eventCallback&&this.props.eventCallback(N,{row:L,column:k,rowId:I.id,meta:b.metaKey,ctrlKey:b.ctrlKey,shiftKey:b.shiftKey,altKey:b.altKey,emitCellFocused:P,columnId:d.getColumnId(this.props.headers,k)})}},{key:"_handleClick",value:function(b,I){if(!!I){var N=w(I);switch(I.cellType){case"TableCell":case"InteractiveTableCell":break;case"EditableTableCell":this.state.triggerEditState===N&&this._handleMouseEvent(b,I,"enterEditMode");break}}}},{key:"_handleMouseUp",value:function(b,I){if(!!this.state.waitForMouseUp){var N=w(I);this.state.waitForMouseUp===N&&(this.setState({waitForMouseUp:!1}),this._handleMouseEvent(b,I,t.protected.TABLE_CELL_CLICK,!1))}}},{key:"_getGeomObject",value:function(b){var I={};this.props.eventCallback(b,I),this._geomObjectY=I.result||this._geomObjectY}},{key:"componentDidMount",value:function(){this.props.eventCallback(t.internal.NODE_SUBSCRIBE,{subscriberFn:this._setTranslateX.bind(this),subscriberId:r.subscriber.TBODY_TRANSFORM,subscribeTo:r.publisher.HEADER_TRANSX,noRender:!0}),this.props.eventCallback(t.internal.NODE_PUBLISH,{publisherFn:this._getTranslateYAndHeight.bind(this),publisherId:r.publisher.TRANSFORM_Y_AND_HEIGHT,noRender:!0}),this.props.eventCallback(t.internal.NODE_SUBSCRIBE,{subscriberFn:this._setTranslateY.bind(this),subscriberId:r.subscriber.TBODY_TRANSFORM_Y,subscribeTo:r.publisher.TRANSFORM_Y_AND_HEIGHT,noRender:!0}),this.props.eventCallback(t.internal.NODE_PUBLISH,{publisherFn:this._getRowRects.bind(this),publisherId:r.publisher.ROW_HEIGHTS,noRender:!0}),this.props.eventCallback(t.protected.ROW_RECTS,{children:this._getRowRects.bind(this),noRender:!0}),this.props.eventCallback(t.protected.ROW_CELL_RECTS,{children:this._getRowCellRects.bind(this),noRender:!0}),(!this.props.getKeyOnRowComponentFn||this.props.eventsToHandle)&&(this._eventDelegator=new o(this.tbodyRef),this._eventDelegator.delegateEvents(this.props.eventsToHandle||{click:this._handleClick,doubleClick:function(){},mousedown:this._handleMouseDown,mouseup:this._handleMouseUp.bind(this)}))}},{key:"componentWillUnmount",value:function(){this._eventDelegator&&this._eventDelegator.destroyEvents()}},{key:"render",value:function(){var b=this,I=this.props,N=I.translateY,P=I.translateX,L=I.columnClass,k=I.editValidation,W="translateX("+P+"px)",K={transform:W,WebkitTransform:W,top:N+"px"},V="mw-table-tbody "+L;k&&k.error?V=V.concat(" errorState"):V=V.replace(/ errorState/g,"");var G=this._makeRowElements();return n.createElement("tbody",{ref:function(Y){b.tbodyRef=Y},className:V,style:K},G)}}]),O}(n.Component);return T;function w(R){var O=R.rowIndex,F=R.colIndex;return[O,F].join(",")}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return{isPrimary:function(_){return _.isPrimary||_.pointerId===1||_.button===0||_.constructor.name==="Touch"},getXY:function(_){return{x:_.clientX,y:_.clientY}}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(61),u(107),u(240)],E=u.dj.d(A,function(D,_,v){var l=v.getXY,n=_.getTimestamp,e=D.getCenter,t=D.getAngle,r=D.getSpread,i=D.computeDistance,a=D.computeDirection;return{calculateProperties:function(c,o){var d=c.map(l);return{center:e(d),angle:t(d),spread:r(d),timestamp:n(o)}},compareProperties:function(c,o,d){o||(o=c),d||(d=o);var f=c.timestamp-d.timestamp,h=i(d.center,c.center);return{center:{current:c.center,initial:o.center,previous:d.center,delta:i(o.center,c.center),velocity:{x:h.x/f,y:h.y/f},direction:a(d.center,c.center)},angle:{current:c.angle,initial:o.angle,previous:d.angle,delta:c.angle-o.angle,velocity:(c.angle-d.angle)/f},spread:{current:c.spread,initial:o.spread,previous:d.spread,delta:c.spread-o.spread,velocity:(c.spread-d.spread)/f},timestamp:{current:c.timestamp,initial:o.timestamp,previous:d.timestamp,delta:c.timestamp-o.timestamp}}}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(108),u(430),u(431),u(432)],E=u.dj.d(A,function(D,_,v,l){var n=D.addDomListener,e=!!window.PointerEvent,t="ontouchstart"in window,r=1e3,i=25,a=e?[_]:t?[v,l]:[l],s=!e&&t,c={mousedown:!0,mousemove:!0,mouseup:!0},o={pointerdown:!0,pointermove:!0,pointerup:!0},d={touchstart:!0,touchmove:!0,touchend:!0,touchcancel:!0},f=function(T,w){var R=T.clientX,O=T.clientY,F=Date.now();if(w._softTimestamp+r<=F)return!1;var b=w.changedTouches;for(var I in b)if(b.hasOwnProperty(I)&&I!=="length"){var N=b[I],P=N.clientX,L=N.clientY,k=Math.abs(R-P),W=Math.abs(O-L);if(k<=i&&W<=i)return!0}return!1},h=function(T){return T&&T.type&&c[T.type]},g=function(T){return T&&T.type&&o[T.type]},m=function(T){return T&&T.type&&d[T.type]};return{isTouchEvent:m,isPointerEvent:g,isMouseEvent:h,getActiveImplementations:function(){return a},getImplementationForEvent:function(T){var w=null;return h(T)&&(w=l),g(T)&&(w=_),m(T)&&(w=v),w},addListenersToRemovable:function(T,w,R,O,F){return T.forEach(function(b){for(var I in O)if(O.hasOwnProperty(I)){var N=O[I];w.own(n(R,b[I],N,F))}}),w},updateLastTouch:function(T,w){var R=w;return m(T)&&(T._softTimestamp=Date.now(),R=T),R},isCompatibilityEvent:function(T,w){var R=!1;return w&&h(T)&&s&&(R=f(T,w)),R}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E,D=function(){function v(l,n){for(var e=0;ec(this.latestDown):m}},{key:"_checkUpToDownDelay",value:function(){var g=!0;return this.tapCount!==0&&!a(c(this.latestUp),c(this.latestDown),this.options.tapDelay)&&(g=!1),g}},{key:"_checkUpToDownDistance",value:function(){var g=!0;return this.tapCount!==0&&!i(s(this.latestUp),s(this.latestDown),this.latestDown&&this.latestDown.srcEvent&&this.latestDown.srcEvent.pointerType==="touch"?this.options.maxTouchRadius:this.options.maxRadius)&&(g=!1),g}},{key:"_updateTapCount",value:function(){var g=this._isActivePress(),m=i(s(this.latestDown),s(this.latestUp),this.latestDown&&this.latestDown.srcEvent&&this.latestDown.srcEvent.pointerType==="touch"?this.options.maxTouchRadius:this.options.maxRadius),S=a(c(this.latestDown),c(this.latestUp),this.options.maxHold);g&&m&&S?this.tapCount++:(this.latestDown=null,this.latestUp=null,this.tapCount=0)}},{key:"isTap",value:function(){return this.tapCount===this.options.numTaps}},{key:"isEarlyTap",value:function(){var g=this._isActivePress(),m=this.tapCount0&&(o._setPosition(h),o._subscribeToDismissal(h))},subscriberId:e.subscriber.TOOLTIP_ENTER,subscribeTo:e.protected.publisher.CELL_HOVER,noRender:!0})}},{key:"render",value:function(){var o=this;return r.createElement("div",{className:"mw-table-tooltip-wrapper",ref:function(f){o.myTooltip=f}},r.createElement("div",{"data-test-id":"mw-table-tooltip",className:"mw-table-tooltip"}))}}],[{key:"_setAdjustLeft",value:function(o,d){var f=o.node.querySelectorAll("[checkbox-label=true]")[0];if(f){var h=f.getBoundingClientRect().left,g=o.node.getBoundingClientRect().right;return g=k.columns.start&&g(W[V],k,K);return function(G){return K.mapping[G]||0}},S=function(N,P,L){var k=N.label,W=N.styleData,K=N.headerRenderer,V=N.headerEditor,G=N.columnId,j=N.fillContainerWidth,Y=N.columnHeaderIndex,z=L.eventCallback,Q=L.logicalColWidth,X=L.colResize,J=L.colMenuAffordance,$=L.dragColumns,q=L.collapseColumn,te=L.sorted,oe=te===void 0?[]:te,le=L.sortable,de=L.clearSort,De=L.colEditState,Se=L.cellEditState,pe=L.scrollNodeIntoView,ie=L.groupedColumnHeaders,ee=L.setAvatar,me=L.canDrop,ce=L.hideColumnHeader,ve=L.displayColumnIndex,Oe=L.displayColumnIndexOnly,Ye=L.widgetType,nt=L.treeColumnIndex;W=W||{};var Dt=oe[N._index]||{},wt=Dt.order,Ft=void 0;Ft=V&&!Oe?o:a,ie&&(Ft=d);var St=Oe?Y.toString():k,xt={headerEditor:V,headerRenderer:K,cellEditState:Se,colEditState:De===G},zt=n.createElement(Ft,{headerMeta:N,fillContainerWidth:j,collapseColumn:q,key:N._index,logicalColWidth:Q,setAvatar:ee,colIndex:N._index,colIndexEnd:N._index,styleData:W,eventCallback:z,colSelectionMap:P,sorted:wt,colResize:X,colMenuAffordance:J,sortable:le,clearSort:de,name:St,columnId:G,scrollNodeIntoView:pe,dragColumns:$,displayColumnIndex:ve,displayColumnIndexOnly:Oe,hideColumnHeader:ce,widgetType:Ye,canDrop:me,treeColumnIndex:nt});return Oe||(zt=T(zt,xt)),zt},T=function(N,P){return n.cloneElement(N,P)},w=function(N){for(var P=N.headers,L=N.spanningColumnHeaders,k=L===void 0?{}:L,W=[],K=m(N),V=void 0,G=0;G0){var V=k.scrollWidth+L+W;if(this.props.collapseColumn){var G=this._getTotalWidthOfPagedHeaders(this.props.headers);G>0&&G0&&arguments[0]!==void 0?arguments[0]:0;this._headerRow.affordanceWidth=L;var k=this.headerRef.childNodes;L===0?(k[k.length-1].style.width="0px",k[k.length-1].classList.remove("mw-table-top-right-affordance")):(k[k.length-1].style.width=L+"px",k[k.length-1].classList.add("mw-table-top-right-affordance")),this._setComputedWidth()}},{key:"componentDidUpdate",value:function(L){this._alignHeaderAndBodyScroll(L),this._setComputedWidth()}},{key:"_getGeomObject",value:function(L){var k={flexWidth:this.props.flexWidth,headerList:this.theadRef.childNodes[0].querySelectorAll("[data-col-index]"),headerThead:this.theadRef,noRender:!0};this.props.eventCallback(L,k),this._geomObjectX=k.result||this._geomObjectX}},{key:"_getHeaderRowWidth",value:function(){if(this._getGeomObject(e.internal.TABLE_WIDTH),this._geomObjectX.physicalWidth>=0)return this.colHeaderContainer.scrollWidth-this.colHeaderContainer.clientWidth>h||this.colHeaderContainer.scrollWidth===0?this.props.hideColumnHeader===!0&&this.colHeaderContainer.scrollWidth===0&&this.props.columnClass!=="mw-tbody-paged-columns"||this.props.headers.every(F)&&this.props.columnClass!=="mw-tbody-paged-columns"?"100%":this._geomObjectX.physicalWidth:"100%";var L=void 0;if(this.colHeaderContainer.scrollWidth-this.colHeaderContainer.clientWidth>h)L=this.colHeaderContainer.scrollWidth-h;else{if(this.props.flexWidth==="100%")return"100%";L=this.colHeaderContainer.clientWidth}return L||0}},{key:"_getTranslateX",value:function(){return this._getGeomObject(e.internal.COMPUTE_TRANSLATEX),this._geomObjectX.translateX}},{key:"_setScrollLeft",value:function(L){this._geomObjectX.scrollLeft!==L&&(this.colHeaderContainer.scrollLeft=L,this._geomObjectX.scrollLeft=L)}},{key:"_setTranslateX",value:function(L){var k="translateX("+L+"px)";this.theadRef.style.transform=k,this.theadRef.style.webkitTransform=k}},{key:"_setTableWidth",value:function(L){L>0?(this.tableRef.style.width=L+"px",this.tableRef.style.minWidth=L+"px",this.tableRef.style.maxWidth=L+"px"):this.props.fitLastColumn&&L==="100%"?(this.tableRef.style.width=L,this.tableRef.style.minWidth=L,this.tableRef.style.maxWidth=L):L==="100%"&&(this.tableRef.style.width=this.props.flexWidth,this.tableRef.style.minWidth=this.props.flexWidth,this.tableRef.style.maxWidth=this.props.flexWidth)}},{key:"_handleMouseDown",value:function(L){var k=O(L.target);!k||k.classList.contains("mw-table-header-column")&&!k.classList.contains("mw-table-spanning-column-header")&&L.button===r.MOUSE_LEFT_BUTTON&&i.addTrackingTo(this.colHeaderContainer.getBoundingClientRect(),this.props.eventCallback,{colsOnly:!0})}},{key:"componentDidMount",value:function(){var L=this,k=this.props.scrollNodeIntoView,W=k===void 0?{}:k;W.container=this.colHeaderContainer,this.props.eventCallback(e.internal.NODE_SUBSCRIBE,{subscriberFn:this._setAffordanceWidth.bind(this),subscriberId:t.subscriber.HEADER_RIGHT_AFFORDANCE,subscribeTo:t.publisher.SCROLL_BAR_WIDTH,noRender:!0}),this.props.setDnDNode&&this.props.setDnDNode(this.headerRef.parentElement),this.props.eventCallback(e.internal.NODE_SUBSCRIBE,{subscriberFn:function(V){L.headerRef.style.minHeight=V+"px"},subscriberId:t.subscriber.HEADER_MIN_HEIGHT,subscribeTo:t.publisher.HEADER_ROW_HEIGHT,noRender:!0}),this.props.eventCallback(e.internal.NODE_PUBLISH,{publisherFn:this._getTranslateX.bind(this),publisherId:t.publisher.HEADER_TRANSX,noRender:!0}),this.props.eventCallback(e.internal.NODE_PUBLISH,{publisherFn:this._getHeaderRowWidth.bind(this),publisherId:t.publisher.HEADER_ROW_WIDTH,noRender:!0}),this.props.eventCallback(e.internal.NODE_PUBLISH,{publisherFn:this._publishMinHeight().bind(this),publisherId:t.publisher.HEADER_ROW_HEIGHT,noRender:!0}),this.props.eventCallback(e.internal.NODE_SUBSCRIBE,{subscriberFn:this._setTranslateX.bind(this),subscriberId:t.subscriber.HEADER_TRANSFORMX,subscribeTo:t.publisher.HEADER_TRANSX,noRender:!0}),this.props.eventCallback(e.internal.NODE_SUBSCRIBE,{subscriberFn:this._setScrollLeft.bind(this),subscriberId:t.subscriber.HEADER_SCROLL_LEFT,subscribeTo:t.publisher.SCROLL_COMPONENT_LEFT,noRender:!0}),this.props.eventCallback(e.internal.NODE_SUBSCRIBE,{subscriberFn:this._setTableWidth.bind(this),subscriberId:t.subscriber.HEADER_WIDTH,subscribeTo:t.publisher.HEADER_ROW_WIDTH,noRender:!0}),this.props.eventCallback(e.protected.HEADER_RECTS,{children:this._getHeaderRects.bind(this),noRender:!0}),this._setComputedWidth()}},{key:"_getTopLeftHeaderValue",value:function(L){return L.text||L.value}},{key:"_getTopLeftHeaderRenderer",value:function(L){return L&&L.renderer?L.renderer:void 0}},{key:"_alignHeaderAndBodyScroll",value:function(L){L.hideColumnHeader===!0&&this.props.hideColumnHeader===!1&&this.colHeaderContainer.scrollLeft!==this._geomObjectX.scrollLeft&&(this.colHeaderContainer.scrollLeft=this._geomObjectX.scrollLeft)}},{key:"render",value:function(){var L=this,k=this.props,W=k.topLeftRowHeaderLabel,K=k.flexWidth,V=k.displayRowHeader,G=k.columnClass,j=k.eventCallback,Y=k.hideColumnHeader,z=w(this.props),Q={display:"flex",width:"100%"},X={minWidth:K,maxWidth:K,width:K},J=G+" mw-table-header-thead",$=(Y?"mw-table-header-hidden ":"")+"mw-table-flex-container mw-table-header-wrapper";return n.createElement("div",{ref:function(te){L.headerRef=te},className:$},V&&n.createElement(c,{topLeftRowHeaderValue:this._getTopLeftHeaderValue(W),topLeftRowHeaderRenderer:this._getTopLeftHeaderRenderer(W),eventCallback:j}),n.createElement("div",{className:"mw-table-flex-dynamic-item",onMouseDown:this._handleMouseDown,ref:function(te){L.colHeaderContainer=te}},n.createElement("table",{ref:function(te){L.tableRef=te},style:X,className:"mw-table-header"},n.createElement("thead",{ref:function(te){L.theadRef=te},className:J},n.createElement("tr",{role:"row",style:Q,className:"mw-table-header-row"},z)))),n.createElement("div",null))}}]),N}(n.Component);return b},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e2&&arguments[2]!==void 0?arguments[2]:4,T=Math.max(0,Math.ceil((m.position-g.maxBorder)/s)<<1)||Math.min(0,Math.ceil((m.position-g.minBorder)/s)<<1);return T<0?(T=Math.min(S*-1,T),T0?(T=Math.max(S,T),T>i?a:T):0},f=function(){function h(g){_(this,h),this._containerRect=g.containerRect,this._callback=g.callback,this._rowsOnly=g.options.rowsOnly,this._colsOnly=g.options.colsOnly,this._destroyed=!1,document.addEventListener("selectstart",o,{capture:!0}),this._throttledMoveHandler=e(this._handleMouseMove.bind(this),r),this._throttledTracking=e(this._trackingUpdate.bind(this),r),this._destroy=this._destroy.bind(this),this._scrollX=n.map(this._containerRect,[["left","minBorder"],["right","maxBorder"]]),this._scrollY=n.map(this._containerRect,[["top","minBorder"],["bottom","maxBorder"]]),document.addEventListener("mousemove",this._throttledMoveHandler),document.addEventListener("mouseup",this._destroy),window.addEventListener("blur",this._destroy),this._removeByOtherDnD()}return D(h,[{key:"_removeByOtherDnD",value:function(){this._callback(v.internal.NODE_SUBSCRIBE,{subscriberFn:this._destroy,subscriberId:l.subscriber.DND_START,subscribeTo:l.protected.publisher.DND_IN_ACTION,noRender:!0})}},{key:"_handleMouseMove",value:function(m){if(!this._destroyed){var S=n.map(m,[["clientY","position"]]),T=n.map(m,[["clientX","position"]]);this._pointer={x:m.clientX,y:m.clientY},this._yDelta=d(this._scrollY,S),this._xDelta=d(this._scrollX,T,c),this._colsOnly&&(this._yDelta=0),this._rowsOnly&&(this._xDelta=0),window.clearInterval(this._prevInterval),this._xDelta!==0||this._yDelta!==0?this._prevInterval=window.setInterval(this._requestScroll(m),t):this._throttledTracking(m)}}},{key:"_requestScroll",value:function(m){var S=this,T=m.ctrlKey,w=m.shiftKey,R=m.metaKey;return function(){return S._callback(v.protected.DOCUMENT_MOUSE_MOVE_INTERVAL,{yDelta:S._yDelta,xDelta:S._xDelta,pointer:S._pointer,rowsOnly:S._rowsOnly,colsOnly:S._colsOnly,containerRect:S._containerRect,ctrlKey:T,shiftKey:w,metaKey:R})}}},{key:"_destroy",value:function(){document.removeEventListener("selectstart",o,{capture:!0}),window.clearInterval(this._prevInterval),this._prevInterval=null,document.removeEventListener("mousemove",this._throttledMoveHandler),document.removeEventListener("mouseup",this._destroy),window.removeEventListener("blur",this._destroy),this._destroyed=!0,(this._xDelta!==0||this._yDelta!==0)&&this._callback(v.protected.DOCUMENT_MOUSE_UP,{yDelta:this._yDelta,xDelta:this._xDelta,containerRect:this._containerRect,callback:this._callback})}},{key:"_trackingUpdate",value:function(m){var S=m.ctrlKey,T=m.shiftKey,w=m.metaKey;this._callback(v.protected.DATA_AREA_MOUSE_MOVE,{rowsOnly:this._rowsOnly,colsOnly:this._colsOnly,pointer:this._pointer,shiftKey:T,ctrlKey:S,metaKey:w})}}],[{key:"addTrackingTo",value:function(m,S){var T=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return new h({containerRect:m,callback:S,options:T})}}]),h}();return f},C,x),C.exports=E},function(C,x,u){"use strict";var A,E,D=function(){function v(l,n){for(var e=0;e0){var h=this._canDropTracker.getTopItem();return typeof h.canDrop=="boolean"||typeof h.canDrop=="undefined"?h.canDrop&&(f=t.StatusEnum.VALID):h.canDrop.isFulFilled&&(f=t.StatusEnum.VALID),f}}},{key:"createDropTarget",value:function(f){var h=this,g=function(){h._dropTargets=h._dropTargets.filter(function(T){return!T===m})},m=new l(f,{spliceDropTarget:g});return this._dropTargets.push(m),m}},{key:"createDragSource",value:function(f){var h=this,g=function(){h._dragSources=h._dragSources.filter(function(w){return!w===S})},m=this._dndListener,S=new v(f,{spliceDragSource:g,dndListener:m});return this._dragSources.push(S),S}},{key:"destroy",value:function(){this._dndListener.destroy(),this._dragSources.forEach(function(f){f.destroy()}),this._dropTargets.forEach(function(f){f.destroy()}),this._dragSources=[],this._dropTargets=[],this._observer&&this._observer.disconnect()}},{key:"COPY",get:function(){return a.COPY}},{key:"MOVE",get:function(){return a.MOVE}},{key:"NONE",get:function(){return a.NONE}},{key:"ALL",get:function(){return a.ALL}}]),o}();return c},C,x),C.exports=E},function(C,x,u){"use strict";var A,E,D=function(){function v(l,n){for(var e=0;e0&&(s=a/r.length),t.map(function(c){return isNaN(c)?s:Number(c)})}},{key:"_sumOfRegions",value:function(n){return n.reduce(function(e,t){return isNaN(t)||(e=e+Number(t)),e},0)}},{key:"_calcRegionIndex",value:function(n,e,t){return e1&&arguments[1]!==void 0?arguments[1]:!1,d={lifecycle:c,allowGlobal:o};return D.startDnD(r,d,e)},a=function(c,o,d){var f=o.targetList;if(f)return f.map(function(h){D.addDnDContextTarget(c,h,d)}),c};return{startDragSource:i,setDropTarget:a}};return l},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function e(t,r){for(var i=0;iF&&(O=!0),O}},{key:"_handleRowHeaderContextMenu",value:function(T){var w="mw-table-row-header-scrolling-div";if(o._isClassInClassList(w,T.target.classList)){T.preventDefault();var R=this.props.eventCallback,O={type:i.EMPTY_ROW_HEADER,isWhiteSpace:!0};return o.eventCallbackForContextMenu(T,R,O)}}},{key:"_handleContextMenu",value:function(T){var w="mw-scrolling-div";if(o._isClassInClassList(w,T.target.classList)){T.preventDefault();var R=this._getScrollAffordanceHeight(),O=this.scrollNode.getBoundingClientRect();if(this._isPointInHorizontalScroll(T.clientY,R,O.bottom))return;var F=this.props.eventCallback,b={type:i.EMPTY_ROW,isWhiteSpace:!0};return o.eventCallbackForContextMenu(T,F,b)}}},{key:"_handleMouseDownCapture",value:function(){this.scrollNode.removeAttribute("tabIndex")}},{key:"_handleMouseDown",value:function(T){T.button===r.MOUSE_LEFT_BUTTON&&T.target!==this.scrollNode?s.addTrackingTo(this.scrollNode.getBoundingClientRect(),this.props.eventCallback):s.addTrackingTo(this.scrollNode.getBoundingClientRect(),function(){return 0});var w=this.props.dragRows||this.props.reorderRows||this.props.reparentRows,R=this.props.reparentRows||this.props.reorderRows,O=o.targetIsEditIndicator(T);if(w&&!this.props.allowDragToSelect&&!O){var F=this.props.createDnDSource(this._getDnDSourceData);R&&this.props.createDnDTarget(F,this.scrollNode)}}},{key:"_handleRowHeaderMouseDown",value:function(T){var w=this;T.button===r.MOUSE_LEFT_BUTTON&&s.addTrackingTo(this.rowHeaderColumn.getBoundingClientRect(),this.props.eventCallback,{rowsOnly:!0}),this.props.dragRows&&c.toPromise().then(function(){return w.props.createDnDSource(w._getDnDSourceData)})}},{key:"setTabIndex",value:function(T){this.scrollNode.setAttribute("tabIndex","-1")}},{key:"handleScroll",value:function(T){if(this.scrollNode===T.target){var w={noRender:!0,target:{scrollTop:T.target.scrollTop,scrollLeft:T.target.scrollLeft}};this.props.eventCallback&&(this._setRowHeaderScroll(),this.props.eventCallback(e.internal.TABLE_SCROLL,w))}}},{key:"_getScrollAffordanceWidth",value:function(T){var w=this.scrollNode.offsetWidth-this.scrollNode.clientWidth,R=this.scrollNode.scrollWidth>this.scrollNode.clientWidth;return this.props.eventCallback(e.internal.SCROLL_COMPONENT_UPDATED,_({},t.CAN_SCROLL_HORIZONTAL,R)),w>0?(this._scrollDims.scrollbarWidth&&w!==this._scrollDims.scrollbarWidth?this._scrollDims.scrollbarWidth=w:this._scrollDims.scrollbarWidth=this._scrollDims.scrollbarWidth||w,this.myScrollComponent.classList.remove("mw-table-has-hidden-vertical-scrollbar"),this._scrollDims.scrollbarWidth):this.scrollNode.scrollHeight>this.scrollNode.offsetHeight?(this.myScrollComponent.classList.add("mw-table-has-hidden-vertical-scrollbar"),0):(this.myScrollComponent.classList.remove("mw-table-has-hidden-vertical-scrollbar"),0)}},{key:"_getScrollAffordanceHeight",value:function(){var T=this.scrollNode.offsetHeight-this.scrollNode.clientHeight;return T>0?(this.myScrollComponent.classList.add("mw-table-has-horizontal-scroll"),this.myScrollComponent.classList.remove("mw-table-has-hidden-horizontal-scrollbar"),this._scrollDims.scrollbarHeight=this._scrollDims.scrollbarHeight||T,this._scrollDims.scrollbarHeight):this.scrollNode.scrollWidth>this.scrollNode.offsetWidth?(this.myScrollComponent.classList.remove("mw-table-has-horizontal-scroll"),this.myScrollComponent.classList.add("mw-table-has-hidden-horizontal-scrollbar"),0):(this.myScrollComponent.classList.remove("mw-table-has-horizontal-scroll"),this.myScrollComponent.classList.remove("mw-table-has-hidden-horizontal-scrollbar"),0)}},{key:"_setScrollAffordanceHeight",value:function(T){var w=this.rowHeader.childNodes[1];T>0?w.classList.add("mw-table-bottom-left-affordance"):w.classList.remove("mw-table-bottom-left-affordance"),w.style.height=T+"px"}},{key:"_getScrollLeft",value:function(){return this.scrollNode.scrollLeft}},{key:"_getScrollTop",value:function(){return this.scrollNode.scrollTop}},{key:"componentWillUnmount",value:function(){this.destroy&&this.destroy()}},{key:"componentDidMount",value:function(){var T=this,w=this.props.scrollNodeIntoView,R=w===void 0?{}:w;R.scrollNode=this.scrollNode,this.props.eventCallback(e.internal.NODE_PUBLISH,{publisherFn:this._getScrollAffordanceHeight.bind(this),publisherId:t.publisher.SCROLL_BAR_HEIGHT,noRender:!0}),this.props.setDnDNode&&this.props.setDnDNode(this.myScrollComponent.parentElement),this.props.setupDropFromOutside&&(this.context=this.props.setupDropFromOutside(this.myScrollComponent.parentElement,this.scrollNode),this.destroy=this.context.destroy.bind(this.context)),this.rowHeader&&(this.props.eventCallback(e.internal.NODE_SUBSCRIBE,{subscriberFn:function(F){T.rowHeader.style.maxWidth=F+"px",T.rowHeader.style.minWidth=F+"px"},subscribeTo:t.publisher.ROW_HEADER,subscriberId:t.subscriber.ROW_HEADER_PARENT,noRender:!0}),this.props.eventCallback(e.internal.NODE_SUBSCRIBE,{subscriberFn:this._setScrollAffordanceHeight.bind(this),subscribeTo:t.publisher.SCROLL_BAR_HEIGHT,subscriberId:t.subscriber.TABLE_BOTTOM_LEFT_AFFORDANCE,noRender:!0})),this.props.eventCallback(e.internal.NODE_PUBLISH,{publisherFn:this._getScrollLeft.bind(this),publisherId:t.publisher.SCROLL_COMPONENT_LEFT,noRender:!0}),this.props.eventCallback(e.internal.NODE_PUBLISH,{publisherFn:this._getScrollAffordanceWidth.bind(this),publisherId:t.publisher.SCROLL_BAR_WIDTH,noRender:!0}),this.props.eventCallback(e.internal.TABLE_MOUNT,{table:this.scrollNode})}},{key:"render",value:function(){var T=this,w=this.props,R=w.table,O=w.rowHeader,F=w.rowHeaderWidth,b="mw-table-row-header-container",I={};F&&(I={width:F+"px"});var N=void 0;O&&(N=f.createElement(a,null,f.createElement("div",{className:b,onMouseDown:this._handleRowHeaderMouseDown,onContextMenu:this._handleRowHeaderContextMenu,style:I,ref:function(k){T.rowHeader=k}},f.createElement("div",{ref:function(k){T.rowHeaderColumn=k},className:"mw-table-row-header-scrolling-div"},O),f.createElement("div",null))));var P=["mw-table-flex-container","mw-table-scroll-container"];return f.createElement("div",{ref:function(k){T.myScrollComponent=k},className:P.join(" ")},N,f.createElement("div",{className:this._isSafari?"mw-table-inner-wrapper mw-scrolling-div mw-scrolling-promote-layer":"mw-table-inner-wrapper mw-scrolling-div","data-test-id":"scrollNode",tabIndex:"-1",onMouseDownCapture:this._handleMouseDownCapture,onMouseDown:this._handleMouseDown,onMouseUp:this.setTabIndex,onMouseLeave:this.setTabIndex,onScroll:this.handleScroll,onWheel:this.handleWheel,onContextMenu:this._handleContextMenu,ref:function(k){T.scrollNode=k}},R))}}]),m}(f.Component);return h},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(3)],E=u.dj.d(A,function(D){var _=D.createContext({});return _.displayName="HeaderContext",_},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(495),u(160),u(21),u(259)],E=u.dj.d(A,function(D,_,v,l){"use strict";var n=l(_(D,v.ROW_HEADER));return n},C,x),C.exports=E},function(C,x,u){var A,E,D=Object.assign||function(v){for(var l=1;l1&&arguments[1]!==void 0?arguments[1]:{};return!0}function m(I,N){return!0}function S(I){var N=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(I.selectionById)return T(I,N);var P=N.setDragData,L=N.selections,k=N.setSelections,W=N.setDndSourceData;if(!!I.selections&&!!D.areSelectionRangesDifferent(L,I.selections)&&(k(I.selections),!!P)){var K=D.getSelectionCountByRanges(I.selections),V=K.count,G=K.type;W(null),h(P,I.selections).then(function(j){W({data:j,count:V,dragType:G})})}}function T(I,N){var P=N.setDragData,L=N.selections,k=N.setSelections,W=N.setDndSourceData,K=N.setinternalRowDndSourceData;if(I.selections&&D.areSelectionIdsDifferent(L,I.selections)){k(I.selections);var V=Object.keys(I.selections),G=V.length,j="rows",Y=V.map(function(Q){return{id:Q}}),z={dragSourceType:_.TABLE_DEFAULT_TYPE,value:{source:{proxyNodes:Y,type:r.TABLE_ROW}}};P&&(W(null),h(P,Y).then(function(Q){W({data:Q,count:G,dragType:j})})),K({data:z,count:G,dragType:j})}}function w(I,N,P){return function(k,W){var K=n.createDnDContext(k),V=R(I.canDrop,P,K),G=n.getRowOnDrop(I.onDrop,K),j=b(K,V,G,P),Y=n.getRowTargetList(j,_.ROW_REGIONS.INSERT_AS_ROW,!0);return N(K,{targetList:Y},W)}}function R(I,N,P){return function(k,W,K){var V=O(W,K),G=V.place==="insertion",j=n.getContextCacheInfo(P,"targetInfo",V,G),Y=I({dataTransferItem:k,target:j});if(Y===null)return Y;Y=n.getContextCacheInfo(P,"validation",Y,G);var z=F(k,W,K),Q=n.getHorizontalLineClassByValidation(Y);return Object.assign(z,{lineClass:Q}),n.setDropPosition(z,N),Y}}function O(I,N){var P="TABLE";if(n.isWhitespace(I))return{type:P};if(n.isInsertionLine(I))return{place:"insertion"};var L=Number(I.getAttribute("data-row-index")),k=I.getAttribute("data-row-id");if(typeof k=="string")return{type:P,rowId:k};var W=N.row===i?L+1:L,K=v.range().setRows(W,W).setColumns(0,1/0);return{type:P,range:K}}function F(I,N,P){if(n.isWhitespace(N)){var L=N.firstChild.getBoundingClientRect(),k=L.bottom;return{top:k}}return n.getVerticalPosition(I,N,P,i)}function b(I,N,P,L){var k=n.lifecycleAddOn(N,n.debounceCheckForDragOut(I,_.targetLifeCycle.ENTER,L)),W=n.debounceCheckForDragOut(I,_.targetLifeCycle.LEAVE,L),K=n.debounceCheckForDragOut(I,_.targetLifeCycle.HOVER,L),V=n.lifecycleAddOn(P,function(){return n.removeInsertionLine(L)});return{enter:k,hover:K,leave:W,drop:V}}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e1&&arguments[1]!==void 0?arguments[1]:{};N.id=P.id,N.level=P.level,N.isExpanded=P.isExpanded,N.isExpandable=P.isExpandable,N.groupRow=P.groupRow,N.check=P.check,N.highlight=P.highlight,O(N,P)},O=function(N,P){N.hasOwnProperty("path")||Object.defineProperty(N,"path",{get:function(){return P.path}})},F=function(){function I(N,P,L,k,W,K,V,G){l(this,I),this.id=N,this._path=k,this.level=L,this.isExpandable=K,this.isExpanded=W,this.data=P,V!==null&&(this.check=V),G&&(this.groupRow=G)}return _(I,[{key:"path",get:function(){if(!this._fullPath){for(var P=new Array(this.level),L=this._path,k=this.level;k>=0;k-=1)P[k]=L.id,L=L.parent;this._fullPath=P}return this._fullPath}}]),I}(),b=function(){function I(N){var P=this,L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};l(this,I),this._type=L.type,this._on=new e,this._listeners=[],this._dataSize=t.range(),this._expandCollapseToggle=new r({allExpanded:L.allExpanded}),this.replaceAll(N,L),this._metaDataRules=new d,this._expandCollapseState={filtering:!1},this._listeners.push(this._metaDataRules.on("metaDataChanged",function(k){for(var W=[],K=[],V=0;V0&&P._emitPagedColumnMetaDataChanged(W),K.length>0&&P._emitPagedRowMetaDataChanged(K),P._type===S.TREE?P._dataChanged(k.rangeList):P._emitDataChanged(k.rangeList)}))}return _(I,[{key:"addMetaDataRule",value:function(P,L){this._metaDataRules.add(P,L)}},{key:"removeMetaDataRule",value:function(P){this._metaDataRules.remove(P)}},{key:"createMetaDataRule",value:function(P,L){if(!L)throw new Error("dataselector is missing");return P.node&&(P.row=P.node,L||(L={type:f.dataSelectorTypes.node})),L.type==="hierarchy"&&(P.node&&(P.row=P.node),Array.isArray(L.value)||(L.value=[L.value])),f.create(P,L,this._type)}},{key:"replaceAll",value:function(P){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};L.isCheckboxTree&&(this.updateChecked=this._updateChecked,this.getCheckNodes=this._getCheckNodes,this._isCheckboxTree=!0),this._internalDataStore=new i(P,{getParentId:L.getParentId,setParentId:L.setParentId,getId:L.getId,isExpanded:this._isExpanded.bind(this),createTreeNode:this._createTreeNode.bind(this),sorted:L.sorted,isCheckboxTree:this._isCheckboxTree,getCheck:L.getCheck,setCheck:L.setCheck,type:this._type}),this._dataSave=L.dataSave||{},this._getParentId=this._internalDataStore.getParentId.bind(this._internalDataStore),this._flattenedTree=[],this._flatten=this._internalDataStore.flatten.bind(this._internalDataStore),this._getSortState=this._internalDataStore.getSortState.bind(this._internalDataStore),this._flattenedTree=this._flatten(),this._updateDataSize(),this._dataChanged([t.range().setRows(0,1/0).setColumns(0,0)],!0)}},{key:"managePaging",value:function(P){}},{key:"_calculateDataSize",value:function(){return t.range().setRows(0,this._flattenedTree.length-1).setColumns(0,0)}},{key:"_updateDataSize",value:function(){var P=this,L=this._calculateDataSize();t.isRangeEqual(L,this.dataSize)||(this._dataSize=L,setTimeout(function(){(!P._lastEmitDataSize||!t.isRangeEqual(P._lastEmitDataSize,P.dataSize))&&(P._on.emit("dataSizeChanged",{dataSize:P.dataSize}),P._lastEmitDataSize=P.dataSize)},0))}},{key:"getLocalRowMetaData",value:function(P){var L=this._flattenedTree[P],k=this._getRowMetaData(P),W={};return L&&O(W,L),R(k,L),Object.assign(W,k),W}},{key:"_getRowMetaData",value:function(P){var L=this._flattenedTree[P],k={};return L&&R(k,L),this._metaDataRules.getRowMetaData({rowIndex:P,dynamic:k})}},{key:"getLocalColumnMetaData",value:function(P){var L={},k=this._metaDataRules.getColumnMetaData({columnIndex:P,dynamic:L});return this._getColumnNumbersForSortCriteria(this._getSortState()).indexOf(P)>=0&&(k.sorted=this._getSortState()),k}},{key:"getLocalCellMetaData",value:function(P,L){var k=this.getLocalCellData(P,L),W=null,K=void 0;if(k!==void 0){var V=this._flattenedTree[P];V&&(K=this._internalDataStore._isGrouping?this._internalDataStore._getParentIdForGrouping(V.data):this._internalDataStore.getParentId(V.data)),W={value:k,parentId:K},this._searching&&(W._row=V),V&&R(W,V)}var G=this._metaDataRules.getCellMetaData({rowIndex:P,columnIndex:L,dynamic:W});return G}},{key:"getLocalCellData",value:function(P){return this._flattenedTree[P]}},{key:"getData",value:function(P){var L=this,k=P.slice(),W=new T(function(K,V){var G=[];k.forEach(function(j,Y){if(!t.isRangeInside(L.dataSize,j)){V(new Error("Range exceeds data size"));return}var z=j.rows.start,Q=j.rows.end,X=j.columns.start,J=j.columns.end,$=L._getCellBlock(z,Q,X,J);$.range=j,G[Y]=$}),K(G)});return W}},{key:"_getCellBlock",value:function(P,L,k,W){for(var K=[],V=P;V<=L;V+=1){for(var G=[],j=k;j<=W;j+=1)G[j]=this.getLocalCellData(V,j);K[V]=G}return K}},{key:"_calculateNodePath",value:function(P){var L=this._internalDataStore.getAncestorIds(P);return L.reverse(),L.push(P),L}},{key:"_createTreeNode",value:function(P,L,k,W,K,V,G){var j=arguments.length>7&&arguments[7]!==void 0?arguments[7]:void 0,Y=this._isCheckboxTree?G:null,z=new F(P,L,k,W,K,V,Y,j);return z}},{key:"_isExpanded",value:function(P){return this._expandCollapseToggle.isExpanded(P)}},{key:"expandAll",value:function(){var P=this._expandCollapseToggle.expandAll();return this._updateTreeData(P),new T(function(L){setTimeout(L,0)})}},{key:"collapseAll",value:function(){var P=this._expandCollapseToggle.collapseAll();return this._updateTreeData(P),new T(function(L){setTimeout(L,0)})}},{key:"expand",value:function(P){if(!Array.isArray(P))throw new Error("'expand' expected an array in proxyNodeList.");var L=this._expandCollapseToggle.expand(P);return this._updateTreeData(L),new T(function(k){setTimeout(k,0)})}},{key:"collapse",value:function(P){if(!Array.isArray(P))throw new Error("'collapse' expected an array in proxyNodeList.");var L=this._expandCollapseToggle.collapse(P);return this._updateTreeData(L),new T(function(k){setTimeout(k,0)})}},{key:"sort",value:function(P){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{keepSorted:!1};if(!(!P||!P.length)){this._internalDataStore.validateSortCriteria(P,this.dataSize);var k=this._internalDataStore.runSort(P,L);return this._emitPagedColumnMetaDataChanged([t.range().setRows(0,0).setColumns(0,this.dataSize.columns.end)]),this._updateTreeData(k),new T(function(W){setTimeout(W,0)})}}},{key:"registerSortType",value:function(P){var L=P.name,k=P.compareFn;if(!(L&&typeof L=="string"&&k&&typeof k=="function"))throw new Error("A valid compare type name and comparator function must be specified");if(L.indexOf(".")!==-1)throw new Error("The name of sort type cannot contain a period.");return this._internalDataStore.registerCustomSort(L,k),L}},{key:"expandTo",value:function(P){var L=this;P=a.normalize(P);var k=this._internalDataStore.getAncestorIds(P.id,!0),W=k.map(function(K){return{id:K}});return this.expand(W).then(function(){return L.getNode(P)})}},{key:"add",value:function(P){for(var L=arguments.length,k=Array(L>1?L-1:0),W=1;W1&&arguments[1]!==void 0?arguments[1]:{dataSave:!0},W=[];return new Promise(function(K,V){for(var G=0;G2&&arguments[2]!==void 0?arguments[2]:{place:"last"};P=a.normalize(P),k.node&&(k.node=a.normalize(k.node));var W=this._getAddOptions(P,L,k);return this._doSaveOperation(this._dataSave.beforeAdd,this._addSingleNode,W)}},{key:"_getAddOptions",value:function(P,L,k){return{parentId:P.id,node:L,options:k}}},{key:"_addSingleNode",value:function(P){var L=[{parentProxy:{id:P.parentId},nodeToAdd:P.node,options:P.options}];this._performAdditionOfNodes(L)}},{key:"_performAdditionOfNodes",value:function(P){if(P.length!==0){var L=this._internalDataStore.addNodes(P);L.changedIds=this._getCheckBoxTreeChangedIds(L),this._updateTreeData(L)}}},{key:"_getCheckBoxTreeChangedIds",value:function(P){var L=this;if(P.changeOccurred&&this._isCheckboxTree){var k=new Set;return P.changedIds.forEach(function(W){L._internalDataStore.getAncestorIds(W).forEach(function(K){k.add(K)})}),P.changedIds.concat(Array.from(k))}return P.changedIds}},{key:"remove",value:function(P){for(var L=arguments.length,k=Array(L>1?L-1:0),W=1;W1&&arguments[1]!==void 0?arguments[1]:{dataSave:!0},W=[],K=[];return new Promise(function(V,G){for(var j=0;j0?Y[0]:null;if(P[j].parentId=z,L._isExpanded(z)&&K.push(z),k.dataSave){var Q={parentId:P[j].parentId,removeId:P[j].proxyNodeToRemove.id,options:P[j].options};W.push(L._doValidateOperation(L._dataSave.beforeRemove,Q))}}k.dataSave||W.push(Promise.resolve({})),Promise.all(W).then(function(X){L._performRemovalOfNodes(P,K),V(X)},function(X){G(X)})})}},{key:"_removeNode",value:function(P,L){var k=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{keepChildren:!1};L=a.normalize(L);var W=this._getRemoveOptions(L,k);return this._doSaveOperation(this._dataSave.beforeRemove,this._removeSingleNode,W)}},{key:"_getRemoveOptions",value:function(P,L){var k=this._internalDataStore.getAncestorIds(P.id);return{parentId:k.length>0?k[0]:null,removeId:P.id,options:L}}},{key:"_removeSingleNode",value:function(P){var L=[{proxyNodeToRemove:{id:P.removeId},parentId:P.parentId,options:P.options}];this._performRemovalOfNodes(L,this._isExpanded(P.parentId)?[P.parentId]:[])}},{key:"_performRemovalOfNodes",value:function(P,L){if(P.length!==0){var k=this._internalDataStore.remove(P);if(L.length>0){if(k.changedIds){var W;(W=k.changedIds).push.apply(W,v(L))}else k.changedIds=L;k.changedIds=this._getCheckBoxTreeChangedIds(k)}this._updateTreeData(k)}}},{key:"move",value:function(P,L,k){var W=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{place:"last"};k=a.normalize(k),L=a.normalize(L),W.node&&(W.node=a.normalize(W.node));var K=this._internalDataStore.getAncestorIds(L.id),V={parentId:K.length>0?K[0]:null,newParentId:k.id,nodeToMoveId:L.id,options:W};return this._doSaveOperation(this._dataSave.beforeMove,this._move,V)}},{key:"_move",value:function(P){var L=this._isExpanded(P.parentId),k=this._isExpanded(P.newParentId),W=void 0;W=this._internalDataStore.move(P.parentId,P.nodeToMoveId,P.newParentId,P.options),W.changeOccurred&&(L&&(W.changedIds?W.changedIds.push(P.parentId):W.changedIds=[P.parentId]),k&&(W.changedIds?W.changedIds.push(P.newParentId):W.changedIds=[P.newParentId]),W.changedIds=this._getCheckBoxTreeChangedIds(W),this._updateTreeData(W))}},{key:"update",value:function(P){for(var L=arguments.length,k=Array(L>1?L-1:0),W=1;W1&&arguments[1]!==void 0?arguments[1]:{dataSave:!0},W=[];return new Promise(function(K,V){for(var G=0;G0?j[0]:null;if(P[G].parentId=Y,k.dataSave){var z={parentId:P[G].parentId,updateId:P[G].proxyNodeToUpdate.id,fieldsToMerge:P[G].fieldsToMerge};W.push(L._doValidateOperation(L._dataSave.beforeUpdate,z))}}k.dataSave||W.push(Promise.resolve({})),Promise.all(W).then(function(Q){L._performUpdate(P),K(Q)},function(Q){return V(Q)})})}},{key:"_updateNode",value:function(P,L,k){L=a.normalize(L);var W=this._getUpdateOptions(L,k);return this._doSaveOperation(this._dataSave.beforeUpdate,this._updateSingleNode,W)}},{key:"_getUpdateOptions",value:function(P,L){var k=this._internalDataStore.getAncestorIds(P.id);return{parentId:k.length>0?k[0]:null,updateId:P.id,fieldsToMerge:L}}},{key:"_updateSingleNode",value:function(P){var L=[{parentId:P.parentId,proxyNodeToUpdate:{id:P.updateId},fieldsToMerge:P.fieldsToMerge}];this._performUpdate(L)}},{key:"_performUpdate",value:function(P){if(P.length!==0){var L=this._internalDataStore.update(P);L.changedIds=this._getCheckBoxTreeChangedIds(L),this._updateTreeData(L)}}},{key:"_doValidateOperation",value:function(P,L){var k=this;return new Promise(function(W,K){var V=void 0;P?V=P.call(k,L):V=new Promise(function(G){G({})}),V.then(function(G){W(k._getSuccessInfo(G))},function(G){K(k._getFailureInfo(G))})})}},{key:"_getSuccessInfo",value:function(P){return{message:P.message||"",reason:"",custom:P.custom||{},success:!0}}},{key:"_getFailureInfo",value:function(P){var L=new Error(P.message||"");return L.reason=s[P.reason]||s.ERROR_UNKNOWN,L.custom=P.custom||{},L.success=!1,L}},{key:"_doSaveOperation",value:function(P,L,k){var W=this,K=void 0;if(P)K=P.call(this,k);else{var V=new n;V.resolve({}),K=V.promise}return K.then(function(G){try{L.call(W,k)}catch(j){throw j.reason=s[j.reason]||s.ERROR_UNKNOWN,j.custom=j.custom||{},j.success=!1,j}return W._getSuccessInfo(G)},function(G){throw W._getFailureInfo(G)})}},{key:"getNode",value:function(P,L){var k=this;return P=a.normalize(P),new Promise(function(W,K){var V=c.findIndex(k._flattenedTree,function(z){return P.id===z.id}),G=null;if(L){var j=h.isValidCriteria(L);if(j){var Y=V>=0?k._queryMetaData(V,L):null;G=k._getTreeNodeInfo(Y),W(G)}K(new Error("invalid options criteria"))}else V>=0&&(G={index:V,node:k._flattenedTree[V]}),W(G)})}},{key:"_getTreeNodeInfo",value:function(P){var L=null;return P!=null?L={index:P,node:this._flattenedTree[P]}:L=null,L}},{key:"getParentNode",value:function(P){var L=this;return P=a.normalize(P),this.getNode(P).then(function(k){if(k){var W=void 0,K=L._internalDataStore.getAncestorIds(k.node.id,!0);return K.length>0&&(W=K[0]),L.getNode({id:W})}else return new T(function(V){return V(null)})})}},{key:"filter",value:function(P){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{displayChildren:!1};this._expandCollapseState.filtering||(this._expandCollapseState=this._expandCollapseToggle.getState(),this._expandCollapseState.filtering=!0);var k=this._internalDataStore.normalizeFilterCriteria(P),W=this._internalDataStore.filterTreeNode(k,L);return this._updateTreeData(W),new T(function(K){setTimeout(K,0)})}},{key:"clearFilter",value:function(){if(this._expandCollapseState.filtering){var P=this._internalDataStore.clearFilter();this._expandCollapseToggle.setState(this._expandCollapseState),this._expandCollapseState.filtering=!1,this._updateTreeData(P)}return new T(function(L){setTimeout(L,0)})}},{key:"search",value:function(P){var L={field:"",value:""};if(P&&(P.field||P.and||P.or))L=P;else throw new Error("Invalid Search Criteria");var k=this._internalDataStore.searchTreeNodes(L);return this._updateTreeData(k),new T(function(W){setTimeout(W,0)})}},{key:"clearSearch",value:function(){var P=this._internalDataStore.clearSearch();return this._updateTreeData(P),new T(function(L){setTimeout(L,0)})}},{key:"_updateChecked",value:function(P,L){var k=this._internalDataStore.updateChecked(P,L);return this._updateTreeData(k),new T(function(W){setTimeout(W,0)})}},{key:"_getCheckNodes",value:function(){var P=this._internalDataStore.getCheckedNodes(),L=P.checkedNodeIds,k={checkTrueNodes:L};return new T(function(W){setTimeout(function(){W(k)},0)})}},{key:"getChildNodes",value:function(P){var L=this,k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};P=a.normalize(P);var W={type:"child"};W.isRecursive=k.isRecursive||!1;var K=Object.getOwnPropertyNames(k).length,V="isRecursive"in k;return((typeof k=="undefined"?"undefined":D(k))!=="object"||K>1||K&&!V)&&console.warn("Invalid parameters passed, please see Tree data Store JSDoc for correct configuration"),W.node=k.node||{},new Promise(function(G){G(L._query(P,W))})}},{key:"_getColumnNumbersForSortCriteria",value:function(P){return P?[0]:[]}},{key:"_updateTreeData",value:function(P){if(!!P.changeOccurred){var L=this._flattenedTree;this._flattenedTree=this._flatten(),this._updateDataSize();var k=-1;if(P.updateAll)k=0;else{var W=new o;P.changedIds.forEach(function(G){W.set(G,!0)});var K=void 0,V=void 0;K=c.findIndex(L,function(G){return W.get(G.id)}),V=c.findIndex(this._flattenedTree,function(G){return W.get(G.id)}),K>=0&&V>=0?k=Math.min(K,V):k=Math.max(K,V)}k>=0&&this._dataChanged([t.range().setRows(k,1/0).setColumns(0,this.dataSize.columns.end)],P.columnMetaDataChanged)}}},{key:"_dataChanged",value:function(P){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this._on.emit("dataChanged",{rangeList:P});var k=this._internalDataStore.getMetaDataRanges();t.doesRangeListIntersect(P,k)&&this._emitPagedRowMetaDataChanged(P.map(function(W){return W.setColumns(0,0)})),L&&this._emitPagedColumnMetaDataChanged([t.range().setRows(0,0).setColumns(0,this.dataSize.columns.end)])}},{key:"_emitPagedColumnMetaDataChanged",value:function(P){this._on.emit("pagedColumnMetaDataChanged",{rangeList:P})}},{key:"_emitPagedRowMetaDataChanged",value:function(P){this._on.emit("pagedRowMetaDataChanged",{rangeList:P})}},{key:"on",value:function(P,L){var k=this._on.on(P,L);return this._listeners.push(k),k}},{key:"destroy",value:function(){this._listeners.forEach(function(P){return P.remove()}),this._metaDataRules=null,this._internalDataStore=null,this._flattenedTree=null}},{key:"_query",value:function(P){var L=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},k=P.id,W=[];return L.isRecursive?W=this._getRecursiveDataItems(k):W=this._getNodes(k)[w.CHILD](),Object.getOwnPropertyNames(L.node).length&&(W=this._filterDataItems(L.node,W)),W}},{key:"_queryMetaData",value:function(P,L){var k=void 0,W=void 0,K=void 0,V=this._flattenedTree.length,G=L.range&&L.range.rows&&L.range.rows.start?L.range.rows.start:0,j=L.range&&L.range.rows&&L.range.rows.end?L.range.rows.end:V-1,Y=G<0?0:G,z=j>V-1?V-1:j,Q=L.queryCriteria,X=Q&&Q.compare&&Q.compare.dataType?Q.compare.dataType:m.dataType.DEFAULT_DATA_TYPE,J=Q.metadata.field,$=Q.metadata.value,q=h.getValueByType(X,$),te=void 0,oe=void 0,le=!1,de=!1;switch(L.position){case g.POSITION.NEXT:if(k=1,P>=z)return null;K=P+k;break;case g.POSITION.PREVIOUS:if(k=-1,P<=Y)return null;K=P+k;break;case g.POSITION.FIRST:k=1,K=Y;break;case g.POSITION.LAST:k=-1,K=z;break;default:}for(W=K;!le;)W=K,K=K+k,te=this.getLocalRowMetaData(W)[J],oe=h.getValueByType(X,te),de=Wz,le=oe===q||de;return Wj?null:W}},{key:"_getNodes",value:function(P){var L=this._internalDataStore,k=this._flattenedTree,W={child:L.getChildNodes.bind(L,P,k),sibling:L.getSiblingNodes.bind(L,P,k),root:L.getRootNodes.bind(L,P,k),ancestor:L.getAncestorNodes.bind(L,P,k)};return W}},{key:"_getRecursiveDataItems",value:function(P){for(var L=this._getNodes(P).child(),k=[],W=[{arr:L}],K=0;W.length>0;){for(var V=W[K].arr,G=0;G1&&arguments[1]!==void 0?arguments[1]:{};v(this,F),this._data=b||[],this.type=N.type,this._columnMap=N.columnMap,this.setSortState(null);var P=T[this.type];this.type===R&&N.rowDataType===O&&this._setDefaultColumnOptionsForTreeTable(N),this._sort=new P(N.sorted,this._columnMap),this._sort.sorted&&this._sort.sort(this._data),this._isExpanded=N.isExpanded,this.getParentId=function(L){return L.parent},N.getParentId&&(this.getParentId=N.getParentId),this.setParentId=function(L,k){L.parent=k},N.setParentId&&(this.setParentId=N.setParentId),this.getId=function(L){return L.id},N.getId&&(this.getId=N.getId),this.getCheck=function(L){return L.check},N.getCheck&&(this.getCheck=N.getCheck),this.setCheck=function(L,k){L.check=k===!0},N.setCheck&&(this.setCheck=N.setCheck),this.isCheckboxTree=N.isCheckboxTree,this._isSearching=!1,this._treeNodeIdCache=new l,this._treeRootId=null,this._getCheckedState=function(L){return!1},this.isCheckboxTree&&(this._getCheckedState=this._getCheckStatus,this._checkSet={}),this._createTreeNode=function(L,k,W){var K=I.getId(L),V=I._isExpandable(K),G=I._getCheckedState(K);return N.createTreeNode(K,L,k,W,V&&I._isExpanded(K),V,G,I._getGroupRow(K))},this._indexCache=new s(this._data,{getId:this.getId}),this._createParentCache(),this._makeCheckSets()}return D(F,[{key:"_setDefaultColumnOptionsForTreeTable",value:function(I){if(this._columnMap||(this._columnMap=Object.keys(this._data[0])),!this._columnMap)throw new Error("options.columnMap or at least one row of data must be specified.")}},{key:"setSortState",value:function(I){this._sortState=I}},{key:"getSortState",value:function(){return this._sortState}},{key:"_clearSortSettings",value:function(){this.setSortState([]),this._sort.removePersistentSort()}},{key:"_getGroupRow",value:function(I){if(this._groupRowIdCache&&this._groupRowIdCache.get(I))return this._groupRowIdCache.get(I)}},{key:"setGrouping",value:function(I){var N=this;this._isGrouping=!0,this._setGrouping=function(){var P=I(),L=P.groupingData,k=P.groupRowMeta,W=P.getParentIdForGrouping;N._groupRowIdCache=new l,Object.keys(k).forEach(function(K){N._groupRowIdCache.set(K,k[K])}),N._getParentIdForGrouping=W,N._createParentCache(L,W)},this._clearSortSettings(),this._updateResults()}},{key:"getNumColumns",value:function(){return w}},{key:"getColumnMap",value:function(){return this._columnMap}},{key:"getCell",value:function(I,N){return I[N]}},{key:"setCell",value:function(I,N,P){I[N]=P}},{key:"getMetaDataRanges",value:function(){return this._metaDataRanges}},{key:"_hasChild",value:function(I){var N=this;return n.findIndex(this._data,function(P){return N.getParentId(P)===I})>=0}},{key:"_isExpandable",value:function(I){var N=this._parentCache.get(I);return!!(N&&N.length>0)}},{key:"_updateParentCacheNode",value:function(I,N){var P=this,L=this._parentCache.get(I);if(!L||L.length===0){N.index===void 0&&(N.index=this._getIndexById(this.getId(N.node))),this._parentCache.set(I,[N]);return}var k=void 0,W=L.length-1,K=0,V=void 0,G=void 0,j=void 0;if(N.index!==void 0?(k=N.index,V=L[W].index,G=L[K].index,j=function(Q){return Q.index>N.index}):(k=this._getIndexById(this.getId(N.node)),V=this._getIndexById(this.getId(L[W].node)),G=this._getIndexById(this.getId(L[K].node)),j=function(Q){return P._getIndexById(P.getId(Q.node))>k},N.index=k),Vk)L.unshift(N);else{var Y=n.findIndex(L,j);L.splice(Y,0,N)}}},{key:"_createChildIndexValue",value:function(I,N){return N!==void 0?{node:I,index:N}:{node:I}}},{key:"_createParentCache",value:function(I,N){var P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this._parentCache=new l,this._rootNodes=[],P=P||this._isGrouping||N!==void 0,I=I||this._data;for(var L=N||this.getParentId,k=I.length,W=0;W1&&arguments[1]!==void 0?arguments[1]:!1,P=this._parentCache.get(I),L=[];if(P)for(var k=0;k<=P.length-1;k++){var W=this.getId(P[k].node);N&&this._isLeafNode(W)||L.push(W)}return L}},{key:"_computeCheckStateOfNode",value:function(I){if(I.id!==S)return this._isLeafNode(I.id)?this._getNodeCheckStateForSet(this._getNodeInfo(I.id)):this._stateToString(this._computeCheckStateForSubTree(I.id))}},{key:"_stateToString",value:function(I){if(I.discoveredUnChecked&&I.discoveredChecked)return h;if(I.discoveredChecked)return g;if(I.discoveredUnChecked)return m}},{key:"_computeCheckStateForSubTree",value:function(I,N){N=N||{discoveredChecked:!1,discoveredUnChecked:!1};var P=this._getChildIdsForParentId(I),L=this.__getModifiedStateAndChildListToTraverse(I,P,N),k=L.newChildIds,W=L.newState;if(N=W,N.discoveredChecked&&N.discoveredUnChecked)return N;P=k;for(var K=0;K<=P.length-1;K++)if(N=this._computeCheckStateForSubTree(P[K],N),N.discoveredChecked&&N.discoveredUnChecked)return N;return N}},{key:"__getModifiedStateAndChildListToTraverse",value:function(I,N,P){if(this._checkSet[I]){var L=this._checkSet[I].checkValue;L===h&&(P.discoveredUnChecked=!0,P.discoveredChecked=!0),L===g&&(P.discoveredChecked=!0,N=this._removeSetLeafNodes(N,this._checkSet[I].leafChildren)),L===m&&(P.discoveredUnChecked=!0,N=this._removeSetLeafNodes(N,this._checkSet[I].leafChildren))}return{newChildIds:N,newState:P}}},{key:"_removeSetLeafNodes",value:function(I,N){for(var P=[],L=0;L<=N.length-1;L++)P.push(N[L].id);return I=I.filter(function(k){return!P.includes(k)}),I}},{key:"_reactToAddNode",value:function(I,N){if(I===null||!this._isLeafNode(I)){this._pushToCheckSet({directParent:I,leafChild:{id:this.getId(N),node:N}});return}this.__removeLeafNodeFromCheckSet(I,this.getParentId(this._getNodeInfo(I)),!1),this._pushToCheckSet({directParent:I,leafChild:{id:this.getId(N),node:N}})}},{key:"_reactToRemoveNode",value:function(I,N,P){if(this._isLeafNode(I)){this.__removeLeafNodeFromCheckSet(I,N);return}if(P.keepChildren!==!0){if(this.__removeSubTreeFromId(I),N===null)return;if(this._getChildIdsForParentId(N).length===1){var L=this._getParentIdForNodeId(N);this._pushToCheckSet({directParent:L,leafChild:{id:N,node:this._getNodeInfo(N)}})}return}for(var k=this._getChildIdsForParentId(I),W=0;W<=k.length-1;W++)this.__reactToReparentNode(k[W],I,N);this.__isIdPartOfParentCheckCache(I,N)&&this.__removeLeafNodeFromCheckSet(I,N)}},{key:"__isIdPartOfParentCheckCache",value:function(I,N){N===null&&(N=S);var P=!1;if(this._checkSet[N]){for(var L=this._checkSet[N].leafChildren,k=0;k<=L.length-1;k++)if(L[k].id===I){P=!0;break}}return P}},{key:"__removeSubTreeFromId",value:function(I){this._checkSet[I]&&this.__removeCheckSetEntry(I);for(var N=this._getChildIdsForParentId(I,!0),P=0;P<=N.length-1;P++)N.push.apply(N,_(this._getChildIdsForParentId(N[P],!0))),this._checkSet[N[P]]&&this.__removeCheckSetEntry(N[P])}},{key:"_getParentIdForNodeId",value:function(I){if(I!==null){var N=this._getNodeInfo(I);if(N)return this.getParentId(N)}}},{key:"__reactToReparentNode",value:function(I,N,P){if(this._isLeafNode(P)&&this.__removeLeafNodeFromCheckSet(P,this.getParentId(this._getNodeInfo(P))),!!this._isLeafNode(I)){this.__removeLeafNodeFromCheckSet(I,N),this._pushToCheckSet({directParent:P,leafChild:{id:I,node:this._getNodeInfo(I)}});var L=this._getParentIdForNodeId(P);if(L!==void 0){var k=this._getParentIdForNodeId(L);k!==void 0&&this.__removeLeafNodeFromCheckSet(L,k,!1)}}}},{key:"__doesIdExistInLeafChildren",value:function(I,N){for(var P=!1,L=0;L<=N.length-1;L++)if(N[L].id===I){P=!0;break}return P}},{key:"__removeLeafNodeFromCheckSet",value:function(I,N){var P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(N===null&&(N=S),this._checkSet[N]){if(!this.__doesIdExistInLeafChildren(I,this._checkSet[N].leafChildren))return;if(this._checkSet[N].leafChildren.length>1){this._checkSet[N].leafChildren=this._checkSet[N].leafChildren.filter(function(W){return W.id!==I});var L=this._checkSet[N].checkValue,k=this._checkSet[N].leafChildren;this._checkSet[N].checkValue=this._determineStateForSetOnRemovingLeafNode(L,k);return}this._getChildIdsForParentId(N).length===1&&P&&this._pushToCheckSet({directParent:this.getParentId(this._getNodeInfo(N)),leafChild:{id:N,node:this._getNodeInfo(N)}}),this.__removeCheckSetEntry(N)}}},{key:"__removeCheckSetEntry",value:function(I){delete this._checkSet[I]}},{key:"filterTreeNode",value:function(I,N){this._filterOptions=N;var P=N.displayChildren,L=this.getParentId,k=function(){return{checkTrueNodes:[],checkFalseNodes:[]}};this._isGrouping&&(L=this._getParentIdForGrouping),this.isCheckboxTree&&(k=this.getCheckedNodes),this._filter=this._instantiateFilter(I,{getId:this.getId,getParentId:L,treeRootId:this._treeRootId,checkedNodeIds:k.bind(this),columnMap:this._columnMap});for(var W=0;W0;){for(var L=P.length-1,k=P[L].lastIndex,W=P[L].arr,K=k,V=W.length;K0;){for(var V=K.length-1,G=K[V].lastIndex,j=K[V].arr,Y=G,z=j.length,Q=K[V].path;Y=0&&(W=Y,G=!0)}G&&k==="after"&&(W+=1)}return W}},{key:"_updateSortState",value:function(){return this._sort.sorted?!1:(this.setSortState(null),!0)}},{key:"add",value:function(I,N,P){this.isCheckboxTree&&this._reactToAddNode(I,N),this._reCreateParentCacheInGrouping(),this.setParentId(N,I);var L=this._calcPlacementIndex(I,N,P),k=this._isExpandable(I);this._data.splice(L,0,N),this._indexCache.setNode(this.getId(N),L,{index:L,node:N}),this._updateParentCacheNode(I,this._createChildIndexValue(N));var W=[this.getId(N)];k!==this._isExpandable(I)&&W.push(I);var K=this._updateResults(),V=this._updateSortState();return{changeOccurred:!0,changedIds:W,updateAll:K,columnMetaDataChanged:V}}},{key:"addNodes",value:function(I){for(var N=[],P=0;P<=I.length-1;P++){I[P].options===void 0&&(I[P].options={place:"last"});var L=this._add(I[P].parentProxy.id,I[P].nodeToAdd,I[P].options),k=L.changedIds;N.push.apply(N,_(k))}var W=this._updateResults(),K=this._updateSortState();return{changeOccurred:!0,changedIds:N,updateAll:W,columnMetaDataChanged:K}}},{key:"_add",value:function(I,N,P){this.isCheckboxTree&&this._reactToAddNode(I,N),this._reCreateParentCacheInGrouping(),this.setParentId(N,I);var L=this._calcPlacementIndex(I,N,P),k=this._isExpandable(I);this._data.splice(L,0,N),this._indexCache.setNode(this.getId(N),L,{index:L,node:N}),this._updateParentCacheNode(I,this._createChildIndexValue(N));var W=[this.getId(N)];return k!==this._isExpandable(I)&&W.push(I),{changedIds:W}}},{key:"remove",value:function(I){for(var N=!1,P=[],L=0;L<=I.length-1;L++){I[L].options===void 0&&(I[L].options={keepChildren:!1});var k=this._remove(I[L].parentId,I[L].proxyNodeToRemove.id,I[L].options),W=k.changeOccurred,K=k.changedIds;!N&&W&&(N=W),Array.isArray(K)&&(P=[].concat(_(P),_(K)))}if(N){var V=this._updateResults(),G=this._updateSortState();return{changeOccurred:N,changedIds:P,updateAll:V,columnMetaDataChanged:G}}return{changeOccurred:!1}}},{key:"_remove",value:function(I,N,P){var L=this;this._reCreateParentCacheInGrouping();var k=this._getIndexById(N);if(k<0)return{changeOccurred:!1};this.isCheckboxTree&&this._reactToRemoveNode(N,I,P);var W=this._isExpandable(I),K=void 0;if(P.keepChildren){var V=this.getChildIndiciesByParent(N);V.forEach(function(J){L.setParentId(J.node,I),L._updateParentCacheNode(I,{node:J.node})}),K=[k]}else{var G=[],j=function J($){if($.length!==0){var q=[];$.forEach(function(te){var oe=L.getId(te.node);q=q.concat(L.getChildIndiciesByParent(oe))}),G=G.concat(q),J(q)}};j([this._createChildIndexValue(this._data[k])]),K=G.map(function(J){return J.index}),K.push(k),K.sort(function(J,$){return $-J})}for(var Y=[],z=0;z0&&N&&I!==this._treeRootId?L.push(I):k.length===0&&P.push(I);for(var W=[{arr:k}],K=0;W.length>0;){for(var V=W[K].arr,G=V.length,j=0;j=0)k={index:V,node:N[V]};else{var G=P._createTreeNode(K.node,null);k={index:null,node:{id:G.id,isExpandable:G.isExpandable,isExpanded:G.isExpanded,level:G.level,data:G.data}}}W.push(k)}),W)}},{key:"getSiblingNodes",value:function(I){throw new Error("This configuration is not suported")}},{key:"getRootNodes",value:function(I){throw new Error("This configuration is not suported")}},{key:"getAncestorNodes",value:function(I){throw new Error("This configuration is not suported")}},{key:"_removeParentCacheNode",value:function(I,N){var P=this,L=this._parentCache.get(I);if(!!L){var k=this._getIndexById(this.getId(N.node)),W=n.findIndex(L,function(K){return P._getIndexById(P.getId(K.node))===k});L.splice(W,1)}}},{key:"move",value:function(I,N,P,L){this._reCreateParentCacheInGrouping();var k=this._getIndexById(N);if(k<0)return{changeOccurred:!1};if(P&&!this._indexCache.hasIndex(P)){var W=new Error("New parent Id does not exists");throw W.reason=f,W}var K=this.getAncestorIds(P);if(K.indexOf(N)>=0||N===P){var V=new Error("Move caused a circular reference");throw V.reason=d,V}this.isCheckboxTree&&this.__reactToReparentNode(N,I,P);var G=this._calcPlacementIndex(P,this._data[k],L),j=this._isExpandable(P),Y=this._isExpandable(I),z=this._data[k];k>=0&&G>=0&&k!==G?(this._removeParentCacheNode(I,{node:z}),this._indexCache.removeNode(N,k),this._data.splice(k,1),k0&&(K=!0);var V=this._updateResults();return{changeOccurred:K,changedIds:K?W:[],updateAll:V}}},{key:"_getNodeInfo",value:function(I){var N=this._getIndexById(I);return this._data[N]}},{key:"_getCheckedNodes",value:function(){var I=this,N=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,P=[],L=[];Object.keys(this._checkSet).forEach(function(K){I._checkSet[K].checkValue===I._booleanToCheckState(N)&&L.push(K),I._checkSet[K].checkValue===h&&P.push(K)});var k=this.__traverseUpAndGetAllCheckedIdsForParentIds(L,this._booleanToCheckState(N)),W=[];return W.push.apply(W,_(this.__getCheckedLeafIdsForDirectParentIds(L,this._booleanToCheckState(N)))),W.push.apply(W,_(this.__getCheckedLeafIdsForDirectParentIds(P,this._booleanToCheckState(N)))),W.push.apply(W,_(this.__filterCheckedIds(L,this._booleanToCheckState(N)))),W.push.apply(W,_(k)),W}},{key:"__getCheckedLeafIdsForDirectParentIds",value:function(I,N){for(var P=[],L=0;L<=I.length-1;L++)P.push.apply(P,_(this.__getCheckedLeafIdsForDirectParentId(I[L],N)));return P}},{key:"__getCheckedLeafIdsForDirectParentId",value:function(I,N){for(var P=[],L=this._checkSet[I].checkValue,k=0;k<=this._checkSet[I].leafChildren.length-1;k++){if(L===N){P.push(this._checkSet[I].leafChildren[k].id);continue}this._computeCheckStateOfNode({id:this._checkSet[I].leafChildren[k].id})===N&&P.push(this._checkSet[I].leafChildren[k].id)}return P}},{key:"__traverseUpAndGetAllCheckedIdsForParentIds",value:function(I,N){for(var P=[],L=!0,k=[];L||k.length>0;){L&&(L=!1,k=I);var W=this.__getAncestorIdsForNodeIds(k);k=this.__filterCheckedIds(W,N),P.push.apply(P,_(k))}return P}},{key:"__getAncestorIdsForNodeIds",value:function(I){for(var N=new Set,P=0;P<=I.length-1;P++){var L=void 0;I[P]===S?L=null:L=this.getParentId(this._getNodeInfo(I[P])),L!==null&&N.add(L)}return[].concat(_(N))}},{key:"__filterCheckedIds",value:function(I,N){for(var P=[],L=0;L<=I.length-1;L++)this._computeCheckStateOfNode({id:I[L]})===N&&P.push(I[L]);return P}},{key:"getCheckedNodes",value:function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,N=[],P=[];return N=this._getCheckedNodes(),I&&(P=this._getCheckedNodes(!1)),{checkedNodeIds:N,unCheckedNodeIds:P}}},{key:"_getCheckStatus",value:function(I){var N=this._computeCheckStateOfNode({id:I});return N===g||N===m?this._checkStateToBoolean(N):N}}]),F}()},C,x),C.exports=E},function(C,x,u){"use strict";var A,E,D=function(){function v(l,n){for(var e=0;e0&&this._searchCache&&this._setMatchesInCache(e,t),t}},{key:"searchMatchedNodes",value:function(e,t,r){for(var i=[],a=!1,s=0;s0&&(i.push({field:t[s].columnIndex!==void 0?t[s].columnIndex:t[s].field,matches:h}),a=!0)}}else if(o){var g=this._compositeCriteria(e,t[s]);g.length>0&&(i=i.concat(g),a=!0)}if(!a&&!r)return[]}}return i}},{key:"_isValidCriteria",value:function(e,t,r){return!(r===null||e[t]===null||!(t in e)||e[t]===void 0)}},{key:"_searchNode",value:function(e,t,r){for(var i=!1,a=this.escapeRegExp(t),s=new RegExp(a,"gi"),c=0,o=[];c=s.exec(r);){var d={};d.start=c.index,d.count=t.length,d.value=t,o.push(d),i=!0}return i?this._createSearchMetadata(o,e):null}},{key:"_compositeCriteria",value:function(e,t){var r=[];return t.and?r=this.searchMatchedNodes(e,t.and,!1):t.or&&(r=this.searchMatchedNodes(e,t.or,!0)),r}},{key:"_setMatchesInCache",value:function(e,t){this._searchCache.set(this._getId(e),t)}},{key:"isNodeAMatch",value:function(e){return this._searchCache.has(this._getId(e))}},{key:"getMatchesFromCache",value:function(e){return this._searchCache.get(this._getId(e))}},{key:"_createSearchMetadata",value:function(e,t){return{field:t,matches:e}}},{key:"getSearchCriteria",value:function(){return this._criteria}},{key:"escapeRegExp",value:function(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}}]),l}()},C,x),C.exports=E},function(C,x,u){"use strict";var A,E,D=function(){function v(l,n){for(var e=0;e0||c.indexOf("*")>0||c.indexOf("$")>0)throw new Error('"|", "*", and "$" are invalid in metadata rule names');this.addBuiltIn(c,o)}},{key:"addBuiltIn",value:function(c,o){if(typeof o._getRangeList!="function"||typeof o.getMetaData!="function")throw new Error("A metaDataRule must be created using 'create' before trying to add it");var d=this._metaData[c],f=[];d&&(f=this._getOrderedRules(d).remove(c));var h=o._getRangeList();this._metaData[c]=o;var g=o.getMetaData();g.cell=g.cell||{},g.row=g.row||{},g.column=g.column||{};var m={name:c,rangeList:h,metaData:g,isDynamic:o.isDynamic,applyMetaDataFunction:o._applyMetaDataFunction,dataSelector:o.dataSelector};this._getOrderedRules(o).add(m),this._clearCache(),this._raiseChangeEvent(f.concat(h))}},{key:"_getOrderedRules",value:function(c){return this._isHierarchicalRule(c)?c.isDynamic?this._hierarchicalDynamicMetaDataOrder:this._hierarchicalMetaDataOrder:c.isDynamic?this._dynamicMetaDataOrder:this._metaDataOrder}},{key:"remove",value:function(c){if(c.indexOf("|")>-1||c.indexOf("*")>-1||c.indexOf("$")>-1)throw new Error('"|", "*", and "$" are invalid in metadata rule names');this.removeBuiltIn(c)}},{key:"removeBuiltIn",value:function(c){var o=this._metaData[c];if(!o)throw new Error("'"+c+"' does not exist");this._clearCache();var d=this._getOrderedRules(o).remove(c);delete this._metaData[c],this._raiseChangeEvent(d)}},{key:"get",value:function(c){var o=this._metaData[c];if(!o)throw new Error("'"+c+"' does not exist");return this._metaData[c]}},{key:"_raiseChangeEvent",value:function(c){this._on.emit("metaDataChanged",{rangeList:c})}},{key:"getCellMetaData",value:function(c){var o={rows:{start:c.rowIndex,end:c.rowIndex,count:1},columns:{start:c.columnIndex,end:c.columnIndex,count:1}};return c.dynamic&&(c.dynamic.columnIndex=c.columnIndex,c.dynamic.rowIndex=c.rowIndex),this._getMetaData(o,"cell",c)}},{key:"getRowMetaData",value:function(c){var o={rows:{start:c.rowIndex,end:c.rowIndex,count:1},columns:{start:0,end:0,count:1}};return c.dynamic&&(c.dynamic.rowIndex=c.rowIndex),this._getMetaData(o,"row",c)}},{key:"getColumnMetaData",value:function(c){var o={rows:{start:0,end:0,count:1},columns:{start:c.columnIndex,end:c.columnIndex,count:1}};return c.dynamic&&(c.dynamic.columnIndex=c.columnIndex),this._getMetaData(o,"column",c)}},{key:"_getMetaData",value:function(c,o,d){var f=this._metaDataOrder.getRulesForRange(c);Array.prototype.push.apply(f,this._hierarchicalMetaDataOrder.getRulesForRange(d)),Array.prototype.push.apply(f,this._dynamicMetaDataOrder.getRulesForRange(c)),Array.prototype.push.apply(f,this._hierarchicalDynamicMetaDataOrder.getRulesForRange(d));var h={},g=this._cacheRuleResult[o],m=void 0,S=void 0,T=void 0,w=void 0,R=void 0;for(R=0;R
',getChildren:function(){var j=Array.prototype.slice.call(this.menuItemsNode.childNodes);return j}});return D(W.validate([e,t,r,i,a,o,d,f,h,g,m,S,T,w,R,O]),{baseClass:"mwWidget mwComboBox",templateString:K,editable:!1,value:"",items:[],text:"",height:22,width:150,maxHeight:500,ORIENTATION_VALUES:{below:["below","below-alt"],vertical:["below","below-alt","above","above-alt"],horizontal:["after","before"]},closeOnWindowResize:!0,blurAfterSelection:!1,_boundWindowResizeHandler:null,_boundWindowScrollHandler:null,constructor:function(j){if(j=j||{},this._textField=new F({editable:!1,disabled:!0}),this.own(this._textField),this.own(_(this._textField,"typing",this._handleTextFieldTyping.bind(this)),_(this._textField,"keydown",this._handleTextFieldKeyDown.bind(this)),_(this._textField,"keyup",this._handleTextFieldKeyUp.bind(this))),this.menu=new G({}),this.own(this.get("menu")),this.menu.onOpen=function(){window.addEventListener("scroll",this._boundWindowScrollHandler,!0)}.bind(this),this.menu.onClose=function(){window.removeEventListener("scroll",this._boundWindowScrollHandler,!0)}.bind(this),this._isTextEmpty=!0,this._pendingValue=null,j&&this.get("editable")===!1&&j.value&&!j.items)throw new Error("Value cannot be set on a non-editable combo box without having items");this._boundWindowResizeHandler=this._handleWindowResize.bind(this),this._boundWindowScrollHandler=this._handleWindowScroll.bind(this)},postCreate:function(){this.inherited(arguments),this.own(_(this.domNode,"mousedown",this.focus.bind(this)),_(this.domNode,"blur",this._handleDomNodeBlur.bind(this),!0),_(this.domNode,"keydown",this._handleDomNodeKeyDown.bind(this)),_(this.menu.menuItemsNode,"click",this._handleMenuClick.bind(this)),_(this.menu.menuItemsNode,"keydown",this._handleMenuKeyDown.bind(this)),_(this._textField,"mouseover",this._handleTextFieldMouseover.bind(this)),_(this._textField,"change",this._handleTextFieldChange.bind(this),!0)),this._menuNodeMouseDownHandler||(this._menuNodeMouseDownHandler=this._handleArrowNodeMouseDown.bind(this),this.menuNode.addEventListener("mousedown",this._menuNodeMouseDownHandler)),this.get("disabled")===!0&&(this.menuNode.removeEventListener("mousedown",this._menuNodeMouseDownHandler),this._menuNodeMouseDownHandler=null),this.menu.domNode.addEventListener("blur",this._handleMenuBlur.bind(this),!0),window.addEventListener("resize",this._boundWindowResizeHandler,!0),(this.get("items")===void 0||this.get("items").length===0)&&this.set("items",[]),this.set("menuOrientation","vertical")},_handleWindowResize:function(){this.closeOnWindowResize===!0&&this._comboBoxMenuOpened===!0&&this.closeMenu()},_handleWindowScroll:function(j){if(this._comboBoxMenuOpened&&j.srcElement!==this.menu.domNode.parentElement&&!this.active){var Y=j.srcElement===document;if(Y&&document.activeElement&&document.activeElement.classList.contains("mwMenuItem")){var z=document.activeElement.getBoundingClientRect();(Math.abs(window.innerHeight-z.bottom)<=z.height||Math.abs(z.top)<=z.height)&&(Y=!1)}if(!Y)for(var Q=this.domNode;Q!==null;){if(Q===j.srcElement){Y=!0;break}Q=Q.parentElement}Y&&this.closeMenu()}},_setCloseOnWindowResizeAttr:function(j){if(typeof j!="boolean")throw new Error("Input value expected to be of type 'boolean'.");this._set("closeOnWindowResize",j)},startup:function(){this.inherited(arguments),this.menu.startup(),this._textField.startup(),this._isResized||this.resize()},destroy:function(){window.removeEventListener("resize",this._boundWindowResizeHandler,!0),window.removeEventListener("scroll",this._boundWindowScrollHandler,!0),this._boundWindowResizeHandler=null,this._boundWindowScrollHandler=null,this.inherited(arguments)},buildRendering:function(){this.inherited(arguments),this._textField.placeAt(this.textFieldContainerNode),this.inputNode=this._textField.inputNode,this.focusNode=this.domNode},_isDescendant:function(j,Y){if(j===Y)return!0;for(var z=Y.parentNode;z!=null;){if(z===j)return!0;z=z.parentNode}return!1},_handleArrowNodeMouseDown:function(j){this._comboBoxMenuOpened!==!0?j.button===0&&this._openComboBoxMenu():this.closeMenu(),this._arrowNodeWasClicked=!0,setTimeout(function(){this._arrowNodeWasClicked=!1}.bind(this),200)},closeMenu:function(j){!this.get("blurAfterSelection")&&!j?s.focus(this.focusNode):(v("ff")&&this._isDescendant(this.menu.domNode,document.activeElement)&&document.activeElement.blur(),v("safari")&&this._isDescendant(this.menu.domNode,document.activeElement)&&setTimeout(function(){document.activeElement.blur()},200)),n.close(this.get("menu"))},_closeMenuOnBlur:function(j){if(!this._arrowNodeWasClicked&&!(j&&typeof j=="object"&&typeof j.relatedTarget!="undefined"&&j.relatedTarget!==null&&(this._isDescendant(this.domNode,j.relatedTarget)||this._isDescendant(this.menu.domNode,j.relatedTarget)))&&(this._comboBoxMenuOpened&&this.closeMenu(!0),!this._beingDestroyed)){var Y=this.get("value"),z=this._getSelectedItemFromLabel(Y);z||(z={label:"",value:""}),this.get("editable")===!0&&this.inputNode.value!==""&&this.inputNode.value!==z.label&&this.inputNode.value!==this.get("value")?(z=this._getSelectedItemFromLabel(this.inputNode.value),z&&z.index!==void 0?this.set("value",z.value):this.set("value",this.inputNode.value)):this.inputNode.value===""&&this.get("value")!==""&&this.get("editable")===!0&&this.set("value","");var Q=this.get("value");Y!==Q&&this._triggerChangeEvent("value",Y,Q)}},_handleMenuBlur:function(j){this._closeMenuOnBlur(j)},_handleMenuItemMouseEnter:function(j){k.isFocusable(j.target)&&s.focus(j.target)},_onBlur:function(j){this.get("editable")===!0&&this._closeMenuOnBlur(j),this.inherited(arguments)},_handleTextFieldMouseover:function(j){!this.get("disabled")&&this._isDescendant(this.menu.domNode,document.activeElement)&&s.focus(this.focusNode)},_handleTextFieldChange:function(j){j.stopPropagation(),j.preventDefault()},_handleDomNodeBlur:function(j){this.get("editable")===!1&&this._closeMenuOnBlur(j)},_handleUpAndDownArrow:function(j){var Y=this.get("menu").getChildren(),z=this._get("value")!==void 0?this._getSelectedItemFromValue(this._get("value")):void 0,Q,X;if(j.keyCode===l.DOWN_ARROW){for(this._comboBoxMenuOpened||this._openComboBoxMenu(),Q=z&&z.index!==void 0?z.index%Y.length:0,X=Q;X=0;X--)if(this._isKeyboardNav(Y[X])){s.focus(Y[X]);break}j.preventDefault()}},_handleDomNodeKeyDown:function(j){this.domNode.closest(".enableInactive")!=null&&j.keyCode!=V||(this.get("editable")===!1&&!this.get("disabled")&&(this._handleUpAndDownArrow(j),(j.keyCode===l.SPACE||j.keyCode===l.ENTER)&&(this._comboBoxMenuOpened!==!0?this._openComboBoxMenu():this.closeMenu(),j.stopPropagation(),j.preventDefault())),j.keyCode===l.ESCAPE&&(this._comboBoxMenuOpened===!0&&(j.stopPropagation(),j.preventDefault()),this.closeMenu()))},_setDisabledAttr:function(j){this.inherited(arguments),j===!0?(this._removeMenuNodeMouseDownHandler(),this._comboBoxMenuOpened&&this.closeMenu()):this._addMenuNodeMouseDownHandler(),this.get("editable")===!0&&this._textField.set("disabled",j),j?(this.domNode.removeAttribute("tabIndex"),this._textField.focusNode.removeAttribute("tabIndex")):this.get("editable")?(this.domNode.removeAttribute("tabIndex"),this._textField.focusNode.setAttribute("tabIndex","0")):(this._textField.focusNode.removeAttribute("tabIndex"),this.domNode.setAttribute("tabIndex","0"))},_handleTextFieldKeyDown:function(j){if(this._gotTextFieldKeyDownForEnterOrSpace=(j.keyCode===l.ENTER||j.keyCode===l.SPACE)&&!this.get("disabled"),this.get("editable")===!0&&this._handleUpAndDownArrow(j),this.get("editable")===!0&&j.keyCode===l.ENTER){var Y=this.inputNode.value;this._isTextEmpty=!0;var z=this._getSelectedItemFromLabel(Y),Q=this.get("value");z&&z.index!==void 0?this.set("value",z.value):this.set("value",this.inputNode.value);var X=this.get("value");Q!==X&&this._triggerChangeEvent("value",Q,X),this.closeMenu()}},_openComboBoxMenu:function(j){var Y=this._get("value")!==void 0?this._getSelectedItemFromValue(this._get("value")):void 0;Y!==void 0&&this.get("menu").getChildren().length>0&&(this.get("menu").getChildren()[Y.index].classList.add("mwComboBoxSelectedMenuItem"),(!j||!j.noFocus)&&this.get("menu").getChildren()[Y.index].focus()),(!j||!j.typing)&&this.get("menu").getChildren().forEach(function(le,de){le.style.display==="none"&&(le.style.display="")});const z=I.getTheme(this.domNode),Q=z?b[z]:b.light;Q===b.light?I.setTheme(N.LIGHT,this.menu.domNode):Q===b.dark&&I.setTheme(N.DARK,this.menu.domNode),this.menu.domNode.style.minWidth=this.domNode.getBoundingClientRect().width-2+"px";var X=n.open({parent:this,popup:this.get("menu"),around:this.domNode,orient:this.menuOrientation,onClose:function(){this._destroyed||(this.domNode.classList.remove("mwHasMenuOpened"),this.domNode.classList.contains("mwHasMenuOpenedTop")?this.domNode.classList.remove("mwHasMenuOpenedTop"):this.domNode.classList.remove("mwHasMenuOpenedBottom")),this._comboBoxMenuOpened=!1,this.menu&&this.menu.domNode&&this.menu.domNode.parentNode&&(this.menu.domNode.parentNode.style.overflowX="visible",this.menu.domNode.parentNode.style.overflowY="visible",this.menu.domNode.parentElement.classList.remove("mwDropDownHasOpenedUpwards"),this.menu.domNode.parentElement.classList.remove("mwDropDownHasOpenedDownwards"),this.menu.domNode.parentElement.classList.remove("mwDropDownHasScrollbars"),this.menu.domNode.parentElement.classList.remove("mwDropDownHasMaxHeight"))}.bind(this)}),J=this.get("menu").domNode.parentElement,$=J.getBoundingClientRect(),q=this.domNode.getBoundingClientRect();$.topq.top&&(J.style.height=q.top-$.top+"px",J.style.overflowY="scroll"),this.domNode.classList.add("mwHasMenuOpened"),X&&X.corner&&X.corner==="BL"?(this.domNode.classList.add("mwHasMenuOpenedTop"),this.menu.domNode.parentElement.classList.add("mwDropDownHasOpenedUpwards")):(this.domNode.classList.add("mwHasMenuOpenedBottom"),this.menu.domNode.parentElement.classList.add("mwDropDownHasOpenedDownwards")),this._comboBoxMenuOpened=!0,this.menu.domNode.parentElement.classList.contains("mwComboBoxPopupParent")||this.menu.domNode.parentElement.classList.add("mwComboBoxPopupParent");var te=this.menu.domNode.parentElement;if(te){te.style.border="";var oe=te.scrollHeight>te.clientHeight;if(oe){te.classList.add("mwDropDownHasScrollbars");const le=I.getTheme(this.domNode),de=le?b[le]:b.light;de===b.light?te.classList.add("lightScrollbar"):de===b.dark&&te.classList.add("darkScrollbar"),te.clientHeight===this.get("maxHeight")&&te.classList.add("mwDropDownHasMaxHeight")}}},_handleTextFieldTyping:function(j){var Y=j.mwEventData.currentContent,z=new RegExp(this._escapeRegExp(Y),"i");this.get("menu").getChildren().forEach(function(X,J){if(this._isSeparator(X)){X.style.display="none";return}var $=X.textContent;$.toLowerCase().indexOf(Y.toLowerCase())===0?(Y!==""||z.test($))&&(X.style.display=""):X.style.display="none"}.bind(this));var Q=0;this.get("menu").getChildren().forEach(function(X){this._isSeparator(X)&&Q>0?(X.style.display="block",Q=0):!this._isSeparator(X)&&X.style.display!=="none"&&Q++}.bind(this)),this._openComboBoxMenu({typing:!0,noFocus:!0})},_handleMenuKeyDown:function(j){j.keyCode===l.BACKSPACE?(j.preventDefault(),s.focus(this._textField.focusNode)):(j.keyCode===l.ENTER||j.keyCode===l.SPACE)&&!this.get("disabled")?_.emit(j.target,"click",{bubbles:!0,cancelable:!0,mwEventData:{keyCode:j.keyCode},_dojo_click:!0}):j.keyCode===l.ESCAPE?(this.closeMenu(),s.focus(this.focusNode),j.stopPropagation(),j.preventDefault()):this.editable&&j.keyCode!==l.DOWN_ARROW&&j.keyCode!==l.UP_ARROW&&s.focus(this._textField.focusNode)},_handleTextFieldKeyUp:function(j){!this._gotTextFieldKeyDownForEnterOrSpace&&(j.keyCode===l.ENTER||j.keyCode===l.SPACE)&&!this.get("disabled")&&(j.stopPropagation(),j.preventDefault()),this._gotTextFieldKeyDownForEnterOrSpace=!1},_handleMenuClick:function(j){if(this._isSeparator(j.target)||!j.target.classList.contains("mwMenuItem")&&!j.target.classList.contains("mwTextNode")){j.preventDefault();return}var Y=this._getItemForNode(j.target),z=Y.value,Q=this.get("value");this.set("value",z),Q!==z&&this._triggerChangeEvent("value",Q,z),this.closeMenu()},_getItemForNode:function(j){for(var Y=this.get("menu"),z=this.get("items"),Q=Y.getChildren(),X=null,J=0;J0&&this.get("menu").getChildren()[j.index].classList.remove("mwComboBoxSelectedMenuItem")}},_getParentPopup:function(j){for(;j;){if(j.classList&&j.classList.contains("dijitPopup"))return j;j=j.parentNode}return null},resize:function(){var j=22;this._textField.domNode.parentNode.style.width="calc(100% - "+j+"px)",this._textField.set("width","100%")},focus:function(){if(!this.disabled&&this.focusNode.focus)try{setTimeout(function(){s.focus(this.focusNode)}.bind(this),0)}catch(j){}},_setMaxHeightAttr:function(j){if(typeof j!="number")throw new Error("'MaxHeight' property expects a Number!");this.menu.domNode.style.maxHeight=j+"px",this._set("maxHeight",j)},_setValueAttr:function(j){var Y=this._getSelectedItemFromValue(j);if((typeof j=="number"?j.toString():j)&&Y&&Y.index!==void 0){var z=Y.label;this._textField.set("value",z),this._isTextEmpty=!0,this._removeSelectedMenuItemColor(),this.get("menu").getChildren().length>0&&Y.index!==void 0&&this.get("menu").getChildren()[Y.index].classList.add("mwComboBoxSelectedMenuItem")}else if((typeof j=="number"?j.toString():j)&&!Y)if(this.get("editable"))this._removeSelectedMenuItemColor(),this._textField.set("value",j),this._isTextEmpty=!1;else if(!this.get("items")||this.get("items").length===0){this._pendingValue=j;return}else throw new Error("Value must match an existing item for non-editable combo box");else j===""&&(this._textField.set("value",""),this._get("value")!==void 0&&(this._removeSelectedMenuItemColor(),this._isTextEmpty=!0),this.get("text")!==""&&(this._isTextEmpty=!1));this._isTextEmpty===!0?this.set("text",""):this.set("text",j);var Q=this.get("value");this._set("value",j)},_getValueAttr:function(){return this._get("value")},_setItemsAttr:function(j){var Y=this.get("value"),z=null,Q=this._getSelectedItemFromValue(Y);Q&&(z=Q.label);var X=dojo.clone(j);if(X&&X.length>0){this.set("value",""),this._initMenuItems(X),this._set("items",X);var J=this._getSelectedItemFromValue(Y);J&&z===J.label&&this.set("value",Y)}else this.set("value",""),this._destroyMenuItems(),this._set("items",X);this.get("editable")===!1&&this._pendingValue!=null&&(this.set("value",this._pendingValue),this._pendingValue=null),this._comboBoxMenuOpened&&(this.closeMenu(),this._openComboBoxMenu())},_initMenuItems:function(j){this.get("menu").getChildren().length>0&&this._destroyMenuItems(),j.forEach(function(Y,z){var Q=document.createElement("div");if(Y.type&&Y.type==="separator")Q.setAttribute("data-refuse-key-nav",!0),Q.setAttribute("data-menu-item-type","separator"),Q.classList.add("mwMenuSeparator"),this.get("menu").menuItemsNode.appendChild(Q);else{Q.setAttribute("tabIndex","0"),["mwDefaultVisualFamily","mwTextMixin","mwTextMixin","mwWidget","mwSharedMenuItem","mwMenuItem"].forEach(function(J){Q.classList.add(J)});var X=document.createElement("div");X.textContent=Y.label,X.classList.add("mwTextNode"),Q.appendChild(X),this.get("menu").menuItemsNode.appendChild(Q),Q.addEventListener("mouseover",this._handleMenuItemMouseEnter.bind(this))}},this)},_getItemsAttr:function(){return this._get("items")},_setEditableAttr:function(j){j?(this.domNode.classList.add("mwEditableComboBox"),this.domNode.classList.remove("mwNonEditable"),this.focusNode=this._textField.focusNode,this._toggleTextField(!0),this.get("disabled")?this._textField.focusNode.removeAttribute("tabIndex"):this._textField.focusNode.setAttribute("tabIndex","0"),this.domNode.removeAttribute("tabIndex"),this._removeMenuNodeMouseDownHandler(),this.menuNode=this.arrowNode,this._addMenuNodeMouseDownHandler(),this._set("editable",!0)):(this.domNode.classList.add("mwNonEditable"),this.domNode.classList.remove("mwEditableComboBox"),this.focusNode=this.domNode,this._toggleTextField(!1),this._textField.focusNode.removeAttribute("tabIndex"),this.get("disabled")?this.domNode.removeAttribute("tabIndex"):this.domNode.setAttribute("tabIndex","0"),this._removeMenuNodeMouseDownHandler(),this.menuNode=this.domNode,this._addMenuNodeMouseDownHandler(),this._set("editable",!1))},_removeMenuNodeMouseDownHandler:function(){this._menuNodeMouseDownHandler&&(this.menuNode.removeEventListener("mousedown",this._menuNodeMouseDownHandler),this._menuNodeMouseDownHandler=null)},_addMenuNodeMouseDownHandler:function(){this.menuNode&&this._menuNodeMouseDownHandler===null&&(this._menuNodeMouseDownHandler=this._handleArrowNodeMouseDown.bind(this),this.menuNode.addEventListener("mousedown",this._menuNodeMouseDownHandler))},_setTextAttr:function(j){this._isTextEmpty===!1||(this.get("value")===""||this.get("value")===void 0)&&j!==""?(this.get("editable")&&this._getSelectedItemFromValue(j)===void 0?(this._set("text",j),this._isTextEmpty=!1):(this._isTextEmpty=!0,this._set("text","")),this._textField.set("value",j)):this._set("text","")},_getTextAttr:function(j){return this._get("text")},_toggleTextField:function(j){this._textField.set("editable",j),this.get("disabled")===!0?this._textField.set("disabled",!0):this._textField.set("disabled",!j)},_setMenuOrientationAttr:function(j){if(typeof j!="string"||this.ORIENTATION_VALUES.hasOwnProperty(j)===-1)throw new Error("'menuOrientation' property expects one of these values: "+Object.keys(this.ORIENTATION_VALUES));this._set("menuOrientation",this.ORIENTATION_VALUES[j])},_setWidthAttr:function(j){this.inherited(arguments),(this._started!==void 0||this._started===!0)&&this.resize()},_setHeightAttr:function(j){this.inherited(arguments),this._textField.set("height",j)},_setPlaceholderAttr:function(j){this._textField.set("placeholder",j),this._set("placeholder",j)},_getPlaceholderAttr:function(){return this._textField.get("placeholder")},_setDescriptionAttr:function(j){this.inherited(arguments),this._textField.set("description",j)},_destroyMenuItems:function(){for(;this.get("menu").menuItemsNode.firstChild;)this.get("menu").menuItemsNode.firstChild.removeEventListener("mouseover",this._handleMenuItemMouseEnter.bind(this)),this.get("menu").menuItemsNode.removeChild(this.get("menu").menuItemsNode.firstChild)},_escapeRegExp:function(j){return j.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")},_getSelectedItemFromLabel:function(j){var Y={};if(this.get("items")&&this.get("items").length>0)for(var z=0;z0)for(var z=0;z0&&k>0&&(N&&_("rtl-adjust-position-for-verticalScrollBar")&&(b.x+=k),b.w=L),L=w.clientHeight,k=b.h-L,L>0&&k>0&&(b.h=L)}I&&(b.y<0&&(b.h+=b.y,b.y=0),b.x<0&&(b.w+=b.x,b.x=0),b.y+b.h>m&&(b.h=m-b.y),b.x+b.w>g&&(b.w=g-b.x));var W=T.x-b.x,K=T.y-b.y,V=W+T.w-b.w,G=K+T.h-b.h,j,Y;V*W>0&&(!!w.scrollLeft||w==S||w.scrollWidth>w.offsetHeight)&&(j=Math[W<0?"max":"min"](W,V),N&&(d==8&&!h||_("trident")>=5)&&(j=-j),Y=w.scrollLeft,F(w,j,0),j=w.scrollLeft-Y,T.x-=j),G*K>0&&(!!w.scrollTop||w==S||w.scrollHeight>w.offsetHeight)&&(j=Math.ceil(Math[K<0?"max":"min"](K,G)),Y=w.scrollTop,F(w,0,j),j=w.scrollTop-Y,T.y-=j),w=w!=S&&!I&&w.parentNode}}catch(z){console.error("scrollIntoView: "+z),i.scrollIntoView(!1)}}};return _("extend-dojo")&&D.setObject("dojo.window",r),r},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(8),u.dj.c(C.i),u(63),u(1)],E=u.dj.d(A,function(D,_,v,l,n){var e=0,t=[],r=0,i=function(){e=1,D._postLoad=D.config.afterOnLoad=!0,a()},a=function(){if(!r){for(r=1;e&&(!l||l._Q.length==0)&&(v.idle?v.idle():!0)&&t.length;){var o=t.shift();try{o()}catch(d){if(d.info=d.message,v.signal)v.signal("error",d);else throw d}}r=0}};v.on&&v.on("idle",a),l&&(l._onQEmpty=a);var s=D.ready=D.addOnLoad=function(o,d,f){var h=n._toArray(arguments);typeof o!="number"?(f=d,d=o,o=1e3):h.shift(),f=f?n.hitch.apply(D,h):function(){d()},f.priority=o;for(var g=0;g=t[g].priority;g++);t.splice(g,0,f),a()};if(_.add("dojo-config-addOnLoad",1),_("dojo-config-addOnLoad")){var c=D.config.addOnLoad;c&&s[n.isArray(c)?"apply":"call"](D,c)}return _("dojo-sync-loader")&&D.config.parseOnLoad&&!D.isAsync&&s(99,function(){D.parser||(D.deprecated("Add explicit require(['dojo/parser']);","","2.0"),Promise.resolve().then(function(){u(616)}).catch(u.oe))}),l?l(i):i(),s},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0),u(1),u(15),u(125)],E=u.dj.d(A,function(D,_,v,l){return D("dojo.Stateful",null,{_attrPairNames:{},_getAttrNames:function(n){var e=this._attrPairNames;return e[n]?e[n]:e[n]={s:"_"+n+"Setter",g:"_"+n+"Getter"}},postscript:function(n){n&&this.set(n)},_get:function(n,e){return typeof this[e.g]=="function"?this[e.g]():this[n]},get:function(n){return this._get(n,this._getAttrNames(n))},set:function(n,e){if(typeof n=="object"){for(var t in n)n.hasOwnProperty(t)&&t!="_watchCallbacks"&&this.set(t,n[t]);return this}var r=this._getAttrNames(n),i=this._get(n,r),a=this[r.s],s;if(typeof a=="function"?s=a.apply(this,Array.prototype.slice.call(arguments,1)):this[n]=e,this._watchCallbacks){var c=this;l(s,function(){c._watchCallbacks(n,i,e)})}return this},_changeAttrValue:function(n,e){var t=this.get(n);return this[n]=e,this._watchCallbacks&&this._watchCallbacks(n,t,e),this},watch:function(n,e){var t=this._watchCallbacks;if(!t){var r=this;t=this._watchCallbacks=function(s,c,o,d){var f=function(h){if(h){h=h.slice();for(var g=0,m=h.length;g-1&&i.splice(s,1)},a}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(1)],E=u.dj.d(A,function(D,_){var v=/[&<>'"\/]/g,l={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"},n={};return _.setObject("dojo.string",n),n.escape=function(e){return e?e.replace(v,function(t){return l[t]}):""},n.codePointAt=String.prototype.codePointAt?function(e,t){return String.prototype.codePointAt.call(e,t)}:function(e,t){if(e==null)throw new TypeError("codePointAt called on null or undefined");var r,i,a,s;if(e=String(e),r=e.length,s=t?Number(t):0,s!=s&&(s=0),!(s<0||s>=r))return i=e.charCodeAt(s),i>=55296&&i<=56319&&r>s+1&&(a=e.charCodeAt(s+1),a>=56320&&a<=57343)?(i-55296)*1024+a-56320+65536:i},n.fromCodePoint=String.fromCodePoint||function(){var e=[],t=0,r="",i,a;for(a=0,len=arguments.length;a!==len;++a){if(i=+arguments[a],!(i<1114111&&i>>>0===i))throw RangeError("Invalid code point: "+i);i<=65535?t=e.push(i):(i-=65536,t=e.push((i>>10)+55296,i%1024+56320)),t>=16383&&(r+=String.fromCharCode.apply(null,e),e.length=0)}return r+String.fromCharCode.apply(null,e)},n.rep=function(e,t){if(t<=0||!e)return"";for(var r=[];t&1&&r.push(e),!!(t>>=1);)e+=e;return r.join("")},n.pad=function(e,t,r,i){r||(r="0");var a=String(e),s=n.rep(r,Math.ceil((t-a.length)/r.length));return i?a+s:s+a},n.substitute=function(e,t,r,i){return i=i||D.global,r=r?_.hitch(i,r):function(a){return a},e.replace(/\$\{([^\s\:\}]*)(?:\:([^\s\:\}]+))?\}/g,function(a,s,c){if(s=="")return"$";var o=_.getObject(s,!1,t);c&&(o=_.getObject(c,!1,i).call(i,o,s));var d=r(o,s);if(typeof d=="undefined")throw new Error('string.substitute could not find key "'+s+'" in template');return d.toString()})},n.trim=String.prototype.trim?_.trim:function(e){e=e.replace(/^\s+/,"");for(var t=e.length-1;t>=0;t--)if(/\S/.test(e.charAt(t))){e=e.substring(0,t+1);break}return e},n},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0)],E=u.dj.d(A,function(D){return D(null,{editable:!0,postCreate:function(){this.inherited(arguments),this.domNode.classList.add("mwEditableMixin"),this._setEditableAttr(this.get("editable"))},_setEditableAttr:function(_){this.inputNode.readOnly=!_,_?this.domNode.classList.remove("mwNonEditable"):this.domNode.classList.add("mwNonEditable"),this._set("editable",_)}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0),u(1),u(53),u(52),u(24),u(6),u(23),u(65),u(119),u(280),u(109),u(79)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i,a,s,c){var o=D([r,i],{templateString:'
',_setTextAttr:function(g){this.textNode.textContent=g,this._set("text",g)}}),d="left",f="right",h=["error","warning","normal"];return D(null,{warningText:"",errorText:"",validationState:"normal",_setErrorTextAttr:function(g){if(typeof g!="string")throw new Error("errorText property expects a 'string'!");this.validationTooltip&&this.get("validationState")==="error"&&(this.validationTooltip.set("text",g),g===""?this.validationTooltip.domNode.style.visibility="hidden":this.validationTooltip.domNode.classList.contains("mwValidationFocused")&&(this.validationTooltip.domNode.style.visibility="visible")),this._set("errorText",g)},_setWarningTextAttr:function(g){if(typeof g!="string")throw new Error("warningText property expects a 'string'!");this.validationTooltip&&this.get("validationState")==="warning"&&(this.validationTooltip.set("text",g),g===""?this.validationTooltip.domNode.style.visibility="hidden":this.validationTooltip.domNode.classList.contains("mwValidationFocused")&&(this.validationTooltip.domNode.style.visibility="visible")),this._set("warningText",g)},_setValidationStateAttr:function(g){if(typeof g!="string")throw new Error("validationState property expects a 'string'!");if(h.indexOf(g.toLowerCase())===-1)throw new Error("validationState property expects the value to be 'normal', 'error' or 'warning'!");this._set("validationState",g);var m=!1,S=!1;g.toLowerCase()==="error"?(S=!0,this._createValidationTooltip(),this.validationTooltip.set("text",this.get("errorText"))):g.toLowerCase()==="warning"&&(m=!0,this._createValidationTooltip(),this.validationTooltip.set("text",this.get("warningText"))),this.validationTooltip&&(this.domNode.classList.contains("mwWidgetFocused")&&(this.validationTooltip.domNode.classList.add("mwValidationFocused"),this._placeTooltip()),S?(this._getDomNodeForValidationClasses().classList.add("mwValidationError"),this.validationTooltip.domNode.classList.add("mwErrorTooltip")):(this._getDomNodeForValidationClasses().classList.remove("mwValidationError"),this.validationTooltip.domNode.classList.remove("mwErrorTooltip")),m?this.validationTooltip.domNode.classList.add("mwWarningTooltip"):this.validationTooltip.domNode.classList.remove("mwWarningTooltip"),(g.toLowerCase()==="normal"||this._isEmptyErrorText()||this._isEmptyWarningText())&&(this.validationTooltip.domNode.style.visibility="hidden"))},_isEmptyErrorText:function(){return this.get("validationState")==="error"&&this.get("errorText")===""},_isEmptyWarningText:function(){return this.get("validationState")==="warning"&&this.get("warningText")===""},_createValidationTooltip:function(){this.validationTooltip||(this.validationTooltip=new o,this.validationTooltip.startup(),this.own(this.validationTooltip),this._addTooltipEvents())},_flipDomOrder:function(g){var m=g.children[0],S=g.children[1];n.place(m,n.place(S,g),"after"),n.place(S.children[0],n.place(S.children[1],S),"after")},_tooltipOrientation:function(){return this.validationTooltip.domNode.classList.contains("mwTooltipLeft")?d:f},_getDomNodeForValidationClasses:function(){return this.domNode},_placeTooltip:function(){if(this.validationTooltip&&(this.validationState==="error"||this.validationState==="warning")){n.place(this.validationTooltip.domNode,t.body());var g=l.position(this.domNode),m,S,T,w,R,O,F,b,I,N,P=!1;m=g.x,S=g.y,T=g.w,this.validationState==="error"?(this._getDomNodeForValidationClasses().classList.add("mwValidationError"),this.validationTooltip.set("text",this.errorText),this.validationTooltip.domNode.classList.add("mwErrorTooltip")):this.validationState==="warning"&&(this.validationTooltip.set("text",this.warningText),this.validationTooltip.domNode.classList.add("mwWarningTooltip")),(this.get("validationState")==="error"&&this.get("errorText")!==""||this.get("validationState")==="warning"&&this.get("warningText")!=="")&&(this.validationTooltip.domNode.style.visibility="visible"),F=l.position(this.validationTooltip.domNode).h/2,R=l.position(this.domNode).h/2,O=this.validationTooltip.domNode,b=l.position(t.body()).w,w=this._calculateTooltipWidth();var L=(document.documentElement||document.body.parentNode||document.body).scrollTop;m+T+w>b?(P=!0,I=m-w+"px",N=S+R-F+L+"px",O.children[0].classList.contains("mwArrowNode")&&this._flipDomOrder(O)):(I=m+T+"px",N=S+R-F+L+"px"),P?(this.validationTooltip.domNode.classList.add("mwTooltipLeft"),this.validationTooltip.domNode.classList.remove("mwTooltipRight")):(this.validationTooltip.domNode.classList.remove("mwTooltipLeft"),this.validationTooltip.domNode.classList.add("mwTooltipRight")),this.validationTooltip.domNode.style.left=I,this.validationTooltip.domNode.style.top=N;const k=s.getTheme(this._getDomNodeForValidationClasses()),W=k?a[k]:a.light;W===a.light?s.setTheme(c.LIGHT,this.validationTooltip.domNode):W===a.dark&&s.setTheme(c.DARK,this.validationTooltip.domNode)}},_calculateTooltipWidth:function(){this.validationTooltip.domNode.classList.add("mwTooltipLeft");var g=l.position(this.validationTooltip.domNode).w;return this.validationTooltip.domNode.classList.remove("mwTooltipLeft"),g},_addTooltipEvents:function(){this.own(e(this,v.enter,_.hitch(this,function(){this._placeTooltip()})),e(this,v.leave,_.hitch(this,function(){this.validationTooltip&&(this.validationTooltip.domNode.style.visibility="hidden")})),e(this.focusNode,"focus",_.hitch(this,function(){this._placeTooltip(),this.validationTooltip&&(this.get("validationState")==="error"||this.get("validationState")==="warning")&&this.validationTooltip.domNode.classList.add("mwValidationFocused")})),e(this.focusNode,"blur",_.hitch(this,function(){this.validationTooltip&&(this.validationTooltip.domNode.classList.remove("mwValidationFocused"),this.validationTooltip.domNode.style.visibility="hidden")})))}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){return Object.freeze({light:"mw-theme-light",dark:"mw-theme-dark"})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0),u(1),u(38),u(6),u(65),u(167),u(168),u(117),u(119),u(169),u(171),u(170),u(282),u(278),u(82),u(172),u(547),u(283),u(173),u(279),u(174),u(67),u(284),u(549)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i,a,s,c,o,d,f,h,g,m,S,T,w,R,O,F){var b=9;return D(w.validate([n,e,t,r,i,a,s,c,o,d,f,h,g,m,S,T,R,O]),{baseClass:"mwWidget mwTextField",templateString:F,horizontalAlignment:"left",width:150,height:22,constructor:function(){this._addKeysThatPreventTypingEvent([v.ENTER])},postCreate:function(){this.inherited(arguments),this.own(l(this.inputNode,"focus",this._focusHandler.bind(this))),this.own(l(this.inputNode,"blur",this._blurHandler.bind(this))),this.own(l(this.inputNode,"keydown",this._inputKeyUpDown.bind(this))),this.own(l(this.inputNode,"keyup",this._inputKeyUpDown.bind(this)))},_inputKeyUpDown:function(I){if(this.inputNode.closest(".enableInactive")!=null&&I.keyCode!=b){I.preventDefault();return}},_focusHandler:function(){this.domNode.classList.add("mwTextFieldInputNodeFocused")},_blurHandler:function(){this.domNode.classList.remove("mwTextFieldInputNodeFocused")},_handleEnterKey:function(){var I,N,P;I=this.inputNode.value,N=this.get("value"),this.set("value",I),P=this.get("value"),this.domNode.classList.add("mwTextFieldHighlight"),N!==P&&this._triggerChangeEvent("value",N,P),this.defer(_.hitch(this,function(){this._beingDestroyed||this.domNode.classList.remove("mwTextFieldHighlight")}),200)},_onKeyUp:function(I){this.inherited(arguments),I.keyCode===v.ENTER&&this._handleEnterKey()},_qeTypeOverWithEnter:function(I){var N=this.get("value");this.set("value",I);var P=new KeyboardEvent("keydown",{key:"Enter",code:"Enter",keyCode:13,which:13});this.inputNode.dispatchEvent(P),P=new KeyboardEvent("keyup",{key:"Enter",code:"Enter",keyCode:13,which:13}),this.inputNode.dispatchEvent(P)},_setDisabledAttr:function(I){this.inherited(arguments),I===!0?this.inputNode.setAttribute("disabled",""):this.inputNode.removeAttribute("disabled")}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0)],E=u.dj.d(A,function(D){var _=["left","center","right"],v="mwHorizontalAlignment",l={},n=function(e){return e.charAt(0).toUpperCase()+e.slice(1)};return Object.keys(_).forEach(function(e){l[_[e]]=v+n(_[e])}),D(null,{horizontalAlignment:"center",postCreate:function(){this.inherited(arguments),this.domNode.classList.add("mwHorizontalAlignmentMixin")},_setHorizontalAlignmentAttr:function(e){if(_.indexOf(e)===-1)throw new Error("'Vertical alignment' property expects '' one of these values: "+_);this._applyHorizontalAlignmentClass(e),this._set("horizontalAlignment",e)},_applyHorizontalAlignmentClass:function(e){var t,r,i;t=this.get("horizontalAlignment"),r=l[t],r&&this.domNode.classList.remove(r),i=l[e],this.domNode.classList.add(i)}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0),u(1),u(18),u(24),u(6),u(118),u(172)],E=u.dj.d(A,function(D,_,v,l,n,e,t){var r=D(null,{placeholder:"",_setPlaceholderAttr:function(i){if(typeof i!="string")throw new Error("'placeholder' property expects a literal string!");this.inputNode.placeholder=i,this._set("placeholder",i)}});return r._dependencies=[{mixin:t,orderDependent:!1}],r},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0)],E=u.dj.d(A,function(D){return D(null,{_triggerTypingEvent:function(_,v){_!==v&&this.emit("typing",{mwEventData:{currentContent:_,previousContent:v}})},_qeTyping:function(_,v){this.inputNode.value=_,this._triggerTypingEvent(_,v)}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0),u(1),u(6),u(67)],E=u.dj.d(A,function(D,_,v,l){var n=D(null,{checked:!1,checkableNode:null,_treatAsUserEvent:!0,postCreate:function(){this.get("checkableNode")||this.set("checkableNode",this.domNode),this.inherited(arguments),this.domNode.classList.add("mwCheckedMixin"),this.own(v(this.get("checkableNode"),"click",_.hitch(this,"_onClick")))},_setCheckedAttr:function(e,t){this._treatAsUserEvent=t,this._set("checked",e),this._setAriaPressed(),this._setAriaChecked(),this.baseClass.split(" ").forEach(function(r){e?this.domNode.classList.add(r+"Checked"):this.domNode.classList.remove(r+"Checked")},this)},_setCheckableNodeAttr:function(e){this.checkableNode=e||this.domNode},_setAriaPressed:function(){var e=this.buttonNode||this.focusNode||this.domNode;e.hasAttribute("aria-pressed")&&e.setAttribute("aria-pressed",this.get("checked"))},_setAriaChecked:function(){var e=this.focusNode?this.focusNode:this.domNode;e.hasAttribute("aria-checked")&&e.setAttribute("aria-checked",this.get("checked"))},_onClick:function(){var e=this.get("checked"),t=!this.get("checked");this.set("checked",t,!0),this._triggerChangeEvent("checked",e,t)}});return n._dependencies=[{mixin:l,orderDependent:!1}],n},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(8),u(18),u(6),u(15),u(1),u(557),u(558)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r){"use strict";_.add("array-extensible",function(){return e.delegate([],{length:1}).length==1&&!_("bug-for-in-skips-shadowed")});var i=Array.prototype,a=i.slice,s=i.concat,c=n.forEach,o=function(F,b,I){var N=new(I||this._NodeListCtor||T)(F);return b?N._stash(b):N},d=function(F,b,I){return b=[0].concat(a.call(b,0)),I=I||D.global,function(N){return b[0]=N,F.apply(I,b)}},f=function(F,b){return function(){return this.forEach(d(F,arguments,b)),this}},h=function(F,b){return function(){return this.map(d(F,arguments,b))}},g=function(F,b){return function(){return this.filter(d(F,arguments,b))}},m=function(F,b,I){return function(){var N=arguments,P=d(F,N,I);return b.call(I||D.global,N)?this.map(P):(this.forEach(P),this)}},S=function(F){var b=this instanceof T&&_("array-extensible");typeof F=="number"&&(F=Array(F));var I=F&&"length"in F?F:arguments;if(b||!I.sort){for(var N=b?this:[],P=N.length=I.length,L=0;L0},I.filter=F.filter||function(P,L,k){return I(L,k).filter(function(W){return n.indexOf(P,W)>-1})},typeof F!="function"){var N=F.search;F=function(P,L){return N(L||document,P)}}return I}var O=R(r,S);return D.query=R(r,function(F){return S(F)}),O.load=function(F,b,I){t.load(F,b,function(N){I(R(N,S))})},D._filterQueryResult=O._filterResult=function(F,b,I){return new S(O.filter(F,b,I))},D.NodeList=O.NodeList=S,O},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0),u(1),u(24),u(6),u(187)],E=u.dj.d(A,function(D,_,v,l,n){return D(null,{_iconTypes:{DATA_URI:"data_uri",PATH_URI:"path_uri",CSS_CLASS:"css_class",SVG_ICON:"svg_icon"},icon:"",_lastIconApplied:"",_lastSvgIconApplied:void 0,_lastSvgNode:void 0,postCreate:function(){this.inherited(arguments),this.domNode.classList.add("mwIconMixin"),this.set("icon",this.get("icon"))},_setIconAttr:function(e){this._set("icon",e),this._updateDOM(e)},_updateDOM:function(e){this._removeOldIcon(),this._applyNewIcon(e)},_removeOldIcon:function(){var e=this._lastIconApplied,t=this._getIconType(e);if(t===this._iconTypes.DATA_URI||t===this._iconTypes.PATH_URI)this._removeImageStyles(this.iconNode);else if(t===this._iconTypes.CSS_CLASS&&e!==""){var r=e.trim().split(" ");r.forEach(function(i){this.iconNode.classList.remove(i)},this)}this._removeOldSvgIcon()},_applyNewIcon:function(e){var t=this._getIconType(e);if(t===this._iconTypes.DATA_URI||t===this._iconTypes.PATH_URI){var r=v.create("img",{src:e});this.own(l.once(r,"load",_.hitch(this,function(){this._applyImageStyles(this.iconNode,e,r),this.emit("iconapplied"),this.emit("updatelayout"),v.destroy(r)}))),this._lastIconApplied=e}else if(t===this._iconTypes.CSS_CLASS){if(e!==""){var i=e.trim().split(" ");i.forEach(function(s){this.iconNode.classList.add(s)},this)}this._lastIconApplied=e}else if(t===this._iconTypes.SVG_ICON&&n.getInstance()&&e.hasOwnProperty("id")){var a={};Object.assign(a,e),this._lastSvgIconApplied=a,n.getInstance().getIcon(e).then(function(s){this.iconNode&&this._lastSvgIconApplied===a&&(this.iconNode.appendChild(s),this.iconNode.style.height=e.height+"px",this.iconNode.style.width=e.width+"px",this._lastSvgNode=s)}.bind(this))}t!==this._iconTypes.SVG_ICON&&e.length===0||t===this._iconTypes.SVG_ICON&&!e.hasOwnProperty("id")?this.domNode.classList.add("mwNoIcon"):this.domNode.classList.remove("mwNoIcon")},_removeOldSvgIcon:function(){this.iconNode&&this._lastSvgIconApplied&&(this._lastSvgNode&&this.iconNode.removeChild(this._lastSvgNode),this._lastSvgIconApplied=void 0,this._lastSvgNode=void 0)},_getIconType:function(e){return typeof e=="object"?this._iconTypes.SVG_ICON:e.indexOf("data:")>-1?this._iconTypes.DATA_URI:e.match(/\./)?this._iconTypes.PATH_URI:this._iconTypes.CSS_CLASS},_applyImageStyles:function(e,t,r){e.style.backgroundImage='url("'+t+'")',e.style.width=r.width+"px",e.style.height=r.height+"px"},_removeImageStyles:function(e){e.style.backgroundImage="",e.style.width="",e.style.height=""}})},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r0&&(g.row=f.rangeList[0].rows.start),g}},{key:"_handleDisclosureClick",value:function(f){var h=this,g=this.viewModel.getStateByKey(t.protected.PIVOT);if(g&&g.value){var m=g.value;this.dataStore.getNode({id:m}).then(function(S){S||h.dataStore.getNode(f.node).then(function(T){var w=[i.range().setEntireRows(T.index,T.index)];h.viewModel.setState(t.treetable.POTENTIAL_PIVOT,T.node.id,h._getFittedRange(w))})})}}},{key:"_getPivotInView",value:function(){var f=this;return new Promise(function(h){var g=f.viewModel.getStateByKey(t.protected.PIVOT);g&&g.value?f.dataStore.getNode({id:g.value}).then(function(m){var S=void 0,T=void 0;m?(S=m.index,T=m.node.id,h({id:T,index:S})):f._getPotentialPivot().then(function(w){S=w.potentialPivotRowIndex,T=w.potentialPivotId,h({id:T,index:S})})}):h(!1)})}},{key:"_getPotentialPivot",value:function(){var f=this;return new Promise(function(h){var g=f.viewModel.getStateByKey(t.treetable.POTENTIAL_PIVOT),m=void 0,S=void 0;g?(m=g.rangeList[0].rows.start,S=g.value,h({potentialPivotRowIndex:m,potentialPivotId:S})):(m=f.viewModel.dataSize.rows.start,f._getPivotId(m).then(function(T){S=T,h({potentialPivotRowIndex:m,potentialPivotId:S})}))})}},{key:"_emitSelectedActionEvent",value:function(){}}]),o}(e);return s},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(120),u(595)],E=u.dj.d(A,function(D,_){"use strict";var v=_(D);return v},C,x),C.exports=E},function(C,x,u){Promise.resolve().then(function(){var A=[u(295),u(615)];(async E=>{(await E).start()}).apply(null,A)}).catch(u.oe)},,,function(C,x,u){var A,E;A=[u(296)],E=u.dj.d(A,D=>({start:()=>{D(null,null,null).startup()}}),C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0),u(297),u(554),u(565),u(29),u(109),u(79)],E=u.dj.d(A,(D,_,v,l,n,e,t)=>D([],{constructor:function(r,i,a){this.MessageCatalog=r,this.OverallSummaryData=i,this.SourceDataArray=a,this.datastore={},this.OverallSummaryTable=null,this.BreakdownBySourceTable=null,this.SourceDetailsTable=null,this.AllMetrics=[],this.MetricLevelsObj=null,this.CurrentMetricLevel=null,this.Utils=new n,this.DisplayTheme="Light"},startup:async function(){let r;if(this.MessageCatalog===null&&this.OverallSummaryData===null&&this.SourceDataArray===null){const i=["release/coverageData/messageCatalogEntries.js","release/coverageData/OverallCoverageData.js"];let a;for(r=0;r{const c=document.createElement("script");c.setAttribute("type","text/javascript"),c.setAttribute("src",r),c.onload=a,c.onerror=function(){s(new Error("Error loading source: "+r))},document.body.appendChild(c)})},createMetricLevelsObj:function(r){const i=new Map;for(let a=0;a=0;i--){const a=this.Utils.loadAsArray(this.MetricLevelsObj.get(i.toString()));r.push(...a)}return r.reverse()},getEnabledMetricNames:function(r){const i=[];for(let a=0;aD([],{makeTableData:function(t,r,i){const a=[];for(let s=0;sm&&(m=P.length),s.push({label:P,value:N.toString()})}const S=new n({items:s,value:(c.length-1).toString(),width:"100%"}),T=document.getElementById("FilterDropboxContainer");T.style.width=(this.MultiplyFactorForChars*m+this.WidthForDropdownArrow).toString()+"px",T.appendChild(S.domNode),S.startup(),S.on("change",N=>{i.CurrentMetricLevel=N.mwEventData.newValue,i.BreakdownBySourceTable.update(),i.SourceDetailsTable.updateMetric()});const w=document.getElementById("FilterBannerContainer"),R=w.offsetTop;window.onscroll=()=>{window.pageYOffset>R?w.classList.add("stickyBanner"):window.pageYOffset1)throw new Error("Single viewRange cell mapped to multiple ranges");var b=F[0],I=Object.assign(O,{top:S,left:T,viewRange:R,dataRange:b,target:w});r.validateContextMenuEventInfo(I),this.emit(e.exposed.CONTEXT_MENU,I)}},{key:"_getRangeFromCellIndices",value:function(d,f){var h=arguments.length>2&&arguments[2]!==void 0?arguments[2]:f,g=Math.max(0,d),m=Math.max(-1,d),S=Math.max(0,f),T=Math.max(-1,h);return i.range().setRows(g,m).setColumns(S,T)}},{key:"emits",get:function(){return[e.exposed.CONTEXT_MENU]}}]),c}(n);return a},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(3)],E=u.dj.d(A,function(D){"use strict";return{getHighlightedTextDOM:function(v,l){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"mw-table-highlight";return this._getHighlightedDomNodes(v,l,n,this._createHighlightedTextContentForDisplay,this._createNonHighlightedTextContentForDisplay)},getHighlightedReact:function(v,l){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"mw-table-highlight";return this._getHighlightedDomNodes(v,l,n,this._createReactHighlightedTextContentForDisplay,this._createReactNonHighlightedTextContentForDisplay)},getFieldSpecificHighlightData:function(v,l){return v.field===l&&Array.isArray(v.matches)?v.matches:!1},_getHighlightedDomNodes:function(v,l,n,e,t){var r=[];if(!(Array.isArray(l)&&l.length>0))return r.push(t(v)),r;for(var i=void 0,a=void 0,s=this._createClassNameLookUp(v,l,n),c=0;c=0&&(_._idleTimeoutId=setTimeout(function(){_._onTimeout&&_._onTimeout()},v))},u(302),x.setImmediate=typeof self!="undefined"&&self.setImmediate||typeof global!="undefined"&&global.setImmediate||this&&this.setImmediate,x.clearImmediate=typeof self!="undefined"&&self.clearImmediate||typeof global!="undefined"&&global.clearImmediate||this&&this.clearImmediate},function(C,x){(function(u,A){"use strict";if(u.setImmediate)return;var E=1,D={},_=!1,v=u.document,l;function n(h){typeof h!="function"&&(h=new Function(""+h));for(var g=new Array(arguments.length-1),m=0;m{this._iconFetchResolve=o}),this.iconId===""){this._iconContainer=document.createElement("div"),this._iconFetchResolve(this._iconContainer);return}const s={id:this.iconId,width:this.iconWidth,height:this.iconHeight};r.getInstance().getIcon(s).then(o=>{this._iconContainer=o,this._iconFetchResolve(o)}).catch(o=>{this._iconContainer=document.createElement("div"),this._iconFetchResolve(this._iconContainer),this.emit("error",{iconId:this.iconId,iconWidth:this.iconWidth,iconHeight:this.iconHeight},{bubbles:!1})})}willUpdate(s){(s.has("iconId")||s.has("iconWidth")||s.has("iconHeight"))&&this._handleSVGRequest()}getUpdateComplete(){let s;const c=new Promise(o=>{s=o});return super.getUpdateComplete().then(o=>{this._iconFetchPromise.then(()=>{s(o)})}),c}render(){return e(_||(_=v([` - `,` - `])),this._iconContainer)}}return n({name:"mw-icon",widgetClass:i})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(86)],E=u.dj.d(A,function(D){"use strict";class _ extends D.LitElement{}return _},C,x),C.exports=E},function(C,x,u){var A,E;A=[x,u(306),u(307)],E=u.dj.d(A,function(D,_,v){"use strict";/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var l;const n=window.reactiveElementPolyfillSupport,e={toAttribute(a,s){switch(s){case Boolean:a=a?"":null;break;case Object:case Array:a=a==null?a:JSON.stringify(a)}return a},fromAttribute(a,s){let c=a;switch(s){case Boolean:c=a!==null;break;case Number:c=a===null?null:Number(a);break;case Object:case Array:try{c=JSON.parse(a)}catch(o){c=null}}return c}},t=(a,s)=>s!==a&&(s==s||a==a),r={attribute:!0,type:String,converter:e,reflect:!1,hasChanged:t};class i extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(s){var c;(c=this.l)!==null&&c!==void 0||(this.l=[]),this.l.push(s)}static get observedAttributes(){this.finalize();const s=[];return this.elementProperties.forEach((c,o)=>{const d=this._$Eh(o,c);d!==void 0&&(this._$Eu.set(d,o),s.push(d))}),s}static createProperty(s,c=r){if(c.state&&(c.attribute=!1),this.finalize(),this.elementProperties.set(s,c),!c.noAccessor&&!this.prototype.hasOwnProperty(s)){const o=typeof s=="symbol"?Symbol():"__"+s,d=this.getPropertyDescriptor(s,o,c);d!==void 0&&Object.defineProperty(this.prototype,s,d)}}static getPropertyDescriptor(s,c,o){return{get(){return this[c]},set(d){const f=this[s];this[c]=d,this.requestUpdate(s,f,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(s){return this.elementProperties.get(s)||r}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const s=Object.getPrototypeOf(this);if(s.finalize(),this.elementProperties=new Map(s.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const c=this.properties,o=[...Object.getOwnPropertyNames(c),...Object.getOwnPropertySymbols(c)];for(const d of o)this.createProperty(d,c[d])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(s){const c=[];if(Array.isArray(s)){const o=new Set(s.flat(1/0).reverse());for(const d of o)c.unshift(_.getCompatibleStyle(d))}else s!==void 0&&c.push(_.getCompatibleStyle(s));return c}static _$Eh(s,c){const o=c.attribute;return o===!1?void 0:typeof o=="string"?o:typeof s=="string"?s.toLowerCase():void 0}o(){var s;this._$Ev=new Promise(c=>this.enableUpdating=c),this._$AL=new Map,this._$Ep(),this.requestUpdate(),(s=this.constructor.l)===null||s===void 0||s.forEach(c=>c(this))}addController(s){var c,o;((c=this._$Em)!==null&&c!==void 0?c:this._$Em=[]).push(s),this.renderRoot!==void 0&&this.isConnected&&((o=s.hostConnected)===null||o===void 0||o.call(s))}removeController(s){var c;(c=this._$Em)===null||c===void 0||c.splice(this._$Em.indexOf(s)>>>0,1)}_$Ep(){this.constructor.elementProperties.forEach((s,c)=>{this.hasOwnProperty(c)&&(this._$Et.set(c,this[c]),delete this[c])})}createRenderRoot(){var s;const c=(s=this.shadowRoot)!==null&&s!==void 0?s:this.attachShadow(this.constructor.shadowRootOptions);return _.adoptStyles(c,this.constructor.elementStyles),c}connectedCallback(){var s;this.renderRoot===void 0&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),(s=this._$Em)===null||s===void 0||s.forEach(c=>{var o;return(o=c.hostConnected)===null||o===void 0?void 0:o.call(c)})}enableUpdating(s){}disconnectedCallback(){var s;(s=this._$Em)===null||s===void 0||s.forEach(c=>{var o;return(o=c.hostDisconnected)===null||o===void 0?void 0:o.call(c)})}attributeChangedCallback(s,c,o){this._$AK(s,o)}_$Eg(s,c,o=r){var d,f;const h=this.constructor._$Eh(s,o);if(h!==void 0&&o.reflect===!0){const g=((f=(d=o.converter)===null||d===void 0?void 0:d.toAttribute)!==null&&f!==void 0?f:e.toAttribute)(c,o.type);this._$Ei=s,g==null?this.removeAttribute(h):this.setAttribute(h,g),this._$Ei=null}}_$AK(s,c){var o,d,f;const h=this.constructor,g=h._$Eu.get(s);if(g!==void 0&&this._$Ei!==g){const m=h.getPropertyOptions(g),S=m.converter,T=(f=(d=(o=S)===null||o===void 0?void 0:o.fromAttribute)!==null&&d!==void 0?d:typeof S=="function"?S:null)!==null&&f!==void 0?f:e.fromAttribute;this._$Ei=g,this[g]=T(c,m.type),this._$Ei=null}}requestUpdate(s,c,o){let d=!0;s!==void 0&&(((o=o||this.constructor.getPropertyOptions(s)).hasChanged||t)(this[s],c)?(this._$AL.has(s)||this._$AL.set(s,c),o.reflect===!0&&this._$Ei!==s&&(this._$ES===void 0&&(this._$ES=new Map),this._$ES.set(s,o))):d=!1),!this.isUpdatePending&&d&&(this._$Ev=this._$ET())}_$ET(){return s=this,c=void 0,d=function*(){this.isUpdatePending=!0;try{yield this._$Ev}catch(h){Promise.reject(h)}const f=this.scheduleUpdate();return f!=null&&(yield f),!this.isUpdatePending},new((o=void 0)||(o=Promise))(function(f,h){function g(T){try{S(d.next(T))}catch(w){h(w)}}function m(T){try{S(d.throw(T))}catch(w){h(w)}}function S(T){var w;T.done?f(T.value):(w=T.value,w instanceof o?w:new o(function(R){R(w)})).then(g,m)}S((d=d.apply(s,c||[])).next())});var s,c,o,d}scheduleUpdate(){return this.performUpdate()}performUpdate(){var s;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach((d,f)=>this[f]=d),this._$Et=void 0);let c=!1;const o=this._$AL;try{c=this.shouldUpdate(o),c?(this.willUpdate(o),(s=this._$Em)===null||s===void 0||s.forEach(d=>{var f;return(f=d.hostUpdate)===null||f===void 0?void 0:f.call(d)}),this.update(o)):this._$EC()}catch(d){throw c=!1,this._$EC(),d}c&&this._$AE(o)}willUpdate(s){}_$AE(s){var c;(c=this._$Em)===null||c===void 0||c.forEach(o=>{var d;return(d=o.hostUpdated)===null||d===void 0?void 0:d.call(o)}),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(s)),this.updated(s)}_$EC(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ev}shouldUpdate(s){return!0}update(s){this._$ES!==void 0&&(this._$ES.forEach((c,o)=>this._$Eg(o,this[o],c)),this._$ES=void 0),this._$EC()}updated(s){}firstUpdated(s){}}i.finalized=!0,i.elementProperties=new Map,i.elementStyles=[],i.shadowRootOptions={mode:"open"},n==null||n({ReactiveElement:i}),((l=globalThis.reactiveElementVersions)!==null&&l!==void 0?l:globalThis.reactiveElementVersions=[]).push("1.0.1"),D.CSSResult=_.CSSResult,D.adoptStyles=_.adoptStyles,D.css=_.css,D.getCompatibleStyle=_.getCompatibleStyle,D.supportsAdoptingStyleSheets=_.supportsAdoptingStyleSheets,D.unsafeCSS=_.unsafeCSS,D.ReactiveElement=i,D.defaultConverter=e,D.notEqual=t,Object.defineProperty(D,"t",{value:!0})},C,x),C.exports=E},function(C,x,u){var A,E;A=[x],E=u.dj.d(A,function(D){"use strict";/** - * @license - * Copyright 2019 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */const _=window.ShadowRoot&&(window.ShadyCSS===void 0||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,v=Symbol(),l=new Map;class n{constructor(i,a){if(this._$cssResult$=!0,a!==v)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=i}get styleSheet(){let i=l.get(this.cssText);return _&&i===void 0&&(l.set(this.cssText,i=new CSSStyleSheet),i.replaceSync(this.cssText)),i}toString(){return this.cssText}}const e=r=>new n(typeof r=="string"?r:r+"",v),t=_?r=>r:r=>r instanceof CSSStyleSheet?(i=>{let a="";for(const s of i.cssRules)a+=s.cssText;return e(a)})(r):r;D.CSSResult=n,D.adoptStyles=(r,i)=>{_?r.adoptedStyleSheets=i.map(a=>a instanceof CSSStyleSheet?a:a.styleSheet):i.forEach(a=>{const s=document.createElement("style"),c=window.litNonce;c!==void 0&&s.setAttribute("nonce",c),s.textContent=a.cssText,r.appendChild(s)})},D.css=(r,...i)=>{const a=r.length===1?r[0]:i.reduce((s,c,o)=>s+(d=>{if(d._$cssResult$===!0)return d.cssText;if(typeof d=="number")return d;throw Error("Value passed to 'css' function must be a 'css' function result: "+d+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(c)+r[o+1],r[0]);return new n(a,v)},D.getCompatibleStyle=t,D.supportsAdoptingStyleSheets=_,D.unsafeCSS=e,Object.defineProperty(D,"t",{value:!0})},C,x),C.exports=E},function(C,x,u){var A;A=function(){"use strict";return function(){if(window.Reflect===void 0||window.customElements===void 0||window.customElements.polyfillWrapFlushCallback)return;const E=HTMLElement;window.HTMLElement=function(){return Reflect.construct(E,[],this.constructor)},HTMLElement.prototype=E.prototype,HTMLElement.prototype.constructor=HTMLElement,Object.setPrototypeOf(HTMLElement,E)}(),{}}.call(null,u,x,C),A!==void 0&&(C.exports=A)},function(C,x,u){var A,E;A=[x],E=u.dj.d(A,function(D){"use strict";/** - * @license - * Copyright 2017 Google LLC - * SPDX-License-Identifier: BSD-3-Clause - */var _;const v=globalThis.trustedTypes,l=v?v.createPolicy("lit-html",{createHTML:J=>J}):void 0,n="$lit$",e=`lit$${(Math.random()+"").slice(9)}$`,t="?"+e,r=`<${t}>`,i=document,a=(J="")=>i.createComment(J),s=J=>J===null||typeof J!="object"&&typeof J!="function",c=Array.isArray,o=J=>{var $;return c(J)||typeof(($=J)===null||$===void 0?void 0:$[Symbol.iterator])=="function"},d=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,f=/-->/g,h=/>/g,g=/>|[ \n \r](?:([^\s"'>=/]+)([ \n \r]*=[ \n \r]*(?:[^ \n \r"'`<>=]|("|')|))|$)/g,m=/'/g,S=/"/g,T=/^(?:script|style|textarea)$/i,w=J=>($,...q)=>({_$litType$:J,strings:$,values:q}),R=w(1),O=w(2),F=Symbol.for("lit-noChange"),b=Symbol.for("lit-nothing"),I=new WeakMap,N=i.createTreeWalker(i,129,null,!1),P=(J,$)=>{const q=J.length-1,te=[];let oe,le=$===2?"":"",de=d;for(let Se=0;Se"?(de=oe!=null?oe:d,me=-1):ee[1]===void 0?me=-2:(me=de.lastIndex-ee[2].length,ie=ee[1],de=ee[3]===void 0?g:ee[3]==='"'?S:m):de===S||de===m?de=g:de===f||de===h?de=d:(de=g,oe=void 0);const ve=de===g&&J[Se+1].startsWith("/>")?" ":"";le+=de===d?pe+r:me>=0?(te.push(ie),pe.slice(0,me)+n+pe.slice(me)+e+ve):pe+e+(me===-2?(te.push(void 0),Se):ve)}const De=le+(J[q]||"")+($===2?"":"");return[l!==void 0?l.createHTML(De):De,te]};class L{constructor({strings:$,_$litType$:q},te){let oe;this.parts=[];let le=0,de=0;const De=$.length-1,Se=this.parts,[pe,ie]=P($,q);if(this.el=L.createElement(pe,te),N.currentNode=this.el.content,q===2){const ee=this.el.content,me=ee.firstChild;me.remove(),ee.append(...me.childNodes)}for(;(oe=N.nextNode())!==null&&Se.length0){oe.textContent=v?v.emptyScript:"";for(let ce=0;ce2||te[0]!==""||te[1]!==""?(this._$AH=Array(te.length-1).fill(new String),this.strings=te):this._$AH=b}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI($,q=this,te,oe){const le=this.strings;let de=!1;if(le===void 0)$=k(this,$,q,0),de=!s($)||$!==this._$AH&&$!==F,de&&(this._$AH=$);else{const De=$;let Se,pe;for($=le[0],Se=0;Se{var te,oe;const le=(te=q==null?void 0:q.renderBefore)!==null&&te!==void 0?te:$;let de=le._$litPart$;if(de===void 0){const De=(oe=q==null?void 0:q.renderBefore)!==null&&oe!==void 0?oe:null;le._$litPart$=de=new K($.insertBefore(a(),De),De,void 0,q!=null?q:{})}return de._$AI(J),de},D.svg=O,Object.defineProperty(D,"i",{value:!0})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(86)],E=u.dj.d(A,function(D){"use strict";return D.html},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(311),u(12)],E=u.dj.d(A,function(D,_){class v{constructor(n){this._iconData={},this._iconsLocation=n.iconsLocation,this._iconsLocation[this._iconsLocation.length-1]!=="/"&&(this._iconsLocation+="/"),this._resolvePath=n.resolvePath,this._resolvePath||(this._resolvePath=function(e){return e}),this._setupCompleted=this._loadConfigData(n.registryLocation)}getIcon(n){let e=n.id;return new Promise(function(t,r){this._ready().then(function(){n.width===void 0&&(n.width=n.height||24),n.height===void 0&&(n.height=n.width||24),this._validateProps(n)?t(this._getSvg(e,n.width,n.height)):r(new Error("Failed to fetch icon with requested size. { id: ".concat(e,", width: ").concat(n.width,", height: ").concat(n.height," }")))}.bind(this))}.bind(this))}_validateProps(n){return typeof n.id=="string"&&typeof n.height=="number"&&typeof n.width=="number"&&this._iconData.hasOwnProperty(n.id)&&this._iconData[n.id].indexOf("".concat(n.width,"x").concat(n.height))>=0}isValidIcon(n){return new Promise(function(e,t){this._ready().then(function(){e(this._iconData.hasOwnProperty(n))}.bind(this))}.bind(this))}validateIconProperties(n){return new Promise(function(e,t){this._ready().then(function(){n.width===void 0&&(n.width=n.height||24),n.height===void 0&&(n.height=n.width||24),e(this._validateProps(n))}.bind(this))}.bind(this))}_ready(){return this._setupCompleted}_loadConfigData(n){return new Promise(function(e,t){fetch(this._resolvePath(n),{mode:"cors",credentials:"include"}).then(function(r){r.status===200?r.json().then(function(i){this._iconData=i,e()}.bind(this)):(_.warn("Could not load Icons Registry."),e())}.bind(this),function(r){t(r)})}.bind(this))}_getSvg(n,e,t){return D.buildSvg({url:this._resolvePath("".concat(this._iconsLocation).concat(e,"x").concat(t,"/").concat(n,".svg")),iconId:n,width:e,height:t})}}return v},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){const D="http://www.w3.org/2000/svg",_="#00000000";class v{static buildSvg(n){let{url:e,iconId:t,width:r,height:i}=n;const a=document.createElementNS(D,"svg");return a.setAttribute("fill",_),a.setAttribute("height",i),a.setAttribute("width",r),this.injectSVG({url:e,node:a,iconId:t,height:i,width:r}),a.setAttribute("data-test-id",t),a}static injectSVG(n){let{url:e,node:t,iconId:r,height:i,width:a}=n;const s="".concat(r,"_").concat(a,"x").concat(i);v._svgTextCache[s]!==void 0?t.innerHTML=v._svgTextCache[s]:v._pendingContainerNodes[s]!==void 0?v._pendingContainerNodes[s].push(t):(v._pendingContainerNodes[s]=[t],fetch(e,{mode:"cors",credentials:"include"}).then(function(c){c.text().then(function(o){v._svgTextCache[s]=o,v._pendingContainerNodes[s].forEach(function(f){f.innerHTML=v._svgTextCache[s]}),delete v._pendingContainerNodes[s];const d=new CustomEvent("iconfetchsuccess",{detail:{id:r}});t.dispatchEvent(d)})}))}}return v._svgTextCache={},v._pendingContainerNodes={},v},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){const D={DEBUG:5,LOG:4,TABLE:4,TIME:4,DIR:4,INFO:3,WARN:2,ASSERT:1,ERROR:1};return Object.freeze(D),D},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){const D={DEBUG:"debug",LOG:"log",TABLE:"table",TRACE:"trace",TIME_END:"timeEnd",GROUP:"group",GROUP_COLLAPSED:"groupCollapsed",GROUP_END:"groupEnd",DIR:"dir",INFO:"info",WARN:"warn",ASSERT:"assert",ERROR:"error"};return Object.freeze(D),D},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(189)],E=u.dj.d(A,function(D){function _(l){let n={},e=[];D.makeReadOnlyProperty(n,"size",l);let t=0;return n.add=function(r){e[t]=r,t=(t+1)%n.size},n.applyCallback=function(r){let i=t+1;e[i]===void 0&&(i=0);let a=0,s=i;for(;a-1?this.topLevelHandlers.splice(e,1):n.matcher==="*"&&delete this.defaultTopLevelHandler},_constructMatcherFromQuery:function(n){var e=n.split("||"),t=[];return e.forEach(function(r){r=v.trim(r),r=r.replace(/([.])/g,"\\$1"),r=r.replace(/\*/g,".*"),t.push(new RegExp("^"+r+"$"))}),function(r){return D.some(t,function(i){return i.test(r.faultCode||r.code||"")})}},handleFault:function(n){var e,t=function(a,s){var c,o=n.getMessageClassifier(s);o&&(c=[a,o].join(":"),this.faultHandlers[c]&&this.faultHandlers[c](n.fault,n.context))};for(e in n.requestMessages)if(n.requestMessages.hasOwnProperty(e)){this.faultHandlers[e]&&this.faultHandlers[e](n.fault,n.context);var r=n.requestMessages[e];Array.isArray(r)&&r.forEach(v.hitch(this,t,e))}this.faultHandlers["*"]&&this.faultHandlers["*"](n.fault,n.context),this.endPointLevelHandlers[n.endPointName]?this._handleEndpointLevelFault(n):this._handleTopLevelFault(n)},_handleEndpointLevelFault:function(n){var e=!1,t=D.filter(this.endPointLevelHandlers[n.endPointName],function(r){return r.matcher.call(this,n.fault,n.context)},this);return t.length>0&&t[0].handler&&(e=!0,t[0].handler.call(this,n.fault,n.context,n)),e},_handleTopLevelFault:function(n){var e=D.filter(this.topLevelHandlers,function(r){return r.matcher.call(this,n.fault,n.context)},this),t=e.length>0?e[0].handler:this.defaultTopLevelHandler;t&&t.call(this,n.fault,n.context,n)},handleNonTransactionFault:function(n){var e=D.filter(this.topLevelHandlers,function(r){return r.matcher.call(this,n)},this),t=e.length>0?e[0].handler:this.defaultTopLevelHandler;t&&t.call(this,n)}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(15),u(0),u(45),u(1),u(46),u(325),u(131)],E=u.dj.d(A,function(D,_,v,l,n,e,t){return _([],{defaultMapping:e,constructor:function(i){i=i||{},this.defaultFactories=i.defaultFactories||{},this.mockHandlers=i.mockHandlers||{},this.mapping=i.mapping||this.defaultMapping,this.responseManager=i.responseManager},registerDefaultMessageFactory:function(i,a,s){s&&(a=l.hitch(s,a)),this.defaultFactories[i]=a},deregisterDefaultMessageFactory:function(i){delete this.defaultFactories[i]},registerMockResponseGenerator:function(i,a,s){var c=this;a=l.hitch(s||this,a),this.mockHandlers[i]=function(o,d){var f,h=t.construct(d);f=a(o,h),f||(f=new v,f.callback()),f.addCallback(function(){c.responseManager._processResult(h)})}},deregisterMockResponseGenerator:function(i){delete this.mockHandlers[i]},sendMessage:function(i,a,s){var c={},o={},d,f,h;for(a=a||{},this._createAndFillTransactions(i,a,s,c,o),d=Object.keys(c),f=0;f-1?i:r,r)){if(this.isEndPointEnabled(r))break;r=null}return r||this.getEndPointNames().ROUTER_LEAF_SECURE_ENDPOINT},getRemoteUrlForEndPoint:function(t){var r=this.endPointsCollection[t].routingHost+this.endPointsCollection[t].pathSuffix;return this.endPointsCollection[t].routingKey&&(r=r+"?routingkey="+this.endPointsCollection[t].routingKey),r},setIframeProxyClientForEndPoint:function(t,r){this.endPointsCollection[t].iframeProxy=r},getIframeProxyClientForEndPoint:function(t){var r=this.endPointsCollection[t].iframeProxy;return r||(r=new n(this.endPointsCollection[t].iframeProxyName),this.endPointsCollection[t].iframeProxy=r),r},isEndpointMessageContainerBased:function(t){return t&&this.endPointsCollection[t]?this.endPointsCollection[t].acceptsMessageContainerMessages:!0},addMessagesTypesToEndPoint:function(t,r){this.endPointsCollection[t]&&this.endPointsCollection[t].messages.indexOf(r)===-1&&this.endPointsCollection[t].messages.push(r)},removeMessageTypesFromEndPoint:function(t,r){if(this.endPointsCollection[t]){var i=this.endPointsCollection[t].messages.indexOf(r);i>-1&&this.endPointsCollection[t].messages.splice(i,1)}}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return{Eval:["CurrentFolder","ListFolder"],"Eval:Ping":[],"Eval:RunFile":["UpdateFile","CurrentFolder","ListFolder"],"Eval:MlsPublishPre":["UpdateFile"],"FEval:liveEvalInstrumentCode":[],Interrupt:[],"FEval:GetFigures":["CurrentFolder","ListFolder"],"FEval:CloseFigure":["FEval:GetFigures"],"FEval:SelectFigure":["FEval:GetFigures"],"FEval:ResetAxes":["FEval:GetFigures"],"FEval:ResizeFigure":["FEval:GetFigures"],"FEval:AxesInteraction2D":["FEval:GetFigures"],"FEval:AxesInteraction3D":["FEval:GetFigures"],CurrentUser:["ServiceRegistry"],RouterLogin:["ServiceRegistry"],CurrentFolder:["ListFolder"],MoveFile:["CurrentFolder"],Variable:[],CloseFile:["SaveSession"],UpdateFile:["SaveSession"],SaveSession:["UpdateFile"],SaveSessionState:["UpdateFile"],Logout:["CloseFile"],UpdateShare:["ListFolder"],AcquireMatlab:["ServiceRegistry"]}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(1),u(12),u(46)],E=u.dj.d(A,function(D,_,v,l){return D([],{constructor:function(e){e=e||{},this.responseHandlers=e.responseHandlers||{},this.faultManager=e.faultManager,this.transactions=e.transactions||[]},registerResponseHandler:function(e,t,r){r&&(t=_.hitch(r,t)),this.responseHandlers[e]=t},deregisterResponseHandler:function(e){delete this.responseHandlers[e]},handleTransaction:function(e){this.transactions.push(e),e.deferred.addCallback(_.hitch(this,this._processAll,e)),e.deferred.addCallback(_.hitch(this,this._processResult,e)),e.deferred.addErrback(_.hitch(this,this._processAll,e)),e.deferred.addErrback(_.hitch(this,this._processFault,e))},_processAll:function(e){var t;t=this.transactions.indexOf(e),t>=0&&this.transactions.splice(t,1)},_processResult:function(e){e.getResponseMessageTypes().forEach(function(t){var r=e.responseMessages[t],i=[];try{Array.isArray(r)&&(r.forEach(function(s){var c,o=e.getMessageClassifier(s);if(o){c=[t,o].join(":");var d=this,f=!1;e.getRequestMessageTypes().forEach(function(h){var g=e.requestMessages[h];Array.isArray(g)?g.forEach(function(m){d.responseHandlers[c]&&m.uuid===s.uuid&&(d.responseHandlers[c]([s],e.context),f=!0)}):d.responseHandlers[c]&&g.uuid===s.uuid&&(d.responseHandlers[c]([s],e.context),f=!0)}),f||i.push(s)}else i.push(s)},this),i.length>0&&this.responseHandlers[t]&&this.responseHandlers[t](i,e.context),this.responseHandlers["*"]&&this.responseHandlers["*"](t,e.responseMessages[t],e.context))}catch(s){var a=2;v.error(`Remote: Fault occurred while processing response. -Message: `+s.message+` -Type: `+t+` -Response: `+JSON.stringify(r,null,a))}},this),this._processUdcResponses(e),e.fault&&this.faultManager.handleFault(e)},_processUdcResponses:function(e){var t=l.isEndpointMessageContainerBased(e.endPointName);if(!t){var r=Object.keys(e.requestMessages)[0];this.responseHandlers[r]&&this.responseHandlers[r](e.responseMessages)}},_processFault:function(e){this.faultManager.handleFault(e)}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(328),u(133)],E=u.dj.d(A,function(D,_,v){return D([_],{_doSend:function(n){return v.sendPayload(n,this.endPointName)}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(329),u(1),u(46),u(131)],E=u.dj.d(A,function(D,_,v,l,n){return D(n,{constructor:function(t){t=t||{},this.uuid=t.uuid||this._generateUuid()},_getRequest:function(t){var r=l.isEndpointMessageContainerBased(this.endPointName),i=null;if(r)i={uuid:this.uuid,messages:t},this.computeToken&&(i.computeToken=this.computeToken);else{var a=Object.keys(t);a.forEach(function(s){i=t[s]})}return this._sanitizeForJson(i),JSON.stringify(i,null,0)},_sanitizeForJson:function(t){var r;if(v.isArray(t))t.forEach(this._sanitizeForJson,this);else if(v.isObject(t))for(r in t)t.hasOwnProperty(r)&&(t[r]===void 0?delete t[r]:(v.isObject(t[r])||v.isArray(t[r]))&&this._sanitizeForJson(t[r]))},_doSend:function(t){return _.post({url:this._getEndpoint(),contentType:"application/json",handleAs:"json",postData:t})},_processResponse:function(t){this.stopTime=new Date().getTime(),t?(t.fault&&(this.fault=t.fault),t.messages?this.responseMessages=t.messages:this.responseMessages=t):this.fault={faultCode:"Connection.Fault",message:"Unable to communicate with server, no response."}},_processFault:function(t){this.stopTime=new Date().getTime(),this.fault={faultCode:"Connection.Fault",message:t}}})},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(7),u(128),u.dj.c(C.i),u(92),u(18),u(330),u(45),u(41),u(331),u(1),u(15),u(6),u(20),u(129),u(132),u(91)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i,a,s,c,o,d,f,h){D._xhrObj=f._create;var g=D.config;D.objectToQuery=l.objectToQuery,D.queryToObject=l.queryToObject,D.fieldToObject=e.fieldToObject,D.formToObject=e.toObject,D.formToQuery=e.toQuery,D.formToJson=e.toJson,D._blockAsync=!1;var m=D._contentHandlers=D.contentHandlers={text:function(F){return F.responseText},json:function(F){return i.fromJson(F.responseText||null)},"json-comment-filtered":function(F){r.useCommentedJson||console.warn(`Consider using the standard mimetype:application/json. json-commenting can introduce security issues. To decrease the chances of hijacking, use the standard the 'json' handler and prefix your json with: {}&& -Use djConfig.useCommentedJson=true to turn off this message.`);var b=F.responseText,I=b.indexOf("/*"),N=b.lastIndexOf("*/");if(I==-1||N==-1)throw new Error("JSON was not comment filtered");return i.fromJson(b.substring(I+2,N))},javascript:function(F){return D.eval(F.responseText)},xml:function(F){var b=F.responseXML;if(b&&_("dom-qsa2.1")&&!b.querySelectorAll&&_("dom-parser")&&(b=new DOMParser().parseFromString(F.responseText,"application/xml")),_("ie")&&(!b||!b.documentElement)){var I=function(P){return"MSXML"+P+".DOMDocument"},N=["Microsoft.XMLDOM",I(6),I(4),I(3),I(2)];s.some(N,function(P){try{var L=new ActiveXObject(P);L.async=!1,L.loadXML(F.responseText),b=L}catch(k){return!1}return!0})}return b},"json-comment-optional":function(F){return F.responseText&&/^[^{\[]*\/\*/.test(F.responseText)?m["json-comment-filtered"](F):m.json(F)}};D._ioSetArgs=function(F,b,I,N){var P={args:F,url:F.url},L=null;if(F.form){var k=n.byId(F.form),W=k.getAttributeNode("action");P.url=P.url||(W?W.value:D.doc?D.doc.URL:null),L=e.toObject(k)}var K={};L&&a.mixin(K,L),F.content&&a.mixin(K,F.content),F.preventCache&&(K["dojo.preventCache"]=new Date().valueOf()),P.query=l.objectToQuery(K),P.handleAs=F.handleAs||"text";var V=new t(function(z){z.canceled=!0,b&&b(z);var Q=z.ioArgs.error;return Q||(Q=new Error("request cancelled"),Q.dojoType="cancel",z.ioArgs.error=Q),Q});V.addCallback(I);var G=F.load;G&&a.isFunction(G)&&V.addCallback(function(z){return G.call(F,z,P)});var j=F.error;j&&a.isFunction(j)&&V.addErrback(function(z){return j.call(F,z,P)});var Y=F.handle;return Y&&a.isFunction(Y)&&V.addBoth(function(z){return Y.call(F,z,P)}),V.addErrback(function(z){return N(z,V)}),g.ioPublish&&D.publish&&P.args.ioPublish!==!1&&(V.addCallbacks(function(z){return D.publish("/dojo/io/load",[V,z]),z},function(z){return D.publish("/dojo/io/error",[V,z]),z}),V.addBoth(function(z){return D.publish("/dojo/io/done",[V,z]),z})),V.ioArgs=P,V};var S=function(F){var b=m[F.ioArgs.handleAs](F.ioArgs.xhr);return b===void 0?null:b},T=function(F,b){return b.ioArgs.args.failOk||console.error(F),F},w=function(F){R<=0&&(R=0,g.ioPublish&&D.publish&&(!F||F&&F.ioArgs.args.ioPublish!==!1)&&D.publish("/dojo/io/stop"))},R=0;o.after(d,"_onAction",function(){R-=1}),o.after(d,"_onInFlight",w),D._ioCancelAll=d.cancelAll,D._ioNotifyStart=function(F){g.ioPublish&&D.publish&&F.ioArgs.args.ioPublish!==!1&&(R||D.publish("/dojo/io/start"),R+=1,D.publish("/dojo/io/send",[F]))},D._ioWatch=function(F,b,I,N){var P=F.ioArgs.options=F.ioArgs.args;a.mixin(F,{response:F.ioArgs,isValid:function(L){return b(F)},isReady:function(L){return I(F)},handleResponse:function(L){return N(F)}}),d(F),w(F)};var O="application/x-www-form-urlencoded";return D._ioAddQueryToUrl=function(F){F.query.length&&(F.url+=(F.url.indexOf("?")==-1?"?":"&")+F.query,F.query=null)},D.xhr=function(F,b,I){var N,P=D._ioSetArgs(b,function(W){N&&N.cancel()},S,T),L=P.ioArgs;"postData"in b?L.query=b.postData:"putData"in b?L.query=b.putData:"rawBody"in b?L.query=b.rawBody:(arguments.length>2&&!I||"POST|PUT".indexOf(F.toUpperCase())===-1)&&D._ioAddQueryToUrl(L);var k={method:F,handleAs:"text",timeout:b.timeout,withCredentials:b.withCredentials,ioArgs:L};typeof b.headers!="undefined"&&(k.headers=b.headers),typeof b.contentType!="undefined"&&(k.headers||(k.headers={}),k.headers["Content-Type"]=b.contentType),typeof L.query!="undefined"&&(k.data=L.query),typeof b.sync!="undefined"&&(k.sync=b.sync),D._ioNotifyStart(P);try{N=f(L.url,k,!0)}catch(W){return P.cancel(),P}return P.ioArgs.xhr=N.response.xhr,N.then(function(){P.resolve(P)}).otherwise(function(W){L.error=W,W.response&&(W.status=W.response.status,W.responseText=W.response.text,W.xhr=W.response.xhr),P.reject(W)}),P},D.xhrGet=function(F){return D.xhr("GET",F)},D.rawXhrPost=D.xhrPost=function(F){return D.xhr("POST",F,!0)},D.rawXhrPut=D.xhrPut=function(F){return D.xhr("PUT",F,!0)},D.xhrDelete=function(F){return D.xhr("DELETE",F)},D._isDocumentOk=function(F){return h.checkStatus(F.status)},D._getText=function(F){var b;return D.xhrGet({url:F,sync:!0,load:function(I){b=I}}),b},a.mixin(D.xhr,{_xhrObj:D._xhrObj,fieldToObject:e.fieldToObject,formToObject:e.toObject,objectToQuery:l.objectToQuery,formToQuery:e.toQuery,formToJson:e.toJson,queryToObject:l.queryToObject,contentHandlers:m,_ioSetArgs:D._ioSetArgs,_ioCancelAll:D._ioCancelAll,_ioNotifyStart:D._ioNotifyStart,_ioWatch:D._ioWatch,_ioAddQueryToUrl:D._ioAddQueryToUrl,_isDocumentOk:D._isDocumentOk,_getText:D._getText,get:D.xhrGet,post:D.xhrPost,put:D.xhrPut,del:D.xhrDelete}),D.xhr},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(1),u(18),u(92),u(93)],E=u.dj.d(A,function(D,_,v,l){function n(r,i,a){if(a!==null){var s=r[i];typeof s=="string"?r[i]=[s,a]:D.isArray(s)?s.push(a):r[i]=a}}var e="file|submit|image|reset|button",t={fieldToObject:function(i){var a=null;if(i=_.byId(i),i){var s=i.name,c=(i.type||"").toLowerCase();if(s&&c&&!i.disabled)if(c=="radio"||c=="checkbox")i.checked&&(a=i.value);else if(i.multiple){a=[];for(var o=[i.firstChild];o.length;)for(var d=o.pop();d;d=d.nextSibling)if(d.nodeType==1&&d.tagName.toLowerCase()=="option")d.selected&&a.push(d.value);else{d.nextSibling&&o.push(d.nextSibling),d.firstChild&&o.push(d.firstChild);break}}else a=i.value}return a},toObject:function(i){for(var a={},s=_.byId(i).elements,c=0,o=s.length;c0||(o={csrfToken:S.csrfToken,validForMs:S.validForMs})});var h=s.uploadParams,g=h.computeToken,m=h.routingKey;c._initiateUpload(i,{uploadDestinationUrl:c._workerEndpoint+"upload",computeToken:g,routingkey:m,fileDestination:encodeURIComponent(a),csrfToken:encodeURIComponent(o.csrfToken)})}),this._uploadHandler}},_initiateUpload:function(i,a){var s=this;this._eventCallBack=function(c){switch(c.data.type){case"updateProgress":s._uploadHandler.progress({loaded:c.data.loaded,total:c.data.total});break;case"uploadFinished":s._uploadHandler.resolve({status:c.data.status,response:c.data.response}),s._unloadIframe();break;case"uploadError":s._uploadHandler.reject({status:c.data.status,response:c.data.response});break;default:break}},a.postMessage=this._eventCallBack,this._ReplaceUploadIframe=new t(a),this.postMessageToUploadIframe(i)},_unloadIframe:function(){this._ReplaceUploadIframe=null},getHostName:function(i){var a=l.parseUrl(i);return a.hostname},postMessageToUploadIframe:function(i){this._ReplaceUploadIframe&&this._ReplaceUploadIframe.handleMessage({data:i})}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){var D={A:["target","href","title"],ABBR:["title"],ADDRESS:[],AREA:["shape","coords","href","alt"],ARTICLE:[],ASIDE:[],AUDIO:["autoplay","controls","loop","preload","src"],B:[],BDI:["dir"],BDO:["dir"],BIG:[],BLOCKQUOTE:["cite"],BR:[],CAPTION:[],CENTER:[],CITE:[],CODE:[],COL:["align","valign","span","width"],COLGROUP:["align","valign","span","width"],DD:[],DEL:["datetime"],DETAILS:["open"],DIV:[],DL:[],DT:[],EM:[],FONT:["color","size","face"],FOOTER:[],H1:[],H2:[],H3:[],H4:[],H5:[],H6:[],HEADER:[],HR:[],I:[],IMG:["src","alt","title","width","height"],INS:["datetime"],LI:[],MARK:[],NAV:[],OL:[],P:[],PRE:[],S:[],SECTION:[],SMALL:[],SPAN:[],SUB:[],SUP:[],STRONG:[],TABLE:["width","border","align","valign"],TBODY:["align","valign"],TD:["width","rowspan","colspan","align","valign"],TFOOT:["align","valign"],TH:["width","rowspan","colspan","align","valign"],THEAD:["align","valign"],TR:["rowspan","align","valign"],TT:[],U:[],UL:[],VIDEO:["autoplay","controls","loop","preload","src","height","width"]},_=Object.assign(D),v={href:{"http:":!0,"https:":!0,"mailto:":!0,"matlab:":!0,relative:{"#":!0,"/":!0}},src:{"http:":!0,"https:":!0,"mailto:":!0,relative:{"#":!0,"/":!0}}},l=Object.assign(v),n=["backgroundColor","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","color","fontFamily","fontSize","fontStyle","fontWeight","height","lineHeight","margin","marginBottom","marginLeft","marginRight","marginTop","maxHeight","maxWidth","minHeight","minWidth","overflow","overflowWrap","overflowX","overflowY","padding","paddingBottom","paddingLeft","paddingRight","paddingTop","textAlign","textAnchor","textDecoration","textIndent","textOverflow","textShadow","textTransform","width"],e=[].concat(n);e.push("whiteSpace");var t=function(a,s,c){var o=void 0,d=s.getAttribute("style");if(o=c?n:e,a.style&&d!==null&&d!=="")for(var f=0;f1&&arguments[1]!==void 0?arguments[1]:0,b=document.createDocumentFragment();if(F>150||!O)return b;for(var I=O.firstChild;I;I=I.nextSibling){var N=g(I);I.nodeType===window.Node.ELEMENT_NODE&&N.appendChild(R(I,F+1)),b.appendChild(N)}return b},S=new DOMParser,T=S.parseFromString(d,"text/html"),w=void 0;return T.body?w=m(T.body):w=document.createDocumentFragment(),w}};return{sanitizeHtmlFromJava:r(D,v,!0,"java"),sanitizeHtml:r(_,l,!0)}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;function D(l,n){if(!(l instanceof n))throw new TypeError("Cannot call a class as a function")}function _(l,n){for(var e=0;e=0?"&":"?")+"mre="+encodeURIComponent(r),c&&s&&(t+="&routingkey="+c+"&computeToken="+encodeURIComponent(s))),t}catch(f){D.error("Input URL is malformed")}return t},isAbsoluteUrl:function(n){return!!_.test(n)}}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(338),u(193),u(42)],E=u.dj.d(A,function(D,_){return _(D,"",u.dj.c(),!0)},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(132),u(192)],E=u.dj.d(A,function(D,_){var v=!1,l={};l._serviceData={},l.getServiceRegistryEndpoint=function(i){if(l._serviceData.serviceregistry){var a,s;for(a=l._serviceData.serviceregistry.length,s=0;sh&&l.reverse(),!0}},writable:!1},_moves:{get:function(){return l}}};return Object.create(null,r)}return D},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0){var h=f.rangeList[0];this._widgetController.isTargetCellEditable(o,h)&&this._widgetController.setupEditorOnRange(h,this._viewModel,this._dataStore)}}},{key:"_createEditPromise",value:function(){var o=this;this._editPromise=new Promise(function(d){o._editPromiseResolve=d})}},{key:"_resolveEditPromise",value:function(){this._editPromiseResolve(),this._editPromiseResolve=null,this._editPromise=null}},{key:"eventList",value:function(){var o=this,d={tableKeyPress:function(h){return o.setEditorOnKeyPress(h)},editComplete:function(h){return o.editHandler(h)},enterEditMode:function(h){return o.setEditorOnCell(h)},editCancel:function(h){return o.removeEditorOnCell(h)},editValidation:function(h){return o.handleEditValidation(h)},processEdit:function(h){return o.handleProcessEdit(h)}};return d}},{key:"_updateProcessStart",value:function(o){return this._createEditPromise(),this._setEditProcessingState(o.event),this._widgetController.updateDataStore({obj:o.event,viewModel:this._viewModel,dataStore:this._dataStore})}},{key:"_setEditProcessingState",value:function(o){var d=void 0;if(o){var f=o.row,h=o.column,g=o.oldValue,m=o.newValue,S=o.validationResult;S=S||null,d={},d={location:f+","+h,oldValue:g,newValue:m,validationResult:S}}else d=!1;this._viewModel.setState(v.protected.EDIT_PROCESSING,d)}},{key:"editHandler",value:function(o){var d=this;if(this._editPromise){this._unmountEditor=!0;return}var f=this._widgetController.getDataObj(o,this._viewModel);this._updateProcessStart(o).then(function(){return d._updateSuccess(f)},function(h){return d._updateFailedWithCanceled(f,h)})}},{key:"handleProcessEdit",value:function(o){var d=this;if(!this._editPromise){var f=this._widgetController.getDataObj(o,this._viewModel);this._updateProcessStart(o).then(function(){return d._updateSuccess(f)},function(h){return d._updateFailedWithValidation(f,h)})}}},{key:"_updateSuccess",value:function(o){var d=this;this._resolveEditPromise(),this.removeEditorOnCell();var f=this._widgetController.getOriginalValuePromise();f.then(function(h){o.oldValue=h,d._widgetController.emitEditCompletedEvent(o,d._emitEditCompleted.bind(d))})}},{key:"_updateFailedWithCanceled",value:function(o,d){var f=e.getValidationInfo(d);this._resolveEditPromise(),this.removeEditorOnCell(),this._widgetController.handleEditCancel({obj:o,validationResult:f,emitEditCanceled:this._emitEditCanceled.bind(this)})}},{key:"_updateFailedWithValidation",value:function(o,d){var f=e.getValidationInfo(d);o.validationResult=f;var h=!this._unmountEditor;h?(this._viewModel.setState(v.protected.EDIT_VALIDATION,{error:!0}),this._resolveEditPromise(),this._setEditProcessingState(o)):(this._resolveEditPromise(),this.removeEditorOnCell(),this._widgetController.handleEditCancel({obj:o,validationResult:f,emitEditCanceled:this._emitEditCanceled.bind(this)}))}},{key:"handleEditValidation",value:function(o){var d=e.getState(v.protected.EDIT_VALIDATION,this._viewModel);d=d===null?{error:!1}:d.value,o.event.error!==d.error&&this._viewModel.setState(v.protected.EDIT_VALIDATION,o.event)}},{key:"setEditorOnCell",value:function(o){if(!t.hasModifierKey(o.event)){var d=o.event,f=d.row,h=d.column,g=n.range().setRows(f,f).setColumns(h,h);this._widgetController.setupEditorOnRange(g,this._viewModel,this._dataStore)}}},{key:"removeEditorOnCell",value:function(o){var d=o?o.event:null;if(this._unmountEditor=!1,this._editPromise===null){e.getState(v.protected.EDIT_STATE,this._viewModel)&&this._viewModel.deleteState(v.protected.EDIT_STATE),e.getState(v.protected.EDIT_TRIGGER,this._viewModel)&&this._viewModel.deleteState(v.protected.EDIT_TRIGGER);var f=e.getState(v.protected.EDIT_VALIDATION,this._viewModel);f&&f.value&&f.value.error&&this._viewModel.setState(v.protected.EDIT_VALIDATION,{error:!1});var h=e.getState(v.protected.EDIT_PROCESSING,this._viewModel);h&&h.value&&this._setEditProcessingState(!1),d&&this._widgetController.handleRemoveEditor(d,this._emitEditCanceled,this._viewModel)}}},{key:"setEditorOnKeyPress",value:function(o){this._widgetController.setEditorOnKeyPress({evt:o,viewModel:this._viewModel,dataStore:this._dataStore,setEditorOnFocusedCell:this._setEditorOnFocusedCell.bind(this),validKeys:this._validKeys})}}]),s}();return a},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(2),u(11),u(16)],E=u.dj.d(A,function(D,_,v){var l={then:function(){}};return{updateDataStore:function(e){var t=e.obj,r=e.viewModel,i=e.dataStore,a=t.row,s=t.column,c=t.newValue,o=v.getViewAndDataRange(a,s,r),d=o.dataRange;return r.clearCurrentSortState(),i.update(d,[[c]])},getDataObj:function(e,t){var r=e.event,i=r.row,a=r.column,s=r.newValue,c=r.oldValue,o=v.getViewAndDataRange(i,a,t),d=o.viewRange,f=o.dataRange;return{oldValue:c,newValue:s,viewRange:d,dataRange:f,row:i,column:a}},emitEditCompletedEvent:function(e,t){delete e.row,delete e.column,t(e)},handleRemoveEditor:function(e,t,r){var i=e.oldValue,a=e.newValue,s=e.validationResult,c=e.row,o=e.column;if(i!==a){var d=v.getViewAndDataRange(c,o,r),f=d.viewRange,h=d.dataRange,g={oldValue:i,newValue:a,viewRange:f,dataRange:h};this.handleEditCancel({obj:g,validationResult:s,emitEditCanceled:t})}},handleEditCancel:function(e){var t=e.obj,r=e.validationResult,i=e.emitEditCanceled;r?t.validationResult=[r]:t.validationResult=[],i(t)},setEditorOnKeyPress:function(e){var t=e.evt,r=e.viewModel,i=e.dataStore,a=e.validKeys,s=t.event;if(!(s.ctrlKey||s.altKey||s.meta||s.shiftKey&&s.keyCode===_.SPACE||this._editPromise)&&a[s.keyCode]){var c=v.getState(D.protected.FOCUSED,r)||{},o=c;if(o.rangeList&&o.rangeList.length>0){var d=o.rangeList[0];if(this.isTargetCellEditable(s.nativeEvent.target,d)){var f=null;return s.keyCode!==_.ENTER&&s.keyCode!==_.SPACE&&(f=s),this.setupEditorOnRange(d,r,i,f)}}}},isTargetCellEditable:function(e,t){if(!e.hasAttribute("data-cell-type")&&t){var r=t.rows.start,i=t.columns.start,a=e.querySelectorAll('[data-row="'+r+'"][data-col="'+i+'"][data-cell-type="EditableTableCell"]');return a.length===1}return e.getAttribute("data-cell-type")==="EditableTableCell"},getOriginalValuePromise:function(){return l},setupEditorOnRange:function(e,t,r,i){var a=v.viewRangeToDataRange(e,t);if(l=v.setOriginalValuePromise(a,r),v.isFocusedRange(e,t)){var s={};s[e.rows.start+","+e.columns.start]=!0,t.setState(D.protected.EDIT_STATE,s,[e]),i&&t.setState(D.protected.EDIT_TRIGGER,i.nativeEvent.key)}},isValidKeyDownEvent:function(e){return e=e||1,e>=_.NUM_START&&e<=_.NUM_END||e===_.SPACE||e===_.ENTER||e>=_.ALPHA_START&&e<=_.ALPHA_END||e>=_.NUMPAD_START&&e<=_.NUMPAD_END||e>=_.SYM1_START&&e<=_.SYM1_END||e>=_.SYM2_START&&e<=_.SYM2_END}}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(25),u(16),u(11),u(5)],E=u.dj.d(A,function(D,_,v,l){var n={then:function(){}};return{updateDataStore:function(t){var r=t.obj,i=t.viewModel,a=t.dataStore,s=r.newValue,c=r.column,o=r.node,d=i.getColumnHeaders()[Number(c)]||{dataIndex:c},f=d.dataIndex;i.clearCurrentSortState();var h=[];return h[f]=s,a.update({id:o.id},h)},getDataObj:function(t){return t.event},emitEditCompletedEvent:function(t,r){var i=t.newValue,a=t.oldValue,s=t.column,c=t.node,o=t.columnId;r({cellInfo:{id:c.id,column:s,columnId:o},newValue:i,oldValue:a})},handleRemoveEditor:function(t,r){this.handleEditCancel({obj:t,validationResult:t.validationResult,emitEditCanceled:r})},handleEditCancel:function(t){var r=t.obj,i=t.validationResult,a=t.emitEditCanceled,s=r.newValue,c=r.oldValue,o=r.column,d=r.node,f=r.columnId,h={cellInfo:{id:d.id,column:o,columnId:f},newValue:s,oldValue:c,validationResult:[]};i&&(h.validationResult=[i]),a(h)},setEditorOnKeyPress:function(t){var r=t.evt,i=t.setEditorOnFocusedCell,a=t.validKeys,s=r.event;s.ctrlKey||s.altKey||s.meta||s.shiftKey&&s.keyCode===v.SPACE||a[s.keyCode]&&i(s.nativeEvent.target)},isTargetCellEditable:function(t,r){var i=t,a="Editable";if(!i.hasAttribute("data-cell-type")){var s=r.rows.start,c=r.columns.start,o=i.querySelectorAll('[data-row="'+s+'"][data-col="'+c+'"]'+('[data-cell-type^="'+a+'"]'));return o.length===1}var d=i.getAttribute("data-cell-type");return d.indexOf(a)===0},getOriginalValuePromise:function(){return n},setupEditorOnRange:function(t,r,i){var a=_.viewRangeToDataRange(t,r);n=_.setOriginalValuePromise(a,i);var s={};s[t.rows.start+","+t.columns.start]=!0,r.setState(D.protected.EDIT_STATE,s,[t])},isValidKeyDownEvent:function(t){return t=t||1,t===v.F2||t===v.ENTER}}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0){var g=e.getViewIndex(f),m=g.viewRange,S=g.viewColIndex,T=g.viewRowIndex,w=e.getInteractiveRendererFor(h,T,S);if(!w)return;var R=w.renderer;if(!R.iconAction&&!d.includes(s.event.keyCode))return;var O=e.getColumnConfig(this._viewModel,S),F=this._dataStore.getLocalCellMetaData(T,O.dataIndex);if(e.isReadOnly(F)||O.readonly===!0)return;var b={interactiveRenderer:w,viewRange:m},I=this._getViewandDataRange(b),N=I.dataRange;R.toggle?this._updateToggledValues(b):R.iconAction?this._updateIconAction(N,m):this._dataStore.getData([N]).then(function(P){var L=c._getNewValueIfUnchecked(R,P[0][N.rows.start][N.columns.start]).value;L&&c._updateDataStore(N,m,L)})}}}}]),i}();return r},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0){var T=a.getViewIndex(S),w=T.viewColIndex,R=T.viewRowIndex,O=this._getInteractiveRenderer(R,w);if(!O||!O.iconAction&&!m.includes(d.event.keyCode))return;var F=a.getColumnConfig(this._viewModel,w),b=this._dataStore.getLocalCellData(R,F.dataIndex),I=this._dataStore.getLocalCellMetaData(R,F.dataIndex);if(a.isReadOnly(I)||F.readonly===!0)return;var N=O.handleAction(b,{actionName:r.KEY_PRESS});N.hasChanged&&(O.toggle?this._dataStore.getNode({id:I.id}).then(function(P){var L={node:P.node,row:R,column:w,renderer:O,metaData:I,oldValue:N.oldValue,newValue:N.newValue};f._updateToggledValues(L)}):O.iconAction?this._updateIconAction({id:S.value,row:R,column:w}):this._updateDataStore({newValue:N.newValue,oldValue:N.oldValue,id:S.value,row:R,column:w}))}}}}]),c}();return s},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({CLICK:"click",KEY_PRESS:"keypress",CONTROLLER:"controller"});return D},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r-1?(d=n.range().setRows(f.index,f.index).setColumns(o,o),d):!1})}},{key:"eventList",value:function(){var c=this,o={};return o[r.protected.TABLE_CELL_CLICK]=function(d){return c._emit(r.protected.CELL_FOCUS_CLICK,d.event)},o[r.protected.TABLE_CELL_FOCUS]=function(d){return c._emit(r.protected.CELL_FOCUS_CLICK,d.event)},o[r.internal.TABLE_KEY_PRESS]=function(d){return c._processAndEmitKeyPress(d)},o[r.protected.ROW_SELECTION_CLICK]=function(d){return c._rowHeaderWithFocus(d)},o[r.protected.CELL_DOM_FOCUS_CACHE]=this._cacheFocusToOuterWrapper.bind(this),o[r.protected.RESIZE_SELECTION_BEGIN]=function(d){return c._handleResizeBegin(d)},o[r.protected.RESIZE_SELECTION_END]=function(d){return c._handleResizeEnd(d)},o[r.protected.ROW_CELL_RECTS]=function(d){return c._setRowCellRects(d)},o}},{key:"_setRowCellRects",value:function(c){this._rowCellRects=c.event.children}},{key:"_handleResizeBegin",value:function(c){this._resizeSelection=!0}},{key:"_handleResizeEnd",value:function(c){this._resizeSelection=!1}},{key:"_rowHeaderWithFocus",value:function(c){var o=c.event.row,d=this.getFocusState(),f=void 0;if(d)f=d.rangeList[0].columns.start;else{var h=this._rowCellRectsHeaderFallback({row:o});f=e.getFirstVisibleColumn(this._logicalViewPort,this.viewModel,h)}var g=n.range().setRows(o,o).setColumns(f,f);this._setFocus(g)}},{key:"_rowCellRectsHeaderFallback",value:function(c){var o=this._rowCellRects(c);return Object.keys(o).length===0&&c.row!==void 0&&c.col===void 0?this._headerRects():o}},{key:"_processAndEmitKeyPress",value:function(c){var o=c.event,d={keyCode:o.keyCode},f=e.getActiveCell(this.viewModel),h=f.rangeList[0],g=f.value;d.modifiers=o,d.dataSize={},d.viewPort={},d.dataSize=c.dataSize,d.viewPort=c.viewPort.rangeList[0],d.range=h&&h.rows?h:null,d.row=g,this._emit(r.protected.CELL_FOCUS_KEY,d)}},{key:"_removeFocus",value:function(){this.viewModel.deleteState(t.protected.FOCUSED),this.viewModel.deleteState(t.protected.ACTIVE_CELL)}},{key:"_setFocus",value:function(c,o){if(!this._resizeSelection){var d=l.curry(e.fitRangeToBounds)(this.viewModel.dataSize.rows.end,this.viewModel.dataSize.columns.end),f=n.range().setRows(c.rows.start,c.rows.start).setColumns(c.columns.start,c.columns.start),h=d(f),g=null,m=null;o&&(g={id:o},m=o),this.viewModel.setState(t.protected.FOCUSED,m,[h]),this.viewModel.setState(t.protected.ACTIVE_CELL,g,[h])}}},{key:"_setAsyncFocus",value:function(c){var o=this;l.convertSyncFunctionToPromise().then(function(){return o._setFocus(c)})}},{key:"_isFocusRangeValid",value:function(){return!!(this.getFocusState()&&this.getFocusState().rangeList.length&&this.getFocusState().rangeList[0]!==null)}},{key:"_cacheFocusToOuterWrapper",value:function(){return this._tableView.focus()}},{key:"getRowIdForIndex",value:function(c){var o=[n.range().setRows(c,c)];return this.dataStore.getRowIds(o).then(function(d){return d[0]})}},{key:"setFocusState",value:function(c){var o=this;if(this._focusById&&!c)return this._removeFocus();var d=c.range,f=c.row&&c.row.id?c.row.id:void 0;if(!d)throw this._removeFocus(),new Error("The usage of range argument "+d+" is not correct in setCellFocus API. Please check JSDoc to see the correct usage.");if(this.viewModel.deleteState(t.protected.PENDING_FOCUS_FUNC),Array.isArray(d)&&!this._focusById){if(d.length===0)return this._removeFocus();var h=e.isRangeVisible(d[0],this.viewModel.viewBuffer.rangeList[0]);return h?this._setFocus(d[0],f):this.viewModel.setState(t.protected.PENDING_FOCUS_FUNC,this._setAsyncFocus.bind(this),d)}else if(f===void 0&&this._focusById)this._lastRequestedAsyncFocusState=c,this.getRowIdForIndex(d[0].rows.start).then(function(g){if(o._lastRequestedAsyncFocusState===c){c.row={id:g};var m=e.isRangeVisible(d[0],o.viewModel.viewBuffer.rangeList[0]);return m?o._setFocus(d[0],f):o.viewModel.setState(t.protected.PENDING_FOCUS_FUNC,o._setAsyncFocus.bind(o),d)}});else if(this._focusById)return this._setFocus(d[0],f)}},{key:"getFocusState",value:function(){var c=this.viewModel.getStateByKey(t.protected.FOCUSED);return c||void 0}}]),a}();return i},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r=1){var g=void 0;g=f[0],h=[r.range().setEntireRows(g.rows.start,g.rows.start)]}else h=[];this.adaptor.setSelectionState(h)}}}],[{key:"adaptor",get:function(){return n}}]),o}(t);return s},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;rg?1:0},o=function(h,g){var m=c(h.rows.start,g.rows.start);return m===0?c(h.rows.end,g.rows.end):m},d=function(f){l(h,f);function h(g){_(this,h);var m=v(this,(h.__proto__||Object.getPrototypeOf(h)).call(this,g));return m.adaptor=g.adaptor,g.adaptor.on(e.protected.CELL_SELECTION_CLICK,function(S){return m._calculateProperSelection(S)}),g.adaptor.on(e.internal.RANGE_SELECTION,function(S){return m._calculateProperSelection(S)}),g.adaptor.on(e.protected.ALLOW_DRAG_TO_SELECT,function(S){return m._handleAllowDragToSelect(S)}),m}return D(h,[{key:"_handleAllowDragToSelect",value:function(m){m.event.allowDragToSelect===!0?this.adaptor.viewModel.setState(a.protected.ALLOW_DRAG_TO_SELECT,!0):this.adaptor.viewModel.setState(a.protected.ALLOW_DRAG_TO_SELECT,!1)}},{key:"_calculateProperSelection",value:function(m){var S=m.row!==void 0?i.range().setEntireRows(Number(m.row)):null,T=this.adaptor.getSelectionState()||[];s(m)?m.keyCode===t.A?this.adaptor.setAllRows():this.adaptor.setDiscontiguousRow(S):m.shiftKey?this.adaptor.setContiguousRows(S,m.dragEvent):this.adaptor.setIndividualRow(S),this._hasSelectionChanged(T)&&this.emit(e.exposed.SELECTION_CHANGED,{rangeList:this.adaptor.getSelectionState()})}},{key:"_hasSelectionChanged",value:function(){var m=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],S=this.adaptor.getSelectionState()||[],T=!0;return m.sort(o),S.length===m.length&&(S.sort(o),T=m.reduce(function(w,R,O){return w||!i.isRangeEqual(R,S[O])},!1)),T}},{key:"_keyPressed",value:function(m){if(s(m)){m.keyCode===t.SPACE?this._calculateProperSelection(m):m.keyCode===t.A&&(m.nativeEvent.preventDefault(),this._calculateProperSelection(m));return}switch(m.keyCode){case t.ARROW_DOWN:case t.ARROW_UP:case t.PAGE_DOWN:case t.PAGE_UP:case t.HOME:case t.END:this._calculateProperSelection(m);break;case t.SPACE:m.shiftKey?this._calculateProperSelection(m):this.adaptor.isRowSelected(i.range().setEntireRows(Number(m.row)))<0&&(m.ctrlKey=!0,this._calculateProperSelection(m));break;default:break}}},{key:"setSelection",value:function(m){if(Array.isArray(m)){var S=m.map(function(T){return i.range().setEntireRows(T.rows.start,T.rows.end)});this.adaptor.setSelectionState(S)}}}],[{key:"adaptor",get:function(){return n}}]),h}(r);return d},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r=F[b[b.length-1]].right)return Number(b[b.length-1]);for(var I=0;I=F[N].left&&O.x=F[b[b.length-1]].bottom)return Number(b[b.length-1]);for(var I=0;I=F[N].top&&O.y-1;N-=1)if(O[b]>F[I[N]][b])return Number(I[N]);return Number(I[I.length-1])},T=function(O,F,b){for(var I=Object.getOwnPropertyNames(F),N=0;N-1&&!P&&(Y=Y.setColumns(K,K)),k>-1&&!L&&(Y=Y.setRows(k,k)),!n.isRangeEqual(this._previousRange,Y)){if(this._resizeSelection.inProgress()){var z=this._getState(Y);if(!z)return;this._fulcrum=z.resizeFulcrum,Y=z.resizeActiveCell}this._previousRange=Y,this._viewModel.setState(r.protected.ACTIVE_CELL,null,[Y]),this._viewModel.setState(r.protected.FOCUSED,null,[Y]),b.event.shiftKey=!0,b.event.dragEvent=!0,this._emitSelectionEvent(b)}}}}},{key:"_autoScroll",value:function(b){var I=this._viewModel.getStateByKey(r.protected.ACTIVE_CELL);if(I=I&&I.rangeList[0],!!this._canDragCellSelection()&&!!I){var N=this._rowCellRectsHeaderFallback({row:I.rows.start});if(!(Object.keys(N).length<1)){var P=b.event,L=P.yDelta,k=P.xDelta,W=this._logicalViewPort.getScrollTop(),K=this._logicalViewPort.getScrollLeft(),V=this._logicalViewPort.getFirstVisibleColumn(),G=Math.floor(this._logicalViewPort.getLastVisibleColumn()),j=N[V].width/this._sizes.COL_WIDTH,Y=Math.max(0,K+k/j),z=Math.max(0,W+L),Q=this._setAutoScrollRange(b);if(b.event.rowsOnly||this._logicalViewPort.setScrollLeftPx(Y),b.event.colsOnly||this._logicalViewPort.setScrollTopPx(z),!n.isRangeEqual(this._previousRange,Q)){if(this._resizeSelection.inProgress()){var X=this._getState(Q);if(!X)return;this._fulcrum=X.resizeFulcrum,Q=X.resizeActiveCell}this._previousRange=Q,this._viewModel.setState(r.protected.FOCUSED,null,[Q]),this._viewModel.setState(r.protected.ACTIVE_CELL,null,[Q]),this._fulcrum=this._fulcrum||n.range().setEntireColumns(G,G),b.event.shiftKey=!0,b.event.dragEvent=!0,this._emitSelectionEvent(b)}}}}},{key:"_getState",value:function(b){var I=this.getSelection();if(I.length===0)return null;var N={nextActiveCell:b,currentActiveCell:this._getActiveCell(),currentFulcrum:this._fulcrum};return this._resizeSelection.getState(N)}},{key:"_setAutoScrollRange",value:function(b){var I=b.event,N=I.yDelta,P=I.xDelta,L=I.pointer,k=this._getActiveCell(),W=this._logicalViewPort.getLastVisibleRow(),K=this._logicalViewPort.getFirstVisibleRow(),V=this._logicalViewPort.getLastVisibleColumn(),G=this._logicalViewPort.getFirstVisibleColumn();if(!b.event.rowsOnly)if(P>0)V=Math.min(V+h,this._viewModel.dataSize.columns.end),k=k.setColumns(V,V);else if(P<0){var j=Math.max(0,G-h);k=k.setColumns(j,j)}else{var Y=g(L,this._rowCellRectsHeaderFallback({row:K}));Y=t.getValidStartPoint(Y),k=k.setColumns(Y,Y)}if(!b.event.colsOnly)if(N>0)W=Math.min(W+h,this._viewModel.dataSize.rows.end),k=k.setRows(W,W);else if(N<0){var z=Math.max(0,K-h);k=k.setRows(z,z)}else{var Q=m(L,this._rowRects());Q=t.getValidStartPoint(Q),k=k.setRows(Q,Q)}return k}},{key:"_endScroll",value:function(b){var I=this._viewModel.getStateByKey(r.protected.ACTIVE_CELL);I=I&&I.rangeList[0];var N=b.event,P=N.yDelta,L=N.xDelta,k=N.containerRect;if(!!I){var W=this._rowCellRectsHeaderFallback({row:I.rows.start});if(!(Object.keys(W).length<1)){var K=this._rowCellRectsHeaderFallback({col:I.columns.start});if(!(Object.keys(K).length<1)){var V=this._getActiveCell();if(L>0){var G=S(k,W,"right");V=V.setColumns(G,G)}else if(L<0){var j=T(k,W,"left");V=V.setColumns(j,j)}if(P>0){var Y=S(k,K,"bottom");V=V.setRows(Y,Y)}else if(P<0){var z=T(k,K,"top");V=V.setRows(z,z)}this._viewModel.setState(r.protected.FOCUSED,null,[V]),this._viewModel.setState(r.protected.ACTIVE_CELL,null,[V]),this._triggerCallbacks(b)}}}}},{key:"_triggerCallbacks",value:function(b){var I=b.event,N=I.yDelta,P=I.xDelta,L=I.callback,k={shiftKey:!0};N>0&&(k.keyCode=a.ARROW_DOWN,L(i.internal.TABLE_KEY_PRESS,k)),N<0&&(k.keyCode=a.ARROW_UP,L(i.internal.TABLE_KEY_PRESS,k)),P>0&&(k.keyCode=a.ARROW_RIGHT,L(i.internal.TABLE_KEY_PRESS,k)),P<0&&(k.keyCode=a.ARROW_LEFT,L(i.internal.TABLE_KEY_PRESS,k))}},{key:"_setHeaderRects",value:function(b){this._headerRects=b.event.children}},{key:"_setRowRects",value:function(b){this._rowRects=b.event.children}},{key:"_setRowCellRects",value:function(b){this._rowCellRects=b.event.children}},{key:"_computeEventForPlugin",value:function(b){var I={shiftKey:b.event.shiftKey,ctrlKey:b.event.ctrlKey,metaKey:b.event.meta||b.event.metaKey,groupedSelection:b.event.groupedSelection};return I}},{key:"_handleKeyPress",value:function(b){var I=b.event;switch(I.keyCode){case a.ARROW_LEFT:case a.ARROW_RIGHT:case a.ARROW_UP:case a.ARROW_DOWN:case a.PAGE_UP:case a.PAGE_DOWN:var N=this._getActiveCell();N&&(this._previousRange=n.range().setRows(N.rows.start,N.rows.start).setColumns(N.columns.start,N.columns.start)),this._emitSelectionEvent(b);break;case a.HOME:case a.END:this._emitSelectionEvent(b);break;case a.A:d(I)&&(b.event.nativeEvent.preventDefault(),this._selectAll(b));break;case a.SPACE:if(d(I)){var P=this._viewModel.getStateByKey(r.protected.ACTIVE_CELL)||{},L=P.rangeList||[{columns:{start:0}}],k=L[0].columns.start;this._fulcrum=n.range().setRows(1/0,1/0).setColumns(k,k),this._emitColumnSelectionEvent(b,k)}else if(I.shiftKey){var W=this._viewModel.getStateByKey(r.protected.ACTIVE_CELL)||{},K=W.rangeList||[{rows:{start:0}}],V=K[0].rows.start;this._fulcrum=n.range().setRows(V,V).setColumns(1/0,1/0),this._emitRowSelectionEvent(b,V)}break;default:return!1}}},{key:"_selectAll",value:function(b){this._fulcrum=n.range().setRows(1/0,1/0).setColumns(1/0,1/0);var I=this._computeEventForPlugin(b);I.activeCell=this._getActiveCell(),I.fulcrum=this._fulcrum,I.keyCode=a.A,this.emit(f.SELECT_ALL,I)}},{key:"_emitSelectionEvent",value:function(b){var I=this._getActiveCell();this._fulcrum=this._fulcrum||I,(!b.event.shiftKey||d(b.event))&&(this._fulcrum=I);var N=this._computeEventForPlugin(b);this._resizeSelection.inProgress()&&!I?N.activeCell=this._fulcrum:N.activeCell=I,N.fulcrum=this._fulcrum,this._resizeSelection.inProgress()&&(N.resizeSelectionInProgress=!0),b.event.keyCode&&(N.keyCode=b.event.keyCode),b.event.dragEvent&&(N.dragEvent=b.event.dragEvent),this.emit(f.RANGE_SELECTION,N)}},{key:"_handleColumnHeaderClick",value:function(b){var I=b.event.column,N=b.event.columnEnd,P=this._logicalViewPort.getFirstVisibleRow(),L=this._cellNav.getScrollTopPosition(P,this._rowRects()),k=0,W=n.range().setRows(k,k).setColumns(I,I);this._logicalViewPort.setScrollTopPx(L),b.dataSize&&b.dataSize.rows.count>0&&(this._viewModel.setState(r.protected.FOCUSED,null,[W]),this._viewModel.setState(r.protected.ACTIVE_CELL,null,[W]),this._emitColumnSelectionEvent(b,I,N))}},{key:"_emitColumnSelectionEvent",value:function(b,I,N){var P=this._getActiveCell();if(this._fulcrum=this._fulcrum||P,!b.event.shiftKey)N||(N=I),this._fulcrum=n.range().setRows(1/0,1/0).setColumns(I,N);else{var L=this._fulcrum.columns.start;N||(N=L),this._fulcrum=n.range().setRows(1/0,1/0).setColumns(Math.min(L,I,N),Math.max(this._fulcrum.columns.end,I,N))}var k=this._computeEventForPlugin(b);k.activeCell=P,k.fulcrum=this._fulcrum||P,this.emit(f.COLUMN_SELECTION,k)}},{key:"_handleRowHeaderClick",value:function(b){var I=b.event.row,N=this._rowCellRectsHeaderFallback({row:I}),P=t.getFirstVisibleColumn(this._logicalViewPort,this._viewModel,N),L=this._cellNav.getScrollLeftPosition(P,this._rowCellRectsHeaderFallback({row:I})),k=n.range().setRows(I,I).setColumns(P,P);this._logicalViewPort.setScrollLeftPx(L),this._viewModel.setState(r.protected.FOCUSED,null,[k]),this._viewModel.setState(r.protected.ACTIVE_CELL,null,[k]),this._emitRowSelectionEvent(b,I)}},{key:"_emitRowSelectionEvent",value:function(b,I){var N=this._getActiveCell();if(this._fulcrum=this._fulcrum||N,!b.event.shiftKey)this._fulcrum=n.range().setRows(I,I).setColumns(1/0,1/0);else{var P=this._fulcrum.rows.start;this._fulcrum=n.range().setRows(P,P).setColumns(1/0,1/0)}var L=this._computeEventForPlugin(b);L.activeCell=N,L.fulcrum=this._fulcrum,this.emit(f.ROW_SELECTION,L)}},{key:"_handleDoubleClick",value:function(b){this.emit(i.internal.TABLE_SELECTED_ACTION,{selectedRange:this.getSelectionState()})}},{key:"setSelection",value:function(){var b=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],I=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},N=I.activeRange;!Array.isArray(b)||(this._viewModel.setState(r.ACTIVE_RANGE,N),this._viewModel.setState(r.protected.SELECTED,this._cellSelection,b))}},{key:"getActiveRange",value:function(){return this._viewModel.getStateByKey(r.ACTIVE_RANGE)}},{key:"getSelection",value:function(){var b=this._viewModel.getStateByKey(r.protected.SELECTED);return b?b.rangeList:[]}},{key:"applyToCells",set:function(b){b?this._cellSelection=r.SELECT_CELLS:this._cellSelection=null}},{key:"selectHeaders",set:function(b){this._viewModel.setState(r.SELECT_HEADERS,!!b)}}],[{key:"event",get:function(){return f}}]),O}(e);return w},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(17)],E=u.dj.d(A,function(D){"use strict";function _(v){function l(r,i){for(var a=Math.max(r,0),s=0;i[a-=1];)s+=i[a].height;return s}function n(r,i,a){var s=Math.max(i,0),c=0;do c+=a[s].height;while(a[s-=1]);return Math.max(0,c-r)}function e(r,i){for(var a=Math.max(r,0),s=0;i[a-=1];)s+=i[a].width;return s}function t(r,i,a){var s=Math.max(i,0),c=0;do c+=a[s].width;while(a[s-=1]);return Math.max(0,c-r)}return{getScrollLeftPosition:e,getScrollRightPosition:t,getScrollBottomPosition:n,getScrollTopPosition:l}}return _},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(209)],E=u.dj.d(A,function(D){"use strict";var _=1;function v(l){function n(i){return Math.max(0,i)*l.ROW_HEIGHT}function e(i,a,s){var c=D.maybe(s[a]).chain(function(S){return S.height}).therefore(-1,function(S){return i-S});if(c<0)return Math.max(n(a+_)-i,0);for(var o=a,d=0;s[o-=1]&&d0&&arguments[0]!==void 0?arguments[0]:{},d=o.columnIndex,f=o.order;f===void 0||isNaN(d)||d<0||(f===""?this._viewModel.sort([o]):(this.setSortIndicator(o),this._viewModel.sort([o])))}},{key:"_removeColumnSortState",value:function(){var o=this._viewModel.getStateByKey(r.protected.SORTED);if(o&&o.rangeList){var d=o.rangeList[0].columns.start;this._viewModel.deleteColumnMetaData(r.protected.SORTED,d)}}},{key:"_addColumnSortState",value:function(o,d){var f={order:d},h=n.range().setEntireColumns(o);this._viewModel.setColumnMetaData(r.protected.SORTED,f,o),this._viewModel.setState(r.protected.SORTED,d,[h])}},{key:"setSortIndicator",value:function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},d=o.columnIndex,f=o.order;d=Number(d),Object.keys(o).length===0?(this._removeColumnSortState(),this._viewModel.deleteState(r.protected.SORTED)):!isNaN(d)&&d>=0&&f&&(this._removeColumnSortState(),this._addColumnSortState(d,f))}},{key:"_updateColumnSortState",value:function(o){if(this._removeColumnSortState(),o.sorted.length!==0){var d=o.sorted[0],f=d.columnIndex,h=d.order;f>=0&&this._addColumnSortState(f,h)}}}]),s}(e);return i},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0&&arguments[0]!==void 0?arguments[0]:[];return g.reduce(function(m,S){return m[S]=!0,m},{})}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0&&arguments[0]!==void 0?arguments[0]:{};this.emit(t.exposed.HEADER_MENU,c)}},{key:"emits",get:function(){return[t.exposed.HEADER_MENU]}}],[{key:"adaptor",get:function(){return e}}]),a}(n);return r},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r0&&arguments[0]!==void 0?arguments[0]:null;if(c.isDataTransferValid(m)){this._serviceWrite(m);return}this._handleCopyEvent(null)}},{key:"paste",value:function(){this._handlePasteEvent()}},{key:"_handleCutEvent",value:function(m){var S=this;this._isEditing()||this._getCutData().then(function(T){S._serviceWrite(T)})}},{key:"_handleCopyEvent",value:function(m){var S=this;this._isEditing()||this._getCopyData().then(function(T){S._serviceWrite(T)})}},{key:"_handlePasteEvent",value:function(m){this._isEditing()||this._serviceRead(m)}},{key:"_getCutData",value:function(){return this._onCutCallback()}},{key:"_getCopyData",value:function(){return this._onCopyCallback()}},{key:"_onSuccess",value:function(m){var S=this._onSuccessCallback;!S||S(m)}},{key:"_onFailure",value:function(m){var S=this._onFailureCallback;!S||S(m)}},{key:"_getServiceConfig",value:function(){var m={};return this._isLocalServer&&(m={isLocalServer:this._isLocalServer}),m}},{key:"_serviceRead",value:function(m){var S=this;if(!!this._onPasteCallback){var T=a.getInstance(this._getServiceConfig()),w=m&&m.event&&m.event.nativeEvent;T.read({event:w}).then(function(R){var O=R.dataTransfer,F=R.status,b=R.message;S._onPasteCallback(O),S._onSuccess({status:F,message:b})}).catch(function(R){return S._onFailure(R)})}}},{key:"_serviceWrite",value:function(m){var S=this;if(!!c.isDataTransferValid(m)){var T=a.getInstance(this._getServiceConfig());T.write({dataTransfer:m}).then(this._onSuccess).catch(function(w){return S._onFailure(w)})}}},{key:"_isEditing",value:function(){if(this._viewModel){var m=this._viewModel.getStateByKey(t.protected.EDIT_STATE);if(m)return!0;var S=this._viewModel.getStateByKey(t.protected.EDIT_PROCESSING);return S&&S.value?S.value:!1}return!1}},{key:"_getSelectionRangeList",value:function(){if(this._viewModel){var m=this._viewModel.getStateByKey(t.protected.SELECTED);if(m)return m.rangeList}return null}}]),h}(n);return d},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(374),u(396)],E=u.dj.d(A,function(D,_){let v,l;return{getInstance:function(t){return t&&t.isLocalServer?(l||(l=new D),l):(v||(v=new _),v)}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;function D(l,n){var e=Object.keys(l);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(l);n&&(t=t.filter(function(r){return Object.getOwnPropertyDescriptor(l,r).enumerable})),e.push.apply(e,t)}return e}function _(l){for(var n=1;no)}read(...s){return this._serverClipboardService.read(...s).then(this._handleReadSuccess.bind(this))}_handleReadSuccess(s){let{dataTransfer:c}=s;return this._cache.set(c),_(_({},s),{},{dataTransfer:c})}readTypes(...s){return this._serverClipboardService.readTypes(...s)}on(s,c){if(s!==t.EventsEnum.clipboardDataChange&&s!==t.EventsEnum.clipboardChange){r.warn("Server clipboard supports ".concat(t.EventsEnum.clipboardChange," and ").concat(t.EventsEnum.clipboardDataChange," events"));return}if(this._serverClipboardService.listeningClipboardChange||this._serverClipboardService.setupClipboardListener(),s===t.EventsEnum.clipboardChange)return this._serverClipboardService.on(t.EventsEnum.clipboardChange,c);if(s===t.EventsEnum.clipboardDataChange)return this._serverClipboardService.on(t.EventsEnum.clipboardDataChange,c)}}return i},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(58),u(379),u(47),u(48),u(143),u(12)],E=u.dj.d(A,function(D,_,v,l,n,e){const{StatusEnum:t,EventsEnum:r}=v;class i extends n{constructor(s){super();this._serverCache=s,this._listeningClipboardChange=!1}setupClipboardListener(){let s=_.getInstance();s.setupClipboardListener(),s.on(r.clipboardChange,this._handleClipboardChange.bind(this)),this._listeningClipboardChange=!0}get listeningClipboardChange(){return this._listeningClipboardChange}async _handleClipboardChange(){if(!this.hasListeners(r.clipboardChange)&&!this.hasListeners(r.clipboardDataChange))return;const{dataTransfer:s}=await this.read(),c=this._serverCache.get();if(this._serverCache.set(s),this.emit(r.clipboardChange,{dataTransfer:s}),!this.hasListeners(r.clipboardDataChange))return;await D.compare(s,c)||this.emit(r.clipboardDataChange,{dataTransfer:s})}write({dataTransfer:s}){return D.convertDataTransferToServerFormat(s).then(c=>_.getInstance().write(c.contents).then(()=>({status:t.success.writeGlobal,message:t.messageService.successMessage}))).catch(c=>(e.warn(c.message),{status:t.success.writeLocal,message:t.messageService.failureMessage}))}readTypes(){return _.getInstance().readTypes().then(this._handleTypesResponse)}_handleTypesResponse(s){let c=[];return s&&s.data&&s.data.flavors&&(c=s.data.flavors),{types:c}}read(s){const c={};return s&&Array.isArray(s.types)&&(c.flavors=[...s.types,v.MIME_TYPES.ACTION]),_.getInstance().read(c).then(this._handleReadSuccess)}_handleReadSuccess(s){let c=new l;return s.data&&D.convertServerFormatToDataTransfer(s.data,c),{status:t.success.readGlobal,message:t.messageService.successMessage,dataTransfer:c}}}return i},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){"use strict";return Object.freeze({ONLY_TEXT:"ONLY_TEXT",CONTAINS_IMAGE:"CONTAINS_IMAGE",FROM_COPY_EVENT:"FROM_COPY_EVENT",OTHERS:"OTHERS",DATA_KIND_STRING:"string",DATA_KIND_FILE:"file",useNavigatorClipboard:"useNavigatorClipboard"})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return Object.freeze({DataTransfer:{COPY:"copy",MOVE:"move",UNINITIALIZED:"uninitialized"},WRITE_TO_CACHE:"WRITE_TO_CACHE",READ_FROM_CACHE:"READ_FROM_CACHE",FAIL_READ:"FAIL_READ"})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return Object.freeze({clipboardDataChange:"clipboardDataChange",clipboardChange:"clipboardChange"})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(380),u(190),u(47),u(394),u(143)],E=u.dj.d(A,function(D,_,v,l,n){let e;const{baseChannel:t,writeChannel:r,readChannel:i,readTypesChannel:a,clipboardChange:s}=l;class c extends n{constructor(){super();this._requestId=_.generateUuid(),this._map=new Map,this._onSubscribe=this._onSubscribe.bind(this),this._subscribe("".concat(r.response,"/*"),this._onSubscribe),this._subscribe("".concat(i.response,"/*"),this._onSubscribe),this._subscribe("".concat(a.response,"/*"),this._onSubscribe)}write(d){return this._publish(r.request,{contents:d})}read(d){return this._publish(i.request,d)}readTypes(){return this._publish(a.request)}_publish(d,f){let h=_.generateUuid();return new Promise((m,S)=>{let T={uid:h,requestId:this._requestId};f&&Object.assign(T,f),this._map.set(h,{resolve:m,reject:S}),D.publish("".concat(t).concat(d),T)})}_subscribe(d,f){let h="".concat(t).concat(d);D.subscribe(h,f)}_onSubscribe(d){let f=d.channel||"",h=this._extractUID(f);if(!this._map.has(h))return;let{resolve:g}=this._map.get(h);g&&g(d),this._map.delete(h)}_extractUID(d){let f=d.split("/");if(f.length>=5)return f[4]}static getInstance(){return e||(D.start(),e=new c),e}setupClipboardListener(){this._subscribe(s.onChange,this._handleClipboardDataChange.bind(this)),D.publish("".concat(t).concat(s.request),{})}_handleClipboardDataChange(){this.emit(v.EventsEnum.clipboardChange,{})}}return c},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(381),u(391),u(142),u(393),u(123)],E=u.dj.d(A,function(D,_,v,l,n){function e(s,c){const o=c._startFunction||c.start,d=c.stop,f=s._startFunction||s.start,h=s.stop,g=function(){f.call(s,[]),o.call(c,[])},m=function(){d.call(c,[]),h.call(s,[])};c._startFunction?c._startFunction=g:c.start=g,s._startFunction?s._startFunction=g:s.start=g,c.stop=m,s.stop=m}const t=D(new _(n,null,null,null,{instanceType:v.MATLAB_SERVICE_HOST.name})),r=new _(n,null,null,null,{instanceType:v.APP_SERVICE_HOST.name});let i;n.enableServerOnWorkerAsync=function(){},n.disableServerOnWorkerAsync=function(){};const a={};return a[v.APP_SERVICE_HOST.name]=()=>(i||(i=D(r),t.isStarted()&&i.start(),e(t,i)),i),a[v.MATLAB_SERVICE_HOST.name]=()=>t,t.create=function(s){return l(a,s)},t},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(1),u(20),u(6),u(382)],E=u.dj.d(A,function(D,_,v,l){return function(e){const t=new l,r={messageService:t,subscribe:D.hitch(t,"subscribe"),unsubscribe:D.hitch(t,"unsubscribe"),publish:D.hitch(t,"publish"),start:D.hitch(t,"start"),stop:D.hitch(t,"stop"),isRunning:D.hitch(t,"isStarted"),isStarted:D.hitch(t,"isStarted"),isConnected:D.hitch(t,"isConnected"),isFatallyDisconnected:D.hitch(t,"isFatallyDisconnected"),isDisconnected:D.hitch(t,"isDisconnected"),setLatency:D.hitch(t,"setLatency"),setErrorRate:D.hitch(t,"setErrorRate"),getTransport:D.hitch(t,"getTransport"),onConnected:function(){},onDisconnected:function(){},onReconnected:function(){},onFatallyDisconnected:function(){},onNotConnected:function(){},on:function(i,a){return v(this.messageService,i,a)},handleMessage:D.hitch(t,"handleMessage"),internalMotwDisableStart:function(){this._startFunction=this.start,this.start=function(){}},internalMotwEnableStart:function(){this._startFunction&&(this.start=this._startFunction,this._startFunction=null)}};return _.after(t,"onConnected",D.hitch(r,"onConnected"),!0),_.after(t,"onDisconnected",D.hitch(r,"onDisconnected"),!0),_.after(t,"onReconnected",D.hitch(r,"onReconnected"),!0),_.after(t,"onFatallyDisconnected",D.hitch(r,"onFatallyDisconnected"),!0),_.after(t,"onNotConnected",D.hitch(r,"onNotConnected"),!0),t.setDelegate(e),r}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(0),u(1),u(20),u(26),u(12),u(383),u(218)],E=u.dj.d(A,function(D,_,v,l,n,e,t){return D([e],{logSubscriptions:!1,constructor:function(){this.batching=!0,this.typeSerializers=[],this.typeDeserializers={},this.channelSubscriptions={},this._queuedOps=[],this._hasConnected=!1},setDelegate:function r(i){this.inherited("setDelegate",r,arguments),v.after(this._delegate,"onMessage",_.hitch(this,this.handleMessage),!0)},publish:function(r,i){if(this.isConnected()||this._currentState==="resubscribing"){const a=this._queuePublish(r,this.serialize(i));return this._deferProcessQueue(),a}else return this._queuePublish(r,this.serialize(i))},subscribe:function(r,i,a){if(this.logSubscriptions&&n.info("MessageService subscribe: "+r,i,a),this._addHandler(this.channelSubscriptions,r,i,a),this.isConnected()||this._currentState==="resubscribing"){const s=this._queueSubscribe(r,i,a);return this._deferProcessQueue(),s}else return this._queueSubscribe(r,i,a)},unsubscribe:function(r,i,a){if(this.logSubscriptions&&n.info("MessageService unsubscribe: "+r,i,a),this._removeHandler(this.channelSubscriptions,r,i,a)){if(this._removeQueuedMatchingSubscribe(r,i,a))return new l().resolve();if(this.isConnected()||this._currentState==="resubscribing"){const c=this._queueUnsubscribe(r,i,a);return this._deferProcessQueue(),c}else return new l().resolve()}else return n.error("Not subscribed to channel: "+r+", can't unsubscribe."),new l().reject("Not subscribed to channel: "+r+", can't unsubscribe.")},flush:function(){if(this.isConnected())this._processQueue();else throw new Error("Can only manually flush the queue when connected.")},setLatency:function(r){this._delegate&&this._delegate.doSetLatency&&this._delegate.doSetLatency(r)},setErrorRate:function(r){this._delegate&&this._delegate.doSetErrorRate&&this._delegate.doSetErrorRate(r)},getTransport:function(){return this._delegate&&this._delegate.getTransport?this._delegate.getTransport():t.UNKNOWN},_enterDisconnected:function r(){this.inherited("_enterDisconnected",r,arguments),this._rejectQueue()},_enterConnecting:function r(){this.inherited("_enterConnecting",r,arguments),Object.keys(this.channelSubscriptions).forEach(i=>{this.channelSubscriptions[i].subscribed=!1})},_enterConnected:function r(){this._hasConnected=!0,this.inherited("_enterConnected",r,arguments),this._processQueue()},_enterDisconnecting:function r(){this._processQueue(),this.inherited("_enterDisconnecting",r,arguments)},_enterFatallyDisconnected:function r(){this.inherited("_enterFatallyDisconnected",r,arguments),this._rejectQueue()},_queuePublish:function(r,i){const a=new l;return this._queuedOps.push({type:"publish",channel:r,data:i,deferred:a}),a.promise},_queueSubscribe:function(r,i,a){const s=new l;return this._queuedOps.push({type:"subscribe",channel:r,handler:i,scope:a,deferred:s}),s.promise},_removeQueuedMatchingSubscribe:function(r,i,a){let s;for(let c=this._queuedOps.length-1;c>=0;c-=1)if(s=this._queuedOps[c],s.type==="subscribe"&&s.channel===r&&s.handler===i&&s.scope===a){this._queuedOps.splice(c,1);const o=this._delegate&&this._delegate.delegateConnected();return this.isConnected()&&o&&s.deferred.resolve(),!0}},_queueUnsubscribe:function(r,i,a){const s=new l;return this._queuedOps.push({type:"unsubscribe",channel:r,handler:i,scope:a,deferred:s}),s.promise},_processQueue:function(){const r=this._delegate&&this._delegate.delegateConnected();if(!(this.isConnected()&&r)&&this._currentState!=="disconnecting")return;this._delegate.doStartBatch();const a=this._queuedOps;this._queuedOps=[],a.forEach(function(s){let c;s.type==="publish"?c=this._delegate.doPublish(s.channel,s.data):s.type==="subscribe"?c=this._doSubscribe(s.channel,s.handler,s.scope):s.type==="unsubscribe"&&(c=this._doUnsubscribe(s.channel,s.handler,s.scope)),c.then(s.deferred.resolve,s.deferred.reject)},this),this._delegate.doEndBatch()},_rejectQueue:function(){if(this._hasConnected){for(let r=0;r=0&&c.splice(o,1),(!c||c.length===0)&&delete r[i],o>=0},_callHandlers:function(r,i,a){let s,c;if(Object.prototype.hasOwnProperty.call(r,i))for(s=r[i],c=0;c "+r),i==="connected"&&this.onNotConnected(),r==="connected"&&this._previouslyConnected?this.onReconnected():r==="connected"&&!this._previouslyConnected&&this.onNewlyConnected()},_enterDisconnected:function(){this._previouslyConnected=!1,this._delegate.cleanup(),this.onDisconnected()},_enterConnecting:function(){this._retryCount=0,this._delegate.connect().then(this._connectSuccess,this._connectFailure)},_enterReconnecting:function(){this._retryCount+=1,t.info("Reconnecting message service. Attempt "+this._retryCount,arguments),this._delegate.cleanup(),this._delegate.connect().then(this._connectSuccess,this._connectFailure)},_reconnect:function(){},_connectSuccess:function(){},_connectFailure:function(){},_timeoutAction:function(){this.logStateChanges&&t.info("MessageService timeout:",arguments)},_retryFailure:function(){let r;return this._retryCount>=this._MAX_RETRIES&&(t.error("Message service fatally disconnected."),r="fatallyDisconnected"),r},_enterResubscribing:function(){let r,i;const a=[];this._delegate.doStartBatch();for(r in this.channelSubscriptions)Object.prototype.hasOwnProperty.call(this.channelSubscriptions,r)&&(i=this.channelSubscriptions[r],a.push(this._delegate.doSubscribe(r)),i.subscribed=!0);this._delegate.doEndBatch(),n(a).then(this._resubscribeSuccess,this._resubscribeFailure)},_resubscribeSuccess:function(){},_resubscribeFailure:function(){},_enterConnected:function(){this._delegate.delegateConnected()?(this._retryCount=0,this._previouslyConnected&&t.info("Successfully connected."),this._previouslyConnected=!0,this.onConnected()):this._reconnect()},_enterFatallyDisconnected:function(){this.onFatallyDisconnected()},_enterDisconnecting:function(){this._delegate.disconnect().then(this._disconnectSuccess,this._disconnectFailure)},_disconnectSuccess:function(){},_disconnectFailure:function(){}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(385)],E=u.dj.d(A,function(D,_){return D([],{constructor:function(l){l.stateMachine=this,this.state=new _(l)},start:function(){this.state.enter()},stop:function(){this.state.exit()},_changeState:function(l,n){this.state.enter(l,n)},onEnterState:function(l){},onExitState:function(l){}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(1),u(12),u(386),u(387),u(388),u(389),u(390)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r){let i;return i=D([],{constructor:function(s){this.stateMachine=s.stateMachine||{_changeState:function(){},onEnterState:function(){},onExitState:function(){}},this.namespace=s.namespace||"",this.name=s.name||this.getDefaultName(),this.context=s.context||{},this.data=s.data||{},this.composition=s.composition||"XOR",this.defaultSubstate=s.defaultSubstate||"",this.constructSubstates(s.substates),this.constructTriggersAndTransitions(s.transitions),this.active=s.active||!1},getDefaultName:function(){let s,c;return this.namespace.length>0?(s=this.namespace.split("."),c=s.pop()):v.warn("State: state name is not specified."),c||""},constructSubstates:function(s){const c={};let o,d;for(o in s)Object.prototype.hasOwnProperty.call(s,o)&&(d=s[o],d.name&&d.name!==o&&v.error("State: error constructing substate: "+o+", the specified names don't match: "+d.name),d.name=o,d.namespace=d.namespace||[this.namespace,this.name].join("."),d.stateMachine=d.stateMachine||this.stateMachine,d.context=d.context||this.context,c[d.name]=new i(d));this.substates=c},constructTriggersAndTransitions:function(s){let c;const o={},d=[];let f;for(c in s)Object.prototype.hasOwnProperty.call(s,c)&&(f=this.constructTrigger(c),f&&d.push(f),o[c]=this.constructTransition(c,s[c]));this.transitions=o,this.triggers=d},constructTrigger:function(s){let c,o;const d=s.split(" ");return d.length===2?d[0]==="subscribe"?o=n:d[0]==="response"||d[0]==="fault"?o=e:d[0]==="timeout"&&(o=t):(s!=="onEnterState"||s!=="onExitState")&&(o=l),o&&(c=new o({name:s,context:this.context,triggerHandler:_.hitch(this,this.handleTrigger)})),c},constructTransition:function(s,c){let o,d;return(_.isFunction(c)||_.isString(c)||_.isArray(c))&&(s==="onEnterState"||s==="onExitState"?(o=c,c={},c.action=o,c.target=""):(d=c,c={},c.target=d)),c.state=this,new r(c)},enter:function(s,c){this.active||(this.active=!0,this.enableTriggers(),this.stateMachine.onEnterState(this.name),this.handleTrigger.apply(this,["onEnterState"].concat(c))),s?this.changeSubstates(s,c):this.changeToDefaultSubstate(c)},exit:function(){const s=this.activeSubstates();this.active=!1,this.disableTriggers(),s.forEach(function(c){c.exit()}),this.handleTrigger("onExitState"),this.stateMachine.onExitState(this.name)},enableTriggers:function(){this.triggers.forEach(function(s){s.enable()})},disableTriggers:function(){this.triggers.forEach(function(s){s.disable()})},handleTrigger:function(s){let c,o;this.transitions[s]&&(o=Array.prototype.slice.call(arguments,1,arguments.length),c=this.transitions[s].handleTrigger(s,o),c&&(_.isString(c)||(o=c.args,c=c.target),this.stateMachine._changeState(c,o)))},changeSubstates:function(s,c){const o=this.activeSubstates();this.substates[s]&&(o.length>=0&&o[0].name!==s&&o.forEach(function(d){d.exit()}),this.substates[s].enter(void 0,c))},changeToDefaultSubstate:function(s){this.activeSubstates().length===0&&this.substates[this.defaultSubstate]&&this.substates[this.defaultSubstate].enter(void 0,s)},activeSubstates:function(){const s=[];let c;for(c in this.substates)Object.prototype.hasOwnProperty.call(this.substates,c)&&this.substates[c].active&&s.push(this.substates[c]);return s}}),i},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(1),u(20),u(12),u(101)],E=u.dj.d(A,function(D,_,v,l,n){return D(n,{constructor:function(){this.connection={}},enable:function(){_.isFunction(this.context[this.name])&&(this.cachedFunction=this.context[this.name]),this.connection=v.after(this.context,this.name,_.hitch(null,this.triggerHandler,this.name),!0)},disable:function(){this.connection.remove(),this.cachedFunction&&(this.context[this.name]=this.cachedFunction)}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(1),u(127),u(12),u(101)],E=u.dj.d(A,function(D,_,v,l,n){return D(n,{constructor:function(){const t=this.name.split(" ");(t.length<2||t[0]!=="subscribe")&&l.error("Invalid trigger name for a MessageTrigger. Could not parse out the message name."),this.messageId=t[1]||"",this.subscrition={}},enable:function(){this.subscription=v.subscribe(this.messageId,_.hitch(null,this.triggerHandler,this.name))},disable:function(){this.subscription.remove()}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(1),u(12),u(123),u(101)],E=u.dj.d(A,function(D,_,v,l,n){return D(n,{constructor:function(){const t=this.name.split(" ");(t.length<2||t[0]!=="response"&&t[0]!=="fault")&&v.error("Invalid trigger name for a RemoteTrigger. Could not parse out the type of handler."),(!l.registerResponseHandler||!l.registerFaultHandler)&&v.error("The remote package is not available, this type of trigger will not work."),this.messageId=t[1]||"",this.handlerType=t[0]},enable:function(){this.handlerType==="response"?l.registerResponseHandler(this.messageId,_.hitch(null,this.triggerHandler,this.name)):l.registerFaultHandler(this.messageId,_.hitch(null,this.triggerHandler,this.name))},disable:function(){this.handlerType==="response"?l.deregisterResponseHandler(this.messageId):l.deregisterFaultHandler(this.messageId)}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(1),u(12),u(101)],E=u.dj.d(A,function(D,_,v,l){return D(l,{constructor:function(){const e=this.name.split(" ");(e.length<2||e[0]!=="timeout")&&v.error("Invalid trigger name for a TimeoutTrigger. Could not parse out the type of handler."),this.timeoutInSeconds=parseFloat(e[1]),this.handlerType=e[0]},enable:function(){this.disable(),this.timeoutHandle=setTimeout(_.hitch(null,this.triggerHandler,this.name),this.timeoutInSeconds*1e3)},disable:function(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=null)}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(1),u(12)],E=u.dj.d(A,function(D,_,v){return D([],{constructor:function(n){this.state={},this.target="",this.condition=null,this.action=null,D.safeMixin(this,n)},handleTrigger:function(n,e){let t="";return this.checkCondition(n,e)&&(this.runAction(n,e),t=this.getTarget(n,this.target,e)),t},checkCondition:function(n,e){return this.condition?_.hitch(this.state.context,this.condition).apply(null,[n,this.state.data].concat(e)):!0},runAction:function(n,e){let t;const r=this;this.action&&(t=_.hitch(this.state.context,this.action),t.apply(null,[n,r.state.data].concat(e)))},getTarget:function(n,e,t){let r,i,a,s;if(_.isString(e))i=e;else if(_.isFunction(e))a=_.hitch(this.state.context,e),i=a.apply(null,[n,this.state.data].concat(t));else if(_.isArray(e))for(r=0;r{this._deferredCleanup=!1,this.recentMessages=[]}},onMessage:function(w){},onConnectionError:function(){},connect:function(){this.routingHost=T.workerHostOverride||this.remote.getWorkerRoutingHost(),this.routingKey=this.remote.getWorkerRoutingKey(),this.computeToken=this.remote.getComputeSessionId();const w=this.remote.getEndPointByName("WORKER_ASYNC_ENDPOINT");this.withCredentials=w?w.withCredentials:!1;const R=this._setUpEndPoint();this.computeToken&&(R.computeToken=this.computeToken);const O={};T.enableWebsocket&&this._webSocket.try?O.websocket=!0:(O.websocket=!1,this._webSocket.try=!1),this.cometdProperties.url=R.url,this.cometdProperties.requestHeaders={computeToken:R.computeToken};const b=this.constructCometD("messageService",this.workerProxyAsyncClient,O,R,this.remote);this.cometd=b,this.registerTransports(O),this.logCometdLifecycle&&i.info("MessageServiceAsync constructing new cometd instance.");const I=this._createOneShotMessagePromise("/meta/handshake");this._createListenerForUnknownClient();const N=this,P=new l;I.then(function(k){N.logCometdLifecycle&&i.info("MessageServiceAsync cometd handshake successful.",k,b.getClientId(),b),b.isDisconnected()?k&&k.success&&N.cometd===b?(i.error("MessageServiceAsync cometd handshake successful but still disconnected!"),N.doDisconnect().then(()=>{P.reject(k)},()=>{P.reject(k)})):P.reject(k):(b.getTransport().getType()===t.WEBSOCKET&&(N._webSocket.connectedAtLeastOnce=!0),P.resolve(k))},function(k){if(N.logCometdLifecycle&&i.info("MessageServiceAsync disconnecting cometd due to handshake failure.",k,b.getClientId(),b),b.disconnect(),b.isDisconnected()||console.error("MessageService expects after a failed handshake followed by a disconnect call to be disconnected here."),k.request&&k.request.supportedConnectionTypes){const W=k.request.supportedConnectionTypes;W.length>1&&W[0]===t.WEBSOCKET&&!N._webSocket.connectedAtLeastOnce&&(N._webSocket.try=!1)}P.reject(k)});const L=b.addListener("/meta/unsuccessful",function(k){N.cometd===b&&(b.isDisconnected()||(N.doDisconnect(),N.onConnectionError(k))),b.removeListener(L)});return b.init(this.cometdProperties),P.promise},registerTransports:function(w){const R=new n.LongPollingTransport,O=n.Transport.derive(R);O.xhrSend=F=>{const b=new window.XMLHttpRequest;b.withCredentials=!0,b.open("POST",F.url,F.sync!==!0);const I=F.headers;if(I)for(const N in I)Object.prototype.hasOwnProperty.call(I,N)&&b.setRequestHeader(N,I[N]);return b.setRequestHeader("Content-Type","application/json;charset=UTF-8"),b.onload=()=>{b.status===200?F.onSuccess(b.responseText):F.onError(b.statusText)},b.onabort=b.onerror=()=>{F.onError(b.statusText)},b.send(F.body),b},this.cometd.unregisterTransports(),w[t.WEBSOCKET]&&this.cometd.registerTransport(t.WEBSOCKET,new n.WebSocketTransport,0),this.cometd.registerTransport(t.LONG_POLLING,O,1)},disconnect:function(){this.logCometdLifecycle&&i.info("MessageServiceAsync disconnecting cometd due to disconnect call.",this.cometd.getClientId());const w=this._createOneShotMessagePromise("/meta/disconnect");return this.cometd.disconnect(),w},cleanup:function(){this.cometd&&(this.logCometdLifecycle&&i.info("MessageServiceAsync disconnecting cometd due to cleanup call.",this.cometd,this.cometd&&this.cometd.getClientId()),this.cometd.disconnect(),this.cometd=null)},delegateConnected:function(){return this.cometd?!this.cometd.isDisconnected():!1},doPublish:function(w,R){const O=new l;return this.cometd.publish(this._getRequestChannel(w),R,{},function(F){S(F,O)}),O.promise},doSubscribe:function(w){this.logCometdSubscriptions&&i.info("MessageServiceAsync subscribing cometd to channel: "+w);const R=this._createOneShotMessagePromise("/meta/subscribe");return this.subscriptions[w]=this.cometd.subscribe(this._getRequestChannel(w),this,this._handleCometResponse),R},doDisconnect:function(){this.logCometdSubscriptions&&i.info("MessageServiceAsync sending disconnect to cometd");const w=this._createOneShotMessagePromise("/meta/disconnect");return this.cometd.disconnect(!0),w},doUnsubscribe:function(w){if(this.subscriptions[w]){this.logCometdSubscriptions&&i.info("MessageServiceAsync unsubscribing cometd from channel: "+w);const R=this._createOneShotMessagePromise("/meta/unsubscribe");return this.cometd.unsubscribe(this.subscriptions[w]),delete this.subscriptions[w],R}else return new l().resolve({successful:!0})},doStartBatch:function(){this.cometd.startBatch()},doEndBatch:function(){this.cometd.endBatch()},doSetLatency:function(w){this.workerProxyAsyncClient.setLatency(w)},doSetErrorRate:function(w){this.workerProxyAsyncClient.setErrorRate(w)},getTransport:function(){return this.cometd&&!this.cometd.isDisconnected()?this.cometd.getTransport().getType():t.UNKNOWN},_handleCometResponse:function(w){this._shouldHandleMessage(w)&&this.onMessage(this._stripBasePrefixAndConvertToJson(w))},_shouldHandleMessage:function(w){return w.id?!1:this.recentMessages.indexOf(w)<0?(this.recentMessages.push(w),this._deferRecentMessagesCleanup(),!0):!1},_deferRecentMessagesCleanup:function(){this._deferredCleanup||(this._deferredCleanup=setTimeout(this._deferredCleanupFunction,0))},_createOneShotMessagePromise:function(w){const R=new l;return this._addOneShotListener(w,function(O){S(O,R)}),R.promise},_addOneShotListener:function(w,R){const O=this,F=this.cometd,b=this.cometd.addListener(w,function(I){F.removeListener(b),R.apply(O,arguments)})},_createListenerForUnknownClient:function(){const w=this.cometd,R=this;w.addListener("/meta/*",function(O){!O.successful&&O.advice&&O.advice.reconnect==="handshake"&&(R.doDisconnect(),R.onConnectionError(O.error))})},_setUpEndPoint:function(){let w,R=!1;const O="MESSAGE_SERVICE_ASYNC_ENDPOINT",F=!0,b=!0;let I;return o&&typeof this.remote.sendPayload=="function"?(R=!0,this.remote.createNewEndPoint(O,F,this.BASE_END_POINT,"remoteWorkerAsyncProducer",b),this.remote.setServiceEndPoint(O,this.routingHost,this.routingKey),w=this.remote.getUrlForEndPoint(O),I=this.remote.getEndPointAllowsDirectXhr(O)):(w=this.routingHost||"/",w.slice(-1)!=="/"&&(w+="/"),w+=this.BASE_END_POINT,this.routingKey&&(w+="?routingkey="+this.routingKey)),{remoteSupportsSendPayload:R,url:w,endPointName:O,endPointAllowsDirectXhr:I}},_getRequestChannel:function(w){return this.BASE_PREFIX+w},_stripBasePrefixAndConvertToJson:function(w){return{channel:w.channel.substring(this.BASE_PREFIX.length),data:w.data}}});return T.enableWebsocket=!1,T.workerHostOverride=!1,window.location.search.indexOf("websocket=on")>=0&&(T.enableWebsocket=!0),T},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(219)],E=u.dj.d(A,function(D){return D.AckExtension=function(){var _,v=!1,l=-1;function n(e,t){_._debug(e,t)}this.registered=function(e,t){_=t,n("AckExtension: executing registration callback")},this.unregistered=function(){n("AckExtension: executing unregistration callback"),_=null},this.incoming=function(e){var t=e.channel;if(t=="/meta/handshake")v=e.ext&&e.ext.ack,n("AckExtension: server supports acks",v);else if(v&&t=="/meta/connect"&&e.successful){var r=e.ext;r&&typeof r.ack=="number"&&(l=r.ack,n("AckExtension: server sent ack id",l))}return e},this.outgoing=function(e){var t=e.channel;return t=="/meta/handshake"?(e.ext||(e.ext={}),e.ext.ack=_&&_.ackEnabled!==!1,l=-1):v&&t=="/meta/connect"&&(e.ext||(e.ext={}),e.ext.ack=l,n("AckExtension: client sending ack id",l)),e}}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(142)],E=u.dj.d(A,function(D){const _=/AppServiceHost/i,v=n=>n.serviceName.match(_)!==null,l=(n,e)=>v(e)?n[D.APP_SERVICE_HOST.name]():n[D.MATLAB_SERVICE_HOST.name]();return function(e,t){if(t.serviceName){if(!t.serviceName.length||t.serviceName.length<5)throw new Error("serviceName must be longer than 4 characters")}else throw new Error("Must provide a serviceName");const r=l(e,t),i={};return["subscribe","unsubscribe","publish","isStarted","isConnected","isFatallyDisconnected","isDisconnected","setLatency","setErrorRate","getTransport","on","onConnected","onDisconnected"].forEach(a=>{i[a]=r[a].bind(r)}),i.messageService=r.messageService,i}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){return Object.freeze({baseChannel:"/v2/clipboardservice/",writeChannel:{request:"setClipboardDataRequest",response:"setClipboardDataResponse"},readChannel:{request:"getClipboardDataRequest",response:"getClipboardDataResponse"},readTypesChannel:{request:"requestAvailableDataFlavors",response:"sendAvailableDataFlavors"},clipboardChange:{request:"reqRegisterClipboardChange",response:"responseRegisterClipboardChange",onChange:"clipboardChange"}})},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(102)],E=u.dj.d(A,function(D){"use strict";function _(i){return i.map(a=>String(a))}const v="string",l="file",n="Files";class e{constructor(){this._contentMap=new Map,this.items=new t(this._contentMap)}get files(){let a=[];for(let s=0;so,this._handleWriteFailure)}_handleWriteFailure(s){return{status:t.StatusEnum.success.writeLocal,message:s.message}}read(...s){return this._clientClipboardService.read(...s).then(this._handleReadSuccess.bind(this),this._handleReadFailure.bind(this))}_handleReadSuccess(s){let{dataTransfer:c}=s;return this._cache.validate(c)?this._cache.mix(c):this._cache.set(c),_(_({},s),{},{dataTransfer:this._cache.get()})}_handleReadFailure(s){return _(_({},s),{},{status:t.StatusEnum.success.readLocal,dataTransfer:this._cache.get()})}readTypes(...s){return this._clientClipboardService.readTypes(...s)}}return i},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(398),u(399),u(400),u(401),u(402),u(58),u(102),u(47),u(140)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i){"use strict";const a=r.StatusEnum,s=r.TypeMetaDataEnum,c=r.MIME_TYPES;class o{constructor(){this._isNavigatorWriteTextSupported=v.isWriteTextSupported(),this._isNavigatorWriteSupported=v.isWriteSupported(),this._isNavigatorReadSupported=v.isReadSupported()}write(f){let{dataTransfer:h,event:g,useNavigatorClipboard:m}=f;return this._writeDataTransfer(h,g,m)}_writeDataTransfer(f,h,g){let m=e.getMimeMetaData(f,h,g);return{[s.ONLY_TEXT]:this._writeText.bind(this),[s.FROM_COPY_EVENT]:this._writeUsingCopyEvent.bind(this),[s.CONTAINS_IMAGE]:this._writeImageUsingNavigatorService.bind(this),[s.OTHERS]:this._writeOtherTypes.bind(this),[s.useNavigatorClipboard]:this._useOnlyNavigatorClipboard.bind(this)}[m](f,h)}_writeUsingCopyEvent(f,h){return e.setEventClipboardData(h.clipboardData.items,f),Promise.resolve({status:a.success.write})}_writeText(f){return this._isNavigatorWriteTextSupported?this._writeUsingNavigator(f,!0):this._writeOtherTypes(f)}_writeOtherTypes(f){return new D(f).write(f)}_writeImageUsingNavigatorService(f){return this._isNavigatorWriteSupported?this._writeUsingNavigator(f):(!f.types.includes(c.TEXT_PLAIN)&&f.files.length>0&&f.setData(c.TEXT_PLAIN,f.files[0].name),this._writeOtherTypes(f))}_useOnlyNavigatorClipboard(f){return this._isNavigatorWriteTextSupported&&e.hasOnlyTextMimeType(f)?this._writeUsingNavigator(f,!0):this._isNavigatorWriteSupported?this._writeUsingNavigator(f):Promise.reject(new Error("Navigator clipboard is not supported"))}_writeUsingNavigator(f,h){let g=new n(f);return h?g.writeText():g.write()}read(f){let h=f&&f.event;return this._isEventFromPaste(h)?new _(f).read():this._isNavigatorReadSupported?new l().read():Promise.reject(new Error("Navigator clipboard is not supported"))}readTypes(f){return Promise.resolve({types:[r.MIME_TYPES.INDETERMINATE_TYPE]})}_isEventFromPaste(f){return f&&i.isEventRunningNow(f)&&(i.isPasteEvent(f)||i.isPasteKeyDown(f))}}return o},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(220),u(58),u(72),u(48)],E=u.dj.d(A,function(D,_,v,l){class n{constructor(t){this._textarea=D.createTextBox(),this._dataTransfer=t}write(){return new Promise((t,r)=>{this._resolve=t,this._reject=r,this._triggerCopy()})}_triggerCopy(){this._removeEventListener=D.addEventListener(this._textarea,"copy",this._handleWriteSuccess.bind(this)),D.copy(this._textarea)||this._handleWriteFailure()}_handleWriteSuccess(t){_.setEventClipboardData(t.clipboardData.items,this._dataTransfer),t.preventDefault(),t.stopPropagation(),this._removeListenerAndRemoveTextbox(),this._resolve({status:v.success.writeGlobal,message:v.browserEvents.successMessage})}_handleWriteFailure(){this._removeListenerAndRemoveTextbox(),this._reject(new Error(v.browserEvents.failureMessage))}_removeListenerAndRemoveTextbox(){this._removeEventListener(),D.destroy(this._textarea)}}return n},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(72),u(48),u(144),u(220),u(140),u(12)],E=u.dj.d(A,function(D,_,v,l,n){"use strict";class e{constructor(r){this._event=r.event,this._removePasteListener=()=>{}}read(){let r={paste:this._handleEventFromPaste.bind(this),keydown:this._handleEventFromKeyDown.bind(this)},i=this._getHandlersType(),a=new Promise((s,c)=>{this._resolve=s,this._reject=c});return r[i](),a}_handleEventFromPaste(){let r=this._createDataTransferFromPasteEvent(this._event),i=v.clone(r);this._handlePasteSuccess(i)}_handleEventFromKeyDown(){let r=this._getReadPromise(),i=this._createTimeout();r.then(a=>{this._removePasteListener(),clearTimeout(i),this._handlePasteSuccess(a)},()=>{this._removePasteListener(),this._handlePasteFailure()})}_getHandlersType(){let r=this._event;if(n.isPasteEvent(r))return"paste";if(n.isPasteKeyDown(r))return"keydown"}_handlePasteSuccess(r){this._resolve({message:D.browserEvents.successMessage,status:D.success.readGlobal,dataTransfer:r})}_handlePasteFailure(){this._reject(new Error(D.browserEvents.failureMessage))}_getReadPromise(){return new Promise((r,i)=>{n.isPasteKeyDown(this._event)&&(this._removePasteListener=l.addEventListener(document,"paste",a=>{let s=this._createDataTransferFromPasteEvent(a),c=v.clone(s);r(c)})),this._rejectReadPromise=i})}_createDataTransferFromPasteEvent(r){return _.createInstance(r.clipboardData)}_createTimeout(){return setTimeout(()=>{this._rejectReadPromise(new Error)},1e3)}}return e},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){let D={isWriteSupported(){if(D.isCefClientSupported())return!1;let{navigator:_,ClipboardItem:v}=window;return!!(_&&_.clipboard&&_.clipboard.write&&v)},isReadSupported(){if(D.isCefClientSupported())return!1;let{navigator:_,ClipboardItem:v}=window;return!!(_&&_.clipboard&&_.clipboard.read&&v)},isWriteTextSupported(){if(D.isCefClientSupported())return!1;let{navigator:_}=window;return!!(_&&_.clipboard&&_.clipboard.writeText)},isCefClientSupported(){if(window.cefclient)return!0}};return D},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(138),u(48),u(72),u(12)],E=u.dj.d(A,function(D,_,v,l){"use strict";class n{constructor(){this._onSuccess=this._onSuccess.bind(this),this._onFailure=this._onFailure.bind(this),this._processClipboardDataTransfer=this._processClipboardDataTransfer.bind(this)}read(){return navigator.clipboard.read().then(this._onSuccess,this._onFailure)}_onFailure(t){throw l.warn(t&&t.message),new Error(t.message)}_onSuccess(t){return this._processClipboardItems(t)}_processClipboardItems(t){return this._dataTransfer=new _,D.clipboardItemsToDataTransfer(t,this._dataTransfer).then(this._processClipboardDataTransfer)}_processClipboardDataTransfer(){return{status:v.success.readGlobal,message:v.navigator.successMessage,dataTransfer:this._dataTransfer}}}return n},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(138),u(72),u(12)],E=u.dj.d(A,function(D,_,v){"use strict";class l{constructor(e){this._dataTransfer=e,this._onSuccess=()=>({status:_.success.writeGlobal,message:_.navigator.successMessage}),this._onFailure=t=>{throw v.warn(t&&t.message),new Error(t.message)}}writeText(){let e=this._dataTransfer.getData("text/plain");return navigator.clipboard.writeText(e).then(this._onSuccess,this._onFailure)}write(){let e=D.convertToClipboardItem(this._dataTransfer);return navigator.clipboard.write([e]).then(this._onSuccess,this._onFailure)}}return l},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e=this._viewModel.viewBuffer.rangeList[0].rows.start&&(i=this._dataStore.getLocalRowMetaData(r.rows.start)),i}}]),e}();return n},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;rr.length&&(this._pagedData=this._pagedData.slice(0,r.length));var s=function(o,d,f,h,g){for(var m=o;mc.columns.end)&&function(){for(var f=Math.max(c.rows.start,d.rows.start),h=Math.min(c.rows.end,d.rows.end),g=f;g<=h;)s(d.columns.start,d.columns.end,c.columns.start,c.columns.end,function(m){i._pagedData[o][g][m]=void 0}),g=g+1}()):i._pagedData[o]=[]})}},{key:"_fillInMissingPagedData",value:function(t){var r=this;t.forEach(function(i,a){var s=r._pagedData[a];if(!(s.range&&v.isRangeEqual(s.range,i))){if(s.range&&v.isRangeInside(s.range,i)){s.range=i;return}var c=!s.range||i.columns.starts.range.columns.end,o=i.rows.start,d=i.rows.end,f=i.columns.start,h=i.columns.end;s=r._updateCellRange(s,o,d,f,h,c,!0),s.range=i,r._pagedData[a]=s}})}},{key:"_reactToNewData",value:function(t){var r=this,i=this._pagedRangeList,a=!1;return i.forEach(function(s,c){t.forEach(function(o){if(!!v.doesRangeIntersect(s,o)){var d=r._pagedData[c],f=Math.max(s.rows.start,o.rows.start),h=Math.min(s.rows.end,o.rows.end),g=Math.max(s.columns.start,o.columns.start),m=Math.min(s.columns.end,o.columns.end),S=!0;d=r._updateCellRange(d,f,h,g,m,S,!1),r._pagedData[c]=d,a=!0}})}),a}},{key:"_updateCellRange",value:function(t,r,i,a,s,c,o){for(var d=r;d<=i;d+=1){var f=t[d];if(c||!f){var h=[];if(f){for(var g=t.range.columns.start;g=S)h[S]=t[d][S];else{var T=this._getLocalCell(d,S);h[S]=this._shallowCopyIfObject(T)}t[d]=h}}return t}},{key:"_shallowCopyIfObject",value:function(t){if(!(t instanceof Object))return t;var r=Object.getPrototypeOf(t),i=Object.create(r),a=Object.keys(t);return a.forEach(function(s){i[s]=t[s]}),t.hasOwnProperty("path")&&!i.hasOwnProperty("path")&&Object.defineProperty(i,"path",{get:function(){return t.path}}),i}}]),n}();return l},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e=s.length||g.end>=s.length)throw new Error("RangeIndex exceeds dataIndexMap size");var m=s.slice(g.start,g.end+1);c=c.concat(m)}),c.length===0)return[];c.sort(function(g,m){return g-m});var d={start:c[0],end:c[0]};o.push(d);for(var f=1;f0?c[s]:s}},{key:"getMappedViewIndicesForDataIndex",value:function(s){var c=this.viewColumnIndexToDataIndex;return c.length>0?c.map(function(o,d){return o===s?d:-1}).filter(function(o){return o!==-1}):[]}},{key:"viewColumnIndexToDataIndex",set:function(s){this._viewColumnIndexToDataIndex=s},get:function(){return this._viewColumnIndexToDataIndex}}],[{key:"_createRow",value:function(s,c,o,d,f){var h=c.map(function(g){var m=o[g],S=[];return d&&(S=d[g]),{start:m.range.columns.start,end:m.range.columns.end,cells:m[s],metaData:S[s]||[]}});return v(h,f)}}]),i}();return r},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){"use strict";var D={};return function(_,v){if(!Array.isArray(_))throw new Error("No rowData Present");var l=function n(e){var t=void 0;v.length===0?t=e:t=v[e];var r=n._lastAccessRowDataIndex;do{if(t>=_[r].start&&t<=_[r].end)return{value:_[r].cells[t],metaData:_[r].metaData[t]||D,isEqual:function(a){return a.value===this.value&&a.metaData===this.metaData}};r+=1,r=r%_.length}while(r!==n._lastAccessRowDataIndex);throw new Error("No Data Found for cellIndex: "+e)};return l._lastAccessRowDataIndex=0,l._rowData=_,l._dataIndexMap=v,l.isEqual=function(n){if(n._rowData.length!==_.length||v!==n._dataIndexMap)return!1;for(var e=0;e<=_.length;e+=1)if(l._rowData[e].data!==_[e].data)return!1;return!0},l}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e2&&arguments[2]!==void 0?arguments[2]:!1;return h===!1?d[f]:d[1][f]},c=function(d){var f=d.colIndex,h=d.rowIndex,g=d.data,m=d.focused,S=m===void 0?{}:m,T=d.getEditor,w=d.getRenderer,R=d.groupAttr,O=d.readOnlyVisualDesign,F=d.focusCached,b=d.getInteractiveRenderer,I=d.setInteractiveRenderer,N=d.styleData,P=d.customProps,L=d.additionalClass,k=d.eventCallback,W=d.editTrigger,K=d.editState,V=d.editValidation,G=d.editProcessing,j=d.selectionMap,Y=d.registration,z=d.displaySearch,Q=d.useEditorRendererDataFields,X=d.resizeSelection,J=d.readonly,$=d.tableSelectionById,q=n(k),te=q.handleMouseOverWithRenderer,oe=e(k),le=oe.setFloatingContent,de=oe.removeFloatingContent,De=void 0,Se=void 0,pe=void 0,ie={},ee={},me=_,ce=g(h)(f);Se=b(h,f),ce&&ce.metaData&&i.isReadOnly(ce.metaData)&&(J=ce.metaData.readonly),J===!0?(ie.readonly=J,pe=null):pe=T(h,f),ce.metaData&&(z&&ce.metaData.searchHighlight&&(ie.searchHighlight=ce.metaData.searchHighlight),ce.metaData.style&&(N.color=ce.metaData.style.color||N.color,N.backgroundColor=ce.metaData.style.backgroundColor||N.backgroundColor,N.fontWeight=ce.metaData.style.fontWeight||N.fontWeight,N.fontSize=ce.metaData.style.fontSize||N.fontSize,N.fontFamily=ce.metaData.style.fontFamily||N.fontFamily,N.fontStyle=ce.metaData.style.fontStyle||N.fontStyle,N.textAlign=ce.metaData.style.textAlign||N.textAlign),ce.metaData.rendererConfig&&(ie.rendererConfig=ce.metaData.rendererConfig),ce.metaData.renderer&&(typeof ce.metaData.renderer=="string"?De=Y.renderer[ce.metaData.renderer]:De=ce.metaData.renderer),"interactiveRenderer"in ce.metaData&&(typeof ce.metaData.interactiveRenderer=="string"?(Se=Y.renderer[ce.metaData.interactiveRenderer],I(h,f,Se)):ce.metaData.interactiveRenderer?(Se=ce.metaData.interactiveRenderer,I(h,f,Se)):Se=null),ce.metaData&&ce.metaData.editorConfig&&(ee.editorConfig=ce.metaData.editorConfig),"editor"in ce.metaData&&J!==!0&&(typeof ce.metaData.editor=="string"?pe=Y.editor[ce.metaData.editor]:ce.metaData.editor?pe=ce.metaData.editor:pe=null)),Se?(me=v,De=Se,ie.interactiveRenderer=!0):pe&&(me=l),De=De||w(h,f)||a;var ve=r().getEditIndicator(De),Oe=P.cellMetaData,Ye=void 0;$===!0?S[0]?Ye=[Oe.value.id,f].join(","):Ye=[h,f].join(","):Ye=[h,f].join(",");var nt=K[h+","+f]?{rowIndex:h,colIndex:f}:!1;return D.createElement(me,{eventCallback:k,row:h,column:f,editType:"tableCell",rowIndex:h,colIndex:f,styleData:N,cellData:ce,groupAttr:R,focusClass:s(S,Ye,$),focusCached:F,additionalClass:L,focused:S,renderer:De,editIndicator:ve,editor:pe,customProps:P,editTrigger:W,editState:nt,editValidation:V,editProcessing:G,renderMetaData:ie,editorMetaData:ee,selectionMap:j,handleMouseOver:te,handleSetFloatingContent:le,handleRemoveFloatingContent:de,useEditorRendererDataFields:Q,resizeSelection:X,readOnlyVisualDesign:O})};return c},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r0&&arguments[0]!==void 0?arguments[0]:"",a=void 0;return e(i)&&(a={text:this.formatNumber(i).toString()}),a}},{key:"getDomNode",value:function(i,a){var s=document.createDocumentFragment(),c=void 0;return l.metaHasHighlightMatches(a)?c=this._getDomNodeWithHighlight(i,a):c=this._getDomNodeByValue(i),s.appendChild(c),s}},{key:"_getDomNodeByValue",value:function(i){var a=document.createElement("span");return e(i)&&(a.textContent=this.formatNumber(i)),a.className="mw-data-number-renderer",a.setAttribute("data-test-id","number1"),a}},{key:"_getDomNodeWithHighlight",value:function(i,a){var s=document.createElement("span");s.className="mw-data-number-renderer",s.setAttribute("data-test-id","highlightNumber"),s.setAttribute("data-region",!0);var c=i.toString();if(e(i)){var o=this.formatNumber(i).toString();if(c===o)l.appendHighlightDom(s,c,a);else{var d=[{start:0,count:o.length,value:o}];l.appendHighlightDomMatches(s,o,d)}return s}}}]),t}();return n;function e(t){return!isNaN(t)&&typeof t!="boolean"&&t!==null}},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({SCIENTIFIC_NOTATION:function(v){var l=v.precision||v.decimals||D.SCIENTIFIC_NOTATION_DEFAULT_PRECISION;return function(n){return Number(n).toExponential(l)}},SCIENTIFIC_NOTATION_DEFAULT_PRECISION:4,DECIMAL_NOTATION:function(v){var l=v.precision||v.decimals||D.DECIMAL_NOTATION_DEFAULT_PRECISION;return function(n){return Number(n).toFixed(l)}},DECIMAL_NOTATION_DEFAULT_PRECISION:4,NO_FORMATTING:function(v){return function(l){return l}}});return D},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e - - - - - - ${this.properties.border?D` - - - `:""} - `:D` - - - - - - - ${this.properties.border?D` - - - `:""} - `}}return _.setView(n.SPINNER,e),e},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(151),u(150)],E=u.dj.d(A,function(D,_){"use strict";class v{static _isHexaColor(n){return/^#([0-9A-F]{3}){1,2}$/i.test(n)}static validate(n,e){switch(e){case"size":let t=Object.values(_);if(typeof n!="string"||!t.includes(n.toLowerCase()))throw new Error("Value of "+e+" property should be xsmall/small/medium/large/xlarge");break;case"type":if(typeof n!="string"||n.toLowerCase()!==D.SPINNER)throw new Error("Value of "+e+" property should be spinner");break;case"value":if(isNaN(parseFloat(n))||parseFloat(n)<0||parseFloat(n)>100)throw new Error("Value of "+e+" property should be Number between 0-100");break;case"color":let r=v._isHexaColor(n);if(typeof n!="string"||!r)throw new Error("Value of "+e+" css should be in valid supported css color in hex code");break;case"customSize":if(isNaN(n)||parseFloat(n)<0||n===null)throw new Error("Value of "+e+" should be a Number greater than 0");break;case"border":if(n===void 0||!(n.toString()==="false"||n.toString()==="true"))throw new Error("Value of "+e+" should be a true or false value");break}}static addStyles(n,e){n&&e&&Object.keys(e).length>0&&Object.keys(e).forEach(t=>{n.style[t]=e[t]})}static removeStyles(n,e){if(n&&e&&Array.isArray(e)&&e.length>0){let r=(n.getAttribute("style")||"").split(";");e.forEach(a=>{r=r.filter(s=>s.trim().startsWith(a)===!1)}),r=r.filter(a=>a.trim().length>0);const i=r.join(";");n.setAttribute("style",i)}}static addAttributes(n,e){n&&e&&Object.keys(e).length>0&&Object.keys(e).forEach(t=>n.setAttribute(t,e[t]))}static removeAttributes(n,e){n&&e&&Array.isArray(e)&&e.length>0&&e.forEach(t=>{n.hasAttribute(t)&&n.removeAttributes(t)})}}return v},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(3),u(146),u(236),u(17)],E=u.dj.d(A,function(D,_,v,l){"use strict";var n={baseStyle:"mw-table-cell",cellType:l.cellType.INTERACTIVE_TABLE_CELL},e=v(_,n);return e},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(146),u(105),u(17)],E=u.dj.d(A,function(D,_,v){"use strict";var l={baseStyle:"mw-table-cell mw-table-text-full",cellType:v.cellType.EDITABLE_TABLE_CELL},n=_(D,l);return n},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e=J.minDistance&&oe>J.minVelocity},V=f(a,R(S)),G=O(f(s,I(W,m),R(w))),j=O(f(I(K,T),R(w))),Y=f(F(V),b(G),N(j),R(w),P(d),L(o)),z=function(X){var J=v(),$=new i,q=D.mixin({pointers:1,minDistance:20,direction:k,minVelocity:.3},X||{});return{EVENT_SETS:["pointers"],reset:$.reset.bind($),subscribe:J.subscribe.bind(J),recognize:function(oe){var le=Y(g("flick",oe,{positionTracker:$,flickOptions:q})),de=le.targetState,De=le.actionData;return{targetState:de,actionData:De}}}};return z},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(1),u(78),u(35),u(27),u(153),u(39),u(61),u(36),u(40)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i){var a=v.sequence,s=t.computeMagnitude,c=e.trackInitial,o=e.trackUpdate,d=e.trackFinal,f=e.resetTracker,h=e.setActionData,g=r.createRecognizerData,m=r.markAsNoChange,S=r.markAsCancelled,T=r.markAsInactive,w=r.markAsPossible,R=r.markAsBegan,O=r.markAsProgress,F=r.markAsRecognized,b=r.applyIfUndetermined,I=r.applyOnDown,N=r.applyOnMove,P=r.applyIfTargetStateIsActive,L=r.applyIfTargetStateIsComplete,k=r.applyOnUp,W=r.applyWhen,K=r.applyIfPossible,V=r.applyIfActive,G=r.applyIfInactive,j=r.applyIfBegun,Y=n.DIRECTION_NONE,z=function(le){var de=le.internalData.panOptions,De=le.inputData;return De.pointers.length!==de.pointers},Q=function(le){var de=le.internalData.panOptions,De=le.internalData.positionTracker,Se=De.getActionProperties(),pe=s(Se.center.delta);return Math.abs(pe)>=de.minDistance},X=a(c,W(z,a(j(F),b(T))),b(j(F)),b(w)),J=a(o,j(W(z,F)),b(a(K(W(Q,R)),j(O))),b(m)),$=a(d,j(F),b(T)),q=a(I(X),N(J),k($),b(G(T)),b(V(S)),P(h),L(f)),te=function(le){var de=l(),De=new i,Se=D.mixin({pointers:1,minDistance:20,direction:Y},le||{});return{EVENT_SETS:["pointers"],reset:De.reset.bind(De),subscribe:de.subscribe.bind(de),recognize:function(ie){var ee=q(g("pan",ie,{positionTracker:De,panOptions:Se})),me=ee.targetState,ce=ee.actionData;return{targetState:me,actionData:ce}}}};return te},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(1),u(35),u(27),u(39),u(36),u(40)],E=u.dj.d(A,function(D,_,v,l,n,e){var t=_.sequence,r=l.trackInitial,i=l.trackUpdate,a=l.trackFinal,s=l.resetTracker,c=l.setActionData,o=n.createRecognizerData,d=n.markAsNoChange,f=n.markAsCancelled,h=n.markAsInactive,g=n.markAsPossible,m=n.markAsBegan,S=n.markAsProgress,T=n.markAsRecognized,w=n.applyIfUndetermined,R=n.applyOnDown,O=n.applyOnMove,F=n.applyIfTargetStateIsActive,b=n.applyIfTargetStateIsComplete,I=n.applyOnUp,N=n.applyWhen,P=n.applyIfPossible,L=n.applyIfActive,k=n.applyIfInactive,W=n.applyIfBegun,K=function(J){var $=J.internalData.rotateOptions,q=J.inputData;return q.pointers.length!==$.pointers},V=function(J){var $=J.internalData.rotateOptions,q=J.internalData.positionTracker,te=q.getActionProperties(),oe=te.angle.delta;return Math.abs(oe)>=$.minRotation},G=t(r,N(K,t(W(T),w(h))),w(W(T)),w(g)),j=t(i,W(N(K,T)),w(t(P(N(V,m)),W(S))),w(d)),Y=t(a,W(T),w(h)),z=t(R(G),O(j),I(Y),w(k(h)),w(L(f)),F(c),b(s)),Q=function(J){var $=v(),q=new e,te=D.mixin({pointers:2,minRotation:20},J||{});return{EVENT_SETS:["pointers"],reset:q.reset.bind(q),subscribe:$.subscribe.bind($),recognize:function(le){var de=z(o("rotate",le,{positionTracker:q,rotateOptions:te})),De=de.targetState,Se=de.actionData;return{targetState:De,actionData:Se}}}};return Q},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(1),u(35),u(27),u(39),u(36),u(40)],E=u.dj.d(A,function(D,_,v,l,n,e){var t=_.sequence,r=l.trackInitial,i=l.trackUpdate,a=l.trackFinal,s=l.resetTracker,c=l.setActionData,o=n.createRecognizerData,d=n.markAsNoChange,f=n.markAsCancelled,h=n.markAsInactive,g=n.markAsPossible,m=n.markAsBegan,S=n.markAsProgress,T=n.markAsRecognized,w=n.applyIfUndetermined,R=n.applyOnDown,O=n.applyOnMove,F=n.applyIfTargetStateIsActive,b=n.applyIfTargetStateIsComplete,I=n.applyOnUp,N=n.applyWhen,P=n.applyIfPossible,L=n.applyIfActive,k=n.applyIfInactive,W=n.applyIfBegun,K=function(J){var $=J.internalData.pinchOptions,q=J.inputData;return q.pointers.length!==$.pointers},V=function(J){var $=J.internalData.pinchOptions,q=J.internalData.positionTracker.getActionProperties(),te=q.spread.delta;return Math.abs(te)>=$.minDistance},G=t(r,N(K,t(W(T),w(h))),w(W(T)),w(g)),j=t(i,W(N(K,T)),w(t(P(N(V,m)),W(S))),w(d)),Y=t(a,W(T),w(h)),z=t(R(G),O(j),I(Y),w(k(h)),w(L(f)),F(c),b(s)),Q=function(J){var $=v(),q=new e,te=D.mixin({pointers:2,minDistance:3},J||{});return{EVENT_SETS:["pointers"],reset:q.reset.bind(q),subscribe:$.subscribe.bind($),recognize:function(le){var de=z(o("pinch",le,{positionTracker:q,pinchOptions:te})),De=de.targetState,Se=de.actionData;return{targetState:De,actionData:Se}}}};return Q},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(27),u(35),u(36)],E=u.dj.d(A,function(D,_,v){var l=_.sequence,n=v.createRecognizerData,e=v.applyWhen,t=v.applyIfUndetermined,r=v.markAsInactive,i=v.markAsRecognized,a=v.applyIfTargetStateIsActive,s=v.applyOnWheel,c=function(f){return f.actionData={type:f.type,srcEvent:f.inputData.srcEvent},f},o=l(s(i),t(r),a(c));return function(d){var f=D();return{EVENT_SETS:["wheel"],reset:function(){},subscribe:f.subscribe.bind(f),recognize:function(g){var m=o(n("wheel",g,{})),S=m.targetState,T=m.actionData;return{targetState:S,actionData:T}}}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(27),u(49),u(106),u(34),u(78)],E=u.dj.d(A,function(D,_,v,l,n){return function(e){var t=e&&e.wheelDelay?e.wheelDelay:200,r=D(),i=new n(function(){r.emit(l.createTimeout())},t);return{EVENT_SETS:["wheel"],reset:function(){i.clear()},subscribe:r.subscribe.bind(r),recognize:function(s){var c=s.currentState,o=s.inputData,d=_.INACTIVE,f=void 0;if(l.isWheel(o))switch(i.clear(),c){case _.INACTIVE:d=_.BEGAN,i.start();break;case _.BEGAN:d=_.PROGRESS,i.start();break;case _.PROGRESS:d=_.PROGRESS,i.start();break}if(l.isTimeout(o))switch(c){case _.INACTIVE:d=_.INACTIVE;break;case _.BEGAN:d=_.RECOGNIZED;break;case _.PROGRESS:d=_.RECOGNIZED;break}return v.isActiveState(d)&&(f={type:"wheelmove",srcEvent:o.srcEvent}),{targetState:d,actionData:f}}}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(27),u(39),u(35),u(36),u(40)],E=u.dj.d(A,function(D,_,v,l,n){var e=v.sequence,t=_.trackInitial,r=_.trackUpdate,i=_.resetTracker,a=_.setActionData,s=l.createRecognizerData,c=l.applyWhen,o=l.applyIfUndetermined,d=l.markAsInactive,f=l.markAsRecognized,h=l.applyIfTargetStateIsActive,g=function(T){var w=T.inputData,R=w.srcEvent;return R&&R.buttons===0&&(R.type==="pointermove"||R.type==="mousemove")},m=e(c(g,e(t,f)),o(d),h(a),i);return function(S){var T=D(),w=new n;return{EVENT_SETS:["pointers"],reset:w.reset.bind(w),subscribe:T.subscribe.bind(T),recognize:function(O){var F=m(s("hover",O,{positionTracker:w})),b=F.targetState,I=F.actionData;return{targetState:b,actionData:I}}}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(0),u(445),u(446)],E=u.dj.d(A,function(D,_,v){return function(l,n){var e=[],t=_.fromNode(l),r=v.fromNode(l),i=function(c){Array.isArray(c)||(c=[c]),c.forEach(function(o){o.attachInputStream(t),o.attachInputStream(r)}),e=e.concat(c)},a=function(c){};return n&&i(n),{add:i,remove:a,getAttachedRecognizers:function(){return e},destroy:function(){t.destroy(),r.destroy(),e.forEach(function(c){return c.destroy()})},preventFocus:function(){t.preventFocus()},allowFocus:function(){t.allowFocus()},stopPropagation:function(){t.stopPropagation(),r.stopPropagation()},allowPropagation:function(){t.allowPropagation(),r.allowPropagation()},preventDefault:function(){t.preventDefault(),r.preventDefault()},allowDefault:function(){t.allowDefault(),r.allowDefault()},addHoverListeners:function(){return t.addHoverListeners()},resetAll:function(){t.clearInput(),e&&e.forEach(function(c){return c.reset()})}}}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(108),u(34),u(27),u(152),u(242)],E=u.dj.d(A,function(D,_,v,l,n){"use strict";var e=D.addDomListener,t=D.preventDefault,r=D.stopPropagation,i=n.getActiveImplementations,a=n.getImplementationForEvent,s=n.addListenersToRemovable,c=n.updateLastTouch,o=n.isCompatibilityEvent,d=i(),f=null,h=function(m,S){var T=l(),w=l(),R=l(),O=l(),F=l(),b=l(),I=m.ownerDocument,N=[],P=[],L=v(),k=function(X){var J=X;return f=c(X,f),o(X,f)&&(J=null),J},W=function(X){L.emit(_.createFromPointers(N,X,m))},K=function(X){L.emit(_.createFromPointers(P,X,m))},V=function(X){if(X=k(X),X){var J=a(X);J.addEventToPointers(N,X),W(X)}},G=function(X){if(X=k(X),X){var J=a(X);J.addEventToPointers(N,X),W(X),J.removeEventFromPointers(N,X),N.length===0&&w.remove()}},j=function(X){if(X=k(X),X){var J=a(X);J&&J.addEventToPointers(N,X),w.remove(),W(X),N=[]}},Y=function(X){if(X=k(X),X){var J=a(X);J.addEventToPointers(N,X),w=s(d,w,I,{move:V,up:G,cancel:j},!0),T.own(e(m,"dragstart",j,!1)),T.own(e(m,"drag",j,!1)),T.own(e(m,"dragend",j,!1)),W(X)}},z=function(X){X=k(X),X&&X.buttons===0&&(P=[X],K(X))};return T=s(d,T,m,{down:Y},!1),{EVENT_SET:"pointers",subscribe:L.subscribe,preventFocus:function(){R.remove(),R=s(d,R,m,{down:t},!1)},allowFocus:function(){R.remove()},stopPropagation:function(){O.remove(),O=s(d,O,m,{down:r,move:r,up:r},!1)},allowPropagation:function(){O.remove()},preventDefault:function(){F.remove(),F=s(d,F,m,{down:t,move:t,up:t},!1)},allowDefault:function(){F.remove()},clearInput:function(){w.remove(),N=[]},addHoverListeners:function(){return b.remove(),b=s(d,b,m,{move:z},!1),b},destroy:function(){T.remove(),w.remove(),R.remove(),O.remove(),F.remove(),b.remove()}}};return{fromNode:h}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(108),u(34),u(27),u(152)],E=u.dj.d(A,function(D,_,v,l){"use strict";var n=D.addDomListener,e=D.preventDefault,t=D.stopPropagation,r=function(a,s){var c=l(),o=l(),d=l(),f=v(),h=function(m){f.emit(_.createFromPointers([],m,a))};return c.own(n(a,"wheel",h,!1)),{EVENT_SET:"wheel",subscribe:f.subscribe,stopPropagation:function(){o.remove(),o.own(n(a,"wheel",t,!1))},allowPropagation:function(){o.remove()},preventDefault:function(){d.remove(),d.own(n(a,"wheel",e,!1))},allowDefault:function(){d.remove()},destroy:function(){c.remove()}}};return{fromNode:r}},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r1&&arguments[1]!==void 0?arguments[1]:t.PUBLIC.TOOLTIP_COMPONENT,h=arguments[2];if(f===t.PUBLIC.TOOLTIP_COMPONENT){h.referenceNode=d;var g=r(h);document.body.appendChild(g),this._currentFloatingContent={instance:g,type:f,refNode:d,destroy:function(){g.destroy()}}}else throw new Error("Invalid floating content component "+f+" provided.")}},{key:"destroyFloatingContent",value:function(){this._currentFloatingContent&&(this._currentFloatingContent.destroy(),delete this._currentFloatingContent)}},{key:"updateContentAndFocusRefNode",value:function(){var d=this;this._currentFloatingContent.instance.requestUpdate(),this._currentFloatingContent.instance.updateComplete.then(function(){d._currentFloatingContent.refNode.focus({preventScroll:!0})})}},{key:"shouldDisplayFloatingContent",value:function(){var d=arguments.length>0&&arguments[0]!==void 0?arguments[0]:t.PUBLIC.DISPLAY_ALWAYS,f=arguments[1];return d===t.PUBLIC.DISPLAY_ALWAYS||d===t.PUBLIC.DISPLAY_WHEN_TRUNCATED&&f}},{key:"_sameAsCurrentRefNode",value:function(d){return this._currentFloatingContent&&this._currentFloatingContent.refNode===d}},{key:"_subscribeToDismissal",value:function(){var d=this;this.props.eventCallback(n.internal.NODE_SUBSCRIBE,{subscriberFn:function(h){(h===!0||d._sameAsCurrentRefNode(h.refNode))&&d.destroyFloatingContent()},subscriberId:e.subscriber.FLOATING_CONTENT_LEAVE,subscribeTo:e.publisher.FLOATING_CONTENT_DISMISS,noRender:!0})}},{key:"_handleCellEnterMessage",value:function(d){var f=d.trigger===t.TRIGGER.FOCUS,h=!this._sameAsCurrentRefNode(d.refNode),g=!1;this.shouldDisplayFloatingContent(d.displayCriteria,d.isTruncated)&&(this._currentFloatingContent&&h&&this.destroyFloatingContent(),this._currentFloatingContent||(this.createFloatingContent(d.refNode,d.component,d.configObj),g=!0)),f&&(g?this.updateContentAndFocusRefNode():d.refNode.focus({preventScroll:!0}))}},{key:"componentDidMount",value:function(){this._currentFloatingContent=null,this._subscribeToDismissal(),this.props.eventCallback(n.internal.NODE_SUBSCRIBE,{subscriberFn:this._handleCellEnterMessage.bind(this),subscriberId:e.subscriber.FLOATING_CONTENT_ENTER,subscribeTo:e.protected.publisher.CELL_ENTER,noRender:!0})}},{key:"render",value:function(){return null}}]),c}(i.Component);return a},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(85),u(87),u(109),u(449),u(451),u(452),u(245),u(453),u(454),u(455),u(186)],E=u.dj.d(A,function(D,_,v,l,n,e,t,r,i,a,s){"use strict";var c={};const o=[t.ERROR,t.WARNING],d={name:"hideOnEsc",defaultValue:!0,fn({hide:h}){function g(m){m.key==="Escape"&&h()}return{onShow(){document.addEventListener("keydown",g)},onHide(){document.removeEventListener("keydown",g)}}}};class f extends D{static get styles(){return s` - [mw-tooltip] { - visibility: hidden; - opacity: 0; - transition: opacity 0.2s linear; - } - [mw-tooltip = 'show'] { - visibility: visible; - position: absolute; - overflow: hidden; - max-height: 400px; - max-width: min(calc(100vw - 20px), 400px); - z-index: 951; - opacity: 1; - transition: opacity 0.2s linear; - background-color: var(--mw-backgroundColor-tertiary, $mw-backgroundColor-tertiary); - border: 1px solid var(--mw-borderColor-primary, $mw-borderColor-primary); - border-radius: 2px; - padding: 5px; - box-shadow: 0 1px 4px 0 var(--mw-boxShadowColor, $mw-boxShadowColor); - display: flex; - align-items: center; - } - [mw-tooltip = 'show'] .mw-tooltip-text { - color: var(--mw-color-primary); - font: 12px Arial; - letter-spacing: 0.23px; - line-height: 14px; - white-space: wrap; - max-height: 400px; - word-wrap:break-word; - font-kerning: normal; - min-width: 0; - } - [mw-tooltip = 'show'] .mw-tooltip-icon-error { - height: 12px; - width: 12px; - display: inline-block; - margin-right: 5px; - } - [mw-tooltip = 'show'] .mw-tooltip-icon-warning { - height: 12px; - width: 12px; - display: inline-block; - margin-right: 5px; - } - [mw-tooltip = 'show'][mw-tooltip-type = 'error'] { - border: 1px solid var(--mw-borderColor-error, $mw-borderColor-error); - background-color: var(--mw-backgroundColor-secondary-error, $mw-backgroundColor-secondary-error); - } - - [mw-tooltip = 'show'][mw-tooltip-type = 'warning'] { - border: 1px solid var(--mw-borderColor-warning, $mw-borderColor-warning); - background-color: var(--mw-backgroundColor-secondary-warning, $mw-backgroundColor-secondary-warning); - } - `}static get properties(){return{referenceNode:{type:Object,reflect:!1,attribute:!1},referenceSelector:{type:String,reflect:!0,attribute:!0},content:{type:String,reflect:!0,attribute:!0},type:{type:String,reflect:!0,attribute:!0},isHTML:{type:String,reflect:!0,attribute:!0},dataTestId:{type:String,reflect:!0,attribute:"data-test-id"}}}constructor(){super();this._referenceSelector=null,this._referenceNode=null,this._content=null,this._type="",this._isHTML=!1,this._experimentalUseShadowDom=!0,this.tID="mw-tooltip-"+n.generateUuid()}connectedCallback(){if(super.connectedCallback(),n.hasMultipleReferenceNode(this.referenceNode))for(const g of this.referenceNode)this._destroyTooltipFromDOM(g);else n.isElement(this.referenceNode)&&this._destroyTooltipFromDOM(this.referenceNode)}set type(g){const m=this._type;g=typeof g=="string"?g.toLowerCase():g,this._type=o.includes(g)?g:"",this.requestUpdate("type",m)}get type(){return this._type}set content(g){const m=this._content;this._content=g||null,this.requestUpdate("content",m)}get content(){return this._content}set isHTML(g){const m=this._isHTML;this._isHTML=g==="true"||g===!0,this.requestUpdate("isHTML",m)}get isHTML(){return this._isHTML}set referenceNode(g){const m=this._referenceNode;if(!n.isValidReferenceNode(g))throw new Error("You must pass a valid dom node");if(m===null){if(n.hasMultipleReferenceNode(g))for(const S of g)this._errorIfTooltipExist(S),r.set(S,this);else this._errorIfTooltipExist(g),r.set(g,this);i.set(g,this),this._referenceNode=g}}get referenceNode(){return this._referenceNode}set referenceSelector(g){const m=this._referenceSelector;if(!n.isSelectorValid(g))throw new Error("Only class and id selector is supported at this moment.");if(m!==null)return;const S=document.querySelectorAll(g);this.referenceNode=S,this._referenceSelector=g,this.requestUpdate("referenceSelector",m)}get referenceSelector(){return this._referenceSelector}_errorIfTooltipExist(g){if(r.has(g))throw new Error("A tooltip already exists for this reference node. Pass a new reference node")}_destroyTooltipFromDOM(g){const{promise:m,observer:S}=n.observeElementInDom(g);this._referenceObserver=S,m.then(T=>{this.destroy()})}_getReferenceNodeTheme(g){let m=v.getTheme(g);return m=m===""?e.light:e[m],m}_createTippy(){if(!this._tippyInstance&&this.content){const g=this;this._tippyInstance=a(g.referenceSelector||g.referenceNode,{arrow:!1,allowHTML:g.isHTML,content:g.content,delay:[500,0],followCursor:"initial",placement:"bottom-end",appendTo:()=>g.renderRoot,interactive:!0,interactiveBorder:0,offset:[5,15],aria:{content:"describedby",expandable:!1},moveTransition:"opacity 0.2s linear",trigger:"mouseenter focusin",zIndex:951,onMount(m){m.reference.setAttribute("aria-describedby",`${g.tID}`);const S=g._getReferenceNodeTheme(m.reference);v.setTheme(S,g),g.setAttribute("isOpen",!0)},onHide(m){m.reference.removeAttribute("aria-describedby"),g.removeAttribute("isOpen")},onShow(m){a.hideAll({exclude:m})},animation:!1,plugins:[d],render(m){m.type=g.type,g.setAttribute("id",g.tID),g.setAttribute("role","tooltip");const S=n.calculateTooltipZindex(m.reference,g);g.setAttribute("zIndex",S!=="auto"?S:951);const T=document.createElement("span");T.setAttribute("mw-tooltip","show"),l.createContent({content:{text:m.props.content,isHTML:m.props.allowHTML,type:g.type},container:T});function w(R,O){T&&(R.content!==O.content||R.allowHTML!==O.allowHTML||T.type!==g.type)&&(T.innerHTML="",l.createContent({content:{text:O.content,isHTML:O.allowHTML,type:g.type},container:T}))}return{popper:T,onUpdate:w}}})}else this._tippyInstance&&Array.isArray(this._tippyInstance)?this._tippyInstance.forEach(g=>{g.setProps({content:this.content,allowHTML:this.isHTML})}):this._tippyInstance&&this._tippyInstance.setProps({content:this.content,allowHTML:this.isHTML})}disconnectedCallback(){this.content=null,this.type="",this.isHTML=!1,this._referenceNode=null,this._referenceSelector=null,this.tID=null,this._tippyInstance=null,super.disconnectedCallback()}updated(g){(g.has("type")||g.has("content")||g.has("isHTML"))&&this._createTippy()}_destroyTippyInstance(g){g&&g.destroy()}_removeAriaAttribute(g){g&&g.reference.hasAttribute("aria-describedby")&&g.reference.removeAttribute("aria-describedby")}destroy(){if(i.has(this.referenceNode)){let g=i.get(this.referenceNode),m=g&&g._tippyInstance;if(m&&Array.isArray(m)?m.forEach(S=>{this._removeAriaAttribute(S),this._destroyTippyInstance(S)}):(this._removeAriaAttribute(m),this._destroyTippyInstance(m)),n.hasMultipleReferenceNode(this.referenceNode))for(const S of this.referenceNode)r.has(S)&&r.delete(S);else r.delete(this.referenceNode);i.delete(this.referenceNode),n.stopObservingElement(this._referenceObserver),this._referenceObserver=null,m=null,g&&document.body.removeChild(g),g=null}}}return c.default=_({name:"mw-tooltip",widgetClass:f}),c.default},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[u(245),u(450)],E=u.dj.d(A,function(D,_){"use strict";var v={};const l=` - - - - - -`,n=` - - - - -`;class e{static createContent(r){const{container:i,content:a}=r;if(a.type){let c=document.createElement("div");const o=a.type;let d;if(a.type===D.ERROR?(d="mw-tooltip-icon-error",c.innerHTML=l):a.type===D.WARNING&&(c.innerHTML=n,d="mw-tooltip-icon-warning"),d){const f=c.children[0].cloneNode(!0);c=null,i.setAttribute("mw-tooltip-type",o),f.setAttribute("class",d),i.appendChild(f)}}else i.hasAttribute("mw-tooltip-type")&&i.removeAttribute("mw-tooltip-type");i.type=a.type,(a.text===void 0||a.text===null)&&(a.text=""),typeof a.text!="string"&&(a.text=a.text.toString());const s=document.createElement("span");if(s.className="mw-tooltip-text",i.appendChild(s),a.isHTML===!0){const c=_.sanitizeHtmlForTooltip(a.text);s.appendChild(c)}else a.text.split(` -`).forEach(o=>{const d=document.createElement("span");d.textContent=o,s.appendChild(d),s.appendChild(document.createElement("br"))})}}return v.default=e,v.default},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){"use strict";var D={};const _={B:[],BR:[],CODE:[],EM:[],I:[],S:[],SUB:[],SUP:[],STRONG:[],U:[]},v=function(l){return function(n){const e=function(c,o){const d=[];for(const f of c){const h=f;if(o.hasAttribute(h)){const g=o.getAttribute(h);d.push({key:h,value:g})}}return d},t=function(c){let o;if(c.nodeType===window.Node.ELEMENT_NODE)if(l[c.tagName]){o=document.createElement(c.tagName);const f=l[c.tagName];e(f,c).forEach(g=>{o.setAttribute(g.key,g.value)})}else o=document.createDocumentFragment();else c.nodeType===window.Node.TEXT_NODE?o=document.createTextNode(c.textContent):o=document.createDocumentFragment();return o},r=function(c,o=0){const d=document.createDocumentFragment();if(o>150||!c)return d;for(let f=c.firstChild;f;f=f.nextSibling){const h=t(f);f.nodeType===window.Node.ELEMENT_NODE&&h.appendChild(r(f,o+1)),d.appendChild(h)}return d},a=new DOMParser().parseFromString(n,"text/html");let s;return a.body?s=r(a.body):s=document.createDocumentFragment(),s}};return D.default={sanitizeHtmlForTooltip:v(_)},D.default},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){"use strict";var D={};class _{static getCoordsWrtPage(l){const n=l.getBoundingClientRect();return{top:n.top+window.pageYOffset,left:n.left+window.pageXOffset}}static isElement(l){return l instanceof window.Element||l instanceof window.HTMLElement}static isValidReferenceNode(l){return l&&Array.isArray(l)&&l.length>0?l.every(n=>n instanceof window.Element||n instanceof window.HTMLElement):l instanceof window.Element||l instanceof window.HTMLElement||l instanceof window.NodeList&&l.length>0}static removeChildNodes(l){for(;l.lastChild;)l.removeChild(l.lastChild)}static getBrowserVerticalScrollbarWidth(){return window.innerWidth-document.documentElement.clientWidth}static getBrowserHorizontalScrollbarHeight(){return window.innerHeight-document.documentElement.clientHeight}static getScrollbarWidth(l){return l.offsetWidth-l.clientWidth}static getScrollbarHeight(l){return l.offsetHeight-l.clientHeight}static setTooltipPrivateEventProp(l,n,e){(!l[n]||!l[n][e])&&(l[n]={},l[n][e]="true")}static getTooltipPrivateEventProp(l,n,e){return!!(l[n]&&l[n][e])}static generateUuid(){return"xxxxxxxx".replace(/[xy]/g,function(l){const n=Math.random()*16|0;return(l==="x"?n:n&3|8).toString(16)}).toUpperCase()}static getElementZindex(l){return window.getComputedStyle(l).getPropertyValue("z-index")}static getEffectiveZindex(l){let n=0,e,t=!0;for(;l&&_.isElement(l);)e=_.getElementZindex(l),e!=="auto"&&(e=parseInt(e,10),e>n&&(t=!1,n=e)),l=l.parentNode;return t?"auto":n}static isSelectorValid(l){return l.substring(0,1)==="."||l.substring(0,1)==="#"}static calculateTooltipZindex(l,n){const e=_.getEffectiveZindex(l),t=_.getElementZindex(n);return e==="auto"||t==="auto"||e0}}return D.default=_,D.default},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(79)],E=u.dj.d(A,function(D){"use strict";var _={};const v=Object.freeze({light:D.LIGHT,dark:D.DARK});return _.default=v,_.default},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){"use strict";var D={};class _{constructor(){this._tooltipDepot=new WeakMap}clear(){this._tooltipDepot=new WeakMap}delete(l){return this._tooltipDepot.delete(l)}get(l){return this._tooltipDepot.get(l)}has(l){return this._tooltipDepot.has(l)}set(l,n){return this._tooltipDepot.set(l,n),this}}return D.default=new _,D.default},C,x),C.exports=E},function(C,x,u){"use strict";var A,E;A=[],E=u.dj.d(A,function(){"use strict";var D={};class _{constructor(){this._tooltipStore=new WeakMap}clear(){this._tooltipStore=new WeakMap}delete(l){return this._tooltipStore.delete(l)}get(l){return this._tooltipStore.get(l)}has(l){return this._tooltipStore.has(l)}set(l,n){return this._tooltipStore.set(l,n),this}}return D.default=new _,D.default},C,x),C.exports=E},function(C,x,u){"use strict";(function(A,E){C.exports=E(u(456))})(void 0,function(A){"use strict";var E='.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1}';function D(fe){var ye=document.createElement("style");ye.textContent=fe,ye.setAttribute("data-tippy-stylesheet","");var Re=document.head,ke=document.querySelector("head>style,head>link");ke?Re.insertBefore(ye,ke):Re.appendChild(ye)}var _=typeof window!="undefined"&&typeof document!="undefined",v=_?!!window.msCrypto:!1,l='',n="tippy-box",e="tippy-content",t="tippy-backdrop",r="tippy-arrow",i="tippy-svg-arrow",a={passive:!0,capture:!0},s=function(){return document.body};function c(fe,ye){return{}.hasOwnProperty.call(fe,ye)}function o(fe,ye,Re){if(Array.isArray(fe)){var ke=fe[ye];return ke==null?Array.isArray(Re)?Re[ye]:Re:ke}return fe}function d(fe,ye){var Re={}.toString.call(fe);return Re.indexOf("[object")===0&&Re.indexOf(ye+"]")>-1}function f(fe,ye){return typeof fe=="function"?fe.apply(void 0,ye):fe}function h(fe,ye){if(ye===0)return fe;var Re;return function(ke){clearTimeout(Re),Re=setTimeout(function(){fe(ke)},ye)}}function g(fe,ye){var Re=Object.assign({},fe);return ye.forEach(function(ke){delete Re[ke]}),Re}function m(fe){return fe.split(/\s+/).filter(Boolean)}function S(fe){return[].concat(fe)}function T(fe,ye){fe.indexOf(ye)===-1&&fe.push(ye)}function w(fe){return fe.filter(function(ye,Re){return fe.indexOf(ye)===Re})}function R(fe){return fe.split("-")[0]}function O(fe){return[].slice.call(fe)}function F(fe){return Object.keys(fe).reduce(function(ye,Re){return fe[Re]!==void 0&&(ye[Re]=fe[Re]),ye},{})}function b(){return document.createElement("div")}function I(fe){return["Element","Fragment"].some(function(ye){return d(fe,ye)})}function N(fe){return d(fe,"NodeList")}function P(fe){return d(fe,"MouseEvent")}function L(fe){return!!(fe&&fe._tippy&&fe._tippy.reference===fe)}function k(fe){return I(fe)?[fe]:N(fe)?O(fe):Array.isArray(fe)?fe:O(document.querySelectorAll(fe))}function W(fe,ye){fe.forEach(function(Re){Re&&(Re.style.transitionDuration=ye+"ms")})}function K(fe,ye){fe.forEach(function(Re){Re&&Re.setAttribute("data-state",ye)})}function V(fe){var ye,Re=S(fe),ke=Re[0];return ke!=null&&(ye=ke.ownerDocument)!=null&&ye.body?ke.ownerDocument:document}function G(fe,ye){var Re=ye.clientX,ke=ye.clientY;return fe.every(function(qe){var Ge=qe.popperRect,$e=qe.popperState,ht=qe.props,pt=ht.interactiveBorder,Ct=R($e.placement),Pt=$e.modifiersData.offset;if(!Pt)return!0;var hn=Ct==="bottom"?Pt.top.y:0,an=Ct==="top"?Pt.bottom.y:0,sn=Ct==="right"?Pt.left.x:0,Bt=Ct==="left"?Pt.right.x:0,Mt=Ge.top-ke+hn>pt,Rt=ke-Ge.bottom-an>pt,it=Ge.left-Re+sn>pt,Yt=Re-Ge.right-Bt>pt;return Mt||Rt||it||Yt})}function j(fe,ye,Re){if(Re){var ke=ye+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(qe){fe[ke](qe,Re)})}}function Y(fe,ye){for(var Re=ye;Re;){var ke;if(fe.contains(Re))return!0;Re=Re.getRootNode==null||(ke=Re.getRootNode())==null?void 0:ke.host}return!1}var z={isTouch:!1},Q=0;function X(){z.isTouch||(z.isTouch=!0,window.performance&&document.addEventListener("mousemove",J))}function J(){var fe=performance.now();fe-Q<20&&(z.isTouch=!1,document.removeEventListener("mousemove",J)),Q=fe}function $(){var fe=document.activeElement;if(L(fe)){var ye=fe._tippy;fe.blur&&!ye.state.isVisible&&fe.blur()}}function q(){document.addEventListener("touchstart",X,a),window.addEventListener("blur",$)}function te(fe){var ye=fe==="destroy"?"n already-":" ";return[fe+"() was called on a"+ye+"destroyed instance. This is a no-op but","indicates a potential memory leak."].join(" ")}function oe(fe){var ye=/[ \t]{2,}/g,Re=/^[ \t]*/gm;return fe.replace(ye," ").replace(Re,"").trim()}function le(fe){return oe(` - %ctippy.js - - %c`+oe(fe)+` - - %cThis is a development-only message. It will be removed in production. - `)}function de(fe){return[le(fe),"color: #00C584; font-size: 1.3em; font-weight: bold;","line-height: 1.5","color: #a6a095;"]}var De;Se();function Se(){De=new Set}function pe(fe,ye){if(fe&&!De.has(ye)){var Re;De.add(ye),(Re=console).warn.apply(Re,de(ye))}}function ie(fe,ye){if(fe&&!De.has(ye)){var Re;De.add(ye),(Re=console).error.apply(Re,de(ye))}}function ee(fe){var ye=!fe,Re=Object.prototype.toString.call(fe)==="[object Object]"&&!fe.addEventListener;ie(ye,["tippy() was passed","`"+String(fe)+"`","as its targets (first) argument. Valid types are: String, Element,","Element[], or NodeList."].join(" ")),ie(Re,["tippy() was passed a plain object which is not supported as an argument","for virtual positioning. Use props.getReferenceClientRect instead."].join(" "))}var me={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},ce={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},ve=Object.assign({appendTo:s,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},me,ce),Oe=Object.keys(ve),Ye=function(ye){{var Re=ve.plugins.concat(ye.plugins||[]);Ft(ye,Re)}var ke=Object.keys(ye);ke.forEach(function(qe){ve[qe]=ye[qe]})};function nt(fe){var ye=fe.plugins||[],Re=ye.reduce(function(ke,qe){var Ge=qe.name,$e=qe.defaultValue;if(Ge){var ht;ke[Ge]=fe[Ge]!==void 0?fe[Ge]:(ht=ve[Ge])!=null?ht:$e}return ke},{});return Object.assign({},fe,Re)}function Dt(fe,ye){var Re=ye?Object.keys(nt(Object.assign({},ve,{plugins:ye}))):Oe,ke=Re.reduce(function(qe,Ge){var $e=(fe.getAttribute("data-tippy-"+Ge)||"").trim();if(!$e)return qe;if(Ge==="content")qe[Ge]=$e;else try{qe[Ge]=JSON.parse($e)}catch(ht){qe[Ge]=$e}return qe},{});return ke}function wt(fe,ye){var Re=Object.assign({},ye,{content:f(ye.content,[fe])},ye.ignoreAttributes?{}:Dt(fe,ye.plugins));return Re.aria=Object.assign({},ve.aria,Re.aria),Re.aria={expanded:Re.aria.expanded==="auto"?ye.interactive:Re.aria.expanded,content:Re.aria.content==="auto"?ye.interactive?null:"describedby":Re.aria.content},Re}function Ft(fe,ye){fe===void 0&&(fe={}),ye===void 0&&(ye=[]);var Re=Object.keys(fe);Re.forEach(function(ke){var qe=g(ve,Object.keys(me)),Ge=!c(qe,ke);Ge&&(Ge=ye.filter(function($e){return $e.name===ke}).length===0),pe(Ge,["`"+ke+"`","is not a valid prop. You may have spelled it incorrectly, or if it's","a plugin, forgot to pass it in an array as props.plugins.",` - -`,`All props: https://atomiks.github.io/tippyjs/v6/all-props/ -`,"Plugins: https://atomiks.github.io/tippyjs/v6/plugins/"].join(" "))})}var St=function(){return"innerHTML"};function xt(fe,ye){fe[St()]=ye}function zt(fe){var ye=b();return fe===!0?ye.className=r:(ye.className=i,I(fe)?ye.appendChild(fe):xt(ye,fe)),ye}function tn(fe,ye){I(ye.content)?(xt(fe,""),fe.appendChild(ye.content)):typeof ye.content!="function"&&(ye.allowHTML?xt(fe,ye.content):fe.textContent=ye.content)}function Gt(fe){var ye=fe.firstElementChild,Re=O(ye.children);return{box:ye,content:Re.find(function(ke){return ke.classList.contains(e)}),arrow:Re.find(function(ke){return ke.classList.contains(r)||ke.classList.contains(i)}),backdrop:Re.find(function(ke){return ke.classList.contains(t)})}}function un(fe){var ye=b(),Re=b();Re.className=n,Re.setAttribute("data-state","hidden"),Re.setAttribute("tabindex","-1");var ke=b();ke.className=e,ke.setAttribute("data-state","hidden"),tn(ke,fe.props),ye.appendChild(Re),Re.appendChild(ke),qe(fe.props,fe.props);function qe(Ge,$e){var ht=Gt(ye),pt=ht.box,Ct=ht.content,Pt=ht.arrow;$e.theme?pt.setAttribute("data-theme",$e.theme):pt.removeAttribute("data-theme"),typeof $e.animation=="string"?pt.setAttribute("data-animation",$e.animation):pt.removeAttribute("data-animation"),$e.inertia?pt.setAttribute("data-inertia",""):pt.removeAttribute("data-inertia"),pt.style.maxWidth=typeof $e.maxWidth=="number"?$e.maxWidth+"px":$e.maxWidth,$e.role?pt.setAttribute("role",$e.role):pt.removeAttribute("role"),(Ge.content!==$e.content||Ge.allowHTML!==$e.allowHTML)&&tn(Ct,fe.props),$e.arrow?Pt?Ge.arrow!==$e.arrow&&(pt.removeChild(Pt),pt.appendChild(zt($e.arrow))):pt.appendChild(zt($e.arrow)):Pt&&pt.removeChild(Pt)}return{popper:ye,onUpdate:qe}}un.$$tippy=!0;var pn=1,Ln=[],ue=[];function Ie(fe,ye){var Re=wt(fe,Object.assign({},ve,nt(F(ye)))),ke,qe,Ge,$e=!1,ht=!1,pt=!1,Ct=!1,Pt,hn,an,sn=[],Bt=h(dn,Re.interactiveDebounce),Mt,Rt=pn++,it=null,Yt=w(Re.plugins),cn={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},Ee={id:Rt,reference:fe,popper:b(),popperInstance:it,props:Re,state:cn,plugins:Yt,clearDelayTimeouts:ar,setProps:cr,setContent:kn,show:On,hide:Rr,hideWithInteractivity:Ur,enable:ir,disable:_r,unmount:dr,destroy:vr};if(!Re.render)return ie(!0,"render() function has not been supplied."),Ee;var Nt=Re.render(Ee),ct=Nt.popper,mn=Nt.onUpdate;ct.setAttribute("data-tippy-root",""),ct.id="tippy-"+Ee.id,Ee.popper=ct,fe._tippy=Ee,ct._tippy=Ee;var ae=Yt.map(function(Ne){return Ne.fn(Ee)}),re=fe.hasAttribute("aria-expanded");return Je(),$t(),gt(),Qe("onCreate",[Ee]),Re.showOnCreate&&yn(),ct.addEventListener("mouseenter",function(){Ee.props.interactive&&Ee.state.isVisible&&Ee.clearDelayTimeouts()}),ct.addEventListener("mouseleave",function(){Ee.props.interactive&&Ee.props.trigger.indexOf("mouseenter")>=0&&Xe().addEventListener("mousemove",Bt)}),Ee;function ge(){var Ne=Ee.props.touch;return Array.isArray(Ne)?Ne:[Ne,0]}function Me(){return ge()[0]==="hold"}function Pe(){var Ne;return!!((Ne=Ee.props.render)!=null&&Ne.$$tippy)}function Ue(){return Mt||fe}function Xe(){var Ne=Ue().parentNode;return Ne?V(Ne):document}function je(){return Gt(ct)}function at(Ne){return Ee.state.isMounted&&!Ee.state.isVisible||z.isTouch?0:o(Ee.props.delay,Ne?0:1,ve.delay)}function gt(Ne){Ne===void 0&&(Ne=!1),ct.style.pointerEvents=Ee.props.interactive&&!Ne?"":"none",ct.style.zIndex=""+Ee.props.zIndex}function Qe(Ne,Ze,yt){if(yt===void 0&&(yt=!0),ae.forEach(function(jt){jt[Ne]&&jt[Ne].apply(jt,Ze)}),yt){var Ut;(Ut=Ee.props)[Ne].apply(Ut,Ze)}}function Jt(){var Ne=Ee.props.aria;if(!!Ne.content){var Ze="aria-"+Ne.content,yt=ct.id,Ut=S(Ee.props.triggerTarget||fe);Ut.forEach(function(jt){var gn=jt.getAttribute(Ze);if(Ee.state.isVisible)jt.setAttribute(Ze,gn?gn+" "+yt:yt);else{var ln=gn&&gn.replace(yt,"").trim();ln?jt.setAttribute(Ze,ln):jt.removeAttribute(Ze)}})}}function $t(){if(!(re||!Ee.props.aria.expanded)){var Ne=S(Ee.props.triggerTarget||fe);Ne.forEach(function(Ze){Ee.props.interactive?Ze.setAttribute("aria-expanded",Ee.state.isVisible&&Ze===Ue()?"true":"false"):Ze.removeAttribute("aria-expanded")})}}function Wt(){Xe().removeEventListener("mousemove",Bt),Ln=Ln.filter(function(Ne){return Ne!==Bt})}function Ht(Ne){if(!(z.isTouch&&(pt||Ne.type==="mousedown"))){var Ze=Ne.composedPath&&Ne.composedPath()[0]||Ne.target;if(!(Ee.props.interactive&&Y(ct,Ze))){if(S(Ee.props.triggerTarget||fe).some(function(yt){return Y(yt,Ze)})){if(z.isTouch||Ee.state.isVisible&&Ee.props.trigger.indexOf("click")>=0)return}else Qe("onClickOutside",[Ee,Ne]);Ee.props.hideOnClick===!0&&(Ee.clearDelayTimeouts(),Ee.hide(),ht=!0,setTimeout(function(){ht=!1}),Ee.state.isMounted||nn())}}}function Zt(){pt=!0}function Kt(){pt=!1}function Xt(){var Ne=Xe();Ne.addEventListener("mousedown",Ht,!0),Ne.addEventListener("touchend",Ht,a),Ne.addEventListener("touchstart",Kt,a),Ne.addEventListener("touchmove",Zt,a)}function nn(){var Ne=Xe();Ne.removeEventListener("mousedown",Ht,!0),Ne.removeEventListener("touchend",Ht,a),Ne.removeEventListener("touchstart",Kt,a),Ne.removeEventListener("touchmove",Zt,a)}function rn(Ne,Ze){Be(Ne,function(){!Ee.state.isVisible&&ct.parentNode&&ct.parentNode.contains(ct)&&Ze()})}function Ce(Ne,Ze){Be(Ne,Ze)}function Be(Ne,Ze){var yt=je().box;function Ut(jt){jt.target===yt&&(j(yt,"remove",Ut),Ze())}if(Ne===0)return Ze();j(yt,"remove",hn),j(yt,"add",Ut),hn=Ut}function Ve(Ne,Ze,yt){yt===void 0&&(yt=!1);var Ut=S(Ee.props.triggerTarget||fe);Ut.forEach(function(jt){jt.addEventListener(Ne,Ze,yt),sn.push({node:jt,eventType:Ne,handler:Ze,options:yt})})}function Je(){Me()&&(Ve("touchstart",mt,{passive:!0}),Ve("touchend",Ot,{passive:!0})),m(Ee.props.trigger).forEach(function(Ne){if(Ne!=="manual")switch(Ve(Ne,mt),Ne){case"mouseenter":Ve("mouseleave",Ot);break;case"focus":Ve(v?"focusout":"blur",bn);break;case"focusin":Ve("focusout",bn);break}})}function lt(){sn.forEach(function(Ne){var Ze=Ne.node,yt=Ne.eventType,Ut=Ne.handler,jt=Ne.options;Ze.removeEventListener(yt,Ut,jt)}),sn=[]}function mt(Ne){var Ze,yt;Ne&&Ne.type==="focusin"&&Ne.stopPropagation();var Ut=!1;if(!(!Ee.state.isEnabled||An(Ne)||ht)){var jt=((Ze=Pt)==null?void 0:Ze.type)==="focus"||((yt=Pt)==null?void 0:yt.type)==="focusin";Pt=Ne,Mt=Ne.currentTarget,$t(),!Ee.state.isVisible&&P(Ne)&&Ln.forEach(function(gn){return gn(Ne)}),Ne.type==="click"&&(Ee.props.trigger.indexOf("mouseenter")<0||$e)&&Ee.props.hideOnClick!==!1&&Ee.state.isVisible?Ut=!0:yn(Ne),Ne.type==="click"&&($e=!Ut),Ut&&!jt&&vn(Ne)}}function dn(Ne){var Ze=Ne.target,yt=Ue().contains(Ze)||ct.contains(Ze);if(!(Ne.type==="mousemove"&&yt)){var Ut=fn().concat(ct).map(function(jt){var gn,ln=jt._tippy,fr=(gn=ln.popperInstance)==null?void 0:gn.state;return fr?{popperRect:jt.getBoundingClientRect(),popperState:fr,props:Re}:null}).filter(Boolean);G(Ut,Ne)&&(Wt(),vn(Ne))}}function Ot(Ne){var Ze=An(Ne)||Ee.props.trigger.indexOf("click")>=0&&$e;if(!Ze){if(Ee.props.interactive){Ee.hideWithInteractivity(Ne);return}vn(Ne)}}function bn(Ne){Ee.props.trigger.indexOf("focusin")<0&&Ne.target!==Ue()||Ee.props.interactive&&Ne.relatedTarget&&ct.contains(Ne.relatedTarget)||vn(Ne)}function An(Ne){return z.isTouch?Me()!==Ne.type.indexOf("touch")>=0:!1}function Sn(){Fn();var Ne=Ee.props,Ze=Ne.popperOptions,yt=Ne.placement,Ut=Ne.offset,jt=Ne.getReferenceClientRect,gn=Ne.moveTransition,ln=Pe()?Gt(ct).arrow:null,fr=jt?{getBoundingClientRect:jt,contextElement:jt.contextElement||Ue()}:fe,Vr={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(li){var Gn=li.state;if(Pe()){var br=je(),Yr=br.box;["placement","reference-hidden","escaped"].forEach(function(ui){ui==="placement"?Yr.setAttribute("data-placement",Gn.placement):Gn.attributes.popper["data-popper-"+ui]?Yr.setAttribute("data-"+ui,""):Yr.removeAttribute("data-"+ui)}),Gn.attributes.popper={}}}},In=[{name:"offset",options:{offset:Ut}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!gn}},Vr];Pe()&&ln&&In.push({name:"arrow",options:{element:ln,padding:3}}),In.push.apply(In,(Ze==null?void 0:Ze.modifiers)||[]),Ee.popperInstance=A.createPopper(fr,ct,Object.assign({},Ze,{placement:yt,onFirstUpdate:an,modifiers:In}))}function Fn(){Ee.popperInstance&&(Ee.popperInstance.destroy(),Ee.popperInstance=null)}function rr(){var Ne=Ee.props.appendTo,Ze,yt=Ue();Ee.props.interactive&&Ne===s||Ne==="parent"?Ze=yt.parentNode:Ze=f(Ne,[yt]),Ze.contains(ct)||Ze.appendChild(ct),Ee.state.isMounted=!0,Sn(),pe(Ee.props.interactive&&Ne===ve.appendTo&&yt.nextElementSibling!==ct,["Interactive tippy element may not be accessible via keyboard","navigation because it is not directly after the reference element","in the DOM source order.",` - -`,"Using a wrapper
or tag around the reference element","solves this by creating a new parentNode context.",` - -`,"Specifying `appendTo: document.body` silences this warning, but it","assumes you are using a focus management solution to handle","keyboard navigation.",` - -`,"See: https://atomiks.github.io/tippyjs/v6/accessibility/#interactivity"].join(" "))}function fn(){return O(ct.querySelectorAll("[data-tippy-root]"))}function yn(Ne){Ee.clearDelayTimeouts(),Ne&&Qe("onTrigger",[Ee,Ne]),Xt();var Ze=at(!0),yt=ge(),Ut=yt[0],jt=yt[1];z.isTouch&&Ut==="hold"&&jt&&(Ze=jt),Ze?ke=setTimeout(function(){Ee.show()},Ze):Ee.show()}function vn(Ne){if(Ee.clearDelayTimeouts(),Qe("onUntrigger",[Ee,Ne]),!Ee.state.isVisible){nn();return}if(!(Ee.props.trigger.indexOf("mouseenter")>=0&&Ee.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(Ne.type)>=0&&$e)){var Ze=at(!1);Ze?qe=setTimeout(function(){Ee.state.isVisible&&Ee.hide()},Ze):Ge=requestAnimationFrame(function(){Ee.hide()})}}function ir(){Ee.state.isEnabled=!0}function _r(){Ee.hide(),Ee.state.isEnabled=!1}function ar(){clearTimeout(ke),clearTimeout(qe),cancelAnimationFrame(Ge)}function cr(Ne){if(pe(Ee.state.isDestroyed,te("setProps")),!Ee.state.isDestroyed){Qe("onBeforeUpdate",[Ee,Ne]),lt();var Ze=Ee.props,yt=wt(fe,Object.assign({},Ze,F(Ne),{ignoreAttributes:!0}));Ee.props=yt,Je(),Ze.interactiveDebounce!==yt.interactiveDebounce&&(Wt(),Bt=h(dn,yt.interactiveDebounce)),Ze.triggerTarget&&!yt.triggerTarget?S(Ze.triggerTarget).forEach(function(Ut){Ut.removeAttribute("aria-expanded")}):yt.triggerTarget&&fe.removeAttribute("aria-expanded"),$t(),gt(),mn&&mn(Ze,yt),Ee.popperInstance&&(Sn(),fn().forEach(function(Ut){requestAnimationFrame(Ut._tippy.popperInstance.forceUpdate)})),Qe("onAfterUpdate",[Ee,Ne])}}function kn(Ne){Ee.setProps({content:Ne})}function On(){pe(Ee.state.isDestroyed,te("show"));var Ne=Ee.state.isVisible,Ze=Ee.state.isDestroyed,yt=!Ee.state.isEnabled,Ut=z.isTouch&&!Ee.props.touch,jt=o(Ee.props.duration,0,ve.duration);if(!(Ne||Ze||yt||Ut)&&!Ue().hasAttribute("disabled")&&(Qe("onShow",[Ee],!1),Ee.props.onShow(Ee)!==!1)){if(Ee.state.isVisible=!0,Pe()&&(ct.style.visibility="visible"),gt(),Xt(),Ee.state.isMounted||(ct.style.transition="none"),Pe()){var gn=je(),ln=gn.box,fr=gn.content;W([ln,fr],0)}an=function(){var In;if(!(!Ee.state.isVisible||Ct)){if(Ct=!0,ct.offsetHeight,ct.style.transition=Ee.props.moveTransition,Pe()&&Ee.props.animation){var si=je(),li=si.box,Gn=si.content;W([li,Gn],jt),K([li,Gn],"visible")}Jt(),$t(),T(ue,Ee),(In=Ee.popperInstance)==null||In.forceUpdate(),Qe("onMount",[Ee]),Ee.props.animation&&Pe()&&Ce(jt,function(){Ee.state.isShown=!0,Qe("onShown",[Ee])})}},rr()}}function Rr(){pe(Ee.state.isDestroyed,te("hide"));var Ne=!Ee.state.isVisible,Ze=Ee.state.isDestroyed,yt=!Ee.state.isEnabled,Ut=o(Ee.props.duration,1,ve.duration);if(!(Ne||Ze||yt)&&(Qe("onHide",[Ee],!1),Ee.props.onHide(Ee)!==!1)){if(Ee.state.isVisible=!1,Ee.state.isShown=!1,Ct=!1,$e=!1,Pe()&&(ct.style.visibility="hidden"),Wt(),nn(),gt(!0),Pe()){var jt=je(),gn=jt.box,ln=jt.content;Ee.props.animation&&(W([gn,ln],Ut),K([gn,ln],"hidden"))}Jt(),$t(),Ee.props.animation?Pe()&&rn(Ut,Ee.unmount):Ee.unmount()}}function Ur(Ne){pe(Ee.state.isDestroyed,te("hideWithInteractivity")),Xe().addEventListener("mousemove",Bt),T(Ln,Bt),Bt(Ne)}function dr(){pe(Ee.state.isDestroyed,te("unmount")),Ee.state.isVisible&&Ee.hide(),!!Ee.state.isMounted&&(Fn(),fn().forEach(function(Ne){Ne._tippy.unmount()}),ct.parentNode&&ct.parentNode.removeChild(ct),ue=ue.filter(function(Ne){return Ne!==Ee}),Ee.state.isMounted=!1,Qe("onHidden",[Ee]))}function vr(){pe(Ee.state.isDestroyed,te("destroy")),!Ee.state.isDestroyed&&(Ee.clearDelayTimeouts(),Ee.unmount(),lt(),delete fe._tippy,Ee.state.isDestroyed=!0,Qe("onDestroy",[Ee]))}}function We(fe,ye){ye===void 0&&(ye={});var Re=ve.plugins.concat(ye.plugins||[]);ee(fe),Ft(ye,Re),q();var ke=Object.assign({},ye,{plugins:Re}),qe=k(fe);{var Ge=I(ke.content),$e=qe.length>1;pe(Ge&&$e,["tippy() was passed an Element as the `content` prop, but more than","one tippy instance was created by this invocation. This means the","content element will only be appended to the last tippy instance.",` - -`,"Instead, pass the .innerHTML of the element, or use a function that","returns a cloned version of the element instead.",` - -`,`1) content: element.innerHTML -`,"2) content: () => element.cloneNode(true)"].join(" "))}var ht=qe.reduce(function(pt,Ct){var Pt=Ct&&Ie(Ct,ke);return Pt&&pt.push(Pt),pt},[]);return I(fe)?ht[0]:ht}We.defaultProps=ve,We.setDefaultProps=Ye,We.currentInput=z;var ot=function(ye){var Re=ye===void 0?{}:ye,ke=Re.exclude,qe=Re.duration;ue.forEach(function(Ge){var $e=!1;if(ke&&($e=L(ke)?Ge.reference===ke:Ge.popper===ke.popper),!$e){var ht=Ge.props.duration;Ge.setProps({duration:qe}),Ge.hide(),Ge.state.isDestroyed||Ge.setProps({duration:ht})}})},ut=Object.assign({},A.applyStyles,{effect:function(ye){var Re=ye.state,ke={popper:{position:Re.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(Re.elements.popper.style,ke.popper),Re.styles=ke,Re.elements.arrow&&Object.assign(Re.elements.arrow.style,ke.arrow)}}),bt=function(ye,Re){var ke;Re===void 0&&(Re={}),ie(!Array.isArray(ye),["The first argument passed to createSingleton() must be an array of","tippy instances. The passed value was",String(ye)].join(" "));var qe=ye,Ge=[],$e=[],ht,pt=Re.overrides,Ct=[],Pt=!1;function hn(){$e=qe.map(function(Ee){return S(Ee.props.triggerTarget||Ee.reference)}).reduce(function(Ee,Nt){return Ee.concat(Nt)},[])}function an(){Ge=qe.map(function(Ee){return Ee.reference})}function sn(Ee){qe.forEach(function(Nt){Ee?Nt.enable():Nt.disable()})}function Bt(Ee){return qe.map(function(Nt){var ct=Nt.setProps;return Nt.setProps=function(mn){ct(mn),Nt.reference===ht&&Ee.setProps(mn)},function(){Nt.setProps=ct}})}function Mt(Ee,Nt){var ct=$e.indexOf(Nt);if(Nt!==ht){ht=Nt;var mn=(pt||[]).concat("content").reduce(function(ae,re){return ae[re]=qe[ct].props[re],ae},{});Ee.setProps(Object.assign({},mn,{getReferenceClientRect:typeof mn.getReferenceClientRect=="function"?mn.getReferenceClientRect:function(){var ae;return(ae=Ge[ct])==null?void 0:ae.getBoundingClientRect()}}))}}sn(!1),an(),hn();var Rt={fn:function(){return{onDestroy:function(){sn(!0)},onHidden:function(){ht=null},onClickOutside:function(ct){ct.props.showOnCreate&&!Pt&&(Pt=!0,ht=null)},onShow:function(ct){ct.props.showOnCreate&&!Pt&&(Pt=!0,Mt(ct,Ge[0]))},onTrigger:function(ct,mn){Mt(ct,mn.currentTarget)}}}},it=We(b(),Object.assign({},g(Re,["overrides"]),{plugins:[Rt].concat(Re.plugins||[]),triggerTarget:$e,popperOptions:Object.assign({},Re.popperOptions,{modifiers:[].concat(((ke=Re.popperOptions)==null?void 0:ke.modifiers)||[],[ut])})})),Yt=it.show;it.show=function(Ee){if(Yt(),!ht&&Ee==null)return Mt(it,Ge[0]);if(!(ht&&Ee==null)){if(typeof Ee=="number")return Ge[Ee]&&Mt(it,Ge[Ee]);if(qe.indexOf(Ee)>=0){var Nt=Ee.reference;return Mt(it,Nt)}if(Ge.indexOf(Ee)>=0)return Mt(it,Ee)}},it.showNext=function(){var Ee=Ge[0];if(!ht)return it.show(0);var Nt=Ge.indexOf(ht);it.show(Ge[Nt+1]||Ee)},it.showPrevious=function(){var Ee=Ge[Ge.length-1];if(!ht)return it.show(Ee);var Nt=Ge.indexOf(ht),ct=Ge[Nt-1]||Ee;it.show(ct)};var cn=it.setProps;return it.setProps=function(Ee){pt=Ee.overrides||pt,cn(Ee)},it.setInstances=function(Ee){sn(!0),Ct.forEach(function(Nt){return Nt()}),qe=Ee,sn(!1),an(),hn(),Ct=Bt(it),it.setProps({triggerTarget:$e})},Ct=Bt(it),it},Lt={mouseover:"mouseenter",focusin:"focus",click:"click"};function kt(fe,ye){ie(!(ye&&ye.target),["You must specity a `target` prop indicating a CSS selector string matching","the target elements that should receive a tippy."].join(" "));var Re=[],ke=[],qe=!1,Ge=ye.target,$e=g(ye,["target"]),ht=Object.assign({},$e,{trigger:"manual",touch:!1}),pt=Object.assign({touch:ve.touch},$e,{showOnCreate:!0}),Ct=We(fe,ht),Pt=S(Ct);function hn(Rt){if(!(!Rt.target||qe)){var it=Rt.target.closest(Ge);if(!!it){var Yt=it.getAttribute("data-tippy-trigger")||ye.trigger||ve.trigger;if(!it._tippy&&!(Rt.type==="touchstart"&&typeof pt.touch=="boolean")&&!(Rt.type!=="touchstart"&&Yt.indexOf(Lt[Rt.type])<0)){var cn=We(it,pt);cn&&(ke=ke.concat(cn))}}}}function an(Rt,it,Yt,cn){cn===void 0&&(cn=!1),Rt.addEventListener(it,Yt,cn),Re.push({node:Rt,eventType:it,handler:Yt,options:cn})}function sn(Rt){var it=Rt.reference;an(it,"touchstart",hn,a),an(it,"mouseover",hn),an(it,"focusin",hn),an(it,"click",hn)}function Bt(){Re.forEach(function(Rt){var it=Rt.node,Yt=Rt.eventType,cn=Rt.handler,Ee=Rt.options;it.removeEventListener(Yt,cn,Ee)}),Re=[]}function Mt(Rt){var it=Rt.destroy,Yt=Rt.enable,cn=Rt.disable;Rt.destroy=function(Ee){Ee===void 0&&(Ee=!0),Ee&&ke.forEach(function(Nt){Nt.destroy()}),ke=[],Bt(),it()},Rt.enable=function(){Yt(),ke.forEach(function(Ee){return Ee.enable()}),qe=!1},Rt.disable=function(){cn(),ke.forEach(function(Ee){return Ee.disable()}),qe=!0},sn(Rt)}return Pt.forEach(Mt),Ct}var At={name:"animateFill",defaultValue:!1,fn:function(ye){var Re;if(!((Re=ye.props.render)!=null&&Re.$$tippy))return ie(ye.props.animateFill,"The `animateFill` plugin requires the default render function."),{};var ke=Gt(ye.popper),qe=ke.box,Ge=ke.content,$e=ye.props.animateFill?ne():null;return{onCreate:function(){$e&&(qe.insertBefore($e,qe.firstElementChild),qe.setAttribute("data-animatefill",""),qe.style.overflow="hidden",ye.setProps({arrow:!1,animation:"shift-away"}))},onMount:function(){if($e){var pt=qe.style.transitionDuration,Ct=Number(pt.replace("ms",""));Ge.style.transitionDelay=Math.round(Ct/10)+"ms",$e.style.transitionDuration=pt,K([$e],"visible")}},onShow:function(){$e&&($e.style.transitionDuration="0ms")},onHide:function(){$e&&K([$e],"hidden")}}}};function ne(){var fe=b();return fe.className=t,K([fe],"hidden"),fe}var Te={clientX:0,clientY:0},xe=[];function ze(fe){var ye=fe.clientX,Re=fe.clientY;Te={clientX:ye,clientY:Re}}function rt(fe){fe.addEventListener("mousemove",ze)}function et(fe){fe.removeEventListener("mousemove",ze)}var It={name:"followCursor",defaultValue:!1,fn:function(ye){var Re=ye.reference,ke=V(ye.props.triggerTarget||Re),qe=!1,Ge=!1,$e=!0,ht=ye.props;function pt(){return ye.props.followCursor==="initial"&&ye.state.isVisible}function Ct(){ke.addEventListener("mousemove",an)}function Pt(){ke.removeEventListener("mousemove",an)}function hn(){qe=!0,ye.setProps({getReferenceClientRect:null}),qe=!1}function an(Mt){var Rt=Mt.target?Re.contains(Mt.target):!0,it=ye.props.followCursor,Yt=Mt.clientX,cn=Mt.clientY,Ee=Re.getBoundingClientRect(),Nt=Yt-Ee.left,ct=cn-Ee.top;(Rt||!ye.props.interactive)&&ye.setProps({getReferenceClientRect:function(){var ae=Re.getBoundingClientRect(),re=Yt,ge=cn;it==="initial"&&(re=ae.left+Nt,ge=ae.top+ct);var Me=it==="horizontal"?ae.top:ge,Pe=it==="vertical"?ae.right:re,Ue=it==="horizontal"?ae.bottom:ge,Xe=it==="vertical"?ae.left:re;return{width:Pe-Xe,height:Ue-Me,top:Me,right:Pe,bottom:Ue,left:Xe}}})}function sn(){ye.props.followCursor&&(xe.push({instance:ye,doc:ke}),rt(ke))}function Bt(){xe=xe.filter(function(Mt){return Mt.instance!==ye}),xe.filter(function(Mt){return Mt.doc===ke}).length===0&&et(ke)}return{onCreate:sn,onDestroy:Bt,onBeforeUpdate:function(){ht=ye.props},onAfterUpdate:function(Rt,it){var Yt=it.followCursor;qe||Yt!==void 0&&ht.followCursor!==Yt&&(Bt(),Yt?(sn(),ye.state.isMounted&&!Ge&&!pt()&&Ct()):(Pt(),hn()))},onMount:function(){ye.props.followCursor&&!Ge&&($e&&(an(Te),$e=!1),pt()||Ct())},onTrigger:function(Rt,it){P(it)&&(Te={clientX:it.clientX,clientY:it.clientY}),Ge=it.type==="focus"||it.type==="focusin"},onHidden:function(){ye.props.followCursor&&(hn(),Pt(),$e=!0)}}}};function Vt(fe,ye){var Re;return{popperOptions:Object.assign({},fe.popperOptions,{modifiers:[].concat((((Re=fe.popperOptions)==null?void 0:Re.modifiers)||[]).filter(function(ke){var qe=ke.name;return qe!==ye.name}),[ye])})}}var wn={name:"inlinePositioning",defaultValue:!1,fn:function(ye){var Re=ye.reference;function ke(){return!!ye.props.inlinePositioning}var qe,Ge=-1,$e=!1,ht=[],pt={name:"tippyInlinePositioning",enabled:!0,phase:"afterWrite",fn:function(sn){var Bt=sn.state;ke()&&(ht.indexOf(Bt.placement)!==-1&&(ht=[]),qe!==Bt.placement&&ht.indexOf(Bt.placement)===-1&&(ht.push(Bt.placement),ye.setProps({getReferenceClientRect:function(){return Ct(Bt.placement)}})),qe=Bt.placement)}};function Ct(an){return Jn(R(an),Re.getBoundingClientRect(),O(Re.getClientRects()),Ge)}function Pt(an){$e=!0,ye.setProps(an),$e=!1}function hn(){$e||Pt(Vt(ye.props,pt))}return{onCreate:hn,onAfterUpdate:hn,onTrigger:function(sn,Bt){if(P(Bt)){var Mt=O(ye.reference.getClientRects()),Rt=Mt.find(function(Yt){return Yt.left-2<=Bt.clientX&&Yt.right+2>=Bt.clientX&&Yt.top-2<=Bt.clientY&&Yt.bottom+2>=Bt.clientY}),it=Mt.indexOf(Rt);Ge=it>-1?it:Ge}},onHidden:function(){Ge=-1}}}};function Jn(fe,ye,Re,ke){if(Re.length<2||fe===null)return ye;if(Re.length===2&&ke>=0&&Re[0].left>Re[1].right)return Re[ke]||ye;switch(fe){case"top":case"bottom":{var qe=Re[0],Ge=Re[Re.length-1],$e=fe==="top",ht=qe.top,pt=Ge.bottom,Ct=$e?qe.left:Ge.left,Pt=$e?qe.right:Ge.right,hn=Pt-Ct,an=pt-ht;return{top:ht,bottom:pt,left:Ct,right:Pt,width:hn,height:an}}case"left":case"right":{var sn=Math.min.apply(Math,Re.map(function(ct){return ct.left})),Bt=Math.max.apply(Math,Re.map(function(ct){return ct.right})),Mt=Re.filter(function(ct){return fe==="left"?ct.left===sn:ct.right===Bt}),Rt=Mt[0].top,it=Mt[Mt.length-1].bottom,Yt=sn,cn=Bt,Ee=cn-Yt,Nt=it-Rt;return{top:Rt,bottom:it,left:Yt,right:cn,width:Ee,height:Nt}}default:return ye}}var zn={name:"sticky",defaultValue:!1,fn:function(ye){var Re=ye.reference,ke=ye.popper;function qe(){return ye.popperInstance?ye.popperInstance.state.elements.reference:Re}function Ge(Ct){return ye.props.sticky===!0||ye.props.sticky===Ct}var $e=null,ht=null;function pt(){var Ct=Ge("reference")?qe().getBoundingClientRect():null,Pt=Ge("popper")?ke.getBoundingClientRect():null;(Ct&&nr($e,Ct)||Pt&&nr(ht,Pt))&&ye.popperInstance&&ye.popperInstance.update(),$e=Ct,ht=Pt,ye.state.isMounted&&requestAnimationFrame(pt)}return{onMount:function(){ye.props.sticky&&pt()}}}};function nr(fe,ye){return fe&&ye?fe.top!==ye.top||fe.right!==ye.right||fe.bottom!==ye.bottom||fe.left!==ye.left:!0}return _&&D(E),We.setDefaultProps({plugins:[At,It,wn,zn],render:un}),We.createSingleton=bt,We.delegate=kt,We.hideAll=ot,We.roundArrow=l,We})},function(C,x,u){var A,E;A=[x],E=u.dj.d(A,function(D){"use strict";function _(ae){var re=ae.getBoundingClientRect();return{width:re.width,height:re.height,top:re.top,right:re.right,bottom:re.bottom,left:re.left,x:re.left,y:re.top}}function v(ae){if(ae==null)return window;if(ae.toString()!=="[object Window]"){var re=ae.ownerDocument;return re&&re.defaultView||window}return ae}function l(ae){var re=v(ae),ge=re.pageXOffset,Me=re.pageYOffset;return{scrollLeft:ge,scrollTop:Me}}function n(ae){var re=v(ae).Element;return ae instanceof re||ae instanceof Element}function e(ae){var re=v(ae).HTMLElement;return ae instanceof re||ae instanceof HTMLElement}function t(ae){if(typeof ShadowRoot=="undefined")return!1;var re=v(ae).ShadowRoot;return ae instanceof re||ae instanceof ShadowRoot}function r(ae){return{scrollLeft:ae.scrollLeft,scrollTop:ae.scrollTop}}function i(ae){return ae===v(ae)||!e(ae)?l(ae):r(ae)}function a(ae){return ae?(ae.nodeName||"").toLowerCase():null}function s(ae){return((n(ae)?ae.ownerDocument:ae.document)||window.document).documentElement}function c(ae){return _(s(ae)).left+l(ae).scrollLeft}function o(ae){return v(ae).getComputedStyle(ae)}function d(ae){var re=o(ae),ge=re.overflow,Me=re.overflowX,Pe=re.overflowY;return/auto|scroll|overlay|hidden/.test(ge+Pe+Me)}function f(ae,re,ge){ge===void 0&&(ge=!1);var Me=s(re),Pe=_(ae),Ue=e(re),Xe={scrollLeft:0,scrollTop:0},je={x:0,y:0};return(Ue||!Ue&&!ge)&&((a(re)!=="body"||d(Me))&&(Xe=i(re)),e(re)?(je=_(re),je.x+=re.clientLeft,je.y+=re.clientTop):Me&&(je.x=c(Me))),{x:Pe.left+Xe.scrollLeft-je.x,y:Pe.top+Xe.scrollTop-je.y,width:Pe.width,height:Pe.height}}function h(ae){var re=_(ae),ge=ae.offsetWidth,Me=ae.offsetHeight;return Math.abs(re.width-ge)<=1&&(ge=re.width),Math.abs(re.height-Me)<=1&&(Me=re.height),{x:ae.offsetLeft,y:ae.offsetTop,width:ge,height:Me}}function g(ae){return a(ae)==="html"?ae:ae.assignedSlot||ae.parentNode||(t(ae)?ae.host:null)||s(ae)}function m(ae){return["html","body","#document"].indexOf(a(ae))>=0?ae.ownerDocument.body:e(ae)&&d(ae)?ae:m(g(ae))}function S(ae,re){var ge;re===void 0&&(re=[]);var Me=m(ae),Pe=Me===((ge=ae.ownerDocument)==null?void 0:ge.body),Ue=v(Me),Xe=Pe?[Ue].concat(Ue.visualViewport||[],d(Me)?Me:[]):Me,je=re.concat(Xe);return Pe?je:je.concat(S(g(Xe)))}function T(ae){return["table","td","th"].indexOf(a(ae))>=0}function w(ae){return!e(ae)||o(ae).position==="fixed"?null:ae.offsetParent}function R(ae){for(var re=navigator.userAgent.toLowerCase().includes("firefox"),ge=g(ae);e(ge)&&["html","body"].indexOf(a(ge))<0;){var Me=o(ge);if(Me.transform!=="none"||Me.perspective!=="none"||Me.contain==="paint"||["transform","perspective"].includes(Me.willChange)||re&&Me.willChange==="filter"||re&&Me.filter&&Me.filter!=="none")return ge;ge=ge.parentNode}return null}function O(ae){for(var re=v(ae),ge=w(ae);ge&&T(ge)&&o(ge).position==="static";)ge=w(ge);return ge&&(a(ge)==="html"||a(ge)==="body"&&o(ge).position==="static")?re:ge||R(ae)||re}var F="top",b="bottom",I="right",N="left",P="auto",L=[F,b,I,N],k="start",W="end",K="clippingParents",V="viewport",G="popper",j="reference",Y=L.reduce(function(ae,re){return ae.concat([re+"-"+k,re+"-"+W])},[]),z=[].concat(L,[P]).reduce(function(ae,re){return ae.concat([re,re+"-"+k,re+"-"+W])},[]),Q="beforeRead",X="read",J="afterRead",$="beforeMain",q="main",te="afterMain",oe="beforeWrite",le="write",de="afterWrite",De=[Q,X,J,$,q,te,oe,le,de];function Se(ae){var re=new Map,ge=new Set,Me=[];ae.forEach(function(Ue){re.set(Ue.name,Ue)});function Pe(Ue){ge.add(Ue.name);var Xe=[].concat(Ue.requires||[],Ue.requiresIfExists||[]);Xe.forEach(function(je){if(!ge.has(je)){var at=re.get(je);at&&Pe(at)}}),Me.push(Ue)}return ae.forEach(function(Ue){ge.has(Ue.name)||Pe(Ue)}),Me}function pe(ae){var re=Se(ae);return De.reduce(function(ge,Me){return ge.concat(re.filter(function(Pe){return Pe.phase===Me}))},[])}function ie(ae){var re;return function(){return re||(re=new Promise(function(ge){Promise.resolve().then(function(){re=void 0,ge(ae())})})),re}}function ee(ae){return ae.split("-")[0]}function me(ae){var re=ae.reduce(function(ge,Me){var Pe=ge[Me.name];return ge[Me.name]=Pe?Object.assign({},Pe,Me,{options:Object.assign({},Pe.options,Me.options),data:Object.assign({},Pe.data,Me.data)}):Me,ge},{});return Object.keys(re).map(function(ge){return re[ge]})}function ce(ae){var re=v(ae),ge=s(ae),Me=re.visualViewport,Pe=ge.clientWidth,Ue=ge.clientHeight,Xe=0,je=0;return Me&&(Pe=Me.width,Ue=Me.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(Xe=Me.offsetLeft,je=Me.offsetTop)),{width:Pe,height:Ue,x:Xe+c(ae),y:je}}var ve=Math.max,Oe=Math.min,Ye=Math.round;function nt(ae){var re,ge=s(ae),Me=l(ae),Pe=(re=ae.ownerDocument)==null?void 0:re.body,Ue=ve(ge.scrollWidth,ge.clientWidth,Pe?Pe.scrollWidth:0,Pe?Pe.clientWidth:0),Xe=ve(ge.scrollHeight,ge.clientHeight,Pe?Pe.scrollHeight:0,Pe?Pe.clientHeight:0),je=-Me.scrollLeft+c(ae),at=-Me.scrollTop;return o(Pe||ge).direction==="rtl"&&(je+=ve(ge.clientWidth,Pe?Pe.clientWidth:0)-Ue),{width:Ue,height:Xe,x:je,y:at}}function Dt(ae,re){var ge=re.getRootNode&&re.getRootNode();if(ae.contains(re))return!0;if(ge&&t(ge)){var Me=re;do{if(Me&&ae.isSameNode(Me))return!0;Me=Me.parentNode||Me.host}while(Me)}return!1}function wt(ae){return Object.assign({},ae,{left:ae.x,top:ae.y,right:ae.x+ae.width,bottom:ae.y+ae.height})}function Ft(ae){var re=_(ae);return re.top=re.top+ae.clientTop,re.left=re.left+ae.clientLeft,re.bottom=re.top+ae.clientHeight,re.right=re.left+ae.clientWidth,re.width=ae.clientWidth,re.height=ae.clientHeight,re.x=re.left,re.y=re.top,re}function St(ae,re){return re===V?wt(ce(ae)):e(re)?Ft(re):wt(nt(s(ae)))}function xt(ae){var re=S(g(ae)),ge=["absolute","fixed"].indexOf(o(ae).position)>=0,Me=ge&&e(ae)?O(ae):ae;return n(Me)?re.filter(function(Pe){return n(Pe)&&Dt(Pe,Me)&&a(Pe)!=="body"}):[]}function zt(ae,re,ge){var Me=re==="clippingParents"?xt(ae):[].concat(re),Pe=[].concat(Me,[ge]),Ue=Pe[0],Xe=Pe.reduce(function(je,at){var gt=St(ae,at);return je.top=ve(gt.top,je.top),je.right=Oe(gt.right,je.right),je.bottom=Oe(gt.bottom,je.bottom),je.left=ve(gt.left,je.left),je},St(ae,Ue));return Xe.width=Xe.right-Xe.left,Xe.height=Xe.bottom-Xe.top,Xe.x=Xe.left,Xe.y=Xe.top,Xe}function tn(ae){return ae.split("-")[1]}function Gt(ae){return["top","bottom"].indexOf(ae)>=0?"x":"y"}function un(ae){var re=ae.reference,ge=ae.element,Me=ae.placement,Pe=Me?ee(Me):null,Ue=Me?tn(Me):null,Xe=re.x+re.width/2-ge.width/2,je=re.y+re.height/2-ge.height/2,at;switch(Pe){case F:at={x:Xe,y:re.y-ge.height};break;case b:at={x:Xe,y:re.y+re.height};break;case I:at={x:re.x+re.width,y:je};break;case N:at={x:re.x-ge.width,y:je};break;default:at={x:re.x,y:re.y}}var gt=Pe?Gt(Pe):null;if(gt!=null){var Qe=gt==="y"?"height":"width";switch(Ue){case k:at[gt]=at[gt]-(re[Qe]/2-ge[Qe]/2);break;case W:at[gt]=at[gt]+(re[Qe]/2-ge[Qe]/2);break}}return at}function pn(){return{top:0,right:0,bottom:0,left:0}}function Ln(ae){return Object.assign({},pn(),ae)}function ue(ae,re){return re.reduce(function(ge,Me){return ge[Me]=ae,ge},{})}function Ie(ae,re){re===void 0&&(re={});var ge=re,Me=ge.placement,Pe=Me===void 0?ae.placement:Me,Ue=ge.boundary,Xe=Ue===void 0?K:Ue,je=ge.rootBoundary,at=je===void 0?V:je,gt=ge.elementContext,Qe=gt===void 0?G:gt,Jt=ge.altBoundary,$t=Jt===void 0?!1:Jt,Wt=ge.padding,Ht=Wt===void 0?0:Wt,Zt=Ln(typeof Ht!="number"?Ht:ue(Ht,L)),Kt=Qe===G?j:G,Xt=ae.elements.reference,nn=ae.rects.popper,rn=ae.elements[$t?Kt:Qe],Ce=zt(n(rn)?rn:rn.contextElement||s(ae.elements.popper),Xe,at),Be=_(Xt),Ve=un({reference:Be,element:nn,strategy:"absolute",placement:Pe}),Je=wt(Object.assign({},nn,Ve)),lt=Qe===G?Je:Be,mt={top:Ce.top-lt.top+Zt.top,bottom:lt.bottom-Ce.bottom+Zt.bottom,left:Ce.left-lt.left+Zt.left,right:lt.right-Ce.right+Zt.right},dn=ae.modifiersData.offset;if(Qe===G&&dn){var Ot=dn[Pe];Object.keys(mt).forEach(function(bn){var An=[I,b].indexOf(bn)>=0?1:-1,Sn=[F,b].indexOf(bn)>=0?"y":"x";mt[bn]+=Ot[Sn]*An})}return mt}var We={placement:"bottom",modifiers:[],strategy:"absolute"};function ot(){for(var ae=arguments.length,re=new Array(ae),ge=0;ge=0?-1:1,Ue=typeof ge=="function"?ge(Object.assign({},re,{placement:ae})):ge,Xe=Ue[0],je=Ue[1];return Xe=Xe||0,je=(je||0)*Pe,[N,I].indexOf(Me)>=0?{x:je,y:Xe}:{x:Xe,y:je}}function zn(ae){var re=ae.state,ge=ae.options,Me=ae.name,Pe=ge.offset,Ue=Pe===void 0?[0,0]:Pe,Xe=z.reduce(function(Qe,Jt){return Qe[Jt]=Jn(Jt,re.rects,Ue),Qe},{}),je=Xe[re.placement],at=je.x,gt=je.y;re.modifiersData.popperOffsets!=null&&(re.modifiersData.popperOffsets.x+=at,re.modifiersData.popperOffsets.y+=gt),re.modifiersData[Me]=Xe}var nr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:zn},fe={left:"right",right:"left",bottom:"top",top:"bottom"};function ye(ae){return ae.replace(/left|right|bottom|top/g,function(re){return fe[re]})}var Re={start:"end",end:"start"};function ke(ae){return ae.replace(/start|end/g,function(re){return Re[re]})}function qe(ae,re){re===void 0&&(re={});var ge=re,Me=ge.placement,Pe=ge.boundary,Ue=ge.rootBoundary,Xe=ge.padding,je=ge.flipVariations,at=ge.allowedAutoPlacements,gt=at===void 0?z:at,Qe=tn(Me),Jt=Qe?je?Y:Y.filter(function(Ht){return tn(Ht)===Qe}):L,$t=Jt.filter(function(Ht){return gt.indexOf(Ht)>=0});$t.length===0&&($t=Jt);var Wt=$t.reduce(function(Ht,Zt){return Ht[Zt]=Ie(ae,{placement:Zt,boundary:Pe,rootBoundary:Ue,padding:Xe})[ee(Zt)],Ht},{});return Object.keys(Wt).sort(function(Ht,Zt){return Wt[Ht]-Wt[Zt]})}function Ge(ae){if(ee(ae)===P)return[];var re=ye(ae);return[ke(ae),re,ke(re)]}function $e(ae){var re=ae.state,ge=ae.options,Me=ae.name;if(!re.modifiersData[Me]._skip){for(var Pe=ge.mainAxis,Ue=Pe===void 0?!0:Pe,Xe=ge.altAxis,je=Xe===void 0?!0:Xe,at=ge.fallbackPlacements,gt=ge.padding,Qe=ge.boundary,Jt=ge.rootBoundary,$t=ge.altBoundary,Wt=ge.flipVariations,Ht=Wt===void 0?!0:Wt,Zt=ge.allowedAutoPlacements,Kt=re.options.placement,Xt=ee(Kt),nn=Xt===Kt,rn=at||(nn||!Ht?[ye(Kt)]:Ge(Kt)),Ce=[Kt].concat(rn).reduce(function(kn,On){return kn.concat(ee(On)===P?qe(re,{placement:On,boundary:Qe,rootBoundary:Jt,padding:gt,flipVariations:Ht,allowedAutoPlacements:Zt}):On)},[]),Be=re.rects.reference,Ve=re.rects.popper,Je=new Map,lt=!0,mt=Ce[0],dn=0;dn=0,Fn=Sn?"width":"height",rr=Ie(re,{placement:Ot,boundary:Qe,rootBoundary:Jt,altBoundary:$t,padding:gt}),fn=Sn?An?I:N:An?b:F;Be[Fn]>Ve[Fn]&&(fn=ye(fn));var yn=ye(fn),vn=[];if(Ue&&vn.push(rr[bn]<=0),je&&vn.push(rr[fn]<=0,rr[yn]<=0),vn.every(function(kn){return kn})){mt=Ot,lt=!1;break}Je.set(Ot,vn)}if(lt)for(var ir=Ht?3:1,_r=function(On){var Rr=Ce.find(function(Ur){var dr=Je.get(Ur);if(dr)return dr.slice(0,On).every(function(vr){return vr})});if(Rr)return mt=Rr,"break"},ar=ir;ar>0;ar--){var cr=_r(ar);if(cr==="break")break}re.placement!==mt&&(re.modifiersData[Me]._skip=!0,re.placement=mt,re.reset=!0)}}var ht={name:"flip",enabled:!0,phase:"main",fn:$e,requiresIfExists:["offset"],data:{_skip:!1}};function pt(ae){return ae==="x"?"y":"x"}function Ct(ae,re,ge){return ve(ae,Oe(re,ge))}function Pt(ae){var re=ae.state,ge=ae.options,Me=ae.name,Pe=ge.mainAxis,Ue=Pe===void 0?!0:Pe,Xe=ge.altAxis,je=Xe===void 0?!1:Xe,at=ge.boundary,gt=ge.rootBoundary,Qe=ge.altBoundary,Jt=ge.padding,$t=ge.tether,Wt=$t===void 0?!0:$t,Ht=ge.tetherOffset,Zt=Ht===void 0?0:Ht,Kt=Ie(re,{boundary:at,rootBoundary:gt,padding:Jt,altBoundary:Qe}),Xt=ee(re.placement),nn=tn(re.placement),rn=!nn,Ce=Gt(Xt),Be=pt(Ce),Ve=re.modifiersData.popperOffsets,Je=re.rects.reference,lt=re.rects.popper,mt=typeof Zt=="function"?Zt(Object.assign({},re.rects,{placement:re.placement})):Zt,dn={x:0,y:0};if(!!Ve){if(Ue||je){var Ot=Ce==="y"?F:N,bn=Ce==="y"?b:I,An=Ce==="y"?"height":"width",Sn=Ve[Ce],Fn=Ve[Ce]+Kt[Ot],rr=Ve[Ce]-Kt[bn],fn=Wt?-lt[An]/2:0,yn=nn===k?Je[An]:lt[An],vn=nn===k?-lt[An]:-Je[An],ir=re.elements.arrow,_r=Wt&&ir?h(ir):{width:0,height:0},ar=re.modifiersData["arrow#persistent"]?re.modifiersData["arrow#persistent"].padding:pn(),cr=ar[Ot],kn=ar[bn],On=Ct(0,Je[An],_r[An]),Rr=rn?Je[An]/2-fn-On-cr-mt:yn-On-cr-mt,Ur=rn?-Je[An]/2+fn+On+kn+mt:vn+On+kn+mt,dr=re.elements.arrow&&O(re.elements.arrow),vr=dr?Ce==="y"?dr.clientTop||0:dr.clientLeft||0:0,Ne=re.modifiersData.offset?re.modifiersData.offset[re.placement][Ce]:0,Ze=Ve[Ce]+Rr-Ne-vr,yt=Ve[Ce]+Ur-Ne;if(Ue){var Ut=Ct(Wt?Oe(Fn,Ze):Fn,Sn,Wt?ve(rr,yt):rr);Ve[Ce]=Ut,dn[Ce]=Ut-Sn}if(je){var jt=Ce==="x"?F:N,gn=Ce==="x"?b:I,ln=Ve[Be],fr=ln+Kt[jt],Vr=ln-Kt[gn],In=Ct(Wt?Oe(fr,Ze):fr,ln,Wt?ve(Vr,yt):Vr);Ve[Be]=In,dn[Be]=In-ln}}re.modifiersData[Me]=dn}}var hn={name:"preventOverflow",enabled:!0,phase:"main",fn:Pt,requiresIfExists:["offset"]},an=function(re,ge){return re=typeof re=="function"?re(Object.assign({},ge.rects,{placement:ge.placement})):re,Ln(typeof re!="number"?re:ue(re,L))};function sn(ae){var re,ge=ae.state,Me=ae.name,Pe=ae.options,Ue=ge.elements.arrow,Xe=ge.modifiersData.popperOffsets,je=ee(ge.placement),at=Gt(je),gt=[N,I].indexOf(je)>=0,Qe=gt?"height":"width";if(!(!Ue||!Xe)){var Jt=an(Pe.padding,ge),$t=h(Ue),Wt=at==="y"?F:N,Ht=at==="y"?b:I,Zt=ge.rects.reference[Qe]+ge.rects.reference[at]-Xe[at]-ge.rects.popper[Qe],Kt=Xe[at]-ge.rects.reference[at],Xt=O(Ue),nn=Xt?at==="y"?Xt.clientHeight||0:Xt.clientWidth||0:0,rn=Zt/2-Kt/2,Ce=Jt[Wt],Be=nn-$t[Qe]-Jt[Ht],Ve=nn/2-$t[Qe]/2+rn,Je=Ct(Ce,Ve,Be),lt=at;ge.modifiersData[Me]=(re={},re[lt]=Je,re.centerOffset=Je-Ve,re)}}function Bt(ae){var re=ae.state,ge=ae.options,Me=ge.element,Pe=Me===void 0?"[data-popper-arrow]":Me;Pe!=null&&(typeof Pe=="string"&&(Pe=re.elements.popper.querySelector(Pe),!Pe)||!Dt(re.elements.popper,Pe)||(re.elements.arrow=Pe))}var Mt={name:"arrow",enabled:!0,phase:"main",fn:sn,effect:Bt,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Rt(ae,re,ge){return ge===void 0&&(ge={x:0,y:0}),{top:ae.top-re.height-ge.y,right:ae.right-re.width+ge.x,bottom:ae.bottom-re.height+ge.y,left:ae.left-re.width-ge.x}}function it(ae){return[F,I,b,N].some(function(re){return ae[re]>=0})}function Yt(ae){var re=ae.state,ge=ae.name,Me=re.rects.reference,Pe=re.rects.popper,Ue=re.modifiersData.preventOverflow,Xe=Ie(re,{elementContext:"reference"}),je=Ie(re,{altBoundary:!0}),at=Rt(Xe,Me),gt=Rt(je,Pe,Ue),Qe=it(at),Jt=it(gt);re.modifiersData[ge]={referenceClippingOffsets:at,popperEscapeOffsets:gt,isReferenceHidden:Qe,hasPopperEscaped:Jt},re.attributes.popper=Object.assign({},re.attributes.popper,{"data-popper-reference-hidden":Qe,"data-popper-escaped":Jt})}var cn={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Yt},Ee=[kt,ne,et,wn],Nt=ut({defaultModifiers:Ee}),ct=[kt,ne,et,wn,nr,ht,hn,Mt,cn],mn=ut({defaultModifiers:ct});D.applyStyles=wn,D.arrow=Mt,D.computeStyles=et,D.createPopper=mn,D.createPopperLite=Nt,D.defaultModifiers=ct,D.detectOverflow=Ie,D.eventListeners=kt,D.flip=ht,D.hide=cn,D.offset=nr,D.popperGenerator=ut,D.popperOffsets=ne,D.preventOverflow=hn,Object.defineProperty(D,"__esModule",{value:!0})},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function l(n,e){var t=[],r=!0,i=!1,a=void 0;try{for(var s=n[Symbol.iterator](),c;!(r=(c=s.next()).done)&&(t.push(c.value),!(e&&t.length===e));r=!0);}catch(o){i=!0,a=o}finally{try{!r&&s.return&&s.return()}finally{if(i)throw a}}return t}return function(n,e){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return l(n,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_=function(){function l(n,e){for(var t=0;t2&&arguments[2]!==void 0?arguments[2]:[];d.forEach(function(m){var S=void 0;typeof m.adaptor=="string"&&(S=i.EXPERIMENTAL_ADAPTORS[m.adaptor]);try{var T=void 0,w=S||m.adaptor,R=g.indexOf(w);R<0?(T=new w({viewModel:h._viewModel,dataStore:h._dataStore,viewPortList:h.viewPortList,tableView:h,options:f}),g.push(T),h.registry.push([new m({adaptor:T}),T])):(T=g[R],h.registry.push([new m({adaptor:T}),T])),h._adaptorList.register(T.eventList())}catch(O){}})}},{key:"initializeTable",value:function(){this._lifecycle=new a(this._viewModel,this._adaptorList,this.viewPortList)}},{key:"renderTable",value:function(){this._table=this._lifecycle.mount(),this.throttledResize=e(this._table._handleResize,1e3/60)}},{key:"removeTable",value:function(){this.throttledResize&&this.throttledResize.cancel(),this._lifecycle.unmount(),this._viewModel.destroy(),this._table=null,this._adaptorList=null,this.viewPortList=null,this.registry=null,this._lifecycle=null,this._dataStore=null,this._viewModel=null}},{key:"focus",value:function(){this._table.focus()}},{key:"domNode",get:function(){return this._lifecycle.domNode}}]),c}();return s},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;es&&(c=f,s=h)}});var o=100-a;return o<0&&(c=-1),[o,c]}},{key:"separateControllers",value:function(i,a){var s=[],c=[];return a.CONTROLLERS.forEach(function(o){var d=0;o.forEach(function(f){var h=i.indexOf(f);h>-1&&(d++<1&&s.push(f),c.push(h))})}),c.sort(function(o,d){return d-o}).forEach(function(o){i.splice(o,1)}),[s,i]}},{key:"prunePlugins",value:function(i,a){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},c=[];if(a.INCOMPATIBLE.forEach(function(d){var f=0;d.forEach(function(h,g){var m=i.indexOf(h);m>-1&&f++>0&&c.push(m)})}),c.forEach(function(d){i.splice(d,1)}),s.selectionConfig&&s.selectionConfig.selectionById){var o=i.indexOf(a.AVAILABLE.SingleRowSelection[0]);if(o>-1&&(i[o]=a.INTERNAL.SingleRowSelectionById[0]),o=i.indexOf(a.AVAILABLE.MultiRowSelection[0]),o>-1&&(i[o]=a.INTERNAL.MultiRowSelectionById[0]),o=i.indexOf(a.AVAILABLE.CellSelection[0]),o>-1)throw new Error("ID based Cell selection is not supported yet !")}return i}}]),t}();return e},C,x),C.exports=E},function(C,x,u){var A,E;A=[],E=u.dj.d(A,function(){var D=Object.freeze({error:{INVALID_UNIT:new Error("Invalid column width unit specified, only 'px' or '%' allowed"),DATA_INDEX_REQUIRED:new Error("The dataIndex property is required in the column configuration")}});return D},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;en.buffers.UNPAGED_COL_LIMIT&&(this._allColumnsRendered=!1),this._setHeaders();var P=this._tableWidth(this._size.COL_WIDTH),L={headers:this._props.headers,allColumnsRendered:this._allColumnsRendered},k=c.getPercentColumnPageWidth(L);this._props.width=k||P(S.columns.count),this._props.columnClass=c.getTbodyHeaderClass(this._allColumnsRendered),this._props.tableClass=c.getTableHeaderClass(this._allColumnsRendered);var W=g.getStateByKey(e.protected.UPDATE_CUSTOM_PROPS_FUNC);W&&W.value(g,h,this._props),this._checkPendingFunctionForView(g,m),this._props.spanningColumnHeaders=g.getSpanningHeaders(),this._props.groupedColumnHeaders=g.getStateByKey(e.protected.GROUPED_COLUMN_HEADERS).value,this._props.spanningColumnHeaders||(this._props.spanningColumnHeaders=this._mixSpanningColumnHeaders(h.columnSpanningMetaData));var K=this._props.spanningColumnHeaders?Object.keys(this._props.spanningColumnHeaders).length!==0:!1;return this._props.collapseColumn&&(this._props.groupedColumnHeaders||K)&&(this._props.collapseColumn=!1),this._props.widgetType===e.protected.TYPE.TREETABLE&&this._setTreeColumnWidth(),this._props.displayColumnIndex=g.getStateByKey(e.DISPLAY_COLUMN_INDEX)?g.getStateByKey(e.DISPLAY_COLUMN_INDEX).value:!1,this._props.displayColumnLabel=g.getStateByKey(e.DISPLAY_COLUMN_LABEL)?g.getStateByKey(e.DISPLAY_COLUMN_LABEL).value:!0,this._props.displayColumnIndexOnly=this._props.displayColumnIndex&&!this._props.displayColumnLabel,this._props.hideColumnHeader=g.getStateByKey(e.HIDE_COLUMN_HEADER)?g.getStateByKey(e.HIDE_COLUMN_HEADER).value:!1,!this._props.groupedColumnHeaders&&K&&(this._props.displayColumnIndexOnly=!1,this._props.displayColumnIndex=!1),this._props}},{key:"_checkPendingFunctionForView",value:function(h,g){var m=h.getStateByKey(e.protected.PENDING_FOCUS_FUNC);!m||this._helper.isRangeInside(g,m.rangeList[0])&&(m.value(m.rangeList[0]),h.deleteState(e.protected.PENDING_FOCUS_FUNC))}},{key:"setDisabledState",value:function(){var h=this._viewModel;this._props.isTableDisabled=function(){return h.getStateByKey(e.TABLE_DISABLED)?h.getStateByKey(e.TABLE_DISABLED).value:!1}}},{key:"_mixSpanningColumnHeaders",value:function(h){var g={};return h[0].forEach(function(m){m.forEach(function(S){if(S){var T=Object.keys(S.value);T.forEach(function(w){g[w]=S.value[w]})}})}),g}},{key:"_getParsedHeader",value:function(h,g){var m=this._props,S=m.logicalColWidth,T=m.lastDataColumn,w=m.fitLastColumn,R=m.collapseColumn,O=m.treeColumnIndex,F=S,b="px",I={width:F,unit:b};if(g.label===null&&(g.label=h+1),g&&r.isObject(g)){g.width||(g.width={}),I.width=Math.floor(g.width.value),I.unit=g.width.unit;var N=this._viewModel.getStateByKey(e.CAN_SCROLL_HORIZONTAL)?this._viewModel.getStateByKey(e.CAN_SCROLL_HORIZONTAL).value:void 0,P=T===h+1&&w&&!N;I.fillContainerWidth=P?"100%":void 0,g.fillContainerWidth=P}return g._index=h,h===O&&(g.reorder=!1),g.styleData=v.getTableHeaderStyle(I,this._allColumnsRendered,S,R),this.setHeaderSortState(g),g}},{key:"_setHeaders",value:function(){var h=this._props,g=h.colMetaData,m=h.startCol,S=h.endCol,T=this._viewModel,w=g||[function(){return{value:{}}}];T.deleteState("renderer"),T.deleteState("editor"),T.deleteState("interactiveRenderer");var R=[];this._props.sorted=[];for(var O=m;O<=S;O+=1){var F=w[0](O).value;R.push(this._getParsedHeader(O,F)),this._setColumnContent(w[0],O)}var b=T.getStateByKey("renderer")||{},I=T.getStateByKey("interactiveRenderer")||{},N=T.getStateByKey("editor")||{};this._props.getRenderer=r.curry(v.getContentFor)(b),this._props.getEditor=r.curry(v.getContentFor)(N),this._props.getInteractiveRenderer=r.curry(v.getContentFor)(I),this._props.setInteractiveRenderer=function(P,L,k){s.addMetadataToRange(P,P,L,L,T,"interactiveRenderer",k)},this._props.headers=R}},{key:"_setTreeColumnWidth",value:function(){var h=this,g=this._props.headers,m=!1,S=l.getTreeColumnIndex(this._viewModel);g.forEach(function(T){T._index===S.value&&(h._viewModel.setState(e.protected.TREE_COLUMN_INFO,{id:T.columnId,maxWidth:T.styleData.maxWidth}),m=!0)}),m||this._viewModel.setState(e.protected.TREE_COLUMN_INFO,{})}},{key:"getSortedState",value:function(h){return this._sorted[h]||{order:""}}},{key:"getValidationState",value:function(h){return h&&h.hasOwnProperty("value")?h.value:{error:!1}}},{key:"getNumberOfGutters",value:function(h){return h&&h.hasOwnProperty("value")?h.value:0}},{key:"getEditState",value:function(h){return h&&h.hasOwnProperty("value")?h.value:!1}},{key:"props",get:function(){return this._props}}]),d}();return o},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;ec&&(N=N-1);var P=l.cellInsideGroup(w.getAttribute("group-attr")),L=l.headerInsideGroup(w,R),k=P||L,W=l.columnDropValidation(c,I,o,k,T,O,F,b);return f({index:N,valid:W}),W}}},{key:"getColIndexFromTargetNode",value:function(c,o,d){var f=Number(o.getAttribute("data-col-index")),h=Number(o.getAttribute("data-col-index-end")),g=Number(o.getAttribute("data-col")),m=n.onTargetRight(d),S=g||f,T=g||h,w=m?i(T):void 0;return{targetIndex:S,rightTargetIndex:w}}},{key:"setDataByType",value:function(c,o){var d=v.NativeType.TEXT,f=o.columnDnDSourceData;f.data.dragSourceType&&(d=f.data.dragSourceType),c.setDataByType(d,f.data.value)}},{key:"isColumnDraggable",value:function(c){return c!==!1}},{key:"getDragDefaultType",value:function(c){return c===t.protected.TYPE.TREETABLE?e.TREETABLE_DEFAULT_TYPE:e.TABLE_DEFAULT_TYPE}}]),a}();return r;function i(a){return a+1}},C,x),C.exports=E},function(C,x,u){"use strict";var A,E,D=function(){function v(l,n){for(var e=0;ei.clientWidth,c=i.scrollHeight>i.clientHeight;if(!(!s&&!c)){var o=n(r,a),d=o.mouseLeftPosition,f=o.mouseTopPosition,h=e(f,d,i),g=h.distanceFromContainerBottom,m=h.distanceFromContainerTop,S=h.distanceFromContainerRight,T=h.distanceFromContainerLeft;c&&(g0?S:m.width,0):S},h=function(){function g(){_(this,g)}return D(g,null,[{key:"makeColumnHeaderGroup",value:function(S,T,w){var R=w.startCol,O=w.endCol,F=w.headers,b={start:R,end:O};if(b.start<0||b.start>b.end)return T;for(var I=[0],N=0;N0&&w.push("mw-table-header-border-left"),a.createElement("th",{className:w.join(" "),onDoubleClick:this._handleDoubleClick,"data-edit-state":m,"data-column-id":S,onContextMenu:T},a.createElement("div",{className:"mw-table-header-label-container"},a.createElement("div",{ref:function(O){f.renderNode=O},"data-test-id":e.HEADER_LABEL,onMouseEnter:this._handleMouseEnter,className:"mw-table-header-label"})))}}]),o}(t);return i(s,r.COLUMN_HEADER)},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function _(v,l){var n=[],e=!0,t=!1,r=void 0;try{for(var i=v[Symbol.iterator](),a;!(e=(a=i.next()).done)&&(n.push(a.value),!(l&&n.length===l));e=!0);}catch(s){t=!0,r=s}finally{try{!e&&i.return&&i.return()}finally{if(t)throw r}}return n}return function(v,l){if(Array.isArray(v))return v;if(Symbol.iterator in Object(v))return _(v,l);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();A=[u(4),u(2),u(21),u(76),u(104),u(33),u(3)],E=u.dj.d(A,function(_,v,l,n,e,t,r){var i=function(c){var o=r.useRef(),d=r.useRef(),f=r.useState(0),h=D(f,2),g=h[0],m=h[1],S=c.topLeftRowHeaderValue,T=c.topLeftRowHeaderRenderer,w=c.eventCallback,R=n(w),O=R.handleMouseOverWithRenderer,F=["mw-table-top-left-affordance","mw-table-no-left-border"],b=["mw-flex-child"],I=function(k){d.current.style.minWidth=k+"px"},N=function(k){c.eventCallback(_.internal.NODE_PUBLISH,{publisherFn:function(){return k},publisherId:v.publisher.TOP_LEFT_ROW_HEADER,noRender:!0})},P=function(){return T?T.getDomNode(S):S&&document.createTextNode(S)};return r.useLayoutEffect(function(){var L=P();L&&o.current&&o.current.appendChild(L),w(_.internal.NODE_SUBSCRIBE,{subscriberFn:function(K){return I(K)},subscriberId:v.subscriber.TOP_LEFT,subscribeTo:v.publisher.ROW_HEADER,noRender:!0});var k=d.current.scrollWidth+e.getHeaderPaddingSize();m(k),N(k)},[]),g>=e.getRowHeaderMaxWidth()&&b.push("mw-label-truncation"),r.createElement("div",{ref:d,className:F.join(" ")},r.createElement("div",{className:b.join(" "),onMouseEnter:function(k){O(k.target,l.TOPLEFT_HEADER,S,T,o.current)},ref:o}))};function a(s,c){return t.isDeepEqual(s.topLeftRowHeaderValue,c.topLeftRowHeaderValue)}return r.memo(i,a)},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function n(e,t){for(var r=0;r0&&(this.myTable.style.width=d+"px",this.myTable.style.maxWidth=d+"px")}},{key:"_setTableHeight",value:function(d){var f=d.height;parseInt(f)>parseInt(this.props.height)?(this.myTable.style.height=f+"px",this.myTable.style.maxHeight=f+"px"):(this.myTable.style.maxHeight="none",this.myTable.style.height=this.props.height)}},{key:"_getGeomObject",value:function(d){var f={flexWidth:this.props.flexWidth,headerList:this.theadRef.childNodes[0].querySelectorAll("[data-col-index]"),headerThead:this.theadRef,noRender:!0};this.props.eventCallback(d,f),this._geomObject=f.result||this._geomObject}},{key:"componentDidMount",value:function(){this.props.eventCallback(t.internal.NODE_SUBSCRIBE,{subscriberFn:this._setTableWidth.bind(this),subscriberId:r.subscriber.TABLE_WIDTH,subscribeTo:r.publisher.HEADER_ROW_WIDTH,noRender:!0}),this.props.eventCallback(t.internal.NODE_SUBSCRIBE,{subscriberFn:this._setTableHeight.bind(this),subscriberId:r.subscriber.TABLE_HEIGHT,subscribeTo:r.publisher.TRANSFORM_Y_AND_HEIGHT,noRender:!0})}},{key:"render",value:function(){var d=this,f=this.props,h=f.height,g=f.width,m=f.tableClass,S=f.dataSize,T=f.widgetType,w=f.scrollNodeIntoView,R=f.component,O={height:h,width:g,maxHeight:h,maxWidth:g},F=S.rows,b=F===void 0?{}:F,I=S.columns,N=I===void 0?{}:I,P=e.getRoleByWidgetType(T),L="mw-table "+m,k=b.count||0,W=N.count||0;this.props.tableHasFocus=w.tableContainerHasFocus();var K=n.createElement("table",{ref:function(G){d.myTable=G},role:P,"aria-rowcount":k,"aria-colcount":W,"data-test-id":"mwtable",style:O,className:L},n.createElement(R.tbody,this.props),n.createElement(i,{subscriberId:r.subscriber.INSERTION_TABLE_BODY,eventCallback:this.props.eventCallback}));return K}}]),c}(n.Component);return a},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function _(v,l){var n=[],e=!0,t=!1,r=void 0;try{for(var i=v[Symbol.iterator](),a;!(e=(a=i.next()).done)&&(n.push(a.value),!(l&&n.length===l));e=!0);}catch(s){t=!0,r=s}finally{try{!e&&i.return&&i.return()}finally{if(t)throw r}}return n}return function(v,l){if(Array.isArray(v))return v;if(Symbol.iterator in Object(v))return _(v,l);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();A=[u(4),u(2),u(3)],E=u.dj.d(A,function(_,v,l){var n=2,e=function(s){var c=s.eventCallback,o=s.subscriberId,d=l.useRef(null),f=l.useState({}),h=D(f,2),g=h[0],m=h[1],S=l.useState({}),T=D(S,2),w=T[0],R=T[1],O=l.useState(""),F=D(O,2),b=F[0],I=F[1];return l.useEffect(function(){R(i(g,d.current.parentNode,I))},[g.left]),l.useEffect(function(){g&&!g.hasOwnProperty("left")&&R(r(g,d.current,I))},[g.top,g.maxMarginLeftForLevel,g.topOffset,g.lineClass]),l.useEffect(function(){c(_.internal.NODE_SUBSCRIBE,{subscriberFn:function(P){return m(P)},subscriberId:o,subscribeTo:v.protected.publisher.DND_IN_ACTION,noRender:!0})},[]),l.createElement("div",{ref:d,style:w,className:"mw-table-insertion-line "+b})},t=function(){return!0};return l.memo(e,t);function r(a,s,c){var o=s.parentNode,d=s.left,f=a.lineClass,h=a.maxMarginLeftForLevel,g=h===void 0?0:h,m=0;if(c(f),a.top){var S=o.getBoundingClientRect(),T=S.top,w=S.bottom,R=S.width,O=S.height,F=o.parentNode.getBoundingClientRect(),b=F.height,I=F.width,N=b0||w>0||O)&&R.indexOf("mw-table-outer-wrapper-focused")!==-1)return!0}return!1}},{key:"_setScrollAffordanceWidth",value:function(m){m!==this.scrollAffordanceWidth&&m>0&&(this.myOuterWrapper.classList.add("mw-table-has-vertical-scroll"),this.scrollAffordanceWidth=m),m<=0&&(this.myOuterWrapper.classList.remove("mw-table-has-vertical-scroll"),this.scrollAffordanceWidth=m)}},{key:"componentDidUpdate",value:function(){this.state.eventCallback(n.protected.FORCE_LAYOUT,{noRender:!0}),this.myOuterWrapper.contains(document.activeElement)||this._handleBlur(),this.state.isTableDisabled&&this.state.isTableDisabled()?(this.state.wrapperClass==="mw-table-outer-wrapper"&&(document.activeElement.blur(),this._handleBlur()),this.myOuterWrapper.removeAttribute("tabindex")):this.myOuterWrapper.setAttribute("tabindex","0"),this._isTableCellOrRowActive(this.state)&&this.setState({wrapperClass:"mw-table-outer-wrapper"})}},{key:"componentDidMount",value:function(){this.props.eventCallback(n.internal.NODE_SUBSCRIBE,{subscriberFn:this._setScrollAffordanceWidth.bind(this),subscribeTo:e.publisher.SCROLL_BAR_WIDTH,subscriberId:e.subscriber.TABLE_HAS_VERT_SCROLL,noRender:!0}),document.addEventListener("cut",this._handleClipboardCut,!1),document.addEventListener("copy",this._handleClipboardCopy,!1),document.addEventListener("paste",this._handleClipboardPaste,!1)}},{key:"componentWillUnmount",value:function(){document.removeEventListener("cut",this._handleClipboardCut,!1),document.removeEventListener("copy",this._handleClipboardCopy,!1),document.removeEventListener("paste",this._handleClipboardPaste,!1)}},{key:"_isTableActive",value:function(){var m=!1;if(this.myOuterWrapper)m=this.myOuterWrapper.contains(document.activeElement);else for(var S=document.activeElement.classList,T=0;T0){var b=m.rowMetaData,I=r.getLabels(b,S,T);R=R||o,I.forEach(function(N){N.label=N.label||" ",O.push({key:N.rowIndex,rowIndex:N.rowIndex,headerRenderer:R,isMaxWidth:w,label:N.label})})}return O},f=function(m,S,T,w,R,O){for(var F=[],b=w.rowMetaData&&w.rowMetaData[0],I=function(K){if(K&&K.value&&(K.value.id!==void 0||K.value.id!==null))return K.value.id},N=function(K,V){if(K&&K.value&&K.value.rowHeight){var G=O&&O[V]&&O[V].height?O[V].height:w.rowHeight;return K.value.rowHeight==="auto"?G:K.value.rowHeight}return w.rowHeight},P=m;P<=S;P++){var L=T[P-m],k=s.createElement(i,{headers:L,rowIndex:P,lastRowIndex:S,enableEdit:w.enableEdit,displayRowHeaderIndices:w.displayRowHeaderIndices,key:P,eventCallback:w.eventCallback,scrollNodeIntoView:w.scrollNodeIntoView,rowHeight:N(b(P),P),rowEditState:w.rowEditState,rowSelectionMap:R,canDragToSelect:w.canDragToSelect,selectionById:w.metadata&&w.metadata.selectionById,rowId:I(b(P))});F.push(k)}return F},h=function(g){l(m,g);function m(S){_(this,m);var T=v(this,(m.__proto__||Object.getPrototypeOf(m)).call(this,S));return T.state={topLeftWidth:0,isMaxWidth:!1},T.heightOfRows=[],T.translateY=0,T.makeRowHeader=T.makeRowHeader.bind(T),T}return D(m,[{key:"setWidth",value:function(T){this.props.eventCallback(n.internal.NODE_PUBLISH,{publisherFn:function(){return T},publisherId:e.publisher.ROW_HEADER,noRender:!0}),this.rowHeader.style.width=T+"px"}},{key:"makeRowHeader",value:function(T){var w=this.props,R=w.rowMetaData,O=w.viewBuffer,F=O.rows.start,b=O.rows.end,I=[];return R&&R.length>0&&I.push(d(this.props,F,b,T)),a.transpose(I)}},{key:"componentDidUpdate",value:function(){var T=Math.min(this.rowHeader.scrollWidth,c);T>=c&&!this.state.isMaxWidth&&this.setState({isMaxWidth:!0}),this.setWidth(T)}},{key:"componentDidMount",value:function(){var T=this;this.props.eventCallback(n.internal.NODE_SUBSCRIBE,{subscriberFn:function(R){R>c&&(R=c),T.setState({topLeftWidth:R})},subscriberId:e.subscriber.ROW_HEADER,subscribeTo:e.publisher.TOP_LEFT_ROW_HEADER,noRender:!0}),this.props.eventCallback(n.internal.NODE_SUBSCRIBE,{subscriberFn:function(R){T.heightOfRows=R},subscriberId:e.subscriber.ROW_HEADER_HEIGHTS,subscribeTo:e.publisher.ROW_HEIGHTS,noRender:!0}),this.props.eventCallback(n.internal.NODE_SUBSCRIBE,{subscriberFn:function(R){T.translateY=R.translateY||0},subscriberId:e.subscriber.ROW_HEADER_TRANSFORM_Y,subscribeTo:e.publisher.TRANSFORM_Y_AND_HEIGHT,noRender:!0})}},{key:"render",value:function(){var T=this,w=this.props,R=w.scrollPos,O=w.rowHeaderHeight,F=w.viewBuffer,b={},I={},N=this.makeRowHeader(this.state.isMaxWidth),P=r.getSelectionMap(this.props),L=this.state.topLeftWidth;return typeof R=="number"&&(b={height:O},R=this.translateY,I={minWidth:L+"px",transform:"translateY("+R+"px)",WebkitTransform:"translateY("+R+"px)"}),s.createElement("div",{className:"mw-table-row-header","data-test-id":"mw-table-row-header",style:b},s.createElement("div",{ref:function(W){T.rowHeader=W},className:"mw-table-tbody-row-header",style:I},f(F.rows.start,F.rows.end,N,this.props,P,this.heightOfRows)))}}]),m}(s.Component);return h},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(494),u(258),u(496),u(3)],E=u.dj.d(A,function(D,_,v,l){"use strict";var n=function(t){var r=t.headers,i=t.rowIndex,a=t.lastRowIndex,s=t.displayRowHeaderIndices,c=t.enableEdit,o=t.eventCallback,d=t.scrollNodeIntoView,f=t.rowHeight,h=t.rowEditState,g=t.rowSelectionMap,m=t.selectionById,S=t.rowId,T=t.canDragToSelect,w="rowLabel",R=["mw-table-flex-row"],O=r&&r.length>0||!1,F=c?D:_,b=O?["mw-table-header-index-font"]:["mw-table-flex-cell-full-width","mw-table-header-index-font"],I=function(P){return l.createElement(v,{indexDisplay:P+1,lastRowIndex:a,key:P,additionalClass:b,rowIndex:P,rowId:S,hasLabels:O,eventCallback:o,rowHeight:f,rowSelectionMap:g,selectionById:m,canDragToSelect:T})};return l.createElement("div",{className:R.join(" "),"data-row-index":i},s?I(i):null,O?r.map(function(N){return l.createElement(F,{key:N.rowIndex,rowIndex:N.rowIndex,colIndex:N.colIndex||0,headerRenderer:N.headerRenderer,value:N.label,isMaxWidth:N.isMaxWidth,scrollNodeIntoView:d,editType:w,row:i,label:N.label,rowHeight:f,eventCallback:o,rowSelectionMap:g,selectionById:m,rowId:S,editState:h,canDragToSelect:T})}):null)};return n},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(258),u(105)],E=u.dj.d(A,function(D,_){"use strict";var v=_(D);return v},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function e(t,r){for(var i=0;iO.current.clientWidth&&I(O.current.scrollWidth+v.getHeaderPaddingSize())},[R,w]),l.createElement("div",{ref:O,style:N,key:T,"data-index":T,"data-test-id":"mw-row-header-index",rowIndex:T,onMouseDown:f,onMouseUp:g,onContextMenu:S,eventCallback:s,className:P.join(" ")},l.createElement("div",{className:"mw-table-force-flex-padding-right"},i))};return e},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0?this._scrollNode.scrollTop+=o:d<0&&(this._scrollNode.scrollTop+=d),f.resolve(),f}},{key:"_outOfLeftBoundary",value:function(a){var s=this,c=a.left,o={left:c},d=this._container.getBoundingClientRect(),f=new v;return d.left-o.left>n?f.resolve({needsRightBoundaryCheck:!1,isEditable:!1}):o.leftf.right&&f.right-d.left0)for(var ce=0;ce1&&arguments[1]!==void 0?arguments[1]:{},te=q.dropCompleted,oe=q.clearStyles;if(f.hoverStylesSet||oe){var le=$.closest("tr");if(le){var de=le.querySelectorAll("td");if(de.length>0){for(var De=0;De0){for(var De=0;De1&&arguments[1]!==void 0?arguments[1]:{},i=r.insertBeforeChild,a=1,s=!1,c=!1,o=!1,d=t.level,f=t.hoverRowNode,h=t.nextSibling,g=t.domNode,m=t.isDropValid,S=t.insertionPosition,T=D.getTreeColumnWidth();i&&(d=h.level);var w=(d+1)*_.MARGIN_LEFT_FOR_ROOT;T?w=w>T?T:w:w=0;var R=g.getBoundingClientRect().top;if(n.onTargetBelow(S)&&(R=g.getBoundingClientRect().bottom),!f.nextSibling&&S===_.REORDER.INSERT_BELOW){s=!0;var O=f.closest(".mw-scrolling-div"),F=O&&O.getBoundingClientRect().height,b=O&&O.firstChild.getBoundingClientRect().height;c=F===b,o=D.hasHorizontalScroll()}!f.previousSibling&&S===_.REORDER.INSERT_ABOVE&&(a=0);var I=m?_.REORDER.VALID_LINE:_.REORDER.INVALID_LINE;return{top:R,lastRow:s,maxMarginLeftForLevel:w,topOffset:a,lineClass:I,hasHorizontalScroll:o,isTableHeightSameAsContainer:c}},getReorderTargetParent:function(t){var r=t.row,i=t.targetNodeInfo,a=t.insertionPosition,s={},c={},o=D.getCurrentRowMetaData(r).path,d=o&&o.length,f=d<=1;return f?(c.id=null,c.path=[]):(c.id=o[d-2],c.path=o.slice(0,d-1)),c.id===null?c.type=v.TREETABLE:c.type=v.TREETABLE_ROW,a===_.REORDER.INSERT_BELOW&&i.isExpandable&&i.isExpanded&&(c.id=i.id),s={proxyNode:{id:c.id},type:c.type},s},getNextSiblingInfo:function(t){var r=t.hoverRowNode,i=r.nextElementSibling,a=i&&i.firstChild,s=i?v.TREETABLE_ROW:v.TREETABLE,c=D.getNodeInfo(a,s);return c.rowNode=i,c},getPreviousSiblingInfo:function(t){var r=t.hoverRowNode,i=r.previousElementSibling,a=i&&i.firstChild,s=i?v.TREETABLE_ROW:v.TREETABLE,c=D.getNodeInfo(a,s);return c.rowNode=i,c},isItNoOperationForBelowNode:function(t){var r=t.sourceIds,i=t.level,a=t.hoverRowNode,s=t.domNode,c=t.nextSibling,o=c.level,d=c.rowNode,f=a.classList.contains("mw-table-row-selected"),h=!!(d&&d.classList.contains("mw-table-row-selected")),g=r.length>1,m=f||o>=i&&h;return!!(s.classList.contains("mw-scrolling-div")||m&&!g)},getLinePositionBelowNode:function(t){var r={},i=!0;return n.isItNoOperationForBelowNode(t)||(l.isNextSiblingItsChild(t)?r=n.getLinePosition(t,{insertBeforeChild:i}):r=n.getLinePosition(t)),r},isItNoOperationForAboveNode:function(t){var r=t.sourceIds,i=t.level,a=t.hoverRowNode,s=t.domNode,c=t.previousSibling,o=c.level,d=c.rowNode,f=a.classList.contains("mw-table-row-selected"),h=!!(d&&d.classList.contains("mw-table-row-selected")),g=r.length>1,m=f||o<=i&&h;return!!(s.classList.contains("mw-scrolling-div")||m&&!g)},getLinePositionAboveNode:function(t){var r={};return n.isItNoOperationForAboveNode(t)||(r=n.getLinePosition(t)),r}};return n},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function v(l,n){for(var e=0;e0&&arguments[0]!==void 0?arguments[0]:[],S=arguments[1];if(m.length<=1)return t;if(m[m.length-1]===S)return m[m.length-2]}function h(m){var S=m&&m.firstChild&&m.firstChild.getAttribute("aria-expanded")?m.firstChild.getAttribute("aria-expanded"):void 0;return{expanded:S}}function g(m,S){var T=Number(m.firstChild.getAttribute("data-level-index"))||0,w=h(m),R=w.expanded;R==="true"&&S&&S.row===a&&T++;var O=(T+1)*v.MARGIN_LEFT_FOR_ROOT;return Math.min(m.firstChild.firstChild.clientWidth,O)}},C,x),C.exports=E},function(C,x,u){var A,E;A=[u(246),u(260)],E=u.dj.d(A,function(D,_){"use strict";var v=_(D);return v},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function _(v,l){var n=[],e=!0,t=!1,r=void 0;try{for(var i=v[Symbol.iterator](),a;!(e=(a=i.next()).done)&&(n.push(a.value),!(l&&n.length===l));e=!0);}catch(s){t=!0,r=s}finally{try{!e&&i.return&&i.return()}finally{if(t)throw r}}return n}return function(v,l){if(Array.isArray(v))return v;if(Symbol.iterator in Object(v))return _(v,l);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();A=[u(77),u(3)],E=u.dj.d(A,function(_,v){var l=function(e){var t=e.children,r=v.useState(!1),i=D(r,2),a=i[0],s=i[1],c=v.useState(""),o=D(c,2),d=o[0],f=o[1],h=v.useState(!1),g=D(h,2),m=g[0],S=g[1],T=v.useState(null),w=D(T,2),R=w[0],O=w[1],F=v.useState(null),b=D(F,2),I=b[0],N=b[1],P=v.useState({}),L=D(P,2),k=L[0],W=L[1],K={dndEnabled:a,setDnDEnabled:s,dndSourceData:d,setDnDSourceData:f,dndTarget:m,setDnDTarget:S,dndNode:R,setDndNode:O,scrollNode:I,setScrollNode:N,dragPositionState:k,setDragPositionStateState:W};return v.createElement(_.Provider,{value:K},t)};return l},C,x),C.exports=E},function(C,x,u){var A,E,D=function(){function l(n,e){var t=[],r=!0,i=!1,a=void 0;try{for(var s=n[Symbol.iterator](),c;!(r=(c=s.next()).done)&&(t.push(c.value),!(e&&t.length===e));r=!0);}catch(o){i=!0,a=o}finally{try{!r&&s.return&&s.return()}finally{if(i)throw a}}return t}return function(n,e){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return l(n,e);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_=function(){function l(n,e){for(var t=0;ty}return!1}function t(p,y,M,B,H,U,Z){this.acceptsBooleans=y===2||y===3||y===4,this.attributeName=B,this.attributeNamespace=H,this.mustUseProperty=M,this.propertyName=p,this.type=y,this.sanitizeURL=U,this.removeEmptyString=Z}function r(p,y,M,B){var H=Kn.hasOwnProperty(y)?Kn[y]:null;(H!==null?H.type!==0:B||!(2se||H[Z]!==U[se]){var he=` -`+H[Z].replace(" at new "," at ");return p.displayName&&he.includes("")&&(he=he.replace("",p.displayName)),he}while(1<=Z&&0<=se);break}}}finally{qo=!1,Error.prepareStackTrace=M}return(p=p?p.displayName||p.name:"")?a(p):""}function c(p){switch(p.tag){case 5:return a(p.type);case 16:return a("Lazy");case 13:return a("Suspense");case 19:return a("SuspenseList");case 0:case 2:case 15:return p=s(p.type,!1),p;case 11:return p=s(p.type.render,!1),p;case 1:return p=s(p.type,!0),p;default:return""}}function o(p){if(p==null)return null;if(typeof p=="function")return p.displayName||p.name||null;if(typeof p=="string")return p;switch(p){case Ti:return"Fragment";case Si:return"Portal";case Go:return"Profiler";case zo:return"StrictMode";case Xo:return"Suspense";case Qo:return"SuspenseList"}if(typeof p=="object")switch(p.$$typeof){case Ql:return(p.displayName||"Context")+".Consumer";case Xl:return(p._context.displayName||"Context")+".Provider";case $o:var y=p.render;return p=p.displayName,p||(p=y.displayName||y.name||"",p=p!==""?"ForwardRef("+p+")":"ForwardRef"),p;case Jo:return y=p.displayName||null,y!==null?y:o(p.type)||"Memo";case Qr:y=p._payload,p=p._init;try{return o(p(y))}catch(M){}}return null}function d(p){var y=p.type;switch(p.tag){case 24:return"Cache";case 9:return(y.displayName||"Context")+".Consumer";case 10:return(y._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return p=y.render,p=p.displayName||p.name||"",y.displayName||(p!==""?"ForwardRef("+p+")":"ForwardRef");case 7:return"Fragment";case 5:return y;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return o(y);case 8:return y===zo?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof y=="function")return y.displayName||y.name||null;if(typeof y=="string")return y}return null}function f(p){switch(typeof p){case"boolean":case"number":case"string":case"undefined":return p;case"object":return p;default:return""}}function h(p){var y=p.type;return(p=p.nodeName)&&p.toLowerCase()==="input"&&(y==="checkbox"||y==="radio")}function g(p){var y=h(p)?"checked":"value",M=Object.getOwnPropertyDescriptor(p.constructor.prototype,y),B=""+p[y];if(!p.hasOwnProperty(y)&&typeof M!="undefined"&&typeof M.get=="function"&&typeof M.set=="function"){var H=M.get,U=M.set;return Object.defineProperty(p,y,{configurable:!0,get:function(){return H.call(this)},set:function(Z){B=""+Z,U.call(this,Z)}}),Object.defineProperty(p,y,{enumerable:M.enumerable}),{getValue:function(){return B},setValue:function(Z){B=""+Z},stopTracking:function(){p._valueTracker=null,delete p[y]}}}}function m(p){p._valueTracker||(p._valueTracker=g(p))}function S(p){if(!p)return!1;var y=p._valueTracker;if(!y)return!0;var M=y.getValue(),B="";return p&&(B=h(p)?p.checked?"true":"false":p.value),p=B,p!==M?(y.setValue(p),!0):!1}function T(p){if(p=p||(typeof document!="undefined"?document:void 0),typeof p=="undefined")return null;try{return p.activeElement||p.body}catch(y){return p.body}}function w(p,y){var M=y.checked;return En({},y,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:M!=null?M:p._wrapperState.initialChecked})}function R(p,y){var M=y.defaultValue==null?"":y.defaultValue,B=y.checked!=null?y.checked:y.defaultChecked;M=f(y.value!=null?y.value:M),p._wrapperState={initialChecked:B,initialValue:M,controlled:y.type==="checkbox"||y.type==="radio"?y.checked!=null:y.value!=null}}function O(p,y){y=y.checked,y!=null&&r(p,"checked",y,!1)}function F(p,y){O(p,y);var M=f(y.value),B=y.type;if(M!=null)B==="number"?(M===0&&p.value===""||p.value!=M)&&(p.value=""+M):p.value!==""+M&&(p.value=""+M);else if(B==="submit"||B==="reset"){p.removeAttribute("value");return}y.hasOwnProperty("value")?I(p,y.type,M):y.hasOwnProperty("defaultValue")&&I(p,y.type,f(y.defaultValue)),y.checked==null&&y.defaultChecked!=null&&(p.defaultChecked=!!y.defaultChecked)}function b(p,y,M){if(y.hasOwnProperty("value")||y.hasOwnProperty("defaultValue")){var B=y.type;if(!(B!=="submit"&&B!=="reset"||y.value!==void 0&&y.value!==null))return;y=""+p._wrapperState.initialValue,M||y===p.value||(p.value=y),p.defaultValue=y}M=p.name,M!==""&&(p.name=""),p.defaultChecked=!!p._wrapperState.initialChecked,M!==""&&(p.name=M)}function I(p,y,M){(y!=="number"||T(p.ownerDocument)!==p)&&(M==null?p.defaultValue=""+p._wrapperState.initialValue:p.defaultValue!==""+M&&(p.defaultValue=""+M))}function N(p,y,M,B){if(p=p.options,y){y={};for(var H=0;H>>=0,p===0?32:31-(sc(p)/lc|0)|0}function ve(p){switch(p&-p){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return p&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return p&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return p}}function Oe(p,y){var M=p.pendingLanes;if(M===0)return 0;var B=0,H=p.suspendedLanes,U=p.pingedLanes,Z=M&268435455;if(Z!==0){var se=Z&~H;se!==0?B=ve(se):(U&=Z,U!==0&&(B=ve(U)))}else Z=M&~H,Z!==0?B=ve(Z):U!==0&&(B=ve(U));if(B===0)return 0;if(y!==0&&y!==B&&(y&H)===0&&(H=B&-B,U=y&-y,H>=U||H===16&&(U&4194240)!==0))return y;if((B&4)!==0&&(B|=M&16),y=p.entangledLanes,y!==0)for(p=p.entanglements,y&=B;0M;M++)y.push(p);return y}function St(p,y,M){p.pendingLanes|=y,y!==536870912&&(p.suspendedLanes=0,p.pingedLanes=0),p=p.eventTimes,y=31-Ar(y),p[y]=M}function xt(p,y){var M=p.pendingLanes&~y;p.pendingLanes=y,p.suspendedLanes=0,p.pingedLanes=0,p.expiredLanes&=y,p.mutableReadLanes&=y,p.entangledLanes&=y,y=p.entanglements;var B=p.eventTimes;for(p=p.expirationTimes;0=y)return{node:M,offset:y-p};p=B}e:{for(;M;){if(M.nextSibling){M=M.nextSibling;break e}M=M.parentNode}M=void 0}M=Bt(M)}}function Rt(p,y){return p&&y?p===y?!0:p&&p.nodeType===3?!1:y&&y.nodeType===3?Rt(p,y.parentNode):"contains"in p?p.contains(y):p.compareDocumentPosition?!!(p.compareDocumentPosition(y)&16):!1:!1}function it(){for(var p=window,y=T();y instanceof p.HTMLIFrameElement;){try{var M=typeof y.contentWindow.location.href=="string"}catch(B){M=!1}if(M)p=y.contentWindow;else break;y=T(p.document)}return y}function Yt(p){var y=p&&p.nodeName&&p.nodeName.toLowerCase();return y&&(y==="input"&&(p.type==="text"||p.type==="search"||p.type==="tel"||p.type==="url"||p.type==="password")||y==="textarea"||p.contentEditable==="true")}function cn(p){var y=it(),M=p.focusedElem,B=p.selectionRange;if(y!==M&&M&&M.ownerDocument&&Rt(M.ownerDocument.documentElement,M)){if(B!==null&&Yt(M)){if(y=B.start,p=B.end,p===void 0&&(p=y),"selectionStart"in M)M.selectionStart=y,M.selectionEnd=Math.min(p,M.value.length);else if(p=(y=M.ownerDocument||document)&&y.defaultView||window,p.getSelection){p=p.getSelection();var H=M.textContent.length,U=Math.min(B.start,H);B=B.end===void 0?U:Math.min(B.end,H),!p.extend&&U>B&&(H=B,B=U,U=H),H=Mt(M,U);var Z=Mt(M,B);H&&Z&&(p.rangeCount!==1||p.anchorNode!==H.node||p.anchorOffset!==H.offset||p.focusNode!==Z.node||p.focusOffset!==Z.offset)&&(y=y.createRange(),y.setStart(H.node,H.offset),p.removeAllRanges(),U>B?(p.addRange(y),p.extend(Z.node,Z.offset)):(y.setEnd(Z.node,Z.offset),p.addRange(y)))}}for(y=[],p=M;p=p.parentNode;)p.nodeType===1&&y.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof M.focus=="function"&&M.focus(),M=0;Mxi||(p.current=Es[xi],Es[xi]=null,xi--)}function mt(p,y,M){xi++,Es[xi]=p.current,p.current=y}function dn(p,y){var M=p.type.contextTypes;if(!M)return ni;var B=p.stateNode;if(B&&B.__reactInternalMemoizedUnmaskedChildContext===y)return B.__reactInternalMemoizedMaskedChildContext;var H={},U;for(U in M)H[U]=y[U];return B&&(p=p.stateNode,p.__reactInternalMemoizedUnmaskedChildContext=y,p.__reactInternalMemoizedMaskedChildContext=H),H}function Ot(p){return p=p.childContextTypes,p!=null}function bn(p,y,M){if(Mn.current!==ni)throw Error(D(168));mt(Mn,y),mt(Un,M)}function An(p,y,M){var B=p.stateNode;if(y=y.childContextTypes,typeof B.getChildContext!="function")return M;B=B.getChildContext();for(var H in B)if(!(H in y))throw Error(D(108,d(p)||"Unknown",H));return En({},M,B)}function Sn(p){return p=(p=p.stateNode)&&p.__reactInternalMemoizedMergedChildContext||ni,gi=Mn.current,mt(Mn,p),mt(Un,Un.current),!0}function Fn(p,y,M){var B=p.stateNode;if(!B)throw Error(D(169));M?(p=An(p,y,gi),B.__reactInternalMemoizedMergedChildContext=p,lt(Un),lt(Mn),mt(Mn,p)):lt(Un),mt(Un,M)}function rr(p){Wr===null?Wr=[p]:Wr.push(p)}function fn(p){Ya=!0,rr(p)}function yn(){if(!Cs&&Wr!==null){Cs=!0;var p=0,y=qt;try{var M=Wr;for(qt=1;p>=Z,H-=Z,Hr=1<<32-Ar(y)+H|M<Tt?(jn=Et,Et=null):jn=Et.sibling;var en=Le(Ae,Et,we[Tt],Ke);if(en===null){Et===null&&(Et=jn);break}p&&Et&&en.alternate===null&&y(Ae,Et),_e=U(en,_e,Tt),_t===null?vt=en:_t.sibling=en,_t=en,Et=jn}if(Tt===we.length)return M(Ae,Et),_n&&vn(Ae,Tt),vt;if(Et===null){for(;TtTt?(jn=Et,Et=null):jn=Et.sibling;var oi=Le(Ae,Et,en.value,Ke);if(oi===null){Et===null&&(Et=jn);break}p&&Et&&oi.alternate===null&&y(Ae,Et),_e=U(oi,_e,Tt),_t===null?vt=oi:_t.sibling=oi,_t=oi,Et=jn}if(en.done)return M(Ae,Et),_n&&vn(Ae,Tt),vt;if(Et===null){for(;!en.done;Tt++,en=we.next())en=He(Ae,en.value,Ke),en!==null&&(_e=U(en,_e,Tt),_t===null?vt=en:_t.sibling=en,_t=en);return _n&&vn(Ae,Tt),vt}for(Et=B(Ae,Et);!en.done;Tt++,en=we.next())en=tt(Et,Ae,Tt,en.value,Ke),en!==null&&(p&&en.alternate!==null&&Et.delete(en.key===null?Tt:en.key),_e=U(en,_e,Tt),_t===null?vt=en:_t.sibling=en,_t=en);return p&&Et.forEach(function(ld){return y(Ae,ld)}),_n&&vn(Ae,Tt),vt}function Rn(Ae,_e,we,Ke){if(typeof we=="object"&&we!==null&&we.type===Ti&&we.key===null&&(we=we.props.children),typeof we=="object"&&we!==null){switch(we.$$typeof){case Oa:e:{for(var vt=we.key,_t=_e;_t!==null;){if(_t.key===vt){if(vt=we.type,vt===Ti){if(_t.tag===7){M(Ae,_t.sibling),_e=H(_t,we.props.children),_e.return=Ae,Ae=_e;break e}}else if(_t.elementType===vt||typeof vt=="object"&&vt!==null&&vt.$$typeof===Qr&&Fs(vt)===_t.type){M(Ae,_t.sibling),_e=H(_t,we.props),_e.ref=Wi(Ae,_t,we),_e.return=Ae,Ae=_e;break e}M(Ae,_t);break}else y(Ae,_t);_t=_t.sibling}we.type===Ti?(_e=vi(we.props.children,Ae.mode,Ke,we.key),_e.return=Ae,Ae=_e):(Ke=Sa(we.type,we.key,we.props,null,Ae.mode,Ke),Ke.ref=Wi(Ae,_e,we),Ke.return=Ae,Ae=Ke)}return Z(Ae);case Si:e:{for(_t=we.key;_e!==null;){if(_e.key===_t)if(_e.tag===4&&_e.stateNode.containerInfo===we.containerInfo&&_e.stateNode.implementation===we.implementation){M(Ae,_e.sibling),_e=H(_e,we.children||[]),_e.return=Ae,Ae=_e;break e}else{M(Ae,_e);break}else y(Ae,_e);_e=_e.sibling}_e=Bo(we,Ae.mode,Ke),_e.return=Ae,Ae=_e}return Z(Ae);case Qr:return _t=we._init,Rn(Ae,_e,_t(we._payload),Ke)}if(zi(we))return dt(Ae,_e,we,Ke);if(i(we))return ft(Ae,_e,we,Ke);pa(Ae,we)}return typeof we=="string"&&we!==""||typeof we=="number"?(we=""+we,_e!==null&&_e.tag===6?(M(Ae,_e.sibling),_e=H(_e,we),_e.return=Ae,Ae=_e):(M(Ae,_e),_e=ko(we,Ae.mode,Ke),_e.return=Ae,Ae=_e),Z(Ae)):M(Ae,_e)}return Rn}function ci(p){if(p===sa)throw Error(D(174));return p}function co(p,y){switch(mt(ua,y),mt(la,p),mt(Pr,sa),p=y.nodeType,p){case 9:case 11:y=(y=y.documentElement)?y.namespaceURI:V(null,"");break;default:p=p===8?y.parentNode:y,y=p.namespaceURI||null,p=p.tagName,y=V(y,p)}lt(Pr),mt(Pr,y)}function Ei(p){lt(Pr),lt(la),lt(ua)}function Bs(p){ci(ua.current);var y=ci(Pr.current),M=V(y,p.type);y!==M&&(mt(la,p),mt(Pr,M))}function fo(p){la.current===p&&(lt(Pr),lt(la))}function ma(p){for(var y=p;y!==null;){if(y.tag===13){var M=y.memoizedState;if(M!==null&&(M=M.dehydrated,M===null||M.data==="$?"||M.data==="$!"))return y}else if(y.tag===19&&y.memoizedProps.revealOrder!==void 0){if((y.flags&128)!==0)return y}else if(y.child!==null){y.child.return=y,y=y.child;continue}if(y===p)break;for(;y.sibling===null;){if(y.return===null||y.return===p)return null;y=y.return}y.sibling.return=y.return,y=y.sibling}return null}function ho(){for(var p=0;pM?M:4,p(!0);var B=Ss.transition;Ss.transition={};try{p(!1),y()}finally{qt=M,Ss.transition=B}}function rl(){return gr().memoizedState}function Nu(p,y,M){var B=Gr(p);if(M={lane:B,action:M,hasEagerState:!1,eagerState:null,next:null},il(p))al(y,M);else if(M=Vr(p,y,M,B),M!==null){var H=qn();Cr(M,p,B,H),ol(M,y,B)}}function Ou(p,y,M){var B=Gr(p),H={lane:B,action:M,hasEagerState:!1,eagerState:null,next:null};if(il(p))al(y,H);else{var U=p.alternate;if(p.lanes===0&&(U===null||U.lanes===0)&&(U=y.lastRenderedReducer,U!==null))try{var Z=y.lastRenderedState,se=U(Z,M);if(H.hasEagerState=!0,H.eagerState=se,Sr(se,Z)){var he=y.interleaved;he===null?(H.next=H,fr(y)):(H.next=he.next,he.next=H),y.interleaved=H;return}}catch(be){}finally{}M=Vr(p,y,H,B),M!==null&&(H=qn(),Cr(M,p,B,H),ol(M,y,B))}}function il(p){var y=p.alternate;return p===Dn||y!==null&&y===Dn}function al(p,y){ca=Za=!0;var M=p.pending;M===null?y.next=y:(y.next=M.next,M.next=y),p.pending=y}function ol(p,y,M){if((M&4194240)!==0){var B=y.lanes;B&=p.pendingLanes,M|=B,y.lanes=M,zt(p,M)}}function Ci(p,y){try{var M="",B=y;do M+=c(B),B=B.return;while(B);var H=M}catch(U){H=` -Error generating stack: `+U.message+` -`+U.stack}return{value:p,source:y,stack:H,digest:null}}function Co(p,y,M){return{value:p,source:null,stack:M!=null?M:null,digest:y!=null?y:null}}function Do(p,y){try{console.error(y.value)}catch(M){setTimeout(function(){throw M})}}function sl(p,y,M){M=Gn(-1,M),M.tag=3,M.payload={element:null};var B=y.value;return M.callback=function(){ro||(ro=!0,Ns=B),Do(p,y)},M}function ll(p,y,M){M=Gn(-1,M),M.tag=3;var B=p.type.getDerivedStateFromError;if(typeof B=="function"){var H=y.value;M.payload=function(){return B(H)},M.callback=function(){Do(p,y)}}var U=p.stateNode;return U!==null&&typeof U.componentDidCatch=="function"&&(M.callback=function(){Do(p,y),typeof B!="function"&&(ii===null?ii=new Set([this]):ii.add(this));var Z=y.stack;this.componentDidCatch(y.value,{componentStack:Z!==null?Z:""})}),M}function ul(p,y,M){var B=p.pingCache;if(B===null){B=p.pingCache=new Xc;var H=new Set;B.set(y,H)}else H=B.get(y),H===void 0&&(H=new Set,B.set(y,H));H.has(M)||(H.add(M),p=Ku.bind(null,p,y,M),y.then(p,p))}function cl(p){do{var y;if((y=p.tag===13)&&(y=p.memoizedState,y=y!==null?y.dehydrated!==null:!0),y)return p;p=p.return}while(p!==null);return null}function dl(p,y,M,B,H){return(p.mode&1)===0?(p===y?p.flags|=65536:(p.flags|=128,M.flags|=131072,M.flags&=-52805,M.tag===1&&(M.alternate===null?M.tag=17:(y=Gn(-1,1),y.tag=2,br(M,y,1))),M.lanes|=1),p):(p.flags|=65536,p.lanes=H,p)}function Zn(p,y,M,B){y.child=p===null?Su(y,null,M,B):Bi(y,p.child,M,B)}function fl(p,y,M,B,H){M=M.render;var U=y.ref;return gn(y,H),B=go(p,y,M,B,U,H),M=po(),p!==null&&!lr?(y.updateQueue=p.updateQueue,y.flags&=-2053,p.lanes&=~H,Lr(p,y,H)):(_n&&M&&_r(y),y.flags|=1,Zn(p,y,B,H),y.child)}function hl(p,y,M,B,H){if(p===null){var U=M.type;return typeof U=="function"&&!Fo(U)&&U.defaultProps===void 0&&M.compare===null&&M.defaultProps===void 0?(y.tag=15,y.type=U,vl(p,y,U,B,H)):(p=Sa(M.type,null,B,y,y.mode,H),p.ref=y.ref,p.return=y,y.child=p)}if(U=p.child,(p.lanes&H)===0){var Z=U.memoizedProps;if(M=M.compare,M=M!==null?M:sn,M(Z,B)&&p.ref===y.ref)return Lr(p,y,H)}return y.flags|=1,p=Xr(U,B),p.ref=y.ref,p.return=y,y.child=p}function vl(p,y,M,B,H){if(p!==null){var U=p.memoizedProps;if(sn(U,B)&&p.ref===y.ref)if(lr=!1,y.pendingProps=B=U,(p.lanes&H)!==0)(p.flags&131072)!==0&&(lr=!0);else return y.lanes=p.lanes,Lr(p,y,H)}return Ao(p,y,M,B,H)}function gl(p,y,M){var B=y.pendingProps,H=B.children,U=p!==null?p.memoizedState:null;if(B.mode==="hidden")if((y.mode&1)===0)y.memoizedState={baseLanes:0,cachePool:null,transitions:null},mt(xr,tr),tr|=M;else{if((M&1073741824)===0)return p=U!==null?U.baseLanes|M:M,y.lanes=y.childLanes=1073741824,y.memoizedState={baseLanes:p,cachePool:null,transitions:null},y.updateQueue=null,mt(xr,tr),tr|=p,null;y.memoizedState={baseLanes:0,cachePool:null,transitions:null},B=U!==null?U.baseLanes:M,mt(xr,tr),tr|=B}else U!==null?(B=U.baseLanes|M,y.memoizedState=null):B=M,mt(xr,tr),tr|=B;return Zn(p,y,H,M),y.child}function pl(p,y){var M=y.ref;(p===null&&M!==null||p!==null&&p.ref!==M)&&(y.flags|=512,y.flags|=2097152)}function Ao(p,y,M,B,H){var U=Ot(M)?gi:Mn.current;return U=dn(y,U),gn(y,H),M=go(p,y,M,B,U,H),B=po(),p!==null&&!lr?(y.updateQueue=p.updateQueue,y.flags&=-2053,p.lanes&=~H,Lr(p,y,H)):(_n&&B&&_r(y),y.flags|=1,Zn(p,y,M,H),y.child)}function ml(p,y,M,B,H){if(Ot(M)){var U=!0;Sn(y)}else U=!1;if(gn(y,H),y.stateNode===null)Ca(p,y),xs(y,M,B),uo(y,M,B,H),B=!0;else if(p===null){var Z=y.stateNode,se=y.memoizedProps;Z.props=se;var he=Z.context,be=M.contextType;typeof be=="object"&&be!==null?be=ln(be):(be=Ot(M)?gi:Mn.current,be=dn(y,be));var Fe=M.getDerivedStateFromProps,He=typeof Fe=="function"||typeof Z.getSnapshotBeforeUpdate=="function";He||typeof Z.UNSAFE_componentWillReceiveProps!="function"&&typeof Z.componentWillReceiveProps!="function"||(se!==B||he!==be)&&Ls(y,Z,B,be),ri=!1;var Le=y.memoizedState;Z.state=Le,ga(y,B,Z,H),he=y.memoizedState,se!==B||Le!==he||Un.current||ri?(typeof Fe=="function"&&(lo(y,M,Fe,B),he=y.memoizedState),(se=ri||Ps(y,M,se,B,Le,he,be))?(He||typeof Z.UNSAFE_componentWillMount!="function"&&typeof Z.componentWillMount!="function"||(typeof Z.componentWillMount=="function"&&Z.componentWillMount(),typeof Z.UNSAFE_componentWillMount=="function"&&Z.UNSAFE_componentWillMount()),typeof Z.componentDidMount=="function"&&(y.flags|=4194308)):(typeof Z.componentDidMount=="function"&&(y.flags|=4194308),y.memoizedProps=B,y.memoizedState=he),Z.props=B,Z.state=he,Z.context=be,B=se):(typeof Z.componentDidMount=="function"&&(y.flags|=4194308),B=!1)}else{Z=y.stateNode,li(p,y),se=y.memoizedProps,be=y.type===y.elementType?se:Ze(y.type,se),Z.props=be,He=y.pendingProps,Le=Z.context,he=M.contextType,typeof he=="object"&&he!==null?he=ln(he):(he=Ot(M)?gi:Mn.current,he=dn(y,he));var tt=M.getDerivedStateFromProps;(Fe=typeof tt=="function"||typeof Z.getSnapshotBeforeUpdate=="function")||typeof Z.UNSAFE_componentWillReceiveProps!="function"&&typeof Z.componentWillReceiveProps!="function"||(se!==He||Le!==he)&&Ls(y,Z,B,he),ri=!1,Le=y.memoizedState,Z.state=Le,ga(y,B,Z,H);var dt=y.memoizedState;se!==He||Le!==dt||Un.current||ri?(typeof tt=="function"&&(lo(y,M,tt,B),dt=y.memoizedState),(be=ri||Ps(y,M,be,B,Le,dt,he)||!1)?(Fe||typeof Z.UNSAFE_componentWillUpdate!="function"&&typeof Z.componentWillUpdate!="function"||(typeof Z.componentWillUpdate=="function"&&Z.componentWillUpdate(B,dt,he),typeof Z.UNSAFE_componentWillUpdate=="function"&&Z.UNSAFE_componentWillUpdate(B,dt,he)),typeof Z.componentDidUpdate=="function"&&(y.flags|=4),typeof Z.getSnapshotBeforeUpdate=="function"&&(y.flags|=1024)):(typeof Z.componentDidUpdate!="function"||se===p.memoizedProps&&Le===p.memoizedState||(y.flags|=4),typeof Z.getSnapshotBeforeUpdate!="function"||se===p.memoizedProps&&Le===p.memoizedState||(y.flags|=1024),y.memoizedProps=B,y.memoizedState=dt),Z.props=B,Z.state=dt,Z.context=he,B=be):(typeof Z.componentDidUpdate!="function"||se===p.memoizedProps&&Le===p.memoizedState||(y.flags|=4),typeof Z.getSnapshotBeforeUpdate!="function"||se===p.memoizedProps&&Le===p.memoizedState||(y.flags|=1024),B=!1)}return So(p,y,M,B,U,H)}function So(p,y,M,B,H,U){pl(p,y);var Z=(y.flags&128)!==0;if(!B&&!Z)return H&&Fn(y,M,!1),Lr(p,y,U);B=y.stateNode,Qc.current=y;var se=Z&&typeof M.getDerivedStateFromError!="function"?null:B.render();return y.flags|=1,p!==null&&Z?(y.child=Bi(y,p.child,null,U),y.child=Bi(y,null,se,U)):Zn(p,y,se,U),y.memoizedState=B.state,H&&Fn(y,M,!0),y.child}function yl(p){var y=p.stateNode;y.pendingContext?bn(p,y.pendingContext,y.pendingContext!==y.context):y.context&&bn(p,y.context,!1),co(p,y.containerInfo)}function _l(p,y,M,B,H){return vr(),Ne(H),y.flags|=256,Zn(p,y,M,B),y.child}function To(p){return{baseLanes:p,cachePool:null,transitions:null}}function El(p,y,M){var B=y.pendingProps,H=Cn.current,U=!1,Z=(y.flags&128)!==0,se;if((se=Z)||(se=p!==null&&p.memoizedState===null?!1:(H&2)!==0),se?(U=!0,y.flags&=-129):(p===null||p.memoizedState!==null)&&(H|=1),mt(Cn,H&1),p===null)return Rr(y),p=y.memoizedState,p!==null&&(p=p.dehydrated,p!==null)?((y.mode&1)===0?y.lanes=1:p.data==="$!"?y.lanes=8:y.lanes=1073741824,null):(Z=B.children,p=B.fallback,U?(B=y.mode,U=y.child,Z={mode:"hidden",children:Z},(B&1)===0&&U!==null?(U.childLanes=0,U.pendingProps=Z):U=Ta(Z,B,0,null),p=vi(p,B,M,null),U.return=y,p.return=y,U.sibling=p,y.child=U,y.child.memoizedState=To(M),y.memoizedState=Ts,p):wo(y,Z));if(H=p.memoizedState,H!==null&&(se=H.dehydrated,se!==null))return Mu(p,y,Z,B,se,H,M);if(U){U=B.fallback,Z=y.mode,H=p.child,se=H.sibling;var he={mode:"hidden",children:B.children};return(Z&1)===0&&y.child!==H?(B=y.child,B.childLanes=0,B.pendingProps=he,y.deletions=null):(B=Xr(H,he),B.subtreeFlags=H.subtreeFlags&14680064),se!==null?U=Xr(se,U):(U=vi(U,Z,M,null),U.flags|=2),U.return=y,B.return=y,B.sibling=U,y.child=B,B=U,U=y.child,Z=p.child.memoizedState,Z=Z===null?To(M):{baseLanes:Z.baseLanes|M,cachePool:null,transitions:Z.transitions},U.memoizedState=Z,U.childLanes=p.childLanes&~M,y.memoizedState=Ts,B}return U=p.child,p=U.sibling,B=Xr(U,{mode:"visible",children:B.children}),(y.mode&1)===0&&(B.lanes=M),B.return=y,B.sibling=null,p!==null&&(M=y.deletions,M===null?(y.deletions=[p],y.flags|=16):M.push(p)),y.child=B,y.memoizedState=null,B}function wo(p,y,M){return y=Ta({mode:"visible",children:y},p.mode,0,null),y.return=p,p.child=y}function Ea(p,y,M,B){return B!==null&&Ne(B),Bi(y,p.child,null,M),p=wo(y,y.pendingProps.children),p.flags|=2,y.memoizedState=null,p}function Mu(p,y,M,B,H,U,Z){if(M)return y.flags&256?(y.flags&=-257,B=Co(Error(D(422))),Ea(p,y,Z,B)):y.memoizedState!==null?(y.child=p.child,y.flags|=128,null):(U=B.fallback,H=y.mode,B=Ta({mode:"visible",children:B.children},H,0,null),U=vi(U,H,Z,null),U.flags|=2,B.return=y,U.return=y,B.sibling=U,y.child=B,(y.mode&1)!==0&&Bi(y,p.child,null,Z),y.child.memoizedState=To(Z),y.memoizedState=Ts,U);if((y.mode&1)===0)return Ea(p,y,Z,null);if(H.data==="$!"){if(B=H.nextSibling&&H.nextSibling.dataset,B)var se=B.dgst;return B=se,U=Error(D(419)),B=Co(U,B,void 0),Ea(p,y,Z,B)}if(se=(Z&p.childLanes)!==0,lr||se){if(B=Hn,B!==null){switch(Z&-Z){case 4:H=2;break;case 16:H=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:H=32;break;case 536870912:H=268435456;break;default:H=0}H=(H&(B.suspendedLanes|Z))!==0?0:H,H!==0&&H!==U.retryLane&&(U.retryLane=H,In(p,H),Cr(B,p,H,-1))}return Lo(),B=Co(Error(D(421))),Ea(p,y,Z,B)}return H.data==="$?"?(y.flags|=128,y.child=p.child,y=Uu.bind(null,p),H._reactRetry=y,null):(p=U.treeContext,sr=Xt(H.nextSibling),hr=y,_n=!0,Tr=null,p!==null&&(pr[mr++]=Hr,pr[mr++]=jr,pr[mr++]=pi,Hr=p.id,jr=p.overflow,pi=y),y=wo(y,B.children),y.flags|=4096,y)}function Cl(p,y,M){p.lanes|=y;var B=p.alternate;B!==null&&(B.lanes|=y),jt(p.return,y,M)}function Ro(p,y,M,B,H){var U=p.memoizedState;U===null?p.memoizedState={isBackwards:y,rendering:null,renderingStartTime:0,last:B,tail:M,tailMode:H}:(U.isBackwards=y,U.rendering=null,U.renderingStartTime=0,U.last=B,U.tail=M,U.tailMode=H)}function Dl(p,y,M){var B=y.pendingProps,H=B.revealOrder,U=B.tail;if(Zn(p,y,B.children,M),B=Cn.current,(B&2)!==0)B=B&1|2,y.flags|=128;else{if(p!==null&&(p.flags&128)!==0)e:for(p=y.child;p!==null;){if(p.tag===13)p.memoizedState!==null&&Cl(p,M,y);else if(p.tag===19)Cl(p,M,y);else if(p.child!==null){p.child.return=p,p=p.child;continue}if(p===y)break e;for(;p.sibling===null;){if(p.return===null||p.return===y)break e;p=p.return}p.sibling.return=p.return,p=p.sibling}B&=1}if(mt(Cn,B),(y.mode&1)===0)y.memoizedState=null;else switch(H){case"forwards":for(M=y.child,H=null;M!==null;)p=M.alternate,p!==null&&ma(p)===null&&(H=M),M=M.sibling;M=H,M===null?(H=y.child,y.child=null):(H=M.sibling,M.sibling=null),Ro(y,!1,H,M,U);break;case"backwards":for(M=null,H=y.child,y.child=null;H!==null;){if(p=H.alternate,p!==null&&ma(p)===null){y.child=H;break}p=H.sibling,H.sibling=M,M=H,H=p}Ro(y,!0,M,null,U);break;case"together":Ro(y,!1,null,null,void 0);break;default:y.memoizedState=null}return y.child}function Ca(p,y){(y.mode&1)===0&&p!==null&&(p.alternate=null,y.alternate=null,y.flags|=2)}function Lr(p,y,M){if(p!==null&&(y.dependencies=p.dependencies),_i|=y.lanes,(M&y.childLanes)===0)return null;if(p!==null&&y.child!==p.child)throw Error(D(153));if(y.child!==null){for(p=y.child,M=Xr(p,p.pendingProps),y.child=M,M.return=y;p.sibling!==null;)p=p.sibling,M=M.sibling=Xr(p,p.pendingProps),M.return=y;M.sibling=null}return y.child}function Pu(p,y,M){switch(y.tag){case 3:yl(y),vr();break;case 5:Bs(y);break;case 1:Ot(y.type)&&Sn(y);break;case 4:co(y,y.stateNode.containerInfo);break;case 10:var B=y.type._context,H=y.memoizedProps.value;mt($a,B._currentValue),B._currentValue=H;break;case 13:if(B=y.memoizedState,B!==null)return B.dehydrated!==null?(mt(Cn,Cn.current&1),y.flags|=128,null):(M&y.child.childLanes)!==0?El(p,y,M):(mt(Cn,Cn.current&1),p=Lr(p,y,M),p!==null?p.sibling:null);mt(Cn,Cn.current&1);break;case 19:if(B=(M&y.childLanes)!==0,(p.flags&128)!==0){if(B)return Dl(p,y,M);y.flags|=128}if(H=y.memoizedState,H!==null&&(H.rendering=null,H.tail=null,H.lastEffect=null),mt(Cn,Cn.current),B)break;return null;case 22:case 23:return y.lanes=0,gl(p,y,M)}return Lr(p,y,M)}function Ki(p,y){if(!_n)switch(p.tailMode){case"hidden":y=p.tail;for(var M=null;y!==null;)y.alternate!==null&&(M=y),y=y.sibling;M===null?p.tail=null:M.sibling=null;break;case"collapsed":M=p.tail;for(var B=null;M!==null;)M.alternate!==null&&(B=M),M=M.sibling;B===null?y||p.tail===null?p.tail=null:p.tail.sibling=null:B.sibling=null}}function Xn(p){var y=p.alternate!==null&&p.alternate.child===p.child,M=0,B=0;if(y)for(var H=p.child;H!==null;)M|=H.lanes|H.childLanes,B|=H.subtreeFlags&14680064,B|=H.flags&14680064,H.return=p,H=H.sibling;else for(H=p.child;H!==null;)M|=H.lanes|H.childLanes,B|=H.subtreeFlags,B|=H.flags,H.return=p,H=H.sibling;return p.subtreeFlags|=B,p.childLanes=M,y}function xu(p,y,M){var B=y.pendingProps;switch(ar(y),y.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Xn(y),null;case 1:return Ot(y.type)&&(lt(Un),lt(Mn)),Xn(y),null;case 3:return B=y.stateNode,Ei(),lt(Un),lt(Mn),ho(),B.pendingContext&&(B.context=B.pendingContext,B.pendingContext=null),(p===null||p.child===null)&&(dr(y)?y.flags|=4:p===null||p.memoizedState.isDehydrated&&(y.flags&256)===0||(y.flags|=1024,Tr!==null&&(Po(Tr),Tr=null))),Tu(p,y),Xn(y),null;case 5:fo(y);var H=ci(ua.current);if(M=y.type,p!==null&&y.stateNode!=null)Zc(p,y,M,B,H),p.ref!==y.ref&&(y.flags|=512,y.flags|=2097152);else{if(!B){if(y.stateNode===null)throw Error(D(166));return Xn(y),null}if(p=ci(Pr.current),dr(y)){B=y.stateNode,M=y.type;var U=y.memoizedProps;switch(B[Mr]=y,B[oa]=U,p=(y.mode&1)!==0,M){case"dialog":ge("cancel",B),ge("close",B);break;case"iframe":case"object":case"embed":ge("load",B);break;case"video":case"audio":for(H=0;H<\/script>",p=p.removeChild(p.firstChild)):typeof B.is=="string"?p=Z.createElement(M,{is:B.is}):(p=Z.createElement(M),M==="select"&&(Z=p,B.multiple?Z.multiple=!0:B.size&&(Z.size=B.size))):p=Z.createElementNS(p,M),p[Mr]=y,p[oa]=B,Jc(p,y,!1,!1),y.stateNode=p;e:{switch(Z=z(M,B),M){case"dialog":ge("cancel",p),ge("close",p),H=B;break;case"iframe":case"object":case"embed":ge("load",p),H=B;break;case"video":case"audio":for(H=0;HIs&&(y.flags|=128,B=!0,Ki(U,!1),y.lanes=4194304)}else{if(!B)if(p=ma(Z),p!==null){if(y.flags|=128,B=!0,M=p.updateQueue,M!==null&&(y.updateQueue=M,y.flags|=4),Ki(U,!0),U.tail===null&&U.tailMode==="hidden"&&!Z.alternate&&!_n)return Xn(y),null}else 2*Bn()-U.renderingStartTime>Is&&M!==1073741824&&(y.flags|=128,B=!0,Ki(U,!1),y.lanes=4194304);U.isBackwards?(Z.sibling=y.child,y.child=Z):(M=U.last,M!==null?M.sibling=Z:y.child=Z,U.last=Z)}return U.tail!==null?(y=U.tail,U.rendering=y,U.tail=y.sibling,U.renderingStartTime=Bn(),y.sibling=null,M=Cn.current,mt(Cn,B?M&1|2:M&1),y):(Xn(y),null);case 22:case 23:return tr=xr.current,lt(xr),B=y.memoizedState!==null,p!==null&&p.memoizedState!==null!==B&&(y.flags|=8192),B&&(y.mode&1)!==0?(tr&1073741824)!==0&&(Xn(y),y.subtreeFlags&6&&(y.flags|=8192)):Xn(y),null;case 24:return null;case 25:return null}throw Error(D(156,y.tag))}function Lu(p,y,M){switch(ar(y),y.tag){case 1:return Ot(y.type)&&(lt(Un),lt(Mn)),p=y.flags,p&65536?(y.flags=p&-65537|128,y):null;case 3:return Ei(),lt(Un),lt(Mn),ho(),p=y.flags,(p&65536)!==0&&(p&128)===0?(y.flags=p&-65537|128,y):null;case 5:return fo(y),null;case 13:if(lt(Cn),p=y.memoizedState,p!==null&&p.dehydrated!==null){if(y.alternate===null)throw Error(D(340));vr()}return p=y.flags,p&65536?(y.flags=p&-65537|128,y):null;case 19:return lt(Cn),null;case 4:return Ei(),null;case 10:return Ut(y.type._context),null;case 22:case 23:return tr=xr.current,lt(xr),null;case 24:return null;default:return null}}function Di(p,y){var M=p.ref;if(M!==null)if(typeof M=="function")try{M(null)}catch(B){Tn(p,y,B)}else M.current=null}function bo(p,y,M){try{M()}catch(B){Tn(p,y,B)}}function Fu(p,y){if(ps=Ha,p=it(),Yt(p)){if("selectionStart"in p)var M={start:p.selectionStart,end:p.selectionEnd};else e:{M=(M=p.ownerDocument)&&M.defaultView||window;var B=M.getSelection&&M.getSelection();if(B&&B.rangeCount!==0){M=B.anchorNode;var H=B.anchorOffset,U=B.focusNode;B=B.focusOffset;try{M.nodeType,U.nodeType}catch(Ke){M=null;break e}var Z=0,se=-1,he=-1,be=0,Fe=0,He=p,Le=null;t:for(;;){for(var tt;He!==M||H!==0&&He.nodeType!==3||(se=Z+H),He!==U||B!==0&&He.nodeType!==3||(he=Z+B),He.nodeType===3&&(Z+=He.nodeValue.length),(tt=He.firstChild)!==null;)Le=He,He=tt;for(;;){if(He===p)break t;if(Le===M&&++be===H&&(se=Z),Le===U&&++Fe===B&&(he=Z),(tt=He.nextSibling)!==null)break;He=Le,Le=He.parentNode}He=tt}M=se===-1||he===-1?null:{start:se,end:he}}else M=null}M=M||{start:0,end:0}}else M=null;for(ms={focusedElem:p,selectionRange:M},Ha=!1,st=y;st!==null;)if(y=st,p=y.child,(y.subtreeFlags&1028)!==0&&p!==null)p.return=y,st=p;else for(;st!==null;){y=st;try{var dt=y.alternate;if((y.flags&1024)!==0)switch(y.tag){case 0:case 11:case 15:break;case 1:if(dt!==null){var ft=dt.memoizedProps,Rn=dt.memoizedState,Ae=y.stateNode,_e=Ae.getSnapshotBeforeUpdate(y.elementType===y.type?ft:Ze(y.type,ft),Rn);Ae.__reactInternalSnapshotBeforeUpdate=_e}break;case 3:var we=y.stateNode.containerInfo;we.nodeType===1?we.textContent="":we.nodeType===9&&we.documentElement&&we.removeChild(we.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(D(163))}}catch(Ke){Tn(y,y.return,Ke)}if(p=y.sibling,p!==null){p.return=y.return,st=p;break}st=y.return}return dt=wu,wu=!1,dt}function Ui(p,y,M){var B=y.updateQueue;if(B=B!==null?B.lastEffect:null,B!==null){var H=B=B.next;do{if((H.tag&p)===p){var U=H.destroy;H.destroy=void 0,U!==void 0&&bo(y,M,U)}H=H.next}while(H!==B)}}function Da(p,y){if(y=y.updateQueue,y=y!==null?y.lastEffect:null,y!==null){var M=y=y.next;do{if((M.tag&p)===p){var B=M.create;M.destroy=B()}M=M.next}while(M!==y)}}function Io(p){var y=p.ref;if(y!==null){var M=p.stateNode;switch(p.tag){case 5:p=M;break;default:p=M}typeof y=="function"?y(p):y.current=p}}function Al(p){var y=p.alternate;y!==null&&(p.alternate=null,Al(y)),p.child=null,p.deletions=null,p.sibling=null,p.tag===5&&(y=p.stateNode,y!==null&&(delete y[Mr],delete y[oa],delete y[_s],delete y[jc],delete y[Kc])),p.stateNode=null,p.return=null,p.dependencies=null,p.memoizedProps=null,p.memoizedState=null,p.pendingProps=null,p.stateNode=null,p.updateQueue=null}function Sl(p){return p.tag===5||p.tag===3||p.tag===4}function Tl(p){e:for(;;){for(;p.sibling===null;){if(p.return===null||Sl(p.return))return null;p=p.return}for(p.sibling.return=p.return,p=p.sibling;p.tag!==5&&p.tag!==6&&p.tag!==18;){if(p.flags&2||p.child===null||p.tag===4)continue e;p.child.return=p,p=p.child}if(!(p.flags&2))return p.stateNode}}function No(p,y,M){var B=p.tag;if(B===5||B===6)p=p.stateNode,y?M.nodeType===8?M.parentNode.insertBefore(p,y):M.insertBefore(p,y):(M.nodeType===8?(y=M.parentNode,y.insertBefore(p,M)):(y=M,y.appendChild(p)),M=M._reactRootContainer,M!=null||y.onclick!==null||(y.onclick=Wt));else if(B!==4&&(p=p.child,p!==null))for(No(p,y,M),p=p.sibling;p!==null;)No(p,y,M),p=p.sibling}function Oo(p,y,M){var B=p.tag;if(B===5||B===6)p=p.stateNode,y?M.insertBefore(p,y):M.appendChild(p);else if(B!==4&&(p=p.child,p!==null))for(Oo(p,y,M),p=p.sibling;p!==null;)Oo(p,y,M),p=p.sibling}function zr(p,y,M){for(M=M.child;M!==null;)wl(p,y,M),M=M.sibling}function wl(p,y,M){if(Or&&typeof Or.onCommitFiberUnmount=="function")try{Or.onCommitFiberUnmount(Fa,M)}catch(se){}switch(M.tag){case 5:Qn||Di(M,y);case 6:var B=Vn,H=wr;Vn=null,zr(p,y,M),Vn=B,wr=H,Vn!==null&&(wr?(p=Vn,M=M.stateNode,p.nodeType===8?p.parentNode.removeChild(M):p.removeChild(M)):Vn.removeChild(M.stateNode));break;case 18:Vn!==null&&(wr?(p=Vn,M=M.stateNode,p.nodeType===8?Kt(p.parentNode,M):p.nodeType===1&&Kt(p,M),ut(p)):Kt(Vn,M.stateNode));break;case 4:B=Vn,H=wr,Vn=M.stateNode.containerInfo,wr=!0,zr(p,y,M),Vn=B,wr=H;break;case 0:case 11:case 14:case 15:if(!Qn&&(B=M.updateQueue,B!==null&&(B=B.lastEffect,B!==null))){H=B=B.next;do{var U=H,Z=U.destroy;U=U.tag,Z!==void 0&&((U&2)!==0||(U&4)!==0)&&bo(M,y,Z),H=H.next}while(H!==B)}zr(p,y,M);break;case 1:if(!Qn&&(Di(M,y),B=M.stateNode,typeof B.componentWillUnmount=="function"))try{B.props=M.memoizedProps,B.state=M.memoizedState,B.componentWillUnmount()}catch(se){Tn(M,y,se)}zr(p,y,M);break;case 21:zr(p,y,M);break;case 22:M.mode&1?(Qn=(B=Qn)||M.memoizedState!==null,zr(p,y,M),Qn=B):zr(p,y,M);break;default:zr(p,y,M)}}function Rl(p){var y=p.updateQueue;if(y!==null){p.updateQueue=null;var M=p.stateNode;M===null&&(M=p.stateNode=new ed),y.forEach(function(B){var H=Vu.bind(null,p,B);M.has(B)||(M.add(B),B.then(H,H))})}}function Er(p,y,M){if(M=y.deletions,M!==null)for(var B=0;BH&&(H=Z),B&=~U}if(B=H,B=Bn()-B,B=(120>B?120:480>B?480:1080>B?1080:1920>B?1920:3e3>B?3e3:4320>B?4320:1960*td(B/1960))-B,10p?16:p,ai===null)var B=!1;else{if(p=ai,ai=null,ao=0,(Qt&6)!==0)throw Error(D(331));var H=Qt;for(Qt|=4,st=p.current;st!==null;){var U=st,Z=U.child;if((st.flags&16)!==0){var se=U.deletions;if(se!==null){for(var he=0;heBn()-bs?fi(p,0):Rs|=M),or(p,y)}function Hl(p,y){y===0&&((p.mode&1)===0?y=1:(y=Ba,Ba<<=1,(Ba&130023424)===0&&(Ba=4194304)));var M=qn();p=In(p,y),p!==null&&(St(p,y,M),or(p,M))}function Uu(p){var y=p.memoizedState,M=0;y!==null&&(M=y.retryLane),Hl(p,M)}function Vu(p,y){var M=0;switch(p.tag){case 13:var B=p.stateNode,H=p.memoizedState;H!==null&&(M=H.retryLane);break;case 19:B=p.stateNode;break;default:throw Error(D(314))}B!==null&&B.delete(y),Hl(p,M)}function jl(p,y){return iu(p,y)}function Yu(p,y,M,B){this.tag=p,this.key=M,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=y,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=B,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Fo(p){return p=p.prototype,!(!p||!p.isReactComponent)}function zu(p){if(typeof p=="function")return Fo(p)?1:0;if(p!=null){if(p=p.$$typeof,p===$o)return 11;if(p===Jo)return 14}return 2}function Xr(p,y){var M=p.alternate;return M===null?(M=yr(p.tag,y,p.key,p.mode),M.elementType=p.elementType,M.type=p.type,M.stateNode=p.stateNode,M.alternate=p,p.alternate=M):(M.pendingProps=y,M.type=p.type,M.flags=0,M.subtreeFlags=0,M.deletions=null),M.flags=p.flags&14680064,M.childLanes=p.childLanes,M.lanes=p.lanes,M.child=p.child,M.memoizedProps=p.memoizedProps,M.memoizedState=p.memoizedState,M.updateQueue=p.updateQueue,y=p.dependencies,M.dependencies=y===null?null:{lanes:y.lanes,firstContext:y.firstContext},M.sibling=p.sibling,M.index=p.index,M.ref=p.ref,M}function Sa(p,y,M,B,H,U){var Z=2;if(B=p,typeof p=="function")Fo(p)&&(Z=1);else if(typeof p=="string")Z=5;else e:switch(p){case Ti:return vi(M.children,H,U,y);case zo:Z=8,H|=8;break;case Go:return p=yr(12,M,y,H|2),p.elementType=Go,p.lanes=U,p;case Xo:return p=yr(13,M,y,H),p.elementType=Xo,p.lanes=U,p;case Qo:return p=yr(19,M,y,H),p.elementType=Qo,p.lanes=U,p;case Jl:return Ta(M,H,U,y);default:if(typeof p=="object"&&p!==null)switch(p.$$typeof){case Xl:Z=10;break e;case Ql:Z=9;break e;case $o:Z=11;break e;case Jo:Z=14;break e;case Qr:Z=16,B=null;break e}throw Error(D(130,p==null?p:typeof p,""))}return y=yr(Z,M,y,H),y.elementType=p,y.type=B,y.lanes=U,y}function vi(p,y,M,B){return p=yr(7,p,B,y),p.lanes=M,p}function Ta(p,y,M,B){return p=yr(22,p,B,y),p.elementType=Jl,p.lanes=M,p.stateNode={isHidden:!1},p}function ko(p,y,M){return p=yr(6,p,null,y),p.lanes=M,p}function Bo(p,y,M){return y=yr(4,p.children!==null?p.children:[],p.key,y),y.lanes=M,y.stateNode={containerInfo:p.containerInfo,pendingChildren:null,implementation:p.implementation},y}function Gu(p,y,M,B,H){this.tag=y,this.containerInfo=p,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ft(0),this.expirationTimes=Ft(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ft(0),this.identifierPrefix=B,this.onRecoverableError=H,this.mutableSourceEagerHydrationData=null}function Wo(p,y,M,B,H,U,Z,se,he,be){return p=new Gu(p,y,M,se,he),y===1?(y=1,U===!0&&(y|=8)):y=0,U=yr(3,null,null,y),p.current=U,U.stateNode=p,U.memoizedState={element:B,isDehydrated:M,cache:null,transitions:null,pendingSuspenseBoundaries:null},si(U),p}function $u(p,y,M){var B=3