diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index e32af42e7c..bcfc7490b4 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,15 +1,21 @@ ### ArcadeDB Version: + `` + ### OS and JDK Version: + `` ### Expected behavior + `` ### Actual behavior + `` ### Steps to reproduce + `` `` diff --git a/.github/dependabot.yml b/.github/dependabot.yml index a1953e427e..ea931f2a64 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,19 +4,19 @@ updates: directory: "/" schedule: interval: weekly - time: '04:00' + time: "04:00" open-pull-requests-limit: 20 - package-ecosystem: "github-actions" directory: "/" schedule: interval: weekly - time: '05:00' + time: "05:00" open-pull-requests-limit: 10 - package-ecosystem: "docker" directory: "/package/src/main/docker/" schedule: interval: weekly - time: '06:00' + time: "06:00" open-pull-requests-limit: 10 diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 9237be7a80..8dbe04a241 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,16 +1,21 @@ ## What does this PR do? + A brief description of the change being made with this pull request. ## Motivation + What inspired you to submit this pull request? ## Related issues + A list of issues either fixed, containing architectural discussions, otherwise relevant for this Pull Request. ## Additional Notes + Anything else we should know when reviewing? ## Checklist + - [ ] I have run the build using `mvn clean package` command - [ ] My unit tests cover both failure and success scenarios diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 7397c24241..4640452324 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -2,11 +2,11 @@ name: "CodeQL" on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] + branches: ["main"] schedule: - - cron: '39 19 * * 5' + - cron: "39 19 * * 5" jobs: analyze: @@ -20,20 +20,19 @@ jobs: strategy: fail-fast: false matrix: - language: [ 'java', 'javascript' ] + language: ["java", "javascript"] steps: - - name: Checkout repository - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - - name: Initialize CodeQL - uses: github/codeql-action/init@v2 - with: - languages: ${{ matrix.language }} + - name: Initialize CodeQL + uses: github/codeql-action/init@v2 + with: + languages: ${{ matrix.language }} - - name: Autobuild - uses: github/codeql-action/autobuild@v2 + - name: Autobuild + uses: github/codeql-action/autobuild@v2 - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2 + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/mvn-deploy.yml b/.github/workflows/mvn-deploy.yml index 0d4702c050..4a268f9465 100644 --- a/.github/workflows/mvn-deploy.yml +++ b/.github/workflows/mvn-deploy.yml @@ -37,7 +37,7 @@ jobs: with: distribution: "temurin" java-version: 11 - cache: 'maven' + cache: "maven" server-id: ossrh server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD diff --git a/.github/workflows/mvn-release.yml b/.github/workflows/mvn-release.yml index f11feb39a7..3aac708566 100644 --- a/.github/workflows/mvn-release.yml +++ b/.github/workflows/mvn-release.yml @@ -3,9 +3,9 @@ on: workflow_dispatch: inputs: releaseversion: - description: 'Release version' + description: "Release version" required: true - default: '2.4.0' + default: "2.4.0" jobs: publish: runs-on: ubuntu-latest @@ -31,7 +31,7 @@ jobs: with: distribution: "temurin" java-version: 11 - cache: 'maven' + cache: "maven" server-id: ossrh server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD diff --git a/.github/workflows/mvn-test.yml b/.github/workflows/mvn-test.yml index 202bff4ba9..a516489951 100644 --- a/.github/workflows/mvn-test.yml +++ b/.github/workflows/mvn-test.yml @@ -9,14 +9,13 @@ on: branches: - main - jobs: build: strategy: fail-fast: false matrix: - os: [ ubuntu-latest ] - continue-on-error: [ false ] + os: [ubuntu-latest] + continue-on-error: [false] include: - os: windows-latest continue-on-error: true @@ -44,11 +43,11 @@ jobs: - name: Set up GraalVM 11 uses: graalvm/setup-graalvm@v1 with: - version: '22.3.2' + version: "22.3.2" gds-token: ${{ secrets.GDS_TOKEN }} - java-version: '11' - cache: 'maven' - components: 'native-image,js' + java-version: "11" + cache: "maven" + components: "native-image,js" github-token: ${{ secrets.GITHUB_TOKEN }} - name: Install jars @@ -74,9 +73,9 @@ jobs: if: success() || failure() with: name: Test Report - ${{ matrix.os }} - path: '**/surefire-reports/TEST*.xml' - list-suites: 'failed' - list-tests: 'failed' + path: "**/surefire-reports/TEST*.xml" + list-suites: "failed" + list-tests: "failed" reporter: java-junit - name: Get coverage files diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a840b8d46c..686b176b06 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,15 +17,15 @@ repos: - id: check-json - id: check-xml - repo: https://github.com/pre-commit/mirrors-prettier - rev: v3.0.0-alpha.4 + rev: v3.1.0 hooks: - id: prettier - types: [ java ] + # types: [ java ] additional_dependencies: - - prettier@2.7.1 - - prettier-plugin-java@1.6.2 + - prettier@3.1.0 + - prettier-plugin-java@2.4.0 + - prettier-plugin-xml args: - --write - --list-different - --ignore-unknown - - --plugin=prettier-plugin-java diff --git a/.prettierrc.yml b/.prettierrc.yml index 1c12b6df0b..9a3b94cc9e 100644 --- a/.prettierrc.yml +++ b/.prettierrc.yml @@ -1,5 +1,9 @@ # Prettier configuration overrides: + - files: + - "**/*.*" + options: + printWidth: 160 - files: - "**/*.java" options: diff --git a/CITATION.cff b/CITATION.cff index 794f41f57d..7fa005fb93 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -22,8 +22,8 @@ type: software authors: - given-names: Luca family-names: Garulli -repository-code: 'https://github.com/ArcadeData/arcadedb' -url: 'https://arcadedb.com' +repository-code: "https://github.com/ArcadeData/arcadedb" +url: "https://arcadedb.com" abstract: Play With Data! license: Apache-2.0 copyright: Copyright (c) 2021 Arcade Data Ltd diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 339f2071dd..0c259f7b14 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,19 +5,19 @@ #### **Did you find a bug?** -* **Do not open up a GitHub issue if the bug is a security vulnerability**, and instead write to support -at- arcadedb.com. +- **Do not open up a GitHub issue if the bug is a security vulnerability**, and instead write to support -at- arcadedb.com. -* **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/ArcadeData/arcadedb/issues). +- **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/ArcadeData/arcadedb/issues). -* If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/ArcadeData/arcadedb/issues/new) +- If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/ArcadeData/arcadedb/issues/new) . Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an ** executable test case** demonstrating the expected behavior that is not occurring. #### **Did you write a patch that fixes a bug?** -* Open a new GitHub pull request with the patch. +- Open a new GitHub pull request with the patch. -* Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable. +- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable. #### **Did you fix whitespace, format code, or make a purely cosmetic patch?** @@ -26,9 +26,9 @@ generally not be accepted. #### **Do you intend to add a new feature or change an existing one?** -* Suggest your change in the [ArcadeDB Community](https://github.com/ArcadeData/arcadedb/discussions) and start writing code. +- Suggest your change in the [ArcadeDB Community](https://github.com/ArcadeData/arcadedb/discussions) and start writing code. -* Do not open an issue on GitHub until you have collected positive feedback about the change. GitHub issues are primarily intended +- Do not open an issue on GitHub until you have collected positive feedback about the change. GitHub issues are primarily intended for bug reports and fixes. ### Prepare your environment diff --git a/README.md b/README.md index 27885d6eb5..8db8313a14 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,6 @@ Blog

