diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-css/dataTables.bootstrap4.css b/Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net-bs4/css/dataTables.bootstrap4.css
similarity index 100%
rename from Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-css/dataTables.bootstrap4.css
rename to Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net-bs4/css/dataTables.bootstrap4.css
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-css/dataTables.bootstrap4.min.css b/Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net-bs4/css/dataTables.bootstrap4.min.css
similarity index 100%
rename from Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-css/dataTables.bootstrap4.min.css
rename to Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net-bs4/css/dataTables.bootstrap4.min.css
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-js/dataTables.bootstrap4.js b/Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net-bs4/js/dataTables.bootstrap4.js
similarity index 100%
rename from Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-js/dataTables.bootstrap4.js
rename to Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net-bs4/js/dataTables.bootstrap4.js
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-js/dataTables.bootstrap4.min.js b/Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net-bs4/js/dataTables.bootstrap4.min.js
similarity index 100%
rename from Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-js/dataTables.bootstrap4.min.js
rename to Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net-bs4/js/dataTables.bootstrap4.min.js
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net/jquery.dataTables.js b/Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net/js/jquery.dataTables.js
similarity index 100%
rename from Lombiq.DataTables/wwwroot/vendors/datatables.net/jquery.dataTables.js
rename to Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net/js/jquery.dataTables.js
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net/jquery.dataTables.min.js b/Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net/js/jquery.dataTables.min.js
similarity index 100%
rename from Lombiq.DataTables/wwwroot/vendors/datatables.net/jquery.dataTables.min.js
rename to Lombiq.DataTables/Assets/UnmanagedNodeModules/datatables.net/js/jquery.dataTables.min.js
diff --git a/Lombiq.DataTables/Gulp/paths.js b/Lombiq.DataTables/Gulp/paths.js
deleted file mode 100644
index 10b28795f..000000000
--- a/Lombiq.DataTables/Gulp/paths.js
+++ /dev/null
@@ -1,47 +0,0 @@
-const nodeModulesBasePath = './node_modules/';
-const distBasePath = './wwwroot/';
-const lombiqBasePath = './Assets/Scripts/';
-
-module.exports = {
- vendorAssets: [
- // We are using Nightly until the Chrome issue here is resolved:
- // https://datatables.net/forums/discussion/68506/latest-google-chrome-91-0-4472-77-breaks-fixed-columns-with-complex-headings
- // {
- // name: 'datatables.net',
- // path: nodeModulesBasePath + 'datatables.net/js/*',
- // },
- {
- name: 'datatables.net-buttons',
- path: nodeModulesBasePath + 'datatables.net-buttons/js/*',
- },
- // Same as above.
- // {
- // name: 'datatables.net-bs4-js',
- // path: nodeModulesBasePath + 'datatables.net-bs4/js/*',
- // },
- // {
- // name: 'datatables.net-bs4-css',
- // path: nodeModulesBasePath + 'datatables.net-bs4/css/*',
- // },
- {
- name: 'datatables.net-bs4-js',
- path: nodeModulesBasePath + 'datatables.net-buttons-bs4/js/*',
- },
- {
- name: 'datatables.net-bs4-css',
- path: nodeModulesBasePath + 'datatables.net-buttons-bs4/css/*',
- },
- {
- name: 'urijs',
- path: nodeModulesBasePath + 'urijs/src/**',
- },
- ],
- lombiqAssets: {
- base: lombiqBasePath,
- all: lombiqBasePath + '**/*.js',
- },
- dist: {
- vendors: distBasePath + 'vendors/',
- lombiq: distBasePath + 'lombiq/',
- },
-};
diff --git a/Lombiq.DataTables/Gulp/tasks/copy-assets.js b/Lombiq.DataTables/Gulp/tasks/copy-assets.js
deleted file mode 100644
index 2cedf631e..000000000
--- a/Lombiq.DataTables/Gulp/tasks/copy-assets.js
+++ /dev/null
@@ -1,8 +0,0 @@
-const gulp = require('gulp');
-const all = require('gulp-all');
-
-const copyAssets = function (assets, destination) {
- return all(assets.map((asset) => gulp.src(asset.path).pipe(gulp.dest(destination + '/' + asset.name))));
-};
-
-module.exports = copyAssets;
diff --git a/Lombiq.DataTables/Gulpfile.js b/Lombiq.DataTables/Gulpfile.js
deleted file mode 100644
index 54659a55d..000000000
--- a/Lombiq.DataTables/Gulpfile.js
+++ /dev/null
@@ -1,15 +0,0 @@
-const gulp = require('gulp');
-const watch = require('gulp-watch');
-const babel = require('gulp-babel');
-const paths = require('./Gulp/paths');
-const jsTargets = require('../../../Utilities/Lombiq.Gulp.Extensions/Tasks/js-targets');
-const copyAssets = require('./Gulp/tasks/copy-assets');
-
-gulp.task('copy:vendor-assets', () => copyAssets(paths.vendorAssets, paths.dist.vendors));
-gulp.task('build:lombiq-js', () => jsTargets.compile(
- paths.lombiqAssets.base,
- paths.dist.lombiq,
- (pipeline) => pipeline.pipe(babel({ presets: ['@babel/env'] }))));
-
-gulp.task('default', gulp.parallel('copy:vendor-assets', 'build:lombiq-js'));
-gulp.task('watch:lombiq-js', () => watch(paths.lombiqAssets.base, { verbose: true }, gulp.series('build:lombiq-js')));
diff --git a/Lombiq.DataTables/Lombiq.DataTables.csproj b/Lombiq.DataTables/Lombiq.DataTables.csproj
index 79e72e07e..bdd3db90c 100644
--- a/Lombiq.DataTables/Lombiq.DataTables.csproj
+++ b/Lombiq.DataTables/Lombiq.DataTables.csproj
@@ -1,5 +1,7 @@
+
+
net6.0
true
@@ -30,9 +32,6 @@
-
-
-
@@ -50,13 +49,15 @@
-
-
+
+
+
+
diff --git a/Lombiq.DataTables/package-lock.json b/Lombiq.DataTables/package-lock.json
deleted file mode 100644
index 7fcf5f266..000000000
--- a/Lombiq.DataTables/package-lock.json
+++ /dev/null
@@ -1,3393 +0,0 @@
-{
- "name": "Lombiq.DataTables",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "dependencies": {
- "@babel/preset-env": "^7.14.8",
- "datatables.net": "1.10.25",
- "datatables.net-bs4": "3.2.2",
- "datatables.net-buttons": "1.7.1",
- "datatables.net-buttons-bs4": "1.7.1",
- "gulp-babel": "^8.0.0",
- "urijs": "1.19.7"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
- "dependencies": {
- "@babel/highlight": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/compat-data": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz",
- "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz",
- "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==",
- "dependencies": {
- "@babel/types": "^7.14.8",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz",
- "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==",
- "dependencies": {
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz",
- "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==",
- "dependencies": {
- "@babel/helper-explode-assignable-expression": "^7.14.5",
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-compilation-targets": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz",
- "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==",
- "dependencies": {
- "@babel/compat-data": "^7.14.5",
- "@babel/helper-validator-option": "^7.14.5",
- "browserslist": "^4.16.6",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.8.tgz",
- "integrity": "sha512-bpYvH8zJBWzeqi1o+co8qOrw+EXzQ/0c74gVmY205AWXy9nifHrOg77y+1zwxX5lXE7Icq4sPlSQ4O2kWBrteQ==",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-member-expression-to-functions": "^7.14.7",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz",
- "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "regexpu-core": "^4.7.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz",
- "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==",
- "dependencies": {
- "@babel/helper-compilation-targets": "^7.13.0",
- "@babel/helper-module-imports": "^7.12.13",
- "@babel/helper-plugin-utils": "^7.13.0",
- "@babel/traverse": "^7.13.0",
- "debug": "^4.1.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2",
- "semver": "^6.1.2"
- }
- },
- "node_modules/@babel/helper-explode-assignable-expression": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz",
- "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==",
- "dependencies": {
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz",
- "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==",
- "dependencies": {
- "@babel/helper-get-function-arity": "^7.14.5",
- "@babel/template": "^7.14.5",
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-get-function-arity": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz",
- "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==",
- "dependencies": {
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz",
- "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==",
- "dependencies": {
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz",
- "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==",
- "dependencies": {
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-imports": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz",
- "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
- "dependencies": {
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-module-transforms": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz",
- "integrity": "sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==",
- "dependencies": {
- "@babel/helper-module-imports": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-simple-access": "^7.14.8",
- "@babel/helper-split-export-declaration": "^7.14.5",
- "@babel/helper-validator-identifier": "^7.14.8",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.14.8",
- "@babel/types": "^7.14.8"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz",
- "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==",
- "dependencies": {
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-plugin-utils": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
- "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz",
- "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-wrap-function": "^7.14.5",
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-replace-supers": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz",
- "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==",
- "dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.14.5",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/traverse": "^7.14.5",
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-simple-access": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz",
- "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==",
- "dependencies": {
- "@babel/types": "^7.14.8"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz",
- "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==",
- "dependencies": {
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz",
- "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==",
- "dependencies": {
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz",
- "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-option": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
- "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-wrap-function": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz",
- "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==",
- "dependencies": {
- "@babel/helper-function-name": "^7.14.5",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.14.5",
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
- "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.14.5",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz",
- "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==",
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz",
- "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5",
- "@babel/plugin-proposal-optional-chaining": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-async-generator-functions": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz",
- "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.14.5",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-class-properties": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz",
- "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz",
- "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-dynamic-import": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz",
- "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-export-namespace-from": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz",
- "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-json-strings": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz",
- "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz",
- "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz",
- "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-numeric-separator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz",
- "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz",
- "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==",
- "dependencies": {
- "@babel/compat-data": "^7.14.7",
- "@babel/helper-compilation-targets": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz",
- "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-optional-chaining": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz",
- "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-private-methods": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz",
- "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==",
- "dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-create-class-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz",
- "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "node_modules/@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.12.13"
- }
- },
- "node_modules/@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "node_modules/@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.3"
- }
- },
- "node_modules/@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "node_modules/@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "node_modules/@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "node_modules/@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "node_modules/@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz",
- "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz",
- "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==",
- "dependencies": {
- "@babel/helper-module-imports": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz",
- "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz",
- "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-classes": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz",
- "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz",
- "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz",
- "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz",
- "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz",
- "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz",
- "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==",
- "dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-for-of": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz",
- "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-function-name": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz",
- "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==",
- "dependencies": {
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-literals": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz",
- "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz",
- "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz",
- "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==",
- "dependencies": {
- "@babel/helper-module-transforms": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz",
- "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==",
- "dependencies": {
- "@babel/helper-module-transforms": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-simple-access": "^7.14.5",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz",
- "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==",
- "dependencies": {
- "@babel/helper-hoist-variables": "^7.14.5",
- "@babel/helper-module-transforms": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-validator-identifier": "^7.14.5",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz",
- "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==",
- "dependencies": {
- "@babel/helper-module-transforms": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz",
- "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-new-target": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz",
- "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-object-super": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz",
- "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-parameters": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz",
- "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz",
- "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz",
- "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==",
- "dependencies": {
- "regenerator-transform": "^0.14.2"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz",
- "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz",
- "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-spread": {
- "version": "7.14.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz",
- "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz",
- "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz",
- "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz",
- "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz",
- "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz",
- "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==",
- "dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/preset-env": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.8.tgz",
- "integrity": "sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==",
- "dependencies": {
- "@babel/compat-data": "^7.14.7",
- "@babel/helper-compilation-targets": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5",
- "@babel/plugin-proposal-async-generator-functions": "^7.14.7",
- "@babel/plugin-proposal-class-properties": "^7.14.5",
- "@babel/plugin-proposal-class-static-block": "^7.14.5",
- "@babel/plugin-proposal-dynamic-import": "^7.14.5",
- "@babel/plugin-proposal-export-namespace-from": "^7.14.5",
- "@babel/plugin-proposal-json-strings": "^7.14.5",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
- "@babel/plugin-proposal-numeric-separator": "^7.14.5",
- "@babel/plugin-proposal-object-rest-spread": "^7.14.7",
- "@babel/plugin-proposal-optional-catch-binding": "^7.14.5",
- "@babel/plugin-proposal-optional-chaining": "^7.14.5",
- "@babel/plugin-proposal-private-methods": "^7.14.5",
- "@babel/plugin-proposal-private-property-in-object": "^7.14.5",
- "@babel/plugin-proposal-unicode-property-regex": "^7.14.5",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.14.5",
- "@babel/plugin-transform-async-to-generator": "^7.14.5",
- "@babel/plugin-transform-block-scoped-functions": "^7.14.5",
- "@babel/plugin-transform-block-scoping": "^7.14.5",
- "@babel/plugin-transform-classes": "^7.14.5",
- "@babel/plugin-transform-computed-properties": "^7.14.5",
- "@babel/plugin-transform-destructuring": "^7.14.7",
- "@babel/plugin-transform-dotall-regex": "^7.14.5",
- "@babel/plugin-transform-duplicate-keys": "^7.14.5",
- "@babel/plugin-transform-exponentiation-operator": "^7.14.5",
- "@babel/plugin-transform-for-of": "^7.14.5",
- "@babel/plugin-transform-function-name": "^7.14.5",
- "@babel/plugin-transform-literals": "^7.14.5",
- "@babel/plugin-transform-member-expression-literals": "^7.14.5",
- "@babel/plugin-transform-modules-amd": "^7.14.5",
- "@babel/plugin-transform-modules-commonjs": "^7.14.5",
- "@babel/plugin-transform-modules-systemjs": "^7.14.5",
- "@babel/plugin-transform-modules-umd": "^7.14.5",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7",
- "@babel/plugin-transform-new-target": "^7.14.5",
- "@babel/plugin-transform-object-super": "^7.14.5",
- "@babel/plugin-transform-parameters": "^7.14.5",
- "@babel/plugin-transform-property-literals": "^7.14.5",
- "@babel/plugin-transform-regenerator": "^7.14.5",
- "@babel/plugin-transform-reserved-words": "^7.14.5",
- "@babel/plugin-transform-shorthand-properties": "^7.14.5",
- "@babel/plugin-transform-spread": "^7.14.6",
- "@babel/plugin-transform-sticky-regex": "^7.14.5",
- "@babel/plugin-transform-template-literals": "^7.14.5",
- "@babel/plugin-transform-typeof-symbol": "^7.14.5",
- "@babel/plugin-transform-unicode-escapes": "^7.14.5",
- "@babel/plugin-transform-unicode-regex": "^7.14.5",
- "@babel/preset-modules": "^0.1.4",
- "@babel/types": "^7.14.8",
- "babel-plugin-polyfill-corejs2": "^0.2.2",
- "babel-plugin-polyfill-corejs3": "^0.2.2",
- "babel-plugin-polyfill-regenerator": "^0.2.2",
- "core-js-compat": "^3.15.0",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/preset-modules": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
- "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
- "dependencies": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- }
- },
- "node_modules/@babel/runtime": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz",
- "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==",
- "dependencies": {
- "regenerator-runtime": "^0.13.4"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz",
- "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==",
- "dependencies": {
- "@babel/code-frame": "^7.14.5",
- "@babel/parser": "^7.14.5",
- "@babel/types": "^7.14.5"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.8.tgz",
- "integrity": "sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==",
- "dependencies": {
- "@babel/code-frame": "^7.14.5",
- "@babel/generator": "^7.14.8",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-hoist-variables": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5",
- "@babel/parser": "^7.14.8",
- "@babel/types": "^7.14.8",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz",
- "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==",
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.14.8",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/ansi-colors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
- "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
- "dependencies": {
- "ansi-wrap": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ansi-wrap": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
- "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/babel-plugin-dynamic-import-node": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
- "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
- "dependencies": {
- "object.assign": "^4.1.0"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz",
- "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==",
- "dependencies": {
- "@babel/compat-data": "^7.13.11",
- "@babel/helper-define-polyfill-provider": "^0.2.2",
- "semver": "^6.1.1"
- }
- },
- "node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz",
- "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==",
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.2.2",
- "core-js-compat": "^3.14.0"
- }
- },
- "node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz",
- "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==",
- "dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.2.2"
- }
- },
- "node_modules/browserslist": {
- "version": "4.16.6",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
- "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
- "dependencies": {
- "caniuse-lite": "^1.0.30001219",
- "colorette": "^1.2.2",
- "electron-to-chromium": "^1.3.723",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.71"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001248",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
- "integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw=="
- },
- "node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "node_modules/colorette": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
- "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
- },
- "node_modules/core-js-compat": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.0.tgz",
- "integrity": "sha512-5D9sPHCdewoUK7pSUPfTF7ZhLh8k9/CoJXWUEo+F1dZT5Z1DVgcuRqUKhjeKW+YLb8f21rTFgWwQJiNw1hoZ5Q==",
- "dependencies": {
- "browserslist": "^4.16.6",
- "semver": "7.0.0"
- }
- },
- "node_modules/core-js-compat/node_modules/semver": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
- "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "node_modules/datatables.net": {
- "version": "1.10.25",
- "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.25.tgz",
- "integrity": "sha512-y0+C7all+MC/h1acwnjErhaJPjYGKpWTvbXrfEUbR8+P+nnhgjNn5nL1udgsTwBObMhlj1KITNBRrM/ZLSoj+Q==",
- "dependencies": {
- "jquery": ">=1.7"
- }
- },
- "node_modules/datatables.net-bs4": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-3.2.2.tgz",
- "integrity": "sha1-R4YNjMskckMJ/jAN5y6v1yAbusY=",
- "dependencies": {
- "datatables.net": ">=1.10.13",
- "jquery": ">=1.7"
- }
- },
- "node_modules/datatables.net-buttons": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/datatables.net-buttons/-/datatables.net-buttons-1.7.1.tgz",
- "integrity": "sha512-D2OxZeR18jhSx+l0xcfAJzfUH7l3LHCu0e606fV7+v3hMhphOfljjZYLaiRmGiR9lqO/f5xE/w2a+OtG/QMavw==",
- "dependencies": {
- "datatables.net": "^1.10.15",
- "jquery": ">=1.7"
- }
- },
- "node_modules/datatables.net-buttons-bs4": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/datatables.net-buttons-bs4/-/datatables.net-buttons-bs4-1.7.1.tgz",
- "integrity": "sha512-s+fwsgAAWp7mOKwuztPH06kaw2JNAJ71VNTw/TqGQTL6BK9FshweDKZSRIB/ePcc/Psiy8fhNEj3XHxx4OO6BA==",
- "dependencies": {
- "datatables.net-bs4": "^1.10.15",
- "datatables.net-buttons": "1.7.1",
- "jquery": ">=1.7"
- }
- },
- "node_modules/datatables.net-buttons-bs4/node_modules/datatables.net-bs4": {
- "version": "1.10.25",
- "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-1.10.25.tgz",
- "integrity": "sha512-leoiWJWxoPKHBNC9dkFRE84PRybQcAI2Aw4UiS5zisROcYRx8YG1uQOTtID4jbqakmbwwXap/c2eH+sdVP5t2w==",
- "dependencies": {
- "datatables.net": "1.10.25",
- "jquery": ">=1.7"
- }
- },
- "node_modules/debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "dependencies": {
- "object-keys": "^1.0.12"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/electron-to-chromium": {
- "version": "1.3.792",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.792.tgz",
- "integrity": "sha512-RM2O2xrNarM7Cs+XF/OE2qX/aBROyOZqqgP+8FXMXSuWuUqCfUUzg7NytQrzZU3aSqk1Qq6zqnVkJsbfMkIatg=="
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "dependencies": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "node_modules/get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/gulp-babel": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz",
- "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==",
- "dependencies": {
- "plugin-error": "^1.0.1",
- "replace-ext": "^1.0.0",
- "through2": "^2.0.0",
- "vinyl-sourcemaps-apply": "^0.2.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/is-core-module": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz",
- "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==",
- "dependencies": {
- "has": "^1.0.3"
- }
- },
- "node_modules/is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "dependencies": {
- "is-plain-object": "^2.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "dependencies": {
- "isobject": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "node_modules/isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/jquery": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
- "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/node-releases": {
- "version": "1.1.73",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
- "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg=="
- },
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- },
- "node_modules/plugin-error": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
- "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
- "dependencies": {
- "ansi-colors": "^1.0.1",
- "arr-diff": "^4.0.0",
- "arr-union": "^3.1.0",
- "extend-shallow": "^3.0.2"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "node_modules/regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
- },
- "node_modules/regenerate-unicode-properties": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
- "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
- "dependencies": {
- "regenerate": "^1.4.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
- },
- "node_modules/regenerator-transform": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
- "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
- "dependencies": {
- "@babel/runtime": "^7.8.4"
- }
- },
- "node_modules/regexpu-core": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz",
- "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==",
- "dependencies": {
- "regenerate": "^1.4.0",
- "regenerate-unicode-properties": "^8.2.0",
- "regjsgen": "^0.5.1",
- "regjsparser": "^0.6.4",
- "unicode-match-property-ecmascript": "^1.0.4",
- "unicode-match-property-value-ecmascript": "^1.2.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/regjsgen": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
- "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A=="
- },
- "node_modules/regjsparser": {
- "version": "0.6.9",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz",
- "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==",
- "dependencies": {
- "jsesc": "~0.5.0"
- },
- "bin": {
- "regjsparser": "bin/parser"
- }
- },
- "node_modules/regjsparser/node_modules/jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
- "bin": {
- "jsesc": "bin/jsesc"
- }
- },
- "node_modules/replace-ext": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
- "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "dependencies": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "dependencies": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-canonical-property-names-ecmascript": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
- "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-ecmascript": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
- "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
- "dependencies": {
- "unicode-canonical-property-names-ecmascript": "^1.0.4",
- "unicode-property-aliases-ecmascript": "^1.0.4"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-match-property-value-ecmascript": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
- "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/unicode-property-aliases-ecmascript": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
- "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/urijs": {
- "version": "1.19.7",
- "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.7.tgz",
- "integrity": "sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA=="
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "node_modules/vinyl-sourcemaps-apply": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
- "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
- "dependencies": {
- "source-map": "^0.5.1"
- }
- },
- "node_modules/xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
- "engines": {
- "node": ">=0.4"
- }
- }
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
- "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
- "requires": {
- "@babel/highlight": "^7.14.5"
- }
- },
- "@babel/compat-data": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.7.tgz",
- "integrity": "sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw=="
- },
- "@babel/generator": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.8.tgz",
- "integrity": "sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==",
- "requires": {
- "@babel/types": "^7.14.8",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
- }
- },
- "@babel/helper-annotate-as-pure": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz",
- "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==",
- "requires": {
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz",
- "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==",
- "requires": {
- "@babel/helper-explode-assignable-expression": "^7.14.5",
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-compilation-targets": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz",
- "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==",
- "requires": {
- "@babel/compat-data": "^7.14.5",
- "@babel/helper-validator-option": "^7.14.5",
- "browserslist": "^4.16.6",
- "semver": "^6.3.0"
- }
- },
- "@babel/helper-create-class-features-plugin": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.8.tgz",
- "integrity": "sha512-bpYvH8zJBWzeqi1o+co8qOrw+EXzQ/0c74gVmY205AWXy9nifHrOg77y+1zwxX5lXE7Icq4sPlSQ4O2kWBrteQ==",
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-member-expression-to-functions": "^7.14.7",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5"
- }
- },
- "@babel/helper-create-regexp-features-plugin": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz",
- "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==",
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "regexpu-core": "^4.7.1"
- }
- },
- "@babel/helper-define-polyfill-provider": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz",
- "integrity": "sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==",
- "requires": {
- "@babel/helper-compilation-targets": "^7.13.0",
- "@babel/helper-module-imports": "^7.12.13",
- "@babel/helper-plugin-utils": "^7.13.0",
- "@babel/traverse": "^7.13.0",
- "debug": "^4.1.1",
- "lodash.debounce": "^4.0.8",
- "resolve": "^1.14.2",
- "semver": "^6.1.2"
- }
- },
- "@babel/helper-explode-assignable-expression": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz",
- "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==",
- "requires": {
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-function-name": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz",
- "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==",
- "requires": {
- "@babel/helper-get-function-arity": "^7.14.5",
- "@babel/template": "^7.14.5",
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz",
- "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==",
- "requires": {
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz",
- "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==",
- "requires": {
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-member-expression-to-functions": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz",
- "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==",
- "requires": {
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-module-imports": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz",
- "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==",
- "requires": {
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-module-transforms": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz",
- "integrity": "sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==",
- "requires": {
- "@babel/helper-module-imports": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-simple-access": "^7.14.8",
- "@babel/helper-split-export-declaration": "^7.14.5",
- "@babel/helper-validator-identifier": "^7.14.8",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.14.8",
- "@babel/types": "^7.14.8"
- }
- },
- "@babel/helper-optimise-call-expression": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz",
- "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==",
- "requires": {
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-plugin-utils": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz",
- "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ=="
- },
- "@babel/helper-remap-async-to-generator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz",
- "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==",
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-wrap-function": "^7.14.5",
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-replace-supers": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz",
- "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==",
- "requires": {
- "@babel/helper-member-expression-to-functions": "^7.14.5",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/traverse": "^7.14.5",
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-simple-access": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz",
- "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==",
- "requires": {
- "@babel/types": "^7.14.8"
- }
- },
- "@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz",
- "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==",
- "requires": {
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz",
- "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==",
- "requires": {
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/helper-validator-identifier": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz",
- "integrity": "sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow=="
- },
- "@babel/helper-validator-option": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
- "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow=="
- },
- "@babel/helper-wrap-function": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz",
- "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==",
- "requires": {
- "@babel/helper-function-name": "^7.14.5",
- "@babel/template": "^7.14.5",
- "@babel/traverse": "^7.14.5",
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/highlight": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz",
- "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==",
- "requires": {
- "@babel/helper-validator-identifier": "^7.14.5",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- }
- },
- "@babel/parser": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.8.tgz",
- "integrity": "sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA=="
- },
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz",
- "integrity": "sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5",
- "@babel/plugin-proposal-optional-chaining": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-async-generator-functions": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz",
- "integrity": "sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.14.5",
- "@babel/plugin-syntax-async-generators": "^7.8.4"
- }
- },
- "@babel/plugin-proposal-class-properties": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz",
- "integrity": "sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==",
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz",
- "integrity": "sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==",
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-class-static-block": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-dynamic-import": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz",
- "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-export-namespace-from": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz",
- "integrity": "sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-json-strings": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz",
- "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-json-strings": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz",
- "integrity": "sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
- }
- },
- "@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz",
- "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-numeric-separator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz",
- "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4"
- }
- },
- "@babel/plugin-proposal-object-rest-spread": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz",
- "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==",
- "requires": {
- "@babel/compat-data": "^7.14.7",
- "@babel/helper-compilation-targets": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz",
- "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-optional-chaining": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz",
- "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3"
- }
- },
- "@babel/plugin-proposal-private-methods": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz",
- "integrity": "sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==",
- "requires": {
- "@babel/helper-create-class-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==",
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-create-class-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5"
- }
- },
- "@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz",
- "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==",
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-async-generators": {
- "version": "7.8.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
- "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-class-properties": {
- "version": "7.12.13",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
- "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.12.13"
- }
- },
- "@babel/plugin-syntax-class-static-block": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
- "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-dynamic-import": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
- "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-export-namespace-from": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
- "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.3"
- }
- },
- "@babel/plugin-syntax-json-strings": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
- "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-logical-assignment-operators": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
- "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-nullish-coalescing-operator": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
- "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.4",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
- "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.10.4"
- }
- },
- "@babel/plugin-syntax-object-rest-spread": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
- "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-catch-binding": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
- "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-optional-chaining": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
- "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.8.0"
- }
- },
- "@babel/plugin-syntax-private-property-in-object": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
- "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-syntax-top-level-await": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
- "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-arrow-functions": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz",
- "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-async-to-generator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz",
- "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==",
- "requires": {
- "@babel/helper-module-imports": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-remap-async-to-generator": "^7.14.5"
- }
- },
- "@babel/plugin-transform-block-scoped-functions": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz",
- "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-block-scoping": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz",
- "integrity": "sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-classes": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz",
- "integrity": "sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==",
- "requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-optimise-call-expression": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5",
- "globals": "^11.1.0"
- }
- },
- "@babel/plugin-transform-computed-properties": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz",
- "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-destructuring": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz",
- "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-dotall-regex": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz",
- "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==",
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-duplicate-keys": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz",
- "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-exponentiation-operator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz",
- "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==",
- "requires": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-for-of": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz",
- "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-function-name": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz",
- "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==",
- "requires": {
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-literals": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz",
- "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-member-expression-literals": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz",
- "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-modules-amd": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz",
- "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==",
- "requires": {
- "@babel/helper-module-transforms": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- }
- },
- "@babel/plugin-transform-modules-commonjs": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz",
- "integrity": "sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==",
- "requires": {
- "@babel/helper-module-transforms": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-simple-access": "^7.14.5",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- }
- },
- "@babel/plugin-transform-modules-systemjs": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz",
- "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==",
- "requires": {
- "@babel/helper-hoist-variables": "^7.14.5",
- "@babel/helper-module-transforms": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-validator-identifier": "^7.14.5",
- "babel-plugin-dynamic-import-node": "^2.3.3"
- }
- },
- "@babel/plugin-transform-modules-umd": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz",
- "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==",
- "requires": {
- "@babel/helper-module-transforms": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.14.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz",
- "integrity": "sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==",
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.14.5"
- }
- },
- "@babel/plugin-transform-new-target": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz",
- "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-object-super": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz",
- "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-replace-supers": "^7.14.5"
- }
- },
- "@babel/plugin-transform-parameters": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz",
- "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-property-literals": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz",
- "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-regenerator": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz",
- "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==",
- "requires": {
- "regenerator-transform": "^0.14.2"
- }
- },
- "@babel/plugin-transform-reserved-words": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz",
- "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-shorthand-properties": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz",
- "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-spread": {
- "version": "7.14.6",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz",
- "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5"
- }
- },
- "@babel/plugin-transform-sticky-regex": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz",
- "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-template-literals": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz",
- "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-typeof-symbol": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz",
- "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-unicode-escapes": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz",
- "integrity": "sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/plugin-transform-unicode-regex": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz",
- "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==",
- "requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
- }
- },
- "@babel/preset-env": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.14.8.tgz",
- "integrity": "sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==",
- "requires": {
- "@babel/compat-data": "^7.14.7",
- "@babel/helper-compilation-targets": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.14.5",
- "@babel/plugin-proposal-async-generator-functions": "^7.14.7",
- "@babel/plugin-proposal-class-properties": "^7.14.5",
- "@babel/plugin-proposal-class-static-block": "^7.14.5",
- "@babel/plugin-proposal-dynamic-import": "^7.14.5",
- "@babel/plugin-proposal-export-namespace-from": "^7.14.5",
- "@babel/plugin-proposal-json-strings": "^7.14.5",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
- "@babel/plugin-proposal-numeric-separator": "^7.14.5",
- "@babel/plugin-proposal-object-rest-spread": "^7.14.7",
- "@babel/plugin-proposal-optional-catch-binding": "^7.14.5",
- "@babel/plugin-proposal-optional-chaining": "^7.14.5",
- "@babel/plugin-proposal-private-methods": "^7.14.5",
- "@babel/plugin-proposal-private-property-in-object": "^7.14.5",
- "@babel/plugin-proposal-unicode-property-regex": "^7.14.5",
- "@babel/plugin-syntax-async-generators": "^7.8.4",
- "@babel/plugin-syntax-class-properties": "^7.12.13",
- "@babel/plugin-syntax-class-static-block": "^7.14.5",
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
- "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
- "@babel/plugin-syntax-json-strings": "^7.8.3",
- "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
- "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
- "@babel/plugin-syntax-numeric-separator": "^7.10.4",
- "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
- "@babel/plugin-syntax-optional-chaining": "^7.8.3",
- "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
- "@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.14.5",
- "@babel/plugin-transform-async-to-generator": "^7.14.5",
- "@babel/plugin-transform-block-scoped-functions": "^7.14.5",
- "@babel/plugin-transform-block-scoping": "^7.14.5",
- "@babel/plugin-transform-classes": "^7.14.5",
- "@babel/plugin-transform-computed-properties": "^7.14.5",
- "@babel/plugin-transform-destructuring": "^7.14.7",
- "@babel/plugin-transform-dotall-regex": "^7.14.5",
- "@babel/plugin-transform-duplicate-keys": "^7.14.5",
- "@babel/plugin-transform-exponentiation-operator": "^7.14.5",
- "@babel/plugin-transform-for-of": "^7.14.5",
- "@babel/plugin-transform-function-name": "^7.14.5",
- "@babel/plugin-transform-literals": "^7.14.5",
- "@babel/plugin-transform-member-expression-literals": "^7.14.5",
- "@babel/plugin-transform-modules-amd": "^7.14.5",
- "@babel/plugin-transform-modules-commonjs": "^7.14.5",
- "@babel/plugin-transform-modules-systemjs": "^7.14.5",
- "@babel/plugin-transform-modules-umd": "^7.14.5",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.7",
- "@babel/plugin-transform-new-target": "^7.14.5",
- "@babel/plugin-transform-object-super": "^7.14.5",
- "@babel/plugin-transform-parameters": "^7.14.5",
- "@babel/plugin-transform-property-literals": "^7.14.5",
- "@babel/plugin-transform-regenerator": "^7.14.5",
- "@babel/plugin-transform-reserved-words": "^7.14.5",
- "@babel/plugin-transform-shorthand-properties": "^7.14.5",
- "@babel/plugin-transform-spread": "^7.14.6",
- "@babel/plugin-transform-sticky-regex": "^7.14.5",
- "@babel/plugin-transform-template-literals": "^7.14.5",
- "@babel/plugin-transform-typeof-symbol": "^7.14.5",
- "@babel/plugin-transform-unicode-escapes": "^7.14.5",
- "@babel/plugin-transform-unicode-regex": "^7.14.5",
- "@babel/preset-modules": "^0.1.4",
- "@babel/types": "^7.14.8",
- "babel-plugin-polyfill-corejs2": "^0.2.2",
- "babel-plugin-polyfill-corejs3": "^0.2.2",
- "babel-plugin-polyfill-regenerator": "^0.2.2",
- "core-js-compat": "^3.15.0",
- "semver": "^6.3.0"
- }
- },
- "@babel/preset-modules": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz",
- "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==",
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- }
- },
- "@babel/runtime": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.14.8.tgz",
- "integrity": "sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==",
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/template": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz",
- "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==",
- "requires": {
- "@babel/code-frame": "^7.14.5",
- "@babel/parser": "^7.14.5",
- "@babel/types": "^7.14.5"
- }
- },
- "@babel/traverse": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.8.tgz",
- "integrity": "sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==",
- "requires": {
- "@babel/code-frame": "^7.14.5",
- "@babel/generator": "^7.14.8",
- "@babel/helper-function-name": "^7.14.5",
- "@babel/helper-hoist-variables": "^7.14.5",
- "@babel/helper-split-export-declaration": "^7.14.5",
- "@babel/parser": "^7.14.8",
- "@babel/types": "^7.14.8",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- }
- },
- "@babel/types": {
- "version": "7.14.8",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.8.tgz",
- "integrity": "sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==",
- "requires": {
- "@babel/helper-validator-identifier": "^7.14.8",
- "to-fast-properties": "^2.0.0"
- }
- },
- "ansi-colors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz",
- "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==",
- "requires": {
- "ansi-wrap": "^0.1.0"
- }
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "ansi-wrap": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz",
- "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768="
- },
- "arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA="
- },
- "arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
- },
- "assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c="
- },
- "babel-plugin-dynamic-import-node": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
- "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
- "requires": {
- "object.assign": "^4.1.0"
- }
- },
- "babel-plugin-polyfill-corejs2": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz",
- "integrity": "sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==",
- "requires": {
- "@babel/compat-data": "^7.13.11",
- "@babel/helper-define-polyfill-provider": "^0.2.2",
- "semver": "^6.1.1"
- }
- },
- "babel-plugin-polyfill-corejs3": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz",
- "integrity": "sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==",
- "requires": {
- "@babel/helper-define-polyfill-provider": "^0.2.2",
- "core-js-compat": "^3.14.0"
- }
- },
- "babel-plugin-polyfill-regenerator": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz",
- "integrity": "sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==",
- "requires": {
- "@babel/helper-define-polyfill-provider": "^0.2.2"
- }
- },
- "browserslist": {
- "version": "4.16.6",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz",
- "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==",
- "requires": {
- "caniuse-lite": "^1.0.30001219",
- "colorette": "^1.2.2",
- "electron-to-chromium": "^1.3.723",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.71"
- }
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "caniuse-lite": {
- "version": "1.0.30001248",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz",
- "integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw=="
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "colorette": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz",
- "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w=="
- },
- "core-js-compat": {
- "version": "3.16.0",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.0.tgz",
- "integrity": "sha512-5D9sPHCdewoUK7pSUPfTF7ZhLh8k9/CoJXWUEo+F1dZT5Z1DVgcuRqUKhjeKW+YLb8f21rTFgWwQJiNw1hoZ5Q==",
- "requires": {
- "browserslist": "^4.16.6",
- "semver": "7.0.0"
- },
- "dependencies": {
- "semver": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
- "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
- }
- }
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "datatables.net": {
- "version": "1.10.25",
- "resolved": "https://registry.npmjs.org/datatables.net/-/datatables.net-1.10.25.tgz",
- "integrity": "sha512-y0+C7all+MC/h1acwnjErhaJPjYGKpWTvbXrfEUbR8+P+nnhgjNn5nL1udgsTwBObMhlj1KITNBRrM/ZLSoj+Q==",
- "requires": {
- "jquery": ">=1.7"
- }
- },
- "datatables.net-bs4": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-3.2.2.tgz",
- "integrity": "sha1-R4YNjMskckMJ/jAN5y6v1yAbusY=",
- "requires": {
- "datatables.net": ">=1.10.13",
- "jquery": ">=1.7"
- }
- },
- "datatables.net-buttons": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/datatables.net-buttons/-/datatables.net-buttons-1.7.1.tgz",
- "integrity": "sha512-D2OxZeR18jhSx+l0xcfAJzfUH7l3LHCu0e606fV7+v3hMhphOfljjZYLaiRmGiR9lqO/f5xE/w2a+OtG/QMavw==",
- "requires": {
- "datatables.net": "^1.10.15",
- "jquery": ">=1.7"
- }
- },
- "datatables.net-buttons-bs4": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/datatables.net-buttons-bs4/-/datatables.net-buttons-bs4-1.7.1.tgz",
- "integrity": "sha512-s+fwsgAAWp7mOKwuztPH06kaw2JNAJ71VNTw/TqGQTL6BK9FshweDKZSRIB/ePcc/Psiy8fhNEj3XHxx4OO6BA==",
- "requires": {
- "datatables.net-bs4": "^1.10.15",
- "datatables.net-buttons": "1.7.1",
- "jquery": ">=1.7"
- },
- "dependencies": {
- "datatables.net-bs4": {
- "version": "1.10.25",
- "resolved": "https://registry.npmjs.org/datatables.net-bs4/-/datatables.net-bs4-1.10.25.tgz",
- "integrity": "sha512-leoiWJWxoPKHBNC9dkFRE84PRybQcAI2Aw4UiS5zisROcYRx8YG1uQOTtID4jbqakmbwwXap/c2eH+sdVP5t2w==",
- "requires": {
- "datatables.net": "1.10.25",
- "jquery": ">=1.7"
- }
- }
- }
- },
- "debug": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
- "requires": {
- "object-keys": "^1.0.12"
- }
- },
- "electron-to-chromium": {
- "version": "1.3.792",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.792.tgz",
- "integrity": "sha512-RM2O2xrNarM7Cs+XF/OE2qX/aBROyOZqqgP+8FXMXSuWuUqCfUUzg7NytQrzZU3aSqk1Qq6zqnVkJsbfMkIatg=="
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
- },
- "extend-shallow": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
- "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=",
- "requires": {
- "assign-symbols": "^1.0.0",
- "is-extendable": "^1.0.1"
- }
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "get-intrinsic": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
- "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.1"
- }
- },
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
- },
- "gulp-babel": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/gulp-babel/-/gulp-babel-8.0.0.tgz",
- "integrity": "sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==",
- "requires": {
- "plugin-error": "^1.0.1",
- "replace-ext": "^1.0.0",
- "through2": "^2.0.0",
- "vinyl-sourcemaps-apply": "^0.2.0"
- }
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
- "has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "is-core-module": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz",
- "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==",
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-extendable": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
- "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
- "requires": {
- "is-plain-object": "^2.0.4"
- }
- },
- "is-plain-object": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
- "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
- "requires": {
- "isobject": "^3.0.1"
- }
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "isobject": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
- "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
- },
- "jquery": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
- "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
- },
- "lodash.debounce": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168="
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node-releases": {
- "version": "1.1.73",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz",
- "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg=="
- },
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
- },
- "object.assign": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
- "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
- "requires": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "has-symbols": "^1.0.1",
- "object-keys": "^1.1.1"
- }
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
- },
- "plugin-error": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz",
- "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==",
- "requires": {
- "ansi-colors": "^1.0.1",
- "arr-diff": "^4.0.0",
- "arr-union": "^3.1.0",
- "extend-shallow": "^3.0.2"
- }
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "regenerate": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
- },
- "regenerate-unicode-properties": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz",
- "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==",
- "requires": {
- "regenerate": "^1.4.0"
- }
- },
- "regenerator-runtime": {
- "version": "0.13.9",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
- },
- "regenerator-transform": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
- "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
- "requires": {
- "@babel/runtime": "^7.8.4"
- }
- },
- "regexpu-core": {
- "version": "4.7.1",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz",
- "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==",
- "requires": {
- "regenerate": "^1.4.0",
- "regenerate-unicode-properties": "^8.2.0",
- "regjsgen": "^0.5.1",
- "regjsparser": "^0.6.4",
- "unicode-match-property-ecmascript": "^1.0.4",
- "unicode-match-property-value-ecmascript": "^1.2.0"
- }
- },
- "regjsgen": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz",
- "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A=="
- },
- "regjsparser": {
- "version": "0.6.9",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz",
- "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==",
- "requires": {
- "jsesc": "~0.5.0"
- },
- "dependencies": {
- "jsesc": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
- }
- }
- },
- "replace-ext": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz",
- "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw=="
- },
- "resolve": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- },
- "source-map": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "through2": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
- "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
- "requires": {
- "readable-stream": "~2.3.6",
- "xtend": "~4.0.1"
- }
- },
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
- },
- "unicode-canonical-property-names-ecmascript": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
- "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ=="
- },
- "unicode-match-property-ecmascript": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz",
- "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==",
- "requires": {
- "unicode-canonical-property-names-ecmascript": "^1.0.4",
- "unicode-property-aliases-ecmascript": "^1.0.4"
- }
- },
- "unicode-match-property-value-ecmascript": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz",
- "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ=="
- },
- "unicode-property-aliases-ecmascript": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz",
- "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg=="
- },
- "urijs": {
- "version": "1.19.7",
- "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.7.tgz",
- "integrity": "sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA=="
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "vinyl-sourcemaps-apply": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz",
- "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=",
- "requires": {
- "source-map": "^0.5.1"
- }
- },
- "xtend": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
- "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
- }
- }
-}
diff --git a/Lombiq.DataTables/package.json b/Lombiq.DataTables/package.json
index b7ec60b48..f749cb4b3 100644
--- a/Lombiq.DataTables/package.json
+++ b/Lombiq.DataTables/package.json
@@ -1,15 +1,45 @@
{
"private": true,
- "scripts": {
- "dotnet-prebuild": "gulp"
- },
"dependencies": {
- "@babel/preset-env": "^7.14.8",
- "datatables.net": "1.10.25",
- "datatables.net-bs4": "3.2.2",
"datatables.net-buttons": "1.7.1",
"datatables.net-buttons-bs4": "1.7.1",
- "gulp-babel": "^8.0.0",
"urijs": "1.19.7"
+ },
+ "scripts": {
+ "build": "npm explore nodejs-extensions -- pnpm build",
+ "clean": "npm explore nodejs-extensions -- pnpm clean",
+ "watch": "npm explore nodejs-extensions -- pnpm watch"
+ },
+ "nodejsExtensions": {
+ "assetsToCopy": [
+ {
+ "sources": [ "Assets/UnmanagedNodeModules/datatables.net/js" ],
+ "pattern": "*",
+ "target": "wwwroot/vendors/datatables.net"
+ },
+ {
+ "sources": [ "node_modules/datatables.net-buttons/js" ],
+ "pattern": "*",
+ "target": "wwwroot/vendors/datatables.net-buttons"
+ },
+ {
+ "sources": [ "Assets/UnmanagedNodeModules/datatables.net-bs4/js", "node_modules/datatables.net-buttons-bs4/js" ],
+ "pattern": "*",
+ "target": "wwwroot/vendors/datatables.net-bs4-js"
+ },
+ {
+ "sources": [ "Assets/UnmanagedNodeModules/datatables.net-bs4/css", "node_modules/datatables.net-buttons-bs4/css" ],
+ "pattern": "*",
+ "target": "wwwroot/vendors/datatables.net-bs4-css"
+ },
+ {
+ "sources": [ "node_modules/urijs/src" ],
+ "target": "wwwroot/vendors/urijs"
+ }
+ ],
+ "scripts": {
+ "source": "Assets/Scripts",
+ "target": "wwwroot/lombiq"
+ }
}
}
diff --git a/Lombiq.DataTables/pnpm-lock.yaml b/Lombiq.DataTables/pnpm-lock.yaml
index 78f911f46..a0864053d 100644
--- a/Lombiq.DataTables/pnpm-lock.yaml
+++ b/Lombiq.DataTables/pnpm-lock.yaml
@@ -1,1155 +1,17 @@
lockfileVersion: 5.3
specifiers:
- '@babel/preset-env': ^7.14.8
- datatables.net: 1.10.25
- datatables.net-bs4: 3.2.2
datatables.net-buttons: 1.7.1
datatables.net-buttons-bs4: 1.7.1
- gulp-babel: ^8.0.0
urijs: 1.19.7
dependencies:
- '@babel/preset-env': 7.14.8
- datatables.net: 1.10.25
- datatables.net-bs4: 3.2.2
datatables.net-buttons: 1.7.1
datatables.net-buttons-bs4: 1.7.1
- gulp-babel: 8.0.0
urijs: 1.19.7
packages:
- /@babel/code-frame/7.14.5:
- resolution: {integrity: sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/highlight': 7.14.5
- dev: false
-
- /@babel/compat-data/7.14.7:
- resolution: {integrity: sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw==}
- engines: {node: '>=6.9.0'}
- dev: false
-
- /@babel/generator/7.14.8:
- resolution: {integrity: sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- jsesc: 2.5.2
- source-map: 0.5.7
- dev: false
-
- /@babel/helper-annotate-as-pure/7.14.5:
- resolution: {integrity: sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-builder-binary-assignment-operator-visitor/7.14.5:
- resolution: {integrity: sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-explode-assignable-expression': 7.14.5
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-compilation-targets/7.14.5:
- resolution: {integrity: sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
- dependencies:
- '@babel/compat-data': 7.14.7
- '@babel/helper-validator-option': 7.14.5
- browserslist: 4.16.6
- semver: 6.3.0
- dev: false
-
- /@babel/helper-create-class-features-plugin/7.14.8:
- resolution: {integrity: sha512-bpYvH8zJBWzeqi1o+co8qOrw+EXzQ/0c74gVmY205AWXy9nifHrOg77y+1zwxX5lXE7Icq4sPlSQ4O2kWBrteQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
- dependencies:
- '@babel/helper-annotate-as-pure': 7.14.5
- '@babel/helper-function-name': 7.14.5
- '@babel/helper-member-expression-to-functions': 7.14.7
- '@babel/helper-optimise-call-expression': 7.14.5
- '@babel/helper-replace-supers': 7.14.5
- '@babel/helper-split-export-declaration': 7.14.5
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/helper-create-regexp-features-plugin/7.14.5:
- resolution: {integrity: sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
- dependencies:
- '@babel/helper-annotate-as-pure': 7.14.5
- regexpu-core: 4.7.1
- dev: false
-
- /@babel/helper-define-polyfill-provider/0.2.3:
- resolution: {integrity: sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew==}
- peerDependencies:
- '@babel/core': ^7.4.0-0
- dependencies:
- '@babel/helper-compilation-targets': 7.14.5
- '@babel/helper-module-imports': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/traverse': 7.14.8
- debug: 4.3.2
- lodash.debounce: 4.0.8
- resolve: 1.20.0
- semver: 6.3.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/helper-explode-assignable-expression/7.14.5:
- resolution: {integrity: sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-function-name/7.14.5:
- resolution: {integrity: sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-get-function-arity': 7.14.5
- '@babel/template': 7.14.5
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-get-function-arity/7.14.5:
- resolution: {integrity: sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-hoist-variables/7.14.5:
- resolution: {integrity: sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-member-expression-to-functions/7.14.7:
- resolution: {integrity: sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-module-imports/7.14.5:
- resolution: {integrity: sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-module-transforms/7.14.8:
- resolution: {integrity: sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-module-imports': 7.14.5
- '@babel/helper-replace-supers': 7.14.5
- '@babel/helper-simple-access': 7.14.8
- '@babel/helper-split-export-declaration': 7.14.5
- '@babel/helper-validator-identifier': 7.14.8
- '@babel/template': 7.14.5
- '@babel/traverse': 7.14.8
- '@babel/types': 7.14.8
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/helper-optimise-call-expression/7.14.5:
- resolution: {integrity: sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-plugin-utils/7.14.5:
- resolution: {integrity: sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==}
- engines: {node: '>=6.9.0'}
- dev: false
-
- /@babel/helper-remap-async-to-generator/7.14.5:
- resolution: {integrity: sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-annotate-as-pure': 7.14.5
- '@babel/helper-wrap-function': 7.14.5
- '@babel/types': 7.14.8
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/helper-replace-supers/7.14.5:
- resolution: {integrity: sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-member-expression-to-functions': 7.14.7
- '@babel/helper-optimise-call-expression': 7.14.5
- '@babel/traverse': 7.14.8
- '@babel/types': 7.14.8
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/helper-simple-access/7.14.8:
- resolution: {integrity: sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-skip-transparent-expression-wrappers/7.14.5:
- resolution: {integrity: sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-split-export-declaration/7.14.5:
- resolution: {integrity: sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/helper-validator-identifier/7.14.8:
- resolution: {integrity: sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow==}
- engines: {node: '>=6.9.0'}
- dev: false
-
- /@babel/helper-validator-option/7.14.5:
- resolution: {integrity: sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==}
- engines: {node: '>=6.9.0'}
- dev: false
-
- /@babel/helper-wrap-function/7.14.5:
- resolution: {integrity: sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-function-name': 7.14.5
- '@babel/template': 7.14.5
- '@babel/traverse': 7.14.8
- '@babel/types': 7.14.8
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/highlight/7.14.5:
- resolution: {integrity: sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-validator-identifier': 7.14.8
- chalk: 2.4.2
- js-tokens: 4.0.0
- dev: false
-
- /@babel/parser/7.14.8:
- resolution: {integrity: sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA==}
- engines: {node: '>=6.0.0'}
- hasBin: true
- dev: false
-
- /@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/7.14.5:
- resolution: {integrity: sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.13.0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.14.5
- '@babel/plugin-proposal-optional-chaining': 7.14.5
- dev: false
-
- /@babel/plugin-proposal-async-generator-functions/7.14.7:
- resolution: {integrity: sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-remap-async-to-generator': 7.14.5
- '@babel/plugin-syntax-async-generators': 7.8.4
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-proposal-class-properties/7.14.5:
- resolution: {integrity: sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-create-class-features-plugin': 7.14.8
- '@babel/helper-plugin-utils': 7.14.5
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-proposal-class-static-block/7.14.5:
- resolution: {integrity: sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.12.0
- dependencies:
- '@babel/helper-create-class-features-plugin': 7.14.8
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-class-static-block': 7.14.5
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-proposal-dynamic-import/7.14.5:
- resolution: {integrity: sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-dynamic-import': 7.8.3
- dev: false
-
- /@babel/plugin-proposal-export-namespace-from/7.14.5:
- resolution: {integrity: sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-export-namespace-from': 7.8.3
- dev: false
-
- /@babel/plugin-proposal-json-strings/7.14.5:
- resolution: {integrity: sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-json-strings': 7.8.3
- dev: false
-
- /@babel/plugin-proposal-logical-assignment-operators/7.14.5:
- resolution: {integrity: sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4
- dev: false
-
- /@babel/plugin-proposal-nullish-coalescing-operator/7.14.5:
- resolution: {integrity: sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3
- dev: false
-
- /@babel/plugin-proposal-numeric-separator/7.14.5:
- resolution: {integrity: sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-numeric-separator': 7.10.4
- dev: false
-
- /@babel/plugin-proposal-object-rest-spread/7.14.7:
- resolution: {integrity: sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/compat-data': 7.14.7
- '@babel/helper-compilation-targets': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-object-rest-spread': 7.8.3
- '@babel/plugin-transform-parameters': 7.14.5
- dev: false
-
- /@babel/plugin-proposal-optional-catch-binding/7.14.5:
- resolution: {integrity: sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3
- dev: false
-
- /@babel/plugin-proposal-optional-chaining/7.14.5:
- resolution: {integrity: sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.14.5
- '@babel/plugin-syntax-optional-chaining': 7.8.3
- dev: false
-
- /@babel/plugin-proposal-private-methods/7.14.5:
- resolution: {integrity: sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-create-class-features-plugin': 7.14.8
- '@babel/helper-plugin-utils': 7.14.5
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-proposal-private-property-in-object/7.14.5:
- resolution: {integrity: sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-annotate-as-pure': 7.14.5
- '@babel/helper-create-class-features-plugin': 7.14.8
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-syntax-private-property-in-object': 7.14.5
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-proposal-unicode-property-regex/7.14.5:
- resolution: {integrity: sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==}
- engines: {node: '>=4'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-create-regexp-features-plugin': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-async-generators/7.8.4:
- resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-class-properties/7.12.13:
- resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-class-static-block/7.14.5:
- resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-dynamic-import/7.8.3:
- resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-export-namespace-from/7.8.3:
- resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-json-strings/7.8.3:
- resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-logical-assignment-operators/7.10.4:
- resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3:
- resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-numeric-separator/7.10.4:
- resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-object-rest-spread/7.8.3:
- resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-optional-catch-binding/7.8.3:
- resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-optional-chaining/7.8.3:
- resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-private-property-in-object/7.14.5:
- resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-syntax-top-level-await/7.14.5:
- resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-arrow-functions/7.14.5:
- resolution: {integrity: sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-async-to-generator/7.14.5:
- resolution: {integrity: sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-module-imports': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-remap-async-to-generator': 7.14.5
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-transform-block-scoped-functions/7.14.5:
- resolution: {integrity: sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-block-scoping/7.14.5:
- resolution: {integrity: sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-classes/7.14.5:
- resolution: {integrity: sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-annotate-as-pure': 7.14.5
- '@babel/helper-function-name': 7.14.5
- '@babel/helper-optimise-call-expression': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-replace-supers': 7.14.5
- '@babel/helper-split-export-declaration': 7.14.5
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-transform-computed-properties/7.14.5:
- resolution: {integrity: sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-destructuring/7.14.7:
- resolution: {integrity: sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-dotall-regex/7.14.5:
- resolution: {integrity: sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-create-regexp-features-plugin': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-duplicate-keys/7.14.5:
- resolution: {integrity: sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-exponentiation-operator/7.14.5:
- resolution: {integrity: sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-builder-binary-assignment-operator-visitor': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-for-of/7.14.5:
- resolution: {integrity: sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-function-name/7.14.5:
- resolution: {integrity: sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-function-name': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-literals/7.14.5:
- resolution: {integrity: sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-member-expression-literals/7.14.5:
- resolution: {integrity: sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-modules-amd/7.14.5:
- resolution: {integrity: sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-module-transforms': 7.14.8
- '@babel/helper-plugin-utils': 7.14.5
- babel-plugin-dynamic-import-node: 2.3.3
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-transform-modules-commonjs/7.14.5:
- resolution: {integrity: sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-module-transforms': 7.14.8
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-simple-access': 7.14.8
- babel-plugin-dynamic-import-node: 2.3.3
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-transform-modules-systemjs/7.14.5:
- resolution: {integrity: sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-hoist-variables': 7.14.5
- '@babel/helper-module-transforms': 7.14.8
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-validator-identifier': 7.14.8
- babel-plugin-dynamic-import-node: 2.3.3
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-transform-modules-umd/7.14.5:
- resolution: {integrity: sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-module-transforms': 7.14.8
- '@babel/helper-plugin-utils': 7.14.5
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-transform-named-capturing-groups-regex/7.14.7:
- resolution: {integrity: sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
- dependencies:
- '@babel/helper-create-regexp-features-plugin': 7.14.5
- dev: false
-
- /@babel/plugin-transform-new-target/7.14.5:
- resolution: {integrity: sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-object-super/7.14.5:
- resolution: {integrity: sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-replace-supers': 7.14.5
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/plugin-transform-parameters/7.14.5:
- resolution: {integrity: sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-property-literals/7.14.5:
- resolution: {integrity: sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-regenerator/7.14.5:
- resolution: {integrity: sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- regenerator-transform: 0.14.5
- dev: false
-
- /@babel/plugin-transform-reserved-words/7.14.5:
- resolution: {integrity: sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-shorthand-properties/7.14.5:
- resolution: {integrity: sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-spread/7.14.6:
- resolution: {integrity: sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-skip-transparent-expression-wrappers': 7.14.5
- dev: false
-
- /@babel/plugin-transform-sticky-regex/7.14.5:
- resolution: {integrity: sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-template-literals/7.14.5:
- resolution: {integrity: sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-typeof-symbol/7.14.5:
- resolution: {integrity: sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-unicode-escapes/7.14.5:
- resolution: {integrity: sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/plugin-transform-unicode-regex/7.14.5:
- resolution: {integrity: sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-create-regexp-features-plugin': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- dev: false
-
- /@babel/preset-env/7.14.8:
- resolution: {integrity: sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/compat-data': 7.14.7
- '@babel/helper-compilation-targets': 7.14.5
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/helper-validator-option': 7.14.5
- '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.14.5
- '@babel/plugin-proposal-async-generator-functions': 7.14.7
- '@babel/plugin-proposal-class-properties': 7.14.5
- '@babel/plugin-proposal-class-static-block': 7.14.5
- '@babel/plugin-proposal-dynamic-import': 7.14.5
- '@babel/plugin-proposal-export-namespace-from': 7.14.5
- '@babel/plugin-proposal-json-strings': 7.14.5
- '@babel/plugin-proposal-logical-assignment-operators': 7.14.5
- '@babel/plugin-proposal-nullish-coalescing-operator': 7.14.5
- '@babel/plugin-proposal-numeric-separator': 7.14.5
- '@babel/plugin-proposal-object-rest-spread': 7.14.7
- '@babel/plugin-proposal-optional-catch-binding': 7.14.5
- '@babel/plugin-proposal-optional-chaining': 7.14.5
- '@babel/plugin-proposal-private-methods': 7.14.5
- '@babel/plugin-proposal-private-property-in-object': 7.14.5
- '@babel/plugin-proposal-unicode-property-regex': 7.14.5
- '@babel/plugin-syntax-async-generators': 7.8.4
- '@babel/plugin-syntax-class-properties': 7.12.13
- '@babel/plugin-syntax-class-static-block': 7.14.5
- '@babel/plugin-syntax-dynamic-import': 7.8.3
- '@babel/plugin-syntax-export-namespace-from': 7.8.3
- '@babel/plugin-syntax-json-strings': 7.8.3
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3
- '@babel/plugin-syntax-numeric-separator': 7.10.4
- '@babel/plugin-syntax-object-rest-spread': 7.8.3
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3
- '@babel/plugin-syntax-optional-chaining': 7.8.3
- '@babel/plugin-syntax-private-property-in-object': 7.14.5
- '@babel/plugin-syntax-top-level-await': 7.14.5
- '@babel/plugin-transform-arrow-functions': 7.14.5
- '@babel/plugin-transform-async-to-generator': 7.14.5
- '@babel/plugin-transform-block-scoped-functions': 7.14.5
- '@babel/plugin-transform-block-scoping': 7.14.5
- '@babel/plugin-transform-classes': 7.14.5
- '@babel/plugin-transform-computed-properties': 7.14.5
- '@babel/plugin-transform-destructuring': 7.14.7
- '@babel/plugin-transform-dotall-regex': 7.14.5
- '@babel/plugin-transform-duplicate-keys': 7.14.5
- '@babel/plugin-transform-exponentiation-operator': 7.14.5
- '@babel/plugin-transform-for-of': 7.14.5
- '@babel/plugin-transform-function-name': 7.14.5
- '@babel/plugin-transform-literals': 7.14.5
- '@babel/plugin-transform-member-expression-literals': 7.14.5
- '@babel/plugin-transform-modules-amd': 7.14.5
- '@babel/plugin-transform-modules-commonjs': 7.14.5
- '@babel/plugin-transform-modules-systemjs': 7.14.5
- '@babel/plugin-transform-modules-umd': 7.14.5
- '@babel/plugin-transform-named-capturing-groups-regex': 7.14.7
- '@babel/plugin-transform-new-target': 7.14.5
- '@babel/plugin-transform-object-super': 7.14.5
- '@babel/plugin-transform-parameters': 7.14.5
- '@babel/plugin-transform-property-literals': 7.14.5
- '@babel/plugin-transform-regenerator': 7.14.5
- '@babel/plugin-transform-reserved-words': 7.14.5
- '@babel/plugin-transform-shorthand-properties': 7.14.5
- '@babel/plugin-transform-spread': 7.14.6
- '@babel/plugin-transform-sticky-regex': 7.14.5
- '@babel/plugin-transform-template-literals': 7.14.5
- '@babel/plugin-transform-typeof-symbol': 7.14.5
- '@babel/plugin-transform-unicode-escapes': 7.14.5
- '@babel/plugin-transform-unicode-regex': 7.14.5
- '@babel/preset-modules': 0.1.4
- '@babel/types': 7.14.8
- babel-plugin-polyfill-corejs2: 0.2.2
- babel-plugin-polyfill-corejs3: 0.2.3
- babel-plugin-polyfill-regenerator: 0.2.2
- core-js-compat: 3.15.2
- semver: 6.3.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/preset-modules/0.1.4:
- resolution: {integrity: sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-plugin-utils': 7.14.5
- '@babel/plugin-proposal-unicode-property-regex': 7.14.5
- '@babel/plugin-transform-dotall-regex': 7.14.5
- '@babel/types': 7.14.8
- esutils: 2.0.3
- dev: false
-
- /@babel/runtime/7.14.8:
- resolution: {integrity: sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- regenerator-runtime: 0.13.9
- dev: false
-
- /@babel/template/7.14.5:
- resolution: {integrity: sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/code-frame': 7.14.5
- '@babel/parser': 7.14.8
- '@babel/types': 7.14.8
- dev: false
-
- /@babel/traverse/7.14.8:
- resolution: {integrity: sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/code-frame': 7.14.5
- '@babel/generator': 7.14.8
- '@babel/helper-function-name': 7.14.5
- '@babel/helper-hoist-variables': 7.14.5
- '@babel/helper-split-export-declaration': 7.14.5
- '@babel/parser': 7.14.8
- '@babel/types': 7.14.8
- debug: 4.3.2
- globals: 11.12.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /@babel/types/7.14.8:
- resolution: {integrity: sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-validator-identifier': 7.14.8
- to-fast-properties: 2.0.0
- dev: false
-
- /ansi-colors/1.1.0:
- resolution: {integrity: sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- ansi-wrap: 0.1.0
- dev: false
-
- /ansi-styles/3.2.1:
- resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
- engines: {node: '>=4'}
- dependencies:
- color-convert: 1.9.3
- dev: false
-
- /ansi-wrap/0.1.0:
- resolution: {integrity: sha1-qCJQ3bABXponyoLoLqYDu/pF768=}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /arr-diff/4.0.0:
- resolution: {integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /arr-union/3.1.0:
- resolution: {integrity: sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /assign-symbols/1.0.0:
- resolution: {integrity: sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /babel-plugin-dynamic-import-node/2.3.3:
- resolution: {integrity: sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==}
- dependencies:
- object.assign: 4.1.2
- dev: false
-
- /babel-plugin-polyfill-corejs2/0.2.2:
- resolution: {integrity: sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/compat-data': 7.14.7
- '@babel/helper-define-polyfill-provider': 0.2.3
- semver: 6.3.0
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /babel-plugin-polyfill-corejs3/0.2.3:
- resolution: {integrity: sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-define-polyfill-provider': 0.2.3
- core-js-compat: 3.15.2
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /babel-plugin-polyfill-regenerator/0.2.2:
- resolution: {integrity: sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg==}
- peerDependencies:
- '@babel/core': ^7.0.0-0
- dependencies:
- '@babel/helper-define-polyfill-provider': 0.2.3
- transitivePeerDependencies:
- - supports-color
- dev: false
-
- /browserslist/4.16.6:
- resolution: {integrity: sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
- dependencies:
- caniuse-lite: 1.0.30001247
- colorette: 1.2.2
- electron-to-chromium: 1.3.786
- escalade: 3.1.1
- node-releases: 1.1.73
- dev: false
-
- /call-bind/1.0.2:
- resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
- dependencies:
- function-bind: 1.1.1
- get-intrinsic: 1.1.1
- dev: false
-
- /caniuse-lite/1.0.30001247:
- resolution: {integrity: sha512-4rS7co+7+AoOSPRPOPUt5/GdaqZc0EsUpWk66ofE3HJTAajUK2Ss2VwoNzVN69ghg8lYYlh0an0Iy4LIHHo9UQ==}
- dev: false
-
- /chalk/2.4.2:
- resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
- engines: {node: '>=4'}
- dependencies:
- ansi-styles: 3.2.1
- escape-string-regexp: 1.0.5
- supports-color: 5.5.0
- dev: false
-
- /color-convert/1.9.3:
- resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
- dependencies:
- color-name: 1.1.3
- dev: false
-
- /color-name/1.1.3:
- resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
- dev: false
-
- /colorette/1.2.2:
- resolution: {integrity: sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==}
- dev: false
-
- /core-js-compat/3.15.2:
- resolution: {integrity: sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ==}
- dependencies:
- browserslist: 4.16.6
- semver: 7.0.0
- dev: false
-
- /core-util-is/1.0.2:
- resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=}
- dev: false
-
/datatables.net-bs4/1.10.20:
resolution: {integrity: sha512-kQmMUMsHMOlAW96ztdoFqjSbLnlGZQ63iIM82kHbmldsfYdzuyhbb4hTx6YNBi481WCO3iPSvI6YodNec46ZAw==}
dependencies:
@@ -1157,14 +19,6 @@ packages:
jquery: 3.6.0
dev: false
- /datatables.net-bs4/3.2.2:
- resolution: {integrity: sha1-R4YNjMskckMJ/jAN5y6v1yAbusY=}
- deprecated: Incorrect version published. Please use the latest non-deprecated version - 1.10.13 at the time of writing
- dependencies:
- datatables.net: 1.10.25
- jquery: 3.6.0
- dev: false
-
/datatables.net-buttons-bs4/1.7.1:
resolution: {integrity: sha512-s+fwsgAAWp7mOKwuztPH06kaw2JNAJ71VNTw/TqGQTL6BK9FshweDKZSRIB/ePcc/Psiy8fhNEj3XHxx4OO6BA==}
dependencies:
@@ -1176,7 +30,7 @@ packages:
/datatables.net-buttons/1.7.1:
resolution: {integrity: sha512-D2OxZeR18jhSx+l0xcfAJzfUH7l3LHCu0e606fV7+v3hMhphOfljjZYLaiRmGiR9lqO/f5xE/w2a+OtG/QMavw==}
dependencies:
- datatables.net: 1.10.25
+ datatables.net: 1.11.5
jquery: 3.6.0
dev: false
@@ -1186,351 +40,16 @@ packages:
jquery: 3.6.0
dev: false
- /datatables.net/1.10.25:
- resolution: {integrity: sha512-y0+C7all+MC/h1acwnjErhaJPjYGKpWTvbXrfEUbR8+P+nnhgjNn5nL1udgsTwBObMhlj1KITNBRrM/ZLSoj+Q==}
+ /datatables.net/1.11.5:
+ resolution: {integrity: sha512-nlFst2xfwSWaQgaOg5sXVG3cxYC0tH8E8d65289w9ROgF2TmLULOOpcdMpyxxUim/qEwVSEem42RjkTWEpr3eA==}
dependencies:
jquery: 3.6.0
dev: false
- /debug/4.3.2:
- resolution: {integrity: sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==}
- engines: {node: '>=6.0'}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
- dependencies:
- ms: 2.1.2
- dev: false
-
- /define-properties/1.1.3:
- resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==}
- engines: {node: '>= 0.4'}
- dependencies:
- object-keys: 1.1.1
- dev: false
-
- /electron-to-chromium/1.3.786:
- resolution: {integrity: sha512-AmvbLBj3hepRk8v/DHrFF8gINxOFfDbrn6Ts3PcK46/FBdQb5OMmpamSpZQXSkfi77FfBzYtQtAk+00LCLYMVw==}
- dev: false
-
- /escalade/3.1.1:
- resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
- engines: {node: '>=6'}
- dev: false
-
- /escape-string-regexp/1.0.5:
- resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
- engines: {node: '>=0.8.0'}
- dev: false
-
- /esutils/2.0.3:
- resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /extend-shallow/3.0.2:
- resolution: {integrity: sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=}
- engines: {node: '>=0.10.0'}
- dependencies:
- assign-symbols: 1.0.0
- is-extendable: 1.0.1
- dev: false
-
- /function-bind/1.1.1:
- resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
- dev: false
-
- /get-intrinsic/1.1.1:
- resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==}
- dependencies:
- function-bind: 1.1.1
- has: 1.0.3
- has-symbols: 1.0.2
- dev: false
-
- /globals/11.12.0:
- resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
- engines: {node: '>=4'}
- dev: false
-
- /gulp-babel/8.0.0:
- resolution: {integrity: sha512-oomaIqDXxFkg7lbpBou/gnUkX51/Y/M2ZfSjL2hdqXTAlSWZcgZtd2o0cOH0r/eE8LWD0+Q/PsLsr2DKOoqToQ==}
- engines: {node: '>=6'}
- peerDependencies:
- '@babel/core': ^7.0.0
- dependencies:
- plugin-error: 1.0.1
- replace-ext: 1.0.1
- through2: 2.0.5
- vinyl-sourcemaps-apply: 0.2.1
- dev: false
-
- /has-flag/3.0.0:
- resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
- engines: {node: '>=4'}
- dev: false
-
- /has-symbols/1.0.2:
- resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==}
- engines: {node: '>= 0.4'}
- dev: false
-
- /has/1.0.3:
- resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
- engines: {node: '>= 0.4.0'}
- dependencies:
- function-bind: 1.1.1
- dev: false
-
- /inherits/2.0.4:
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- dev: false
-
- /is-core-module/2.5.0:
- resolution: {integrity: sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==}
- dependencies:
- has: 1.0.3
- dev: false
-
- /is-extendable/1.0.1:
- resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
- engines: {node: '>=0.10.0'}
- dependencies:
- is-plain-object: 2.0.4
- dev: false
-
- /is-plain-object/2.0.4:
- resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
- engines: {node: '>=0.10.0'}
- dependencies:
- isobject: 3.0.1
- dev: false
-
- /isarray/1.0.0:
- resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
- dev: false
-
- /isobject/3.0.1:
- resolution: {integrity: sha1-TkMekrEalzFjaqH5yNHMvP2reN8=}
- engines: {node: '>=0.10.0'}
- dev: false
-
/jquery/3.6.0:
resolution: {integrity: sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==}
dev: false
- /js-tokens/4.0.0:
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- dev: false
-
- /jsesc/0.5.0:
- resolution: {integrity: sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=}
- hasBin: true
- dev: false
-
- /jsesc/2.5.2:
- resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
- engines: {node: '>=4'}
- hasBin: true
- dev: false
-
- /lodash.debounce/4.0.8:
- resolution: {integrity: sha1-gteb/zCmfEAF/9XiUVMArZyk168=}
- dev: false
-
- /ms/2.1.2:
- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
- dev: false
-
- /node-releases/1.1.73:
- resolution: {integrity: sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==}
- dev: false
-
- /object-keys/1.1.1:
- resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
- engines: {node: '>= 0.4'}
- dev: false
-
- /object.assign/4.1.2:
- resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.2
- define-properties: 1.1.3
- has-symbols: 1.0.2
- object-keys: 1.1.1
- dev: false
-
- /path-parse/1.0.7:
- resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
- dev: false
-
- /plugin-error/1.0.1:
- resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==}
- engines: {node: '>= 0.10'}
- dependencies:
- ansi-colors: 1.1.0
- arr-diff: 4.0.0
- arr-union: 3.1.0
- extend-shallow: 3.0.2
- dev: false
-
- /process-nextick-args/2.0.1:
- resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
- dev: false
-
- /readable-stream/2.3.7:
- resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
- dependencies:
- core-util-is: 1.0.2
- inherits: 2.0.4
- isarray: 1.0.0
- process-nextick-args: 2.0.1
- safe-buffer: 5.1.2
- string_decoder: 1.1.1
- util-deprecate: 1.0.2
- dev: false
-
- /regenerate-unicode-properties/8.2.0:
- resolution: {integrity: sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==}
- engines: {node: '>=4'}
- dependencies:
- regenerate: 1.4.2
- dev: false
-
- /regenerate/1.4.2:
- resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==}
- dev: false
-
- /regenerator-runtime/0.13.9:
- resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==}
- dev: false
-
- /regenerator-transform/0.14.5:
- resolution: {integrity: sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==}
- dependencies:
- '@babel/runtime': 7.14.8
- dev: false
-
- /regexpu-core/4.7.1:
- resolution: {integrity: sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==}
- engines: {node: '>=4'}
- dependencies:
- regenerate: 1.4.2
- regenerate-unicode-properties: 8.2.0
- regjsgen: 0.5.2
- regjsparser: 0.6.9
- unicode-match-property-ecmascript: 1.0.4
- unicode-match-property-value-ecmascript: 1.2.0
- dev: false
-
- /regjsgen/0.5.2:
- resolution: {integrity: sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==}
- dev: false
-
- /regjsparser/0.6.9:
- resolution: {integrity: sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==}
- hasBin: true
- dependencies:
- jsesc: 0.5.0
- dev: false
-
- /replace-ext/1.0.1:
- resolution: {integrity: sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==}
- engines: {node: '>= 0.10'}
- dev: false
-
- /resolve/1.20.0:
- resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==}
- dependencies:
- is-core-module: 2.5.0
- path-parse: 1.0.7
- dev: false
-
- /safe-buffer/5.1.2:
- resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
- dev: false
-
- /semver/6.3.0:
- resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
- hasBin: true
- dev: false
-
- /semver/7.0.0:
- resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
- hasBin: true
- dev: false
-
- /source-map/0.5.7:
- resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=}
- engines: {node: '>=0.10.0'}
- dev: false
-
- /string_decoder/1.1.1:
- resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
- dependencies:
- safe-buffer: 5.1.2
- dev: false
-
- /supports-color/5.5.0:
- resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
- engines: {node: '>=4'}
- dependencies:
- has-flag: 3.0.0
- dev: false
-
- /through2/2.0.5:
- resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
- dependencies:
- readable-stream: 2.3.7
- xtend: 4.0.2
- dev: false
-
- /to-fast-properties/2.0.0:
- resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=}
- engines: {node: '>=4'}
- dev: false
-
- /unicode-canonical-property-names-ecmascript/1.0.4:
- resolution: {integrity: sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==}
- engines: {node: '>=4'}
- dev: false
-
- /unicode-match-property-ecmascript/1.0.4:
- resolution: {integrity: sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==}
- engines: {node: '>=4'}
- dependencies:
- unicode-canonical-property-names-ecmascript: 1.0.4
- unicode-property-aliases-ecmascript: 1.1.0
- dev: false
-
- /unicode-match-property-value-ecmascript/1.2.0:
- resolution: {integrity: sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==}
- engines: {node: '>=4'}
- dev: false
-
- /unicode-property-aliases-ecmascript/1.1.0:
- resolution: {integrity: sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==}
- engines: {node: '>=4'}
- dev: false
-
/urijs/1.19.7:
resolution: {integrity: sha512-Id+IKjdU0Hx+7Zx717jwLPsPeUqz7rAtuVBRLLs+qn+J2nf9NGITWVCxcijgYxBqe83C7sqsQPs6H1pyz3x9gA==}
dev: false
-
- /util-deprecate/1.0.2:
- resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
- dev: false
-
- /vinyl-sourcemaps-apply/0.2.1:
- resolution: {integrity: sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=}
- dependencies:
- source-map: 0.5.7
- dev: false
-
- /xtend/4.0.2:
- resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
- engines: {node: '>=0.4'}
- dev: false
diff --git a/Lombiq.DataTables/wwwroot/.placeholder b/Lombiq.DataTables/wwwroot/.placeholder
deleted file mode 100644
index e69de29bb..000000000
diff --git a/Lombiq.DataTables/wwwroot/lombiq/icbin-datatable.js b/Lombiq.DataTables/wwwroot/lombiq/icbin-datatable.js
deleted file mode 100644
index 741853fb8..000000000
--- a/Lombiq.DataTables/wwwroot/lombiq/icbin-datatable.js
+++ /dev/null
@@ -1,385 +0,0 @@
-"use strict";
-
-function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
-
-function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
-
-function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
-
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
-
-function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
-
-function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
-
-function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
-
-function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
-
-function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
-
-function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
-
-function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
-
-function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
-
-function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
-
-/* globals Vue */
-window.icbinDataTable = {}; // events emitted:
-// - special(cell): If the cell has a property called "special" (value is not null or
-// undefined) this event is called inside the sortedData. This gives an opportunity for the
-// client code to update the cell data (e.g. by setting the "component" and "hiddenInput"
-// properties) with domain-specific behavior without having to edit this component.
-// - update(data): Sends the new desired value of the "data" property to the parent. Alternatively
-// v-model can also be used.
-// - column(columns): Sends an updated columns array to the parent so it can replace the columns parameter with it.
-// - component(rowIndex, columnName, userData): Passed on from the child component. If it's a column header component
-// then columnName is -1.
-//
-// events received:
-// - delete(promptText): cell components may emit this event to signal a request to delete the row
-// from the table's data. Optionally a non-empty String may be passed as event argument. If that
-// happens, a prompt will be displayed with the given text to confirm with the user that they
-// really want to remove the row.
-// - update(data): Same as above. The component may have a "data" property for this purpose.
-// - component(userData): A child component may raise this to be bubbled up to the parent component.
-
-window.icbinDataTable.table = {
- name: 'icbin-datatable',
- model: {
- prop: 'data',
- event: 'update'
- },
- props: {
- data: {
- // [
- // {
- // $rowIndex: Number,
- // columnName: {
- // // These can come from the server:
- // text: String,
- // html: String?,
- // badge: String?
- // sort: Any?,
- // href: String?,
- // multipleLinks: { link: String, text: String }? or [ { link: String, text: String } ]?,
- // special: Any?,
- // hiddenInput: { name: String, value: String }? or [ { name: String, value: String } ]?
- // // These can be set in JS code (e.g. with the "special" event):
- // component: { name: String?, value: Object }?
- // rowClasses: String?
- // }
- // }
- // ]
- // note: The name and value in the hiddenInput properties may contain the {{ index }} expression which is
- // substituted with a zero-based index when generating the hiddenInputs computed property.
- type: Array,
- required: true
- },
- columns: {
- type: Array,
- required: true
- },
- text: {
- // Expected properties: lengthPicker, displayCount, previous, next, all.
- type: Object,
- required: true
- },
- defaultSort: {
- // { name: "columnName", ascending: true }
- "default": null
- },
- defaultLength: {
- type: Number,
- "default": 10
- },
- lengths: {
- type: Array,
- "default": function _default() {
- return [10, 25, 50, 100];
- }
- },
- paging: {
- "default": true
- },
- filter: {
- "default": function _default() {
- return function (collection) {
- return collection;
- };
- }
- }
- },
- data: function data() {
- return {
- pageIndex: 0,
- length: 10,
- sort: {
- name: null,
- ascending: true
- }
- };
- },
- computed: {
- total: function total(self) {
- return self.data.length;
- },
- lengthPickerBefore: function lengthPickerBefore(self) {
- return self.text.lengthPicker.split('{{ count }}')[0];
- },
- lengthPickerAfter: function lengthPickerAfter(self) {
- var parts = self.text.lengthPicker.split('{{ count }}');
- return parts.length > 1 ? parts[1] : '';
- },
- displayCountText: function displayCountText(self) {
- var itemIndex = self.pageIndex * self.length;
- var mathMin = Math.min(itemIndex + self.length, self.total);
- return self.text.displayCount.replace(/{{\s*from\s*}}/, itemIndex + 1).replace(/{{\s*to\s*}}/, mathMin === -1 ? self.total : mathMin).replace(/{{\s*total\s*}}/, self.total);
- },
- pagination: function pagination(self) {
- if (self.total < 1) return [0];
- var pageCount = self.length > 0 ? Math.ceil(self.total / self.length) : 1;
-
- var range = _toConsumableArray(Array(pageCount).keys());
-
- if (self.pageIndex > 3) {
- range = [0, '...'].concat(range.slice(self.pageIndex - 1));
- }
-
- if (pageCount - self.pageIndex > 3) {
- range = range.slice(0, 5).concat(['...', pageCount - 1]);
- }
-
- return range;
- },
- sortedData: function sortedData(self) {
- var lower = self.sort.ascending ? -1 : 1;
- var sorted = self.filter(self.data.concat()) // The concat ensures the sort can't alter the original.
- .sort(function (row1, row2) {
- var _row1$self$sort$name$, _row1$self$sort$name, _row1$self$sort$name2, _row2$self$sort$name$, _row2$self$sort$name, _row2$self$sort$name2;
-
- var sortable1 = (_row1$self$sort$name$ = (_row1$self$sort$name = row1[self.sort.name]) === null || _row1$self$sort$name === void 0 ? void 0 : _row1$self$sort$name.sort) !== null && _row1$self$sort$name$ !== void 0 ? _row1$self$sort$name$ : (_row1$self$sort$name2 = row1[self.sort.name]) === null || _row1$self$sort$name2 === void 0 ? void 0 : _row1$self$sort$name2.text.toLowerCase();
- var sortable2 = (_row2$self$sort$name$ = (_row2$self$sort$name = row2[self.sort.name]) === null || _row2$self$sort$name === void 0 ? void 0 : _row2$self$sort$name.sort) !== null && _row2$self$sort$name$ !== void 0 ? _row2$self$sort$name$ : (_row2$self$sort$name2 = row2[self.sort.name]) === null || _row2$self$sort$name2 === void 0 ? void 0 : _row2$self$sort$name2.text.toLowerCase();
- if (sortable1 < sortable2) return lower;
- if (sortable1 > sortable2) return -lower;
- return 0;
- });
- var page = sorted;
-
- if (self.paging && self.length > 0) {
- var startIndex = self.pageIndex * self.length;
- page = sorted.slice(startIndex, startIndex + self.length);
- }
-
- return page.map(function (row) {
- return Object.fromEntries(Object.entries(row).map(function (cellPair) {
- var _cellPair = _slicedToArray(cellPair, 2),
- name = _cellPair[0],
- cell = _cellPair[1];
-
- if (cell.special !== null && cell.special !== undefined) {
- // This lets the client code alter the cell.
- self.$emit('special', cell);
- }
-
- return [name, cell];
- }));
- });
- },
- hiddenInputs: function hiddenInputs(self) {
- var inputs = [];
- self.data.forEach(function (row) {
- Object.values(row).filter(function (cell) {
- return _typeof(cell) === 'object' && 'hiddenInput' in cell;
- }).forEach(function (cell) {
- return Array.isArray(cell.hiddenInput) ? inputs.push.apply(inputs, _toConsumableArray(cell.hiddenInput)) : inputs.push(cell.hiddenInput);
- });
- }); // Calculate index
-
- var regex = /{{\s*index\s*}}/;
-
- for (var index = 0; index < inputs.length; index++) {
- var input = inputs[index];
- inputs[index] = {
- name: input.name.replace(regex, index),
- value: typeof input.value === 'string' ? input.value.replace(regex, index) : input.value
- };
- }
-
- return inputs;
- }
- },
- methods: {
- changePage: function changePage(page) {
- if (page >= 0 && page < this.total) this.pageIndex = page;
- },
- deleteRow: function deleteRow(rowIndex, promptText) {
- if (!window.confirm(promptText)) return;
- this.updateData(this.data.filter(function (row) {
- return row.$rowIndex !== rowIndex;
- }));
- },
- updateData: function updateData(newData) {
- this.$emit('update', newData);
- },
- updateSort: function updateSort(column) {
- if (!column.orderable) return;
- var sort = this.sort; // It only goes to descending on the second click of the same column header.
-
- var toAscending = !(sort.name === column.name && sort.ascending);
- sort.name = column.name;
- sort.ascending = toAscending;
- },
- updateColumn: function updateColumn(columnIndex, column) {
- var newColumns = this.columns.concat();
- newColumns.splice(columnIndex, 1, column);
- this.$emit('column', newColumns);
- },
- rowClasses: function rowClasses(row) {
- var classes = [];
- Object.values(row).forEach(function (cell) {
- if (typeof cell.rowClasses === 'string') {
- classes.push(cell.rowClasses);
- }
- });
- return classes.join(' ');
- }
- },
- created: function created() {
- var self = this;
- var changed = false;
-
- function updateData(rowIndex, columnName, newCell) {
- var newRow = _objectSpread({}, self.data[rowIndex]);
-
- newRow[columnName] = _objectSpread({}, newCell);
- Vue.set(self.data, rowIndex, newRow); // Regenerate this row for reactivity.
-
- changed = true;
- }
-
- function cloneCell(cell) {
- var newCell = _objectSpread({}, cell);
-
- delete newCell.special;
- return newCell;
- }
-
- self.data.forEach(function (row, rowIndex) {
- Object.keys(row).filter(function (key) {
- return key[0] !== '$';
- }).forEach(function (columnName) {
- var _cell$special;
-
- var cell = row[columnName];
-
- switch (cell === null || cell === void 0 ? void 0 : (_cell$special = cell.special) === null || _cell$special === void 0 ? void 0 : _cell$special.type) {
- case 'checkbox':
- {
- var special = cell.special;
- var newCell = cloneCell(cell);
- newCell.hiddenInput = {
- name: special.name,
- value: JSON.stringify(!!special.value)
- };
- newCell.component = {
- name: 'icbin-datatable-checkbox',
- value: {
- label: special.label,
- checked: !!special.value,
- disabled: special.value === null,
- classes: special.classes
- }
- };
- newCell.sort = special.value;
- updateData(rowIndex, columnName, newCell);
- break;
- }
-
- default:
- break;
- }
- });
- });
- if (changed) this.updateData(this.data);
- },
- mounted: function mounted() {
- var self = this;
-
- if (self.defaultSort) {
- self.sort.name = self.defaultSort.name;
- self.sort.ascending = self.defaultSort.ascending;
- } else {
- self.sort.name = self.columns[0].name;
- }
-
- if (self.defaultLength) self.length = self.defaultLength;
- },
- template: "\n
\n
\n {{ lengthPickerBefore }}\n \n \n {{ lengthOption > 0 ? lengthOption : text.all }}\n \n \n {{ lengthPickerAfter }}\n
\n
\n
\n \n
\n
"
-};
-window.icbinDataTable.remove = {
- name: 'icbin-datatable-remove',
- props: {
- text: {
- type: Object,
- required: true
- },
- disabled: {
- type: Boolean,
- "default": false
- }
- },
- template: "\n \n \n {{ text.remove }}\n "
-};
-window.icbinDataTable.checkbox = {
- name: 'icbin-datatable-checkbox',
- props: {
- data: {
- type: Array,
- required: true
- },
- rowIndex: {
- type: Number,
- required: true
- },
- columnName: {
- type: String,
- required: true
- },
- label: {
- "default": ''
- },
- checked: {
- "default": undefined
- },
- disabled: {
- type: Boolean,
- "default": false
- },
- classes: {
- "default": ''
- }
- },
- methods: {
- update: function update(checked) {
- var _this = this;
-
- var cell = this.data.filter(function (row) {
- return row.$rowIndex === _this.rowIndex;
- })[0][this.columnName];
- cell.component.value.checked = checked;
- cell.hiddenInput.value = JSON.stringify(!!checked);
- cell.sort = checked;
- this.$emit('update', this.data);
- this.$emit('component', 'checked');
- }
- },
- mounted: function mounted() {
- this.$emit('component', 'checked');
- },
- template: "\n \n \n {{ label }} \n "
-};
\ No newline at end of file
diff --git a/Lombiq.DataTables/wwwroot/lombiq/jquery-datatables-autoinit.js b/Lombiq.DataTables/wwwroot/lombiq/jquery-datatables-autoinit.js
deleted file mode 100644
index 74332ad29..000000000
--- a/Lombiq.DataTables/wwwroot/lombiq/jquery-datatables-autoinit.js
+++ /dev/null
@@ -1,8 +0,0 @@
-"use strict";
-
-jQuery(function ($) {
- $('table.data-table').each(function dataTableEach() {
- var options = this.getAttribute('data-options');
- $(this).dataTable(options ? JSON.parse(options) : undefined);
- });
-});
\ No newline at end of file
diff --git a/Lombiq.DataTables/wwwroot/lombiq/lombiq-datatables.js b/Lombiq.DataTables/wwwroot/lombiq/lombiq-datatables.js
deleted file mode 100644
index a48227def..000000000
--- a/Lombiq.DataTables/wwwroot/lombiq/lombiq-datatables.js
+++ /dev/null
@@ -1,563 +0,0 @@
-"use strict";
-
-function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
-
-/**
- * @summary Lombiq - Data Tables
- * @description Abstraction over the jQuery.DataTables plugin to display Query results in a data table.
- * @version 1.0
- * @file lombiq-datatables.js
- * @author Lombiq Technologies Ltd.
- */
-
-/* global URI */
-(function lombiqDatatables($, window, document, history) {
- var pluginName = 'lombiq_DataTables';
- var useDefaultButtons = 'useDefaultButtons';
- var defaults = {
- dataTablesOptions: {
- searching: true,
- paging: true,
- processing: true,
- info: true,
- lengthChange: true,
- scrollX: true,
- dom: "<'row dataTables_buttons'<'col-md-12'B>>" + "<'row dataTables_controls'<'col-md-6 dataTables_length'l><'col-md-6 dataTables_search'f>>" + "<'row dataTables_content'<'col-md-12't>>" + "<'row dataTables_footer'<'col-md-12'ip>>",
- buttons: useDefaultButtons
- },
- rowClassName: '',
- queryId: '',
- dataProvider: '',
- rowsApiUrl: '',
- serverSidePagingEnabled: false,
- queryStringParametersLocalStorageKey: '',
- templates: {},
- errorsSelector: null,
- childRowOptions: {
- childRowsEnabled: false,
- asyncLoading: false,
- apiUrl: '',
- childRowDisplayType: '',
- additionalDataTablesOptions: {
- columnDefs: [{
- orderable: false,
- targets: 0
- }],
- order: [[1, 'asc']]
- },
- childRowClassName: '',
- toggleChildRowButtonClassName: '',
- childRowVisibleClassName: ''
- },
- progressiveLoadingOptions: {
- progressiveLoadingEnabled: false,
- skip: 0,
- batchSize: 0,
- finishedCallback: function finishedCallback() {},
- batchCallback: function batchCallback() {},
- itemCallback: function itemCallback() {}
- },
- callbacks: {
- ajaxDataLoadedCallback: function ajaxDataLoadedCallback() {}
- }
- };
-
- function Plugin(element, options) {
- this.element = element;
- this.settings = $.extend(true, {}, defaults, options);
- this._defaults = defaults;
- this._name = pluginName;
- this.init();
- }
-
- $.extend(Plugin.prototype, {
- dataTableElement: null,
- dataTableApi: null,
- originalQueryStringParameters: '',
-
- /**
- * Initializes the Lombiq DataTable plugin where the jQuery DataTables plugin will be also initialized.
- */
- init: function init() {
- var plugin = this;
- var stateJson = '{}';
-
- plugin.customizeAjaxParameters = function customizeParameters(parameters) {
- return parameters;
- };
-
- plugin.originalQueryStringParameters = new URI().search(true);
- var dataTablesOptions = $.extend({}, plugin.settings.dataTablesOptions);
-
- dataTablesOptions.rowCallback = function dataTablesRowCallback(row, data) {
- if (data.id) {
- $(row).addClass(plugin.settings.rowClassName).attr('data-contentitemid', data.id);
- }
- };
-
- function convertDate(date) {
- var locale = 'en-US';
- if (plugin.settings.culture) locale = plugin.settings.culture;
- return date.toLocaleDateString(locale);
- } // Conditional renderer.
-
-
- dataTablesOptions.columnDefs = [{
- targets: '_all',
- render: function render(data) {
- if (data == null) return ''; // If data is Boolean.
-
- if (data === !!data) return data ? plugin.settings.texts.yes : plugin.settings.texts.no;
- if ($.isArray(data)) return data.join(', ');
- var isString = typeof data === 'string'; // If data is ISO date.
-
- if (isString && data.match(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.?\d*([+-][0-2]\d:[0-5]\d|Z)/)) {
- return convertDate(new Date(data));
- } // If data is a template.
-
-
- var template = isString ? data.match(/^\s*{{\s*([^:]+)\s*:\s*([^}]*[^ \t}])\s*}}\s*$/) : null;
-
- if (template && template[1] && template[2]) {
- var templateName = template[1];
- var templateData = template[2];
- return dataTablesOptions.templates[templateName].replace(/{{\s*data\s*}}/g, templateData);
- }
-
- switch (data.Type) {
- case 'ExportLink':
- return '' + data.Text + ' ';
-
- case 'ExportDate':
- return convertDate(new Date(data.Year, data.Month - 1, data.Day));
-
- default:
- return data;
- }
- }
- }]; // This is a workaround to properly adjust column widths.
-
- var originalInitCompleteHandler = dataTablesOptions.initComplete ? dataTablesOptions.initComplete : function emptyFunction() {};
-
- dataTablesOptions.initComplete = function dataTablesInitComplete() {
- plugin.adjustColumns();
- originalInitCompleteHandler.apply(this);
- };
-
- if (plugin.settings.childRowOptions.childRowsEnabled) {
- dataTablesOptions.order = [[1, 'asc']];
- dataTablesOptions.columnDefs.push({
- orderable: false,
- defaultContent: '
',
- targets: 0
- });
- }
-
- var providerName = window.location.href.includes('/Admin/DataTable/') ? window.location.href.replace(/.*\/Admin\/DataTable\/([^/?]+)[/?].*/, '$1') : URI(window.location.href).search(true).providerName;
- plugin.providerName = providerName; // Initialize server-side paging unless progressive loading is enabled.
-
- if (plugin.settings.serverSidePagingEnabled && !plugin.settings.progressiveLoadingOptions.progressiveLoadingEnabled) {
- var _window$performance$n;
-
- var $element = $(plugin.element);
- var latestDraw = 0;
- dataTablesOptions.serverSide = true;
- plugin.history = {
- isHistory: false,
- isRedraw: false,
- isFirst: true
- };
-
- var getJsonParameters = function getJsonParameters(params) {
- var internalParameters = plugin.cleanUpDataTablesAjaxParameters(params);
- var extendedParameters = plugin.customizeAjaxParameters($.extend({}, internalParameters, {
- queryId: plugin.settings.queryId,
- dataProvider: plugin.settings.dataProvider,
- originalUrl: window.location.href
- }));
- var jsonParameters = JSON.stringify(extendedParameters);
- stateJson = jsonParameters;
-
- if (plugin.settings.queryStringParametersLocalStorageKey && 'localStorage' in window) {
- var key = plugin.settings.queryStringParametersLocalStorageKey;
-
- try {
- localStorage.setItem(key, jsonParameters);
- } catch (exception) {
- try {
- localStorage[key] = jsonParameters;
- } catch (innerException) {// If localStorage won't work there is nothing to do.
- }
- }
- }
-
- if (plugin.settings.errorsSelector) $(plugin.settings.errorsSelector).hide();
-
- if (!jsonParameters || !jsonParameters.match || jsonParameters.match(/^\s*$/)) {
- alert('jsonParameters is null or empty!\n' + 'params:\n' + JSON.stringify(params) + '\n' + 'internalParameters:\n' + JSON.stringify(internalParameters) + '\n' + 'extendedParameters:\n' + JSON.stringify(extendedParameters) + '\n' + 'jsonParameters:\n' + JSON.stringify(jsonParameters) + '\n');
- }
-
- return jsonParameters;
- };
-
- var createHistoryState = function createHistoryState(data) {
- var state = {
- data: data,
- providerName: providerName,
- order: $element.DataTable().order()
- };
- var userEvent = {
- plugin: plugin,
- state: state
- };
- $element.trigger('createstate.lombiqdt', userEvent);
- return userEvent.state;
- };
-
- $element.on('preXhr.dt', function () {
- if (plugin.history.isFirst || plugin.history.isHistory || plugin.history.isRedraw || window.history.state === null) {
- plugin.history.isFirst = false;
- return;
- }
-
- history.pushState(createHistoryState(), document.title);
- });
- $(window).on('popstate', function (event) {
- var state = event.originalEvent.state;
- if (!state || !state.providerName || state.providerName !== providerName) return;
- plugin.history.isHistory = true;
- var userEvent = {
- plugin: plugin,
- state: state,
- cancel: false
- };
- $element.trigger('popstate.lombiqdt', userEvent);
- if (!userEvent.cancel) $element.DataTable().ajax.reload();
- plugin.history.isHistory = false;
- }); // See: https://stackoverflow.com/questions/5004978/check-if-page-gets-reloaded-or-refreshed-in-javascript/53307588#53307588
-
- var pageAccessedByReload = ((_window$performance$n = window.performance.navigation) === null || _window$performance$n === void 0 ? void 0 : _window$performance$n.type) === 1 || window.performance.getEntriesByType('navigation').map(function (nav) {
- return nav.type;
- }).includes('reload');
-
- dataTablesOptions.ajax = function dataTablesOptionsAjax(params, callback) {
- var _history$state, _latestDraw, _requestData$search$v, _requestData$search, _history$state$data$s, _history$state2, _history$state2$data, _history$state2$data$;
-
- var isNewRequest = pageAccessedByReload || _typeof(history.state) !== 'object' || !((_history$state = history.state) !== null && _history$state !== void 0 && _history$state.data);
-
- if (isNewRequest) {
- var data = JSON.parse(getJsonParameters(params));
- history.replaceState(createHistoryState(data), document.title);
- }
-
- var requestData = $.extend({}, history.state.data);
- if (!isNewRequest) requestData.draw = ((_latestDraw = latestDraw) !== null && _latestDraw !== void 0 ? _latestDraw : 0) + 3;
- var $wrapper = $element.closest('.dataTables_wrapper');
- var instance = $element.DataTable();
- $wrapper.find('.dataTables_filter input[type="search"][aria-controls="dataTable"]').val((_requestData$search$v = (_requestData$search = requestData.search) === null || _requestData$search === void 0 ? void 0 : _requestData$search.value) !== null && _requestData$search$v !== void 0 ? _requestData$search$v : '');
- $wrapper.find('.dataTables_length select[aria-controls="dataTable"]').val(requestData.length);
- instance.order(history.state.order);
- instance.search((_history$state$data$s = (_history$state2 = history.state) === null || _history$state2 === void 0 ? void 0 : (_history$state2$data = _history$state2.data) === null || _history$state2$data === void 0 ? void 0 : (_history$state2$data$ = _history$state2$data.search) === null || _history$state2$data$ === void 0 ? void 0 : _history$state2$data$.value) !== null && _history$state$data$s !== void 0 ? _history$state$data$s : '');
- var userEvent = {
- plugin: plugin,
- requestData: requestData,
- isHistory: plugin.history.isHistory
- };
- $element.trigger('preXhr.lombiqdt', userEvent);
- $.ajax({
- method: 'GET',
- url: plugin.settings.rowsApiUrl,
- data: plugin.buildQueryStringParameters({
- requestJson: JSON.stringify(userEvent.requestData)
- }),
- success: function success(response) {
- plugin.settings.callbacks.ajaxDataLoadedCallback(response);
- latestDraw = response.draw;
- $wrapper.attr('data-draw', latestDraw);
- callback(response);
- var page = history.state.data.start / history.state.data.length;
- plugin.history.isRedraw = true;
- if (instance.page() !== page) instance.page(page).draw('page');
-
- if (instance.page.len() !== history.state.data.length) {
- instance.page.len(history.state.data.length).draw('page');
- }
-
- plugin.history.isRedraw = false;
- }
- });
- };
- }
-
- function exportAction(exportAll) {
- return function getExports() {
- window.location.href = URI(plugin.settings["export"].api).search({
- requestJson: stateJson,
- exportAll: exportAll
- });
- };
- }
-
- function getExportButtons() {
- return [{
- text: plugin.settings["export"].textAll,
- action: exportAction(true)
- }, {
- text: plugin.settings["export"].textVisible,
- action: exportAction(false)
- }];
- }
-
- if (dataTablesOptions.buttons === useDefaultButtons) {
- dataTablesOptions.buttons = getExportButtons();
- } else if (dataTablesOptions.buttons && dataTablesOptions.buttons.forEach) {
- dataTablesOptions.buttons.forEach(function (button) {
- if (button.buttons === useDefaultButtons) button.buttons = getExportButtons();
- });
- }
-
- if (plugin.settings.errorsSelector) {
- $.fn.dataTable.ext.errMode = 'none';
- $(plugin.element).on('error.dt', function (e, settings, techNote, message) {
- $(plugin.settings.errorsSelector).text(message).show();
- });
- }
-
- plugin.dataTableElement = $(plugin.element).dataTable(dataTablesOptions);
- plugin.dataTableApi = plugin.dataTableElement.api(); // Register toggle button click listeners if child rows are enabled.
-
- if (plugin.settings.childRowOptions.childRowsEnabled) {
- plugin.dataTableElement.on('click', '.' + plugin.settings.childRowOptions.toggleChildRowButtonClassName, function dataTableElementOnClick() {
- var parentRowElement = $(this).closest('tr');
-
- if (plugin.settings.childRowOptions.asyncLoading) {
- var contentItemId = parentRowElement.attr('data-contentitemid');
- $.ajax({
- type: 'GET',
- url: plugin.settings.childRowOptions.apiUrl,
- data: {
- contentItemId: contentItemId,
- dataProvider: plugin.settings.dataProvider,
- originalUrl: window.location.href
- },
- success: function success(data) {
- if (!data.error) {
- plugin.toggleChildRow(parentRowElement, data.content);
- } else {
- alert(data.error);
- }
- }
- });
- } else {
- var childRowContent = $('[data-parent="' + parentRowElement.attr('id') + '"]').html();
- plugin.toggleChildRow(parentRowElement, childRowContent);
- }
- });
- } // Fetch items if progressive loading is enabled.
-
-
- if (!plugin.settings.serverSidePagingEnabled && plugin.settings.progressiveLoadingOptions.progressiveLoadingEnabled) {
- plugin.fetchRowsProgressively();
- }
- },
-
- /**
- * Removes unnecessary DataTables ajax parameters and updates property names and values to match server data
- * model.
- * @param {object} parameters Parameters generated by the DataTables plugin to be sent to the server.
- * @returns {object} Cleaned-up query string parameters.
- */
- cleanUpDataTablesAjaxParameters: function cleanUpDataTablesAjaxParameters(parameters) {
- // Replacing column index to column name.
- // Also rename properties and values to match back-end data model.
- for (var i = 0; i < parameters.order.length; i++) {
- var orderData = parameters.order[i];
- var columnIndex = orderData.column;
- orderData.column = parameters.columns[columnIndex].name;
- orderData.direction = orderData.dir === 'asc' ? 'ascending' : 'descending';
- delete orderData.dir;
- } // Send only filtered column data.
-
-
- var columnFilters = [];
-
- for (var j = 0; j < parameters.columns.length; j++) {
- var column = parameters.columns[j];
- if (column.search.value) columnFilters.push(column);
- }
-
- parameters.columnFilters = columnFilters;
- delete parameters.columns; // Remove global search parameters if there is no search value given.
-
- if (!parameters.search.value) delete parameters.search;
- return parameters;
- },
-
- /**
- * Shows or hides child row filled with the given content.
- * @param {jQuery} parentRowElement Parent row element where the child row will be displayed.
- * @param {object} childRowContent Content of the child row. A wrapper will be added automatically.
- */
- toggleChildRow: function toggleChildRow(parentRowElement, childRowContent) {
- var plugin = this;
- var dataTableRow = plugin.dataTableApi.row(parentRowElement);
-
- if (dataTableRow.child.isShown()) {
- dataTableRow.child.hide();
- parentRowElement.removeClass(plugin.settings.childRowOptions.childRowVisibleClassName);
- } else {
- dataTableRow.child(childRowContent, plugin.settings.childRowOptions.childRowClassName).show();
- parentRowElement.addClass(plugin.settings.childRowOptions.childRowVisibleClassName);
- }
- },
-
- /**
- * Fetches the rows from the API using progressive loading.
- */
- fetchRowsProgressively: function fetchRowsProgressively() {
- var plugin = this;
- if (!plugin.settings.progressiveLoadingOptions.progressiveLoadingEnabled) return;
- plugin.dataTableApi.processing(true);
- var options = {
- queryId: plugin.settings.queryId,
- dataProvider: plugin.settings.dataProvider,
- apiUrl: plugin.settings.rowsApiUrl,
- itemCallback: function itemCallback(id, data, response) {
- if (plugin.settings.progressiveLoadingOptions.itemCallback) {
- plugin.settings.progressiveLoadingOptions.itemCallback(id, data, response);
- }
-
- plugin.dataTableApi.row.add(data).draw();
- },
- finishedCallback: function finishedCallback(success, total) {
- if (plugin.settings.progressiveLoadingOptions.finishedCallback) {
- plugin.settings.progressiveLoadingOptions.finishedCallback(success, total);
- }
-
- plugin.dataTableApi.processing(false);
- }
- };
- plugin.progressiveLoad($.extend({}, plugin.settings.progressiveLoadingOptions, options));
- },
-
- /**
- * Builds query string parameters that includes the given parameters and the current URL's query string
- * parameters.
- * The original query string parameters are traditionally encoded to preserve their query string keys,
- * while the ones used by DataTables aren't.
- * @param {object} data Data that needs to be merged with the current URL query string parameters.
- * @returns {object} Merged query string parameters.
- */
- buildQueryStringParameters: function buildQueryStringParameters(data) {
- // This is necessary to preserve the original structure of the initial query string:
- // Traditional encoding ensures that if a key has multiple values (e.g. "?name=value1&name=value2"),
- // then the key won't be changed to "name[]".
- var originalQueryStringEncoded = $.param(this.originalQueryStringParameters, true);
- return (originalQueryStringEncoded ? originalQueryStringEncoded + '&' : '') + $.param(data);
- },
-
- /**
- * Low-level functionality for loading rows from the API. The result is accessible using the callback.
- * @param {number} skip Number of items to be skipped by the API.
- * @param {Object} options Options required for the API call (e.g. API URL, data provider).
- * @param {callback} callback Callback for returning rows.
- */
- loadRows: function loadRows(skip, options, callback) {
- var plugin = this;
- $.ajax({
- type: 'GET',
- url: options.apiUrl,
- data: plugin.buildQueryStringParameters({
- queryId: options.queryId,
- start: skip,
- length: options.batchSize,
- dataProvider: options.dataProvider,
- originalUrl: window.location.href
- }),
- success: function success(response) {
- if (callback) {
- callback(!response.error, response);
- }
- },
- fail: function fail() {
- if (callback) {
- callback(false);
- }
- }
- });
- },
-
- /**
- * Adjusts datatable columns.
- */
- adjustColumns: function adjustColumns() {
- var plugin = this; // This is a workaround to properly adjust column widths.
-
- setTimeout(function () {
- plugin.dataTableApi.columns.adjust();
- }, 10);
- },
-
- /**
- * Low-level functionality of progressive loading. It will fetch content shapes from the given API.
- * The shapes will be processed using callbacks.
- * @param {Object} options Progressive loading options including API URL and callbacks.
- */
- progressiveLoad: function progressiveLoad(options) {
- var plugin = this;
- var total = 0;
- var skip = options.skip;
-
- var callback = function callback(success, response) {
- if (success && response) {
- var count = response.data.length;
- total += count;
-
- if (options.batchCallback) {
- options.batchCallback(response, total);
- }
-
- if (count > 0 && options.itemCallback) {
- $.each(response.data, function (index, value) {
- options.itemCallback(index, value, response);
- });
- }
-
- if (count > 0 && count >= options.batchSize) {
- skip += count;
- plugin.loadRows(skip, options, callback);
- } else if (options.finishedCallback) {
- options.finishedCallback(true, total);
- }
- } else {
- if (response) {
- alert(response.error);
- }
-
- if (options.finishedCallback) {
- options.finishedCallback(false, total);
- }
- }
- };
-
- plugin.loadRows(skip, options, callback);
- }
- });
-
- $.fn[pluginName] = function pluginNameFunction(options) {
- // Return null if the element query is invalid.
- if (!this || this.length === 0) return null; // "map" makes it possible to return the already existing or currently initialized plugin instances.
-
- return this.map(function pluginMapFunction() {
- // If "options" is defined, but the plugin is not instantiated on this element ...
- if (options && !$.data(this, 'plugin_' + pluginName)) {
- // ... then create a plugin instance ...
- $.data(this, 'plugin_' + pluginName, new Plugin($(this), options));
- } // ... and then return the plugin instance, which might be null
- // if the plugin is not instantiated on this element and 'options' is undefined.
-
-
- return $.data(this, 'plugin_' + pluginName);
- });
- };
-})(jQuery, window, document, window.history);
\ No newline at end of file
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-css/buttons.bootstrap4.css b/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-css/buttons.bootstrap4.css
deleted file mode 100644
index f0f940369..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-css/buttons.bootstrap4.css
+++ /dev/null
@@ -1,195 +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/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-css/buttons.bootstrap4.min.css b/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-css/buttons.bootstrap4.min.css
deleted file mode 100644
index 1e79cc78c..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-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:.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:.3em 0 .5em;font-size:.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:.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/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-js/buttons.bootstrap4.js b/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-js/buttons.bootstrap4.js
deleted file mode 100644
index 4f8ccd502..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-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/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-js/buttons.bootstrap4.min.js b/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-js/buttons.bootstrap4.min.js
deleted file mode 100644
index 3ecb7b502..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/datatables.net-bs4-js/buttons.bootstrap4.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- Bootstrap integration for DataTables' Buttons
- ©2016 SpryMedia Ltd - datatables.net/license
-*/
-(function(b){"function"===typeof define&&define.amd?define(["jquery","datatables.net-bs4","datatables.net-buttons"],function(a){return b(a,window,document)}):"object"===typeof exports?module.exports=function(a,c){a||(a=window);if(!c||!c.fn.dataTable)c=require("datatables.net-bs4")(a,c).$;c.fn.dataTable.Buttons||require("datatables.net-buttons")(a,c);return b(c,a,a.document)}:b(jQuery,window,document)})(function(b){var a=b.fn.dataTable;b.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,d){return a.buttons?b('
').append(d):d}});a.ext.buttons.collection.className+=" dropdown-toggle";a.ext.buttons.collection.rightAlignClassName="dropdown-menu-right";return a.Buttons});
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.colVis.js b/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.colVis.js
deleted file mode 100755
index 9c6f06816..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.colVis.js
+++ /dev/null
@@ -1,212 +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
- that.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;
-
- if (! title) {
- title = dt.column(idx).header().innerHTML;
- }
-
- title = title
- .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/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.colVis.min.js b/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.colVis.min.js
deleted file mode 100644
index 19087be96..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.colVis.min.js
+++ /dev/null
@@ -1,6 +0,0 @@
-(function(g){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(e){return g(e,window,document)}):"object"===typeof exports?module.exports=function(e,f){e||(e=window);if(!f||!f.fn.dataTable)f=require("datatables.net")(e,f).$;f.fn.dataTable.Buttons||require("datatables.net-buttons")(e,f);return g(f,e,e.document)}:g(jQuery,window,document)})(function(g,e,f,h){e=g.fn.dataTable;g.extend(e.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,c){return c._columnText(a,c)},className:"buttons-columnVisibility",action:function(a,b,c,d){a=b.columns(d.columns);b=a.visible();a.visible(d.visibility!==h?d.visibility:!(b.length&&b[0]))},init:function(a,b,c){var d=this;b.attr("data-cv-idx",c.columns);a.on("column-visibility.dt"+c.namespace,function(b,e){!e.bDestroying&&e.nTable==a.settings()[0].nTable&&d.active(a.column(c.columns).visible())}).on("column-reorder.dt"+
-c.namespace,function(){1===a.columns(c.columns).count()&&(d.text(c._columnText(a,c)),d.active(a.column(c.columns).visible()))});this.active(a.column(c.columns).visible())},destroy:function(a,b,c){a.off("column-visibility.dt"+c.namespace).off("column-reorder.dt"+c.namespace)},_columnText:function(a,b){var c=a.column(b.columns).index(),d=a.settings()[0].aoColumns[c].sTitle;d||(d=a.column(c).header().innerHTML);d=d.replace(/\n/g," ").replace(/ /gi," ").replace(//g,"").replace(//g,
-"").replace(/<.*?>/g,"").replace(/^\s+|\s+$/g,"");return b.columnText?b.columnText(a,c,d):d}},colvisRestore:{className:"buttons-colvisRestore",text:function(a){return a.i18n("buttons.colvisRestore","Restore visibility")},init:function(a,b,c){c._visOriginal=a.columns().indexes().map(function(b){return a.column(b).visible()}).toArray()},action:function(a,b,c,d){b.columns().every(function(a){a=b.colReorder&&b.colReorder.transpose?b.colReorder.transpose(a,"toOriginal"):a;this.visible(d._visOriginal[a])})}},
-colvisGroup:{className:"buttons-colvisGroup",action:function(a,b,c,d){b.columns(d.show).visible(!0,!1);b.columns(d.hide).visible(!1,!1);b.columns.adjust()},show:[],hide:[]}});return e.Buttons});
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.flash.js b/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.flash.js
deleted file mode 100644
index b703dfb87..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.flash.js
+++ /dev/null
@@ -1,1458 +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 ; id&&(d=a.footer[b].length);for(var e=0,f=a.body.length;ed&&(d=c),40'+c),c=c.replace(/_dt_b_namespace_token_/g,":"));c=c.replace(/<([^<>]*?) xmlns=""([^<>]*?)>/g,"<$1 $2>");a[b]=c}})}var h=g.fn.dataTable,i={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(RegExp("\\s*"+a+"\\s*")," ").replace(/^\s+/,"").replace(/\s+$/,"")},a.hasClass=function(a){return!!this.className.match(RegExp("\\s*"+a+"\\s*"))});return a},setMoviePath:function(a){this.moviePath=a},dispatch:function(a,b,d){(a=this.clients[a])&&a.receiveEvent(b,d)},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=i.nextId++;this.movieId="ZeroClipboard_TableToolsMovie_"+this.id;i.register(this.id,this);a&&this.glue(a)}};i.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=i.$(a);var d=99;this.domElement.style.zIndex&&(d=parseInt(this.domElement.style.zIndex,10)+1);var c=i.getDOMObjectPosition(this.domElement);this.div=m.createElement("div");var e=this.div.style;e.position="absolute";e.left="0px";e.top="0px";e.width=c.width+"px";e.height=c.height+"px";e.zIndex=d;"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=i.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 d="",c="id="+this.id+"&width="+a+"&height="+b;if(navigator.userAgent.match(/MSIE/))var e=
-location.href.match(/^https/i)?"https://":"http://",d=d+(' ');else d+=' ';return d},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(i.clients,function(b,d){d===a&&delete i.clients[b]}))},reposition:function(a){a&&((this.domElement=i.$(a))||this.hide());if(this.domElement&&this.div){var a=i.getDOMObjectPosition(this.domElement),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){var d,a=a.toString().toLowerCase().replace(/^on/,"");switch(a){case "load":this.movie=m.getElementById(this.movieId);if(!this.movie){d=this;setTimeout(function(){d.receiveEvent("load",null)},1);return}if(!this.ready&&navigator.userAgent.match(/Firefox/)&&navigator.userAgent.match(/Windows/)){d=this;setTimeout(function(){d.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 c=0,e=this.handlers[a].length;c ',"xl/_rels/workbook.xml.rels":' ',
-"[Content_Types].xml":' ',
-"xl/workbook.xml":' ',
-"xl/worksheets/sheet1.xml":' ',"xl/styles.xml":' '},
-B=[{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}];h.Buttons.swfPath="//cdn.datatables.net/buttons/"+
-h.Buttons.version+"/swf/flashExport.swf";h.Api.register("buttons.resize()",function(){g.each(i.clients,function(a,b){b.domElement!==p&&b.domElement.parentNode&&b.positionElement()})});h.ext.buttons.copyFlash=g.extend({},u,{className:"buttons-copy buttons-flash",text:function(a){return a.i18n("buttons.copy","Copy")},action:function(a,b,d,c){if(c._fromFlash){this.processing(!0);var a=c._flash,e=A(b,c),d=b.buttons.exportInfo(c),f=z(c),e=e.str;d.title&&(e=d.title+f+f+e);d.messageTop&&(e=d.messageTop+
-f+f+e);d.messageBottom&&(e=e+f+f+d.messageBottom);c.customize&&(e=c.customize(e,c,b));a.setAction("copy");t(a,e);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:""});h.ext.buttons.csvFlash=g.extend({},u,{className:"buttons-csv buttons-flash",text:function(a){return a.i18n("buttons.csv","CSV")},action:function(a,b,d,c){var a=
-c._flash,e=A(b,c),d=b.buttons.exportInfo(c),b=c.customize?c.customize(e.str,c,b):e.str;a.setAction("csv");a.setFileName(d.filename);t(a,b)},escapeChar:'"'});h.ext.buttons.excelFlash=g.extend({},u,{className:"buttons-excel buttons-flash",text:function(a){return a.i18n("buttons.excel","Excel")},action:function(a,b,d,c){this.processing(!0);var a=c._flash,e=0,f=g.parseXML(q["xl/worksheets/sheet1.xml"]),i=f.getElementsByTagName("sheetData")[0],d={_rels:{".rels":g.parseXML(q["_rels/.rels"])},xl:{_rels:{"workbook.xml.rels":g.parseXML(q["xl/_rels/workbook.xml.rels"])},
-"workbook.xml":g.parseXML(q["xl/workbook.xml"]),"styles.xml":g.parseXML(q["xl/styles.xml"]),worksheets:{"sheet1.xml":f}},"[Content_Types].xml":g.parseXML(q["[Content_Types].xml"])},k=b.buttons.exportData(c.exportOptions),j,m,h=function(a){j=e+1;m=o(f,"row",{attr:{r:j}});for(var b=0,d=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(
- ( new window.DOMParser() ).parseFromString( excelStrings['xl/worksheets/sheet1.xml'], 'text/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 },
- { match: /^[\d]{4}\-[\d]{2}\-[\d]{2}$/, style: 67, fmt: function (d) {return Math.round(25569 + (Date.parse(d) / (86400 * 1000)));}} //Date yyyy-mm-dd
-];
-
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * 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 = $('')
- .val( output )
- .appendTo( hiddenDiv );
-
- // For browsers that support the copy execCommand, try to use it
- if ( document.queryCommandSupported('copy') ) {
- hiddenDiv.appendTo( dt.table().container() );
- textarea[0].focus();
- textarea[0].select();
-
- try {
- var successful = document.execCommand( 'copy' );
- hiddenDiv.remove();
-
- if (successful) {
- dt.buttons.info(
- dt.i18n( 'buttons.copyTitle', 'Copy to clipboard' ),
- dt.i18n( 'buttons.copySuccess', {
- 1: 'Copied one row to clipboard',
- _: 'Copied %d rows to clipboard'
- }, exportData.rows ),
- 2000
- );
-
- this.processing( false );
- return;
- }
- }
- catch (t) {}
- }
-
- // Otherwise we show the text box and instruct the user to use it
- var message = $(''+dt.i18n( 'buttons.copyKeys',
- 'Press ctrl or \u2318 + C to copy the table data to your system clipboard. '+
- 'To cancel, click this message or press escape.' )+' '
- )
- .append( hiddenDiv );
-
- dt.buttons.info( dt.i18n( 'buttons.copyTitle', 'Copy to clipboard' ), message, 0 );
-
- // Select the text so when the user activates their system clipboard
- // it will copy that text
- textarea[0].focus();
- textarea[0].select();
-
- // Event to hide the message when the user is done
- var container = $(message).closest('.dt-button-info');
- var close = function () {
- container.off( 'click.buttons-copy' );
- $(document).off( '.buttons-copy' );
- dt.buttons.info( false );
- };
-
- container.on( 'click.buttons-copy', close );
- $(document)
- .on( 'keydown.buttons-copy', function (e) {
- if ( e.keyCode === 27 ) { // esc
- close();
- that.processing( false );
- }
- } )
- .on( 'copy.buttons-copy cut.buttons-copy', function () {
- close();
- that.processing( false );
- } );
- },
-
- exportOptions: {},
-
- fieldSeparator: '\t',
-
- fieldBoundary: '',
-
- header: true,
-
- footer: false,
-
- title: '*',
-
- messageTop: '*',
-
- messageBottom: '*'
-};
-
-//
-// CSV export
-//
-DataTable.ext.buttons.csvHtml5 = {
- bom: false,
-
- className: 'buttons-csv buttons-html5',
-
- available: function () {
- return window.FileReader !== undefined && window.Blob;
- },
-
- text: function ( dt ) {
- return dt.i18n( 'buttons.csv', 'CSV' );
- },
-
- action: function ( e, dt, button, config ) {
- this.processing( true );
-
- // Set the text
- var output = _exportData( dt, config ).str;
- var info = dt.buttons.exportInfo(config);
- var charset = config.charset;
-
- if ( config.customize ) {
- output = config.customize( output, config, dt );
- }
-
- if ( charset !== false ) {
- if ( ! charset ) {
- charset = document.characterSet || document.charset;
- }
-
- if ( charset ) {
- charset = ';charset='+charset;
- }
- }
- else {
- charset = '';
- }
-
- if ( config.bom ) {
- output = String.fromCharCode(0xFEFF) + output;
- }
-
- _saveAs(
- new Blob( [output], {type: 'text/csv'+charset} ),
- info.filename,
- true
- );
-
- this.processing( false );
- },
-
- filename: '*',
-
- extension: '.csv',
-
- exportOptions: {},
-
- fieldSeparator: ',',
-
- fieldBoundary: '"',
-
- escapeChar: '"',
-
- charset: null,
-
- header: true,
-
- footer: false
-};
-
-//
-// Excel (xlsx) export
-//
-DataTable.ext.buttons.excelHtml5 = {
- className: 'buttons-excel buttons-html5',
-
- available: function () {
- return window.FileReader !== undefined && _jsZip() !== undefined && ! _isDuffSafari() && _serialiser;
- },
-
- text: function ( dt ) {
- return dt.i18n( 'buttons.excel', 'Excel' );
- },
-
- action: function ( e, dt, button, config ) {
- this.processing( true );
-
- var that = this;
- var rowPos = 0;
- var dataStartRow, dataEndRow;
- var getXml = function ( type ) {
- var str = excelStrings[ type ];
-
- //str = str.replace( /xmlns:/g, 'xmlns_' ).replace( /mc:/g, 'mc_' );
-
- return $.parseXML( str );
- };
- var rels = getXml('xl/worksheets/sheet1.xml');
- var relsGet = rels.getElementsByTagName( "sheetData" )[0];
-
- var xlsx = {
- _rels: {
- ".rels": getXml('_rels/.rels')
- },
- xl: {
- _rels: {
- "workbook.xml.rels": getXml('xl/_rels/workbook.xml.rels')
- },
- "workbook.xml": getXml('xl/workbook.xml'),
- "styles.xml": getXml('xl/styles.xml'),
- "worksheets": {
- "sheet1.xml": rels
- }
-
- },
- "[Content_Types].xml": getXml('[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 ; i'+e),e=e.replace(/_dt_b_namespace_token_/g,":"),e=e.replace(/xmlns:NS[\d]+="" NS[\d]+:/g,""));e=e.replace(/<([^<>]*?) xmlns=""([^<>]*?)>/g,"<$1 $2>");a.file(c,e)}})}function o(a,c,d){var b=a.createElement(c);d&&(d.attr&&h(b).attr(d.attr),d.children&&h.each(d.children,function(a,c){b.appendChild(c)}),null!==d.text&&d.text!==
-r&&b.appendChild(a.createTextNode(d.text)));return b}function L(a,c){var d=a.header[c].length,b;a.footer&&a.footer[c].length>d&&(d=a.footer[c].length);for(var e=0,g=a.body.length;ed&&(d=b),401*a[1]?!0:!1};try{var z=new XMLSerializer,x}catch(P){}var B={"_rels/.rels":' ',
-"xl/_rels/workbook.xml.rels":' ',"[Content_Types].xml":' ',
-"xl/workbook.xml":' ',
-"xl/worksheets/sheet1.xml":' ',"xl/styles.xml":' '},
-K=[{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:65},{match:/^\-?\d+\.\d{2}$/,style:66},{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},{match:/^[\d]{4}\-[\d]{2}\-[\d]{2}$/,style:67,fmt:function(a){return Math.round(25569+Date.parse(a)/864E5)}}];p.ext.buttons.copyHtml5={className:"buttons-copy buttons-html5",text:function(a){return a.i18n("buttons.copy","Copy")},action:function(a,c,d,b){this.processing(!0);var e=this,a=I(c,b),g=c.buttons.exportInfo(b),k=H(b),i=a.str,d=h("
").css({height:1,width:1,overflow:"hidden",position:"fixed",top:0,left:0});g.title&&(i=g.title+k+k+i);g.messageTop&&(i=
-g.messageTop+k+k+i);g.messageBottom&&(i=i+k+k+g.messageBottom);b.customize&&(i=b.customize(i,b,c));b=h("").val(i).appendTo(d);if(j.queryCommandSupported("copy")){d.appendTo(c.table().container());b[0].focus();b[0].select();try{var f=j.execCommand("copy");d.remove();if(f){c.buttons.info(c.i18n("buttons.copyTitle","Copy to clipboard"),c.i18n("buttons.copySuccess",{1:"Copied one row to clipboard",_:"Copied %d rows to clipboard"},a.rows),2E3);this.processing(!1);return}}catch(l){}}f=
-h(""+c.i18n("buttons.copyKeys","Press ctrl or ⌘ + C to copy the table data to your system clipboard. To cancel, click this message or press escape.")+" ").append(d);c.buttons.info(c.i18n("buttons.copyTitle","Copy to clipboard"),f,0);b[0].focus();b[0].select();var o=h(f).closest(".dt-button-info"),n=function(){o.off("click.buttons-copy");h(j).off(".buttons-copy");c.buttons.info(!1)};o.on("click.buttons-copy",n);h(j).on("keydown.buttons-copy",function(a){27===
-a.keyCode&&(n(),e.processing(!1))}).on("copy.buttons-copy cut.buttons-copy",function(){n();e.processing(!1)})},exportOptions:{},fieldSeparator:"\t",fieldBoundary:"",header:!0,footer:!1,title:"*",messageTop:"*",messageBottom:"*"};p.ext.buttons.csvHtml5={bom:!1,className:"buttons-csv buttons-html5",available:function(){return f.FileReader!==r&&f.Blob},text:function(a){return a.i18n("buttons.csv","CSV")},action:function(a,c,d,b){this.processing(!0);var a=I(c,b).str,d=c.buttons.exportInfo(b),e=b.charset;
-b.customize&&(a=b.customize(a,b,c));!1!==e?(e||(e=j.characterSet||j.charset),e&&(e=";charset="+e)):e="";b.bom&&(a=String.fromCharCode(65279)+a);u(new Blob([a],{type:"text/csv"+e}),d.filename,!0);this.processing(!1)},filename:"*",extension:".csv",exportOptions:{},fieldSeparator:",",fieldBoundary:'"',escapeChar:'"',charset:null,header:!0,footer:!1};p.ext.buttons.excelHtml5={className:"buttons-excel buttons-html5",available:function(){return f.FileReader!==r&&(v||f.JSZip)!==r&&!J()&&z},text:function(a){return a.i18n("buttons.excel",
-"Excel")},action:function(a,c,d,b){this.processing(!0);var e=this,g=0,k,a=function(a){return h.parseXML(B[a])},i=a("xl/worksheets/sheet1.xml"),l=i.getElementsByTagName("sheetData")[0],a={_rels:{".rels":a("_rels/.rels")},xl:{_rels:{"workbook.xml.rels":a("xl/_rels/workbook.xml.rels")},"workbook.xml":a("xl/workbook.xml"),"styles.xml":a("xl/styles.xml"),worksheets:{"sheet1.xml":i}},"[Content_Types].xml":a("[Content_Types].xml")},j=c.buttons.exportData(b.exportOptions),n,p,m=function(a){n=g+1;p=o(i,"row",
-{attr:{r:n}});for(var c=0,d=a.length;c'+dataOut+''+tag+'>';
- }
-
- return str + ' ';
- };
-
- // Construct a table for printing
- var html = '';
-
- if ( config.header ) {
- html += ''+ addRow( data.header, 'th' ) +' ';
- }
-
- html += '';
- for ( var i=0, ien=data.body.length ; i';
-
- if ( config.footer && data.footer ) {
- html += ''+ addRow( data.footer, 'th' ) +' ';
- }
- html += '
';
-
- // Open a new window for the printable table
- var win = window.open( '', '' );
-
- if (! win) {
- dt.buttons.info(
- dt.i18n( 'buttons.printErrorTitle', 'Unable to open print view' ),
- dt.i18n( 'buttons.printErrorMsg', 'Please allow popups in your browser for this site to be able to view the print view.' ),
- 5000
- );
-
- return;
- }
-
- win.document.close();
-
- // Inject the title and also a copy of the style and link tags from this
- // document so the table can retain its base styling. Note that we have
- // to use string manipulation as IE won't allow elements to be created
- // in the host document and then appended to the new window.
- var head = ''+exportInfo.title+' ';
- $('style, link').each( function () {
- head += _styleToAbs( this );
- } );
-
- try {
- win.document.head.innerHTML = head; // Work around for Edge
- }
- catch (e) {
- $(win.document.head).html( head ); // Old IE
- }
-
- // Inject the table and other surrounding information
- win.document.body.innerHTML =
- ''+exportInfo.title+' '+
- ''+(exportInfo.messageTop || '')+'
'+
- html+
- ''+(exportInfo.messageBottom || '')+'
';
-
- $(win.document.body).addClass('dt-print-view');
-
- $('img', win.document.body).each( function ( i, img ) {
- img.setAttribute( 'src', _relToAbs( img.getAttribute('src') ) );
- } );
-
- if ( config.customize ) {
- config.customize( win, config, dt );
- }
-
- // Allow stylesheets time to load
- var autoPrint = function () {
- if ( config.autoPrint ) {
- win.print(); // blocking - so close will not
- win.close(); // execute until this is done
- }
- };
-
- if ( navigator.userAgent.match(/Trident\/\d.\d/) ) { // IE needs to call this without a setTimeout
- autoPrint();
- }
- else {
- win.setTimeout( autoPrint, 1000 );
- }
- },
-
- title: '*',
-
- messageTop: '*',
-
- messageBottom: '*',
-
- exportOptions: {},
-
- header: true,
-
- footer: false,
-
- autoPrint: true,
-
- customize: null
-};
-
-
-return DataTable.Buttons;
-}));
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.print.min.js b/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.print.min.js
deleted file mode 100644
index 520d7afd3..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/buttons.print.min.js
+++ /dev/null
@@ -1,5 +0,0 @@
-(function(c){"function"===typeof define&&define.amd?define(["jquery","datatables.net","datatables.net-buttons"],function(f){return c(f,window,document)}):"object"===typeof exports?module.exports=function(f,b){f||(f=window);if(!b||!b.fn.dataTable)b=require("datatables.net")(f,b).$;b.fn.dataTable.Buttons||require("datatables.net-buttons")(f,b);return c(b,f,f.document)}:c(jQuery,window,document)})(function(c,f,b,o){var j=c.fn.dataTable,h=b.createElement("a"),n=function(a){h.href=a;a=h.host;-1===a.indexOf("/")&&
-0!==h.pathname.indexOf("/")&&(a+="/");return h.protocol+"//"+a+h.pathname+h.search};j.ext.buttons.print={className:"buttons-print",text:function(a){return a.i18n("buttons.print","Print")},action:function(a,g,b,i){var a=g.buttons.exportData(c.extend({decodeEntities:!1},i.exportOptions)),b=g.buttons.exportInfo(i),h=g.columns(i.exportOptions.columns).flatten().map(function(a){return g.settings()[0].aoColumns[g.column(a).index()].sClass}).toArray(),l=function(a,b){for(var d="",c=0,e=a.length;c"+(null===a[c]||a[c]===o?"":a[c])+""+b+">";return d+" "},d='';i.header&&(d+=""+l(a.header,"th")+" ");for(var d=d+"",m=0,j=a.body.length;m";i.footer&&a.footer&&(d+=""+l(a.footer,"th")+" ");var d=d+"
",e=f.open("","");if(e){e.document.close();var k=""+b.title+" ";c("style, link").each(function(){var a=k,b=c(this).clone()[0];
-"link"===b.nodeName.toLowerCase()&&(b.href=n(b.href));k=a+b.outerHTML});try{e.document.head.innerHTML=k}catch(p){c(e.document.head).html(k)}e.document.body.innerHTML=""+b.title+" "+(b.messageTop||"")+"
"+d+""+(b.messageBottom||"")+"
";c(e.document.body).addClass("dt-print-view");c("img",e.document.body).each(function(a,b){b.setAttribute("src",n(b.getAttribute("src")))});i.customize&&i.customize(e,i,g);a=function(){i.autoPrint&&(e.print(),e.close())};navigator.userAgent.match(/Trident\/\d.\d/)?
-a():e.setTimeout(a,1E3)}else g.buttons.info(g.i18n("buttons.printErrorTitle","Unable to open print view"),g.i18n("buttons.printErrorMsg","Please allow popups in your browser for this site to be able to view the print view."),5E3)},title:"*",messageTop:"*",messageBottom:"*",exportOptions:{},header:!0,footer:!1,autoPrint:!0,customize:null};return j.Buttons});
diff --git a/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/dataTables.buttons.js b/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/dataTables.buttons.js
deleted file mode 100644
index 115a18255..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/datatables.net-buttons/dataTables.buttons.js
+++ /dev/null
@@ -1,2127 +0,0 @@
-/*! Buttons for DataTables 1.7.1
- * ©2016-2021 SpryMedia Ltd - datatables.net/license
- */
-
-(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;
-
-
-// Used for namespacing events added to the document by each instance, so they
-// can be removed on destroy
-var _instCounter = 0;
-
-// Button namespacing counter for namespacing events on individual buttons
-var _buttonCounter = 0;
-
-var _dtButtons = DataTable.ext.buttons;
-
-// Allow for jQuery slim
-function _fadeIn(el, duration, fn) {
- if ($.fn.animate) {
- el
- .stop()
- .fadeIn( duration, fn );
- }
- else {
- el.css('display', 'block');
-
- if (fn) {
- fn.call(el);
- }
- }
-}
-
-function _fadeOut(el, duration, fn) {
- if ($.fn.animate) {
- el
- .stop()
- .fadeOut( duration, fn );
- }
- else {
- el.css('display', 'none');
-
- if (fn) {
- fn.call(el);
- }
- }
-}
-
-/**
- * [Buttons description]
- * @param {[type]}
- * @param {[type]}
- */
-var Buttons = function( dt, config )
-{
- // If not created with a `new` keyword then we return a wrapper function that
- // will take the settings object for a DT. This allows easy use of new instances
- // with the `layout` option - e.g. `topLeft: $.fn.dataTable.Buttons( ... )`.
- if ( !(this instanceof Buttons) ) {
- return function (settings) {
- return new Buttons( settings, dt ).container();
- };
- }
-
- // If there is no config set it to an empty object
- if ( typeof( config ) === 'undefined' ) {
- config = {};
- }
-
- // Allow a boolean true for defaults
- if ( config === true ) {
- config = {};
- }
-
- // For easy configuration of buttons an array can be given
- if ( Array.isArray( config ) ) {
- config = { buttons: config };
- }
-
- this.c = $.extend( true, {}, Buttons.defaults, config );
-
- // Don't want a deep copy for the buttons
- if ( config.buttons ) {
- this.c.buttons = config.buttons;
- }
-
- this.s = {
- dt: new DataTable.Api( dt ),
- buttons: [],
- listenKeys: '',
- namespace: 'dtb'+(_instCounter++)
- };
-
- this.dom = {
- container: $('<'+this.c.dom.container.tag+'/>')
- .addClass( this.c.dom.container.className )
- };
-
- this._constructor();
-};
-
-
-$.extend( Buttons.prototype, {
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Public methods
- */
-
- /**
- * Get the action of a button
- * @param {int|string} Button index
- * @return {function}
- *//**
- * Set the action of a button
- * @param {node} node Button element
- * @param {function} action Function to set
- * @return {Buttons} Self for chaining
- */
- action: function ( node, action )
- {
- var button = this._nodeToButton( node );
-
- if ( action === undefined ) {
- return button.conf.action;
- }
-
- button.conf.action = action;
-
- return this;
- },
-
- /**
- * Add an active class to the button to make to look active or get current
- * active state.
- * @param {node} node Button element
- * @param {boolean} [flag] Enable / disable flag
- * @return {Buttons} Self for chaining or boolean for getter
- */
- active: function ( node, flag ) {
- var button = this._nodeToButton( node );
- var klass = this.c.dom.button.active;
- var jqNode = $(button.node);
-
- if ( flag === undefined ) {
- return jqNode.hasClass( klass );
- }
-
- jqNode.toggleClass( klass, flag === undefined ? true : flag );
-
- return this;
- },
-
- /**
- * Add a new button
- * @param {object} config Button configuration object, base string name or function
- * @param {int|string} [idx] Button index for where to insert the button
- * @return {Buttons} Self for chaining
- */
- add: function ( config, idx )
- {
- var buttons = this.s.buttons;
-
- if ( typeof idx === 'string' ) {
- var split = idx.split('-');
- var base = this.s;
-
- for ( var i=0, ien=split.length-1 ; i=0 ; i-- ) {
- this.remove( button.buttons[i].node );
- }
- }
-
- // Allow the button to remove event handlers, etc
- if ( button.conf.destroy ) {
- button.conf.destroy.call( dt.button(node), dt, $(node), button.conf );
- }
-
- this._removeKey( button.conf );
-
- $(button.node).remove();
-
- var idx = $.inArray( button, host );
- host.splice( idx, 1 );
-
- return this;
- },
-
- /**
- * Get the text for a button
- * @param {int|string} node Button index
- * @return {string} Button text
- *//**
- * Set the text for a button
- * @param {int|string|function} node Button index
- * @param {string} label Text
- * @return {Buttons} Self for chaining
- */
- text: function ( node, label )
- {
- var button = this._nodeToButton( node );
- var buttonLiner = this.c.dom.collection.buttonLiner;
- var linerTag = button.inCollection && buttonLiner && buttonLiner.tag ?
- buttonLiner.tag :
- this.c.dom.buttonLiner.tag;
- var dt = this.s.dt;
- var jqNode = $(button.node);
- var text = function ( opt ) {
- return typeof opt === 'function' ?
- opt( dt, jqNode, button.conf ) :
- opt;
- };
-
- if ( label === undefined ) {
- return text( button.conf.text );
- }
-
- button.conf.text = label;
-
- if ( linerTag ) {
- jqNode.children( linerTag ).html( text(label) );
- }
- else {
- jqNode.html( text(label) );
- }
-
- return this;
- },
-
-
- /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Constructor
- */
-
- /**
- * Buttons constructor
- * @private
- */
- _constructor: function ()
- {
- var that = this;
- var dt = this.s.dt;
- var dtSettings = dt.settings()[0];
- var buttons = this.c.buttons;
-
- if ( ! dtSettings._buttons ) {
- dtSettings._buttons = [];
- }
-
- dtSettings._buttons.push( {
- inst: this,
- name: this.c.name
- } );
-
- for ( var i=0, ien=buttons.length ; i');
-
- built.conf._collection = built.collection;
-
- this._expandButton( built.buttons, built.conf.buttons, true, attachPoint );
- }
-
- // init call is made here, rather than buildButton as it needs to
- // be selectable, and for that it needs to be in the buttons array
- if ( conf.init ) {
- conf.init.call( dt.button( built.node ), dt, $(built.node), conf );
- }
-
- buttonCounter++;
- }
- },
-
- /**
- * Create an individual button
- * @param {object} config Resolved button configuration
- * @param {boolean} inCollection `true` if a collection button
- * @return {jQuery} Created button node (jQuery)
- * @private
- */
- _buildButton: function ( config, inCollection )
- {
- var buttonDom = this.c.dom.button;
- var linerDom = this.c.dom.buttonLiner;
- var collectionDom = this.c.dom.collection;
- var dt = this.s.dt;
- var text = function ( opt ) {
- return typeof opt === 'function' ?
- opt( dt, button, config ) :
- opt;
- };
-
- if ( inCollection && collectionDom.button ) {
- buttonDom = collectionDom.button;
- }
-
- if ( inCollection && collectionDom.buttonLiner ) {
- linerDom = collectionDom.buttonLiner;
- }
-
- // Make sure that the button is available based on whatever requirements
- // it has. For example, PDF button require pdfmake
- if ( config.available && ! config.available( dt, config ) ) {
- return false;
- }
-
- var action = function ( e, dt, button, config ) {
- config.action.call( dt.button( button ), e, dt, button, config );
-
- $(dt.table().node()).triggerHandler( 'buttons-action.dt', [
- dt.button( button ), dt, button, config
- ] );
- };
-
- var tag = config.tag || buttonDom.tag;
- var clickBlurs = config.clickBlurs === undefined ? true : config.clickBlurs
- var button = $('<'+tag+'/>')
- .addClass( buttonDom.className )
- .attr( 'tabindex', this.s.dt.settings()[0].iTabIndex )
- .attr( 'aria-controls', this.s.dt.table().node().id )
- .on( 'click.dtb', function (e) {
- e.preventDefault();
-
- if ( ! button.hasClass( buttonDom.disabled ) && config.action ) {
- action( e, dt, button, config );
- }
- if( clickBlurs ) {
- button.trigger('blur');
- }
- } )
- .on( 'keyup.dtb', function (e) {
- if ( e.keyCode === 13 ) {
- if ( ! button.hasClass( buttonDom.disabled ) && config.action ) {
- action( e, dt, button, config );
- }
- }
- } );
-
- // Make `a` tags act like a link
- if ( tag.toLowerCase() === 'a' ) {
- button.attr( 'href', '#' );
- }
-
- // Button tags should have `type=button` so they don't have any default behaviour
- if ( tag.toLowerCase() === 'button' ) {
- button.attr( 'type', 'button' );
- }
-
- if ( linerDom.tag ) {
- var liner = $('<'+linerDom.tag+'/>')
- .html( text( config.text ) )
- .addClass( linerDom.className );
-
- if ( linerDom.tag.toLowerCase() === 'a' ) {
- liner.attr( 'href', '#' );
- }
-
- button.append( liner );
- }
- else {
- button.html( text( config.text ) );
- }
-
- if ( config.enabled === false ) {
- button.addClass( buttonDom.disabled );
- }
-
- if ( config.className ) {
- button.addClass( config.className );
- }
-
- if ( config.titleAttr ) {
- button.attr( 'title', text( config.titleAttr ) );
- }
-
- if ( config.attr ) {
- button.attr( config.attr );
- }
-
- if ( ! config.namespace ) {
- config.namespace = '.dt-button-'+(_buttonCounter++);
- }
-
- var buttonContainer = this.c.dom.buttonContainer;
- var inserter;
- if ( buttonContainer && buttonContainer.tag ) {
- inserter = $('<'+buttonContainer.tag+'/>')
- .addClass( buttonContainer.className )
- .append( button );
- }
- else {
- inserter = button;
- }
-
- this._addKey( config );
-
- // Style integration callback for DOM manipulation
- // Note that this is _not_ documented. It is currently
- // for style integration only
- if( this.c.buttonCreated ) {
- inserter = this.c.buttonCreated( config, inserter );
- }
-
- return {
- conf: config,
- node: button.get(0),
- inserter: inserter,
- buttons: [],
- inCollection: inCollection,
- collection: null
- };
- },
-
- /**
- * Get the button object from a node (recursive)
- * @param {node} node Button node
- * @param {array} [buttons] Button array, uses base if not defined
- * @return {object} Button object
- * @private
- */
- _nodeToButton: function ( node, buttons )
- {
- if ( ! buttons ) {
- buttons = this.s.buttons;
- }
-
- for ( var i=0, ien=buttons.length ; i 30 ) {
- // Protect against misconfiguration killing the browser
- throw 'Buttons: Too many iterations';
- }
- }
-
- return Array.isArray( base ) ?
- base :
- $.extend( {}, base );
- };
-
- conf = toConfObject( conf );
-
- while ( conf && conf.extend ) {
- // Use `toConfObject` in case the button definition being extended
- // is itself a string or a function
- if ( ! _dtButtons[ conf.extend ] ) {
- throw 'Cannot extend unknown button type: '+conf.extend;
- }
-
- var objArray = toConfObject( _dtButtons[ conf.extend ] );
- if ( Array.isArray( objArray ) ) {
- return objArray;
- }
- else if ( ! objArray ) {
- // This is a little brutal as it might be possible to have a
- // valid button without the extend, but if there is no extend
- // then the host button would be acting in an undefined state
- return false;
- }
-
- // Stash the current class name
- var originalClassName = objArray.className;
-
- conf = $.extend( {}, objArray, conf );
-
- // The extend will have overwritten the original class name if the
- // `conf` object also assigned a class, but we want to concatenate
- // them so they are list that is combined from all extended buttons
- if ( originalClassName && conf.className !== originalClassName ) {
- conf.className = originalClassName+' '+conf.className;
- }
-
- // Buttons to be added to a collection -gives the ability to define
- // if buttons should be added to the start or end of a collection
- var postfixButtons = conf.postfixButtons;
- if ( postfixButtons ) {
- if ( ! conf.buttons ) {
- conf.buttons = [];
- }
-
- for ( i=0, ien=postfixButtons.length ; i')
- .addClass('dt-button-collection')
- .addClass(options.collectionLayout)
- .css('display', 'none');
-
- content = $(content)
- .addClass(options.contentClassName)
- .attr('role', 'menu')
- .appendTo(display);
-
- hostNode.attr( 'aria-expanded', 'true' );
-
- if ( hostNode.parents('body')[0] !== document.body ) {
- hostNode = document.body.lastChild;
- }
-
- if ( options.collectionTitle ) {
- display.prepend(''+options.collectionTitle+'
');
- }
-
- _fadeIn( display.insertAfter( hostNode ), options.fade );
-
- var tableContainer = $( hostButton.table().container() );
- var position = display.css( 'position' );
-
- if ( options.align === 'dt-container' ) {
- hostNode = hostNode.parent();
- display.css('width', tableContainer.width());
- }
-
- // Align the popover relative to the DataTables container
- // Useful for wide popovers such as SearchPanes
- if (position === 'absolute') {
- // Align relative to the host button
- var hostPosition = hostNode.position();
- var buttonPosition = $(hostButton.node()).position();
-
- display.css( {
- top: buttonPosition.top + hostNode.outerHeight(),
- left: hostPosition.left
- } );
-
- // calculate overflow when positioned beneath
- var collectionHeight = display.outerHeight();
- var tableBottom = tableContainer.offset().top + tableContainer.height();
- var listBottom = buttonPosition.top + hostNode.outerHeight() + collectionHeight;
- var bottomOverflow = listBottom - tableBottom;
-
- // calculate overflow when positioned above
- var listTop = buttonPosition.top - collectionHeight;
- var tableTop = tableContainer.offset().top;
- var topOverflow = tableTop - listTop;
-
- // if bottom overflow is larger, move to the top because it fits better, or if dropup is requested
- var moveTop = buttonPosition.top - collectionHeight - 5;
- if ( (bottomOverflow > topOverflow || options.dropup) && -moveTop < tableTop ) {
- display.css( 'top', moveTop);
- }
-
- // Get the size of the container (left and width - and thus also right)
- var tableLeft = tableContainer.offset().left;
- var tableWidth = tableContainer.width();
- var tableRight = tableLeft + tableWidth;
-
- // Get the size of the popover (left and width - and ...)
- var popoverLeft = display.offset().left;
- var popoverWidth = display.width();
- var popoverRight = popoverLeft + popoverWidth;
-
- // Get the size of the host buttons (left and width - and ...)
- var buttonsLeft = hostNode.offset().left;
- var buttonsWidth = hostNode.outerWidth()
- var buttonsRight = buttonsLeft + buttonsWidth;
-
- if (
- display.hasClass( options.rightAlignClassName ) ||
- display.hasClass( options.leftAlignClassName ) ||
- options.align === 'dt-container'
- ){
- // You've then got all the numbers you need to do some calculations and if statements,
- // so we can do some quick JS maths and apply it only once
- // If it has the right align class OR the buttons are right aligned OR the button container is floated right,
- // then calculate left position for the popover to align the popover to the right hand
- // side of the button - check to see if the left of the popover is inside the table container.
- // If not, move the popover so it is, but not more than it means that the popover is to the right of the table container
- var popoverShuffle = 0;
- if ( display.hasClass( options.rightAlignClassName )) {
- popoverShuffle = buttonsRight - popoverRight;
- if(tableLeft > (popoverLeft + popoverShuffle)){
- var leftGap = tableLeft - (popoverLeft + popoverShuffle);
- var rightGap = tableRight - (popoverRight + popoverShuffle);
-
- if(leftGap > rightGap){
- popoverShuffle += rightGap;
- }
- else {
- popoverShuffle += leftGap;
- }
- }
- }
- // else attempt to left align the popover to the button. Similar to above, if the popover's right goes past the table container's right,
- // then move it back, but not so much that it goes past the left of the table container
- else {
- popoverShuffle = tableLeft - popoverLeft;
-
- if(tableRight < (popoverRight + popoverShuffle)){
- var leftGap = tableLeft - (popoverLeft + popoverShuffle);
- var rightGap = tableRight - (popoverRight + popoverShuffle);
-
- if(leftGap > rightGap ){
- popoverShuffle += rightGap;
- }
- else {
- popoverShuffle += leftGap;
- }
-
- }
- }
-
- display.css('left', display.position().left + popoverShuffle);
- }
- else {
- var top = hostNode.offset().top
- var popoverShuffle = 0;
-
- popoverShuffle = options.align === 'button-right'
- ? buttonsRight - popoverRight
- : buttonsLeft - popoverLeft;
-
- display.css('left', display.position().left + popoverShuffle);
- }
-
-
- }
- else {
- // Fix position - centre on screen
- var top = display.height() / 2;
- if ( top > $(window).height() / 2 ) {
- top = $(window).height() / 2;
- }
-
- display.css( 'marginTop', top*-1 );
- }
-
- if ( options.background ) {
- Buttons.background( true, options.backgroundClassName, options.fade, hostNode );
- }
-
- // This is bonkers, but if we don't have a click listener on the
- // background element, iOS Safari will ignore the body click
- // listener below. An empty function here is all that is
- // required to make it work...
- $('div.dt-button-background').on( 'click.dtb-collection', function () {} );
-
- $('body')
- .on( 'click.dtb-collection', function (e) {
- // andSelf is deprecated in jQ1.8, but we want 1.7 compat
- var back = $.fn.addBack ? 'addBack' : 'andSelf';
- var parent = $(e.target).parent()[0];
-
- if (( ! $(e.target).parents()[back]().filter( content ).length && !$(parent).hasClass('dt-buttons')) || $(e.target).hasClass('dt-button-background')) {
- close();
- }
- } )
- .on( 'keyup.dtb-collection', function (e) {
- if ( e.keyCode === 27 ) {
- close();
- }
- } );
-
- if ( options.autoClose ) {
- setTimeout( function () {
- dt.on( 'buttons-action.b-internal', function (e, btn, dt, node) {
- if ( node[0] === hostNode[0] ) {
- return;
- }
- close();
- } );
- }, 0);
- }
-
- $(display).trigger('buttons-popover.dt');
- }
-} );
-
-
-
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
- * Statics
- */
-
-/**
- * Show / hide a background layer behind a collection
- * @param {boolean} Flag to indicate if the background should be shown or
- * hidden
- * @param {string} Class to assign to the background
- * @static
- */
-Buttons.background = function ( show, className, fade, insertPoint ) {
- if ( fade === undefined ) {
- fade = 400;
- }
- if ( ! insertPoint ) {
- insertPoint = document.body;
- }
-
- if ( show ) {
- _fadeIn(
- $('
')
- .addClass( className )
- .css( 'display', 'none' )
- .insertAfter( insertPoint ),
- fade
- );
- }
- else {
- _fadeOut(
- $('div.'+className),
- fade,
- function () {
- $(this)
- .removeClass( className )
- .remove();
- }
- );
- }
-};
-
-/**
- * Instance selector - select Buttons instances based on an instance selector
- * value from the buttons assigned to a DataTable. This is only useful if
- * multiple instances are attached to a DataTable.
- * @param {string|int|array} Instance selector - see `instance-selector`
- * documentation on the DataTables site
- * @param {array} Button instance array that was attached to the DataTables
- * settings object
- * @return {array} Buttons instances
- * @static
- */
-Buttons.instanceSelector = function ( group, buttons )
-{
- if ( group === undefined || group === null ) {
- return $.map( buttons, function ( v ) {
- return v.inst;
- } );
- }
-
- var ret = [];
- var names = $.map( buttons, function ( v ) {
- return v.name;
- } );
-
- // Flatten the group selector into an array of single options
- var process = function ( input ) {
- if ( Array.isArray( input ) ) {
- for ( var i=0, ien=input.length ; i)<[^<]*)*<\/script>/gi, '' );
-
- // Always remove comments
- str = str.replace( //g, '' );
-
- if ( ! config || config.stripHtml ) {
- str = str.replace( /<[^>]*>/g, '' );
- }
-
- if ( ! config || config.trim ) {
- str = str.replace( /^\s+|\s+$/g, '' );
- }
-
- if ( ! config || config.stripNewlines ) {
- str = str.replace( /\n/g, ' ' );
- }
-
- if ( ! config || config.decodeEntities ) {
- _exportTextarea.innerHTML = str;
- str = _exportTextarea.value;
- }
-
- return str;
-};
-
-
-/**
- * Buttons defaults. For full documentation, please refer to the docs/option
- * directory or the DataTables site.
- * @type {Object}
- * @static
- */
-Buttons.defaults = {
- buttons: [ 'copy', 'excel', 'csv', 'pdf', 'print' ],
- name: 'main',
- tabIndex: 0,
- dom: {
- container: {
- tag: 'div',
- className: 'dt-buttons'
- },
- collection: {
- tag: 'div',
- className: ''
- },
- button: {
- tag: 'button',
- className: 'dt-button',
- active: 'active',
- disabled: 'disabled'
- },
- buttonLiner: {
- tag: 'span',
- className: ''
- }
- }
-};
-
-/**
- * Version information
- * @type {string}
- * @static
- */
-Buttons.version = '1.7.1';
-
-
-$.extend( _dtButtons, {
- collection: {
- text: function ( dt ) {
- return dt.i18n( 'buttons.collection', 'Collection' );
- },
- className: 'buttons-collection',
- init: function ( dt, button, config ) {
- button.attr( 'aria-expanded', false );
- },
- action: function ( e, dt, button, config ) {
- e.stopPropagation();
-
- if ( config._collection.parents('body').length ) {
- this.popover(false, config);
- }
- else {
- this.popover(config._collection, config);
- }
- },
- attr: {
- 'aria-haspopup': true
- }
- // Also the popover options, defined in Buttons.popover
- },
- copy: function ( dt, conf ) {
- if ( _dtButtons.copyHtml5 ) {
- return 'copyHtml5';
- }
- },
- csv: function ( dt, conf ) {
- if ( _dtButtons.csvHtml5 && _dtButtons.csvHtml5.available( dt, conf ) ) {
- return 'csvHtml5';
- }
- },
- excel: function ( dt, conf ) {
- if ( _dtButtons.excelHtml5 && _dtButtons.excelHtml5.available( dt, conf ) ) {
- return 'excelHtml5';
- }
- },
- pdf: function ( dt, conf ) {
- if ( _dtButtons.pdfHtml5 && _dtButtons.pdfHtml5.available( dt, conf ) ) {
- return 'pdfHtml5';
- }
- },
- pageLength: function ( dt ) {
- var lengthMenu = dt.settings()[0].aLengthMenu;
- var vals = [];
- var lang = [];
- var text = function ( dt ) {
- return dt.i18n( 'buttons.pageLength', {
- "-1": 'Show all rows',
- _: 'Show %d rows'
- }, dt.page.len() );
- };
-
- // Support for DataTables 1.x 2D array
- if (Array.isArray( lengthMenu[0] )) {
- vals = lengthMenu[0];
- lang = lengthMenu[1];
- }
- else {
- for (var i=0 ; i 1 ) {
- buttons.splice( 1, buttons.length );
- }
-
- return buttons;
-} );
-
-// Active buttons
-DataTable.Api.registerPlural( 'buttons().active()', 'button().active()', function ( flag ) {
- if ( flag === undefined ) {
- return this.map( function ( set ) {
- return set.inst.active( set.node );
- } );
- }
-
- return this.each( function ( set ) {
- set.inst.active( set.node, flag );
- } );
-} );
-
-// Get / set button action
-DataTable.Api.registerPlural( 'buttons().action()', 'button().action()', function ( action ) {
- if ( action === undefined ) {
- return this.map( function ( set ) {
- return set.inst.action( set.node );
- } );
- }
-
- return this.each( function ( set ) {
- set.inst.action( set.node, action );
- } );
-} );
-
-// Enable / disable buttons
-DataTable.Api.register( ['buttons().enable()', 'button().enable()'], function ( flag ) {
- return this.each( function ( set ) {
- set.inst.enable( set.node, flag );
- } );
-} );
-
-// Disable buttons
-DataTable.Api.register( ['buttons().disable()', 'button().disable()'], function () {
- return this.each( function ( set ) {
- set.inst.disable( set.node );
- } );
-} );
-
-// Get button nodes
-DataTable.Api.registerPlural( 'buttons().nodes()', 'button().node()', function () {
- var jq = $();
-
- // jQuery will automatically reduce duplicates to a single entry
- $( this.each( function ( set ) {
- jq = jq.add( set.inst.node( set.node ) );
- } ) );
-
- return jq;
-} );
-
-// Get / set button processing state
-DataTable.Api.registerPlural( 'buttons().processing()', 'button().processing()', function ( flag ) {
- if ( flag === undefined ) {
- return this.map( function ( set ) {
- return set.inst.processing( set.node );
- } );
- }
-
- return this.each( function ( set ) {
- set.inst.processing( set.node, flag );
- } );
-} );
-
-// Get / set button text (i.e. the button labels)
-DataTable.Api.registerPlural( 'buttons().text()', 'button().text()', function ( label ) {
- if ( label === undefined ) {
- return this.map( function ( set ) {
- return set.inst.text( set.node );
- } );
- }
-
- return this.each( function ( set ) {
- set.inst.text( set.node, label );
- } );
-} );
-
-// Trigger a button's action
-DataTable.Api.registerPlural( 'buttons().trigger()', 'button().trigger()', function () {
- return this.each( function ( set ) {
- set.inst.node( set.node ).trigger( 'click' );
- } );
-} );
-
-// Button resolver to the popover
-DataTable.Api.register( 'button().popover()', function (content, options) {
- return this.map( function ( set ) {
- return set.inst._popover( content, this.button(this[0].node), options );
- } );
-} );
-
-// Get the container elements
-DataTable.Api.register( 'buttons().containers()', function () {
- var jq = $();
- var groupSelector = this._groupSelector;
-
- // We need to use the group selector directly, since if there are no buttons
- // the result set will be empty
- this.iterator( true, 'table', function ( ctx ) {
- if ( ctx._buttons ) {
- var insts = Buttons.instanceSelector( groupSelector, ctx._buttons );
-
- for ( var i=0, ien=insts.length ; i'+title+'' : '';
-
- _fadeIn(
- $('
')
- .html( title )
- .append( $('
')[ typeof message === 'string' ? 'html' : 'append' ]( message ) )
- .css( 'display', 'none' )
- .appendTo( 'body' )
- );
-
- if ( time !== undefined && time !== 0 ) {
- _infoTimer = setTimeout( function () {
- that.buttons.info( false );
- }, time );
- }
-
- this.on('destroy.btn-info', function () {
- that.buttons.info(false);
- });
-
- return this;
-} );
-
-// Get data from the table for export - this is common to a number of plug-in
-// buttons so it is included in the Buttons core library
-DataTable.Api.register( 'buttons.exportData()', function ( options ) {
- if ( this.context.length ) {
- return _exportData( new DataTable.Api( this.context[0] ), options );
- }
-} );
-
-// Get information about the export that is common to many of the export data
-// types (DRY)
-DataTable.Api.register( 'buttons.exportInfo()', function ( conf ) {
- if ( ! conf ) {
- conf = {};
- }
-
- return {
- filename: _filename( conf ),
- title: _title( conf ),
- messageTop: _message(this, conf.message || conf.messageTop, 'top'),
- messageBottom: _message(this, conf.messageBottom, 'bottom')
- };
-} );
-
-
-
-/**
- * Get the file name for an exported file.
- *
- * @param {object} config Button configuration
- * @param {boolean} incExtension Include the file name extension
- */
-var _filename = function ( config )
-{
- // Backwards compatibility
- var filename = config.filename === '*' && config.title !== '*' && config.title !== undefined && config.title !== null && config.title !== '' ?
- config.title :
- config.filename;
-
- if ( typeof filename === 'function' ) {
- filename = filename();
- }
-
- if ( filename === undefined || filename === null ) {
- return null;
- }
-
- if ( filename.indexOf( '*' ) !== -1 ) {
- filename = filename.replace( '*', $('head > title').text() ).trim();
- }
-
- // Strip characters which the OS will object to
- filename = filename.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g, "");
-
- var extension = _stringOrFunction( config.extension );
- if ( ! extension ) {
- extension = '';
- }
-
- return filename + extension;
-};
-
-/**
- * Simply utility method to allow parameters to be given as a function
- *
- * @param {undefined|string|function} option Option
- * @return {null|string} Resolved value
- */
-var _stringOrFunction = function ( option )
-{
- if ( option === null || option === undefined ) {
- return null;
- }
- else if ( typeof option === 'function' ) {
- return option();
- }
- return option;
-};
-
-/**
- * Get the title for an exported file.
- *
- * @param {object} config Button configuration
- */
-var _title = function ( config )
-{
- var title = _stringOrFunction( config.title );
-
- return title === null ?
- null : title.indexOf( '*' ) !== -1 ?
- title.replace( '*', $('head > title').text() || 'Exported data' ) :
- title;
-};
-
-var _message = function ( dt, option, position )
-{
- var message = _stringOrFunction( option );
- if ( message === null ) {
- return null;
- }
-
- var caption = $('caption', dt.table().container()).eq(0);
- if ( message === '*' ) {
- var side = caption.css( 'caption-side' );
- if ( side !== position ) {
- return null;
- }
-
- return caption.length ?
- caption.text() :
- '';
- }
-
- return message;
-};
-
-
-
-
-var _exportTextarea = $('')[0];
-var _exportData = function ( dt, inOpts )
-{
- var config = $.extend( true, {}, {
- rows: null,
- columns: '',
- modifier: {
- search: 'applied',
- order: 'applied'
- },
- orthogonal: 'display',
- stripHtml: true,
- stripNewlines: true,
- decodeEntities: true,
- trim: true,
- format: {
- header: function ( d ) {
- return Buttons.stripData( d, config );
- },
- footer: function ( d ) {
- return Buttons.stripData( d, config );
- },
- body: function ( d ) {
- return Buttons.stripData( d, config );
- }
- },
- customizeData: null
- }, inOpts );
-
- var header = dt.columns( config.columns ).indexes().map( function (idx) {
- var el = dt.column( idx ).header();
- return config.format.header( el.innerHTML, idx, el );
- } ).toArray();
-
- var footer = dt.table().footer() ?
- dt.columns( config.columns ).indexes().map( function (idx) {
- var el = dt.column( idx ).footer();
- return config.format.footer( el ? el.innerHTML : '', idx, el );
- } ).toArray() :
- null;
-
- // If Select is available on this table, and any rows are selected, limit the export
- // to the selected rows. If no rows are selected, all rows will be exported. Specify
- // a `selected` modifier to control directly.
- var modifier = $.extend( {}, config.modifier );
- if ( dt.select && typeof dt.select.info === 'function' && modifier.selected === undefined ) {
- if ( dt.rows( config.rows, $.extend( { selected: true }, modifier ) ).any() ) {
- $.extend( modifier, { selected: true } )
- }
- }
-
- var rowIndexes = dt.rows( config.rows, modifier ).indexes().toArray();
- var selectedCells = dt.cells( rowIndexes, config.columns );
- var cells = selectedCells
- .render( config.orthogonal )
- .toArray();
- var cellNodes = selectedCells
- .nodes()
- .toArray();
-
- var columns = header.length;
- var rows = columns > 0 ? cells.length / columns : 0;
- var body = [];
- var cellCounter = 0;
-
- for ( var i=0, ien=rows ; i ").addClass(this.c.dom.container.className)};this._constructor()};e.extend(o.prototype,{action:function(a,b){var c=this._nodeToButton(a);if(b===l)return c.conf.action;c.conf.action=b;return this},active:function(a,b){var c=this._nodeToButton(a),d=this.c.dom.button.active,c=e(c.node);if(b===l)return c.hasClass(d);c.toggleClass(d,b===l?!0:b);return this},add:function(a,b){var c=this.s.buttons;if("string"===typeof b){for(var d=b.split("-"),e=this.s,c=0,h=d.length-1;c"),g.conf._collection=g.collection,this._expandButton(g.buttons,g.conf.buttons,!0,d)),m.init&&m.init.call(f.button(g.node),f,e(g.node),m),h++)}}},_buildButton:function(a,b){var c=this.c.dom.button,d=this.c.dom.buttonLiner,
-f=this.c.dom.collection,h=this.s.dt,i=function(b){return"function"===typeof b?b(h,g,a):b};b&&f.button&&(c=f.button);b&&f.buttonLiner&&(d=f.buttonLiner);if(a.available&&!a.available(h,a))return!1;var k=function(a,b,c,d){d.action.call(b.button(c),a,b,c,d);e(b.table().node()).triggerHandler("buttons-action.dt",[b.button(c),b,c,d])},f=a.tag||c.tag,m=a.clickBlurs===l?!0:a.clickBlurs,g=e("<"+f+"/>").addClass(c.className).attr("tabindex",this.s.dt.settings()[0].iTabIndex).attr("aria-controls",this.s.dt.table().node().id).on("click.dtb",
-function(b){b.preventDefault();!g.hasClass(c.disabled)&&a.action&&k(b,h,g,a);m&&g.trigger("blur")}).on("keyup.dtb",function(b){b.keyCode===13&&!g.hasClass(c.disabled)&&a.action&&k(b,h,g,a)});"a"===f.toLowerCase()&&g.attr("href","#");"button"===f.toLowerCase()&&g.attr("type","button");d.tag?(f=e("<"+d.tag+"/>").html(i(a.text)).addClass(d.className),"a"===d.tag.toLowerCase()&&f.attr("href","#"),g.append(f)):g.html(i(a.text));!1===a.enabled&&g.addClass(c.disabled);a.className&&g.addClass(a.className);
-a.titleAttr&&g.attr("title",i(a.titleAttr));a.attr&&g.attr(a.attr);a.namespace||(a.namespace=".dt-button-"+A++);d=(d=this.c.dom.buttonContainer)&&d.tag?e("<"+d.tag+"/>").addClass(d.className).append(g):g;this._addKey(a);this.c.buttonCreated&&(d=this.c.buttonCreated(a,d));return{conf:a,node:g.get(0),inserter:d,buttons:[],inCollection:b,collection:null}},_nodeToButton:function(a,b){b||(b=this.s.buttons);for(var c=0,d=b.length;c ").addClass("dt-button-collection").addClass(f.collectionLayout).css("display",
-"none");a=e(a).addClass(f.contentClassName).attr("role","menu").appendTo(c);h.attr("aria-expanded","true");h.parents("body")[0]!==q.body&&(h=q.body.lastChild);f.collectionTitle&&c.prepend(''+f.collectionTitle+"
");t(c.insertAfter(h),f.fade);var d=e(b.table().container()),k=c.css("position");"dt-container"===f.align&&(h=h.parent(),c.css("width",d.width()));if("absolute"===k){var m=h.position(),k=e(b.node()).position();c.css({top:k.top+h.outerHeight(),left:m.left});
-var m=c.outerHeight(),g=d.offset().top+d.height(),g=k.top+h.outerHeight()+m-g,j=k.top-m,n=d.offset().top,k=k.top-m-5;(g>n-j||f.dropup)&&-km+n&&(k-=m+n,d-=g+n,n=k>d?n+d:n+k)):(n=k-m,dd?n+d:n+k))):(d=
-h.offset().top,n=0,n="button-right"===f.align?l-g:j-m);c.css("left",c.position().left+n)}else d=c.height()/2,d>e(r).height()/2&&(d=e(r).height()/2),c.css("marginTop",-1*d);f.background&&o.background(!0,f.backgroundClassName,f.fade,h);e("div.dt-button-background").on("click.dtb-collection",function(){});e("body").on("click.dtb-collection",function(b){var c=e.fn.addBack?"addBack":"andSelf",d=e(b.target).parent()[0];(!e(b.target).parents()[c]().filter(a).length&&!e(d).hasClass("dt-buttons")||e(b.target).hasClass("dt-button-background"))&&
-i()}).on("keyup.dtb-collection",function(a){a.keyCode===27&&i()});f.autoClose&&setTimeout(function(){b.on("buttons-action.b-internal",function(a,b,c,d){d[0]!==h[0]&&i()})},0);e(c).trigger("buttons-popover.dt")}});o.background=function(a,b,c,d){c===l&&(c=400);d||(d=q.body);a?t(e("
").addClass(b).css("display","none").insertAfter(d),c):u(e("div."+b),c,function(){e(this).removeClass(b).remove()})};o.instanceSelector=function(a,b){if(a===l||null===a)return e.map(b,function(a){return a.inst});var c=
-[],d=e.map(b,function(a){return a.name}),f=function(a){if(Array.isArray(a))for(var i=0,k=a.length;i)<[^<]*)*<\/script>/gi,"");a=a.replace(//g,
-"");if(!b||b.stripHtml)a=a.replace(/<[^>]*>/g,"");if(!b||b.trim)a=a.replace(/^\s+|\s+$/g,"");if(!b||b.stripNewlines)a=a.replace(/\n/g," ");if(!b||b.decodeEntities)x.innerHTML=a,a=x.value;return a};o.defaults={buttons:["copy","excel","csv","pdf","print"],name:"main",tabIndex:0,dom:{container:{tag:"div",className:"dt-buttons"},collection:{tag:"div",className:""},button:{tag:"button",className:"dt-button",active:"active",disabled:"disabled"},buttonLiner:{tag:"span",className:""}}};o.version="1.7.1";
-e.extend(p,{collection:{text:function(a){return a.i18n("buttons.collection","Collection")},className:"buttons-collection",init:function(a,b){b.attr("aria-expanded",!1)},action:function(a,b,c,d){a.stopPropagation();d._collection.parents("body").length?this.popover(!1,d):this.popover(d._collection,d)},attr:{"aria-haspopup":!0}},copy:function(){if(p.copyHtml5)return"copyHtml5"},csv:function(a,b){if(p.csvHtml5&&p.csvHtml5.available(a,b))return"csvHtml5"},excel:function(a,b){if(p.excelHtml5&&p.excelHtml5.available(a,
-b))return"excelHtml5"},pdf:function(a,b){if(p.pdfHtml5&&p.pdfHtml5.available(a,b))return"pdfHtml5"},pageLength:function(a){var a=a.settings()[0].aLengthMenu,b=[],c=[];if(Array.isArray(a[0]))b=a[0],c=a[1];else for(var d=0;d ').html(a?""+a+" ":"").append(e("
")["string"===typeof b?"html":"append"](b)).css("display","none").appendTo("body"));c!==l&&0!==c&&(s=setTimeout(function(){d.buttons.info(!1)},c));this.on("destroy.btn-info",function(){d.buttons.info(!1)});
-return this});j.Api.register("buttons.exportData()",function(a){if(this.context.length){var b=new j.Api(this.context[0]),c=e.extend(!0,{},{rows:null,columns:"",modifier:{search:"applied",order:"applied"},orthogonal:"display",stripHtml:!0,stripNewlines:!0,decodeEntities:!0,trim:!0,format:{header:function(a){return o.stripData(a,c)},footer:function(a){return o.stripData(a,c)},body:function(a){return o.stripData(a,c)}},customizeData:null},a),a=b.columns(c.columns).indexes().map(function(a){var d=b.column(a).header();
-return c.format.header(d.innerHTML,a,d)}).toArray(),d=b.table().footer()?b.columns(c.columns).indexes().map(function(a){var d=b.column(a).footer();return c.format.footer(d?d.innerHTML:"",a,d)}).toArray():null,f=e.extend({},c.modifier);b.select&&"function"===typeof b.select.info&&f.selected===l&&b.rows(c.rows,e.extend({selected:!0},f)).any()&&e.extend(f,{selected:!0});for(var f=b.rows(c.rows,f).indexes().toArray(),h=b.cells(f,c.columns),f=h.render(c.orthogonal).toArray(),h=h.nodes().toArray(),i=a.length,
-k=[],m=0,g=0,q=0 title").text()).trim()),b=b.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g,
-""),(c=v(c.extension))||(c=""),b+=c);c=v(a.title);c=null===c?null:-1!==c.indexOf("*")?c.replace("*",e("head > title").text()||"Exported data"):c;return{filename:b,title:c,messageTop:y(this,a.message||a.messageTop,"top"),messageBottom:y(this,a.messageBottom,"bottom")}});var v=function(a){return null===a||a===l?null:"function"===typeof a?a():a},y=function(a,b,c){b=v(b);if(null===b)return null;a=e("caption",a.table().container()).eq(0);return"*"===b?a.css("caption-side")!==c?null:a.length?a.text():"":
-b},x=e("")[0];e.fn.dataTable.Buttons=o;e.fn.DataTable.Buttons=o;e(q).on("init.dt plugin-init.dt",function(a,b){if("dt"===a.namespace){var c=b.oInit.buttons||j.defaults.buttons;c&&!b._buttons&&(new o(b,c)).container()}});j.ext.feature.push({fnInit:w,cFeature:"B"});j.ext.features&&j.ext.features.register("buttons",w);return o});
diff --git a/Lombiq.DataTables/wwwroot/vendors/urijs/IPv6.js b/Lombiq.DataTables/wwwroot/vendors/urijs/IPv6.js
deleted file mode 100644
index 8fb74cff4..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/urijs/IPv6.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/*!
- * URI.js - Mutating URLs
- * IPv6 Support
- *
- * Version: 1.19.7
- *
- * Author: Rodney Rehm
- * Web: http://medialize.github.io/URI.js/
- *
- * Licensed under
- * MIT License http://www.opensource.org/licenses/mit-license
- *
- */
-
-(function (root, factory) {
- 'use strict';
- // https://github.com/umdjs/umd/blob/master/returnExports.js
- if (typeof module === 'object' && module.exports) {
- // Node
- module.exports = factory();
- } else if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(factory);
- } else {
- // Browser globals (root is window)
- root.IPv6 = factory(root);
- }
-}(this, function (root) {
- 'use strict';
-
- /*
- var _in = "fe80:0000:0000:0000:0204:61ff:fe9d:f156";
- var _out = IPv6.best(_in);
- var _expected = "fe80::204:61ff:fe9d:f156";
-
- console.log(_in, _out, _expected, _out === _expected);
- */
-
- // save current IPv6 variable, if any
- var _IPv6 = root && root.IPv6;
-
- function bestPresentation(address) {
- // based on:
- // Javascript to test an IPv6 address for proper format, and to
- // present the "best text representation" according to IETF Draft RFC at
- // http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04
- // 8 Feb 2010 Rich Brown, Dartware, LLC
- // Please feel free to use this code as long as you provide a link to
- // http://www.intermapper.com
- // http://intermapper.com/support/tools/IPV6-Validator.aspx
- // http://download.dartware.com/thirdparty/ipv6validator.js
-
- var _address = address.toLowerCase();
- var segments = _address.split(':');
- var length = segments.length;
- var total = 8;
-
- // trim colons (:: or ::a:b:c… or …a:b:c::)
- if (segments[0] === '' && segments[1] === '' && segments[2] === '') {
- // must have been ::
- // remove first two items
- segments.shift();
- segments.shift();
- } else if (segments[0] === '' && segments[1] === '') {
- // must have been ::xxxx
- // remove the first item
- segments.shift();
- } else if (segments[length - 1] === '' && segments[length - 2] === '') {
- // must have been xxxx::
- segments.pop();
- }
-
- length = segments.length;
-
- // adjust total segments for IPv4 trailer
- if (segments[length - 1].indexOf('.') !== -1) {
- // found a "." which means IPv4
- total = 7;
- }
-
- // fill empty segments them with "0000"
- var pos;
- for (pos = 0; pos < length; pos++) {
- if (segments[pos] === '') {
- break;
- }
- }
-
- if (pos < total) {
- segments.splice(pos, 1, '0000');
- while (segments.length < total) {
- segments.splice(pos, 0, '0000');
- }
- }
-
- // strip leading zeros
- var _segments;
- for (var i = 0; i < total; i++) {
- _segments = segments[i].split('');
- for (var j = 0; j < 3 ; j++) {
- if (_segments[0] === '0' && _segments.length > 1) {
- _segments.splice(0,1);
- } else {
- break;
- }
- }
-
- segments[i] = _segments.join('');
- }
-
- // find longest sequence of zeroes and coalesce them into one segment
- var best = -1;
- var _best = 0;
- var _current = 0;
- var current = -1;
- var inzeroes = false;
- // i; already declared
-
- for (i = 0; i < total; i++) {
- if (inzeroes) {
- if (segments[i] === '0') {
- _current += 1;
- } else {
- inzeroes = false;
- if (_current > _best) {
- best = current;
- _best = _current;
- }
- }
- } else {
- if (segments[i] === '0') {
- inzeroes = true;
- current = i;
- _current = 1;
- }
- }
- }
-
- if (_current > _best) {
- best = current;
- _best = _current;
- }
-
- if (_best > 1) {
- segments.splice(best, _best, '');
- }
-
- length = segments.length;
-
- // assemble remaining segments
- var result = '';
- if (segments[0] === '') {
- result = ':';
- }
-
- for (i = 0; i < length; i++) {
- result += segments[i];
- if (i === length - 1) {
- break;
- }
-
- result += ':';
- }
-
- if (segments[length - 1] === '') {
- result += ':';
- }
-
- return result;
- }
-
- function noConflict() {
- /*jshint validthis: true */
- if (root.IPv6 === this) {
- root.IPv6 = _IPv6;
- }
-
- return this;
- }
-
- return {
- best: bestPresentation,
- noConflict: noConflict
- };
-}));
diff --git a/Lombiq.DataTables/wwwroot/vendors/urijs/SecondLevelDomains.js b/Lombiq.DataTables/wwwroot/vendors/urijs/SecondLevelDomains.js
deleted file mode 100644
index 5a07abe89..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/urijs/SecondLevelDomains.js
+++ /dev/null
@@ -1,245 +0,0 @@
-/*!
- * URI.js - Mutating URLs
- * Second Level Domain (SLD) Support
- *
- * Version: 1.19.7
- *
- * Author: Rodney Rehm
- * Web: http://medialize.github.io/URI.js/
- *
- * Licensed under
- * MIT License http://www.opensource.org/licenses/mit-license
- *
- */
-
-(function (root, factory) {
- 'use strict';
- // https://github.com/umdjs/umd/blob/master/returnExports.js
- if (typeof module === 'object' && module.exports) {
- // Node
- module.exports = factory();
- } else if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(factory);
- } else {
- // Browser globals (root is window)
- root.SecondLevelDomains = factory(root);
- }
-}(this, function (root) {
- 'use strict';
-
- // save current SecondLevelDomains variable, if any
- var _SecondLevelDomains = root && root.SecondLevelDomains;
-
- var SLD = {
- // list of known Second Level Domains
- // converted list of SLDs from https://github.com/gavingmiller/second-level-domains
- // ----
- // publicsuffix.org is more current and actually used by a couple of browsers internally.
- // downside is it also contains domains like "dyndns.org" - which is fine for the security
- // issues browser have to deal with (SOP for cookies, etc) - but is way overboard for URI.js
- // ----
- list: {
- 'ac':' com gov mil net org ',
- 'ae':' ac co gov mil name net org pro sch ',
- 'af':' com edu gov net org ',
- 'al':' com edu gov mil net org ',
- 'ao':' co ed gv it og pb ',
- 'ar':' com edu gob gov int mil net org tur ',
- 'at':' ac co gv or ',
- 'au':' asn com csiro edu gov id net org ',
- 'ba':' co com edu gov mil net org rs unbi unmo unsa untz unze ',
- 'bb':' biz co com edu gov info net org store tv ',
- 'bh':' biz cc com edu gov info net org ',
- 'bn':' com edu gov net org ',
- 'bo':' com edu gob gov int mil net org tv ',
- 'br':' adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ',
- 'bs':' com edu gov net org ',
- 'bz':' du et om ov rg ',
- 'ca':' ab bc mb nb nf nl ns nt nu on pe qc sk yk ',
- 'ck':' biz co edu gen gov info net org ',
- 'cn':' ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ',
- 'co':' com edu gov mil net nom org ',
- 'cr':' ac c co ed fi go or sa ',
- 'cy':' ac biz com ekloges gov ltd name net org parliament press pro tm ',
- 'do':' art com edu gob gov mil net org sld web ',
- 'dz':' art asso com edu gov net org pol ',
- 'ec':' com edu fin gov info med mil net org pro ',
- 'eg':' com edu eun gov mil name net org sci ',
- 'er':' com edu gov ind mil net org rochest w ',
- 'es':' com edu gob nom org ',
- 'et':' biz com edu gov info name net org ',
- 'fj':' ac biz com info mil name net org pro ',
- 'fk':' ac co gov net nom org ',
- 'fr':' asso com f gouv nom prd presse tm ',
- 'gg':' co net org ',
- 'gh':' com edu gov mil org ',
- 'gn':' ac com gov net org ',
- 'gr':' com edu gov mil net org ',
- 'gt':' com edu gob ind mil net org ',
- 'gu':' com edu gov net org ',
- 'hk':' com edu gov idv net org ',
- 'hu':' 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ',
- 'id':' ac co go mil net or sch web ',
- 'il':' ac co gov idf k12 muni net org ',
- 'in':' ac co edu ernet firm gen gov i ind mil net nic org res ',
- 'iq':' com edu gov i mil net org ',
- 'ir':' ac co dnssec gov i id net org sch ',
- 'it':' edu gov ',
- 'je':' co net org ',
- 'jo':' com edu gov mil name net org sch ',
- 'jp':' ac ad co ed go gr lg ne or ',
- 'ke':' ac co go info me mobi ne or sc ',
- 'kh':' com edu gov mil net org per ',
- 'ki':' biz com de edu gov info mob net org tel ',
- 'km':' asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ',
- 'kn':' edu gov net org ',
- 'kr':' ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ',
- 'kw':' com edu gov net org ',
- 'ky':' com edu gov net org ',
- 'kz':' com edu gov mil net org ',
- 'lb':' com edu gov net org ',
- 'lk':' assn com edu gov grp hotel int ltd net ngo org sch soc web ',
- 'lr':' com edu gov net org ',
- 'lv':' asn com conf edu gov id mil net org ',
- 'ly':' com edu gov id med net org plc sch ',
- 'ma':' ac co gov m net org press ',
- 'mc':' asso tm ',
- 'me':' ac co edu gov its net org priv ',
- 'mg':' com edu gov mil nom org prd tm ',
- 'mk':' com edu gov inf name net org pro ',
- 'ml':' com edu gov net org presse ',
- 'mn':' edu gov org ',
- 'mo':' com edu gov net org ',
- 'mt':' com edu gov net org ',
- 'mv':' aero biz com coop edu gov info int mil museum name net org pro ',
- 'mw':' ac co com coop edu gov int museum net org ',
- 'mx':' com edu gob net org ',
- 'my':' com edu gov mil name net org sch ',
- 'nf':' arts com firm info net other per rec store web ',
- 'ng':' biz com edu gov mil mobi name net org sch ',
- 'ni':' ac co com edu gob mil net nom org ',
- 'np':' com edu gov mil net org ',
- 'nr':' biz com edu gov info net org ',
- 'om':' ac biz co com edu gov med mil museum net org pro sch ',
- 'pe':' com edu gob mil net nom org sld ',
- 'ph':' com edu gov i mil net ngo org ',
- 'pk':' biz com edu fam gob gok gon gop gos gov net org web ',
- 'pl':' art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ',
- 'pr':' ac biz com edu est gov info isla name net org pro prof ',
- 'ps':' com edu gov net org plo sec ',
- 'pw':' belau co ed go ne or ',
- 'ro':' arts com firm info nom nt org rec store tm www ',
- 'rs':' ac co edu gov in org ',
- 'sb':' com edu gov net org ',
- 'sc':' com edu gov net org ',
- 'sh':' co com edu gov net nom org ',
- 'sl':' com edu gov net org ',
- 'st':' co com consulado edu embaixada gov mil net org principe saotome store ',
- 'sv':' com edu gob org red ',
- 'sz':' ac co org ',
- 'tr':' av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ',
- 'tt':' aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ',
- 'tw':' club com ebiz edu game gov idv mil net org ',
- 'mu':' ac co com gov net or org ',
- 'mz':' ac co edu gov org ',
- 'na':' co com ',
- 'nz':' ac co cri geek gen govt health iwi maori mil net org parliament school ',
- 'pa':' abo ac com edu gob ing med net nom org sld ',
- 'pt':' com edu gov int net nome org publ ',
- 'py':' com edu gov mil net org ',
- 'qa':' com edu gov mil net org ',
- 're':' asso com nom ',
- 'ru':' ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ',
- 'rw':' ac co com edu gouv gov int mil net ',
- 'sa':' com edu gov med net org pub sch ',
- 'sd':' com edu gov info med net org tv ',
- 'se':' a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ',
- 'sg':' com edu gov idn net org per ',
- 'sn':' art com edu gouv org perso univ ',
- 'sy':' com edu gov mil net news org ',
- 'th':' ac co go in mi net or ',
- 'tj':' ac biz co com edu go gov info int mil name net nic org test web ',
- 'tn':' agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ',
- 'tz':' ac co go ne or ',
- 'ua':' biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ',
- 'ug':' ac co go ne or org sc ',
- 'uk':' ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ',
- 'us':' dni fed isa kids nsn ',
- 'uy':' com edu gub mil net org ',
- 've':' co com edu gob info mil net org web ',
- 'vi':' co com k12 net org ',
- 'vn':' ac biz com edu gov health info int name net org pro ',
- 'ye':' co com gov ltd me net org plc ',
- 'yu':' ac co edu gov org ',
- 'za':' ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ',
- 'zm':' ac co com edu gov net org sch ',
- // https://en.wikipedia.org/wiki/CentralNic#Second-level_domains
- 'com': 'ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ',
- 'net': 'gb jp se uk ',
- 'org': 'ae',
- 'de': 'com '
- },
- // gorhill 2013-10-25: Using indexOf() instead Regexp(). Significant boost
- // in both performance and memory footprint. No initialization required.
- // http://jsperf.com/uri-js-sld-regex-vs-binary-search/4
- // Following methods use lastIndexOf() rather than array.split() in order
- // to avoid any memory allocations.
- has: function(domain) {
- var tldOffset = domain.lastIndexOf('.');
- if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {
- return false;
- }
- var sldOffset = domain.lastIndexOf('.', tldOffset-1);
- if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {
- return false;
- }
- var sldList = SLD.list[domain.slice(tldOffset+1)];
- if (!sldList) {
- return false;
- }
- return sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') >= 0;
- },
- is: function(domain) {
- var tldOffset = domain.lastIndexOf('.');
- if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {
- return false;
- }
- var sldOffset = domain.lastIndexOf('.', tldOffset-1);
- if (sldOffset >= 0) {
- return false;
- }
- var sldList = SLD.list[domain.slice(tldOffset+1)];
- if (!sldList) {
- return false;
- }
- return sldList.indexOf(' ' + domain.slice(0, tldOffset) + ' ') >= 0;
- },
- get: function(domain) {
- var tldOffset = domain.lastIndexOf('.');
- if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {
- return null;
- }
- var sldOffset = domain.lastIndexOf('.', tldOffset-1);
- if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {
- return null;
- }
- var sldList = SLD.list[domain.slice(tldOffset+1)];
- if (!sldList) {
- return null;
- }
- if (sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') < 0) {
- return null;
- }
- return domain.slice(sldOffset+1);
- },
- noConflict: function(){
- if (root.SecondLevelDomains === this) {
- root.SecondLevelDomains = _SecondLevelDomains;
- }
- return this;
- }
- };
-
- return SLD;
-}));
diff --git a/Lombiq.DataTables/wwwroot/vendors/urijs/URI.fragmentQuery.js b/Lombiq.DataTables/wwwroot/vendors/urijs/URI.fragmentQuery.js
deleted file mode 100644
index 1b8391c88..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/urijs/URI.fragmentQuery.js
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Extending URI.js for fragment abuse
- */
-
-// --------------------------------------------------------------------------------
-// EXAMPLE: storing application/x-www-form-urlencoded data in the fragment
-// possibly helpful for Google's hashbangs
-// see http://code.google.com/web/ajaxcrawling/
-// --------------------------------------------------------------------------------
-
-// Note: make sure this is the last file loaded!
-
-// USAGE:
-// var uri = URI("http://example.org/#?foo=bar");
-// uri.fragment(true) === {foo: "bar"};
-// uri.fragment({bar: "foo"});
-// uri.toString() === "http://example.org/#?bar=foo";
-// uri.addFragment("name", "value");
-// uri.toString() === "http://example.org/#?bar=foo&name=value";
-// uri.removeFragment("name");
-// uri.toString() === "http://example.org/#?bar=foo";
-// uri.setFragment("name", "value1");
-// uri.toString() === "http://example.org/#?bar=foo&name=value1";
-// uri.setFragment("name", "value2");
-// uri.toString() === "http://example.org/#?bar=foo&name=value2";
-
-(function (root, factory) {
- 'use strict';
- // https://github.com/umdjs/umd/blob/master/returnExports.js
- if (typeof module === 'object' && module.exports) {
- // Node
- module.exports = factory(require('./URI'));
- } else if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['./URI'], factory);
- } else {
- // Browser globals (root is window)
- factory(root.URI);
- }
-}(this, function (URI) {
- 'use strict';
-
- var p = URI.prototype;
- // old fragment handler we need to wrap
- var f = p.fragment;
-
- // make fragmentPrefix configurable
- URI.fragmentPrefix = '?';
- var _parts = URI._parts;
- URI._parts = function() {
- var parts = _parts();
- parts.fragmentPrefix = URI.fragmentPrefix;
- return parts;
- };
- p.fragmentPrefix = function(v) {
- this._parts.fragmentPrefix = v;
- return this;
- };
-
- // add fragment(true) and fragment({key: value}) signatures
- p.fragment = function(v, build) {
- var prefix = this._parts.fragmentPrefix;
- var fragment = this._parts.fragment || '';
-
- if (v === true) {
- if (fragment.substring(0, prefix.length) !== prefix) {
- return {};
- }
-
- return URI.parseQuery(fragment.substring(prefix.length));
- } else if (v !== undefined && typeof v !== 'string') {
- this._parts.fragment = prefix + URI.buildQuery(v);
- this.build(!build);
- return this;
- } else {
- return f.call(this, v, build);
- }
- };
- p.addFragment = function(name, value, build) {
- var prefix = this._parts.fragmentPrefix;
- var data = URI.parseQuery((this._parts.fragment || '').substring(prefix.length));
- URI.addQuery(data, name, value);
- this._parts.fragment = prefix + URI.buildQuery(data);
- if (typeof name !== 'string') {
- build = value;
- }
-
- this.build(!build);
- return this;
- };
- p.removeFragment = function(name, value, build) {
- var prefix = this._parts.fragmentPrefix;
- var data = URI.parseQuery((this._parts.fragment || '').substring(prefix.length));
- URI.removeQuery(data, name, value);
- this._parts.fragment = prefix + URI.buildQuery(data);
- if (typeof name !== 'string') {
- build = value;
- }
-
- this.build(!build);
- return this;
- };
- p.setFragment = function(name, value, build) {
- var prefix = this._parts.fragmentPrefix;
- var data = URI.parseQuery((this._parts.fragment || '').substring(prefix.length));
- URI.setQuery(data, name, value);
- this._parts.fragment = prefix + URI.buildQuery(data);
- if (typeof name !== 'string') {
- build = value;
- }
-
- this.build(!build);
- return this;
- };
- p.addHash = p.addFragment;
- p.removeHash = p.removeFragment;
- p.setHash = p.setFragment;
-
- // extending existing object rather than defining something new
- return URI;
-}));
diff --git a/Lombiq.DataTables/wwwroot/vendors/urijs/URI.fragmentURI.js b/Lombiq.DataTables/wwwroot/vendors/urijs/URI.fragmentURI.js
deleted file mode 100644
index 86d990218..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/urijs/URI.fragmentURI.js
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Extending URI.js for fragment abuse
- */
-
-// --------------------------------------------------------------------------------
-// EXAMPLE: storing a relative URL in the fragment ("FragmentURI")
-// possibly helpful when working with backbone.js or sammy.js
-// inspired by https://github.com/medialize/URI.js/pull/2
-// --------------------------------------------------------------------------------
-
-// Note: make sure this is the last file loaded!
-
-// USAGE:
-// var uri = URI("http://example.org/#!/foo/bar/baz.html");
-// var furi = uri.fragment(true);
-// furi.pathname() === '/foo/bar/baz.html';
-// furi.pathname('/hello.html');
-// uri.toString() === "http://example.org/#!/hello.html"
-
-(function (root, factory) {
- 'use strict';
- // https://github.com/umdjs/umd/blob/master/returnExports.js
- if (typeof module === 'object' && module.exports) {
- // Node
- module.exports = factory(require('./URI'));
- } else if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['./URI'], factory);
- } else {
- // Browser globals (root is window)
- factory(root.URI);
- }
-}(this, function (URI) {
- 'use strict';
-
- var p = URI.prototype;
- // old handlers we need to wrap
- var f = p.fragment;
- var b = p.build;
-
- // make fragmentPrefix configurable
- URI.fragmentPrefix = '!';
- var _parts = URI._parts;
- URI._parts = function() {
- var parts = _parts();
- parts.fragmentPrefix = URI.fragmentPrefix;
- return parts;
- };
- p.fragmentPrefix = function(v) {
- this._parts.fragmentPrefix = v;
- return this;
- };
-
- // add fragment(true) and fragment(URI) signatures
- p.fragment = function(v, build) {
- var prefix = this._parts.fragmentPrefix;
- var fragment = this._parts.fragment || '';
- var furi;
-
- if (v === true) {
- if (fragment.substring(0, prefix.length) !== prefix) {
- furi = URI('');
- } else {
- furi = new URI(fragment.substring(prefix.length));
- }
-
- this._fragmentURI = furi;
- furi._parentURI = this;
- return furi;
- } else if (v !== undefined && typeof v !== 'string') {
- this._fragmentURI = v;
- v._parentURI = v;
- this._parts.fragment = prefix + v.toString();
- this.build(!build);
- return this;
- } else if (typeof v === 'string') {
- this._fragmentURI = undefined;
- }
-
- return f.call(this, v, build);
- };
-
- // make .build() of the actual URI aware of the FragmentURI
- p.build = function(deferBuild) {
- var t = b.call(this, deferBuild);
-
- if (deferBuild !== false && this._parentURI) {
- // update the parent
- this._parentURI.fragment(this);
- }
-
- return t;
- };
-
- // extending existing object rather than defining something new
- return URI;
-}));
\ No newline at end of file
diff --git a/Lombiq.DataTables/wwwroot/vendors/urijs/URI.js b/Lombiq.DataTables/wwwroot/vendors/urijs/URI.js
deleted file mode 100644
index 6505698f9..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/urijs/URI.js
+++ /dev/null
@@ -1,2354 +0,0 @@
-/*!
- * URI.js - Mutating URLs
- *
- * Version: 1.19.7
- *
- * Author: Rodney Rehm
- * Web: http://medialize.github.io/URI.js/
- *
- * Licensed under
- * MIT License http://www.opensource.org/licenses/mit-license
- *
- */
-(function (root, factory) {
- 'use strict';
- // https://github.com/umdjs/umd/blob/master/returnExports.js
- if (typeof module === 'object' && module.exports) {
- // Node
- module.exports = factory(require('./punycode'), require('./IPv6'), require('./SecondLevelDomains'));
- } else if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['./punycode', './IPv6', './SecondLevelDomains'], factory);
- } else {
- // Browser globals (root is window)
- root.URI = factory(root.punycode, root.IPv6, root.SecondLevelDomains, root);
- }
-}(this, function (punycode, IPv6, SLD, root) {
- 'use strict';
- /*global location, escape, unescape */
- // FIXME: v2.0.0 renamce non-camelCase properties to uppercase
- /*jshint camelcase: false */
-
- // save current URI variable, if any
- var _URI = root && root.URI;
-
- function URI(url, base) {
- var _urlSupplied = arguments.length >= 1;
- var _baseSupplied = arguments.length >= 2;
-
- // Allow instantiation without the 'new' keyword
- if (!(this instanceof URI)) {
- if (_urlSupplied) {
- if (_baseSupplied) {
- return new URI(url, base);
- }
-
- return new URI(url);
- }
-
- return new URI();
- }
-
- if (url === undefined) {
- if (_urlSupplied) {
- throw new TypeError('undefined is not a valid argument for URI');
- }
-
- if (typeof location !== 'undefined') {
- url = location.href + '';
- } else {
- url = '';
- }
- }
-
- if (url === null) {
- if (_urlSupplied) {
- throw new TypeError('null is not a valid argument for URI');
- }
- }
-
- this.href(url);
-
- // resolve to base according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#constructor
- if (base !== undefined) {
- return this.absoluteTo(base);
- }
-
- return this;
- }
-
- function isInteger(value) {
- return /^[0-9]+$/.test(value);
- }
-
- URI.version = '1.19.7';
-
- var p = URI.prototype;
- var hasOwn = Object.prototype.hasOwnProperty;
-
- function escapeRegEx(string) {
- // https://github.com/medialize/URI.js/commit/85ac21783c11f8ccab06106dba9735a31a86924d#commitcomment-821963
- return string.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
- }
-
- function getType(value) {
- // IE8 doesn't return [Object Undefined] but [Object Object] for undefined value
- if (value === undefined) {
- return 'Undefined';
- }
-
- return String(Object.prototype.toString.call(value)).slice(8, -1);
- }
-
- function isArray(obj) {
- return getType(obj) === 'Array';
- }
-
- function filterArrayValues(data, value) {
- var lookup = {};
- var i, length;
-
- if (getType(value) === 'RegExp') {
- lookup = null;
- } else if (isArray(value)) {
- for (i = 0, length = value.length; i < length; i++) {
- lookup[value[i]] = true;
- }
- } else {
- lookup[value] = true;
- }
-
- for (i = 0, length = data.length; i < length; i++) {
- /*jshint laxbreak: true */
- var _match = lookup && lookup[data[i]] !== undefined
- || !lookup && value.test(data[i]);
- /*jshint laxbreak: false */
- if (_match) {
- data.splice(i, 1);
- length--;
- i--;
- }
- }
-
- return data;
- }
-
- function arrayContains(list, value) {
- var i, length;
-
- // value may be string, number, array, regexp
- if (isArray(value)) {
- // Note: this can be optimized to O(n) (instead of current O(m * n))
- for (i = 0, length = value.length; i < length; i++) {
- if (!arrayContains(list, value[i])) {
- return false;
- }
- }
-
- return true;
- }
-
- var _type = getType(value);
- for (i = 0, length = list.length; i < length; i++) {
- if (_type === 'RegExp') {
- if (typeof list[i] === 'string' && list[i].match(value)) {
- return true;
- }
- } else if (list[i] === value) {
- return true;
- }
- }
-
- return false;
- }
-
- function arraysEqual(one, two) {
- if (!isArray(one) || !isArray(two)) {
- return false;
- }
-
- // arrays can't be equal if they have different amount of content
- if (one.length !== two.length) {
- return false;
- }
-
- one.sort();
- two.sort();
-
- for (var i = 0, l = one.length; i < l; i++) {
- if (one[i] !== two[i]) {
- return false;
- }
- }
-
- return true;
- }
-
- function trimSlashes(text) {
- var trim_expression = /^\/+|\/+$/g;
- return text.replace(trim_expression, '');
- }
-
- URI._parts = function() {
- return {
- protocol: null,
- username: null,
- password: null,
- hostname: null,
- urn: null,
- port: null,
- path: null,
- query: null,
- fragment: null,
- // state
- preventInvalidHostname: URI.preventInvalidHostname,
- duplicateQueryParameters: URI.duplicateQueryParameters,
- escapeQuerySpace: URI.escapeQuerySpace
- };
- };
- // state: throw on invalid hostname
- // see https://github.com/medialize/URI.js/pull/345
- // and https://github.com/medialize/URI.js/issues/354
- URI.preventInvalidHostname = false;
- // state: allow duplicate query parameters (a=1&a=1)
- URI.duplicateQueryParameters = false;
- // state: replaces + with %20 (space in query strings)
- URI.escapeQuerySpace = true;
- // static properties
- URI.protocol_expression = /^[a-z][a-z0-9.+-]*$/i;
- URI.idn_expression = /[^a-z0-9\._-]/i;
- URI.punycode_expression = /(xn--)/i;
- // well, 333.444.555.666 matches, but it sure ain't no IPv4 - do we care?
- URI.ip4_expression = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/;
- // credits to Rich Brown
- // source: http://forums.intermapper.com/viewtopic.php?p=1096#1096
- // specification: http://www.ietf.org/rfc/rfc4291.txt
- URI.ip6_expression = /^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/;
- // expression used is "gruber revised" (@gruber v2) determined to be the
- // best solution in a regex-golf we did a couple of ages ago at
- // * http://mathiasbynens.be/demo/url-regex
- // * http://rodneyrehm.de/t/url-regex.html
- URI.find_uri_expression = /\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig;
- URI.findUri = {
- // valid "scheme://" or "www."
- start: /\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,
- // everything up to the next whitespace
- end: /[\s\r\n]|$/,
- // trim trailing punctuation captured by end RegExp
- trim: /[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,
- // balanced parens inclusion (), [], {}, <>
- parens: /(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g,
- };
- // http://www.iana.org/assignments/uri-schemes.html
- // http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports
- URI.defaultPorts = {
- http: '80',
- https: '443',
- ftp: '21',
- gopher: '70',
- ws: '80',
- wss: '443'
- };
- // list of protocols which always require a hostname
- URI.hostProtocols = [
- 'http',
- 'https'
- ];
-
- // allowed hostname characters according to RFC 3986
- // ALPHA DIGIT "-" "." "_" "~" "!" "$" "&" "'" "(" ")" "*" "+" "," ";" "=" %encoded
- // I've never seen a (non-IDN) hostname other than: ALPHA DIGIT . - _
- URI.invalid_hostname_characters = /[^a-zA-Z0-9\.\-:_]/;
- // map DOM Elements to their URI attribute
- URI.domAttributes = {
- 'a': 'href',
- 'blockquote': 'cite',
- 'link': 'href',
- 'base': 'href',
- 'script': 'src',
- 'form': 'action',
- 'img': 'src',
- 'area': 'href',
- 'iframe': 'src',
- 'embed': 'src',
- 'source': 'src',
- 'track': 'src',
- 'input': 'src', // but only if type="image"
- 'audio': 'src',
- 'video': 'src'
- };
- URI.getDomAttribute = function(node) {
- if (!node || !node.nodeName) {
- return undefined;
- }
-
- var nodeName = node.nodeName.toLowerCase();
- // should only expose src for type="image"
- if (nodeName === 'input' && node.type !== 'image') {
- return undefined;
- }
-
- return URI.domAttributes[nodeName];
- };
-
- function escapeForDumbFirefox36(value) {
- // https://github.com/medialize/URI.js/issues/91
- return escape(value);
- }
-
- // encoding / decoding according to RFC3986
- function strictEncodeURIComponent(string) {
- // see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent
- return encodeURIComponent(string)
- .replace(/[!'()*]/g, escapeForDumbFirefox36)
- .replace(/\*/g, '%2A');
- }
- URI.encode = strictEncodeURIComponent;
- URI.decode = decodeURIComponent;
- URI.iso8859 = function() {
- URI.encode = escape;
- URI.decode = unescape;
- };
- URI.unicode = function() {
- URI.encode = strictEncodeURIComponent;
- URI.decode = decodeURIComponent;
- };
- URI.characters = {
- pathname: {
- encode: {
- // RFC3986 2.1: For consistency, URI producers and normalizers should
- // use uppercase hexadecimal digits for all percent-encodings.
- expression: /%(24|26|2B|2C|3B|3D|3A|40)/ig,
- map: {
- // -._~!'()*
- '%24': '$',
- '%26': '&',
- '%2B': '+',
- '%2C': ',',
- '%3B': ';',
- '%3D': '=',
- '%3A': ':',
- '%40': '@'
- }
- },
- decode: {
- expression: /[\/\?#]/g,
- map: {
- '/': '%2F',
- '?': '%3F',
- '#': '%23'
- }
- }
- },
- reserved: {
- encode: {
- // RFC3986 2.1: For consistency, URI producers and normalizers should
- // use uppercase hexadecimal digits for all percent-encodings.
- expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,
- map: {
- // gen-delims
- '%3A': ':',
- '%2F': '/',
- '%3F': '?',
- '%23': '#',
- '%5B': '[',
- '%5D': ']',
- '%40': '@',
- // sub-delims
- '%21': '!',
- '%24': '$',
- '%26': '&',
- '%27': '\'',
- '%28': '(',
- '%29': ')',
- '%2A': '*',
- '%2B': '+',
- '%2C': ',',
- '%3B': ';',
- '%3D': '='
- }
- }
- },
- urnpath: {
- // The characters under `encode` are the characters called out by RFC 2141 as being acceptable
- // for usage in a URN. RFC2141 also calls out "-", ".", and "_" as acceptable characters, but
- // these aren't encoded by encodeURIComponent, so we don't have to call them out here. Also
- // note that the colon character is not featured in the encoding map; this is because URI.js
- // gives the colons in URNs semantic meaning as the delimiters of path segements, and so it
- // should not appear unencoded in a segment itself.
- // See also the note above about RFC3986 and capitalalized hex digits.
- encode: {
- expression: /%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,
- map: {
- '%21': '!',
- '%24': '$',
- '%27': '\'',
- '%28': '(',
- '%29': ')',
- '%2A': '*',
- '%2B': '+',
- '%2C': ',',
- '%3B': ';',
- '%3D': '=',
- '%40': '@'
- }
- },
- // These characters are the characters called out by RFC2141 as "reserved" characters that
- // should never appear in a URN, plus the colon character (see note above).
- decode: {
- expression: /[\/\?#:]/g,
- map: {
- '/': '%2F',
- '?': '%3F',
- '#': '%23',
- ':': '%3A'
- }
- }
- }
- };
- URI.encodeQuery = function(string, escapeQuerySpace) {
- var escaped = URI.encode(string + '');
- if (escapeQuerySpace === undefined) {
- escapeQuerySpace = URI.escapeQuerySpace;
- }
-
- return escapeQuerySpace ? escaped.replace(/%20/g, '+') : escaped;
- };
- URI.decodeQuery = function(string, escapeQuerySpace) {
- string += '';
- if (escapeQuerySpace === undefined) {
- escapeQuerySpace = URI.escapeQuerySpace;
- }
-
- try {
- return URI.decode(escapeQuerySpace ? string.replace(/\+/g, '%20') : string);
- } catch(e) {
- // we're not going to mess with weird encodings,
- // give up and return the undecoded original string
- // see https://github.com/medialize/URI.js/issues/87
- // see https://github.com/medialize/URI.js/issues/92
- return string;
- }
- };
- // generate encode/decode path functions
- var _parts = {'encode':'encode', 'decode':'decode'};
- var _part;
- var generateAccessor = function(_group, _part) {
- return function(string) {
- try {
- return URI[_part](string + '').replace(URI.characters[_group][_part].expression, function(c) {
- return URI.characters[_group][_part].map[c];
- });
- } catch (e) {
- // we're not going to mess with weird encodings,
- // give up and return the undecoded original string
- // see https://github.com/medialize/URI.js/issues/87
- // see https://github.com/medialize/URI.js/issues/92
- return string;
- }
- };
- };
-
- for (_part in _parts) {
- URI[_part + 'PathSegment'] = generateAccessor('pathname', _parts[_part]);
- URI[_part + 'UrnPathSegment'] = generateAccessor('urnpath', _parts[_part]);
- }
-
- var generateSegmentedPathFunction = function(_sep, _codingFuncName, _innerCodingFuncName) {
- return function(string) {
- // Why pass in names of functions, rather than the function objects themselves? The
- // definitions of some functions (but in particular, URI.decode) will occasionally change due
- // to URI.js having ISO8859 and Unicode modes. Passing in the name and getting it will ensure
- // that the functions we use here are "fresh".
- var actualCodingFunc;
- if (!_innerCodingFuncName) {
- actualCodingFunc = URI[_codingFuncName];
- } else {
- actualCodingFunc = function(string) {
- return URI[_codingFuncName](URI[_innerCodingFuncName](string));
- };
- }
-
- var segments = (string + '').split(_sep);
-
- for (var i = 0, length = segments.length; i < length; i++) {
- segments[i] = actualCodingFunc(segments[i]);
- }
-
- return segments.join(_sep);
- };
- };
-
- // This takes place outside the above loop because we don't want, e.g., encodeUrnPath functions.
- URI.decodePath = generateSegmentedPathFunction('/', 'decodePathSegment');
- URI.decodeUrnPath = generateSegmentedPathFunction(':', 'decodeUrnPathSegment');
- URI.recodePath = generateSegmentedPathFunction('/', 'encodePathSegment', 'decode');
- URI.recodeUrnPath = generateSegmentedPathFunction(':', 'encodeUrnPathSegment', 'decode');
-
- URI.encodeReserved = generateAccessor('reserved', 'encode');
-
- URI.parse = function(string, parts) {
- var pos;
- if (!parts) {
- parts = {
- preventInvalidHostname: URI.preventInvalidHostname
- };
- }
- // [protocol"://"[username[":"password]"@"]hostname[":"port]"/"?][path]["?"querystring]["#"fragment]
-
- // extract fragment
- pos = string.indexOf('#');
- if (pos > -1) {
- // escaping?
- parts.fragment = string.substring(pos + 1) || null;
- string = string.substring(0, pos);
- }
-
- // extract query
- pos = string.indexOf('?');
- if (pos > -1) {
- // escaping?
- parts.query = string.substring(pos + 1) || null;
- string = string.substring(0, pos);
- }
-
- // slashes and backslashes have lost all meaning for the web protocols (https, http, wss, ws)
- string = string.replace(/^(https?|ftp|wss?)?:[/\\]*/, '$1://');
-
- // extract protocol
- if (string.substring(0, 2) === '//') {
- // relative-scheme
- parts.protocol = null;
- string = string.substring(2);
- // extract "user:pass@host:port"
- string = URI.parseAuthority(string, parts);
- } else {
- pos = string.indexOf(':');
- if (pos > -1) {
- parts.protocol = string.substring(0, pos) || null;
- if (parts.protocol && !parts.protocol.match(URI.protocol_expression)) {
- // : may be within the path
- parts.protocol = undefined;
- } else if (string.substring(pos + 1, pos + 3).replace(/\\/g, '/') === '//') {
- string = string.substring(pos + 3);
-
- // extract "user:pass@host:port"
- string = URI.parseAuthority(string, parts);
- } else {
- string = string.substring(pos + 1);
- parts.urn = true;
- }
- }
- }
-
- // what's left must be the path
- parts.path = string;
-
- // and we're done
- return parts;
- };
- URI.parseHost = function(string, parts) {
- if (!string) {
- string = '';
- }
-
- // Copy chrome, IE, opera backslash-handling behavior.
- // Back slashes before the query string get converted to forward slashes
- // See: https://github.com/joyent/node/blob/386fd24f49b0e9d1a8a076592a404168faeecc34/lib/url.js#L115-L124
- // See: https://code.google.com/p/chromium/issues/detail?id=25916
- // https://github.com/medialize/URI.js/pull/233
- string = string.replace(/\\/g, '/');
-
- // extract host:port
- var pos = string.indexOf('/');
- var bracketPos;
- var t;
-
- if (pos === -1) {
- pos = string.length;
- }
-
- if (string.charAt(0) === '[') {
- // IPv6 host - http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04#section-6
- // I claim most client software breaks on IPv6 anyways. To simplify things, URI only accepts
- // IPv6+port in the format [2001:db8::1]:80 (for the time being)
- bracketPos = string.indexOf(']');
- parts.hostname = string.substring(1, bracketPos) || null;
- parts.port = string.substring(bracketPos + 2, pos) || null;
- if (parts.port === '/') {
- parts.port = null;
- }
- } else {
- var firstColon = string.indexOf(':');
- var firstSlash = string.indexOf('/');
- var nextColon = string.indexOf(':', firstColon + 1);
- if (nextColon !== -1 && (firstSlash === -1 || nextColon < firstSlash)) {
- // IPv6 host contains multiple colons - but no port
- // this notation is actually not allowed by RFC 3986, but we're a liberal parser
- parts.hostname = string.substring(0, pos) || null;
- parts.port = null;
- } else {
- t = string.substring(0, pos).split(':');
- parts.hostname = t[0] || null;
- parts.port = t[1] || null;
- }
- }
-
- if (parts.hostname && string.substring(pos).charAt(0) !== '/') {
- pos++;
- string = '/' + string;
- }
-
- if (parts.preventInvalidHostname) {
- URI.ensureValidHostname(parts.hostname, parts.protocol);
- }
-
- if (parts.port) {
- URI.ensureValidPort(parts.port);
- }
-
- return string.substring(pos) || '/';
- };
- URI.parseAuthority = function(string, parts) {
- string = URI.parseUserinfo(string, parts);
- return URI.parseHost(string, parts);
- };
- URI.parseUserinfo = function(string, parts) {
- // extract username:password
- var _string = string
- var firstBackSlash = string.indexOf('\\');
- if (firstBackSlash !== -1) {
- string = string.replace(/\\/g, '/')
- }
- var firstSlash = string.indexOf('/');
- var pos = string.lastIndexOf('@', firstSlash > -1 ? firstSlash : string.length - 1);
- var t;
-
- // authority@ must come before /path or \path
- if (pos > -1 && (firstSlash === -1 || pos < firstSlash)) {
- t = string.substring(0, pos).split(':');
- parts.username = t[0] ? URI.decode(t[0]) : null;
- t.shift();
- parts.password = t[0] ? URI.decode(t.join(':')) : null;
- string = _string.substring(pos + 1);
- } else {
- parts.username = null;
- parts.password = null;
- }
-
- return string;
- };
- URI.parseQuery = function(string, escapeQuerySpace) {
- if (!string) {
- return {};
- }
-
- // throw out the funky business - "?"[name"="value"&"]+
- string = string.replace(/&+/g, '&').replace(/^\?*&*|&+$/g, '');
-
- if (!string) {
- return {};
- }
-
- var items = {};
- var splits = string.split('&');
- var length = splits.length;
- var v, name, value;
-
- for (var i = 0; i < length; i++) {
- v = splits[i].split('=');
- name = URI.decodeQuery(v.shift(), escapeQuerySpace);
- // no "=" is null according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#collect-url-parameters
- value = v.length ? URI.decodeQuery(v.join('='), escapeQuerySpace) : null;
-
- if (name === '__proto__') {
- // ignore attempt at exploiting JavaScript internals
- continue;
- } else if (hasOwn.call(items, name)) {
- if (typeof items[name] === 'string' || items[name] === null) {
- items[name] = [items[name]];
- }
-
- items[name].push(value);
- } else {
- items[name] = value;
- }
- }
-
- return items;
- };
-
- URI.build = function(parts) {
- var t = '';
- var requireAbsolutePath = false
-
- if (parts.protocol) {
- t += parts.protocol + ':';
- }
-
- if (!parts.urn && (t || parts.hostname)) {
- t += '//';
- requireAbsolutePath = true
- }
-
- t += (URI.buildAuthority(parts) || '');
-
- if (typeof parts.path === 'string') {
- if (parts.path.charAt(0) !== '/' && requireAbsolutePath) {
- t += '/';
- }
-
- t += parts.path;
- }
-
- if (typeof parts.query === 'string' && parts.query) {
- t += '?' + parts.query;
- }
-
- if (typeof parts.fragment === 'string' && parts.fragment) {
- t += '#' + parts.fragment;
- }
- return t;
- };
- URI.buildHost = function(parts) {
- var t = '';
-
- if (!parts.hostname) {
- return '';
- } else if (URI.ip6_expression.test(parts.hostname)) {
- t += '[' + parts.hostname + ']';
- } else {
- t += parts.hostname;
- }
-
- if (parts.port) {
- t += ':' + parts.port;
- }
-
- return t;
- };
- URI.buildAuthority = function(parts) {
- return URI.buildUserinfo(parts) + URI.buildHost(parts);
- };
- URI.buildUserinfo = function(parts) {
- var t = '';
-
- if (parts.username) {
- t += URI.encode(parts.username);
- }
-
- if (parts.password) {
- t += ':' + URI.encode(parts.password);
- }
-
- if (t) {
- t += '@';
- }
-
- return t;
- };
- URI.buildQuery = function(data, duplicateQueryParameters, escapeQuerySpace) {
- // according to http://tools.ietf.org/html/rfc3986 or http://labs.apache.org/webarch/uri/rfc/rfc3986.html
- // being »-._~!$&'()*+,;=:@/?« %HEX and alnum are allowed
- // the RFC explicitly states ?/foo being a valid use case, no mention of parameter syntax!
- // URI.js treats the query string as being application/x-www-form-urlencoded
- // see http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type
-
- var t = '';
- var unique, key, i, length;
- for (key in data) {
- if (key === '__proto__') {
- // ignore attempt at exploiting JavaScript internals
- continue;
- } else if (hasOwn.call(data, key)) {
- if (isArray(data[key])) {
- unique = {};
- for (i = 0, length = data[key].length; i < length; i++) {
- if (data[key][i] !== undefined && unique[data[key][i] + ''] === undefined) {
- t += '&' + URI.buildQueryParameter(key, data[key][i], escapeQuerySpace);
- if (duplicateQueryParameters !== true) {
- unique[data[key][i] + ''] = true;
- }
- }
- }
- } else if (data[key] !== undefined) {
- t += '&' + URI.buildQueryParameter(key, data[key], escapeQuerySpace);
- }
- }
- }
-
- return t.substring(1);
- };
- URI.buildQueryParameter = function(name, value, escapeQuerySpace) {
- // http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type -- application/x-www-form-urlencoded
- // don't append "=" for null values, according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#url-parameter-serialization
- return URI.encodeQuery(name, escapeQuerySpace) + (value !== null ? '=' + URI.encodeQuery(value, escapeQuerySpace) : '');
- };
-
- URI.addQuery = function(data, name, value) {
- if (typeof name === 'object') {
- for (var key in name) {
- if (hasOwn.call(name, key)) {
- URI.addQuery(data, key, name[key]);
- }
- }
- } else if (typeof name === 'string') {
- if (data[name] === undefined) {
- data[name] = value;
- return;
- } else if (typeof data[name] === 'string') {
- data[name] = [data[name]];
- }
-
- if (!isArray(value)) {
- value = [value];
- }
-
- data[name] = (data[name] || []).concat(value);
- } else {
- throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');
- }
- };
-
- URI.setQuery = function(data, name, value) {
- if (typeof name === 'object') {
- for (var key in name) {
- if (hasOwn.call(name, key)) {
- URI.setQuery(data, key, name[key]);
- }
- }
- } else if (typeof name === 'string') {
- data[name] = value === undefined ? null : value;
- } else {
- throw new TypeError('URI.setQuery() accepts an object, string as the name parameter');
- }
- };
-
- URI.removeQuery = function(data, name, value) {
- var i, length, key;
-
- if (isArray(name)) {
- for (i = 0, length = name.length; i < length; i++) {
- data[name[i]] = undefined;
- }
- } else if (getType(name) === 'RegExp') {
- for (key in data) {
- if (name.test(key)) {
- data[key] = undefined;
- }
- }
- } else if (typeof name === 'object') {
- for (key in name) {
- if (hasOwn.call(name, key)) {
- URI.removeQuery(data, key, name[key]);
- }
- }
- } else if (typeof name === 'string') {
- if (value !== undefined) {
- if (getType(value) === 'RegExp') {
- if (!isArray(data[name]) && value.test(data[name])) {
- data[name] = undefined;
- } else {
- data[name] = filterArrayValues(data[name], value);
- }
- } else if (data[name] === String(value) && (!isArray(value) || value.length === 1)) {
- data[name] = undefined;
- } else if (isArray(data[name])) {
- data[name] = filterArrayValues(data[name], value);
- }
- } else {
- data[name] = undefined;
- }
- } else {
- throw new TypeError('URI.removeQuery() accepts an object, string, RegExp as the first parameter');
- }
- };
- URI.hasQuery = function(data, name, value, withinArray) {
- switch (getType(name)) {
- case 'String':
- // Nothing to do here
- break;
-
- case 'RegExp':
- for (var key in data) {
- if (hasOwn.call(data, key)) {
- if (name.test(key) && (value === undefined || URI.hasQuery(data, key, value))) {
- return true;
- }
- }
- }
-
- return false;
-
- case 'Object':
- for (var _key in name) {
- if (hasOwn.call(name, _key)) {
- if (!URI.hasQuery(data, _key, name[_key])) {
- return false;
- }
- }
- }
-
- return true;
-
- default:
- throw new TypeError('URI.hasQuery() accepts a string, regular expression or object as the name parameter');
- }
-
- switch (getType(value)) {
- case 'Undefined':
- // true if exists (but may be empty)
- return name in data; // data[name] !== undefined;
-
- case 'Boolean':
- // true if exists and non-empty
- var _booly = Boolean(isArray(data[name]) ? data[name].length : data[name]);
- return value === _booly;
-
- case 'Function':
- // allow complex comparison
- return !!value(data[name], name, data);
-
- case 'Array':
- if (!isArray(data[name])) {
- return false;
- }
-
- var op = withinArray ? arrayContains : arraysEqual;
- return op(data[name], value);
-
- case 'RegExp':
- if (!isArray(data[name])) {
- return Boolean(data[name] && data[name].match(value));
- }
-
- if (!withinArray) {
- return false;
- }
-
- return arrayContains(data[name], value);
-
- case 'Number':
- value = String(value);
- /* falls through */
- case 'String':
- if (!isArray(data[name])) {
- return data[name] === value;
- }
-
- if (!withinArray) {
- return false;
- }
-
- return arrayContains(data[name], value);
-
- default:
- throw new TypeError('URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter');
- }
- };
-
-
- URI.joinPaths = function() {
- var input = [];
- var segments = [];
- var nonEmptySegments = 0;
-
- for (var i = 0; i < arguments.length; i++) {
- var url = new URI(arguments[i]);
- input.push(url);
- var _segments = url.segment();
- for (var s = 0; s < _segments.length; s++) {
- if (typeof _segments[s] === 'string') {
- segments.push(_segments[s]);
- }
-
- if (_segments[s]) {
- nonEmptySegments++;
- }
- }
- }
-
- if (!segments.length || !nonEmptySegments) {
- return new URI('');
- }
-
- var uri = new URI('').segment(segments);
-
- if (input[0].path() === '' || input[0].path().slice(0, 1) === '/') {
- uri.path('/' + uri.path());
- }
-
- return uri.normalize();
- };
-
- URI.commonPath = function(one, two) {
- var length = Math.min(one.length, two.length);
- var pos;
-
- // find first non-matching character
- for (pos = 0; pos < length; pos++) {
- if (one.charAt(pos) !== two.charAt(pos)) {
- pos--;
- break;
- }
- }
-
- if (pos < 1) {
- return one.charAt(0) === two.charAt(0) && one.charAt(0) === '/' ? '/' : '';
- }
-
- // revert to last /
- if (one.charAt(pos) !== '/' || two.charAt(pos) !== '/') {
- pos = one.substring(0, pos).lastIndexOf('/');
- }
-
- return one.substring(0, pos + 1);
- };
-
- URI.withinString = function(string, callback, options) {
- options || (options = {});
- var _start = options.start || URI.findUri.start;
- var _end = options.end || URI.findUri.end;
- var _trim = options.trim || URI.findUri.trim;
- var _parens = options.parens || URI.findUri.parens;
- var _attributeOpen = /[a-z0-9-]=["']?$/i;
-
- _start.lastIndex = 0;
- while (true) {
- var match = _start.exec(string);
- if (!match) {
- break;
- }
-
- var start = match.index;
- if (options.ignoreHtml) {
- // attribut(e=["']?$)
- var attributeOpen = string.slice(Math.max(start - 3, 0), start);
- if (attributeOpen && _attributeOpen.test(attributeOpen)) {
- continue;
- }
- }
-
- var end = start + string.slice(start).search(_end);
- var slice = string.slice(start, end);
- // make sure we include well balanced parens
- var parensEnd = -1;
- while (true) {
- var parensMatch = _parens.exec(slice);
- if (!parensMatch) {
- break;
- }
-
- var parensMatchEnd = parensMatch.index + parensMatch[0].length;
- parensEnd = Math.max(parensEnd, parensMatchEnd);
- }
-
- if (parensEnd > -1) {
- slice = slice.slice(0, parensEnd) + slice.slice(parensEnd).replace(_trim, '');
- } else {
- slice = slice.replace(_trim, '');
- }
-
- if (slice.length <= match[0].length) {
- // the extract only contains the starting marker of a URI,
- // e.g. "www" or "http://"
- continue;
- }
-
- if (options.ignore && options.ignore.test(slice)) {
- continue;
- }
-
- end = start + slice.length;
- var result = callback(slice, start, end, string);
- if (result === undefined) {
- _start.lastIndex = end;
- continue;
- }
-
- result = String(result);
- string = string.slice(0, start) + result + string.slice(end);
- _start.lastIndex = start + result.length;
- }
-
- _start.lastIndex = 0;
- return string;
- };
-
- URI.ensureValidHostname = function(v, protocol) {
- // Theoretically URIs allow percent-encoding in Hostnames (according to RFC 3986)
- // they are not part of DNS and therefore ignored by URI.js
-
- var hasHostname = !!v; // not null and not an empty string
- var hasProtocol = !!protocol;
- var rejectEmptyHostname = false;
-
- if (hasProtocol) {
- rejectEmptyHostname = arrayContains(URI.hostProtocols, protocol);
- }
-
- if (rejectEmptyHostname && !hasHostname) {
- throw new TypeError('Hostname cannot be empty, if protocol is ' + protocol);
- } else if (v && v.match(URI.invalid_hostname_characters)) {
- // test punycode
- if (!punycode) {
- throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');
- }
- if (punycode.toASCII(v).match(URI.invalid_hostname_characters)) {
- throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-:_]');
- }
- }
- };
-
- URI.ensureValidPort = function (v) {
- if (!v) {
- return;
- }
-
- var port = Number(v);
- if (isInteger(port) && (port > 0) && (port < 65536)) {
- return;
- }
-
- throw new TypeError('Port "' + v + '" is not a valid port');
- };
-
- // noConflict
- URI.noConflict = function(removeAll) {
- if (removeAll) {
- var unconflicted = {
- URI: this.noConflict()
- };
-
- if (root.URITemplate && typeof root.URITemplate.noConflict === 'function') {
- unconflicted.URITemplate = root.URITemplate.noConflict();
- }
-
- if (root.IPv6 && typeof root.IPv6.noConflict === 'function') {
- unconflicted.IPv6 = root.IPv6.noConflict();
- }
-
- if (root.SecondLevelDomains && typeof root.SecondLevelDomains.noConflict === 'function') {
- unconflicted.SecondLevelDomains = root.SecondLevelDomains.noConflict();
- }
-
- return unconflicted;
- } else if (root.URI === this) {
- root.URI = _URI;
- }
-
- return this;
- };
-
- p.build = function(deferBuild) {
- if (deferBuild === true) {
- this._deferred_build = true;
- } else if (deferBuild === undefined || this._deferred_build) {
- this._string = URI.build(this._parts);
- this._deferred_build = false;
- }
-
- return this;
- };
-
- p.clone = function() {
- return new URI(this);
- };
-
- p.valueOf = p.toString = function() {
- return this.build(false)._string;
- };
-
-
- function generateSimpleAccessor(_part){
- return function(v, build) {
- if (v === undefined) {
- return this._parts[_part] || '';
- } else {
- this._parts[_part] = v || null;
- this.build(!build);
- return this;
- }
- };
- }
-
- function generatePrefixAccessor(_part, _key){
- return function(v, build) {
- if (v === undefined) {
- return this._parts[_part] || '';
- } else {
- if (v !== null) {
- v = v + '';
- if (v.charAt(0) === _key) {
- v = v.substring(1);
- }
- }
-
- this._parts[_part] = v;
- this.build(!build);
- return this;
- }
- };
- }
-
- p.protocol = generateSimpleAccessor('protocol');
- p.username = generateSimpleAccessor('username');
- p.password = generateSimpleAccessor('password');
- p.hostname = generateSimpleAccessor('hostname');
- p.port = generateSimpleAccessor('port');
- p.query = generatePrefixAccessor('query', '?');
- p.fragment = generatePrefixAccessor('fragment', '#');
-
- p.search = function(v, build) {
- var t = this.query(v, build);
- return typeof t === 'string' && t.length ? ('?' + t) : t;
- };
- p.hash = function(v, build) {
- var t = this.fragment(v, build);
- return typeof t === 'string' && t.length ? ('#' + t) : t;
- };
-
- p.pathname = function(v, build) {
- if (v === undefined || v === true) {
- var res = this._parts.path || (this._parts.hostname ? '/' : '');
- return v ? (this._parts.urn ? URI.decodeUrnPath : URI.decodePath)(res) : res;
- } else {
- if (this._parts.urn) {
- this._parts.path = v ? URI.recodeUrnPath(v) : '';
- } else {
- this._parts.path = v ? URI.recodePath(v) : '/';
- }
- this.build(!build);
- return this;
- }
- };
- p.path = p.pathname;
- p.href = function(href, build) {
- var key;
-
- if (href === undefined) {
- return this.toString();
- }
-
- this._string = '';
- this._parts = URI._parts();
-
- var _URI = href instanceof URI;
- var _object = typeof href === 'object' && (href.hostname || href.path || href.pathname);
- if (href.nodeName) {
- var attribute = URI.getDomAttribute(href);
- href = href[attribute] || '';
- _object = false;
- }
-
- // window.location is reported to be an object, but it's not the sort
- // of object we're looking for:
- // * location.protocol ends with a colon
- // * location.query != object.search
- // * location.hash != object.fragment
- // simply serializing the unknown object should do the trick
- // (for location, not for everything...)
- if (!_URI && _object && href.pathname !== undefined) {
- href = href.toString();
- }
-
- if (typeof href === 'string' || href instanceof String) {
- this._parts = URI.parse(String(href), this._parts);
- } else if (_URI || _object) {
- var src = _URI ? href._parts : href;
- for (key in src) {
- if (key === 'query') { continue; }
- if (hasOwn.call(this._parts, key)) {
- this._parts[key] = src[key];
- }
- }
- if (src.query) {
- this.query(src.query, false);
- }
- } else {
- throw new TypeError('invalid input');
- }
-
- this.build(!build);
- return this;
- };
-
- // identification accessors
- p.is = function(what) {
- var ip = false;
- var ip4 = false;
- var ip6 = false;
- var name = false;
- var sld = false;
- var idn = false;
- var punycode = false;
- var relative = !this._parts.urn;
-
- if (this._parts.hostname) {
- relative = false;
- ip4 = URI.ip4_expression.test(this._parts.hostname);
- ip6 = URI.ip6_expression.test(this._parts.hostname);
- ip = ip4 || ip6;
- name = !ip;
- sld = name && SLD && SLD.has(this._parts.hostname);
- idn = name && URI.idn_expression.test(this._parts.hostname);
- punycode = name && URI.punycode_expression.test(this._parts.hostname);
- }
-
- switch (what.toLowerCase()) {
- case 'relative':
- return relative;
-
- case 'absolute':
- return !relative;
-
- // hostname identification
- case 'domain':
- case 'name':
- return name;
-
- case 'sld':
- return sld;
-
- case 'ip':
- return ip;
-
- case 'ip4':
- case 'ipv4':
- case 'inet4':
- return ip4;
-
- case 'ip6':
- case 'ipv6':
- case 'inet6':
- return ip6;
-
- case 'idn':
- return idn;
-
- case 'url':
- return !this._parts.urn;
-
- case 'urn':
- return !!this._parts.urn;
-
- case 'punycode':
- return punycode;
- }
-
- return null;
- };
-
- // component specific input validation
- var _protocol = p.protocol;
- var _port = p.port;
- var _hostname = p.hostname;
-
- p.protocol = function(v, build) {
- if (v) {
- // accept trailing ://
- v = v.replace(/:(\/\/)?$/, '');
-
- if (!v.match(URI.protocol_expression)) {
- throw new TypeError('Protocol "' + v + '" contains characters other than [A-Z0-9.+-] or doesn\'t start with [A-Z]');
- }
- }
-
- return _protocol.call(this, v, build);
- };
- p.scheme = p.protocol;
- p.port = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (v !== undefined) {
- if (v === 0) {
- v = null;
- }
-
- if (v) {
- v += '';
- if (v.charAt(0) === ':') {
- v = v.substring(1);
- }
-
- URI.ensureValidPort(v);
- }
- }
- return _port.call(this, v, build);
- };
- p.hostname = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (v !== undefined) {
- var x = { preventInvalidHostname: this._parts.preventInvalidHostname };
- var res = URI.parseHost(v, x);
- if (res !== '/') {
- throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-]');
- }
-
- v = x.hostname;
- if (this._parts.preventInvalidHostname) {
- URI.ensureValidHostname(v, this._parts.protocol);
- }
- }
-
- return _hostname.call(this, v, build);
- };
-
- // compound accessors
- p.origin = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (v === undefined) {
- var protocol = this.protocol();
- var authority = this.authority();
- if (!authority) {
- return '';
- }
-
- return (protocol ? protocol + '://' : '') + this.authority();
- } else {
- var origin = URI(v);
- this
- .protocol(origin.protocol())
- .authority(origin.authority())
- .build(!build);
- return this;
- }
- };
- p.host = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (v === undefined) {
- return this._parts.hostname ? URI.buildHost(this._parts) : '';
- } else {
- var res = URI.parseHost(v, this._parts);
- if (res !== '/') {
- throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-]');
- }
-
- this.build(!build);
- return this;
- }
- };
- p.authority = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (v === undefined) {
- return this._parts.hostname ? URI.buildAuthority(this._parts) : '';
- } else {
- var res = URI.parseAuthority(v, this._parts);
- if (res !== '/') {
- throw new TypeError('Hostname "' + v + '" contains characters other than [A-Z0-9.-]');
- }
-
- this.build(!build);
- return this;
- }
- };
- p.userinfo = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (v === undefined) {
- var t = URI.buildUserinfo(this._parts);
- return t ? t.substring(0, t.length -1) : t;
- } else {
- if (v[v.length-1] !== '@') {
- v += '@';
- }
-
- URI.parseUserinfo(v, this._parts);
- this.build(!build);
- return this;
- }
- };
- p.resource = function(v, build) {
- var parts;
-
- if (v === undefined) {
- return this.path() + this.search() + this.hash();
- }
-
- parts = URI.parse(v);
- this._parts.path = parts.path;
- this._parts.query = parts.query;
- this._parts.fragment = parts.fragment;
- this.build(!build);
- return this;
- };
-
- // fraction accessors
- p.subdomain = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- // convenience, return "www" from "www.example.org"
- if (v === undefined) {
- if (!this._parts.hostname || this.is('IP')) {
- return '';
- }
-
- // grab domain and add another segment
- var end = this._parts.hostname.length - this.domain().length - 1;
- return this._parts.hostname.substring(0, end) || '';
- } else {
- var e = this._parts.hostname.length - this.domain().length;
- var sub = this._parts.hostname.substring(0, e);
- var replace = new RegExp('^' + escapeRegEx(sub));
-
- if (v && v.charAt(v.length - 1) !== '.') {
- v += '.';
- }
-
- if (v.indexOf(':') !== -1) {
- throw new TypeError('Domains cannot contain colons');
- }
-
- if (v) {
- URI.ensureValidHostname(v, this._parts.protocol);
- }
-
- this._parts.hostname = this._parts.hostname.replace(replace, v);
- this.build(!build);
- return this;
- }
- };
- p.domain = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (typeof v === 'boolean') {
- build = v;
- v = undefined;
- }
-
- // convenience, return "example.org" from "www.example.org"
- if (v === undefined) {
- if (!this._parts.hostname || this.is('IP')) {
- return '';
- }
-
- // if hostname consists of 1 or 2 segments, it must be the domain
- var t = this._parts.hostname.match(/\./g);
- if (t && t.length < 2) {
- return this._parts.hostname;
- }
-
- // grab tld and add another segment
- var end = this._parts.hostname.length - this.tld(build).length - 1;
- end = this._parts.hostname.lastIndexOf('.', end -1) + 1;
- return this._parts.hostname.substring(end) || '';
- } else {
- if (!v) {
- throw new TypeError('cannot set domain empty');
- }
-
- if (v.indexOf(':') !== -1) {
- throw new TypeError('Domains cannot contain colons');
- }
-
- URI.ensureValidHostname(v, this._parts.protocol);
-
- if (!this._parts.hostname || this.is('IP')) {
- this._parts.hostname = v;
- } else {
- var replace = new RegExp(escapeRegEx(this.domain()) + '$');
- this._parts.hostname = this._parts.hostname.replace(replace, v);
- }
-
- this.build(!build);
- return this;
- }
- };
- p.tld = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (typeof v === 'boolean') {
- build = v;
- v = undefined;
- }
-
- // return "org" from "www.example.org"
- if (v === undefined) {
- if (!this._parts.hostname || this.is('IP')) {
- return '';
- }
-
- var pos = this._parts.hostname.lastIndexOf('.');
- var tld = this._parts.hostname.substring(pos + 1);
-
- if (build !== true && SLD && SLD.list[tld.toLowerCase()]) {
- return SLD.get(this._parts.hostname) || tld;
- }
-
- return tld;
- } else {
- var replace;
-
- if (!v) {
- throw new TypeError('cannot set TLD empty');
- } else if (v.match(/[^a-zA-Z0-9-]/)) {
- if (SLD && SLD.is(v)) {
- replace = new RegExp(escapeRegEx(this.tld()) + '$');
- this._parts.hostname = this._parts.hostname.replace(replace, v);
- } else {
- throw new TypeError('TLD "' + v + '" contains characters other than [A-Z0-9]');
- }
- } else if (!this._parts.hostname || this.is('IP')) {
- throw new ReferenceError('cannot set TLD on non-domain host');
- } else {
- replace = new RegExp(escapeRegEx(this.tld()) + '$');
- this._parts.hostname = this._parts.hostname.replace(replace, v);
- }
-
- this.build(!build);
- return this;
- }
- };
- p.directory = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (v === undefined || v === true) {
- if (!this._parts.path && !this._parts.hostname) {
- return '';
- }
-
- if (this._parts.path === '/') {
- return '/';
- }
-
- var end = this._parts.path.length - this.filename().length - 1;
- var res = this._parts.path.substring(0, end) || (this._parts.hostname ? '/' : '');
-
- return v ? URI.decodePath(res) : res;
-
- } else {
- var e = this._parts.path.length - this.filename().length;
- var directory = this._parts.path.substring(0, e);
- var replace = new RegExp('^' + escapeRegEx(directory));
-
- // fully qualifier directories begin with a slash
- if (!this.is('relative')) {
- if (!v) {
- v = '/';
- }
-
- if (v.charAt(0) !== '/') {
- v = '/' + v;
- }
- }
-
- // directories always end with a slash
- if (v && v.charAt(v.length - 1) !== '/') {
- v += '/';
- }
-
- v = URI.recodePath(v);
- this._parts.path = this._parts.path.replace(replace, v);
- this.build(!build);
- return this;
- }
- };
- p.filename = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (typeof v !== 'string') {
- if (!this._parts.path || this._parts.path === '/') {
- return '';
- }
-
- var pos = this._parts.path.lastIndexOf('/');
- var res = this._parts.path.substring(pos+1);
-
- return v ? URI.decodePathSegment(res) : res;
- } else {
- var mutatedDirectory = false;
-
- if (v.charAt(0) === '/') {
- v = v.substring(1);
- }
-
- if (v.match(/\.?\//)) {
- mutatedDirectory = true;
- }
-
- var replace = new RegExp(escapeRegEx(this.filename()) + '$');
- v = URI.recodePath(v);
- this._parts.path = this._parts.path.replace(replace, v);
-
- if (mutatedDirectory) {
- this.normalizePath(build);
- } else {
- this.build(!build);
- }
-
- return this;
- }
- };
- p.suffix = function(v, build) {
- if (this._parts.urn) {
- return v === undefined ? '' : this;
- }
-
- if (v === undefined || v === true) {
- if (!this._parts.path || this._parts.path === '/') {
- return '';
- }
-
- var filename = this.filename();
- var pos = filename.lastIndexOf('.');
- var s, res;
-
- if (pos === -1) {
- return '';
- }
-
- // suffix may only contain alnum characters (yup, I made this up.)
- s = filename.substring(pos+1);
- res = (/^[a-z0-9%]+$/i).test(s) ? s : '';
- return v ? URI.decodePathSegment(res) : res;
- } else {
- if (v.charAt(0) === '.') {
- v = v.substring(1);
- }
-
- var suffix = this.suffix();
- var replace;
-
- if (!suffix) {
- if (!v) {
- return this;
- }
-
- this._parts.path += '.' + URI.recodePath(v);
- } else if (!v) {
- replace = new RegExp(escapeRegEx('.' + suffix) + '$');
- } else {
- replace = new RegExp(escapeRegEx(suffix) + '$');
- }
-
- if (replace) {
- v = URI.recodePath(v);
- this._parts.path = this._parts.path.replace(replace, v);
- }
-
- this.build(!build);
- return this;
- }
- };
- p.segment = function(segment, v, build) {
- var separator = this._parts.urn ? ':' : '/';
- var path = this.path();
- var absolute = path.substring(0, 1) === '/';
- var segments = path.split(separator);
-
- if (segment !== undefined && typeof segment !== 'number') {
- build = v;
- v = segment;
- segment = undefined;
- }
-
- if (segment !== undefined && typeof segment !== 'number') {
- throw new Error('Bad segment "' + segment + '", must be 0-based integer');
- }
-
- if (absolute) {
- segments.shift();
- }
-
- if (segment < 0) {
- // allow negative indexes to address from the end
- segment = Math.max(segments.length + segment, 0);
- }
-
- if (v === undefined) {
- /*jshint laxbreak: true */
- return segment === undefined
- ? segments
- : segments[segment];
- /*jshint laxbreak: false */
- } else if (segment === null || segments[segment] === undefined) {
- if (isArray(v)) {
- segments = [];
- // collapse empty elements within array
- for (var i=0, l=v.length; i < l; i++) {
- if (!v[i].length && (!segments.length || !segments[segments.length -1].length)) {
- continue;
- }
-
- if (segments.length && !segments[segments.length -1].length) {
- segments.pop();
- }
-
- segments.push(trimSlashes(v[i]));
- }
- } else if (v || typeof v === 'string') {
- v = trimSlashes(v);
- if (segments[segments.length -1] === '') {
- // empty trailing elements have to be overwritten
- // to prevent results such as /foo//bar
- segments[segments.length -1] = v;
- } else {
- segments.push(v);
- }
- }
- } else {
- if (v) {
- segments[segment] = trimSlashes(v);
- } else {
- segments.splice(segment, 1);
- }
- }
-
- if (absolute) {
- segments.unshift('');
- }
-
- return this.path(segments.join(separator), build);
- };
- p.segmentCoded = function(segment, v, build) {
- var segments, i, l;
-
- if (typeof segment !== 'number') {
- build = v;
- v = segment;
- segment = undefined;
- }
-
- if (v === undefined) {
- segments = this.segment(segment, v, build);
- if (!isArray(segments)) {
- segments = segments !== undefined ? URI.decode(segments) : undefined;
- } else {
- for (i = 0, l = segments.length; i < l; i++) {
- segments[i] = URI.decode(segments[i]);
- }
- }
-
- return segments;
- }
-
- if (!isArray(v)) {
- v = (typeof v === 'string' || v instanceof String) ? URI.encode(v) : v;
- } else {
- for (i = 0, l = v.length; i < l; i++) {
- v[i] = URI.encode(v[i]);
- }
- }
-
- return this.segment(segment, v, build);
- };
-
- // mutating query string
- var q = p.query;
- p.query = function(v, build) {
- if (v === true) {
- return URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);
- } else if (typeof v === 'function') {
- var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);
- var result = v.call(this, data);
- this._parts.query = URI.buildQuery(result || data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);
- this.build(!build);
- return this;
- } else if (v !== undefined && typeof v !== 'string') {
- this._parts.query = URI.buildQuery(v, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);
- this.build(!build);
- return this;
- } else {
- return q.call(this, v, build);
- }
- };
- p.setQuery = function(name, value, build) {
- var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);
-
- if (typeof name === 'string' || name instanceof String) {
- data[name] = value !== undefined ? value : null;
- } else if (typeof name === 'object') {
- for (var key in name) {
- if (hasOwn.call(name, key)) {
- data[key] = name[key];
- }
- }
- } else {
- throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');
- }
-
- this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);
- if (typeof name !== 'string') {
- build = value;
- }
-
- this.build(!build);
- return this;
- };
- p.addQuery = function(name, value, build) {
- var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);
- URI.addQuery(data, name, value === undefined ? null : value);
- this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);
- if (typeof name !== 'string') {
- build = value;
- }
-
- this.build(!build);
- return this;
- };
- p.removeQuery = function(name, value, build) {
- var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);
- URI.removeQuery(data, name, value);
- this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);
- if (typeof name !== 'string') {
- build = value;
- }
-
- this.build(!build);
- return this;
- };
- p.hasQuery = function(name, value, withinArray) {
- var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);
- return URI.hasQuery(data, name, value, withinArray);
- };
- p.setSearch = p.setQuery;
- p.addSearch = p.addQuery;
- p.removeSearch = p.removeQuery;
- p.hasSearch = p.hasQuery;
-
- // sanitizing URLs
- p.normalize = function() {
- if (this._parts.urn) {
- return this
- .normalizeProtocol(false)
- .normalizePath(false)
- .normalizeQuery(false)
- .normalizeFragment(false)
- .build();
- }
-
- return this
- .normalizeProtocol(false)
- .normalizeHostname(false)
- .normalizePort(false)
- .normalizePath(false)
- .normalizeQuery(false)
- .normalizeFragment(false)
- .build();
- };
- p.normalizeProtocol = function(build) {
- if (typeof this._parts.protocol === 'string') {
- this._parts.protocol = this._parts.protocol.toLowerCase();
- this.build(!build);
- }
-
- return this;
- };
- p.normalizeHostname = function(build) {
- if (this._parts.hostname) {
- if (this.is('IDN') && punycode) {
- this._parts.hostname = punycode.toASCII(this._parts.hostname);
- } else if (this.is('IPv6') && IPv6) {
- this._parts.hostname = IPv6.best(this._parts.hostname);
- }
-
- this._parts.hostname = this._parts.hostname.toLowerCase();
- this.build(!build);
- }
-
- return this;
- };
- p.normalizePort = function(build) {
- // remove port of it's the protocol's default
- if (typeof this._parts.protocol === 'string' && this._parts.port === URI.defaultPorts[this._parts.protocol]) {
- this._parts.port = null;
- this.build(!build);
- }
-
- return this;
- };
- p.normalizePath = function(build) {
- var _path = this._parts.path;
- if (!_path) {
- return this;
- }
-
- if (this._parts.urn) {
- this._parts.path = URI.recodeUrnPath(this._parts.path);
- this.build(!build);
- return this;
- }
-
- if (this._parts.path === '/') {
- return this;
- }
-
- _path = URI.recodePath(_path);
-
- var _was_relative;
- var _leadingParents = '';
- var _parent, _pos;
-
- // handle relative paths
- if (_path.charAt(0) !== '/') {
- _was_relative = true;
- _path = '/' + _path;
- }
-
- // handle relative files (as opposed to directories)
- if (_path.slice(-3) === '/..' || _path.slice(-2) === '/.') {
- _path += '/';
- }
-
- // resolve simples
- _path = _path
- .replace(/(\/(\.\/)+)|(\/\.$)/g, '/')
- .replace(/\/{2,}/g, '/');
-
- // remember leading parents
- if (_was_relative) {
- _leadingParents = _path.substring(1).match(/^(\.\.\/)+/) || '';
- if (_leadingParents) {
- _leadingParents = _leadingParents[0];
- }
- }
-
- // resolve parents
- while (true) {
- _parent = _path.search(/\/\.\.(\/|$)/);
- if (_parent === -1) {
- // no more ../ to resolve
- break;
- } else if (_parent === 0) {
- // top level cannot be relative, skip it
- _path = _path.substring(3);
- continue;
- }
-
- _pos = _path.substring(0, _parent).lastIndexOf('/');
- if (_pos === -1) {
- _pos = _parent;
- }
- _path = _path.substring(0, _pos) + _path.substring(_parent + 3);
- }
-
- // revert to relative
- if (_was_relative && this.is('relative')) {
- _path = _leadingParents + _path.substring(1);
- }
-
- this._parts.path = _path;
- this.build(!build);
- return this;
- };
- p.normalizePathname = p.normalizePath;
- p.normalizeQuery = function(build) {
- if (typeof this._parts.query === 'string') {
- if (!this._parts.query.length) {
- this._parts.query = null;
- } else {
- this.query(URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace));
- }
-
- this.build(!build);
- }
-
- return this;
- };
- p.normalizeFragment = function(build) {
- if (!this._parts.fragment) {
- this._parts.fragment = null;
- this.build(!build);
- }
-
- return this;
- };
- p.normalizeSearch = p.normalizeQuery;
- p.normalizeHash = p.normalizeFragment;
-
- p.iso8859 = function() {
- // expect unicode input, iso8859 output
- var e = URI.encode;
- var d = URI.decode;
-
- URI.encode = escape;
- URI.decode = decodeURIComponent;
- try {
- this.normalize();
- } finally {
- URI.encode = e;
- URI.decode = d;
- }
- return this;
- };
-
- p.unicode = function() {
- // expect iso8859 input, unicode output
- var e = URI.encode;
- var d = URI.decode;
-
- URI.encode = strictEncodeURIComponent;
- URI.decode = unescape;
- try {
- this.normalize();
- } finally {
- URI.encode = e;
- URI.decode = d;
- }
- return this;
- };
-
- p.readable = function() {
- var uri = this.clone();
- // removing username, password, because they shouldn't be displayed according to RFC 3986
- uri.username('').password('').normalize();
- var t = '';
- if (uri._parts.protocol) {
- t += uri._parts.protocol + '://';
- }
-
- if (uri._parts.hostname) {
- if (uri.is('punycode') && punycode) {
- t += punycode.toUnicode(uri._parts.hostname);
- if (uri._parts.port) {
- t += ':' + uri._parts.port;
- }
- } else {
- t += uri.host();
- }
- }
-
- if (uri._parts.hostname && uri._parts.path && uri._parts.path.charAt(0) !== '/') {
- t += '/';
- }
-
- t += uri.path(true);
- if (uri._parts.query) {
- var q = '';
- for (var i = 0, qp = uri._parts.query.split('&'), l = qp.length; i < l; i++) {
- var kv = (qp[i] || '').split('=');
- q += '&' + URI.decodeQuery(kv[0], this._parts.escapeQuerySpace)
- .replace(/&/g, '%26');
-
- if (kv[1] !== undefined) {
- q += '=' + URI.decodeQuery(kv[1], this._parts.escapeQuerySpace)
- .replace(/&/g, '%26');
- }
- }
- t += '?' + q.substring(1);
- }
-
- t += URI.decodeQuery(uri.hash(), true);
- return t;
- };
-
- // resolving relative and absolute URLs
- p.absoluteTo = function(base) {
- var resolved = this.clone();
- var properties = ['protocol', 'username', 'password', 'hostname', 'port'];
- var basedir, i, p;
-
- if (this._parts.urn) {
- throw new Error('URNs do not have any generally defined hierarchical components');
- }
-
- if (!(base instanceof URI)) {
- base = new URI(base);
- }
-
- if (resolved._parts.protocol) {
- // Directly returns even if this._parts.hostname is empty.
- return resolved;
- } else {
- resolved._parts.protocol = base._parts.protocol;
- }
-
- if (this._parts.hostname) {
- return resolved;
- }
-
- for (i = 0; (p = properties[i]); i++) {
- resolved._parts[p] = base._parts[p];
- }
-
- if (!resolved._parts.path) {
- resolved._parts.path = base._parts.path;
- if (!resolved._parts.query) {
- resolved._parts.query = base._parts.query;
- }
- } else {
- if (resolved._parts.path.substring(-2) === '..') {
- resolved._parts.path += '/';
- }
-
- if (resolved.path().charAt(0) !== '/') {
- basedir = base.directory();
- basedir = basedir ? basedir : base.path().indexOf('/') === 0 ? '/' : '';
- resolved._parts.path = (basedir ? (basedir + '/') : '') + resolved._parts.path;
- resolved.normalizePath();
- }
- }
-
- resolved.build();
- return resolved;
- };
- p.relativeTo = function(base) {
- var relative = this.clone().normalize();
- var relativeParts, baseParts, common, relativePath, basePath;
-
- if (relative._parts.urn) {
- throw new Error('URNs do not have any generally defined hierarchical components');
- }
-
- base = new URI(base).normalize();
- relativeParts = relative._parts;
- baseParts = base._parts;
- relativePath = relative.path();
- basePath = base.path();
-
- if (relativePath.charAt(0) !== '/') {
- throw new Error('URI is already relative');
- }
-
- if (basePath.charAt(0) !== '/') {
- throw new Error('Cannot calculate a URI relative to another relative URI');
- }
-
- if (relativeParts.protocol === baseParts.protocol) {
- relativeParts.protocol = null;
- }
-
- if (relativeParts.username !== baseParts.username || relativeParts.password !== baseParts.password) {
- return relative.build();
- }
-
- if (relativeParts.protocol !== null || relativeParts.username !== null || relativeParts.password !== null) {
- return relative.build();
- }
-
- if (relativeParts.hostname === baseParts.hostname && relativeParts.port === baseParts.port) {
- relativeParts.hostname = null;
- relativeParts.port = null;
- } else {
- return relative.build();
- }
-
- if (relativePath === basePath) {
- relativeParts.path = '';
- return relative.build();
- }
-
- // determine common sub path
- common = URI.commonPath(relativePath, basePath);
-
- // If the paths have nothing in common, return a relative URL with the absolute path.
- if (!common) {
- return relative.build();
- }
-
- var parents = baseParts.path
- .substring(common.length)
- .replace(/[^\/]*$/, '')
- .replace(/.*?\//g, '../');
-
- relativeParts.path = (parents + relativeParts.path.substring(common.length)) || './';
-
- return relative.build();
- };
-
- // comparing URIs
- p.equals = function(uri) {
- var one = this.clone();
- var two = new URI(uri);
- var one_map = {};
- var two_map = {};
- var checked = {};
- var one_query, two_query, key;
-
- one.normalize();
- two.normalize();
-
- // exact match
- if (one.toString() === two.toString()) {
- return true;
- }
-
- // extract query string
- one_query = one.query();
- two_query = two.query();
- one.query('');
- two.query('');
-
- // definitely not equal if not even non-query parts match
- if (one.toString() !== two.toString()) {
- return false;
- }
-
- // query parameters have the same length, even if they're permuted
- if (one_query.length !== two_query.length) {
- return false;
- }
-
- one_map = URI.parseQuery(one_query, this._parts.escapeQuerySpace);
- two_map = URI.parseQuery(two_query, this._parts.escapeQuerySpace);
-
- for (key in one_map) {
- if (hasOwn.call(one_map, key)) {
- if (!isArray(one_map[key])) {
- if (one_map[key] !== two_map[key]) {
- return false;
- }
- } else if (!arraysEqual(one_map[key], two_map[key])) {
- return false;
- }
-
- checked[key] = true;
- }
- }
-
- for (key in two_map) {
- if (hasOwn.call(two_map, key)) {
- if (!checked[key]) {
- // two contains a parameter not present in one
- return false;
- }
- }
- }
-
- return true;
- };
-
- // state
- p.preventInvalidHostname = function(v) {
- this._parts.preventInvalidHostname = !!v;
- return this;
- };
-
- p.duplicateQueryParameters = function(v) {
- this._parts.duplicateQueryParameters = !!v;
- return this;
- };
-
- p.escapeQuerySpace = function(v) {
- this._parts.escapeQuerySpace = !!v;
- return this;
- };
-
- return URI;
-}));
diff --git a/Lombiq.DataTables/wwwroot/vendors/urijs/URI.min.js b/Lombiq.DataTables/wwwroot/vendors/urijs/URI.min.js
deleted file mode 100644
index 4a6366075..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/urijs/URI.min.js
+++ /dev/null
@@ -1,93 +0,0 @@
-/*! URI.js v1.19.7 http://medialize.github.io/URI.js/ */
-/* build contains: IPv6.js, punycode.js, SecondLevelDomains.js, URI.js, URITemplate.js */
-(function(r,x){"object"===typeof module&&module.exports?module.exports=x():"function"===typeof define&&define.amd?define(x):r.IPv6=x(r)})(this,function(r){var x=r&&r.IPv6;return{best:function(k){k=k.toLowerCase().split(":");var m=k.length,d=8;""===k[0]&&""===k[1]&&""===k[2]?(k.shift(),k.shift()):""===k[0]&&""===k[1]?k.shift():""===k[m-1]&&""===k[m-2]&&k.pop();m=k.length;-1!==k[m-1].indexOf(".")&&(d=7);var q;for(q=0;qE;E++)if("0"===m[0]&&1E&&(m=h,E=A)):"0"===k[q]&&(p=!0,h=q,A=1);A>E&&(m=h,E=A);1=J&&C>>10&1023|55296),t=56320|t&1023);return C+=g(t)}).join("")}function E(l,t,C){var y=0;l=C?v(l/700):l>>1;for(l+=v(l/t);455c&&(c=0);for(a=0;a=C&&x("invalid-input");var f=l.charCodeAt(c++);f=10>f-48?f-22:26>f-65?f-65:26>f-97?f-97:36;
-(36<=f||f>v((2147483647-y)/e))&&x("overflow");y+=f*e;var n=b<=M?1:b>=M+26?26:b-M;if(fv(2147483647/f)&&x("overflow");e*=f}e=t.length+1;M=E(y-a,e,0==a);v(y/e)>2147483647-J&&x("overflow");J+=v(y/e);y%=e;t.splice(y++,0,J)}return q(t)}function h(l){var t,C,y,J=[];l=d(l);var M=l.length;var a=128;var b=0;var c=72;for(y=0;ye&&J.push(g(e))}for((t=C=J.length)&&J.push("-");t=a&&ev((2147483647-b)/n)&&
-x("overflow");b+=(f-a)*n;a=f;for(y=0;y=c+26?26:f-c;if(ze)-0));z=v(I/z)}J.push(g(z+22+75*(26>z)-0));c=E(b,n,t==C);b=0;++t}++b;++a}return J.join("")}var p="object"==typeof exports&&exports&&!exports.nodeType&&exports,D="object"==typeof module&&module&&!module.nodeType&&module,u="object"==typeof global&&global;if(u.global===u||u.window===u||
-u.self===u)r=u;var K=/^xn--/,F=/[^\x20-\x7E]/,w=/[\x2E\u3002\uFF0E\uFF61]/g,H={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},v=Math.floor,g=String.fromCharCode,B;var G={version:"1.3.2",ucs2:{decode:d,encode:q},decode:A,encode:h,toASCII:function(l){return m(l,function(t){return F.test(t)?"xn--"+h(t):t})},toUnicode:function(l){return m(l,function(t){return K.test(t)?A(t.slice(4).toLowerCase()):
-t})}};if("function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return G});else if(p&&D)if(module.exports==p)D.exports=G;else for(B in G)G.hasOwnProperty(B)&&(p[B]=G[B]);else r.punycode=G})(this);
-(function(r,x){"object"===typeof module&&module.exports?module.exports=x():"function"===typeof define&&define.amd?define(x):r.SecondLevelDomains=x(r)})(this,function(r){var x=r&&r.SecondLevelDomains,k={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",
-bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",
-ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ","do":" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",
-es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",
-id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ","in":" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",
-kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",
-mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",
-ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",
-ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",
-tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",
-rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",
-tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",
-us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",
-org:"ae",de:"com "},has:function(m){var d=m.lastIndexOf(".");if(0>=d||d>=m.length-1)return!1;var q=m.lastIndexOf(".",d-1);if(0>=q||q>=d-1)return!1;var E=k.list[m.slice(d+1)];return E?0<=E.indexOf(" "+m.slice(q+1,d)+" "):!1},is:function(m){var d=m.lastIndexOf(".");if(0>=d||d>=m.length-1||0<=m.lastIndexOf(".",d-1))return!1;var q=k.list[m.slice(d+1)];return q?0<=q.indexOf(" "+m.slice(0,d)+" "):!1},get:function(m){var d=m.lastIndexOf(".");if(0>=d||d>=m.length-1)return null;var q=m.lastIndexOf(".",d-1);
-if(0>=q||q>=d-1)return null;var E=k.list[m.slice(d+1)];return!E||0>E.indexOf(" "+m.slice(q+1,d)+" ")?null:m.slice(q+1)},noConflict:function(){r.SecondLevelDomains===this&&(r.SecondLevelDomains=x);return this}};return k});
-(function(r,x){"object"===typeof module&&module.exports?module.exports=x(require("./punycode"),require("./IPv6"),require("./SecondLevelDomains")):"function"===typeof define&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],x):r.URI=x(r.punycode,r.IPv6,r.SecondLevelDomains,r)})(this,function(r,x,k,m){function d(a,b){var c=1<=arguments.length,e=2<=arguments.length;if(!(this instanceof d))return c?e?new d(a,b):new d(a):new d;if(void 0===a){if(c)throw new TypeError("undefined is not a valid argument for URI");
-a="undefined"!==typeof location?location.href+"":""}if(null===a&&c)throw new TypeError("null is not a valid argument for URI");this.href(a);return void 0!==b?this.absoluteTo(b):this}function q(a){return a.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function E(a){return void 0===a?"Undefined":String(Object.prototype.toString.call(a)).slice(8,-1)}function A(a){return"Array"===E(a)}function h(a,b){var c={},e;if("RegExp"===E(b))c=null;else if(A(b)){var f=0;for(e=b.length;f]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u2018\u2019]))/ig;d.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?\u00ab\u00bb\u201c\u201d\u201e\u2018\u2019]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g};d.defaultPorts={http:"80",https:"443",ftp:"21",
-gopher:"70",ws:"80",wss:"443"};d.hostProtocols=["http","https"];d.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/;d.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"};d.getDomAttribute=function(a){if(a&&a.nodeName){var b=a.nodeName.toLowerCase();if("input"!==b||"image"===a.type)return d.domAttributes[b]}};d.encode=F;d.decode=decodeURIComponent;d.iso8859=
-function(){d.encode=escape;d.decode=unescape};d.unicode=function(){d.encode=F;d.decode=decodeURIComponent};d.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@",
-"%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}};d.encodeQuery=function(a,b){var c=d.encode(a+"");void 0===b&&(b=d.escapeQuerySpace);return b?c.replace(/%20/g,"+"):c};d.decodeQuery=
-function(a,b){a+="";void 0===b&&(b=d.escapeQuerySpace);try{return d.decode(b?a.replace(/\+/g,"%20"):a)}catch(c){return a}};var G={encode:"encode",decode:"decode"},l,t=function(a,b){return function(c){try{return d[b](c+"").replace(d.characters[a][b].expression,function(e){return d.characters[a][b].map[e]})}catch(e){return c}}};for(l in G)d[l+"PathSegment"]=t("pathname",G[l]),d[l+"UrnPathSegment"]=t("urnpath",G[l]);G=function(a,b,c){return function(e){var f=c?function(I){return d[b](d[c](I))}:d[b];
-e=(e+"").split(a);for(var n=0,z=e.length;ne)return a.charAt(0)===b.charAt(0)&&"/"===a.charAt(0)?"/":"";if("/"!==a.charAt(e)||"/"!==b.charAt(e))e=a.substring(0,e).lastIndexOf("/");return a.substring(0,e+1)};d.withinString=function(a,b,c){c||(c={});
-var e=c.start||d.findUri.start,f=c.end||d.findUri.end,n=c.trim||d.findUri.trim,z=c.parens||d.findUri.parens,I=/[a-z0-9-]=["']?$/i;for(e.lastIndex=0;;){var L=e.exec(a);if(!L)break;var P=L.index;if(c.ignoreHtml){var N=a.slice(Math.max(P-3,0),P);if(N&&I.test(N))continue}var O=P+a.slice(P).search(f);N=a.slice(P,O);for(O=-1;;){var Q=z.exec(N);if(!Q)break;O=Math.max(O,Q.index+Q[0].length)}N=-1b))throw new TypeError('Port "'+a+'" is not a valid port');}};d.noConflict=function(a){if(a)return a={URI:this.noConflict()},m.URITemplate&&"function"===typeof m.URITemplate.noConflict&&(a.URITemplate=m.URITemplate.noConflict()),m.IPv6&&"function"===typeof m.IPv6.noConflict&&(a.IPv6=m.IPv6.noConflict()),m.SecondLevelDomains&&"function"===typeof m.SecondLevelDomains.noConflict&&
-(a.SecondLevelDomains=m.SecondLevelDomains.noConflict()),a;m.URI===this&&(m.URI=v);return this};g.build=function(a){if(!0===a)this._deferred_build=!0;else if(void 0===a||this._deferred_build)this._string=d.build(this._parts),this._deferred_build=!1;return this};g.clone=function(){return new d(this)};g.valueOf=g.toString=function(){return this.build(!1)._string};g.protocol=w("protocol");g.username=w("username");g.password=w("password");g.hostname=w("hostname");g.port=w("port");g.query=H("query","?");
-g.fragment=H("fragment","#");g.search=function(a,b){var c=this.query(a,b);return"string"===typeof c&&c.length?"?"+c:c};g.hash=function(a,b){var c=this.fragment(a,b);return"string"===typeof c&&c.length?"#"+c:c};g.pathname=function(a,b){if(void 0===a||!0===a){var c=this._parts.path||(this._parts.hostname?"/":"");return a?(this._parts.urn?d.decodeUrnPath:d.decodePath)(c):c}this._parts.path=this._parts.urn?a?d.recodeUrnPath(a):"":a?d.recodePath(a):"/";this.build(!b);return this};g.path=g.pathname;g.href=
-function(a,b){var c;if(void 0===a)return this.toString();this._string="";this._parts=d._parts();var e=a instanceof d,f="object"===typeof a&&(a.hostname||a.path||a.pathname);a.nodeName&&(f=d.getDomAttribute(a),a=a[f]||"",f=!1);!e&&f&&void 0!==a.pathname&&(a=a.toString());if("string"===typeof a||a instanceof String)this._parts=d.parse(String(a),this._parts);else if(e||f){e=e?a._parts:a;for(c in e)"query"!==c&&B.call(this._parts,c)&&(this._parts[c]=e[c]);e.query&&this.query(e.query,!1)}else throw new TypeError("invalid input");
-this.build(!b);return this};g.is=function(a){var b=!1,c=!1,e=!1,f=!1,n=!1,z=!1,I=!1,L=!this._parts.urn;this._parts.hostname&&(L=!1,c=d.ip4_expression.test(this._parts.hostname),e=d.ip6_expression.test(this._parts.hostname),b=c||e,n=(f=!b)&&k&&k.has(this._parts.hostname),z=f&&d.idn_expression.test(this._parts.hostname),I=f&&d.punycode_expression.test(this._parts.hostname));switch(a.toLowerCase()){case "relative":return L;case "absolute":return!L;case "domain":case "name":return f;case "sld":return n;
-case "ip":return b;case "ip4":case "ipv4":case "inet4":return c;case "ip6":case "ipv6":case "inet6":return e;case "idn":return z;case "url":return!this._parts.urn;case "urn":return!!this._parts.urn;case "punycode":return I}return null};var C=g.protocol,y=g.port,J=g.hostname;g.protocol=function(a,b){if(a&&(a=a.replace(/:(\/\/)?$/,""),!a.match(d.protocol_expression)))throw new TypeError('Protocol "'+a+"\" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]");return C.call(this,a,
-b)};g.scheme=g.protocol;g.port=function(a,b){if(this._parts.urn)return void 0===a?"":this;void 0!==a&&(0===a&&(a=null),a&&(a+="",":"===a.charAt(0)&&(a=a.substring(1)),d.ensureValidPort(a)));return y.call(this,a,b)};g.hostname=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0!==a){var c={preventInvalidHostname:this._parts.preventInvalidHostname};if("/"!==d.parseHost(a,c))throw new TypeError('Hostname "'+a+'" contains characters other than [A-Z0-9.-]');a=c.hostname;this._parts.preventInvalidHostname&&
-d.ensureValidHostname(a,this._parts.protocol)}return J.call(this,a,b)};g.origin=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a){var c=this.protocol();return this.authority()?(c?c+"://":"")+this.authority():""}c=d(a);this.protocol(c.protocol()).authority(c.authority()).build(!b);return this};g.host=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a)return this._parts.hostname?d.buildHost(this._parts):"";if("/"!==d.parseHost(a,this._parts))throw new TypeError('Hostname "'+
-a+'" contains characters other than [A-Z0-9.-]');this.build(!b);return this};g.authority=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a)return this._parts.hostname?d.buildAuthority(this._parts):"";if("/"!==d.parseAuthority(a,this._parts))throw new TypeError('Hostname "'+a+'" contains characters other than [A-Z0-9.-]');this.build(!b);return this};g.userinfo=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a){var c=d.buildUserinfo(this._parts);return c?
-c.substring(0,c.length-1):c}"@"!==a[a.length-1]&&(a+="@");d.parseUserinfo(a,this._parts);this.build(!b);return this};g.resource=function(a,b){if(void 0===a)return this.path()+this.search()+this.hash();var c=d.parse(a);this._parts.path=c.path;this._parts.query=c.query;this._parts.fragment=c.fragment;this.build(!b);return this};g.subdomain=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a){if(!this._parts.hostname||this.is("IP"))return"";var c=this._parts.hostname.length-this.domain().length-
-1;return this._parts.hostname.substring(0,c)||""}c=this._parts.hostname.length-this.domain().length;c=this._parts.hostname.substring(0,c);c=new RegExp("^"+q(c));a&&"."!==a.charAt(a.length-1)&&(a+=".");if(-1!==a.indexOf(":"))throw new TypeError("Domains cannot contain colons");a&&d.ensureValidHostname(a,this._parts.protocol);this._parts.hostname=this._parts.hostname.replace(c,a);this.build(!b);return this};g.domain=function(a,b){if(this._parts.urn)return void 0===a?"":this;"boolean"===typeof a&&(b=
-a,a=void 0);if(void 0===a){if(!this._parts.hostname||this.is("IP"))return"";var c=this._parts.hostname.match(/\./g);if(c&&2>c.length)return this._parts.hostname;c=this._parts.hostname.length-this.tld(b).length-1;c=this._parts.hostname.lastIndexOf(".",c-1)+1;return this._parts.hostname.substring(c)||""}if(!a)throw new TypeError("cannot set domain empty");if(-1!==a.indexOf(":"))throw new TypeError("Domains cannot contain colons");d.ensureValidHostname(a,this._parts.protocol);!this._parts.hostname||
-this.is("IP")?this._parts.hostname=a:(c=new RegExp(q(this.domain())+"$"),this._parts.hostname=this._parts.hostname.replace(c,a));this.build(!b);return this};g.tld=function(a,b){if(this._parts.urn)return void 0===a?"":this;"boolean"===typeof a&&(b=a,a=void 0);if(void 0===a){if(!this._parts.hostname||this.is("IP"))return"";var c=this._parts.hostname.lastIndexOf(".");c=this._parts.hostname.substring(c+1);return!0!==b&&k&&k.list[c.toLowerCase()]?k.get(this._parts.hostname)||c:c}if(a)if(a.match(/[^a-zA-Z0-9-]/))if(k&&
-k.is(a))c=new RegExp(q(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(c,a);else throw new TypeError('TLD "'+a+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");c=new RegExp(q(this.tld())+"$");this._parts.hostname=this._parts.hostname.replace(c,a)}else throw new TypeError("cannot set TLD empty");this.build(!b);return this};g.directory=function(a,b){if(this._parts.urn)return void 0===
-a?"":this;if(void 0===a||!0===a){if(!this._parts.path&&!this._parts.hostname)return"";if("/"===this._parts.path)return"/";var c=this._parts.path.length-this.filename().length-1;c=this._parts.path.substring(0,c)||(this._parts.hostname?"/":"");return a?d.decodePath(c):c}c=this._parts.path.length-this.filename().length;c=this._parts.path.substring(0,c);c=new RegExp("^"+q(c));this.is("relative")||(a||(a="/"),"/"!==a.charAt(0)&&(a="/"+a));a&&"/"!==a.charAt(a.length-1)&&(a+="/");a=d.recodePath(a);this._parts.path=
-this._parts.path.replace(c,a);this.build(!b);return this};g.filename=function(a,b){if(this._parts.urn)return void 0===a?"":this;if("string"!==typeof a){if(!this._parts.path||"/"===this._parts.path)return"";var c=this._parts.path.lastIndexOf("/");c=this._parts.path.substring(c+1);return a?d.decodePathSegment(c):c}c=!1;"/"===a.charAt(0)&&(a=a.substring(1));a.match(/\.?\//)&&(c=!0);var e=new RegExp(q(this.filename())+"$");a=d.recodePath(a);this._parts.path=this._parts.path.replace(e,a);c?this.normalizePath(b):
-this.build(!b);return this};g.suffix=function(a,b){if(this._parts.urn)return void 0===a?"":this;if(void 0===a||!0===a){if(!this._parts.path||"/"===this._parts.path)return"";var c=this.filename(),e=c.lastIndexOf(".");if(-1===e)return"";c=c.substring(e+1);c=/^[a-z0-9%]+$/i.test(c)?c:"";return a?d.decodePathSegment(c):c}"."===a.charAt(0)&&(a=a.substring(1));if(c=this.suffix())e=a?new RegExp(q(c)+"$"):new RegExp(q("."+c)+"$");else{if(!a)return this;this._parts.path+="."+d.recodePath(a)}e&&(a=d.recodePath(a),
-this._parts.path=this._parts.path.replace(e,a));this.build(!b);return this};g.segment=function(a,b,c){var e=this._parts.urn?":":"/",f=this.path(),n="/"===f.substring(0,1);f=f.split(e);void 0!==a&&"number"!==typeof a&&(c=b,b=a,a=void 0);if(void 0!==a&&"number"!==typeof a)throw Error('Bad segment "'+a+'", must be 0-based integer');n&&f.shift();0>a&&(a=Math.max(f.length+a,0));if(void 0===b)return void 0===a?f:f[a];if(null===a||void 0===f[a])if(A(b)){f=[];a=0;for(var z=b.length;a{}"`^| \\]/;k.expand=function(h,p,D){var u=A[h.operator],K=u.named?"Named":"Unnamed";h=h.variables;var F=[],w,H;for(H=0;w=h[H];H++){var v=p.get(w.name);if(0===v.type&&D&&D.strict)throw Error('Missing expansion value for variable "'+
-w.name+'"');if(v.val.length){if(1{}"`^| \\]/;
-
- // expand parsed expression (expression, not template!)
- URITemplate.expand = function(expression, data, opts) {
- // container for defined options for the given operator
- var options = operators[expression.operator];
- // expansion type (include keys or not)
- var type = options.named ? 'Named' : 'Unnamed';
- // list of variables within the expression
- var variables = expression.variables;
- // result buffer for evaluating the expression
- var buffer = [];
- var d, variable, i;
-
- for (i = 0; (variable = variables[i]); i++) {
- // fetch simplified data source
- d = data.get(variable.name);
- if (d.type === 0 && opts && opts.strict) {
- throw new Error('Missing expansion value for variable "' + variable.name + '"');
- }
- if (!d.val.length) {
- if (d.type) {
- // empty variables (empty string)
- // still lead to a separator being appended!
- buffer.push('');
- }
- // no data, no action
- continue;
- }
-
- if (d.type > 1 && variable.maxlength) {
- // composite variable cannot specify maxlength
- throw new Error('Invalid expression: Prefix modifier not applicable to variable "' + variable.name + '"');
- }
-
- // expand the given variable
- buffer.push(URITemplate['expand' + type](
- d,
- options,
- variable.explode,
- variable.explode && options.separator || ',',
- variable.maxlength,
- variable.name
- ));
- }
-
- if (buffer.length) {
- return options.prefix + buffer.join(options.separator);
- } else {
- // prefix is not prepended for empty expressions
- return '';
- }
- };
- // expand a named variable
- URITemplate.expandNamed = function(d, options, explode, separator, length, name) {
- // variable result buffer
- var result = '';
- // peformance crap
- var encode = options.encode;
- var empty_name_separator = options.empty_name_separator;
- // flag noting if values are already encoded
- var _encode = !d[encode].length;
- // key for named expansion
- var _name = d.type === 2 ? '': URI[encode](name);
- var _value, i, l;
-
- // for each found value
- for (i = 0, l = d.val.length; i < l; i++) {
- if (length) {
- // maxlength must be determined before encoding can happen
- _value = URI[encode](d.val[i][1].substring(0, length));
- if (d.type === 2) {
- // apply maxlength to keys of objects as well
- _name = URI[encode](d.val[i][0].substring(0, length));
- }
- } else if (_encode) {
- // encode value
- _value = URI[encode](d.val[i][1]);
- if (d.type === 2) {
- // encode name and cache encoded value
- _name = URI[encode](d.val[i][0]);
- d[encode].push([_name, _value]);
- } else {
- // cache encoded value
- d[encode].push([undefined, _value]);
- }
- } else {
- // values are already encoded and can be pulled from cache
- _value = d[encode][i][1];
- if (d.type === 2) {
- _name = d[encode][i][0];
- }
- }
-
- if (result) {
- // unless we're the first value, prepend the separator
- result += separator;
- }
-
- if (!explode) {
- if (!i) {
- // first element, so prepend variable name
- result += URI[encode](name) + (empty_name_separator || _value ? '=' : '');
- }
-
- if (d.type === 2) {
- // without explode-modifier, keys of objects are returned comma-separated
- result += _name + ',';
- }
-
- result += _value;
- } else {
- // only add the = if it is either default (?&) or there actually is a value (;)
- result += _name + (empty_name_separator || _value ? '=' : '') + _value;
- }
- }
-
- return result;
- };
- // expand an unnamed variable
- URITemplate.expandUnnamed = function(d, options, explode, separator, length) {
- // variable result buffer
- var result = '';
- // performance crap
- var encode = options.encode;
- var empty_name_separator = options.empty_name_separator;
- // flag noting if values are already encoded
- var _encode = !d[encode].length;
- var _name, _value, i, l;
-
- // for each found value
- for (i = 0, l = d.val.length; i < l; i++) {
- if (length) {
- // maxlength must be determined before encoding can happen
- _value = URI[encode](d.val[i][1].substring(0, length));
- } else if (_encode) {
- // encode and cache value
- _value = URI[encode](d.val[i][1]);
- d[encode].push([
- d.type === 2 ? URI[encode](d.val[i][0]) : undefined,
- _value
- ]);
- } else {
- // value already encoded, pull from cache
- _value = d[encode][i][1];
- }
-
- if (result) {
- // unless we're the first value, prepend the separator
- result += separator;
- }
-
- if (d.type === 2) {
- if (length) {
- // maxlength also applies to keys of objects
- _name = URI[encode](d.val[i][0].substring(0, length));
- } else {
- // at this point the name must already be encoded
- _name = d[encode][i][0];
- }
-
- result += _name;
- if (explode) {
- // explode-modifier separates name and value by "="
- result += (empty_name_separator || _value ? '=' : '');
- } else {
- // no explode-modifier separates name and value by ","
- result += ',';
- }
- }
-
- result += _value;
- }
-
- return result;
- };
-
- URITemplate.noConflict = function() {
- if (root.URITemplate === URITemplate) {
- root.URITemplate = _URITemplate;
- }
-
- return URITemplate;
- };
-
- // expand template through given data map
- p.expand = function(data, opts) {
- var result = '';
-
- if (!this.parts || !this.parts.length) {
- // lazilyy parse the template
- this.parse();
- }
-
- if (!(data instanceof Data)) {
- // make given data available through the
- // optimized data handling thingie
- data = new Data(data);
- }
-
- for (var i = 0, l = this.parts.length; i < l; i++) {
- /*jshint laxbreak: true */
- result += typeof this.parts[i] === 'string'
- // literal string
- ? this.parts[i]
- // expression
- : URITemplate.expand(this.parts[i], data, opts);
- /*jshint laxbreak: false */
- }
-
- return result;
- };
- // parse template into action tokens
- p.parse = function() {
- // performance crap
- var expression = this.expression;
- var ePattern = URITemplate.EXPRESSION_PATTERN;
- var vPattern = URITemplate.VARIABLE_PATTERN;
- var nPattern = URITemplate.VARIABLE_NAME_PATTERN;
- var lPattern = URITemplate.LITERAL_PATTERN;
- // token result buffer
- var parts = [];
- // position within source template
- var pos = 0;
- var variables, eMatch, vMatch;
-
- var checkLiteral = function(literal) {
- if (literal.match(lPattern)) {
- throw new Error('Invalid Literal "' + literal + '"');
- }
- return literal;
- };
-
- // RegExp is shared accross all templates,
- // which requires a manual reset
- ePattern.lastIndex = 0;
- // I don't like while(foo = bar()) loops,
- // to make things simpler I go while(true) and break when required
- while (true) {
- eMatch = ePattern.exec(expression);
- if (eMatch === null) {
- // push trailing literal
- parts.push(checkLiteral(expression.substring(pos)));
- break;
- } else {
- // push leading literal
- parts.push(checkLiteral(expression.substring(pos, eMatch.index)));
- pos = eMatch.index + eMatch[0].length;
- }
-
- if (!operators[eMatch[1]]) {
- throw new Error('Unknown Operator "' + eMatch[1] + '" in "' + eMatch[0] + '"');
- } else if (!eMatch[3]) {
- throw new Error('Unclosed Expression "' + eMatch[0] + '"');
- }
-
- // parse variable-list
- variables = eMatch[2].split(',');
- for (var i = 0, l = variables.length; i < l; i++) {
- vMatch = variables[i].match(vPattern);
- if (vMatch === null) {
- throw new Error('Invalid Variable "' + variables[i] + '" in "' + eMatch[0] + '"');
- } else if (vMatch[1].match(nPattern)) {
- throw new Error('Invalid Variable Name "' + vMatch[1] + '" in "' + eMatch[0] + '"');
- }
-
- variables[i] = {
- name: vMatch[1],
- explode: !!vMatch[3],
- maxlength: vMatch[4] && parseInt(vMatch[4], 10)
- };
- }
-
- if (!variables.length) {
- throw new Error('Expression Missing Variable(s) "' + eMatch[0] + '"');
- }
-
- parts.push({
- expression: eMatch[0],
- operator: eMatch[1],
- variables: variables
- });
- }
-
- if (!parts.length) {
- // template doesn't contain any expressions
- // so it is a simple literal string
- // this probably should fire a warning or something?
- parts.push(checkLiteral(expression));
- }
-
- this.parts = parts;
- return this;
- };
-
- // simplify data structures
- Data.prototype.get = function(key) {
- // performance crap
- var data = this.data;
- // cache for processed data-point
- var d = {
- // type of data 0: undefined/null, 1: string, 2: object, 3: array
- type: 0,
- // original values (except undefined/null)
- val: [],
- // cache for encoded values (only for non-maxlength expansion)
- encode: [],
- encodeReserved: []
- };
- var i, l, value;
-
- if (this.cache[key] !== undefined) {
- // we've already processed this key
- return this.cache[key];
- }
-
- this.cache[key] = d;
-
- if (String(Object.prototype.toString.call(data)) === '[object Function]') {
- // data itself is a callback (global callback)
- value = data(key);
- } else if (String(Object.prototype.toString.call(data[key])) === '[object Function]') {
- // data is a map of callbacks (local callback)
- value = data[key](key);
- } else {
- // data is a map of data
- value = data[key];
- }
-
- // generalize input into [ [name1, value1], [name2, value2], … ]
- // so expansion has to deal with a single data structure only
- if (value === undefined || value === null) {
- // undefined and null values are to be ignored completely
- return d;
- } else if (String(Object.prototype.toString.call(value)) === '[object Array]') {
- for (i = 0, l = value.length; i < l; i++) {
- if (value[i] !== undefined && value[i] !== null) {
- // arrays don't have names
- d.val.push([undefined, String(value[i])]);
- }
- }
-
- if (d.val.length) {
- // only treat non-empty arrays as arrays
- d.type = 3; // array
- }
- } else if (String(Object.prototype.toString.call(value)) === '[object Object]') {
- for (i in value) {
- if (hasOwn.call(value, i) && value[i] !== undefined && value[i] !== null) {
- // objects have keys, remember them for named expansion
- d.val.push([i, String(value[i])]);
- }
- }
-
- if (d.val.length) {
- // only treat non-empty objects as objects
- d.type = 2; // object
- }
- } else {
- d.type = 1; // primitive string (could've been string, number, boolean and objects with a toString())
- // arrays don't have names
- d.val.push([undefined, String(value)]);
- }
-
- return d;
- };
-
- // hook into URI for fluid access
- URI.expand = function(expression, data) {
- var template = new URITemplate(expression);
- var expansion = template.expand(data);
-
- return new URI(expansion);
- };
-
- return URITemplate;
-}));
diff --git a/Lombiq.DataTables/wwwroot/vendors/urijs/jquery.URI.js b/Lombiq.DataTables/wwwroot/vendors/urijs/jquery.URI.js
deleted file mode 100644
index 513051ea9..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/urijs/jquery.URI.js
+++ /dev/null
@@ -1,234 +0,0 @@
-/*!
- * URI.js - Mutating URLs
- * jQuery Plugin
- *
- * Version: 1.19.7
- *
- * Author: Rodney Rehm
- * Web: http://medialize.github.io/URI.js/jquery-uri-plugin.html
- *
- * Licensed under
- * MIT License http://www.opensource.org/licenses/mit-license
- *
- */
-(function (root, factory) {
- 'use strict';
- // https://github.com/umdjs/umd/blob/master/returnExports.js
- if (typeof module === 'object' && module.exports) {
- // Node
- module.exports = factory(require('jquery'), require('./URI'));
- } else if (typeof define === 'function' && define.amd) {
- // AMD. Register as an anonymous module.
- define(['jquery', './URI'], factory);
- } else {
- // Browser globals (root is window)
- factory(root.jQuery, root.URI);
- }
-}(this, function ($, URI) {
- 'use strict';
- // FIXME: v2.0.0 renamce non-camelCase properties to uppercase
- /*jshint camelcase: false */
-
- var comparable = {};
- var compare = {
- // equals
- '=': function(value, target) {
- return value === target;
- },
- // ~= translates to value.match((?:^|\s)target(?:\s|$)) which is useless for URIs
- // |= translates to value.match((?:\b)target(?:-|\s|$)) which is useless for URIs
- // begins with
- '^=': function(value, target) {
- return !!(value + '').match(new RegExp('^' + escapeRegEx(target), 'i'));
- },
- // ends with
- '$=': function(value, target) {
- return !!(value + '').match(new RegExp(escapeRegEx(target) + '$', 'i'));
- },
- // contains
- '*=': function(value, target, property) {
- if (property === 'directory') {
- // add trailing slash so /dir/ will match the deep-end as well
- value += '/';
- }
-
- return !!(value + '').match(new RegExp(escapeRegEx(target), 'i'));
- },
- 'equals:': function(uri, target) {
- return uri.equals(target);
- },
- 'is:': function(uri, target) {
- return uri.is(target);
- }
- };
-
- function escapeRegEx(string) {
- // https://github.com/medialize/URI.js/commit/85ac21783c11f8ccab06106dba9735a31a86924d#commitcomment-821963
- return string.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
- }
-
- function getUriProperty(elem) {
- var nodeName = elem.nodeName.toLowerCase();
- var property = URI.domAttributes[nodeName];
- if (nodeName === 'input' && elem.type !== 'image') {
- // compensate ambiguous that is not an image
- return undefined;
- }
-
- // NOTE: as we use a static mapping from element to attribute,
- // the HTML5 attribute issue should not come up again
- // https://github.com/medialize/URI.js/issues/69
- return property;
- }
-
- function generateAccessor(property) {
- return {
- get: function(elem) {
- return $(elem).uri()[property]();
- },
- set: function(elem, value) {
- $(elem).uri()[property](value);
- return value;
- }
- };
- }
-
- // populate lookup table and register $.attr('uri:accessor') handlers
- $.each('origin authority directory domain filename fragment hash host hostname href password path pathname port protocol query resource scheme search subdomain suffix tld username'.split(' '), function(k, v) {
- comparable[v] = true;
- $.attrHooks['uri:' + v] = generateAccessor(v);
- });
-
- // pipe $.attr('src') and $.attr('href') through URI.js
- var _attrHooks = {
- get: function(elem) {
- return $(elem).uri();
- },
- set: function(elem, value) {
- return $(elem).uri().href(value).toString();
- }
- };
- $.each(['src', 'href', 'action', 'uri', 'cite'], function(k, v) {
- $.attrHooks[v] = {
- set: _attrHooks.set
- };
- });
- $.attrHooks.uri.get = _attrHooks.get;
-
- // general URI accessor
- $.fn.uri = function(uri) {
- var $this = this.first();
- var elem = $this.get(0);
- var property = getUriProperty(elem);
-
- if (!property) {
- throw new Error('Element "' + elem.nodeName + '" does not have either property: href, src, action, cite');
- }
-
- if (uri !== undefined) {
- var old = $this.data('uri');
- if (old) {
- return old.href(uri);
- }
-
- if (!(uri instanceof URI)) {
- uri = URI(uri || '');
- }
- } else {
- uri = $this.data('uri');
- if (uri) {
- return uri;
- } else {
- uri = URI($this.attr(property) || '');
- }
- }
-
- uri._dom_element = elem;
- uri._dom_attribute = property;
- uri.normalize();
- $this.data('uri', uri);
- return uri;
- };
-
- // overwrite URI.build() to update associated DOM element if necessary
- URI.prototype.build = function(deferBuild) {
- if (this._dom_element) {
- // cannot defer building when hooked into a DOM element
- this._string = URI.build(this._parts);
- this._deferred_build = false;
- this._dom_element.setAttribute(this._dom_attribute, this._string);
- this._dom_element[this._dom_attribute] = this._string;
- } else if (deferBuild === true) {
- this._deferred_build = true;
- } else if (deferBuild === undefined || this._deferred_build) {
- this._string = URI.build(this._parts);
- this._deferred_build = false;
- }
-
- return this;
- };
-
- // add :uri() pseudo class selector to sizzle
- var uriSizzle;
- var pseudoArgs = /^([a-zA-Z]+)\s*([\^\$*]?=|:)\s*(['"]?)(.+)\3|^\s*([a-zA-Z0-9]+)\s*$/;
- function uriPseudo (elem, text) {
- var match, property, uri;
-
- // skip anything without src|href|action and bad :uri() syntax
- if (!getUriProperty(elem) || !text) {
- return false;
- }
-
- match = text.match(pseudoArgs);
-
- if (!match || (!match[5] && match[2] !== ':' && !compare[match[2]])) {
- // abort because the given selector cannot be executed
- // filers seem to fail silently
- return false;
- }
-
- uri = $(elem).uri();
-
- if (match[5]) {
- return uri.is(match[5]);
- } else if (match[2] === ':') {
- property = match[1].toLowerCase() + ':';
- if (!compare[property]) {
- // filers seem to fail silently
- return false;
- }
-
- return compare[property](uri, match[4]);
- } else {
- property = match[1].toLowerCase();
- if (!comparable[property]) {
- // filers seem to fail silently
- return false;
- }
-
- return compare[match[2]](uri[property](), match[4], property);
- }
-
- return false;
- }
-
- if ($.expr.createPseudo) {
- // jQuery >= 1.8
- uriSizzle = $.expr.createPseudo(function (text) {
- return function (elem) {
- return uriPseudo(elem, text);
- };
- });
- } else {
- // jQuery < 1.8
- uriSizzle = function (elem, i, match) {
- return uriPseudo(elem, match[3]);
- };
- }
-
- $.expr[':'].uri = uriSizzle;
-
- // extending existing object rather than defining something new,
- // return jQuery anyway
- return $;
-}));
diff --git a/Lombiq.DataTables/wwwroot/vendors/urijs/jquery.URI.min.js b/Lombiq.DataTables/wwwroot/vendors/urijs/jquery.URI.min.js
deleted file mode 100644
index 12ee5a040..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/urijs/jquery.URI.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*! URI.js v1.19.7 http://medialize.github.io/URI.js/ */
-/* build contains: jquery.URI.js */
-(function(d,e){"object"===typeof module&&module.exports?module.exports=e(require("jquery"),require("./URI")):"function"===typeof define&&define.amd?define(["jquery","./URI"],e):e(d.jQuery,d.URI)})(this,function(d,e){function k(a){return a.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function l(a){var b=a.nodeName.toLowerCase();if("input"!==b||"image"===a.type)return e.domAttributes[b]}function p(a){return{get:function(b){return d(b).uri()[a]()},set:function(b,c){d(b).uri()[a](c);return c}}}function m(a,
-b){if(!l(a)||!b)return!1;var c=b.match(q);if(!c||!c[5]&&":"!==c[2]&&!h[c[2]])return!1;var g=d(a).uri();if(c[5])return g.is(c[5]);if(":"===c[2]){var f=c[1].toLowerCase()+":";return h[f]?h[f](g,c[4]):!1}f=c[1].toLowerCase();return n[f]?h[c[2]](g[f](),c[4],f):!1}var n={},h={"=":function(a,b){return a===b},"^=":function(a,b){return!!(a+"").match(new RegExp("^"+k(b),"i"))},"$=":function(a,b){return!!(a+"").match(new RegExp(k(b)+"$","i"))},"*=":function(a,b,c){"directory"===c&&(a+="/");return!!(a+"").match(new RegExp(k(b),
-"i"))},"equals:":function(a,b){return a.equals(b)},"is:":function(a,b){return a.is(b)}};d.each("origin authority directory domain filename fragment hash host hostname href password path pathname port protocol query resource scheme search subdomain suffix tld username".split(" "),function(a,b){n[b]=!0;d.attrHooks["uri:"+b]=p(b)});var r=function(a,b){return d(a).uri().href(b).toString()};d.each(["src","href","action","uri","cite"],function(a,b){d.attrHooks[b]={set:r}});d.attrHooks.uri.get=function(a){return d(a).uri()};
-d.fn.uri=function(a){var b=this.first(),c=b.get(0),g=l(c);if(!g)throw Error('Element "'+c.nodeName+'" does not have either property: href, src, action, cite');if(void 0!==a){var f=b.data("uri");if(f)return f.href(a);a instanceof e||(a=e(a||""))}else{if(a=b.data("uri"))return a;a=e(b.attr(g)||"")}a._dom_element=c;a._dom_attribute=g;a.normalize();b.data("uri",a);return a};e.prototype.build=function(a){if(this._dom_element)this._string=e.build(this._parts),this._deferred_build=!1,this._dom_element.setAttribute(this._dom_attribute,
-this._string),this._dom_element[this._dom_attribute]=this._string;else if(!0===a)this._deferred_build=!0;else if(void 0===a||this._deferred_build)this._string=e.build(this._parts),this._deferred_build=!1;return this};var q=/^([a-zA-Z]+)\s*([\^\$*]?=|:)\s*(['"]?)(.+)\3|^\s*([a-zA-Z0-9]+)\s*$/;var t=d.expr.createPseudo?d.expr.createPseudo(function(a){return function(b){return m(b,a)}}):function(a,b,c){return m(a,c[3])};d.expr[":"].uri=t;return d});
diff --git a/Lombiq.DataTables/wwwroot/vendors/urijs/punycode.js b/Lombiq.DataTables/wwwroot/vendors/urijs/punycode.js
deleted file mode 100644
index 0b4f5da35..000000000
--- a/Lombiq.DataTables/wwwroot/vendors/urijs/punycode.js
+++ /dev/null
@@ -1,533 +0,0 @@
-/*! https://mths.be/punycode v1.4.0 by @mathias */
-;(function(root) {
-
- /** Detect free variables */
- var freeExports = typeof exports == 'object' && exports &&
- !exports.nodeType && exports;
- var freeModule = typeof module == 'object' && module &&
- !module.nodeType && module;
- var freeGlobal = typeof global == 'object' && global;
- if (
- freeGlobal.global === freeGlobal ||
- freeGlobal.window === freeGlobal ||
- freeGlobal.self === freeGlobal
- ) {
- root = freeGlobal;
- }
-
- /**
- * The `punycode` object.
- * @name punycode
- * @type Object
- */
- var punycode,
-
- /** Highest positive signed 32-bit float value */
- maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
-
- /** Bootstring parameters */
- base = 36,
- tMin = 1,
- tMax = 26,
- skew = 38,
- damp = 700,
- initialBias = 72,
- initialN = 128, // 0x80
- delimiter = '-', // '\x2D'
-
- /** Regular expressions */
- regexPunycode = /^xn--/,
- regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
- regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
-
- /** Error messages */
- errors = {
- 'overflow': 'Overflow: input needs wider integers to process',
- 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
- 'invalid-input': 'Invalid input'
- },
-
- /** Convenience shortcuts */
- baseMinusTMin = base - tMin,
- floor = Math.floor,
- stringFromCharCode = String.fromCharCode,
-
- /** Temporary variable */
- key;
-
- /*--------------------------------------------------------------------------*/
-
- /**
- * A generic error utility function.
- * @private
- * @param {String} type The error type.
- * @returns {Error} Throws a `RangeError` with the applicable error message.
- */
- function error(type) {
- throw new RangeError(errors[type]);
- }
-
- /**
- * A generic `Array#map` utility function.
- * @private
- * @param {Array} array The array to iterate over.
- * @param {Function} callback The function that gets called for every array
- * item.
- * @returns {Array} A new array of values returned by the callback function.
- */
- function map(array, fn) {
- var length = array.length;
- var result = [];
- while (length--) {
- result[length] = fn(array[length]);
- }
- return result;
- }
-
- /**
- * A simple `Array#map`-like wrapper to work with domain name strings or email
- * addresses.
- * @private
- * @param {String} domain The domain name or email address.
- * @param {Function} callback The function that gets called for every
- * character.
- * @returns {Array} A new string of characters returned by the callback
- * function.
- */
- function mapDomain(string, fn) {
- var parts = string.split('@');
- var result = '';
- if (parts.length > 1) {
- // In email addresses, only the domain name should be punycoded. Leave
- // the local part (i.e. everything up to `@`) intact.
- result = parts[0] + '@';
- string = parts[1];
- }
- // Avoid `split(regex)` for IE8 compatibility. See #17.
- string = string.replace(regexSeparators, '\x2E');
- var labels = string.split('.');
- var encoded = map(labels, fn).join('.');
- return result + encoded;
- }
-
- /**
- * Creates an array containing the numeric code points of each Unicode
- * character in the string. While JavaScript uses UCS-2 internally,
- * this function will convert a pair of surrogate halves (each of which
- * UCS-2 exposes as separate characters) into a single code point,
- * matching UTF-16.
- * @see `punycode.ucs2.encode`
- * @see
- * @memberOf punycode.ucs2
- * @name decode
- * @param {String} string The Unicode input string (UCS-2).
- * @returns {Array} The new array of code points.
- */
- function ucs2decode(string) {
- var output = [],
- counter = 0,
- length = string.length,
- value,
- extra;
- while (counter < length) {
- value = string.charCodeAt(counter++);
- if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
- // high surrogate, and there is a next character
- extra = string.charCodeAt(counter++);
- if ((extra & 0xFC00) == 0xDC00) { // low surrogate
- output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
- } else {
- // unmatched surrogate; only append this code unit, in case the next
- // code unit is the high surrogate of a surrogate pair
- output.push(value);
- counter--;
- }
- } else {
- output.push(value);
- }
- }
- return output;
- }
-
- /**
- * Creates a string based on an array of numeric code points.
- * @see `punycode.ucs2.decode`
- * @memberOf punycode.ucs2
- * @name encode
- * @param {Array} codePoints The array of numeric code points.
- * @returns {String} The new Unicode string (UCS-2).
- */
- function ucs2encode(array) {
- return map(array, function(value) {
- var output = '';
- if (value > 0xFFFF) {
- value -= 0x10000;
- output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
- value = 0xDC00 | value & 0x3FF;
- }
- output += stringFromCharCode(value);
- return output;
- }).join('');
- }
-
- /**
- * Converts a basic code point into a digit/integer.
- * @see `digitToBasic()`
- * @private
- * @param {Number} codePoint The basic numeric code point value.
- * @returns {Number} The numeric value of a basic code point (for use in
- * representing integers) in the range `0` to `base - 1`, or `base` if
- * the code point does not represent a value.
- */
- function basicToDigit(codePoint) {
- if (codePoint - 48 < 10) {
- return codePoint - 22;
- }
- if (codePoint - 65 < 26) {
- return codePoint - 65;
- }
- if (codePoint - 97 < 26) {
- return codePoint - 97;
- }
- return base;
- }
-
- /**
- * Converts a digit/integer into a basic code point.
- * @see `basicToDigit()`
- * @private
- * @param {Number} digit The numeric value of a basic code point.
- * @returns {Number} The basic code point whose value (when used for
- * representing integers) is `digit`, which needs to be in the range
- * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
- * used; else, the lowercase form is used. The behavior is undefined
- * if `flag` is non-zero and `digit` has no uppercase form.
- */
- function digitToBasic(digit, flag) {
- // 0..25 map to ASCII a..z or A..Z
- // 26..35 map to ASCII 0..9
- return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
- }
-
- /**
- * Bias adaptation function as per section 3.4 of RFC 3492.
- * https://tools.ietf.org/html/rfc3492#section-3.4
- * @private
- */
- function adapt(delta, numPoints, firstTime) {
- var k = 0;
- delta = firstTime ? floor(delta / damp) : delta >> 1;
- delta += floor(delta / numPoints);
- for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
- delta = floor(delta / baseMinusTMin);
- }
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
- }
-
- /**
- * Converts a Punycode string of ASCII-only symbols to a string of Unicode
- * symbols.
- * @memberOf punycode
- * @param {String} input The Punycode string of ASCII-only symbols.
- * @returns {String} The resulting string of Unicode symbols.
- */
- function decode(input) {
- // Don't use UCS-2
- var output = [],
- inputLength = input.length,
- out,
- i = 0,
- n = initialN,
- bias = initialBias,
- basic,
- j,
- index,
- oldi,
- w,
- k,
- digit,
- t,
- /** Cached calculation results */
- baseMinusT;
-
- // Handle the basic code points: let `basic` be the number of input code
- // points before the last delimiter, or `0` if there is none, then copy
- // the first basic code points to the output.
-
- basic = input.lastIndexOf(delimiter);
- if (basic < 0) {
- basic = 0;
- }
-
- for (j = 0; j < basic; ++j) {
- // if it's not a basic code point
- if (input.charCodeAt(j) >= 0x80) {
- error('not-basic');
- }
- output.push(input.charCodeAt(j));
- }
-
- // Main decoding loop: start just after the last delimiter if any basic code
- // points were copied; start at the beginning otherwise.
-
- for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
-
- // `index` is the index of the next character to be consumed.
- // Decode a generalized variable-length integer into `delta`,
- // which gets added to `i`. The overflow checking is easier
- // if we increase `i` as we go, then subtract off its starting
- // value at the end to obtain `delta`.
- for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
-
- if (index >= inputLength) {
- error('invalid-input');
- }
-
- digit = basicToDigit(input.charCodeAt(index++));
-
- if (digit >= base || digit > floor((maxInt - i) / w)) {
- error('overflow');
- }
-
- i += digit * w;
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
-
- if (digit < t) {
- break;
- }
-
- baseMinusT = base - t;
- if (w > floor(maxInt / baseMinusT)) {
- error('overflow');
- }
-
- w *= baseMinusT;
-
- }
-
- out = output.length + 1;
- bias = adapt(i - oldi, out, oldi == 0);
-
- // `i` was supposed to wrap around from `out` to `0`,
- // incrementing `n` each time, so we'll fix that now:
- if (floor(i / out) > maxInt - n) {
- error('overflow');
- }
-
- n += floor(i / out);
- i %= out;
-
- // Insert `n` at position `i` of the output
- output.splice(i++, 0, n);
-
- }
-
- return ucs2encode(output);
- }
-
- /**
- * Converts a string of Unicode symbols (e.g. a domain name label) to a
- * Punycode string of ASCII-only symbols.
- * @memberOf punycode
- * @param {String} input The string of Unicode symbols.
- * @returns {String} The resulting Punycode string of ASCII-only symbols.
- */
- function encode(input) {
- var n,
- delta,
- handledCPCount,
- basicLength,
- bias,
- j,
- m,
- q,
- k,
- t,
- currentValue,
- output = [],
- /** `inputLength` will hold the number of code points in `input`. */
- inputLength,
- /** Cached calculation results */
- handledCPCountPlusOne,
- baseMinusT,
- qMinusT;
-
- // Convert the input in UCS-2 to Unicode
- input = ucs2decode(input);
-
- // Cache the length
- inputLength = input.length;
-
- // Initialize the state
- n = initialN;
- delta = 0;
- bias = initialBias;
-
- // Handle the basic code points
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue < 0x80) {
- output.push(stringFromCharCode(currentValue));
- }
- }
-
- handledCPCount = basicLength = output.length;
-
- // `handledCPCount` is the number of code points that have been handled;
- // `basicLength` is the number of basic code points.
-
- // Finish the basic string - if it is not empty - with a delimiter
- if (basicLength) {
- output.push(delimiter);
- }
-
- // Main encoding loop:
- while (handledCPCount < inputLength) {
-
- // All non-basic code points < n have been handled already. Find the next
- // larger one:
- for (m = maxInt, j = 0; j < inputLength; ++j) {
- currentValue = input[j];
- if (currentValue >= n && currentValue < m) {
- m = currentValue;
- }
- }
-
- // Increase `delta` enough to advance the decoder's state to ,
- // but guard against overflow
- handledCPCountPlusOne = handledCPCount + 1;
- if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
- error('overflow');
- }
-
- delta += (m - n) * handledCPCountPlusOne;
- n = m;
-
- for (j = 0; j < inputLength; ++j) {
- currentValue = input[j];
-
- if (currentValue < n && ++delta > maxInt) {
- error('overflow');
- }
-
- if (currentValue == n) {
- // Represent delta as a generalized variable-length integer
- for (q = delta, k = base; /* no condition */; k += base) {
- t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
- if (q < t) {
- break;
- }
- qMinusT = q - t;
- baseMinusT = base - t;
- output.push(
- stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
- );
- q = floor(qMinusT / baseMinusT);
- }
-
- output.push(stringFromCharCode(digitToBasic(q, 0)));
- bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
- delta = 0;
- ++handledCPCount;
- }
- }
-
- ++delta;
- ++n;
-
- }
- return output.join('');
- }
-
- /**
- * Converts a Punycode string representing a domain name or an email address
- * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
- * it doesn't matter if you call it on a string that has already been
- * converted to Unicode.
- * @memberOf punycode
- * @param {String} input The Punycoded domain name or email address to
- * convert to Unicode.
- * @returns {String} The Unicode representation of the given Punycode
- * string.
- */
- function toUnicode(input) {
- return mapDomain(input, function(string) {
- return regexPunycode.test(string)
- ? decode(string.slice(4).toLowerCase())
- : string;
- });
- }
-
- /**
- * Converts a Unicode string representing a domain name or an email address to
- * Punycode. Only the non-ASCII parts of the domain name will be converted,
- * i.e. it doesn't matter if you call it with a domain that's already in
- * ASCII.
- * @memberOf punycode
- * @param {String} input The domain name or email address to convert, as a
- * Unicode string.
- * @returns {String} The Punycode representation of the given domain name or
- * email address.
- */
- function toASCII(input) {
- return mapDomain(input, function(string) {
- return regexNonASCII.test(string)
- ? 'xn--' + encode(string)
- : string;
- });
- }
-
- /*--------------------------------------------------------------------------*/
-
- /** Define the public API */
- punycode = {
- /**
- * A string representing the current Punycode.js version number.
- * @memberOf punycode
- * @type String
- */
- 'version': '1.3.2',
- /**
- * An object of methods to convert from JavaScript's internal character
- * representation (UCS-2) to Unicode code points, and back.
- * @see
- * @memberOf punycode
- * @type Object
- */
- 'ucs2': {
- 'decode': ucs2decode,
- 'encode': ucs2encode
- },
- 'decode': decode,
- 'encode': encode,
- 'toASCII': toASCII,
- 'toUnicode': toUnicode
- };
-
- /** Expose `punycode` */
- // Some AMD build optimizers, like r.js, check for specific condition patterns
- // like the following:
- if (
- typeof define == 'function' &&
- typeof define.amd == 'object' &&
- define.amd
- ) {
- define('punycode', function() {
- return punycode;
- });
- } else if (freeExports && freeModule) {
- if (module.exports == freeExports) {
- // in Node.js, io.js, or RingoJS v0.8.0+
- freeModule.exports = punycode;
- } else {
- // in Narwhal or RingoJS v0.7.0-
- for (key in punycode) {
- punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);
- }
- }
- } else {
- // in Rhino or a web browser
- root.punycode = punycode;
- }
-
-}(this));