- ArcadeDB is a Multi-Model DBMS (created originally as a fork from [OrientDB Open Source project](https://github.com/orientechnologies/orientdb) after the acquisition by SAP) with a brand-new engine made of Alien Technology, able to crunch millions of records per second on common hardware with the usage of @@ -106,7 +105,7 @@ imported `OpenBeer` database to find your favorite beer. ArcadeDB is cloud-ready with [Docker](https://docs.arcadedb.com/#Docker) and [Kubernetes](https://docs.arcadedb.com/#Kubernetes) support. -You can also [download the latest release](https://github.com/ArcadeData/arcadedb/releases), unpack it on your local hard drive and start the server with ```bin/server.sh``` or ```bin/server.bat``` for Windows. +You can also [download the latest release](https://github.com/ArcadeData/arcadedb/releases), unpack it on your local hard drive and start the server with `bin/server.sh` or `bin/server.bat` for Windows. ### Community diff --git a/docker-compose.yml b/docker-compose.yml index f874a6a812..78f40ab40e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,8 +21,8 @@ services: arcade: image: arcadedata/arcadedb:latest ports: - - 2480:2480 # host : container port - - 2424:2424 # host : container port + - 2480:2480 # host : container port + - 2424:2424 # host : container port environment: JAVA_OPTS: > -Darcadedb.server.rootPassword=playwithdata diff --git a/gremlin/src/test/resources/gremlin-server.yaml b/gremlin/src/test/resources/gremlin-server.yaml index b54bdf3bc9..58c66bd354 100644 --- a/gremlin/src/test/resources/gremlin-server.yaml +++ b/gremlin/src/test/resources/gremlin-server.yaml @@ -9,7 +9,7 @@ scriptEngines: classImports: - java.lang.Math methodImports: - - 'java.lang.Math#*' + - "java.lang.Math#*" org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: files: - ./target/config/gremlin-server.groovy diff --git a/integration/src/test/resources/importer-one-object.json b/integration/src/test/resources/importer-one-object.json index 5f65e20069..311e6fac19 100644 --- a/integration/src/test/resources/importer-one-object.json +++ b/integration/src/test/resources/importer-one-object.json @@ -23,7 +23,7 @@ } }, "max": 0.004, - "min": 0.000, + "min": 0.0, "median": 0.001, "amount": 0.001 }, @@ -47,10 +47,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -72,10 +72,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -98,9 +98,9 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -123,8 +123,8 @@ } }, "max": 0.006, - "min": 0.000, - "median": 0.000, + "min": 0.0, + "median": 0.0, "amount": 0.002 }, { @@ -198,7 +198,7 @@ } }, "max": 0.003, - "min": 0.000, + "min": 0.0, "median": 0.002, "amount": 0.002 }, @@ -274,8 +274,8 @@ }, "max": 0.325, "min": 0.315, - "median": 0.320, - "amount": 0.320 + "median": 0.32, + "amount": 0.32 }, { "type": "FoodNutrient", @@ -398,9 +398,9 @@ } }, "max": 1.11, - "min": 0.450, - "median": 0.610, - "amount": 0.660 + "min": 0.45, + "median": 0.61, + "amount": 0.66 }, { "type": "FoodNutrient", @@ -423,9 +423,9 @@ } }, "max": 1.27, - "min": 0.600, - "median": 0.900, - "amount": 0.940 + "min": 0.6, + "median": 0.9, + "amount": 0.94 }, { "type": "FoodNutrient", @@ -543,7 +543,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.010, + "max": 0.01, "min": 0.002, "median": 0.003, "amount": 0.004 @@ -568,9 +568,9 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.150, - "min": 0.090, - "median": 0.110, + "max": 0.15, + "min": 0.09, + "median": 0.11, "amount": 0.114 }, { @@ -593,9 +593,9 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.320, - "min": 0.200, - "median": 0.270, + "max": 0.32, + "min": 0.2, + "median": 0.27, "amount": 0.259 }, { @@ -644,8 +644,8 @@ } }, "max": 0.006, - "min": 0.000, - "median": 0.000, + "min": 0.0, + "median": 0.0, "amount": 0.001 }, { @@ -668,10 +668,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -694,9 +694,9 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -718,10 +718,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -794,9 +794,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -817,7 +817,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -840,9 +840,9 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -866,7 +866,7 @@ }, "max": 0.272, "min": 0.144, - "median": 0.200, + "median": 0.2, "amount": 0.197 }, { @@ -890,7 +890,7 @@ } }, "max": 0.004, - "min": 0.000, + "min": 0.0, "median": 0.003, "amount": 0.002 }, @@ -914,7 +914,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.040, + "max": 0.04, "min": 0.015, "median": 0.025, "amount": 0.025 @@ -964,7 +964,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.010, + "max": 0.01, "min": 0.005, "median": 0.007, "amount": 0.007 @@ -990,7 +990,7 @@ } }, "max": 0.004, - "min": 0.000, + "min": 0.0, "median": 0.002, "amount": 0.002 }, @@ -1015,7 +1015,7 @@ } }, "max": 0.003, - "min": 0.000, + "min": 0.0, "median": 0.001, "amount": 0.001 }, @@ -1040,7 +1040,7 @@ } }, "max": 0.011, - "min": 0.000, + "min": 0.0, "median": 0.008, "amount": 0.006 }, @@ -1091,7 +1091,7 @@ }, "max": 0.063, "min": 0.007, - "median": 0.010, + "median": 0.01, "amount": 0.013 }, { @@ -1114,10 +1114,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1185,10 +1185,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1236,9 +1236,9 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1261,7 +1261,7 @@ } }, "max": 0.003, - "min": 0.000, + "min": 0.0, "median": 0.002, "amount": 0.002 }, @@ -1285,10 +1285,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 1.40, - "min": 0.700, - "median": 1.30, - "amount": 1.20 + "max": 1.4, + "min": 0.7, + "median": 1.3, + "amount": 1.2 }, { "type": "FoodNutrient", @@ -1309,7 +1309,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 1.20 + "amount": 1.2 }, { "type": "FoodNutrient", @@ -1331,8 +1331,8 @@ "description": "Analytical or derived from analytical" } }, - "max": 3.00, - "min": 2.00, + "max": 3.0, + "min": 2.0, "median": 2.65, "amount": 2.57 }, @@ -1356,10 +1356,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.030, - "min": 0.030, - "median": 0.030, - "amount": 0.030 + "max": 0.03, + "min": 0.03, + "median": 0.03, + "amount": 0.03 }, { "type": "FoodNutrient", @@ -1381,8 +1381,8 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.090, - "min": 0.070, + "max": 0.09, + "min": 0.07, "median": 0.085, "amount": 0.082 }, @@ -1456,9 +1456,9 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.010, - "min": 0.000, - "median": 0.000, + "max": 0.01, + "min": 0.0, + "median": 0.0, "amount": 0.002 }, { @@ -1481,8 +1481,8 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.300, - "min": 0.170, + "max": 0.3, + "min": 0.17, "median": 0.225, "amount": 0.224 }, @@ -1531,9 +1531,9 @@ } }, "max": 1.23, - "min": 0.740, - "median": 1.00, - "amount": 0.980 + "min": 0.74, + "median": 1.0, + "amount": 0.98 }, { "type": "FoodNutrient", @@ -1576,8 +1576,8 @@ "description": "Analytical or derived from analytical" } }, - "max": 2.40, - "min": 0.870, + "max": 2.4, + "min": 0.87, "median": 1.69, "amount": 1.67 }, @@ -1725,7 +1725,7 @@ "description": "Calculated or imputed" } }, - "amount": 0.080 + "amount": 0.08 }, { "type": "FoodNutrient", @@ -1772,10 +1772,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1797,10 +1797,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1822,10 +1822,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1847,10 +1847,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1872,10 +1872,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1897,10 +1897,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1922,10 +1922,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1947,10 +1947,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1972,10 +1972,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1997,10 +1997,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2022,10 +2022,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2047,10 +2047,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2098,7 +2098,7 @@ } }, "max": 0.002, - "min": 0.000, + "min": 0.0, "median": 0.001, "amount": 0.001 }, @@ -2123,9 +2123,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2148,9 +2148,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2172,10 +2172,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2197,10 +2197,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2222,10 +2222,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2247,8 +2247,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2270,8 +2270,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2293,8 +2293,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2316,8 +2316,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2339,8 +2339,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2362,8 +2362,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2384,7 +2384,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2405,7 +2405,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2489,7 +2489,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2615,7 +2615,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.600 + "amount": 0.6 } ], "foodAttributes": [], diff --git a/integration/src/test/resources/importer-two-objects.json b/integration/src/test/resources/importer-two-objects.json index 4271f4fc59..5885214463 100644 --- a/integration/src/test/resources/importer-two-objects.json +++ b/integration/src/test/resources/importer-two-objects.json @@ -25,7 +25,7 @@ } }, "max": 0.004, - "min": 0.000, + "min": 0.0, "median": 0.001, "amount": 0.001 }, @@ -49,10 +49,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -74,10 +74,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -100,9 +100,9 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -125,8 +125,8 @@ } }, "max": 0.006, - "min": 0.000, - "median": 0.000, + "min": 0.0, + "median": 0.0, "amount": 0.002 }, { @@ -200,7 +200,7 @@ } }, "max": 0.003, - "min": 0.000, + "min": 0.0, "median": 0.002, "amount": 0.002 }, @@ -276,8 +276,8 @@ }, "max": 0.325, "min": 0.315, - "median": 0.320, - "amount": 0.320 + "median": 0.32, + "amount": 0.32 }, { "type": "FoodNutrient", @@ -400,9 +400,9 @@ } }, "max": 1.11, - "min": 0.450, - "median": 0.610, - "amount": 0.660 + "min": 0.45, + "median": 0.61, + "amount": 0.66 }, { "type": "FoodNutrient", @@ -425,9 +425,9 @@ } }, "max": 1.27, - "min": 0.600, - "median": 0.900, - "amount": 0.940 + "min": 0.6, + "median": 0.9, + "amount": 0.94 }, { "type": "FoodNutrient", @@ -545,7 +545,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.010, + "max": 0.01, "min": 0.002, "median": 0.003, "amount": 0.004 @@ -570,9 +570,9 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.150, - "min": 0.090, - "median": 0.110, + "max": 0.15, + "min": 0.09, + "median": 0.11, "amount": 0.114 }, { @@ -595,9 +595,9 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.320, - "min": 0.200, - "median": 0.270, + "max": 0.32, + "min": 0.2, + "median": 0.27, "amount": 0.259 }, { @@ -646,8 +646,8 @@ } }, "max": 0.006, - "min": 0.000, - "median": 0.000, + "min": 0.0, + "median": 0.0, "amount": 0.001 }, { @@ -670,10 +670,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -696,9 +696,9 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -720,10 +720,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -796,9 +796,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -819,7 +819,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -842,9 +842,9 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -868,7 +868,7 @@ }, "max": 0.272, "min": 0.144, - "median": 0.200, + "median": 0.2, "amount": 0.197 }, { @@ -892,7 +892,7 @@ } }, "max": 0.004, - "min": 0.000, + "min": 0.0, "median": 0.003, "amount": 0.002 }, @@ -916,7 +916,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.040, + "max": 0.04, "min": 0.015, "median": 0.025, "amount": 0.025 @@ -966,7 +966,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.010, + "max": 0.01, "min": 0.005, "median": 0.007, "amount": 0.007 @@ -992,7 +992,7 @@ } }, "max": 0.004, - "min": 0.000, + "min": 0.0, "median": 0.002, "amount": 0.002 }, @@ -1017,7 +1017,7 @@ } }, "max": 0.003, - "min": 0.000, + "min": 0.0, "median": 0.001, "amount": 0.001 }, @@ -1042,7 +1042,7 @@ } }, "max": 0.011, - "min": 0.000, + "min": 0.0, "median": 0.008, "amount": 0.006 }, @@ -1093,7 +1093,7 @@ }, "max": 0.063, "min": 0.007, - "median": 0.010, + "median": 0.01, "amount": 0.013 }, { @@ -1116,10 +1116,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1187,10 +1187,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1238,9 +1238,9 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1263,7 +1263,7 @@ } }, "max": 0.003, - "min": 0.000, + "min": 0.0, "median": 0.002, "amount": 0.002 }, @@ -1287,10 +1287,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 1.40, - "min": 0.700, - "median": 1.30, - "amount": 1.20 + "max": 1.4, + "min": 0.7, + "median": 1.3, + "amount": 1.2 }, { "type": "FoodNutrient", @@ -1311,7 +1311,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 1.20 + "amount": 1.2 }, { "type": "FoodNutrient", @@ -1333,8 +1333,8 @@ "description": "Analytical or derived from analytical" } }, - "max": 3.00, - "min": 2.00, + "max": 3.0, + "min": 2.0, "median": 2.65, "amount": 2.57 }, @@ -1358,10 +1358,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.030, - "min": 0.030, - "median": 0.030, - "amount": 0.030 + "max": 0.03, + "min": 0.03, + "median": 0.03, + "amount": 0.03 }, { "type": "FoodNutrient", @@ -1383,8 +1383,8 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.090, - "min": 0.070, + "max": 0.09, + "min": 0.07, "median": 0.085, "amount": 0.082 }, @@ -1458,9 +1458,9 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.010, - "min": 0.000, - "median": 0.000, + "max": 0.01, + "min": 0.0, + "median": 0.0, "amount": 0.002 }, { @@ -1483,8 +1483,8 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.300, - "min": 0.170, + "max": 0.3, + "min": 0.17, "median": 0.225, "amount": 0.224 }, @@ -1533,9 +1533,9 @@ } }, "max": 1.23, - "min": 0.740, - "median": 1.00, - "amount": 0.980 + "min": 0.74, + "median": 1.0, + "amount": 0.98 }, { "type": "FoodNutrient", @@ -1578,8 +1578,8 @@ "description": "Analytical or derived from analytical" } }, - "max": 2.40, - "min": 0.870, + "max": 2.4, + "min": 0.87, "median": 1.69, "amount": 1.67 }, @@ -1727,7 +1727,7 @@ "description": "Calculated or imputed" } }, - "amount": 0.080 + "amount": 0.08 }, { "type": "FoodNutrient", @@ -1774,10 +1774,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1799,10 +1799,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1824,10 +1824,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1849,10 +1849,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1874,10 +1874,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1899,10 +1899,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1924,10 +1924,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1949,10 +1949,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1974,10 +1974,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -1999,10 +1999,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2024,10 +2024,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2049,10 +2049,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2100,7 +2100,7 @@ } }, "max": 0.002, - "min": 0.000, + "min": 0.0, "median": 0.001, "amount": 0.001 }, @@ -2125,9 +2125,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2150,9 +2150,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2174,10 +2174,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2199,10 +2199,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2224,10 +2224,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2249,8 +2249,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2272,8 +2272,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2295,8 +2295,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2318,8 +2318,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2341,8 +2341,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2364,8 +2364,8 @@ "description": "Analytical or derived from analytical" } }, - "median": 0.000, - "amount": 0.000 + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2386,7 +2386,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2407,7 +2407,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2491,7 +2491,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -2617,7 +2617,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.600 + "amount": 0.6 } ], "foodAttributes": [], @@ -3370,10 +3370,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3395,10 +3395,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3470,10 +3470,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3495,10 +3495,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 2.00, - "min": 1.60, - "median": 1.80, - "amount": 1.80 + "max": 2.0, + "min": 1.6, + "median": 1.8, + "amount": 1.8 }, { "type": "FoodNutrient", @@ -3520,10 +3520,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3570,10 +3570,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3620,10 +3620,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3645,10 +3645,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3695,10 +3695,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3721,9 +3721,9 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3746,9 +3746,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3771,7 +3771,7 @@ } }, "max": 0.002, - "min": 0.000, + "min": 0.0, "median": 0.001, "amount": 0.001 }, @@ -3816,10 +3816,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3841,10 +3841,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3867,9 +3867,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3891,10 +3891,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3916,10 +3916,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -3941,10 +3941,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.250, - "min": 0.150, - "median": 0.200, - "amount": 0.200 + "max": 0.25, + "min": 0.15, + "median": 0.2, + "amount": 0.2 }, { "type": "FoodNutrient", @@ -3966,10 +3966,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -4016,10 +4016,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -4067,8 +4067,8 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, + "min": 0.0, + "median": 0.0, "amount": 0.001 }, { @@ -4092,9 +4092,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -4117,8 +4117,8 @@ } }, "max": 0.002, - "min": 0.000, - "median": 0.000, + "min": 0.0, + "median": 0.0, "amount": 0.001 }, { @@ -4142,7 +4142,7 @@ } }, "max": 0.001, - "min": 0.000, + "min": 0.0, "median": 0.001, "amount": 0.001 }, @@ -4167,7 +4167,7 @@ } }, "max": 0.004, - "min": 0.000, + "min": 0.0, "median": 0.003, "amount": 0.002 }, @@ -4191,10 +4191,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -4292,7 +4292,7 @@ } }, "max": 2.82, - "min": 0.630, + "min": 0.63, "median": 1.44, "amount": 1.48 }, @@ -4359,9 +4359,9 @@ } }, "max": 2.21, - "min": 0.180, - "median": 0.530, - "amount": 0.850 + "min": 0.18, + "median": 0.53, + "amount": 0.85 }, { "type": "FoodNutrient", @@ -4386,7 +4386,7 @@ "max": 2.62, "min": 2.09, "median": 2.28, - "amount": 2.30 + "amount": 2.3 }, { "type": "FoodNutrient", @@ -4434,7 +4434,7 @@ } }, "max": 0.004, - "min": 0.000, + "min": 0.0, "median": 0.002, "amount": 0.002 }, @@ -4458,7 +4458,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.200, + "max": 0.2, "min": 0.045, "median": 0.068, "amount": 0.107 @@ -4534,9 +4534,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -4558,7 +4558,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.010, + "max": 0.01, "min": 0.001, "median": 0.002, "amount": 0.004 @@ -4651,7 +4651,7 @@ } }, "max": 0.002, - "min": 0.000, + "min": 0.0, "median": 0.001, "amount": 0.001 }, @@ -4745,7 +4745,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.170 + "amount": 0.17 }, { "type": "FoodNutrient", @@ -4767,10 +4767,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 1.46E+4, - "min": 8.93E+3, - "median": 1.28E+4, - "amount": 1.27E+4 + "max": 1.46e4, + "min": 8.93e3, + "median": 1.28e4, + "amount": 1.27e4 }, { "type": "FoodNutrient", @@ -4793,9 +4793,9 @@ } }, "max": 2.12, - "min": 0.550, - "median": 0.710, - "amount": 0.780 + "min": 0.55, + "median": 0.71, + "amount": 0.78 }, { "type": "FoodNutrient", @@ -4915,7 +4915,7 @@ }, "max": 0.188, "min": 0.094, - "median": 0.140, + "median": 0.14, "amount": 0.137 }, { @@ -4963,7 +4963,7 @@ } }, "max": 1.75, - "min": 0.880, + "min": 0.88, "median": 1.44, "amount": 1.41 }, @@ -4987,7 +4987,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 2.00, + "max": 2.0, "min": 1.42, "median": 1.64, "amount": 1.66 @@ -5058,7 +5058,7 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.650, + "max": 0.65, "min": 0.058, "median": 0.412, "amount": 0.364 @@ -5108,10 +5108,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -5133,10 +5133,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.000, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "max": 0.0, + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -5159,9 +5159,9 @@ } }, "max": 0.001, - "min": 0.000, - "median": 0.000, - "amount": 0.000 + "min": 0.0, + "median": 0.0, + "amount": 0.0 }, { "type": "FoodNutrient", @@ -5183,10 +5183,10 @@ "description": "Analytical or derived from analytical" } }, - "max": 0.280, - "min": 0.140, - "median": 0.230, - "amount": 0.230 + "max": 0.28, + "min": 0.14, + "median": 0.23, + "amount": 0.23 }, { "type": "FoodNutrient", @@ -5207,7 +5207,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 5.50 + "amount": 5.5 }, { "type": "FoodNutrient", @@ -5270,7 +5270,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -5375,7 +5375,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -5396,7 +5396,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -5417,7 +5417,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -5438,7 +5438,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", @@ -5459,7 +5459,7 @@ "description": "Analytical or derived from analytical" } }, - "amount": 0.000 + "amount": 0.0 }, { "type": "FoodNutrient", diff --git a/package/pom.xml b/package/pom.xml index 74dd1e9802..cd0b38da7e 100644 --- a/package/pom.xml +++ b/package/pom.xml @@ -47,7 +47,7 @@ ${maven-assembly-plugin.version} - distribution-package + full-package package single @@ -56,7 +56,39 @@ false arcadedb-${project.version} - ./src/main/assembly/archive.xml + ./src/main/assembly/full.xml + + false + gnu + + + + minimal-package + package + + single + + + false + arcadedb-minimal-${project.version} + + ./src/main/assembly/minimal.xml + + false + gnu + + + + headless-package + package + + single + + + false + arcadedb-headless-${project.version} + + ./src/main/assembly/headless.xml false gnu @@ -82,6 +114,11 @@ arcadedb-server ${project.parent.version} + + com.arcadedb + arcadedb-studio + ${project.parent.version} + com.arcadedb arcadedb-gremlin @@ -160,13 +197,53 @@ ${maven-resources-plugin.version} - copy-resources + copy-resources-full + validate + + copy-resources + + + ${project.build.directory}/arcadedb-package-${project.version}.dir + + + + src/main/docker + + Dockerfile + + false + + + + + + copy-resources-minimal validate copy-resources - ${project.build.directory}/arcadedb-${project.version}.dir + ${project.build.directory}/arcadedb-minimal-${project.version}.dir + + + + src/main/docker + + Dockerfile + + false + + + + + + copy-resources-headless + validate + + copy-resources + + + ${project.build.directory}/arcadedb-headless-${project.version}.dir @@ -207,7 +284,39 @@ arcadedata/arcadedb - ${project.build.directory}/arcadedb-${project.version}.dir + ${project.build.directory}/arcadedb-package-${project.version}.dir + + + + ${docker-maven-plugin.platform} + + + + latest + ${project.version} + + + + + arcadedata/arcadedb-minimal + + ${project.build.directory}/arcadedb-minimal-${project.version}.dir + + + + ${docker-maven-plugin.platform} + + + + latest + ${project.version} + + + + + arcadedata/arcadedb-headless + + ${project.build.directory}/arcadedb-headless-${project.version}.dir @@ -227,5 +336,4 @@ - diff --git a/package/src/main/assembly/archive.xml b/package/src/main/assembly/full.xml similarity index 95% rename from package/src/main/assembly/archive.xml rename to package/src/main/assembly/full.xml index a9a3453893..71f688409c 100644 --- a/package/src/main/assembly/archive.xml +++ b/package/src/main/assembly/full.xml @@ -16,9 +16,9 @@ limitations under the License. --> - - distribution + + full dir diff --git a/package/src/main/assembly/headless.xml b/package/src/main/assembly/headless.xml new file mode 100644 index 0000000000..6aca626867 --- /dev/null +++ b/package/src/main/assembly/headless.xml @@ -0,0 +1,104 @@ + + + + + minimal + + + dir + tar.gz + zip + + + + + + ${basedir}/src/main/scripts + bin + + *.sh + *.bat + + 755 + true + + + + ${basedir}/src/main/config + config + + *.yaml + *.json + *.groovy + *.properties + + 755 + true + + + databases + + **/* + + + + log + + **/* + + + + + + + + + ${basedir}/../README.md + 666 + + + ${basedir}/../LICENSE + 666 + + + + + + lib + + *:jar:* + + + com.arcadedb:arcadedb-gremlin + com.arcadedb:arcadedb-redisw + com.arcadedb:arcadedb-mongodbw + com.arcadedb:arcadedb-graphql + com.arcadedb:arcadedb-studio + + + + + diff --git a/package/src/main/assembly/minimal.xml b/package/src/main/assembly/minimal.xml new file mode 100644 index 0000000000..f620e38bdd --- /dev/null +++ b/package/src/main/assembly/minimal.xml @@ -0,0 +1,103 @@ + + + + + minimal + + + dir + tar.gz + zip + + + + + + ${basedir}/src/main/scripts + bin + + *.sh + *.bat + + 755 + true + + + + ${basedir}/src/main/config + config + + *.yaml + *.json + *.groovy + *.properties + + 755 + true + + + databases + + **/* + + + + log + + **/* + + + + + + + + + ${basedir}/../README.md + 666 + + + ${basedir}/../LICENSE + 666 + + + + + + lib + + *:jar:* + + + com.arcadedb:arcadedb-gremlin + com.arcadedb:arcadedb-redisw + com.arcadedb:arcadedb-mongodbw + com.arcadedb:arcadedb-graphql + + + + + diff --git a/package/src/main/config/arcadedb-statefulset.yaml b/package/src/main/config/arcadedb-statefulset.yaml index e420a6cf3d..9f0344177e 100644 --- a/package/src/main/config/arcadedb-statefulset.yaml +++ b/package/src/main/config/arcadedb-statefulset.yaml @@ -137,7 +137,7 @@ spec: - metadata: name: datadir spec: - accessModes: [ "ReadWriteOnce" ] + accessModes: ["ReadWriteOnce"] resources: requests: storage: 10Gi diff --git a/package/src/main/config/gremlin-server.yaml b/package/src/main/config/gremlin-server.yaml index 97c9f8ef53..d518fc0e40 100644 --- a/package/src/main/config/gremlin-server.yaml +++ b/package/src/main/config/gremlin-server.yaml @@ -11,9 +11,9 @@ scriptEngines: - org.opencypher.gremlin.traversal.CustomFunctions - org.opencypher.gremlin.traversal.CustomPredicate methodImports: - - 'java.lang.Math#*' - - 'org.opencypher.gremlin.traversal.CustomPredicate#*' - - 'org.opencypher.gremlin.traversal.CustomFunctions#*' + - "java.lang.Math#*" + - "org.opencypher.gremlin.traversal.CustomPredicate#*" + - "org.opencypher.gremlin.traversal.CustomFunctions#*" org.apache.tinkerpop.gremlin.jsr223.ScriptFileGremlinPlugin: files: - ./config/gremlin-server.groovy @@ -31,4 +31,4 @@ serializers: ioRegistries: - com.arcadedb.gremlin.io.ArcadeIoRegistry processors: - - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 }} + - { className: org.apache.tinkerpop.gremlin.server.op.session.SessionOpProcessor, config: { sessionTimeout: 28800000 } } diff --git a/package/src/main/config/server-groups.json b/package/src/main/config/server-groups.json index bb0f2e8f5e..203185f34e 100644 --- a/package/src/main/config/server-groups.json +++ b/package/src/main/config/server-groups.json @@ -3,20 +3,12 @@ "*": { "groups": { "admin": { - "access": [ - "updateSecurity", - "updateSchema" - ], + "access": ["updateSecurity", "updateSchema"], "resultSetLimit": -1, "readTimeout": -1, "types": { "*": { - "access": [ - "createRecord", - "readRecord", - "updateRecord", - "deleteRecord" - ] + "access": ["createRecord", "readRecord", "updateRecord", "deleteRecord"] } } }, @@ -26,9 +18,7 @@ "readTimeout": -1, "types": { "*": { - "access": [ - "readRecord" - ] + "access": ["readRecord"] } } }, diff --git a/package/src/main/docker/Dockerfile-multi b/package/src/main/docker/Dockerfile-multi deleted file mode 100644 index a70f31dd6e..0000000000 --- a/package/src/main/docker/Dockerfile-multi +++ /dev/null @@ -1,70 +0,0 @@ -# -# Copyright © 2021-present Arcade Data Ltd (info@arcadedata.com) -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -#-------------------------------------------------------------------------------------------------------------- -# USE THIS FROM THE COMMAND LINE (FROM MAVEN IS STILL NOT SUPPORTED BUILDX TO GENERATE MULTIPLE ARCHITECTURES) -#-------------------------------------------------------------------------------------------------------------- -# $> cd package -# $> docker buildx build --platform linux/amd64,linux/arm64 --push -t arcadedata/arcadedb -f src/main/docker/Dockerfile-multi ./target/arcadedb-23.3.1-SNAPSHOT.dir/ -#-------------------------------------------------------------------------------------------------------------- - -FROM eclipse-temurin:11 - -LABEL maintainer="Arcade Data LTD (info@arcadedb.com)" - -ENV JAVA_OPTS=" " - -ENV ARCADEDB_OPTS_MEMORY="-Xms2G -Xmx2G" - -ENV ARCADEDB_JMX="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.rmi.port=9998" - -RUN useradd -ms /bin/bash arcadedb - -WORKDIR /home/arcadedb - -COPY --chown=arcadedb:arcadedb ./arcadedb-* ./ -RUN chmod +x ./bin/*.sh - -# Volumes available -VOLUME [ "/home/arcadedb/databases"] - -VOLUME [ "/home/arcadedb/log"] - -VOLUME [ "/home/arcadedb/config"] - -# ArcadeDB HTTP API & STUDIO -EXPOSE 2480 - -# ArcadeDB Binary Protocol (replication) -EXPOSE 2424 - -# Gremlin Server (Apache TinkerPop) -EXPOSE 8182 - -# Postgres protocol -EXPOSE 5432 - -# Redis protocol -EXPOSE 6379 - -# MongoDB Protocol -EXPOSE 27017 - -# JMX for monitoring -EXPOSE 9999 -EXPOSE 9998 - -CMD ["./bin/server.sh"] diff --git a/pom.xml b/pom.xml index 5580b91992..dc792d40db 100644 --- a/pom.xml +++ b/pom.xml @@ -121,6 +121,7 @@ redisw postgresw coverage + studio package e2e @@ -272,26 +273,6 @@ maven-assembly-plugin ${maven-assembly-plugin.version} - - - distribution-package - package - - single - - - false - - ./src/main/assembly/archive.xml - - - - - false - gnu - - - diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.bootstrap.min.css b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.bootstrap.min.css deleted file mode 100644 index d256454448..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.bootstrap.min.css +++ /dev/null @@ -1 +0,0 @@ -div.dt-autofill-handle{position:absolute;height:8px;width:8px;z-index:102;box-sizing:border-box;background:#337ab7;cursor:pointer}div.dtk-focus-alt div.dt-autofill-handle{background:#ff8b33}div.dt-autofill-select{position:absolute;z-index:1001;background-color:#337ab7;background-image:repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,0.5) 5px, rgba(255,255,255,0.5) 10px)}div.dt-autofill-select.top,div.dt-autofill-select.bottom{height:3px;margin-top:-1px}div.dt-autofill-select.left,div.dt-autofill-select.right{width:3px;margin-left:-1px}div.dt-autofill-list{position:fixed;top:50%;left:50%;width:500px;margin-left:-250px;background-color:white;border-radius:6px;box-shadow:0 0 5px #555;border:2px solid #444;z-index:11;box-sizing:border-box;padding:1.5em 2em}div.dt-autofill-list ul{display:table;margin:0;padding:0;list-style:none;width:100%}div.dt-autofill-list ul li{display:table-row}div.dt-autofill-list ul li:last-child div.dt-autofill-question,div.dt-autofill-list ul li:last-child div.dt-autofill-button{border-bottom:none}div.dt-autofill-list ul li:hover{background-color:#f6f6f6}div.dt-autofill-list div.dt-autofill-question{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-list div.dt-autofill-question input[type=number]{padding:6px;width:30px;margin:-2px 0}div.dt-autofill-list div.dt-autofill-button{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:10}div.dt-autofill-list div.dt-autofill-question input[type=number]{padding:6px;width:60px;margin:-2px 0} diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.bootstrap4.min.css b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.bootstrap4.min.css deleted file mode 100644 index c40c1f98aa..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.bootstrap4.min.css +++ /dev/null @@ -1 +0,0 @@ -div.dt-autofill-handle{position:absolute;height:8px;width:8px;z-index:102;box-sizing:border-box;background:#0275d8;cursor:pointer}div.dtk-focus-alt div.dt-autofill-handle{background:#ff8b33}div.dt-autofill-select{position:absolute;z-index:1001;background-color:#0275d8;background-image:repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,0.5) 5px, rgba(255,255,255,0.5) 10px)}div.dt-autofill-select.top,div.dt-autofill-select.bottom{height:3px;margin-top:-1px}div.dt-autofill-select.left,div.dt-autofill-select.right{width:3px;margin-left:-1px}div.dt-autofill-list{position:fixed;top:50%;left:50%;width:500px;margin-left:-250px;background-color:white;border-radius:6px;box-shadow:0 0 5px #555;border:2px solid #444;z-index:11;box-sizing:border-box;padding:1.5em 2em}div.dt-autofill-list ul{display:table;margin:0;padding:0;list-style:none;width:100%}div.dt-autofill-list ul li{display:table-row}div.dt-autofill-list ul li:last-child div.dt-autofill-question,div.dt-autofill-list ul li:last-child div.dt-autofill-button{border-bottom:none}div.dt-autofill-list ul li:hover{background-color:#f6f6f6}div.dt-autofill-list div.dt-autofill-question{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-list div.dt-autofill-question input[type=number]{padding:6px;width:30px;margin:-2px 0}div.dt-autofill-list div.dt-autofill-button{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:10}div.dt-autofill-list div.dt-autofill-question input[type=number]{padding:6px;width:60px;margin:-2px 0} diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.dataTables.min.css b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.dataTables.min.css deleted file mode 100644 index 5027123bdf..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.dataTables.min.css +++ /dev/null @@ -1 +0,0 @@ -div.dt-autofill-handle{position:absolute;height:8px;width:8px;z-index:102;box-sizing:border-box;background:#3366ff;cursor:pointer}div.dtk-focus-alt div.dt-autofill-handle{background:#ff8b33}div.dt-autofill-select{position:absolute;z-index:1001;background-color:#4989de;background-image:repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,0.5) 5px, rgba(255,255,255,0.5) 10px)}div.dt-autofill-select.top,div.dt-autofill-select.bottom{height:3px;margin-top:-1px}div.dt-autofill-select.left,div.dt-autofill-select.right{width:3px;margin-left:-1px}div.dt-autofill-list{position:fixed;top:50%;left:50%;width:500px;margin-left:-250px;background-color:white;border-radius:6px;box-shadow:0 0 5px #555;border:2px solid #444;z-index:11;box-sizing:border-box;padding:1.5em 2em}div.dt-autofill-list ul{display:table;margin:0;padding:0;list-style:none;width:100%}div.dt-autofill-list ul li{display:table-row}div.dt-autofill-list ul li:last-child div.dt-autofill-question,div.dt-autofill-list ul li:last-child div.dt-autofill-button{border-bottom:none}div.dt-autofill-list ul li:hover{background-color:#f6f6f6}div.dt-autofill-list div.dt-autofill-question{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-list div.dt-autofill-question input[type=number]{padding:6px;width:30px;margin:-2px 0}div.dt-autofill-list div.dt-autofill-button{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-list div.dt-autofill-button button{color:white;margin:0;padding:6px 12px;text-align:center;border:1px solid #2e6da4;background-color:#337ab7;border-radius:4px;cursor:pointer;vertical-align:middle}div.dt-autofill-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:10} diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.foundation.min.css b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.foundation.min.css deleted file mode 100644 index 1cc7d74b41..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.foundation.min.css +++ /dev/null @@ -1 +0,0 @@ -div.dt-autofill-handle{position:absolute;height:8px;width:8px;z-index:102;box-sizing:border-box;background:#008CBA;cursor:pointer}div.dtk-focus-alt div.dt-autofill-handle{background:#ff8b33}div.dt-autofill-select{position:absolute;z-index:1001;background-color:#008CBA;background-image:repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,0.5) 5px, rgba(255,255,255,0.5) 10px)}div.dt-autofill-select.top,div.dt-autofill-select.bottom{height:3px;margin-top:-1px}div.dt-autofill-select.left,div.dt-autofill-select.right{width:3px;margin-left:-1px}div.dt-autofill-list{position:fixed;top:50%;left:50%;width:500px;margin-left:-250px;background-color:white;border-radius:6px;box-shadow:0 0 5px #555;border:2px solid #444;z-index:11;box-sizing:border-box;padding:1.5em 2em}div.dt-autofill-list ul{display:table;margin:0;padding:0;list-style:none;width:100%}div.dt-autofill-list ul li{display:table-row}div.dt-autofill-list ul li:last-child div.dt-autofill-question,div.dt-autofill-list ul li:last-child div.dt-autofill-button{border-bottom:none}div.dt-autofill-list ul li:hover{background-color:#f6f6f6}div.dt-autofill-list div.dt-autofill-question{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-list div.dt-autofill-question input[type=number]{padding:6px;width:30px;margin:-2px 0}div.dt-autofill-list div.dt-autofill-button{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:10}div.dt-autofill-list button{margin:0} diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.jqueryui.min.css b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.jqueryui.min.css deleted file mode 100644 index 10b6ec4926..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.jqueryui.min.css +++ /dev/null @@ -1 +0,0 @@ -div.dt-autofill-handle{position:absolute;height:8px;width:8px;z-index:102;box-sizing:border-box;background:#3366ff;cursor:pointer}div.dtk-focus-alt div.dt-autofill-handle{background:#ff8b33}div.dt-autofill-select{position:absolute;z-index:1001;background-color:#4989de;background-image:repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,0.5) 5px, rgba(255,255,255,0.5) 10px)}div.dt-autofill-select.top,div.dt-autofill-select.bottom{height:3px;margin-top:-1px}div.dt-autofill-select.left,div.dt-autofill-select.right{width:3px;margin-left:-1px}div.dt-autofill-list{position:fixed;top:50%;left:50%;width:500px;margin-left:-250px;background-color:white;border-radius:6px;box-shadow:0 0 5px #555;border:2px solid #444;z-index:11;box-sizing:border-box;padding:1.5em 2em}div.dt-autofill-list ul{display:table;margin:0;padding:0;list-style:none;width:100%}div.dt-autofill-list ul li{display:table-row}div.dt-autofill-list ul li:last-child div.dt-autofill-question,div.dt-autofill-list ul li:last-child div.dt-autofill-button{border-bottom:none}div.dt-autofill-list ul li:hover{background-color:#f6f6f6}div.dt-autofill-list div.dt-autofill-question{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-list div.dt-autofill-question input[type=number]{padding:6px;width:30px;margin:-2px 0}div.dt-autofill-list div.dt-autofill-button{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:10}div.dt-autofill-list button{padding:0.35em 1em} diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.semanticui.min.css b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.semanticui.min.css deleted file mode 100644 index 665145eef3..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/css/autoFill.semanticui.min.css +++ /dev/null @@ -1 +0,0 @@ -div.dt-autofill-handle{position:absolute;height:8px;width:8px;z-index:102;box-sizing:border-box;background:#888;cursor:pointer}div.dtk-focus-alt div.dt-autofill-handle{background:#ff8b33}div.dt-autofill-select{position:absolute;z-index:1001;background-color:#888;background-image:repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,0.5) 5px, rgba(255,255,255,0.5) 10px)}div.dt-autofill-select.top,div.dt-autofill-select.bottom{height:3px;margin-top:-1px}div.dt-autofill-select.left,div.dt-autofill-select.right{width:3px;margin-left:-1px}div.dt-autofill-list{position:fixed;top:50%;left:50%;width:500px;margin-left:-250px;background-color:white;border-radius:6px;box-shadow:0 0 5px #555;border:2px solid #444;z-index:11;box-sizing:border-box;padding:1.5em 2em}div.dt-autofill-list ul{display:table;margin:0;padding:0;list-style:none;width:100%}div.dt-autofill-list ul li{display:table-row}div.dt-autofill-list ul li:last-child div.dt-autofill-question,div.dt-autofill-list ul li:last-child div.dt-autofill-button{border-bottom:none}div.dt-autofill-list ul li:hover{background-color:#f6f6f6}div.dt-autofill-list div.dt-autofill-question{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-list div.dt-autofill-question input[type=number]{padding:6px;width:30px;margin:-2px 0}div.dt-autofill-list div.dt-autofill-button{display:table-cell;padding:0.5em 0;border-bottom:1px solid #ccc}div.dt-autofill-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:10} diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap.js deleted file mode 100644 index 92c6170b15..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap.js +++ /dev/null @@ -1,43 +0,0 @@ -/*! Bootstrap integration for DataTables' AutoFill - * ©2015 SpryMedia Ltd - datatables.net/license - */ - -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net-bs', 'datatables.net-autofill'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net-bs')(root, $).$; - } - - if ( ! $.fn.dataTable.AutoFill ) { - require('datatables.net-autofill')(root, $); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - - -DataTable.AutoFill.classes.btn = 'btn btn-primary'; - - -return DataTable; -})); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap.min.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap.min.js deleted file mode 100644 index fd8dcbf692..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - Bootstrap integration for DataTables' AutoFill - ©2015 SpryMedia Ltd - datatables.net/license -*/ -(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs","datatables.net-autofill"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,c){a||(a=window);c&&c.fn.dataTable||(c=require("datatables.net-bs")(a,c).$);c.fn.dataTable.AutoFill||require("datatables.net-autofill")(a,c);return b(c,a,a.document)}:b(jQuery,window,document)})(function(b,a,c,d){b=b.fn.dataTable;b.AutoFill.classes.btn="btn btn-primary";return b}); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap4.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap4.js deleted file mode 100644 index a73cf983dd..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap4.js +++ /dev/null @@ -1,43 +0,0 @@ -/*! Bootstrap integration for DataTables' AutoFill - * ©2015 SpryMedia Ltd - datatables.net/license - */ - -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net-bs4', 'datatables.net-autofill'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net-bs4')(root, $).$; - } - - if ( ! $.fn.dataTable.AutoFill ) { - require('datatables.net-autofill')(root, $); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - - -DataTable.AutoFill.classes.btn = 'btn btn-primary'; - - -return DataTable; -})); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap4.min.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap4.min.js deleted file mode 100644 index e97763de84..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.bootstrap4.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - Bootstrap integration for DataTables' AutoFill - ©2015 SpryMedia Ltd - datatables.net/license -*/ -(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-autofill"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,c){a||(a=window);c&&c.fn.dataTable||(c=require("datatables.net-bs4")(a,c).$);c.fn.dataTable.AutoFill||require("datatables.net-autofill")(a,c);return b(c,a,a.document)}:b(jQuery,window,document)})(function(b,a,c,d){b=b.fn.dataTable;b.AutoFill.classes.btn="btn btn-primary";return b}); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.foundation.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.foundation.js deleted file mode 100644 index 54c3bbf726..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.foundation.js +++ /dev/null @@ -1,43 +0,0 @@ -/*! Foundation integration for DataTables' AutoFill - * ©2015 SpryMedia Ltd - datatables.net/license - */ - -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net-zf', 'datatables.net-autofill'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net-zf')(root, $).$; - } - - if ( ! $.fn.dataTable.AutoFill ) { - require('datatables.net-autofill')(root, $); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - - -DataTable.AutoFill.classes.btn = 'button tiny'; - - -return DataTable; -})); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.foundation.min.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.foundation.min.js deleted file mode 100644 index bb27b7cdb9..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.foundation.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - Foundation integration for DataTables' AutoFill - ©2015 SpryMedia Ltd - datatables.net/license -*/ -(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net-zf","datatables.net-autofill"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,c){a||(a=window);c&&c.fn.dataTable||(c=require("datatables.net-zf")(a,c).$);c.fn.dataTable.AutoFill||require("datatables.net-autofill")(a,c);return b(c,a,a.document)}:b(jQuery,window,document)})(function(b,a,c,d){b=b.fn.dataTable;b.AutoFill.classes.btn="button tiny";return b}); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.jqueryui.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.jqueryui.js deleted file mode 100644 index b645433e02..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.jqueryui.js +++ /dev/null @@ -1,43 +0,0 @@ -/*! jQuery UI integration for DataTables' AutoFill - * ©2015 SpryMedia Ltd - datatables.net/license - */ - -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net-jqui', 'datatables.net-autofill'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net-jqui')(root, $).$; - } - - if ( ! $.fn.dataTable.AutoFill ) { - require('datatables.net-autofill')(root, $); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - - -DataTable.AutoFill.classes.btn = 'ui-button ui-state-default ui-corner-all'; - - -return DataTable; -})); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.jqueryui.min.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.jqueryui.min.js deleted file mode 100644 index 914b15b339..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.jqueryui.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - jQuery UI integration for DataTables' AutoFill - ©2015 SpryMedia Ltd - datatables.net/license -*/ -(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net-jqui","datatables.net-autofill"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,c){a||(a=window);c&&c.fn.dataTable||(c=require("datatables.net-jqui")(a,c).$);c.fn.dataTable.AutoFill||require("datatables.net-autofill")(a,c);return b(c,a,a.document)}:b(jQuery,window,document)})(function(b,a,c,d){b=b.fn.dataTable;b.AutoFill.classes.btn="ui-button ui-state-default ui-corner-all"; -return b}); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.semanticui.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.semanticui.js deleted file mode 100644 index d109d76fa9..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.semanticui.js +++ /dev/null @@ -1,43 +0,0 @@ -/*! Bootstrap integration for DataTables' AutoFill - * ©2015 SpryMedia Ltd - datatables.net/license - */ - -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net-se', 'datatables.net-autofill'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net-se')(root, $).$; - } - - if ( ! $.fn.dataTable.AutoFill ) { - require('datatables.net-autofill')(root, $); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - - -DataTable.AutoFill.classes.btn = 'ui button'; - - -return DataTable; -})); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.semanticui.min.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.semanticui.min.js deleted file mode 100644 index 4134043a48..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/autoFill.semanticui.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! - Bootstrap integration for DataTables' AutoFill - ©2015 SpryMedia Ltd - datatables.net/license -*/ -(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net-se","datatables.net-autofill"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,c){a||(a=window);c&&c.fn.dataTable||(c=require("datatables.net-se")(a,c).$);c.fn.dataTable.AutoFill||require("datatables.net-autofill")(a,c);return b(c,a,a.document)}:b(jQuery,window,document)})(function(b,a,c,d){b=b.fn.dataTable;b.AutoFill.classes.btn="ui button";return b}); diff --git a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/dataTables.autoFill.js b/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/dataTables.autoFill.js deleted file mode 100644 index ae1d243c10..0000000000 --- a/server/src/main/resources/static/components/DataTables/AutoFill-2.3.4/js/dataTables.autoFill.js +++ /dev/null @@ -1,1212 +0,0 @@ -/*! AutoFill 2.3.4 - * ©2008-2019 SpryMedia Ltd - datatables.net/license - */ - -/** - * @summary AutoFill - * @description Add Excel like click and drag auto-fill options to DataTables - * @version 2.3.4 - * @file dataTables.autoFill.js - * @author SpryMedia Ltd (www.sprymedia.co.uk) - * @contact www.sprymedia.co.uk/contact - * @copyright Copyright 2010-2019 SpryMedia Ltd. - * - * This source file is free software, available under the following license: - * MIT license - http://datatables.net/license/mit - * - * This source file is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details. - * - * For details please refer to: http://www.datatables.net - */ -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net')(root, $).$; - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - - -var _instance = 0; - -/** - * AutoFill provides Excel like auto-fill features for a DataTable - * - * @class AutoFill - * @constructor - * @param {object} oTD DataTables settings object - * @param {object} oConfig Configuration object for AutoFill - */ -var AutoFill = function( dt, opts ) -{ - if ( ! DataTable.versionCheck || ! DataTable.versionCheck( '1.10.8' ) ) { - throw( "Warning: AutoFill requires DataTables 1.10.8 or greater"); - } - - // User and defaults configuration object - this.c = $.extend( true, {}, - DataTable.defaults.autoFill, - AutoFill.defaults, - opts - ); - - /** - * @namespace Settings object which contains customisable information for AutoFill instance - */ - this.s = { - /** @type {DataTable.Api} DataTables' API instance */ - dt: new DataTable.Api( dt ), - - /** @type {String} Unique namespace for events attached to the document */ - namespace: '.autoFill'+(_instance++), - - /** @type {Object} Cached dimension information for use in the mouse move event handler */ - scroll: {}, - - /** @type {integer} Interval object used for smooth scrolling */ - scrollInterval: null, - - handle: { - height: 0, - width: 0 - }, - - /** - * Enabled setting - * @type {Boolean} - */ - enabled: false - }; - - - /** - * @namespace Common and useful DOM elements for the class instance - */ - this.dom = { - /** @type {jQuery} AutoFill handle */ - handle: $('
'), - - /** - * @type {Object} Selected cells outline - Need to use 4 elements, - * otherwise the mouse over if you back into the selected rectangle - * will be over that element, rather than the cells! - */ - select: { - top: $('
'), - right: $('
'), - bottom: $('
'), - left: $('
') - }, - - /** @type {jQuery} Fill type chooser background */ - background: $('
'), - - /** @type {jQuery} Fill type chooser */ - list: $('
'+this.s.dt.i18n('autoFill.info', '')+'
    '), - - /** @type {jQuery} DataTables scrolling container */ - dtScroll: null, - - /** @type {jQuery} Offset parent element */ - offsetParent: null - }; - - - /* Constructor logic */ - this._constructor(); -}; - - - -$.extend( AutoFill.prototype, { - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Public methods (exposed via the DataTables API below) - */ - enabled: function () - { - return this.s.enabled; - }, - - - enable: function ( flag ) - { - var that = this; - - if ( flag === false ) { - return this.disable(); - } - - this.s.enabled = true; - - this._focusListener(); - - this.dom.handle.on( 'mousedown', function (e) { - that._mousedown( e ); - return false; - } ); - - return this; - }, - - disable: function () - { - this.s.enabled = false; - - this._focusListenerRemove(); - - return this; - }, - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Constructor - */ - - /** - * Initialise the RowReorder instance - * - * @private - */ - _constructor: function () - { - var that = this; - var dt = this.s.dt; - var dtScroll = $('div.dataTables_scrollBody', this.s.dt.table().container()); - - // Make the instance accessible to the API - dt.settings()[0].autoFill = this; - - if ( dtScroll.length ) { - this.dom.dtScroll = dtScroll; - - // Need to scroll container to be the offset parent - if ( dtScroll.css('position') === 'static' ) { - dtScroll.css( 'position', 'relative' ); - } - } - - if ( this.c.enable !== false ) { - this.enable(); - } - - dt.on( 'destroy.autoFill', function () { - that._focusListenerRemove(); - } ); - }, - - - /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Private methods - */ - - /** - * Display the AutoFill drag handle by appending it to a table cell. This - * is the opposite of the _detach method. - * - * @param {node} node TD/TH cell to insert the handle into - * @private - */ - _attach: function ( node ) - { - var dt = this.s.dt; - var idx = dt.cell( node ).index(); - var handle = this.dom.handle; - var handleDim = this.s.handle; - - if ( ! idx || dt.columns( this.c.columns ).indexes().indexOf( idx.column ) === -1 ) { - this._detach(); - return; - } - - if ( ! this.dom.offsetParent ) { - // We attach to the table's offset parent - this.dom.offsetParent = $( dt.table().node() ).offsetParent(); - } - - if ( ! handleDim.height || ! handleDim.width ) { - // Append to document so we can get its size. Not expecting it to - // change during the life time of the page - handle.appendTo( 'body' ); - handleDim.height = handle.outerHeight(); - handleDim.width = handle.outerWidth(); - } - - // Might need to go through multiple offset parents - var offset = this._getPosition( node, this.dom.offsetParent ); - - this.dom.attachedTo = node; - handle - .css( { - top: offset.top + node.offsetHeight - handleDim.height, - left: offset.left + node.offsetWidth - handleDim.width - } ) - .appendTo( this.dom.offsetParent ); - }, - - - /** - * Determine can the fill type should be. This can be automatic, or ask the - * end user. - * - * @param {array} cells Information about the selected cells from the key - * up function - * @private - */ - _actionSelector: function ( cells ) - { - var that = this; - var dt = this.s.dt; - var actions = AutoFill.actions; - var available = []; - - // "Ask" each plug-in if it wants to handle this data - $.each( actions, function ( key, action ) { - if ( action.available( dt, cells ) ) { - available.push( key ); - } - } ); - - if ( available.length === 1 && this.c.alwaysAsk === false ) { - // Only one action available - enact it immediately - var result = actions[ available[0] ].execute( dt, cells ); - this._update( result, cells ); - } - else { - // Multiple actions available - ask the end user what they want to do - var list = this.dom.list.children('ul').empty(); - - // Add a cancel option - available.push( 'cancel' ); - - $.each( available, function ( i, name ) { - list.append( $('
  • ') - .append( - '
    '+ - actions[ name ].option( dt, cells )+ - '
    ' - ) - .append( $('
    ' ) - .append( $('') - .on( 'click', function () { - var result = actions[ name ].execute( - dt, cells, $(this).closest('li') - ); - that._update( result, cells ); - - that.dom.background.remove(); - that.dom.list.remove(); - } ) - ) - ) - ); - } ); - - this.dom.background.appendTo( 'body' ); - this.dom.list.appendTo( 'body' ); - - this.dom.list.css( 'margin-top', this.dom.list.outerHeight()/2 * -1 ); - } - }, - - - /** - * Remove the AutoFill handle from the document - * - * @private - */ - _detach: function () - { - this.dom.attachedTo = null; - this.dom.handle.detach(); - }, - - - /** - * Draw the selection outline by calculating the range between the start - * and end cells, then placing the highlighting elements to draw a rectangle - * - * @param {node} target End cell - * @param {object} e Originating event - * @private - */ - _drawSelection: function ( target, e ) - { - // Calculate boundary for start cell to this one - var dt = this.s.dt; - var start = this.s.start; - var startCell = $(this.dom.start); - var end = { - row: this.c.vertical ? - dt.rows( { page: 'current' } ).nodes().indexOf( target.parentNode ) : - start.row, - column: this.c.horizontal ? - $(target).index() : - start.column - }; - var colIndx = dt.column.index( 'toData', end.column ); - var endRow = dt.row( ':eq('+end.row+')', { page: 'current' } ); // Workaround for M581 - var endCell = $( dt.cell( endRow.index(), colIndx ).node() ); - - // Be sure that is a DataTables controlled cell - if ( ! dt.cell( endCell ).any() ) { - return; - } - - // if target is not in the columns available - do nothing - if ( dt.columns( this.c.columns ).indexes().indexOf( colIndx ) === -1 ) { - return; - } - - this.s.end = end; - - var top, bottom, left, right, height, width; - - top = start.row < end.row ? startCell : endCell; - bottom = start.row < end.row ? endCell : startCell; - left = start.column < end.column ? startCell : endCell; - right = start.column < end.column ? endCell : startCell; - - top = this._getPosition( top.get(0) ).top; - left = this._getPosition( left.get(0) ).left; - height = this._getPosition( bottom.get(0) ).top + bottom.outerHeight() - top; - width = this._getPosition( right.get(0) ).left + right.outerWidth() - left; - - var select = this.dom.select; - select.top.css( { - top: top, - left: left, - width: width - } ); - - select.left.css( { - top: top, - left: left, - height: height - } ); - - select.bottom.css( { - top: top + height, - left: left, - width: width - } ); - - select.right.css( { - top: top, - left: left + width, - height: height - } ); - }, - - - /** - * Use the Editor API to perform an update based on the new data for the - * cells - * - * @param {array} cells Information about the selected cells from the key - * up function - * @private - */ - _editor: function ( cells ) - { - var dt = this.s.dt; - var editor = this.c.editor; - - if ( ! editor ) { - return; - } - - // Build the object structure for Editor's multi-row editing - var idValues = {}; - var nodes = []; - var fields = editor.fields(); - - for ( var i=0, ien=cells.length ; i=end ; i-- ) { - out.push( i ); - } - } - - return out; - }, - - - /** - * Move the window and DataTables scrolling during a drag to scroll new - * content into view. This is done by proximity to the edge of the scrolling - * container of the mouse - for example near the top edge of the window - * should scroll up. This is a little complicated as there are two elements - * that can be scrolled - the window and the DataTables scrolling view port - * (if scrollX and / or scrollY is enabled). - * - * @param {object} e Mouse move event object - * @private - */ - _shiftScroll: function ( e ) - { - var that = this; - var dt = this.s.dt; - var scroll = this.s.scroll; - var runInterval = false; - var scrollSpeed = 5; - var buffer = 65; - var - windowY = e.pageY - document.body.scrollTop, - windowX = e.pageX - document.body.scrollLeft, - windowVert, windowHoriz, - dtVert, dtHoriz; - - // Window calculations - based on the mouse position in the window, - // regardless of scrolling - if ( windowY < buffer ) { - windowVert = scrollSpeed * -1; - } - else if ( windowY > scroll.windowHeight - buffer ) { - windowVert = scrollSpeed; - } - - if ( windowX < buffer ) { - windowHoriz = scrollSpeed * -1; - } - else if ( windowX > scroll.windowWidth - buffer ) { - windowHoriz = scrollSpeed; - } - - // DataTables scrolling calculations - based on the table's position in - // the document and the mouse position on the page - if ( scroll.dtTop !== null && e.pageY < scroll.dtTop + buffer ) { - dtVert = scrollSpeed * -1; - } - else if ( scroll.dtTop !== null && e.pageY > scroll.dtTop + scroll.dtHeight - buffer ) { - dtVert = scrollSpeed; - } - - if ( scroll.dtLeft !== null && e.pageX < scroll.dtLeft + buffer ) { - dtHoriz = scrollSpeed * -1; - } - else if ( scroll.dtLeft !== null && e.pageX > scroll.dtLeft + scroll.dtWidth - buffer ) { - dtHoriz = scrollSpeed; - } - - // This is where it gets interesting. We want to continue scrolling - // without requiring a mouse move, so we need an interval to be - // triggered. The interval should continue until it is no longer needed, - // but it must also use the latest scroll commands (for example consider - // that the mouse might move from scrolling up to scrolling left, all - // with the same interval running. We use the `scroll` object to "pass" - // this information to the interval. Can't use local variables as they - // wouldn't be the ones that are used by an already existing interval! - if ( windowVert || windowHoriz || dtVert || dtHoriz ) { - scroll.windowVert = windowVert; - scroll.windowHoriz = windowHoriz; - scroll.dtVert = dtVert; - scroll.dtHoriz = dtHoriz; - runInterval = true; - } - else if ( this.s.scrollInterval ) { - // Don't need to scroll - remove any existing timer - clearInterval( this.s.scrollInterval ); - this.s.scrollInterval = null; - } - - // If we need to run the interval to scroll and there is no existing - // interval (if there is an existing one, it will continue to run) - if ( ! this.s.scrollInterval && runInterval ) { - this.s.scrollInterval = setInterval( function () { - // Don't need to worry about setting scroll <0 or beyond the - // scroll bound as the browser will just reject that. - if ( scroll.windowVert ) { - document.body.scrollTop += scroll.windowVert; - } - if ( scroll.windowHoriz ) { - document.body.scrollLeft += scroll.windowHoriz; - } - - // DataTables scrolling - if ( scroll.dtVert || scroll.dtHoriz ) { - var scroller = that.dom.dtScroll[0]; - - if ( scroll.dtVert ) { - scroller.scrollTop += scroll.dtVert; - } - if ( scroll.dtHoriz ) { - scroller.scrollLeft += scroll.dtHoriz; - } - } - }, 20 ); - } - }, - - - /** - * Update the DataTable after the user has selected what they want to do - * - * @param {false|undefined} result Return from the `execute` method - can - * be false internally to do nothing. This is not documented for plug-ins - * and is used only by the cancel option. - * @param {array} cells Information about the selected cells from the key - * up function, argumented with the set values - * @private - */ - _update: function ( result, cells ) - { - // Do nothing on `false` return from an execute function - if ( result === false ) { - return; - } - - var dt = this.s.dt; - var cell; - var columns = dt.columns( this.c.columns ).indexes(); - - // Potentially allow modifications to the cells matrix - this._emitEvent( 'preAutoFill', [ dt, cells ] ); - - this._editor( cells ); - - // Automatic updates are not performed if `update` is null and the - // `editor` parameter is passed in - the reason being that Editor will - // update the data once submitted - var update = this.c.update !== null ? - this.c.update : - this.c.editor ? - false : - true; - - if ( update ) { - for ( var i=0, ien=cells.length ; i' - ); - }, - - execute: function ( dt, cells, node ) { - var value = cells[0][0].data * 1; - var increment = $('input', node).val() * 1; - - for ( var i=0, ien=cells.length ; i'+cells[0][0].label+'' ); - }, - - execute: function ( dt, cells, node ) { - var value = cells[0][0].data; - - for ( var i=0, ien=cells.length ; i 1 && cells[0].length > 1; - }, - - option: function ( dt, cells ) { - return dt.i18n('autoFill.fillHorizontal', 'Fill cells horizontally' ); - }, - - execute: function ( dt, cells, node ) { - for ( var i=0, ien=cells.length ; i 1 && cells[0].length > 1; - }, - - option: function ( dt, cells ) { - return dt.i18n('autoFill.fillVertical', 'Fill cells vertically' ); - }, - - execute: function ( dt, cells, node ) { - for ( var i=0, ien=cells.length ; i'),select:{top:a('
    '),right:a('
    '),bottom:a('
    '),left:a('
    ')},background:a('
    '),list:a('
    '+this.s.dt.i18n("autoFill.info", -"")+"
      "),dtScroll:null,offsetParent:null};this._constructor()};a.extend(m.prototype,{enabled:function(){return this.s.enabled},enable:function(b){var d=this;if(!1===b)return this.disable();this.s.enabled=!0;this._focusListener();this.dom.handle.on("mousedown",function(b){d._mousedown(b);return!1});return this},disable:function(){this.s.enabled=!1;this._focusListenerRemove();return this},_constructor:function(){var b=this,d=this.s.dt,c=a("div.dataTables_scrollBody",this.s.dt.table().container()); -d.settings()[0].autoFill=this;c.length&&(this.dom.dtScroll=c,"static"===c.css("position")&&c.css("position","relative"));!1!==this.c.enable&&this.enable();d.on("destroy.autoFill",function(){b._focusListenerRemove()})},_attach:function(b){var d=this.s.dt,c=d.cell(b).index(),f=this.dom.handle,g=this.s.handle;c&&-1!==d.columns(this.c.columns).indexes().indexOf(c.column)?(this.dom.offsetParent||(this.dom.offsetParent=a(d.table().node()).offsetParent()),g.height&&g.width||(f.appendTo("body"),g.height= -f.outerHeight(),g.width=f.outerWidth()),d=this._getPosition(b,this.dom.offsetParent),this.dom.attachedTo=b,f.css({top:d.top+b.offsetHeight-g.height,left:d.left+b.offsetWidth-g.width}).appendTo(this.dom.offsetParent)):this._detach()},_actionSelector:function(b){var d=this,c=this.s.dt,f=m.actions,g=[];a.each(f,function(d,a){a.available(c,b)&&g.push(d)});if(1===g.length&&!1===this.c.alwaysAsk){var e=f[g[0]].execute(c,b);this._update(e,b)}else{var n=this.dom.list.children("ul").empty();g.push("cancel"); -a.each(g,function(g,e){n.append(a("
    • ").append('
      '+f[e].option(c,b)+"
      ").append(a('
      ').append(a('").on("click",function(){var g=f[e].execute(c,b,a(this).closest("li"));d._update(g,b);d.dom.background.remove();d.dom.list.remove()}))))});this.dom.background.appendTo("body");this.dom.list.appendTo("body");this.dom.list.css("margin-top",this.dom.list.outerHeight()/ -2*-1)}},_detach:function(){this.dom.attachedTo=null;this.dom.handle.detach()},_drawSelection:function(b,d){var c=this.s.dt;d=this.s.start;var f=a(this.dom.start),g={row:this.c.vertical?c.rows({page:"current"}).nodes().indexOf(b.parentNode):d.row,column:this.c.horizontal?a(b).index():d.column};b=c.column.index("toData",g.column);var e=c.row(":eq("+g.row+")",{page:"current"});e=a(c.cell(e.index(),b).node());if(c.cell(e).any()&&-1!==c.columns(this.c.columns).indexes().indexOf(b)){this.s.end=g;c=d.row< -g.row?f:e;var n=d.row=a;b--)c.push(b);return c},_shiftScroll:function(b){var a=this,c=this.s.scroll,f=!1,g=b.pageY-e.body.scrollTop,h=b.pageX-e.body.scrollLeft,n,k,l,m;65>g?n=-5:g>c.windowHeight-65&&(n=5);65>h?k=-5:h>c.windowWidth-65&&(k=5);null!==c.dtTop&&b.pageYc.dtTop+c.dtHeight-65&&(l=5);null!==c.dtLeft&&b.pageX< -c.dtLeft+65?m=-5:null!==c.dtLeft&&b.pageX>c.dtLeft+c.dtWidth-65&&(m=5);n||k||l||m?(c.windowVert=n,c.windowHoriz=k,c.dtVert=l,c.dtHoriz=m,f=!0):this.s.scrollInterval&&(clearInterval(this.s.scrollInterval),this.s.scrollInterval=null);!this.s.scrollInterval&&f&&(this.s.scrollInterval=setInterval(function(){c.windowVert&&(e.body.scrollTop+=c.windowVert);c.windowHoriz&&(e.body.scrollLeft+=c.windowHoriz);if(c.dtVert||c.dtHoriz){var b=a.dom.dtScroll[0];c.dtVert&&(b.scrollTop+=c.dtVert);c.dtHoriz&&(b.scrollLeft+= -c.dtHoriz)}},20))},_update:function(b,a){if(!1!==b){b=this.s.dt;var c=b.columns(this.c.columns).indexes();this._emitEvent("preAutoFill",[b,a]);this._editor(a);if(null!==this.c.update?this.c.update:!this.c.editor){for(var d=0,g=a.length;d')},execute:function(b,d,c){b=1*d[0][0].data;c=1*a("input",c).val();for(var f=0,g=d.length;f"+a[0][0].label+"")},execute:function(b,a,c){b=a[0][0].data;c=0;for(var d=a.length;cdiv{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}div.dt-button-collection{position:absolute}div.dt-button-collection ul.dropdown-menu{display:block;z-index:2002;min-width:100%}div.dt-button-collection div.dt-button-collection-title{background-color:white}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-200px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>:last-child{display:block !important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection>:last-child>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:400px}div.dt-button-collection.two-column>:last-child{padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px}div.dt-button-collection.three-column>:last-child{padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px}div.dt-button-collection.four-column>:last-child{padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2001}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5em}div.dt-buttons a.btn{float:none}}div.dt-buttons button.btn.processing,div.dt-buttons div.btn.processing,div.dt-buttons a.btn.processing{color:rgba(0,0,0,0.2)}div.dt-buttons button.btn.processing:after,div.dt-buttons div.btn.processing:after,div.dt-buttons a.btn.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear} diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.bootstrap4.min.css b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.bootstrap4.min.css deleted file mode 100644 index fd0f71b3b8..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.bootstrap4.min.css +++ /dev/null @@ -1 +0,0 @@ -@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}div.dt-button-collection{position:absolute;z-index:2001}div.dt-button-collection div.dropdown-menu{display:block;z-index:2002;min-width:100%}div.dt-button-collection div.dt-button-collection-title{background-color:white;border:1px solid rgba(0,0,0,0.15)}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-200px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>:last-child{display:block !important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection>:last-child>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:400px}div.dt-button-collection.two-column>:last-child{padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px}div.dt-button-collection.three-column>:last-child{padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px}div.dt-button-collection.four-column>:last-child{padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-collection.fixed{max-width:none}div.dt-button-collection.fixed:before,div.dt-button-collection.fixed:after{display:none}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:999}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5em}div.dt-buttons a.btn{float:none}}div.dt-buttons button.btn.processing,div.dt-buttons div.btn.processing,div.dt-buttons a.btn.processing{color:rgba(0,0,0,0.2)}div.dt-buttons button.btn.processing:after,div.dt-buttons div.btn.processing:after,div.dt-buttons a.btn.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear} diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.dataTables.min.css b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.dataTables.min.css deleted file mode 100644 index 19a1f1deba..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.dataTables.min.css +++ /dev/null @@ -1 +0,0 @@ -@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}button.dt-button,div.dt-button,a.dt-button{position:relative;display:inline-block;box-sizing:border-box;margin-right:0.333em;margin-bottom:0.333em;padding:0.5em 1em;border:1px solid #999;border-radius:2px;cursor:pointer;font-size:0.88em;line-height:1.6em;color:black;white-space:nowrap;overflow:hidden;background-color:#e9e9e9;background-image:-webkit-linear-gradient(top, #fff 0%, #e9e9e9 100%);background-image:-moz-linear-gradient(top, #fff 0%, #e9e9e9 100%);background-image:-ms-linear-gradient(top, #fff 0%, #e9e9e9 100%);background-image:-o-linear-gradient(top, #fff 0%, #e9e9e9 100%);background-image:linear-gradient(to bottom, #fff 0%, #e9e9e9 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='white', EndColorStr='#e9e9e9');-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration:none;outline:none;text-overflow:ellipsis}button.dt-button.disabled,div.dt-button.disabled,a.dt-button.disabled{color:#999;border:1px solid #d0d0d0;cursor:default;background-color:#f9f9f9;background-image:-webkit-linear-gradient(top, #fff 0%, #f9f9f9 100%);background-image:-moz-linear-gradient(top, #fff 0%, #f9f9f9 100%);background-image:-ms-linear-gradient(top, #fff 0%, #f9f9f9 100%);background-image:-o-linear-gradient(top, #fff 0%, #f9f9f9 100%);background-image:linear-gradient(to bottom, #fff 0%, #f9f9f9 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#ffffff', EndColorStr='#f9f9f9')}button.dt-button:active:not(.disabled),button.dt-button.active:not(.disabled),div.dt-button:active:not(.disabled),div.dt-button.active:not(.disabled),a.dt-button:active:not(.disabled),a.dt-button.active:not(.disabled){background-color:#e2e2e2;background-image:-webkit-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);background-image:-moz-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);background-image:-ms-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);background-image:-o-linear-gradient(top, #f3f3f3 0%, #e2e2e2 100%);background-image:linear-gradient(to bottom, #f3f3f3 0%, #e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f3f3f3', EndColorStr='#e2e2e2');box-shadow:inset 1px 1px 3px #999999}button.dt-button:active:not(.disabled):hover:not(.disabled),button.dt-button.active:not(.disabled):hover:not(.disabled),div.dt-button:active:not(.disabled):hover:not(.disabled),div.dt-button.active:not(.disabled):hover:not(.disabled),a.dt-button:active:not(.disabled):hover:not(.disabled),a.dt-button.active:not(.disabled):hover:not(.disabled){box-shadow:inset 1px 1px 3px #999999;background-color:#cccccc;background-image:-webkit-linear-gradient(top, #eaeaea 0%, #ccc 100%);background-image:-moz-linear-gradient(top, #eaeaea 0%, #ccc 100%);background-image:-ms-linear-gradient(top, #eaeaea 0%, #ccc 100%);background-image:-o-linear-gradient(top, #eaeaea 0%, #ccc 100%);background-image:linear-gradient(to bottom, #eaeaea 0%, #ccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#eaeaea', EndColorStr='#cccccc')}button.dt-button:hover,div.dt-button:hover,a.dt-button:hover{text-decoration:none}button.dt-button:hover:not(.disabled),div.dt-button:hover:not(.disabled),a.dt-button:hover:not(.disabled){border:1px solid #666;background-color:#e0e0e0;background-image:-webkit-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);background-image:-moz-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);background-image:-ms-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);background-image:-o-linear-gradient(top, #f9f9f9 0%, #e0e0e0 100%);background-image:linear-gradient(to bottom, #f9f9f9 0%, #e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f9f9f9', EndColorStr='#e0e0e0')}button.dt-button:focus:not(.disabled),div.dt-button:focus:not(.disabled),a.dt-button:focus:not(.disabled){border:1px solid #426c9e;text-shadow:0 1px 0 #c4def1;outline:none;background-color:#79ace9;background-image:-webkit-linear-gradient(top, #bddef4 0%, #79ace9 100%);background-image:-moz-linear-gradient(top, #bddef4 0%, #79ace9 100%);background-image:-ms-linear-gradient(top, #bddef4 0%, #79ace9 100%);background-image:-o-linear-gradient(top, #bddef4 0%, #79ace9 100%);background-image:linear-gradient(to bottom, #bddef4 0%, #79ace9 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#bddef4', EndColorStr='#79ace9')}.dt-button embed{outline:none}div.dt-buttons{position:relative;float:left}div.dt-buttons.buttons-right{float:right}div.dt-button-collection{position:absolute;top:0;left:0;width:150px;margin-top:3px;padding:8px 8px 4px 8px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.4);background-color:white;overflow:hidden;z-index:2002;border-radius:5px;box-shadow:3px 3px 5px rgba(0,0,0,0.3);box-sizing:border-box}div.dt-button-collection button.dt-button,div.dt-button-collection div.dt-button,div.dt-button-collection a.dt-button{position:relative;left:0;right:0;width:100%;display:block;float:none;margin-bottom:4px;margin-right:0}div.dt-button-collection button.dt-button:active:not(.disabled),div.dt-button-collection button.dt-button.active:not(.disabled),div.dt-button-collection div.dt-button:active:not(.disabled),div.dt-button-collection div.dt-button.active:not(.disabled),div.dt-button-collection a.dt-button:active:not(.disabled),div.dt-button-collection a.dt-button.active:not(.disabled){background-color:#dadada;background-image:-webkit-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-moz-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-ms-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:-o-linear-gradient(top, #f0f0f0 0%, #dadada 100%);background-image:linear-gradient(to bottom, #f0f0f0 0%, #dadada 100%);filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#f0f0f0', EndColorStr='#dadada');box-shadow:inset 1px 1px 3px #666}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-200px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>:last-child{display:block !important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection>:last-child>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:400px}div.dt-button-collection.two-column>:last-child{padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px}div.dt-button-collection.three-column>:last-child{padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px}div.dt-button-collection.four-column>:last-child{padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:-ms-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-moz-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-o-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, rgba(0,0,0,0.3)), color-stop(1, rgba(0,0,0,0.7)));background:-webkit-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:2001}@media screen and (max-width: 640px){div.dt-buttons{float:none !important;text-align:center}}button.dt-button.processing,div.dt-button.processing,a.dt-button.processing{color:rgba(0,0,0,0.2)}button.dt-button.processing:after,div.dt-button.processing:after,a.dt-button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear} diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.foundation.min.css b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.foundation.min.css deleted file mode 100644 index b39ae433b1..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.foundation.min.css +++ /dev/null @@ -1 +0,0 @@ -@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}ul.dt-buttons li{margin:0}ul.dt-buttons li.active a{box-shadow:inset 0 0 10px rgba(0,0,0,0.6)}ul.dt-buttons.button-group a{margin-bottom:0}div.dt-button-collection{position:absolute}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-200px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>:last-child{display:block !important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection>:last-child>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:400px}div.dt-button-collection.two-column>:last-child{padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px}div.dt-button-collection.three-column>:last-child{padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px}div.dt-button-collection.four-column>:last-child{padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-collection.fixed{max-width:none}div.dt-button-collection.fixed:before,div.dt-button-collection.fixed:after{display:none}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:88}@media screen and (max-width: 767px){ul.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5rem}ul.dt-buttons li{float:none}}div.button-group.stacked.dropdown-pane{margin-top:2px;padding:1px;z-index:89}div.button-group.stacked.dropdown-pane a.button{display:block;margin-bottom:1px;border-right:none}div.button-group.stacked.dropdown-pane a.button:last-child{margin-bottom:0;margin-right:1px}div.dt-buttons button.button.processing,div.dt-buttons div.button.processing,div.dt-buttons a.button.processing{color:rgba(0,0,0,0.2);color:rgba(255,255,255,0.2);border-top-color:white;border-bottom-color:white}div.dt-buttons button.button.processing:after,div.dt-buttons div.button.processing:after,div.dt-buttons a.button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear} diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.jqueryui.min.css b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.jqueryui.min.css deleted file mode 100644 index 78ff8a52cd..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.jqueryui.min.css +++ /dev/null @@ -1 +0,0 @@ -@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}div.dt-buttons{position:relative;float:left}div.dt-buttons .dt-button{margin-right:0}div.dt-buttons .dt-button span.ui-icon{display:inline-block;vertical-align:middle;margin-top:-2px}div.dt-buttons .dt-button:active{outline:none}div.dt-buttons .dt-button:hover>span{background-color:rgba(0,0,0,0.05)}div.dt-button-collection{position:absolute;top:0;left:0;width:150px;margin-top:3px;padding:8px 8px 4px 8px;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.4);background-color:#f3f3f3;background-color:rgba(255,255,255,0.3);overflow:hidden;z-index:2002;border-radius:5px;box-shadow:3px 3px 5px rgba(0,0,0,0.3);z-index:2002;-webkit-column-gap:0;-moz-column-gap:0;-ms-column-gap:0;-o-column-gap:0;column-gap:0}div.dt-button-collection .dt-button{position:relative;left:0;right:0;width:100%;box-sizing:border-box;display:block;float:none;margin-right:0;margin-bottom:4px}div.dt-button-collection .dt-button:hover>span{background-color:rgba(0,0,0,0.05)}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-200px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>:last-child{display:block !important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection>:last-child>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:400px}div.dt-button-collection.two-column>:last-child{padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px}div.dt-button-collection.three-column>:last-child{padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px}div.dt-button-collection.four-column>:last-child{padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);background:-ms-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-moz-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-o-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:-webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, rgba(0,0,0,0.3)), color-stop(1, rgba(0,0,0,0.7)));background:-webkit-radial-gradient(center, ellipse farthest-corner, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);background:radial-gradient(ellipse farthest-corner at center, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.7) 100%);z-index:2001}@media screen and (max-width: 640px){div.dt-buttons{float:none !important;text-align:center}}button.dt-button.processing,div.dt-button.processing,a.dt-button.processing{color:rgba(0,0,0,0.2)}button.dt-button.processing:after,div.dt-button.processing:after,a.dt-button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear} diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.semanticui.min.css b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.semanticui.min.css deleted file mode 100644 index d37381322a..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/buttons.semanticui.min.css +++ /dev/null @@ -1 +0,0 @@ -@keyframes dtb-spinner{100%{transform:rotate(360deg)}}@-o-keyframes dtb-spinner{100%{-o-transform:rotate(360deg);transform:rotate(360deg)}}@-ms-keyframes dtb-spinner{100%{-ms-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes dtb-spinner{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-moz-keyframes dtb-spinner{100%{-moz-transform:rotate(360deg);transform:rotate(360deg)}}div.dt-button-info{position:fixed;top:50%;left:50%;width:400px;margin-top:-100px;margin-left:-200px;background-color:white;border:2px solid #111;box-shadow:3px 3px 8px rgba(0,0,0,0.3);border-radius:3px;text-align:center;z-index:21}div.dt-button-info h2{padding:0.5em;margin:0;font-weight:normal;border-bottom:1px solid #ddd;background-color:#f3f3f3}div.dt-button-info>div{padding:1em}div.dt-button-collection-title{text-align:center;padding:0.3em 0 0.5em;font-size:0.9em}div.dt-button-collection-title:empty{display:none}div.dt-button-collection{position:absolute;top:0;left:0;min-width:200px;margin-top:3px !important;z-index:2002;background:white}div.dt-button-collection.fixed{position:fixed;top:50%;left:50%;margin-left:-75px;border-radius:0}div.dt-button-collection.fixed.two-column{margin-left:-200px}div.dt-button-collection.fixed.three-column{margin-left:-225px}div.dt-button-collection.fixed.four-column{margin-left:-300px}div.dt-button-collection>:last-child{display:block !important;-webkit-column-gap:8px;-moz-column-gap:8px;-ms-column-gap:8px;-o-column-gap:8px;column-gap:8px}div.dt-button-collection>:last-child>*{-webkit-column-break-inside:avoid;break-inside:avoid}div.dt-button-collection.two-column{width:400px}div.dt-button-collection.two-column>:last-child{padding-bottom:1px;-webkit-column-count:2;-moz-column-count:2;-ms-column-count:2;-o-column-count:2;column-count:2}div.dt-button-collection.three-column{width:450px}div.dt-button-collection.three-column>:last-child{padding-bottom:1px;-webkit-column-count:3;-moz-column-count:3;-ms-column-count:3;-o-column-count:3;column-count:3}div.dt-button-collection.four-column{width:600px}div.dt-button-collection.four-column>:last-child{padding-bottom:1px;-webkit-column-count:4;-moz-column-count:4;-ms-column-count:4;-o-column-count:4;column-count:4}div.dt-button-collection .dt-button{border-radius:0}button.buttons-collection.ui.button span:after{display:inline-block;content:"▾";padding-left:0.5em}div.dt-button-background{position:fixed;top:0;left:0;width:100%;height:100%;z-index:2001}@media screen and (max-width: 767px){div.dt-buttons{float:none;width:100%;text-align:center;margin-bottom:0.5em}div.dt-buttons a.btn{float:none}}div.dt-buttons button.button.processing,div.dt-buttons div.button.processing,div.dt-buttons a.button.processing{position:relative;color:rgba(0,0,0,0.2)}div.dt-buttons button.button.processing:after,div.dt-buttons div.button.processing:after,div.dt-buttons a.button.processing:after{position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;box-sizing:border-box;display:block;content:' ';border:2px solid #282828;border-radius:50%;border-left-color:transparent;border-right-color:transparent;animation:dtb-spinner 1500ms infinite linear;-o-animation:dtb-spinner 1500ms infinite linear;-ms-animation:dtb-spinner 1500ms infinite linear;-webkit-animation:dtb-spinner 1500ms infinite linear;-moz-animation:dtb-spinner 1500ms infinite linear} diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/common.scss b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/common.scss deleted file mode 100644 index d5ec826924..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/common.scss +++ /dev/null @@ -1,37 +0,0 @@ - -div.dt-button-info { - position: fixed; - top: 50%; - left: 50%; - width: 400px; - margin-top: -100px; - margin-left: -200px; - background-color: white; - border: 2px solid #111; - box-shadow: 3px 3px 8px rgba( 0, 0, 0, 0.3); - border-radius: 3px; - text-align: center; - z-index: 21; - - h2 { - padding: 0.5em; - margin: 0; - font-weight: normal; - border-bottom: 1px solid #ddd; - background-color: #f3f3f3; - } - - > div { - padding: 1em; - } -} - -div.dt-button-collection-title { - text-align: center; - padding: 0.3em 0 0.5em; - font-size: 0.9em; -} - -div.dt-button-collection-title:empty { - display: none; -} diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/mixins.scss b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/mixins.scss deleted file mode 100644 index fce07f12bc..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/css/mixins.scss +++ /dev/null @@ -1,153 +0,0 @@ - -@mixin dtb-two-stop-gradient($fromColor, $toColor) { - background-color: $toColor; /* Fallback */ - background-image: -webkit-linear-gradient(top, $fromColor 0%, $toColor 100%); /* Chrome 10+, Saf5.1+, iOS 5+ */ - background-image: -moz-linear-gradient(top, $fromColor 0%, $toColor 100%); /* FF3.6 */ - background-image: -ms-linear-gradient(top, $fromColor 0%, $toColor 100%); /* IE10 */ - background-image: -o-linear-gradient(top, $fromColor 0%, $toColor 100%); /* Opera 11.10+ */ - background-image: linear-gradient(to bottom, $fromColor 0%, $toColor 100%); - filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#{nth( $fromColor, 1 )}', EndColorStr='#{nth( $toColor, 1 )}'); -} - -@mixin dtb-radial-gradient ($fromColor, $toColor ) { - background: $toColor; /* Fallback */ - background: -ms-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* IE10 Consumer Preview */ - background: -moz-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* Firefox */ - background: -o-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* Opera */ - background: -webkit-gradient(radial, center center, 0, center center, 497, color-stop(0, $fromColor), color-stop(1, $toColor)); /* Webkit (Safari/Chrome 10) */ - background: -webkit-radial-gradient(center, ellipse farthest-corner, $fromColor 0%, $toColor 100%); /* Webkit (Chrome 11+) */ - background: radial-gradient(ellipse farthest-corner at center, $fromColor 0%, $toColor 100%); /* W3C Markup, IE10 Release Preview */ -} - - -@mixin dtb-fixed-collection { - // Fixed positioning feature - &.fixed { - position: fixed; - top: 50%; - left: 50%; - margin-left: -75px; - border-radius: 0; - - &.two-column { - margin-left: -200px; - } - - &.three-column { - margin-left: -225px; - } - - &.four-column { - margin-left: -300px; - } - } - - > :last-child { - > * { - -webkit-column-break-inside: avoid; - break-inside: avoid; - } - - // Multi-column layout feature - display: block !important; - -webkit-column-gap: 8px; - -moz-column-gap: 8px; - -ms-column-gap: 8px; - -o-column-gap: 8px; - column-gap: 8px; - } - - &.two-column { - width: 400px; - - > :last-child { - padding-bottom: 1px; - - -webkit-column-count: 2; - -moz-column-count: 2; - -ms-column-count: 2; - -o-column-count: 2; - column-count: 2; - } - } - - &.three-column { - width: 450px; - - > :last-child { - padding-bottom: 1px; - - -webkit-column-count: 3; - -moz-column-count: 3; - -ms-column-count: 3; - -o-column-count: 3; - column-count: 3; - } - } - - &.four-column { - width: 600px; - - > :last-child { - padding-bottom: 1px; - - -webkit-column-count: 4; - -moz-column-count: 4; - -ms-column-count: 4; - -o-column-count: 4; - column-count: 4; - } - } - - // Chrome fix - 531528 - .dt-button { - border-radius: 0; - } -} - - -@mixin dtb-processing { - color: rgba(0, 0, 0, 0.2); - - &:after { - position: absolute; - top: 50%; - left: 50%; - width: 16px; - height: 16px; - margin: -8px 0 0 -8px; - box-sizing: border-box; - - display: block; - content: ' '; - border: 2px solid rgb(40,40,40); - border-radius: 50%; - border-left-color: transparent; - border-right-color: transparent; - animation: dtb-spinner 1500ms infinite linear; - -o-animation: dtb-spinner 1500ms infinite linear; - -ms-animation: dtb-spinner 1500ms infinite linear; - -webkit-animation: dtb-spinner 1500ms infinite linear; - -moz-animation: dtb-spinner 1500ms infinite linear; - } -} - -@keyframes dtb-spinner { - 100%{ transform: rotate(360deg); } -} - -@-o-keyframes dtb-spinner { - 100%{ -o-transform: rotate(360deg); transform: rotate(360deg); } -} - -@-ms-keyframes dtb-spinner { - 100%{ -ms-transform: rotate(360deg); transform: rotate(360deg); } -} - -@-webkit-keyframes dtb-spinner { - 100%{ -webkit-transform: rotate(360deg); transform: rotate(360deg); } -} - -@-moz-keyframes dtb-spinner { - 100%{ -moz-transform: rotate(360deg); transform: rotate(360deg); } -} diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap.js b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap.js deleted file mode 100644 index 9be7785309..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap.js +++ /dev/null @@ -1,70 +0,0 @@ -/*! Bootstrap integration for DataTables' Buttons - * ©2016 SpryMedia Ltd - datatables.net/license - */ - -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net-bs', 'datatables.net-buttons'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net-bs')(root, $).$; - } - - if ( ! $.fn.dataTable.Buttons ) { - require('datatables.net-buttons')(root, $); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - - -$.extend( true, DataTable.Buttons.defaults, { - dom: { - container: { - className: 'dt-buttons btn-group' - }, - button: { - className: 'btn btn-default' - }, - collection: { - tag: 'ul', - className: 'dropdown-menu', - button: { - tag: 'li', - className: 'dt-button', - active: 'active', - disabled: 'disabled' - }, - buttonLiner: { - tag: 'a', - className: '' - } - } - } -} ); - -DataTable.ext.buttons.collection.text = function ( dt ) { - return dt.i18n('buttons.collection', 'Collection '); -}; - - -return DataTable.Buttons; -})); diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap.min.js b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap.min.js deleted file mode 100644 index 1b4237489c..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - Bootstrap integration for DataTables' Buttons - ©2016 SpryMedia Ltd - datatables.net/license -*/ -(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs")(a,b).$);b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{className:"dt-buttons btn-group"}, -button:{className:"btn btn-default"},collection:{tag:"ul",className:"dropdown-menu",button:{tag:"li",className:"dt-button",active:"active",disabled:"disabled"},buttonLiner:{tag:"a",className:""}}}});a.ext.buttons.collection.text=function(a){return a.i18n("buttons.collection",'Collection ')};return a.Buttons}); diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap4.js b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap4.js deleted file mode 100644 index 4f8ccd5026..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap4.js +++ /dev/null @@ -1,68 +0,0 @@ -/*! Bootstrap integration for DataTables' Buttons - * ©2016 SpryMedia Ltd - datatables.net/license - */ - -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net-bs4', 'datatables.net-buttons'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net-bs4')(root, $).$; - } - - if ( ! $.fn.dataTable.Buttons ) { - require('datatables.net-buttons')(root, $); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - -$.extend( true, DataTable.Buttons.defaults, { - dom: { - container: { - className: 'dt-buttons btn-group flex-wrap' - }, - button: { - className: 'btn btn-secondary' - }, - collection: { - tag: 'div', - className: 'dropdown-menu', - button: { - tag: 'a', - className: 'dt-button dropdown-item', - active: 'active', - disabled: 'disabled' - } - } - }, - buttonCreated: function ( config, button ) { - return config.buttons ? - $('
      ').append(button) : - button; - } -} ); - -DataTable.ext.buttons.collection.className += ' dropdown-toggle'; -DataTable.ext.buttons.collection.rightAlignClassName = 'dropdown-menu-right'; - -return DataTable.Buttons; -})); diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap4.min.js b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap4.min.js deleted file mode 100644 index 2fd39b3456..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.bootstrap4.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/*! - Bootstrap integration for DataTables' Buttons - ©2016 SpryMedia Ltd - datatables.net/license -*/ -(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-buttons"],function(a){return c(a,window,document)}):"object"===typeof exports?module.exports=function(a,b){a||(a=window);b&&b.fn.dataTable||(b=require("datatables.net-bs4")(a,b).$);b.fn.dataTable.Buttons||require("datatables.net-buttons")(a,b);return c(b,a,a.document)}:c(jQuery,window,document)})(function(c,a,b,d){a=c.fn.dataTable;c.extend(!0,a.Buttons.defaults,{dom:{container:{className:"dt-buttons btn-group flex-wrap"}, -button:{className:"btn btn-secondary"},collection:{tag:"div",className:"dropdown-menu",button:{tag:"a",className:"dt-button dropdown-item",active:"active",disabled:"disabled"}}},buttonCreated:function(a,b){return a.buttons?c('
      ').append(b):b}});a.ext.buttons.collection.className+=" dropdown-toggle";a.ext.buttons.collection.rightAlignClassName="dropdown-menu-right";return a.Buttons}); diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.colVis.js b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.colVis.js deleted file mode 100644 index b9529d298f..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.colVis.js +++ /dev/null @@ -1,206 +0,0 @@ -/*! - * Column visibility buttons for Buttons and DataTables. - * 2016 SpryMedia Ltd - datatables.net/license - */ - -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net')(root, $).$; - } - - if ( ! $.fn.dataTable.Buttons ) { - require('datatables.net-buttons')(root, $); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - - -$.extend( DataTable.ext.buttons, { - // A collection of column visibility buttons - colvis: function ( dt, conf ) { - return { - extend: 'collection', - text: function ( dt ) { - return dt.i18n( 'buttons.colvis', 'Column visibility' ); - }, - className: 'buttons-colvis', - buttons: [ { - extend: 'columnsToggle', - columns: conf.columns, - columnText: conf.columnText - } ] - }; - }, - - // Selected columns with individual buttons - toggle column visibility - columnsToggle: function ( dt, conf ) { - var columns = dt.columns( conf.columns ).indexes().map( function ( idx ) { - return { - extend: 'columnToggle', - columns: idx, - columnText: conf.columnText - }; - } ).toArray(); - - return columns; - }, - - // Single button to toggle column visibility - columnToggle: function ( dt, conf ) { - return { - extend: 'columnVisibility', - columns: conf.columns, - columnText: conf.columnText - }; - }, - - // Selected columns with individual buttons - set column visibility - columnsVisibility: function ( dt, conf ) { - var columns = dt.columns( conf.columns ).indexes().map( function ( idx ) { - return { - extend: 'columnVisibility', - columns: idx, - visibility: conf.visibility, - columnText: conf.columnText - }; - } ).toArray(); - - return columns; - }, - - // Single button to set column visibility - columnVisibility: { - columns: undefined, // column selector - text: function ( dt, button, conf ) { - return conf._columnText( dt, conf ); - }, - className: 'buttons-columnVisibility', - action: function ( e, dt, button, conf ) { - var col = dt.columns( conf.columns ); - var curr = col.visible(); - - col.visible( conf.visibility !== undefined ? - conf.visibility : - ! (curr.length ? curr[0] : false ) - ); - }, - init: function ( dt, button, conf ) { - var that = this; - button.attr( 'data-cv-idx', conf.columns ); - - dt - .on( 'column-visibility.dt'+conf.namespace, function (e, settings) { - if ( ! settings.bDestroying && settings.nTable == dt.settings()[0].nTable ) { - that.active( dt.column( conf.columns ).visible() ); - } - } ) - .on( 'column-reorder.dt'+conf.namespace, function (e, settings, details) { - if ( dt.columns( conf.columns ).count() !== 1 ) { - return; - } - - // This button controls the same column index but the text for the column has - // changed - button.text( conf._columnText( dt, conf ) ); - - // Since its a different column, we need to check its visibility - that.active( dt.column( conf.columns ).visible() ); - } ); - - this.active( dt.column( conf.columns ).visible() ); - }, - destroy: function ( dt, button, conf ) { - dt - .off( 'column-visibility.dt'+conf.namespace ) - .off( 'column-reorder.dt'+conf.namespace ); - }, - - _columnText: function ( dt, conf ) { - // Use DataTables' internal data structure until this is presented - // is a public API. The other option is to use - // `$( column(col).node() ).text()` but the node might not have been - // populated when Buttons is constructed. - var idx = dt.column( conf.columns ).index(); - var title = dt.settings()[0].aoColumns[ idx ].sTitle - .replace(/\n/g," ") // remove new lines - .replace(//gi, " ") // replace line breaks with spaces - .replace(//g, "") // remove select tags, including options text - .replace(//g, "") // strip HTML comments - .replace(/<.*?>/g, "") // strip HTML - .replace(/^\s+|\s+$/g,""); // trim - - return conf.columnText ? - conf.columnText( dt, idx, title ) : - title; - } - }, - - - colvisRestore: { - className: 'buttons-colvisRestore', - - text: function ( dt ) { - return dt.i18n( 'buttons.colvisRestore', 'Restore visibility' ); - }, - - init: function ( dt, button, conf ) { - conf._visOriginal = dt.columns().indexes().map( function ( idx ) { - return dt.column( idx ).visible(); - } ).toArray(); - }, - - action: function ( e, dt, button, conf ) { - dt.columns().every( function ( i ) { - // Take into account that ColReorder might have disrupted our - // indexes - var idx = dt.colReorder && dt.colReorder.transpose ? - dt.colReorder.transpose( i, 'toOriginal' ) : - i; - - this.visible( conf._visOriginal[ idx ] ); - } ); - } - }, - - - colvisGroup: { - className: 'buttons-colvisGroup', - - action: function ( e, dt, button, conf ) { - dt.columns( conf.show ).visible( true, false ); - dt.columns( conf.hide ).visible( false, false ); - - dt.columns.adjust(); - }, - - show: [], - - hide: [] - } -} ); - - -return DataTable.Buttons; -})); diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.colVis.min.js b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.colVis.min.js deleted file mode 100644 index 679e3d7657..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.colVis.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - Column visibility buttons for Buttons and DataTables. - 2016 SpryMedia Ltd - datatables.net/license -*/ -(function(f){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(c){return f(c,window,document)}):"object"===typeof exports?module.exports=function(c,e){c||(c=window);e&&e.fn.dataTable||(e=require("datatables.net")(c,e).$);e.fn.dataTable.Buttons||require("datatables.net-buttons")(c,e);return f(e,c,c.document)}:f(jQuery,window,document)})(function(f,c,e,h){c=f.fn.dataTable;f.extend(c.ext.buttons,{colvis:function(a,b){return{extend:"collection", -text:function(b){return b.i18n("buttons.colvis","Column visibility")},className:"buttons-colvis",buttons:[{extend:"columnsToggle",columns:b.columns,columnText:b.columnText}]}},columnsToggle:function(a,b){return a.columns(b.columns).indexes().map(function(a){return{extend:"columnToggle",columns:a,columnText:b.columnText}}).toArray()},columnToggle:function(a,b){return{extend:"columnVisibility",columns:b.columns,columnText:b.columnText}},columnsVisibility:function(a,b){return a.columns(b.columns).indexes().map(function(a){return{extend:"columnVisibility", -columns:a,visibility:b.visibility,columnText:b.columnText}}).toArray()},columnVisibility:{columns:h,text:function(a,b,d){return d._columnText(a,d)},className:"buttons-columnVisibility",action:function(a,b,d,g){a=b.columns(g.columns);b=a.visible();a.visible(g.visibility!==h?g.visibility:!(b.length&&b[0]))},init:function(a,b,d){var g=this;b.attr("data-cv-idx",d.columns);a.on("column-visibility.dt"+d.namespace,function(b,c){c.bDestroying||c.nTable!=a.settings()[0].nTable||g.active(a.column(d.columns).visible())}).on("column-reorder.dt"+ -d.namespace,function(c,e,f){1===a.columns(d.columns).count()&&(b.text(d._columnText(a,d)),g.active(a.column(d.columns).visible()))});this.active(a.column(d.columns).visible())},destroy:function(a,b,d){a.off("column-visibility.dt"+d.namespace).off("column-reorder.dt"+d.namespace)},_columnText:function(a,b){var d=a.column(b.columns).index(),c=a.settings()[0].aoColumns[d].sTitle.replace(/\n/g," ").replace(//gi," ").replace(//g,"").replace(//g,"").replace(/<.*?>/g, -"").replace(/^\s+|\s+$/g,"");return b.columnText?b.columnText(a,d,c):c}},colvisRestore:{className:"buttons-colvisRestore",text:function(a){return a.i18n("buttons.colvisRestore","Restore visibility")},init:function(a,b,d){d._visOriginal=a.columns().indexes().map(function(b){return a.column(b).visible()}).toArray()},action:function(a,b,d,c){b.columns().every(function(a){a=b.colReorder&&b.colReorder.transpose?b.colReorder.transpose(a,"toOriginal"):a;this.visible(c._visOriginal[a])})}},colvisGroup:{className:"buttons-colvisGroup", -action:function(a,b,d,c){b.columns(c.show).visible(!0,!1);b.columns(c.hide).visible(!1,!1);b.columns.adjust()},show:[],hide:[]}});return c.Buttons}); diff --git a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.flash.js b/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.flash.js deleted file mode 100644 index fcb085394d..0000000000 --- a/server/src/main/resources/static/components/DataTables/Buttons-1.6.1/js/buttons.flash.js +++ /dev/null @@ -1,1456 +0,0 @@ -/*! - * Flash export buttons for Buttons and DataTables. - * 2015-2017 SpryMedia Ltd - datatables.net/license - * - * ZeroClipbaord - MIT license - * Copyright (c) 2012 Joseph Huckaby - */ - -(function( factory ){ - if ( typeof define === 'function' && define.amd ) { - // AMD - define( ['jquery', 'datatables.net', 'datatables.net-buttons'], function ( $ ) { - return factory( $, window, document ); - } ); - } - else if ( typeof exports === 'object' ) { - // CommonJS - module.exports = function (root, $) { - if ( ! root ) { - root = window; - } - - if ( ! $ || ! $.fn.dataTable ) { - $ = require('datatables.net')(root, $).$; - } - - if ( ! $.fn.dataTable.Buttons ) { - require('datatables.net-buttons')(root, $); - } - - return factory( $, root, root.document ); - }; - } - else { - // Browser - factory( jQuery, window, document ); - } -}(function( $, window, document, undefined ) { -'use strict'; -var DataTable = $.fn.dataTable; - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * ZeroClipboard dependency - */ - -/* - * ZeroClipboard 1.0.4 with modifications - * Author: Joseph Huckaby - * License: MIT - * - * Copyright (c) 2012 Joseph Huckaby - */ -var ZeroClipboard_TableTools = { - version: "1.0.4-TableTools2", - clients: {}, // registered upload clients on page, indexed by id - moviePath: '', // URL to movie - nextId: 1, // ID of next movie - - $: function(thingy) { - // simple DOM lookup utility function - if (typeof(thingy) == 'string') { - thingy = document.getElementById(thingy); - } - if (!thingy.addClass) { - // extend element with a few useful methods - thingy.hide = function() { this.style.display = 'none'; }; - thingy.show = function() { this.style.display = ''; }; - thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; }; - thingy.removeClass = function(name) { - this.className = this.className.replace( new RegExp("\\s*" + name + "\\s*"), " ").replace(/^\s+/, '').replace(/\s+$/, ''); - }; - thingy.hasClass = function(name) { - return !!this.className.match( new RegExp("\\s*" + name + "\\s*") ); - }; - } - return thingy; - }, - - setMoviePath: function(path) { - // set path to ZeroClipboard.swf - this.moviePath = path; - }, - - dispatch: function(id, eventName, args) { - // receive event from flash movie, send to client - var client = this.clients[id]; - if (client) { - client.receiveEvent(eventName, args); - } - }, - - log: function ( str ) { - console.log( 'Flash: '+str ); - }, - - register: function(id, client) { - // register new client to receive events - this.clients[id] = client; - }, - - getDOMObjectPosition: function(obj) { - // get absolute coordinates for dom element - var info = { - left: 0, - top: 0, - width: obj.width ? obj.width : obj.offsetWidth, - height: obj.height ? obj.height : obj.offsetHeight - }; - - if ( obj.style.width !== "" ) { - info.width = obj.style.width.replace("px",""); - } - - if ( obj.style.height !== "" ) { - info.height = obj.style.height.replace("px",""); - } - - while (obj) { - info.left += obj.offsetLeft; - info.top += obj.offsetTop; - obj = obj.offsetParent; - } - - return info; - }, - - Client: function(elem) { - // constructor for new simple upload client - this.handlers = {}; - - // unique ID - this.id = ZeroClipboard_TableTools.nextId++; - this.movieId = 'ZeroClipboard_TableToolsMovie_' + this.id; - - // register client with singleton to receive flash events - ZeroClipboard_TableTools.register(this.id, this); - - // create movie - if (elem) { - this.glue(elem); - } - } -}; - -ZeroClipboard_TableTools.Client.prototype = { - - id: 0, // unique ID for us - ready: false, // whether movie is ready to receive events or not - movie: null, // reference to movie object - clipText: '', // text to copy to clipboard - fileName: '', // default file save name - action: 'copy', // action to perform - handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor - cssEffects: true, // enable CSS mouse effects on dom container - handlers: null, // user event handlers - sized: false, - sheetName: '', // default sheet name for excel export - - glue: function(elem, title) { - // glue to DOM element - // elem can be ID or actual DOM element object - this.domElement = ZeroClipboard_TableTools.$(elem); - - // float just above object, or zIndex 99 if dom element isn't set - var zIndex = 99; - if (this.domElement.style.zIndex) { - zIndex = parseInt(this.domElement.style.zIndex, 10) + 1; - } - - // find X/Y position of domElement - var box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement); - - // create floating DIV above element - this.div = document.createElement('div'); - var style = this.div.style; - style.position = 'absolute'; - style.left = '0px'; - style.top = '0px'; - style.width = (box.width) + 'px'; - style.height = box.height + 'px'; - style.zIndex = zIndex; - - if ( typeof title != "undefined" && title !== "" ) { - this.div.title = title; - } - if ( box.width !== 0 && box.height !== 0 ) { - this.sized = true; - } - - // style.backgroundColor = '#f00'; // debug - if ( this.domElement ) { - this.domElement.appendChild(this.div); - this.div.innerHTML = this.getHTML( box.width, box.height ).replace(/&/g, '&'); - } - }, - - positionElement: function() { - var box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement); - var style = this.div.style; - - style.position = 'absolute'; - //style.left = (this.domElement.offsetLeft)+'px'; - //style.top = this.domElement.offsetTop+'px'; - style.width = box.width + 'px'; - style.height = box.height + 'px'; - - if ( box.width !== 0 && box.height !== 0 ) { - this.sized = true; - } else { - return; - } - - var flash = this.div.childNodes[0]; - flash.width = box.width; - flash.height = box.height; - }, - - getHTML: function(width, height) { - // return HTML for movie - var html = ''; - var flashvars = 'id=' + this.id + - '&width=' + width + - '&height=' + height; - - if (navigator.userAgent.match(/MSIE/)) { - // IE gets an OBJECT tag - var protocol = location.href.match(/^https/i) ? 'https://' : 'http://'; - html += ''; - } - else { - // all other browsers get an EMBED tag - html += ''; - } - return html; - }, - - hide: function() { - // temporarily hide floater offscreen - if (this.div) { - this.div.style.left = '-2000px'; - } - }, - - show: function() { - // show ourselves after a call to hide() - this.reposition(); - }, - - destroy: function() { - // destroy control and floater - var that = this; - - if (this.domElement && this.div) { - $(this.div).remove(); - - this.domElement = null; - this.div = null; - - $.each( ZeroClipboard_TableTools.clients, function ( id, client ) { - if ( client === that ) { - delete ZeroClipboard_TableTools.clients[ id ]; - } - } ); - } - }, - - reposition: function(elem) { - // reposition our floating div, optionally to new container - // warning: container CANNOT change size, only position - if (elem) { - this.domElement = ZeroClipboard_TableTools.$(elem); - if (!this.domElement) { - this.hide(); - } - } - - if (this.domElement && this.div) { - var box = ZeroClipboard_TableTools.getDOMObjectPosition(this.domElement); - var style = this.div.style; - style.left = '' + box.left + 'px'; - style.top = '' + box.top + 'px'; - } - }, - - clearText: function() { - // clear the text to be copy / saved - this.clipText = ''; - if (this.ready) { - this.movie.clearText(); - } - }, - - appendText: function(newText) { - // append text to that which is to be copied / saved - this.clipText += newText; - if (this.ready) { this.movie.appendText(newText) ;} - }, - - setText: function(newText) { - // set text to be copied to be copied / saved - this.clipText = newText; - if (this.ready) { this.movie.setText(newText) ;} - }, - - setFileName: function(newText) { - // set the file name - this.fileName = newText; - if (this.ready) { - this.movie.setFileName(newText); - } - }, - - setSheetData: function(data) { - // set the xlsx sheet data - if (this.ready) { - this.movie.setSheetData( JSON.stringify( data ) ); - } - }, - - setAction: function(newText) { - // set action (save or copy) - this.action = newText; - if (this.ready) { - this.movie.setAction(newText); - } - }, - - addEventListener: function(eventName, func) { - // add user event listener for event - // event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel - eventName = eventName.toString().toLowerCase().replace(/^on/, ''); - if (!this.handlers[eventName]) { - this.handlers[eventName] = []; - } - this.handlers[eventName].push(func); - }, - - setHandCursor: function(enabled) { - // enable hand cursor (true), or default arrow cursor (false) - this.handCursorEnabled = enabled; - if (this.ready) { - this.movie.setHandCursor(enabled); - } - }, - - setCSSEffects: function(enabled) { - // enable or disable CSS effects on DOM container - this.cssEffects = !!enabled; - }, - - receiveEvent: function(eventName, args) { - var self; - - // receive event from flash - eventName = eventName.toString().toLowerCase().replace(/^on/, ''); - - // special behavior for certain events - switch (eventName) { - case 'load': - // movie claims it is ready, but in IE this isn't always the case... - // bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function - this.movie = document.getElementById(this.movieId); - if (!this.movie) { - self = this; - setTimeout( function() { self.receiveEvent('load', null); }, 1 ); - return; - } - - // firefox on pc needs a "kick" in order to set these in certain cases - if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) { - self = this; - setTimeout( function() { self.receiveEvent('load', null); }, 100 ); - this.ready = true; - return; - } - - this.ready = true; - this.movie.clearText(); - this.movie.appendText( this.clipText ); - this.movie.setFileName( this.fileName ); - this.movie.setAction( this.action ); - this.movie.setHandCursor( this.handCursorEnabled ); - break; - - case 'mouseover': - if (this.domElement && this.cssEffects) { - //this.domElement.addClass('hover'); - if (this.recoverActive) { - this.domElement.addClass('active'); - } - } - break; - - case 'mouseout': - if (this.domElement && this.cssEffects) { - this.recoverActive = false; - if (this.domElement.hasClass('active')) { - this.domElement.removeClass('active'); - this.recoverActive = true; - } - //this.domElement.removeClass('hover'); - } - break; - - case 'mousedown': - if (this.domElement && this.cssEffects) { - this.domElement.addClass('active'); - } - break; - - case 'mouseup': - if (this.domElement && this.cssEffects) { - this.domElement.removeClass('active'); - this.recoverActive = false; - } - break; - } // switch eventName - - if (this.handlers[eventName]) { - for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) { - var func = this.handlers[eventName][idx]; - - if (typeof(func) == 'function') { - // actual function reference - func(this, args); - } - else if ((typeof(func) == 'object') && (func.length == 2)) { - // PHP style object + method, i.e. [myObject, 'myMethod'] - func[0][ func[1] ](this, args); - } - else if (typeof(func) == 'string') { - // name of function - window[func](this, args); - } - } // foreach event handler defined - } // user defined handler for event - } -}; - -ZeroClipboard_TableTools.hasFlash = function () -{ - try { - var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); - if (fo) { - return true; - } - } - catch (e) { - if ( - navigator.mimeTypes && - navigator.mimeTypes['application/x-shockwave-flash'] !== undefined && - navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin - ) { - return true; - } - } - - return false; -}; - -// For the Flash binding to work, ZeroClipboard_TableTools must be on the global -// object list -window.ZeroClipboard_TableTools = ZeroClipboard_TableTools; - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Local (private) functions - */ - -/** - * If a Buttons instance is initlaised before it is placed into the DOM, Flash - * won't be able to bind to it, so we need to wait until it is available, this - * method abstracts that out. - * - * @param {ZeroClipboard} flash ZeroClipboard instance - * @param {jQuery} node Button - */ -var _glue = function ( flash, node ) -{ - var id = node.attr('id'); - - if ( node.parents('html').length ) { - flash.glue( node[0], '' ); - } - else { - setTimeout( function () { - _glue( flash, node ); - }, 500 ); - } -}; - -/** - * Get the sheet name for Excel exports. - * - * @param {object} config Button configuration - */ -var _sheetname = function ( config ) -{ - var sheetName = 'Sheet1'; - - if ( config.sheetName ) { - sheetName = config.sheetName.replace(/[\[\]\*\/\\\?\:]/g, ''); - } - - return sheetName; -}; - -/** - * Set the flash text. This has to be broken up into chunks as the Javascript / - * Flash bridge has a size limit. There is no indication in the Flash - * documentation what this is, and it probably depends upon the browser. - * Experimentation shows that the point is around 50k when data starts to get - * lost, so an 8K limit used here is safe. - * - * @param {ZeroClipboard} flash ZeroClipboard instance - * @param {string} data Data to send to Flash - */ -var _setText = function ( flash, data ) -{ - var parts = data.match(/[\s\S]{1,8192}/g) || []; - - flash.clearText(); - for ( var i=0, len=parts.length ; i 0 ) { - s += separator; - } - - s += boundary ? - boundary + ('' + a[i]).replace( reBoundary, escapeChar+boundary ) + boundary : - a[i]; - } - - return s; - }; - - var header = config.header ? join( data.header )+newLine : ''; - var footer = config.footer && data.footer ? newLine+join( data.footer ) : ''; - var body = []; - - for ( var i=0, ien=data.body.length ; i= 0 ) { - s = String.fromCharCode(n % len + ordA) + s; - n = Math.floor(n / len) - 1; - } - - return s; -} - -/** - * Create an XML node and add any children, attributes, etc without needing to - * be verbose in the DOM. - * - * @param {object} doc XML document - * @param {string} nodeName Node name - * @param {object} opts Options - can be `attr` (attributes), `children` - * (child nodes) and `text` (text content) - * @return {node} Created node - */ -function _createNode( doc, nodeName, opts ){ - var tempNode = doc.createElement( nodeName ); - - if ( opts ) { - if ( opts.attr ) { - $(tempNode).attr( opts.attr ); - } - - if ( opts.children ) { - $.each( opts.children, function ( key, value ) { - tempNode.appendChild( value ); - } ); - } - - if ( opts.text !== null && opts.text !== undefined ) { - tempNode.appendChild( doc.createTextNode( opts.text ) ); - } - } - - return tempNode; -} - -/** - * Get the width for an Excel column based on the contents of that column - * @param {object} data Data for export - * @param {int} col Column index - * @return {int} Column width - */ -function _excelColWidth( data, col ) { - var max = data.header[col].length; - var len, lineSplit, str; - - if ( data.footer && data.footer[col].length > max ) { - max = data.footer[col].length; - } - - for ( var i=0, ien=data.body.length ; i max ) { - max = len; - } - - // Max width rather than having potentially massive column widths - if ( max > 40 ) { - return 52; // 40 * 1.3 - } - } - - max *= 1.3; - - // And a min width - return max > 6 ? max : 6; -} - - var _serialiser = ""; - if (typeof window.XMLSerializer === 'undefined') { - _serialiser = new function () { - this.serializeToString = function (input) { - return input.xml - } - }; - } else { - _serialiser = new XMLSerializer(); - } - - var _ieExcel; - - -/** - * Convert XML documents in an object to strings - * @param {object} obj XLSX document object - */ -function _xlsxToStrings( obj ) { - if ( _ieExcel === undefined ) { - // Detect if we are dealing with IE's _awful_ serialiser by seeing if it - // drop attributes - _ieExcel = _serialiser - .serializeToString( - $.parseXML( excelStrings['xl/worksheets/sheet1.xml'] ) - ) - .indexOf( 'xmlns:r' ) === -1; - } - - $.each( obj, function ( name, val ) { - if ( $.isPlainObject( val ) ) { - _xlsxToStrings( val ); - } - else { - if ( _ieExcel ) { - // IE's XML serialiser will drop some name space attributes from - // from the root node, so we need to save them. Do this by - // replacing the namespace nodes with a regular attribute that - // we convert back when serialised. Edge does not have this - // issue - var worksheet = val.childNodes[0]; - var i, ien; - var attrs = []; - - for ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) { - var attrName = worksheet.attributes[i].nodeName; - var attrValue = worksheet.attributes[i].nodeValue; - - if ( attrName.indexOf( ':' ) !== -1 ) { - attrs.push( { name: attrName, value: attrValue } ); - - worksheet.removeAttribute( attrName ); - } - } - - for ( i=0, ien=attrs.length ; i]*?) xmlns=""([^<>]*?)>/g, '<$1 $2>' ); - - obj[ name ] = str; - } - } ); -} - -// Excel - Pre-defined strings to build a basic XLSX file -var excelStrings = { - "_rels/.rels": - ''+ - ''+ - ''+ - '', - - "xl/_rels/workbook.xml.rels": - ''+ - ''+ - ''+ - ''+ - '', - - "[Content_Types].xml": - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - '', - - "xl/workbook.xml": - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - '', - - "xl/worksheets/sheet1.xml": - ''+ - ''+ - ''+ - ''+ - '', - - "xl/styles.xml": - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ // Excel appears to use this as a dotted background regardless of values but - ''+ // to be valid to the schema, use a patternFill - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - '' -}; -// Note we could use 3 `for` loops for the styles, but when gzipped there is -// virtually no difference in size, since the above can be easily compressed - -// Pattern matching for special number formats. Perhaps this should be exposed -// via an API in future? -var _excelSpecials = [ - { match: /^\-?\d+\.\d%$/, style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p. - { match: /^\-?\d+\.?\d*%$/, style: 56, fmt: function (d) { return d/100; } }, // Percent - { match: /^\-?\$[\d,]+.?\d*$/, style: 57 }, // Dollars - { match: /^\-?£[\d,]+.?\d*$/, style: 58 }, // Pounds - { match: /^\-?€[\d,]+.?\d*$/, style: 59 }, // Euros - { match: /^\([\d,]+\)$/, style: 61, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets - { match: /^\([\d,]+\.\d{2}\)$/, style: 62, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets - 2d.p. - { match: /^[\d,]+$/, style: 63 }, // Numbers with thousand separators - { match: /^[\d,]+\.\d{2}$/, style: 64 } // Numbers with 2d.p. and thousands separators -]; - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * DataTables options and methods - */ - -// Set the default SWF path -DataTable.Buttons.swfPath = '//cdn.datatables.net/buttons/'+DataTable.Buttons.version+'/swf/flashExport.swf'; - -// Method to allow Flash buttons to be resized when made visible - as they are -// of zero height and width if initialised hidden -DataTable.Api.register( 'buttons.resize()', function () { - $.each( ZeroClipboard_TableTools.clients, function ( i, client ) { - if ( client.domElement !== undefined && client.domElement.parentNode ) { - client.positionElement(); - } - } ); -} ); - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Button definitions - */ - -// Copy to clipboard -DataTable.ext.buttons.copyFlash = $.extend( {}, flashButton, { - className: 'buttons-copy buttons-flash', - - text: function ( dt ) { - return dt.i18n( 'buttons.copy', 'Copy' ); - }, - - action: function ( e, dt, button, config ) { - // Check that the trigger did actually occur due to a Flash activation - if ( ! config._fromFlash ) { - return; - } - - this.processing( true ); - - var flash = config._flash; - var exportData = _exportData( dt, config ); - var info = dt.buttons.exportInfo( config ); - var newline = _newLine(config); - var output = exportData.str; - - if ( info.title ) { - output = info.title + newline + newline + output; - } - - if ( info.messageTop ) { - output = info.messageTop + newline + newline + output; - } - - if ( info.messageBottom ) { - output = output + newline + newline + info.messageBottom; - } - - if ( config.customize ) { - output = config.customize( output, config, dt ); - } - - flash.setAction( 'copy' ); - _setText( flash, output ); - - this.processing( false ); - - dt.buttons.info( - dt.i18n( 'buttons.copyTitle', 'Copy to clipboard' ), - dt.i18n( 'buttons.copySuccess', { - _: 'Copied %d rows to clipboard', - 1: 'Copied 1 row to clipboard' - }, data.rows ), - 3000 - ); - }, - - fieldSeparator: '\t', - - fieldBoundary: '' -} ); - -// CSV save file -DataTable.ext.buttons.csvFlash = $.extend( {}, flashButton, { - className: 'buttons-csv buttons-flash', - - text: function ( dt ) { - return dt.i18n( 'buttons.csv', 'CSV' ); - }, - - action: function ( e, dt, button, config ) { - // Set the text - var flash = config._flash; - var data = _exportData( dt, config ); - var info = dt.buttons.exportInfo( config ); - var output = config.customize ? - config.customize( data.str, config, dt ) : - data.str; - - flash.setAction( 'csv' ); - flash.setFileName( info.filename ); - _setText( flash, output ); - }, - - escapeChar: '"' -} ); - -// Excel save file - this is really a CSV file using UTF-8 that Excel can read -DataTable.ext.buttons.excelFlash = $.extend( {}, flashButton, { - className: 'buttons-excel buttons-flash', - - text: function ( dt ) { - return dt.i18n( 'buttons.excel', 'Excel' ); - }, - - action: function ( e, dt, button, config ) { - this.processing( true ); - - var flash = config._flash; - var rowPos = 0; - var rels = $.parseXML( excelStrings['xl/worksheets/sheet1.xml'] ) ; //Parses xml - var relsGet = rels.getElementsByTagName( "sheetData" )[0]; - - var xlsx = { - _rels: { - ".rels": $.parseXML( excelStrings['_rels/.rels'] ) - }, - xl: { - _rels: { - "workbook.xml.rels": $.parseXML( excelStrings['xl/_rels/workbook.xml.rels'] ) - }, - "workbook.xml": $.parseXML( excelStrings['xl/workbook.xml'] ), - "styles.xml": $.parseXML( excelStrings['xl/styles.xml'] ), - "worksheets": { - "sheet1.xml": rels - } - - }, - "[Content_Types].xml": $.parseXML( excelStrings['[Content_Types].xml']) - }; - - var data = dt.buttons.exportData( config.exportOptions ); - var currentRow, rowNode; - var addRow = function ( row ) { - currentRow = rowPos+1; - rowNode = _createNode( rels, "row", { attr: {r:currentRow} } ); - - for ( var i=0, ien=row.length ; ic&&(c=a.footer[b].length);for(var d=0,f=a.body.length;dc&&(c=e);if(40'+c),c=c.replace(/_dt_b_namespace_token_/g,":"));c=c.replace(/<([^<>]*?) xmlns=""([^<>]*?)>/g,"<$1 $2>");a[b]=c}})}var l=g.fn.dataTable,h={version:"1.0.4-TableTools2",clients:{},moviePath:"",nextId:1,$:function(a){"string"==typeof a&&(a=m.getElementById(a));a.addClass||(a.hide=function(){this.style.display="none"},a.show= -function(){this.style.display=""},a.addClass=function(a){this.removeClass(a);this.className+=" "+a},a.removeClass=function(a){this.className=this.className.replace(new RegExp("\\s*"+a+"\\s*")," ").replace(/^\s+/,"").replace(/\s+$/,"")},a.hasClass=function(a){return!!this.className.match(new RegExp("\\s*"+a+"\\s*"))});return a},setMoviePath:function(a){this.moviePath=a},dispatch:function(a,b,c){(a=this.clients[a])&&a.receiveEvent(b,c)},log:function(a){console.log("Flash: "+a)},register:function(a, -b){this.clients[a]=b},getDOMObjectPosition:function(a){var b={left:0,top:0,width:a.width?a.width:a.offsetWidth,height:a.height?a.height:a.offsetHeight};""!==a.style.width&&(b.width=a.style.width.replace("px",""));""!==a.style.height&&(b.height=a.style.height.replace("px",""));for(;a;)b.left+=a.offsetLeft,b.top+=a.offsetTop,a=a.offsetParent;return b},Client:function(a){this.handlers={};this.id=h.nextId++;this.movieId="ZeroClipboard_TableToolsMovie_"+this.id;h.register(this.id,this);a&&this.glue(a)}}; -h.Client.prototype={id:0,ready:!1,movie:null,clipText:"",fileName:"",action:"copy",handCursorEnabled:!0,cssEffects:!0,handlers:null,sized:!1,sheetName:"",glue:function(a,b){this.domElement=h.$(a);a=99;this.domElement.style.zIndex&&(a=parseInt(this.domElement.style.zIndex,10)+1);var c=h.getDOMObjectPosition(this.domElement);this.div=m.createElement("div");var d=this.div.style;d.position="absolute";d.left="0px";d.top="0px";d.width=c.width+"px";d.height=c.height+"px";d.zIndex=a;"undefined"!=typeof b&& -""!==b&&(this.div.title=b);0!==c.width&&0!==c.height&&(this.sized=!0);this.domElement&&(this.domElement.appendChild(this.div),this.div.innerHTML=this.getHTML(c.width,c.height).replace(/&/g,"&"))},positionElement:function(){var a=h.getDOMObjectPosition(this.domElement),b=this.div.style;b.position="absolute";b.width=a.width+"px";b.height=a.height+"px";0!==a.width&&0!==a.height&&(this.sized=!0,b=this.div.childNodes[0],b.width=a.width,b.height=a.height)},getHTML:function(a,b){var c="",d="id="+this.id+ -"&width="+a+"&height="+b;if(navigator.userAgent.match(/MSIE/)){var f=location.href.match(/^https/i)?"https://":"http://";c+=''}else c+='';return c},hide:function(){this.div&&(this.div.style.left="-2000px")}, -show:function(){this.reposition()},destroy:function(){var a=this;this.domElement&&this.div&&(g(this.div).remove(),this.div=this.domElement=null,g.each(h.clients,function(b,c){c===a&&delete h.clients[b]}))},reposition:function(a){a&&((this.domElement=h.$(a))||this.hide());if(this.domElement&&this.div){a=h.getDOMObjectPosition(this.domElement);var b=this.div.style;b.left=""+a.left+"px";b.top=""+a.top+"px"}},clearText:function(){this.clipText="";this.ready&&this.movie.clearText()},appendText:function(a){this.clipText+= -a;this.ready&&this.movie.appendText(a)},setText:function(a){this.clipText=a;this.ready&&this.movie.setText(a)},setFileName:function(a){this.fileName=a;this.ready&&this.movie.setFileName(a)},setSheetData:function(a){this.ready&&this.movie.setSheetData(JSON.stringify(a))},setAction:function(a){this.action=a;this.ready&&this.movie.setAction(a)},addEventListener:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");this.handlers[a]||(this.handlers[a]=[]);this.handlers[a].push(b)},setHandCursor:function(a){this.handCursorEnabled= -a;this.ready&&this.movie.setHandCursor(a)},setCSSEffects:function(a){this.cssEffects=!!a},receiveEvent:function(a,b){a=a.toString().toLowerCase().replace(/^on/,"");switch(a){case "load":this.movie=m.getElementById(this.movieId);if(!this.movie){var c=this;setTimeout(function(){c.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){c=this;setTimeout(function(){c.receiveEvent("load",null)},100);this.ready=!0;return}this.ready= -!0;this.movie.clearText();this.movie.appendText(this.clipText);this.movie.setFileName(this.fileName);this.movie.setAction(this.action);this.movie.setHandCursor(this.handCursorEnabled);break;case "mouseover":this.domElement&&this.cssEffects&&this.recoverActive&&this.domElement.addClass("active");break;case "mouseout":this.domElement&&this.cssEffects&&(this.recoverActive=!1,this.domElement.hasClass("active")&&(this.domElement.removeClass("active"),this.recoverActive=!0));break;case "mousedown":this.domElement&& -this.cssEffects&&this.domElement.addClass("active");break;case "mouseup":this.domElement&&this.cssEffects&&(this.domElement.removeClass("active"),this.recoverActive=!1)}if(this.handlers[a])for(var d=0,f=this.handlers[a].length;d',"xl/_rels/workbook.xml.rels":'', -"[Content_Types].xml":'', -"xl/workbook.xml":'', -"xl/worksheets/sheet1.xml":'',"xl/styles.xml":''}, -F=[{match:/^\-?\d+\.\d%$/,style:60,fmt:function(a){return a/100}},{match:/^\-?\d+\.?\d*%$/,style:56,fmt:function(a){return a/100}},{match:/^\-?\$[\d,]+.?\d*$/,style:57},{match:/^\-?£[\d,]+.?\d*$/,style:58},{match:/^\-?€[\d,]+.?\d*$/,style:59},{match:/^\([\d,]+\)$/,style:61,fmt:function(a){return-1*a.replace(/[\(\)]/g,"")}},{match:/^\([\d,]+\.\d{2}\)$/,style:62,fmt:function(a){return-1*a.replace(/[\(\)]/g,"")}},{match:/^[\d,]+$/,style:63},{match:/^[\d,]+\.\d{2}$/,style:64}];l.Buttons.swfPath="//cdn.datatables.net/buttons/"+ -l.Buttons.version+"/swf/flashExport.swf";l.Api.register("buttons.resize()",function(){g.each(h.clients,function(a,b){b.domElement!==u&&b.domElement.parentNode&&b.positionElement()})});l.ext.buttons.copyFlash=g.extend({},y,{className:"buttons-copy buttons-flash",text:function(a){return a.i18n("buttons.copy","Copy")},action:function(a,b,c,d){if(d._fromFlash){this.processing(!0);a=d._flash;var f=E(b,d);c=b.buttons.exportInfo(d);var e=D(d);f=f.str;c.title&&(f=c.title+e+e+f);c.messageTop&&(f=c.messageTop+ -e+e+f);c.messageBottom&&(f=f+e+e+c.messageBottom);d.customize&&(f=d.customize(f,d,b));a.setAction("copy");x(a,f);this.processing(!1);b.buttons.info(b.i18n("buttons.copyTitle","Copy to clipboard"),b.i18n("buttons.copySuccess",{_:"Copied %d rows to clipboard",1:"Copied 1 row to clipboard"},data.rows),3E3)}},fieldSeparator:"\t",fieldBoundary:""});l.ext.buttons.csvFlash=g.extend({},y,{className:"buttons-csv buttons-flash",text:function(a){return a.i18n("buttons.csv","CSV")},action:function(a,b,c,d){a= -d._flash;var f=E(b,d);c=b.buttons.exportInfo(d);b=d.customize?d.customize(f.str,d,b):f.str;a.setAction("csv");a.setFileName(c.filename);x(a,b)},escapeChar:'"'});l.ext.buttons.excelFlash=g.extend({},y,{className:"buttons-excel buttons-flash",text:function(a){return a.i18n("buttons.excel","Excel")},action:function(a,b,c,d){this.processing(!0);a=d._flash;var f=0,e=g.parseXML(t["xl/worksheets/sheet1.xml"]),h=e.getElementsByTagName("sheetData")[0];c={_rels:{".rels":g.parseXML(t["_rels/.rels"])},xl:{_rels:{"workbook.xml.rels":g.parseXML(t["xl/_rels/workbook.xml.rels"])}, -"workbook.xml":g.parseXML(t["xl/workbook.xml"]),"styles.xml":g.parseXML(t["xl/styles.xml"]),worksheets:{"sheet1.xml":e}},"[Content_Types].xml":g.parseXML(t["[Content_Types].xml"])};var k=b.buttons.exportData(d.exportOptions),m,n,p=function(a){m=f+1;n=r(e,"row",{attr:{r:m}});for(var b=0,c=a.length;b 0 ) { - s += separator; - } - - s += boundary ? - boundary + ('' + a[i]).replace( reBoundary, escapeChar+boundary ) + boundary : - a[i]; - } - - return s; - }; - - var header = config.header ? join( data.header )+newLine : ''; - var footer = config.footer && data.footer ? newLine+join( data.footer ) : ''; - var body = []; - - for ( var i=0, ien=data.body.length ; i 1 && version[1]*1 < 603.1 ) { - return true; - } - - return false; -}; - -/** - * Convert from numeric position to letter for column names in Excel - * @param {int} n Column number - * @return {string} Column letter(s) name - */ -function createCellPos( n ){ - var ordA = 'A'.charCodeAt(0); - var ordZ = 'Z'.charCodeAt(0); - var len = ordZ - ordA + 1; - var s = ""; - - while( n >= 0 ) { - s = String.fromCharCode(n % len + ordA) + s; - n = Math.floor(n / len) - 1; - } - - return s; -} - -try { - var _serialiser = new XMLSerializer(); - var _ieExcel; -} -catch (t) {} - -/** - * Recursively add XML files from an object's structure to a ZIP file. This - * allows the XSLX file to be easily defined with an object's structure matching - * the files structure. - * - * @param {JSZip} zip ZIP package - * @param {object} obj Object to add (recursive) - */ -function _addToZip( zip, obj ) { - if ( _ieExcel === undefined ) { - // Detect if we are dealing with IE's _awful_ serialiser by seeing if it - // drop attributes - _ieExcel = _serialiser - .serializeToString( - $.parseXML( excelStrings['xl/worksheets/sheet1.xml'] ) - ) - .indexOf( 'xmlns:r' ) === -1; - } - - $.each( obj, function ( name, val ) { - if ( $.isPlainObject( val ) ) { - var newDir = zip.folder( name ); - _addToZip( newDir, val ); - } - else { - if ( _ieExcel ) { - // IE's XML serialiser will drop some name space attributes from - // from the root node, so we need to save them. Do this by - // replacing the namespace nodes with a regular attribute that - // we convert back when serialised. Edge does not have this - // issue - var worksheet = val.childNodes[0]; - var i, ien; - var attrs = []; - - for ( i=worksheet.attributes.length-1 ; i>=0 ; i-- ) { - var attrName = worksheet.attributes[i].nodeName; - var attrValue = worksheet.attributes[i].nodeValue; - - if ( attrName.indexOf( ':' ) !== -1 ) { - attrs.push( { name: attrName, value: attrValue } ); - - worksheet.removeAttribute( attrName ); - } - } - - for ( i=0, ien=attrs.length ; i]*?) xmlns=""([^<>]*?)>/g, '<$1 $2>' ); - - zip.file( name, str ); - } - } ); -} - -/** - * Create an XML node and add any children, attributes, etc without needing to - * be verbose in the DOM. - * - * @param {object} doc XML document - * @param {string} nodeName Node name - * @param {object} opts Options - can be `attr` (attributes), `children` - * (child nodes) and `text` (text content) - * @return {node} Created node - */ -function _createNode( doc, nodeName, opts ) { - var tempNode = doc.createElement( nodeName ); - - if ( opts ) { - if ( opts.attr ) { - $(tempNode).attr( opts.attr ); - } - - if ( opts.children ) { - $.each( opts.children, function ( key, value ) { - tempNode.appendChild( value ); - } ); - } - - if ( opts.text !== null && opts.text !== undefined ) { - tempNode.appendChild( doc.createTextNode( opts.text ) ); - } - } - - return tempNode; -} - -/** - * Get the width for an Excel column based on the contents of that column - * @param {object} data Data for export - * @param {int} col Column index - * @return {int} Column width - */ -function _excelColWidth( data, col ) { - var max = data.header[col].length; - var len, lineSplit, str; - - if ( data.footer && data.footer[col].length > max ) { - max = data.footer[col].length; - } - - for ( var i=0, ien=data.body.length ; i max ) { - max = len; - } - - // Max width rather than having potentially massive column widths - if ( max > 40 ) { - return 54; // 40 * 1.35 - } - } - - max *= 1.35; - - // And a min width - return max > 6 ? max : 6; -} - -// Excel - Pre-defined strings to build a basic XLSX file -var excelStrings = { - "_rels/.rels": - ''+ - ''+ - ''+ - '', - - "xl/_rels/workbook.xml.rels": - ''+ - ''+ - ''+ - ''+ - '', - - "[Content_Types].xml": - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - '', - - "xl/workbook.xml": - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - '', - - "xl/worksheets/sheet1.xml": - ''+ - ''+ - ''+ - ''+ - '', - - "xl/styles.xml": - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ // Excel appears to use this as a dotted background regardless of values but - ''+ // to be valid to the schema, use a patternFill - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - ''+ - '' -}; -// Note we could use 3 `for` loops for the styles, but when gzipped there is -// virtually no difference in size, since the above can be easily compressed - -// Pattern matching for special number formats. Perhaps this should be exposed -// via an API in future? -// Ref: section 3.8.30 - built in formatters in open spreadsheet -// https://www.ecma-international.org/news/TC45_current_work/Office%20Open%20XML%20Part%204%20-%20Markup%20Language%20Reference.pdf -var _excelSpecials = [ - { match: /^\-?\d+\.\d%$/, style: 60, fmt: function (d) { return d/100; } }, // Precent with d.p. - { match: /^\-?\d+\.?\d*%$/, style: 56, fmt: function (d) { return d/100; } }, // Percent - { match: /^\-?\$[\d,]+.?\d*$/, style: 57 }, // Dollars - { match: /^\-?£[\d,]+.?\d*$/, style: 58 }, // Pounds - { match: /^\-?€[\d,]+.?\d*$/, style: 59 }, // Euros - { match: /^\-?\d+$/, style: 65 }, // Numbers without thousand separators - { match: /^\-?\d+\.\d{2}$/, style: 66 }, // Numbers 2 d.p. without thousands separators - { match: /^\([\d,]+\)$/, style: 61, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets - { match: /^\([\d,]+\.\d{2}\)$/, style: 62, fmt: function (d) { return -1 * d.replace(/[\(\)]/g, ''); } }, // Negative numbers indicated by brackets - 2d.p. - { match: /^\-?[\d,]+$/, style: 63 }, // Numbers with thousand separators - { match: /^\-?[\d,]+\.\d{2}$/, style: 64 } // Numbers with 2 d.p. and thousands separators -]; - - - -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Buttons - */ - -// -// Copy to clipboard -// -DataTable.ext.buttons.copyHtml5 = { - className: 'buttons-copy buttons-html5', - - text: function ( dt ) { - return dt.i18n( 'buttons.copy', 'Copy' ); - }, - - action: function ( e, dt, button, config ) { - this.processing( true ); - - var that = this; - var exportData = _exportData( dt, config ); - var info = dt.buttons.exportInfo( config ); - var newline = _newLine(config); - var output = exportData.str; - var hiddenDiv = $('
      ') - .css( { - height: 1, - width: 1, - overflow: 'hidden', - position: 'fixed', - top: 0, - left: 0 - } ); - - if ( info.title ) { - output = info.title + newline + newline + output; - } - - if ( info.messageTop ) { - output = info.messageTop + newline + newline + output; - } - - if ( info.messageBottom ) { - output = output + newline + newline + info.messageBottom; - } - - if ( config.customize ) { - output = config.customize( output, config, dt ); - } - - var textarea = $('",l.noCloneChecked=!!a.cloneNode(!0).lastChild.defaultValue,b.appendChild(a),c=d.createElement("input"),c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),a.appendChild(c),l.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!!a.addEventListener,a[n.expando]=1,l.attributes=!a.getAttribute(n.expando)}();var da={option:[1,""],legend:[1,"
      ","
      "],area:[1,"",""],param:[1,"",""],thead:[1,"","
      "],tr:[2,"","
      "],col:[2,"","
      "],td:[3,"","
      "],_default:l.htmlSerialize?[0,"",""]:[1,"X
      ","
      "]};da.optgroup=da.option,da.tbody=da.tfoot=da.colgroup=da.caption=da.thead,da.th=da.td;function ea(a,b){var c,d,e=0,f="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,ea(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function fa(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}var ga=/<|&#?\w+;/,ha=/r;r++)if(g=a[r],g||0===g)if("object"===n.type(g))n.merge(q,g.nodeType?[g]:g);else if(ga.test(g)){i=i||p.appendChild(b.createElement("div")),j=($.exec(g)||["",""])[1].toLowerCase(),m=da[j]||da._default,i.innerHTML=m[1]+n.htmlPrefilter(g)+m[2],f=m[0];while(f--)i=i.lastChild;if(!l.leadingWhitespace&&aa.test(g)&&q.push(b.createTextNode(aa.exec(g)[0])),!l.tbody){g="table"!==j||ha.test(g)?""!==m[1]||ha.test(g)?0:i:i.firstChild,f=g&&g.childNodes.length;while(f--)n.nodeName(k=g.childNodes[f],"tbody")&&!k.childNodes.length&&g.removeChild(k)}n.merge(q,i.childNodes),i.textContent="";while(i.firstChild)i.removeChild(i.firstChild);i=p.lastChild}else q.push(b.createTextNode(g));i&&p.removeChild(i),l.appendChecked||n.grep(ea(q,"input"),ia),r=0;while(g=q[r++])if(d&&n.inArray(g,d)>-1)e&&e.push(g);else if(h=n.contains(g.ownerDocument,g),i=ea(p.appendChild(g),"script"),h&&fa(i),c){f=0;while(g=i[f++])_.test(g.type||"")&&c.push(g)}return i=null,p}!function(){var b,c,e=d.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b]=c in a)||(e.setAttribute(c,"t"),l[b]=e.attributes[c].expando===!1);e=null}();var ka=/^(?:input|select|textarea)$/i,la=/^key/,ma=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,na=/^(?:focusinfocus|focusoutblur)$/,oa=/^([^.]*)(?:\.(.+)|)/;function pa(){return!0}function qa(){return!1}function ra(){try{return d.activeElement}catch(a){}}function sa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)sa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=qa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return"undefined"==typeof n||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(G)||[""],h=b.length;while(h--)f=oa.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=oa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,e,f){var g,h,i,j,l,m,o,p=[e||d],q=k.call(b,"type")?b.type:b,r=k.call(b,"namespace")?b.namespace.split("."):[];if(i=m=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!na.test(q+n.event.triggered)&&(q.indexOf(".")>-1&&(r=q.split("."),q=r.shift(),r.sort()),h=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=r.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:n.makeArray(c,[b]),l=n.event.special[q]||{},f||!l.trigger||l.trigger.apply(e,c)!==!1)){if(!f&&!l.noBubble&&!n.isWindow(e)){for(j=l.delegateType||q,na.test(j+q)||(i=i.parentNode);i;i=i.parentNode)p.push(i),m=i;m===(e.ownerDocument||d)&&p.push(m.defaultView||m.parentWindow||a)}o=0;while((i=p[o++])&&!b.isPropagationStopped())b.type=o>1?j:l.bindType||q,g=(n._data(i,"events")||{})[b.type]&&n._data(i,"handle"),g&&g.apply(i,c),g=h&&i[h],g&&g.apply&&M(i)&&(b.result=g.apply(i,c),b.result===!1&&b.preventDefault());if(b.type=q,!f&&!b.isDefaultPrevented()&&(!l._default||l._default.apply(p.pop(),c)===!1)&&M(e)&&h&&e[q]&&!n.isWindow(e)){m=e[h],m&&(e[h]=null),n.event.triggered=q;try{e[q]()}catch(s){}n.event.triggered=void 0,m&&(e[h]=m)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]","i"),va=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa=/\s*$/g,Aa=ca(d),Ba=Aa.appendChild(d.createElement("div"));function Ca(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Da(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function Ea(a){var b=ya.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Ga(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(Da(b).text=a.text,Ea(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&Z.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}}function Ha(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&xa.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(o&&(k=ja(b,a[0].ownerDocument,!1,a,d),e=k.firstChild,1===k.childNodes.length&&(k=e),e||d)){for(i=n.map(ea(k,"script"),Da),h=i.length;o>m;m++)g=k,m!==p&&(g=n.clone(g,!0,!0),h&&n.merge(i,ea(g,"script"))),c.call(a[m],g,m);if(h)for(j=i[i.length-1].ownerDocument,n.map(i,Ea),m=0;h>m;m++)g=i[m],_.test(g.type||"")&&!n._data(g,"globalEval")&&n.contains(j,g)&&(g.src?n._evalUrl&&n._evalUrl(g.src):n.globalEval((g.text||g.textContent||g.innerHTML||"").replace(za,"")));k=e=null}return a}function Ia(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(ea(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&fa(ea(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(va,"<$1>")},clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!ua.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(Ba.innerHTML=a.outerHTML,Ba.removeChild(f=Ba.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=ea(f),h=ea(a),g=0;null!=(e=h[g]);++g)d[g]&&Ga(e,d[g]);if(b)if(c)for(h=h||ea(a),d=d||ea(f),g=0;null!=(e=h[g]);g++)Fa(e,d[g]);else Fa(a,f);return d=ea(f,"script"),d.length>0&&fa(d,!i&&ea(a,"script")),d=h=e=null,f},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.attributes,m=n.event.special;null!=(d=a[h]);h++)if((b||M(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k||"undefined"==typeof d.removeAttribute?d[i]=void 0:d.removeAttribute(i),c.push(f))}}}),n.fn.extend({domManip:Ha,detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return Y(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||d).createTextNode(a))},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(ea(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return Y(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(ta,""):void 0;if("string"==typeof a&&!wa.test(a)&&(l.htmlSerialize||!ua.test(a))&&(l.leadingWhitespace||!aa.test(a))&&!da[($.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ea(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(ea(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],f=n(a),h=f.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(f[d])[b](c),g.apply(e,c.get());return this.pushStack(e)}});var Ja,Ka={HTML:"block",BODY:"block"};function La(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function Ma(a){var b=d,c=Ka[a];return c||(c=La(a,b),"none"!==c&&c||(Ja=(Ja||n("